Odevzdávátko: skoro správně formulář
This commit is contained in:
parent
428d1c5db9
commit
cf175a50b2
2 changed files with 19 additions and 7 deletions
|
@ -383,14 +383,25 @@ class OdevzdavatkoTabulkaFiltrForm(forms.Form):
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def gen_terminy_safe(cls):
|
||||||
|
"Při prvotních migracích / nasazeních webu neexistuje nastavení, takže to hodí výjimku, kterou musíme požrat..."
|
||||||
|
try:
|
||||||
|
return cls.gen_terminy()
|
||||||
|
except NotImplementedError:
|
||||||
|
return [
|
||||||
|
('1970-01-01', "Je to rozbitý"),
|
||||||
|
('2012-12-12', "Svět skončil v roce 2012")
|
||||||
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def gen_initial(cls):
|
def gen_initial(cls):
|
||||||
terminy = cls.gen_terminy()
|
terminy = cls.gen_terminy()
|
||||||
initial = {
|
initial = {
|
||||||
'resitele': cls.RESITELE_RELEVANTNI,
|
'resitele': cls.RESITELE_RELEVANTNI,
|
||||||
'problemy': cls.PROBLEMY_MOJE,
|
'problemy': cls.PROBLEMY_MOJE,
|
||||||
'reseni_od': terminy[-2][0],
|
'reseni_od': terminy[-2],
|
||||||
'reseni_do': terminy[-1][0],
|
'reseni_do': terminy[-1],
|
||||||
}
|
}
|
||||||
return initial
|
return initial
|
||||||
|
|
||||||
|
@ -399,16 +410,17 @@ class OdevzdavatkoTabulkaFiltrForm(forms.Form):
|
||||||
super().__init__(initial=self.gen_initial(), *args, **kwargs)
|
super().__init__(initial=self.gen_initial(), *args, **kwargs)
|
||||||
else:
|
else:
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
# choices jako parametr Select widgetu neumí brát callable, jen iterable, takže si pro jednoduchost můžu rovnou uložit výsledek sem...
|
# choices jako parametr Select widgetu neumí brát callable, jen iterable, takže si pro jednoduchost můžu rovnou uložit výsledek sem...
|
||||||
# A "sem" znamená do libovolné metody, protože jinak se jedná o kód, který django spustí při inicializaci a protože potřebujeme databázi, tak by spadnul při vyrábění testdat...
|
# A "sem" znamená do libovolné metody, protože jinak se jedná o kód, který django spustí při inicializaci a protože potřebujeme databázi, tak by spadnul při vyrábění testdat...
|
||||||
self.terminy = self.gen_terminy()
|
self.terminy = self.gen_terminy()
|
||||||
|
self.fields['reseni_od'].widget = forms.Select(choices=self.gen_terminy_safe())
|
||||||
|
self.fields['reseni_od'].initial = self.terminy[-2]
|
||||||
|
self.fields['reseni_do'].widget = forms.Select(choices=self.gen_terminy_safe())
|
||||||
|
self.fields['reseni_do'].initial = self.terminy[-1]
|
||||||
|
|
||||||
# NOTE: Initial definuji pro jednotlivé fieldy, aby to bylo tady a nebylo potřeba to řešit ve views...
|
# NOTE: Initial definuji pro jednotlivé fieldy, aby to bylo tady a nebylo potřeba to řešit ve views...
|
||||||
resitele = forms.ChoiceField(choices=RESITELE_CHOICES)
|
resitele = forms.ChoiceField(choices=RESITELE_CHOICES)
|
||||||
problemy = forms.ChoiceField(choices=PROBLEMY_CHOICES)
|
problemy = forms.ChoiceField(choices=PROBLEMY_CHOICES)
|
||||||
|
|
||||||
# reseni_od = forms.DateField(input_formats=[DATE_FORMAT], widget=forms.Select(choices=self.terminy))
|
|
||||||
# reseni_do = forms.DateField(input_formats=[DATE_FORMAT], widget=forms.Select(choices=self.terminy))
|
|
||||||
reseni_od = forms.DateField(input_formats=[DATE_FORMAT])
|
reseni_od = forms.DateField(input_formats=[DATE_FORMAT])
|
||||||
reseni_do = forms.DateField(input_formats=[DATE_FORMAT])
|
reseni_do = forms.DateField(input_formats=[DATE_FORMAT])
|
||||||
|
|
|
@ -60,8 +60,8 @@ class TabulkaOdevzdanychReseniView(ListView):
|
||||||
initial = FiltrForm.gen_initial()
|
initial = FiltrForm.gen_initial()
|
||||||
resitele = initial['resitele']
|
resitele = initial['resitele']
|
||||||
problemy = initial['problemy']
|
problemy = initial['problemy']
|
||||||
reseni_od = initial['reseni_od']
|
reseni_od = initial['reseni_od'][0]
|
||||||
reseni_do = initial['reseni_do']
|
reseni_do = initial['reseni_do'][0]
|
||||||
|
|
||||||
|
|
||||||
# Filtrujeme!
|
# Filtrujeme!
|
||||||
|
|
Loading…
Reference in a new issue