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
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky