diff --git a/petitscours/templates/petitscours/traitement_demande.html b/petitscours/templates/petitscours/traitement_demande.html index e95edb61..2ea3e751 100644 --- a/petitscours/templates/petitscours/traitement_demande.html +++ b/petitscours/templates/petitscours/traitement_demande.html @@ -9,50 +9,58 @@ {% include "petitscours/details_demande_infos.html" %}
+ {% if errors %} -
- Attention: - -
+
+ Attention: + +
{% endif %} + {% if unsatisfied %} -
- Attention: Impossible de trouver des propositions pour les matières suivantes: - -
+
+ Attention: Impossible de trouver des propositions pour les matières suivantes: + +
{% endif %} - {% if proposals %} + +
- {% csrf_token %} - Propositions: - -

Mails pour les membres proposés :

- {% for proposeduser, mail in proposed_mails %} -
Pour {{ proposeduser }}:
- {% with object=mail.0 content=mail.1 %} -
{{ object }}
-
{{ content }}
- {% endwith %} - {% endfor %} -

Mail pour l'auteur de la demande :

- {% with object=mainmail.0 content=mainmail.1 %} -
{{ object }}
-
{{ content|safe }}
- {% endwith %} - - {% if redo %}{% endif %} - + {% csrf_token %} + {% if redo %}{% endif %} + {% if proposals %} + Propositions: + +

Mails pour les membres proposés :

+ {% for proposeduser, mail in proposed_mails %} +
Pour {{ proposeduser }}:
+ {% with object=mail.0 content=mail.1 %} +
{{ object }}
+
{{ content }}
+ {% endwith %} + {% endfor %} +

Mail pour l'auteur de la demande :

+ {% with object=mainmail.0 content=mainmail.1 %} +
{{ object }}
+
{{ content|safe }}
+ {% endwith %} + + +
+ {% else %} +

Impossible de trouver des propositions pour cette demande

+
Traitement manuel obligatoire !
+ + + {% endif %} - {% else %} -

Impossible de trouver des propositions pour cette demande

-
Traitement manuel obligatoire !
- {% endif %} +

Retour à la liste des demandes

diff --git a/petitscours/views.py b/petitscours/views.py index 61230239..157570a4 100644 --- a/petitscours/views.py +++ b/petitscours/views.py @@ -185,11 +185,27 @@ def _traitement_other(request, demande, redo): def _traitement_post(request, demande): + redo = "redo" in request.POST + manual = "manual" in request.POST + + if not manual: + _traitement_attributions(request, demande) + + demande.traitee = True + demande.traitee_par = request.user + demande.processed = timezone.now() + demande.save() + return render( + request, + "petitscours/traitement_demande_success.html", + {"demande": demande, "redo": redo}, + ) + +def _traitement_attributions(request, demande): proposals = {} proposed_for = {} unsatisfied = [] extra = request.POST["extra"].strip() - redo = "redo" in request.POST attribdata = request.POST["attribdata"] attribdata = dict(json.loads(attribdata)) for matiere in demande.matieres.all(): @@ -253,15 +269,6 @@ def _traitement_post(request, demande): user=user, matiere=matiere, demande=demande, rank=rank + 1 ) attrib.save() - demande.traitee = True - demande.traitee_par = request.user - demande.processed = timezone.now() - demande.save() - return render( - request, - "petitscours/traitement_demande_success.html", - {"demande": demande, "redo": redo}, - ) @login_required