diff --git a/TODO b/TODO deleted file mode 100644 index bd669d2..0000000 --- a/TODO +++ /dev/null @@ -1,25 +0,0 @@ -x Ajouter un menu pour revenir à l'élément parent facilement -x Repenser l'interface pour la rendre plus simple -x Refaire une interface plus simple (moins de boutons partout, qu'on s'y retrouve plus) -x Uniformiser le nom des choses. Livraison → Distribution -x Ajouter un numéro de téléphone de la personne référente de la commande -x Il semble que les prix trop précis ne sont pas acceptés -x Utiliser une version lowercase des emails -x Permettre l'ajout de produits -x Ajouter un moyen d'ajouter un⋅e producteurice -x Ajouter un moyen de changer le nom de la personne référente pour un producteur / productrice -x Faciliter la duplication de distribution -x Si un produit est en rupture de stock, alors il n'est pas compté dans les totaux -x Permettre la suppression de producteurs -x Ajouter une info « prix mis à jour » pour les référent⋅e⋅s -x Gérer les frais de livraison -x Ajouter une note explicative pour la répartition des chèques -x Permettre la supression des produits (terminer) -x Gérer le souci d'URL pour l'édition d'Apiluly -x Rendre plus visible l'action de modifier une commande -x Ajouter la trame (agenda d’une distribution) dans la boite à outil du coordinateur -x Repasser sur les tests -x Changer les liens d'emergement, de paiements et ???, trouver de meilleurs dénominations - -Faire un refactoring des modèles -Create an "url_for" utility to simplify URL management. \ No newline at end of file diff --git a/copanier/models.py b/copanier/models.py index ededa8d..bfae37c 100644 --- a/copanier/models.py +++ b/copanier/models.py @@ -295,6 +295,7 @@ class Delivery(PersistedBase): producers: Dict[str, Producer] = field(default_factory=dict) orders: Dict[str, Order] = field(default_factory=dict) shipping: Dict[str, price_field] = field(default_factory=dict) + is_archived: bool = False def __post_init__(self): self.id = None # Not a field because we don't want to persist it. @@ -365,10 +366,6 @@ class Delivery(PersistedBase): def needs_adjustment(self): return self.has_packing and any(self.product_missing(p) for p in self.products) - @property - def is_archived(self): - return self.id and self.id.startswith("archive/") - @classmethod def init_fs(cls): cls.get_root().mkdir(parents=True, exist_ok=True) @@ -387,14 +384,16 @@ class Delivery(PersistedBase): return delivery @classmethod - def all(cls, is_archived=False): + def all(cls): root = cls.get_root() - if is_archived: - root = root / "archive" for path in root.glob("*.yml"): id_ = str(path.relative_to(cls.get_root())).replace(".yml", "") yield Delivery.load(id_) + @classmethod + def archived(cls): + return [d for d in cls.all() if not d.is_archived] + @classmethod def incoming(cls): return sorted( @@ -419,18 +418,14 @@ class Delivery(PersistedBase): def archive(self): if self.is_archived: raise ValueError("La distribution est déjà archivée") - current = self.path - self.id = f"archive/{self.id}" - current.rename(self.path) + self.is_archived = True def unarchive(self): if not self.is_archived: raise ValueError( "Impossible de désarchiver une distribution qui n'est pas archivée" ) - current = self.path - self.id = self.path.stem - current.rename(self.path) + self.is_archived = False def product_wanted(self, product): total = 0 diff --git a/copanier/templates/delivery/edit_delivery.html b/copanier/templates/delivery/edit_delivery.html index 98d28b8..c021c59 100644 --- a/copanier/templates/delivery/edit_delivery.html +++ b/copanier/templates/delivery/edit_delivery.html @@ -6,11 +6,6 @@