Browse Source

Merge branch 'data_migrations' into test

middleware_test
Pavel "LEdoian" Turinsky 4 years ago
parent
commit
7770dbf134
  1. 1
      seminar/migrations/0051_resitel_to_osoba.py
  2. 10
      seminar/migrations/0052_user_to_organizator.py
  3. 18
      seminar/utils.py

1
seminar/migrations/0051_resitel_to_osoba.py

@ -25,6 +25,7 @@ def resitel_to_osoba(apps,schema_editor):
o.telefon = r.telefon o.telefon = r.telefon
o.ulice = r.ulice o.ulice = r.ulice
o.user = r.user o.user = r.user
o.poznamka += f'\nWEB DEBUG: Osoba pro řešitele {r.id}'
if o.user: if o.user:
u = o.user u = o.user
if u.first_name: if u.first_name:

10
seminar/migrations/0052_user_to_organizator.py

@ -23,10 +23,11 @@ def spoj_k_organizatorum_osoby(apps, scema_editor):
if user is None: if user is None:
logger.error(f'Org {org} nemá uživatele!') logger.error(f'Org {org} nemá uživatele!')
# 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()
osoba.poznamka += f'\nWEB DEBUG: BUG: Osoba pro Orga {org.id} bez Uživatele'
# 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í # Datum registrace budiž maximální
osoba.datum_registrace = date.min osoba.datum_registrace = date.max
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… 💢💢💢
@ -36,6 +37,7 @@ def spoj_k_organizatorum_osoby(apps, scema_editor):
resitele = Resitel.objects.filter(user=user) resitele = Resitel.objects.filter(user=user)
if resitele.count() != 0 and user is not None: if resitele.count() != 0 and user is not None:
osoba = resitele.first().osoba osoba = resitele.first().osoba
osoba.poznamka += f'\nWEB DEBUG: Osoba pro Orga {org.id} spárovaná podle Uživatele Řešitele'
logger.info(f'Našel jsem řešitele {resitele.first().email} podle uživatele, používám jeho Osobu') logger.info(f'Našel jsem řešitele {resitele.first().email} podle uživatele, používám jeho Osobu')
raise EndException raise EndException
@ -45,12 +47,14 @@ def spoj_k_organizatorum_osoby(apps, scema_editor):
osoba = osoby.first() osoba = osoby.first()
if osoba.user is None: if osoba.user is None:
osoba.user = user osoba.user = user
osoba.poznamka += f'\nWEB DEBUG: Osoba pro Orga {org.id} spárovaná podle e-mailu'
logger.info(f'Našel jsem Osobu {osoby.first().email} podle e-mailu') logger.info(f'Našel jsem Osobu {osoby.first().email} podle e-mailu')
raise EndException raise EndException
# Fallback # Fallback
logger.warning(f'Org neměl řešitele, zakládám novou Osobu.') logger.warning(f'Org neměl řešitele, zakládám novou Osobu.')
osoba = Osoba(user=user) osoba = Osoba(user=user)
osoba.poznamka += f'\nWEB DEBUG: Osoba pro Orga {org.id} vytvořena nová jen podle existence Uživatele'
# Přesun informací z usera do osoby # Přesun informací z usera do osoby
# pro osoby z řešitelů (jediné dosud existující osoby) již v minule migraci # pro osoby z řešitelů (jediné dosud existující osoby) již v minule migraci

18
seminar/utils.py

@ -323,15 +323,15 @@ def deadline(datum):
datum = datum.date() datum = datum.date()
rok = datum.year rok = datum.year
# Dva ročníky podezřelé z obsahování dat # Dva ročníky podezřelé z obsahování dat
pozdejsi_rocnik = m.Rocnik.objects.filter(prvni_rok=rok) try:
drivejsi_rocnik = m.Rocnik.objects.filter(prvni_rok=rok-1) pozdejsi_rocnik = m.Rocnik.objects.get(prvni_rok=rok)
if any([ except m.Rocnik.DoesNotExist:
pozdejsi_rocnik.count() > 1, pozdejsi_rocnik = None
drivejsi_rocnik.count() > 1,
]): try:
raise ValueError(f"Více ročníků začíná/končí stejným rokem: {rok}") drivejsi_rocnik = m.Rocnik.objects.get(prvni_rok=rok-1)
pozdejsi_rocnik = pozdejsi_rocnik.first() if pozdejsi_rocnik.count() > 0 else None except m.Rocnik.DoesNotExist:
drivejsi_rocnik = drivejsi_rocnik.first() if drivejsi_rocnik.count() > 0 else None drivejsi_rocnik = None
if drivejsi_rocnik is not None: if drivejsi_rocnik is not None:
# Předpokládáme, že neexistuje číslo, které má deadline ale nemá finální deadline. # Předpokládáme, že neexistuje číslo, které má deadline ale nemá finální deadline.

Loading…
Cancel
Save