Já už nevím, jak určovat deadliny řešení…
This commit is contained in:
		
							parent
							
								
									d9912671ff
								
							
						
					
					
						commit
						87e51ac744
					
				
					 2 changed files with 46 additions and 2 deletions
				
			
		|  | @ -16,10 +16,15 @@ def vytvor_deadliny(apps, schema_editor): | |||
| 
 | ||||
|     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() | ||||
|             h = Hodnoceni.objects.filter(problem__uloha__cislo_zadani=cislo).order_by(F("reseni__cas_doruceni")).last() | ||||
| 
 | ||||
|             if h is None: | ||||
|                 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: | ||||
|             d = Deadline() | ||||
|             d.cislo = cislo | ||||
|  |  | |||
|  | @ -11,11 +11,50 @@ def prirad_deadliny(apps, schema_editor): | |||
|     Deadline = apps.get_model('seminar', 'Deadline') | ||||
| 
 | ||||
|     for h in Hodnoceni.objects.all(): | ||||
|         p = h.problem | ||||
| 
 | ||||
|         try: | ||||
|             u = p.uloha | ||||
|             if u.cislo_zadani is not None: | ||||
|                 d = Deadline.objects.filter(cislo=u.cislo_zadani, deadline__gte=h.reseni.cas_doruceni).first() | ||||
|                 h.deadline_body = d | ||||
|                 h.save() | ||||
|                 continue | ||||
| 
 | ||||
|         except Exception: | ||||
|             pass | ||||
| 
 | ||||
|         try: | ||||
|             c = p.clanek | ||||
|             if c.cislo is not None: | ||||
|                 d = Deadline.objects.filter(cislo=c.cislo, deadline__gte=h.reseni.cas_doruceni).first() | ||||
|                 h.deadline_body = d | ||||
|                 h.save() | ||||
|                 continue | ||||
| 
 | ||||
|         except Exception: | ||||
|             pass | ||||
| 
 | ||||
|         try: | ||||
|             t = p.tema | ||||
|             d = Deadline.objects.filter(cislo__rocnik=t.rocnik, deadline__gte=h.reseni.cas_doruceni).first() | ||||
| 
 | ||||
|             if d is None: | ||||
|                 d = Deadline.objects.filter(cislo__rocnik=t.rocnik).last() | ||||
| 
 | ||||
|             h.deadline_body = d | ||||
|             h.save() | ||||
| 
 | ||||
|         except Exception: | ||||
|             pass | ||||
| 
 | ||||
|         log.warning(f"Deadline hodnocení {h.id} se nepodařil určit exaktnějším způsobem. Zkouším další.") | ||||
| 
 | ||||
|         d = Deadline.objects.filter(deadline__gte=h.reseni.cas_doruceni).first() | ||||
|         h.deadline_body = d | ||||
|         h.save() | ||||
| 
 | ||||
|         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])): | ||||
|         if h.cislo_body and (int(h.deadline_body.cislo.poradi[0]) + 2 < int(h.cislo_body.poradi[0]) or int(h.deadline_body.cislo.poradi[0]) > 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}") | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue