Add the agenda of a delivery to the toolbox page.

This commit is contained in:
Daniel Atwood 2020-04-07 19:47:05 +02:00
parent 7c1c7a686a
commit 74f4229fd0
6 changed files with 81 additions and 5 deletions

4
TODO
View file

@ -17,9 +17,9 @@ x Ajouter une note explicative pour la répartition des chèques
x Permettre la supression des produits (terminer) x Permettre la supression des produits (terminer)
x Gérer le souci d'URL pour l'édition d'Apiluly x Gérer le souci d'URL pour l'édition d'Apiluly
x Rendre plus visible l'action de modifier une commande x Rendre plus visible l'action de modifier une commande
x Ajouter la trame (agenda dune distribution) dans la boite à outil du coordinateur
Ajouter la trame (agenda dune distribution) dans la boite à outil du coordinateur Changer les liens d'emergement, de solde et ???, trouver de meilleurs dénominations
Faire un refactoring des modèles Faire un refactoring des modèles
Repasser sur les tests Repasser sur les tests

View file

@ -495,3 +495,15 @@ class Delivery(PersistedBase):
percentage_person = person_amount / producer_total percentage_person = person_amount / producer_total
shipping = percentage_person * producer_shipping shipping = percentage_person * producer_shipping
return shipping return shipping
@property
def dates(self):
delivery_date = self.from_date.date()
return {
"creation_date": self.order_before - timedelta(weeks=4),
"price_update_start": self.order_before - timedelta(weeks=4),
"price_update_deadline": self.order_before - timedelta(weeks=2),
"order_before": self.order_before,
"adjustment_deadline": self.order_before + timedelta(days=4),
"delivery_date": delivery_date
}

View file

@ -685,4 +685,13 @@ ul.actions > li {
.underline { .underline {
text-decoration: underline; text-decoration: underline;
text-decoration-style: dotted; text-decoration-style: dotted;
}
.fixed-table {
width: 100%;
table-layout: fixed;
}
.fixed-table td, .fixed-table th{
white-space:pre-wrap;
} }

View file

@ -13,7 +13,7 @@ Bonjour,
Et voilà, les commandes maintenant terminées, il est maintenant temps de passer à l'action ! Et voilà, les commandes maintenant terminées, il est maintenant temps de passer à l'action !
En pièce-jointe, les informations pour les producteurs⋅rices dont tu est référent⋅e. En pièce-jointe, les informations pour les producteurs⋅rices dont tu est référent⋅e.
Tu peux aussi retrouver le doc à cette URL : https://{{ request.host }}/distribution/{{ delivery.id }}/produits Tu peux aussi retrouver le doc à cette URL : https://{{ request.host }}/produits/{{ delivery.id }}
Rendez-vous pour la distribution, le {{ delivery.from_date|date }} de {{ delivery.from_date|time }} à {{ delivery.to_date|time }} à {{ delivery.where }}. Rendez-vous pour la distribution, le {{ delivery.from_date|date }} de {{ delivery.from_date|time }} à {{ delivery.to_date|time }} à {{ delivery.where }}.

View file

@ -3,11 +3,66 @@
{% block toplink %}<a href="/distribution/{{ delivery.id }}">↶ Retourner à la distribution</a>{% endblock %} {% block toplink %}<a href="/distribution/{{ delivery.id }}">↶ Retourner à la distribution</a>{% endblock %}
{% block body %} {% block body %}
<h1>Gérer « {{ delivery.name }} »</h1>
<div class="header">
<h1>Gestion de la distribution « {{ delivery.name }} »</h1>
</div>
{% set display_counts = True %} {% set display_counts = True %}
{% include "includes/delivery_head.html" %} {% include "includes/delivery_head.html" %}
<table class="pure-table fixed-table">
<thead>
<tr>
<th>Quoi ?</th><th>Dates</th><th>Coordinatrice⋅eur</th><th>Référent⋅e⋅s produits</th>
</tr>
</thead>
<tbody>
<tr>
<th>Création de la distribution</th>
<td>{{ delivery.dates.creation_date | date}}</td>
<td>Rappeler aux référent⋅e⋅s produit de mettre leurs prix à jour, vérifier que tous les producteurs⋅rices sont bien présentes, en ajouter si besoin</td>
<td>-</td>
</tr>
<tr>
<th>Mise à jour des prix</th>
<td>Du {{ delivery.dates.price_update_start | date }} au {{ delivery.dates.price_update_deadline | date}}</td>
<td></td>
<td>Les référent⋅e⋅s produit mettent les prix à jour.</td>
</tr>
<tr>
<th>Commandes</td>
<td>Du {{ delivery.dates.price_update_deadline | date }} au {{ delivery.dates.order_before | date }}</td>
<td>Envoyer le lien de commande aux groupes pour qu'iels commandent</td>
<td></td>
</tr>
<tr>
<th>Ajustements</th>
<td>Du {{ delivery.dates.order_before | date }} au {{ delivery.dates.adjustment_deadline | date }}</td>
<td>S'assurer que les ajustements sont bien faits par les participant⋅e⋅s</td>
<td>Faire les ajustements à la main si besoin</td>
</tr>
<tr>
<th>Approvisionnements</th>
<td>Du {{ delivery.dates.adjustment_deadline | date }} au {{ delivery.dates.delivery_date | date }}</td>
<td><a href="/distribution/{{ delivery.id }}/envoi-email-referentes">Envoyer les infos de commande aux référent⋅e⋅s</a></td>
<td>Faire les commandes aux producteurs⋅rices, <strong>récupérer les produits</strong></td>
</tr>
<tr>
<th>Préparation de la distribution</th>
<td>La veille du {{ delivery.dates.delivery_date | date }}</td>
<td><a href="/distribution/{{ delivery.id }}/émargement">Imprimer les bons de commandes par colocation</a></td>
<td></td>
</tr>
<tr>
<th>Distribution</th>
<td>{{ delivery.dates.delivery_date | date }}</td>
<td>Coordoner la distribution, <a href="/distribution/{{ delivery.id }}/solde">faire la répartition des chèques</a></td>
<td>Arriver 30mn avant le début de la distribution, répartir les produits par coloc</td>
</tr>
</tbody>
</table>
<h3>Emails des référent⋅e⋅s</h3> <h3>Emails des référent⋅e⋅s</h3>
<p>Au cas où, quoi.</p> <p>Au cas où, quoi.</p>
<textarea class="list-emails" rows=5>{{ referents | join(', ') }}</textarea> <textarea class="list-emails" rows=5>{{ referents | join(', ') }}</textarea>

View file

@ -142,7 +142,7 @@ async def send_referent_emails(request, response, id):
response.message(f"Un mail à été envoyé aux {sent_mails} référent⋅e⋅s") response.message(f"Un mail à été envoyé aux {sent_mails} référent⋅e⋅s")
response.redirect = f"/distribution/{id}/gérer" response.redirect = f"/distribution/{id}/gérer"
response.html("delivery/referent_email.html", {"delivery": delivery}) response.html("delivery/prepare_referent_email.html", {"delivery": delivery})
@app.route("/distribution/{id}/exporter", methods=["GET"]) @app.route("/distribution/{id}/exporter", methods=["GET"])