From f43b0b4da792cb1544226cec2272e32e82650e9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sat, 25 Dec 2021 14:35:58 +0100 Subject: [PATCH] =?UTF-8?q?Prvn=C3=AD=20pokus=20o=20upload=20p=C5=99=C3=AD?= =?UTF-8?q?loh=20p=C5=99i=20nahr=C3=A1v=C3=A1n=C3=AD=20=C5=99e=C5=A1itelov?= =?UTF-8?q?a=20=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/odevzdavatko/nahraj_reseni.html | 74 +------------------ .../templates/odevzdavatko/posli_reseni.html | 10 ++- .../templates/odevzdavatko/prilohy.html | 73 ++++++++++++++++++ odevzdavatko/views.py | 14 ++++ 4 files changed, 97 insertions(+), 74 deletions(-) create mode 100644 odevzdavatko/templates/odevzdavatko/prilohy.html diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 271b217a..4f818caf 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -33,79 +33,7 @@
-{{ prilohy.management_form }} - -

Soubory s řešením

- -

Maximální součet velikostí příloh je cca 49 MB. Pokud je to možné a dává to smysl, pošli nám prosím své řešení ve formátu PDF, ostatní formáty nemusíme umět otevřít.

-

Pokud svůj soubor rozumně pojmenuješ, urychlíš opravování a předejdeš tomu, že si nějakého tvého řešení nevšimneme. Například z img_250921_101205.pdf nepoznáme, kterou úlohu jsi odevzdal, zato uloha_3.pdf nebo tema_1.pdf, to už je něco jiného. Případně můžeš využít i poznámku řešitele.

- -
-{% for form in prilohy.forms %} -
- {{ form.non_field_errors }} - {# {{ form.errors }} FIXME: možná tohle chceme zobrazovat? #} - - - {% for field in form.visible_fields %} - - - - - - - {% endfor %} - - - -
- - - - {{ field }} - {{ field.help_text|safe }} - {{ field.errors }} - -
-
-{% endfor %} -
- - - - +{% include "odevzdavatko/prilohy.html" %}

Odevzdat řešení

diff --git a/odevzdavatko/templates/odevzdavatko/posli_reseni.html b/odevzdavatko/templates/odevzdavatko/posli_reseni.html index 2a6a2566..1ca47bc1 100644 --- a/odevzdavatko/templates/odevzdavatko/posli_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/posli_reseni.html @@ -3,6 +3,7 @@ {% block script %} {{form.media}} + {% endblock %} {% block content %} @@ -11,9 +12,16 @@ Vložit řešení {% endblock %}{% endblock %} -
+ {% csrf_token %} {{form.as_p}} + +
+ +{% include "odevzdavatko/prilohy.html" %} + +
+

Vložit řešení

diff --git a/odevzdavatko/templates/odevzdavatko/prilohy.html b/odevzdavatko/templates/odevzdavatko/prilohy.html new file mode 100644 index 00000000..e6d4ea42 --- /dev/null +++ b/odevzdavatko/templates/odevzdavatko/prilohy.html @@ -0,0 +1,73 @@ +{{ prilohy.management_form }} + +

Soubory s řešením

+ +

Maximální součet velikostí příloh je cca 49 MB. Pokud je to možné a dává to smysl, pošli nám prosím své řešení ve formátu PDF, ostatní formáty nemusíme umět otevřít.

+

Pokud svůj soubor rozumně pojmenuješ, urychlíš opravování a předejdeš tomu, že si nějakého tvého řešení nevšimneme. Například z img_250921_101205.pdf nepoznáme, kterou úlohu jsi odevzdal, zato uloha_3.pdf nebo tema_1.pdf, to už je něco jiného. Případně můžeš využít i poznámku řešitele.

+ +
+{% for form in prilohy.forms %} +
+ {{ form.non_field_errors }} + {# {{ form.errors }} FIXME: možná tohle chceme zobrazovat? #} + + + {% for field in form.visible_fields %} + + + + + + + {% endfor %} + + + +
+ + + + {{ field }} + {{ field.help_text|safe }} + {{ field.errors }} + +
+
+{% endfor %} +
+ + + + diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index cc571a91..5c1fc5b4 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -357,10 +357,24 @@ class PosliReseniView(LoginRequiredMixin, FormView): nove_reseni.resitele.add(data['resitel']) nove_reseni.problem.add(data['problem']) nove_reseni.save() + + context = self.get_context_data() + prilohy = context['prilohy'] + prilohy.instance = nove_reseni + prilohy.save() # Chtěl jsem, aby bylo vidět, že se to uložilo, tak přesměrovávám na profil. return redirect(reverse('profil')) + def get_context_data(self,**kwargs): + data = super().get_context_data(**kwargs) + if self.request.POST: + data['prilohy'] = f.ReseniSPrilohamiFormSet(self.request.POST,self.request.FILES) + else: + data['prilohy'] = f.ReseniSPrilohamiFormSet() + return data + + class NahrajReseniView(LoginRequiredMixin, CreateView): model = m.Reseni template_name = 'odevzdavatko/nahraj_reseni.html'