Odstranění treelib z ukládání čísla
This commit is contained in:
		
							parent
							
								
									8ba08dbcc5
								
							
						
					
					
						commit
						750006ebb5
					
				
					 1 changed files with 28 additions and 17 deletions
				
			
		|  | @ -31,26 +31,37 @@ class CisloForm(ModelForm): | |||
| 	def clean(self): | ||||
| 		if self.cleaned_data.get('verejne_db') == False: | ||||
| 			return self.cleaned_data | ||||
| 		cn = m.CisloNode.objects.get(cislo=self.instance) | ||||
| 		# cn = m.CisloNode.objects.get(cislo=self.instance) | ||||
| 		# errors = [] | ||||
| 		# for ch in tl.all_children(cn): | ||||
| 		# 	if isinstance(ch, m.TemaVCisleNode): | ||||
| 		# 		if ch.tema.stav not in \ | ||||
| 		# 			(m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): | ||||
| 		# 			errors.append(ValidationError('Téma %(tema)s není zadané ani vyřešené', params={'tema':ch.tema})) | ||||
| 		# | ||||
| 		# 	if isinstance(ch, m.UlohaZadaniNode) or isinstance(ch, m.UlohaVzorakNode): | ||||
| 		# 		if ch.uloha.stav not in \ | ||||
| 		# 			(m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): | ||||
| 		# 			errors.append(ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha':ch.uloha})) | ||||
| 		# 	if isinstance(ch, m.ReseniNode): | ||||
| 		# 		for problem in ch.reseni.problem_set: | ||||
| 		# 			if problem not in \ | ||||
| 		# 				(m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): | ||||
| 		# 				errors.append(ValidationError('Problém %s není zadaný ani vyřešený', code=problem)) | ||||
| 		# if errors: | ||||
| 		# 	errors.append(ValidationError(mark_safe('<b>Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v <a href="/admin/seminar/cislo">seznamu čísel</a></b>'))) | ||||
| 		# 	raise ValidationError(errors) | ||||
| 
 | ||||
| 		errors = [] | ||||
| 		for ch in tl.all_children(cn): | ||||
| 			if isinstance(ch, m.TemaVCisleNode): | ||||
| 				if ch.tema.stav not in \ | ||||
| 					(m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): | ||||
| 					errors.append(ValidationError('Téma %(tema)s není zadané ani vyřešené', params={'tema':ch.tema})) | ||||
| 				 | ||||
| 			if isinstance(ch, m.UlohaZadaniNode) or isinstance(ch, m.UlohaVzorakNode): | ||||
| 				if ch.uloha.stav not in \ | ||||
| 					(m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): | ||||
| 					errors.append(ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha':ch.uloha})) | ||||
| 			if isinstance(ch, m.ReseniNode): | ||||
| 				for problem in ch.reseni.problem_set: | ||||
| 					if problem not in \ | ||||
| 						(m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): | ||||
| 						errors.append(ValidationError('Problém %s není zadaný ani vyřešený', code=problem)) | ||||
| 		for ch in m.Uloha.objects.filter(cislo_zadani=self.instance): | ||||
| 			if ch.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): | ||||
| 				errors.append( | ||||
| 					ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha': ch})) | ||||
| 		if errors: | ||||
| 			errors.append(ValidationError(mark_safe('<b>Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v <a href="/admin/seminar/cislo">seznamu čísel</a></b>'))) | ||||
| 			errors.append(ValidationError(mark_safe( | ||||
| 				'<b>Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v <a href="/admin/seminar/cislo">seznamu čísel</a></b>'))) | ||||
| 			raise ValidationError(errors) | ||||
| 
 | ||||
| 		return self.cleaned_data | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Jonas Havelka
						Jonas Havelka