feat(fournée): sépare les coulées pour une meilleur présentation des fournée complexes
This commit is contained in:
parent
438d071006
commit
8831ae1b16
@ -208,29 +208,17 @@ class FournéeAdmin(nested_admin.NestedModelAdmin):
|
||||
obj = self.model.objects.get(pk=object_id)
|
||||
extra_context["commandes"] = obj.commande_set.all()
|
||||
coulées = obj.coulée_set.all()
|
||||
ingrédients = sorted(
|
||||
set(
|
||||
coulées.values_list(
|
||||
"pâte__ingrédient__nom", "pâte__ingrédient__ordre"
|
||||
)
|
||||
),
|
||||
key=lambda x: x[1],
|
||||
)
|
||||
|
||||
extra_context["ingrédients"] = ingrédients
|
||||
""" on créé un tableau coulée / ingrédient """
|
||||
""" on créé les tableaux coulée / ingrédient """
|
||||
extra_context["coulées"] = []
|
||||
for c in obj.coulée_set.all():
|
||||
tmp = [c]
|
||||
for i, _ in ingrédients:
|
||||
if c.pâte.ingrédient_set.filter(nom=i).exists():
|
||||
tmp.append(
|
||||
(c.quantité / c.pâte.poids_de_base * sum(
|
||||
c.pâte.ingrédient_set.filter(nom=i).values_list("quantité", flat=True)
|
||||
)).quantize(Decimal('1.000')).normalize()
|
||||
)
|
||||
else:
|
||||
tmp.append("")
|
||||
quantités = [c, ]
|
||||
ingrédients = c.pâte.ingrédient_set.values_list('nom', flat=True)
|
||||
for i in ingrédients:
|
||||
quantités.append((c.quantité / c.pâte.poids_de_base * sum(
|
||||
c.pâte.ingrédient_set.filter(nom=i).values_list("quantité", flat=True)
|
||||
)).quantize(Decimal('1.000')).normalize())
|
||||
|
||||
masse_coulée = sum(
|
||||
obj.coulée_set.filter(pâte=c.pâte).values_list(
|
||||
"quantité", flat=True
|
||||
@ -243,9 +231,20 @@ class FournéeAdmin(nested_admin.NestedModelAdmin):
|
||||
problems = f"{(masse_coulée - masse_commandée).normalize()} kg coulés en trop !!"
|
||||
elif masse_coulée < masse_commandée:
|
||||
problems = f"{(masse_commandée - masse_coulée).normalize()} kg coulés en moins !!"
|
||||
extra_context["coulées"].append([problems, tmp])
|
||||
pains = set(obj.commande_set.exclude(réservation__isnull=True).values_list("pains__nom", flat=True))
|
||||
extra_context["coulées"].append([problems, ingrédients, quantités])
|
||||
|
||||
""" on créé un tableau total coulée / ingrédient """
|
||||
ingrédients = sorted(
|
||||
set(
|
||||
coulées.values_list(
|
||||
"pâte__ingrédient__nom", "pâte__ingrédient__ordre"
|
||||
)
|
||||
),
|
||||
key=lambda x: x[1],
|
||||
)
|
||||
extra_context["ingrédients"] = ingrédients
|
||||
|
||||
pains = set(obj.commande_set.exclude(réservation__isnull=True).values_list("pains__nom", flat=True))
|
||||
totaux = []
|
||||
for i, _ in ingrédients:
|
||||
total = sum([
|
||||
|
@ -27,26 +27,42 @@
|
||||
<th scope="col" style="text-align:center">{{ i }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Totaux</th>
|
||||
{% for p in totaux_coulées %}
|
||||
<th scope="col" style="text-align:center">{{ p }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for problems, coulée in coulées %}
|
||||
<tr{% if problems %} style="color: var(--delete-button-hover-bg);"{% endif %}>
|
||||
{% for i in coulée %}
|
||||
{% if forloop.first %}<th scope="row">{% else %}<td style="text-align:center">{% endif %}
|
||||
{{ i }}
|
||||
{% if forloop.first %}{% if problems %} ({{ problems }}){% endif %}</th>{% else %}</td>{% endif %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<p></p>
|
||||
<div style="display:inline-grid">
|
||||
{% for problems, ingrédients, quantités in coulées %}
|
||||
<h3 style="margin-top: 2em{% if problems %}; color: var(--delete-button-hover-bg);{% endif %}">{{ quantités.0 }}{% if problems %} ({{ problems }}){% endif %}</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
{% for i in ingrédients %}
|
||||
<th scope="col" style="text-align:center">{{ i }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
{% for q in quantités %}
|
||||
{% if forloop.first %}
|
||||
<th scope="row">{{ q.pâte.nom }}</th>
|
||||
{% else %}
|
||||
<td style="text-align:center">{{ q }}</td>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if divisions %}
|
||||
<hr>
|
||||
|
Loading…
Reference in New Issue
Block a user