More fix, dunno
This commit is contained in:
parent
fec62b8c5e
commit
978b87203a
1 changed files with 29 additions and 7 deletions
|
@ -15,19 +15,38 @@ def spoj_k_organizatorum_osoby(apps, scema_editor):
|
|||
for org in Organizator.objects.all():
|
||||
|
||||
# Spárování organizátora s osobou
|
||||
# Myšlenka: Když najdeme řešitele pro daného uživatele, tak se vezme Osoba příslušná uživateli,
|
||||
# Pokud nenajdeme uživatele, tak ještě zkusíme dohledat Osobu podle e-mailu
|
||||
user = org.user
|
||||
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)
|
||||
else:
|
||||
logger.info(f'Org {org} má uživatele {user}')
|
||||
resitele = Resitel.objects.filter(user=user)
|
||||
if resitele.count() != 0:
|
||||
osoba = resitele.first().osoba
|
||||
logger.info(f'Našel jsem řešitele {resitle.first()}, používám jeho Osobu')
|
||||
else:
|
||||
logger.info(f'Org {org.user.email}(ID: {org.id}) má uživatele {user}')
|
||||
# 💢💢💢 Python nemá goto, ale prý má výjimky… 💢💢💢
|
||||
class EndException(Exception): pass
|
||||
try:
|
||||
# Hledáme podle uživatele
|
||||
resitele = Resitel.objects.filter(user=user)
|
||||
if resitele.count() != 0 and user is not None:
|
||||
osoba = resitele.first().osoba
|
||||
logger.info(f'Našel jsem řešitele {resitele.first().email} podle uživatele, používám jeho Osobu')
|
||||
raise EndException
|
||||
|
||||
# Hledáme podle e-mailu
|
||||
osoby = Osoba.objects.filter(email=user.email)
|
||||
if osoby.count() != 0 and user.email != '':
|
||||
osoba = osoby.first()
|
||||
if osoba.user is None:
|
||||
osoba.user = user
|
||||
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)
|
||||
except EndException: pass
|
||||
|
||||
# Přesun informací z usera do osoby
|
||||
# pro řešitele již v minule migraci
|
||||
|
@ -57,7 +76,10 @@ def fix_problem(apps, schema_editor):
|
|||
else:
|
||||
pr.autor = None
|
||||
if pr.opravovatel is not None:
|
||||
pr.opravovatele.add(Organizator.objects.filter(osoba__user=pr.opravovatel).first())
|
||||
if Organizator.objects.filter(osoba__user=pr.opravovatel).first() is not None:
|
||||
pr.opravovatele.add(Organizator.objects.filter(osoba__user=pr.opravovatel).first())
|
||||
else:
|
||||
logger.error(f'WTF, nespárovaný opravovatel {pr.opravovatel} problému {pr}')
|
||||
pr.save()
|
||||
|
||||
def fix_pohadka(apps, schema_editor):
|
||||
|
|
Loading…
Reference in a new issue