From 76272aa7c28848b6d5f879e135f1bc6dbf63cfab Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 28 Apr 2021 19:41:03 +0200 Subject: [PATCH 1/2] =?UTF-8?q?Zkr=C3=A1=C5=A1len=C3=AD=20seminar.utils.de?= =?UTF-8?q?adline?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/utils.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/seminar/utils.py b/seminar/utils.py index 935bc687..9390f1a3 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -323,15 +323,15 @@ def deadline(datum): datum = datum.date() rok = datum.year # Dva ročníky podezřelé z obsahování dat - pozdejsi_rocnik = m.Rocnik.objects.filter(prvni_rok=rok) - drivejsi_rocnik = m.Rocnik.objects.filter(prvni_rok=rok-1) - if any([ - pozdejsi_rocnik.count() > 1, - drivejsi_rocnik.count() > 1, - ]): - raise ValueError(f"Více ročníků začíná/končí stejným rokem: {rok}") - pozdejsi_rocnik = pozdejsi_rocnik.first() if pozdejsi_rocnik.count() > 0 else None - drivejsi_rocnik = drivejsi_rocnik.first() if drivejsi_rocnik.count() > 0 else None + try: + pozdejsi_rocnik = m.Rocnik.objects.get(prvni_rok=rok) + except m.Rocnik.DoesNotExist: + pozdejsi_rocnik = None + + try: + drivejsi_rocnik = m.Rocnik.objects.get(prvni_rok=rok-1) + except m.Rocnik.DoesNotExist: + drivejsi_rocnik = None if drivejsi_rocnik is not None: # Předpokládáme, že neexistuje číslo, které má deadline ale nemá finální deadline. From 64bb1b2d4dc128b79d0a9cae33e9786227b2e6fa Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 28 Apr 2021 20:49:21 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Migr=20005[12]:=20Debugovac=C3=AD=20pozn?= =?UTF-8?q?=C3=A1mky=20do=20DB=20+=20p=C3=A1r=20fix=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Už dlouho byly ad-hoc na testwebu, tak jsem je udělal oficiální :-) --- seminar/migrations/0051_resitel_to_osoba.py | 1 + seminar/migrations/0052_user_to_organizator.py | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/seminar/migrations/0051_resitel_to_osoba.py b/seminar/migrations/0051_resitel_to_osoba.py index cba9593b..d29f311b 100644 --- a/seminar/migrations/0051_resitel_to_osoba.py +++ b/seminar/migrations/0051_resitel_to_osoba.py @@ -25,6 +25,7 @@ def resitel_to_osoba(apps,schema_editor): o.telefon = r.telefon o.ulice = r.ulice o.user = r.user + o.poznamka += f'\nWEB DEBUG: Osoba pro řešitele {r.id}' if o.user: u = o.user if u.first_name: diff --git a/seminar/migrations/0052_user_to_organizator.py b/seminar/migrations/0052_user_to_organizator.py index ee844d1d..a91a7966 100644 --- a/seminar/migrations/0052_user_to_organizator.py +++ b/seminar/migrations/0052_user_to_organizator.py @@ -23,10 +23,11 @@ def spoj_k_organizatorum_osoby(apps, scema_editor): if user is None: logger.error(f'Org {org} nemá uživatele!') # 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. - # Datum registrace budiž minimální - osoba.datum_registrace = date.min + # Datum registrace budiž maximální + osoba.datum_registrace = date.max else: logger.info(f'Org {org.user.email}(ID: {org.id}) má uživatele {user}') # 💢💢💢 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) if resitele.count() != 0 and user is not None: 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') raise EndException @@ -45,12 +47,14 @@ def spoj_k_organizatorum_osoby(apps, scema_editor): osoba = osoby.first() if osoba.user is None: 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') raise EndException # Fallback logger.warning(f'Org neměl řešitele, zakládám novou Osobu.') 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 # pro osoby z řešitelů (jediné dosud existující osoby) již v minule migraci