Merge branch 'data_migrations' into test
This commit is contained in:
commit
5db62cf94c
4 changed files with 18 additions and 15 deletions
|
@ -121,7 +121,7 @@
|
|||
},
|
||||
{
|
||||
"fields": {
|
||||
"content": "<p>Svá řešení či případné dotazy nám můžete posílat buď klasickou, nebo elektronickou poštou:</p>\r\n\r\n<p><strong>Adresa redakce</strong>:</p>\r\n\r\n<p>M&M, OPMK MFF UK<br />\r\nKe Karlovu 3<br />\r\n121 16 Praha 2</p>\r\n\r\n<p><strong>E-mail</strong>:<a href=\"mailto:mam@matfyz.cz\" style=\"color: rgb(133, 49, 1); line-height: 20.8px;\"> mam@matfyz.cz</a></p>\r\n\r\n<p> </p>\r\n\r\n<p><strong>Facebook:</strong> <a href=\"https://www.facebook.com/casopis.MaM?fref=ts\">Korespondenční seminář M&M</a></p>\r\n\r\n<p><strong>Google Kalendář:</strong> <a href=\"https://calendar.google.com/calendar/embed?src=casopis.mam%40gmail.com&ctz=Europe%2FPrague\">casopis.mam@gmail.com</a></p>\r\n\r\n<p> </p>\r\n\r\n<p>Během školního roku je velká část <a href=\"/o-nas/organizatori/\"><strong>organizátorů</strong></a> k zastižení na koleji 17. listopadu či jinde po Praze.</p>",
|
||||
"content": "<p>Svá řešení nahrávejte do <strong><a href=\"/resitel/nahraj_reseni\">odevzdávátka</a></strong>.</p>\r\n\r\n<p> </p>\r\n\r\n<p>Máte-li nějaké dotazy, neváhejte nás kontaktovat.</p>\r\n\r\n<p><strong>E-mail</strong>: <a href=\"mailto:mam@matfyz.cz\" style=\"color: rgb(133, 49, 1); line-height: 20.8px;\">mam@matfyz.cz</a></p>\r\n\r\n<p><strong>Facebook:</strong> <a href=\"https://www.facebook.com/casopis.MaM?fref=ts\">Korespondenční seminář M&M</a></p>\r\n\r\n<p><strong>Adresa redakce</strong>:</p>\r\n\r\n<p>M&M, OPMK MFF UK<br />\r\nKe Karlovu 3<br />\r\n121 16 Praha 2</p>\r\n\r\n<p> </p>\r\n\r\n<p>Akce a termíny pro odevzdávání řešení najdete v našem kalendáři.</p>\r\n\r\n<p><strong>Google Kalendář:</strong> <a href=\"https://calendar.google.com/calendar/embed?src=casopis.mam%40gmail.com&ctz=Europe%2FPrague\">casopis.mam@gmail.com</a></p>\r\n\r\n<p> </p>\r\n\r\n<p>Během školního roku je velká část <a href=\"/o-nas/organizatori/\"><strong>organizátorů</strong></a> k zastižení na koleji 17. listopadu či jinde po Praze.</p>",
|
||||
"enable_comments": false,
|
||||
"registration_required": false,
|
||||
"sites": [
|
||||
|
@ -179,4 +179,4 @@
|
|||
"model": "flatpages.flatpage",
|
||||
"pk": 28
|
||||
}
|
||||
]
|
||||
]
|
|
@ -4,13 +4,15 @@ from __future__ import unicode_literals
|
|||
|
||||
from django.db import migrations
|
||||
|
||||
from datetime import date
|
||||
|
||||
def resitel_to_osoba(apps,schema_editor):
|
||||
Resitel = apps.get_model('seminar','Resitel')
|
||||
Osoba = apps.get_model('seminar','Osoba')
|
||||
for r in Resitel.objects.all():
|
||||
o = Osoba()
|
||||
o.datum_narozeni = r.datum_narozeni
|
||||
o.datum_registrace = r.datum_prihlaseni
|
||||
o.datum_registrace = r.datum_prihlaseni if r.datum_prihlaseni else date.max # Myslím si, že None by způsobilo použití defaultu
|
||||
o.datum_souhlasu_udaje = r.datum_souhlasu_udaje
|
||||
o.datum_souhlasu_zasilani = r.datum_souhlasu_zasilani
|
||||
o.email = r.email
|
||||
|
@ -28,26 +30,23 @@ def resitel_to_osoba(apps,schema_editor):
|
|||
if u.first_name:
|
||||
if not o.jmeno:
|
||||
o.jmeno = u.first_name
|
||||
u.first_name = 'Použij osobu!'
|
||||
u.first_name += ' (Uživatel!)'
|
||||
elif o.jmeno == u.first_name:
|
||||
u.first_name = 'Použij osobu!'
|
||||
u.first_name += ' (Uživatel!)'
|
||||
else:
|
||||
raise ValueError('jmeno a first_name rozdílné: "{}" vs. "{}"'.format(o.jmeno, u.first_name))
|
||||
if u.last_name:
|
||||
if not o.prijmeni:
|
||||
o.prijmeni = u.last_name
|
||||
u.last_name = 'Použij osobu!'
|
||||
u.last_name += ' (Uživatel!)'
|
||||
elif o.prijmeni == u.last_name:
|
||||
u.last_name = 'Použij osobu!'
|
||||
u.last_name += ' (Uživatel!)'
|
||||
else:
|
||||
raise ValueError('prijmeni a last_name rozdílné: "{}" vs. "{}"'.format(o.prijmeni, u.last_name))
|
||||
if u.email:
|
||||
if not o.email:
|
||||
o.email = u.email
|
||||
u.email = 'Použij osobu!'
|
||||
elif o.email == u.email:
|
||||
u.email = 'Použij osobu!'
|
||||
else:
|
||||
elif o.email != u.email:
|
||||
raise ValueError('o.email a u.email rozdílné: "{}" vs. "{}"'.format(o.email, u.email))
|
||||
u.save()
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@ from __future__ import unicode_literals
|
|||
|
||||
from django.db import migrations
|
||||
|
||||
from datetime import date
|
||||
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -23,6 +25,8 @@ def spoj_k_organizatorum_osoby(apps, scema_editor):
|
|||
# Je to podezřelé, ale prostě vyrobíme novou osobu.
|
||||
osoba = Osoba(user=user)
|
||||
# Téhle osobě nejdou nastavit detaily, protože žádné nemáme.
|
||||
# Datum registrace budiž minimální
|
||||
osoba.datum_registrace = date.min
|
||||
else:
|
||||
logger.info(f'Org {org.user.email}(ID: {org.id}) má uživatele {user}')
|
||||
# 💢💢💢 Python nemá goto, ale prý má výjimky… 💢💢💢
|
||||
|
@ -53,9 +57,9 @@ def spoj_k_organizatorum_osoby(apps, scema_editor):
|
|||
osoba.jmeno = user.first_name
|
||||
osoba.prijmeni = user.last_name
|
||||
osoba.email = user.email
|
||||
user.jmeno = "Použij osobu!"
|
||||
user.prijmeni = "Použij osobu!"
|
||||
user.email = "Použij osobu!"
|
||||
user.jmeno += " (Uživatel!)"
|
||||
user.prijmeni += " (Uživatel!)"
|
||||
osoba.datum_registrace = min(osoba.datum_registrace, user.date_joined, key=lambda d: d if d is not None else date.max)
|
||||
user.save()
|
||||
|
||||
except EndException: pass
|
||||
|
|
|
@ -156,7 +156,7 @@ urlpatterns = [
|
|||
path('api/autocomplete/problem/odevzdatelny',views.OdevzdatelnyProblemAutocomplete.as_view(), name='autocomplete_problem_odevzdatelny'),
|
||||
|
||||
path('temp/add_solution', org_required(views.AddSolutionView.as_view()), name='seminar_vloz_reseni'),
|
||||
path('temp/nahraj_reseni', resitel_required(views.NahrajReseniView.as_view()), name='seminar_nahraj_reseni'),
|
||||
path('resitel/nahraj_reseni', resitel_required(views.NahrajReseniView.as_view()), name='seminar_nahraj_reseni'),
|
||||
|
||||
re_path(r'^temp/vue/.*$',views.VueTestView.as_view(),name='vue_test_view'),
|
||||
path('temp/image_upload/', views.NahrajObrazekKTreeNoduView.as_view()),
|
||||
|
|
Loading…
Reference in a new issue