Browse Source

Merge branch 'data_migrations' into test

middleware_test
Pavel "LEdoian" Turinsky 4 years ago
parent
commit
5db62cf94c
  1. 2
      data/flat.json
  2. 17
      seminar/migrations/0051_resitel_to_osoba.py
  3. 10
      seminar/migrations/0052_user_to_organizator.py
  4. 2
      seminar/urls.py

2
data/flat.json

@ -121,7 +121,7 @@
}, },
{ {
"fields": { "fields": {
"content": "<p>Svá řešení či případné dotazy nám můžete&nbsp;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&amp;M, OPMK MFF UK<br />\r\nKe Karlovu 3<br />\r\n121&nbsp;16 Praha&nbsp;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>&nbsp;</p>\r\n\r\n<p><strong>Facebook:</strong>&nbsp;<a href=\"https://www.facebook.com/casopis.MaM?fref=ts\">Korespondenční seminář M&amp;M</a></p>\r\n\r\n<p><strong>Google Kalendář:</strong>&nbsp;<a href=\"https://calendar.google.com/calendar/embed?src=casopis.mam%40gmail.com&amp;ctz=Europe%2FPrague\">casopis.mam@gmail.com</a></p>\r\n\r\n<p>&nbsp;</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>&nbsp;</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>&nbsp;<a href=\"https://www.facebook.com/casopis.MaM?fref=ts\">Korespondenční seminář M&amp;M</a></p>\r\n\r\n<p><strong>Adresa redakce</strong>:</p>\r\n\r\n<p>M&amp;M, OPMK MFF UK<br />\r\nKe Karlovu 3<br />\r\n121&nbsp;16 Praha&nbsp;2</p>\r\n\r\n<p>&nbsp;</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>&nbsp;<a href=\"https://calendar.google.com/calendar/embed?src=casopis.mam%40gmail.com&amp;ctz=Europe%2FPrague\">casopis.mam@gmail.com</a></p>\r\n\r\n<p>&nbsp;</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, "enable_comments": false,
"registration_required": false, "registration_required": false,
"sites": [ "sites": [

17
seminar/migrations/0051_resitel_to_osoba.py

@ -4,13 +4,15 @@ from __future__ import unicode_literals
from django.db import migrations from django.db import migrations
from datetime import date
def resitel_to_osoba(apps,schema_editor): def resitel_to_osoba(apps,schema_editor):
Resitel = apps.get_model('seminar','Resitel') Resitel = apps.get_model('seminar','Resitel')
Osoba = apps.get_model('seminar','Osoba') Osoba = apps.get_model('seminar','Osoba')
for r in Resitel.objects.all(): for r in Resitel.objects.all():
o = Osoba() o = Osoba()
o.datum_narozeni = r.datum_narozeni 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_udaje = r.datum_souhlasu_udaje
o.datum_souhlasu_zasilani = r.datum_souhlasu_zasilani o.datum_souhlasu_zasilani = r.datum_souhlasu_zasilani
o.email = r.email o.email = r.email
@ -28,26 +30,23 @@ def resitel_to_osoba(apps,schema_editor):
if u.first_name: if u.first_name:
if not o.jmeno: if not o.jmeno:
o.jmeno = u.first_name o.jmeno = u.first_name
u.first_name = 'Použij osobu!' u.first_name += ' (Uživatel!)'
elif o.jmeno == u.first_name: elif o.jmeno == u.first_name:
u.first_name = 'Použij osobu!' u.first_name += ' (Uživatel!)'
else: else:
raise ValueError('jmeno a first_name rozdílné: "{}" vs. "{}"'.format(o.jmeno, u.first_name)) raise ValueError('jmeno a first_name rozdílné: "{}" vs. "{}"'.format(o.jmeno, u.first_name))
if u.last_name: if u.last_name:
if not o.prijmeni: if not o.prijmeni:
o.prijmeni = u.last_name o.prijmeni = u.last_name
u.last_name = 'Použij osobu!' u.last_name += ' (Uživatel!)'
elif o.prijmeni == u.last_name: elif o.prijmeni == u.last_name:
u.last_name = 'Použij osobu!' u.last_name += ' (Uživatel!)'
else: else:
raise ValueError('prijmeni a last_name rozdílné: "{}" vs. "{}"'.format(o.prijmeni, u.last_name)) raise ValueError('prijmeni a last_name rozdílné: "{}" vs. "{}"'.format(o.prijmeni, u.last_name))
if u.email: if u.email:
if not o.email: if not o.email:
o.email = u.email o.email = u.email
u.email = 'Použij osobu!' elif o.email != u.email:
elif o.email == u.email:
u.email = 'Použij osobu!'
else:
raise ValueError('o.email a u.email rozdílné: "{}" vs. "{}"'.format(o.email, u.email)) raise ValueError('o.email a u.email rozdílné: "{}" vs. "{}"'.format(o.email, u.email))
u.save() u.save()

10
seminar/migrations/0052_user_to_organizator.py

@ -4,6 +4,8 @@ from __future__ import unicode_literals
from django.db import migrations from django.db import migrations
from datetime import date
import logging import logging
logger = logging.getLogger(__name__) 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. # Je to podezřelé, ale prostě vyrobíme novou osobu.
osoba = Osoba(user=user) osoba = Osoba(user=user)
# Téhle osobě nejdou nastavit detaily, protože žádné nemáme. # Téhle osobě nejdou nastavit detaily, protože žádné nemáme.
# Datum registrace budiž minimální
osoba.datum_registrace = date.min
else: else:
logger.info(f'Org {org.user.email}(ID: {org.id}) má uživatele {user}') logger.info(f'Org {org.user.email}(ID: {org.id}) má uživatele {user}')
# 💢💢💢 Python nemá goto, ale prý má výjimky… 💢💢💢 # 💢💢💢 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.jmeno = user.first_name
osoba.prijmeni = user.last_name osoba.prijmeni = user.last_name
osoba.email = user.email osoba.email = user.email
user.jmeno = "Použij osobu!" user.jmeno += " (Uživatel!)"
user.prijmeni = "Použij osobu!" user.prijmeni += " (Uživatel!)"
user.email = "Použij osobu!" osoba.datum_registrace = min(osoba.datum_registrace, user.date_joined, key=lambda d: d if d is not None else date.max)
user.save() user.save()
except EndException: pass except EndException: pass

2
seminar/urls.py

@ -156,7 +156,7 @@ urlpatterns = [
path('api/autocomplete/problem/odevzdatelny',views.OdevzdatelnyProblemAutocomplete.as_view(), name='autocomplete_problem_odevzdatelny'), 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/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'), re_path(r'^temp/vue/.*$',views.VueTestView.as_view(),name='vue_test_view'),
path('temp/image_upload/', views.NahrajObrazekKTreeNoduView.as_view()), path('temp/image_upload/', views.NahrajObrazekKTreeNoduView.as_view()),

Loading…
Cancel
Save