Aktualizace přidávátka úloh a problémů (desetinná čísla a číslo místo dílu)
This commit is contained in:
parent
0a58751155
commit
955dd60235
1 changed files with 7 additions and 7 deletions
|
@ -27,7 +27,7 @@ class HromadnePridaniForm(Form):
|
||||||
""" Formulář pro hromadné přidání úložek a problémů """
|
""" Formulář pro hromadné přidání úložek a problémů """
|
||||||
|
|
||||||
tema = CharField(label="Název tématu:")
|
tema = CharField(label="Název tématu:")
|
||||||
dil = IntegerField(label="Díl:", min_value=1)
|
cislo = IntegerField(label="Číslo:", min_value=1)
|
||||||
body = CharField(label="Počty bodů (0 pro problém) oddělené čárkami:")
|
body = CharField(label="Počty bodů (0 pro problém) oddělené čárkami:")
|
||||||
|
|
||||||
def clean_tema(self):
|
def clean_tema(self):
|
||||||
|
@ -41,7 +41,7 @@ class HromadnePridaniForm(Form):
|
||||||
def clean_body(self):
|
def clean_body(self):
|
||||||
""" Kontrola, že `body` je seznam čísel """
|
""" Kontrola, že `body` je seznam čísel """
|
||||||
try:
|
try:
|
||||||
list(map(int, self.cleaned_data["body"].split(",")))
|
list(map(float, self.cleaned_data["body"].split(",")))
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise ValidationError("Špatný formát bodů")
|
raise ValidationError("Špatný formát bodů")
|
||||||
return self.cleaned_data['body']
|
return self.cleaned_data['body']
|
||||||
|
@ -64,21 +64,21 @@ class HromadnePridaniView(FormView):
|
||||||
""" Upravený Pavlův skript na hromadné přidání úložek a problémů. """
|
""" Upravený Pavlův skript na hromadné přidání úložek a problémů. """
|
||||||
cd = form.cleaned_data
|
cd = form.cleaned_data
|
||||||
tema = cd["tema"]
|
tema = cd["tema"]
|
||||||
dil = cd["dil"]
|
cislo = cd["cislo"]
|
||||||
body = list(map(int, cd["body"].split(",")))
|
body = list(map(float, cd["body"].split(",")))
|
||||||
|
|
||||||
t = Problem.objects.get(nazev__exact=tema, nadproblem=None)
|
t = Problem.objects.get(nazev__exact=tema, nadproblem=None)
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
pfx = f"{t.nazev}, díl {dil}, "
|
pfx = f"{t.nazev}, "
|
||||||
|
|
||||||
for k, b in enumerate(body, 1):
|
for k, b in enumerate(body, 1):
|
||||||
u = Uloha.objects.create(
|
u = Uloha.objects.create(
|
||||||
nadproblem=t,
|
nadproblem=t,
|
||||||
nazev=pfx + f"{'úloha' if b > 0 else 'problém'} {k}",
|
nazev=pfx + f"{'úloha' if b > 0 else 'problém'} {cislo}.{k}",
|
||||||
autor=t.autor,
|
autor=t.autor,
|
||||||
garant=t.garant,
|
garant=t.garant,
|
||||||
max_body=b,
|
max_body=b,
|
||||||
cislo_zadani=Cislo.get(t.rocnik.rocnik, dil),
|
cislo_zadani=Cislo.get(t.rocnik.rocnik, cislo),
|
||||||
kod=k,
|
kod=k,
|
||||||
stav=Problem.STAV_ZADANY,
|
stav=Problem.STAV_ZADANY,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue