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:
-
{% for error in errors %}- {{ error }}
{% endfor %}
-
+
+ Attention:
+
{% for error in errors %}- {{ error }}
{% endfor %}
+
{% endif %}
+
{% if unsatisfied %}
-
- Attention: Impossible de trouver des propositions pour les matières suivantes:
-
- {% for matiere in unsatisfied %}- {{ matiere }}
{% endfor %}
-
-
+
+ Attention: Impossible de trouver des propositions pour les matières suivantes:
+
+ {% for matiere in unsatisfied %}- {{ matiere }}
{% endfor %}
+
+
{% endif %}
- {% if proposals %}
+
+
+ {% 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