Doplnění deadlinů, větší rozptyl kontroly
This commit is contained in:
		
							parent
							
								
									e33a80b16d
								
							
						
					
					
						commit
						d9912671ff
					
				
					 2 changed files with 12 additions and 5 deletions
				
			
		|  | @ -3,6 +3,7 @@ | ||||||
| import datetime | import datetime | ||||||
| from django.db import migrations, models | from django.db import migrations, models | ||||||
| import django.db.models.deletion | import django.db.models.deletion | ||||||
|  | from django.db.models import F | ||||||
| from django.utils import timezone | from django.utils import timezone | ||||||
| 
 | 
 | ||||||
| import seminar.models as m | import seminar.models as m | ||||||
|  | @ -11,13 +12,19 @@ import seminar.models as m | ||||||
| def vytvor_deadliny(apps, schema_editor): | def vytvor_deadliny(apps, schema_editor): | ||||||
|     Cislo = apps.get_model('seminar', 'Cislo') |     Cislo = apps.get_model('seminar', 'Cislo') | ||||||
|     Deadline = apps.get_model('seminar', 'Deadline') |     Deadline = apps.get_model('seminar', 'Deadline') | ||||||
|  |     Hodnoceni = apps.get_model('seminar', 'Hodnoceni') | ||||||
| 
 | 
 | ||||||
|     for cislo in Cislo.objects.all(): |     for cislo in Cislo.objects.all(): | ||||||
|  |         if not (cislo.datum_deadline or cislo.datum_deadline_soustredeni or cislo.datum_preddeadline): | ||||||
|  |             h = Hodnoceni.objects.filter(cislo_body=cislo).order_by(F("reseni__cas_doruceni")).last() | ||||||
|  |             if h is not None: | ||||||
|  |                 cislo.datum_deadline = h.reseni.cas_doruceni.date() | ||||||
|  |                 cislo.save() | ||||||
|         if cislo.datum_deadline_soustredeni and cislo.datum_deadline_soustredeni == cislo.datum_preddeadline: |         if cislo.datum_deadline_soustredeni and cislo.datum_deadline_soustredeni == cislo.datum_preddeadline: | ||||||
|             d = Deadline() |             d = Deadline() | ||||||
|             d.cislo = cislo |             d.cislo = cislo | ||||||
|             d.typ = m.Deadline.TYP_PRVNI_A_SOUS |             d.typ = m.Deadline.TYP_PRVNI_A_SOUS | ||||||
|             d.deadline = timezone.make_aware(datetime.datetime.combine(cislo.datum_deadline_soustredeni, datetime.time.max)) |             d.deadline = timezone.make_aware(datetime.datetime.combine(cislo.datum_deadline_soustredeni, datetime.time.min)) + datetime.timedelta(days=1) | ||||||
|             d.verejna_vysledkovka = cislo.verejna_vysledkovka |             d.verejna_vysledkovka = cislo.verejna_vysledkovka | ||||||
|             d.save() |             d.save() | ||||||
|         else: |         else: | ||||||
|  | @ -25,14 +32,14 @@ def vytvor_deadliny(apps, schema_editor): | ||||||
|                 d = Deadline() |                 d = Deadline() | ||||||
|                 d.cislo = cislo |                 d.cislo = cislo | ||||||
|                 d.typ = m.Deadline.TYP_SOUS |                 d.typ = m.Deadline.TYP_SOUS | ||||||
|                 d.deadline = timezone.make_aware(datetime.datetime.combine(cislo.datum_deadline_soustredeni, datetime.time.max)) |                 d.deadline = timezone.make_aware(datetime.datetime.combine(cislo.datum_deadline_soustredeni, datetime.time.min)) + datetime.timedelta(days=1) | ||||||
|                 d.verejna_vysledkovka = cislo.verejna_vysledkovka |                 d.verejna_vysledkovka = cislo.verejna_vysledkovka | ||||||
|                 d.save() |                 d.save() | ||||||
|             if cislo.datum_preddeadline: |             if cislo.datum_preddeadline: | ||||||
|                 d = Deadline() |                 d = Deadline() | ||||||
|                 d.cislo = cislo |                 d.cislo = cislo | ||||||
|                 d.typ = m.Deadline.TYP_PRVNI |                 d.typ = m.Deadline.TYP_PRVNI | ||||||
|                 d.deadline = timezone.make_aware(datetime.datetime.combine(cislo.datum_preddeadline, datetime.time.max)) |                 d.deadline = timezone.make_aware(datetime.datetime.combine(cislo.datum_preddeadline, datetime.time.min)) + datetime.timedelta(days=1) | ||||||
|                 d.verejna_vysledkovka = cislo.verejna_vysledkovka |                 d.verejna_vysledkovka = cislo.verejna_vysledkovka | ||||||
|                 d.save() |                 d.save() | ||||||
| 
 | 
 | ||||||
|  | @ -40,7 +47,7 @@ def vytvor_deadliny(apps, schema_editor): | ||||||
|             d = Deadline() |             d = Deadline() | ||||||
|             d.cislo = cislo |             d.cislo = cislo | ||||||
|             d.typ = m.Deadline.TYP_CISLA |             d.typ = m.Deadline.TYP_CISLA | ||||||
|             d.deadline = timezone.make_aware(datetime.datetime.combine(cislo.datum_deadline, datetime.time.max)) |             d.deadline = timezone.make_aware(datetime.datetime.combine(cislo.datum_deadline, datetime.time.min)) + datetime.timedelta(days=1) | ||||||
|             d.verejna_vysledkovka = cislo.verejna_vysledkovka |             d.verejna_vysledkovka = cislo.verejna_vysledkovka | ||||||
|             d.save() |             d.save() | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ def prirad_deadliny(apps, schema_editor): | ||||||
|         h.deadline_body = d |         h.deadline_body = d | ||||||
|         h.save() |         h.save() | ||||||
| 
 | 
 | ||||||
|         if h.cislo_body and int(h.deadline_body.cislo.poradi) + 1 != int(h.cislo_body.poradi[0]): |         if h.cislo_body and (int(h.deadline_body.cislo.poradi) + 2 < int(h.cislo_body.poradi[0]) or int(h.deadline_body.cislo.poradi) > int(h.cislo_body.poradi[0])): | ||||||
|             log.error(f"Hodnocení {h.id} se špatně změnilo číslo z {h.cislo_body} na {h.deadline_body.cislo}") |             log.error(f"Hodnocení {h.id} se špatně změnilo číslo z {h.cislo_body} na {h.deadline_body.cislo}") | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue