Upgrade odevzdavatka #30
					 1 changed files with 6 additions and 6 deletions
				
			
		| 
						 | 
					@ -415,8 +415,8 @@ class NahrajReseniView(LoginRequiredMixin, CreateView):
 | 
				
			||||||
	def get(self, request, *args, **kwargs):
 | 
						def get(self, request, *args, **kwargs):
 | 
				
			||||||
		# Zaříznutí nezadaných problémů
 | 
							# Zaříznutí nezadaných problémů
 | 
				
			||||||
		nadproblem_id = self.kwargs["nadproblem_id"]
 | 
							nadproblem_id = self.kwargs["nadproblem_id"]
 | 
				
			||||||
		nadproblem = get_object_or_404(m.Problem, id=nadproblem_id)
 | 
							self.nadproblem = get_object_or_404(m.Problem, id=nadproblem_id)
 | 
				
			||||||
		if nadproblem.stav != "zadany":
 | 
							if self.nadproblem.stav != "zadany":
 | 
				
			||||||
			raise PermissionDenied()
 | 
								raise PermissionDenied()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
| 
						 | 
					@ -433,10 +433,10 @@ class NahrajReseniView(LoginRequiredMixin, CreateView):
 | 
				
			||||||
		return super().get(request, *args, **kwargs)
 | 
							return super().get(request, *args, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	def get_initial(self):
 | 
						def get_initial(self):
 | 
				
			||||||
		nadproblem_id = self.kwargs["nadproblem_id"]
 | 
							nadproblem_id = self.nadproblem.id
 | 
				
			||||||
| 
							
							
								
									
	
 
				
				zelvuska marked this conversation as resolved
				
					
					
						Outdated
					
				
			 
			 | 
					|||||||
		return {
 | 
							return {
 | 
				
			||||||
			"nadproblem_id": nadproblem_id,
 | 
								"nadproblem_id": nadproblem_id,
 | 
				
			||||||
			"problem": [] if m.Problem.objects.filter(stav=m.Problem.STAV_ZADANY, nadproblem__id=nadproblem_id) else nadproblem_id
 | 
								"problem": [] if self.nadproblem.podproblem.filter(stav=m.Problem.STAV_ZADANY).exists() else nadproblem_id
 | 
				
			||||||
| 
							
							
								
									
	
 
				
				zelvuska marked this conversation as resolved
				
					
					
						Outdated
					
				
			 
			
				
					
						ledoian
						commented  
			
		Uh, tohle dělá co? Ať už to dělá cokoliv, tak to z toho není zřejmé. Zejména není samozřejmé, kdy je  Po chvíli čtení: když to má podproblémy, tak nic nenabízíme, jinak nabídneme tu věc přímo. Buď bych za ten QuerySet aspoň přidal  
			
			Uh, tohle dělá co? Ať už to dělá cokoliv, tak to z toho není zřejmé. Zejména není samozřejmé, kdy je `QuerySet` falsey.
Po chvíli čtení: když to má podproblémy, tak nic nenabízíme, jinak nabídneme tu věc přímo.
Buď bych za ten QuerySet aspoň přidal `.exists()` ([Dokumentace](https://docs.djangoproject.com/en/3.2/ref/models/querysets/#exists)), nebo úplně vyčlenil:
```python3
...
ma_podproblemy = QuerySet….exists()
...
return {
	...
    "problem": [] if ma_podproblemy else nadproblem_id,
    ...
    }
``` 
			
			
		 | 
					|||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -447,8 +447,8 @@ class NahrajReseniView(LoginRequiredMixin, CreateView):
 | 
				
			||||||
		else:
 | 
							else:
 | 
				
			||||||
			data['prilohy'] = f.ReseniSPrilohamiFormSet()
 | 
								data['prilohy'] = f.ReseniSPrilohamiFormSet()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		data["nadproblem_id"] = self.kwargs["nadproblem_id"]
 | 
							data["nadproblem_id"] = self.nadproblem.id
 | 
				
			||||||
		data["nadproblem"] = get_object_or_404(m.Problem, id=self.kwargs["nadproblem_id"])
 | 
							data["nadproblem"] = get_object_or_404(m.Problem, id=self.nadproblem.id)
 | 
				
			||||||
		return data
 | 
							return data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# FIXME prepsat tak, aby form_valid se volalo jen tehdy, kdyz je form i formset validni
 | 
						# FIXME prepsat tak, aby form_valid se volalo jen tehdy, kdyz je form i formset validni
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue
	
	
Nechceme ten nadproblém rovnou uložit jako Problém do
self? Na první čtení jsem tady měl pocit, že když mi někdo předhodí blbost do URL, že někde něco musí spadnout…Užitečnost uložení přímo Problemu je i v tom, že pak podproblémy můžeš určit jako
nadproblem.podproblemy.count() > 0o kus níž (v rychlosti nevidím, jestli related managers umí i.exists())Disclaimer: kód haluzím, nechtělo se mi to hledat přesně :-)