Rendre les distributions dynamiques
Je trouve que le concept de "distribution" d'une manière générale est à repenser. C'est la partie qui nous a causé le plus de difficulté lorsque notre AMAP a rejoint Cagette, et en ces temps de confinements et de couvre-feux, le fait que l'on ne puisse pas déplacer facilement l'heure et l'emplacement de toutes les distributions d'un cycle est très limitant.
A l'heure actuelle, il faut créer un cycle de distribution avec des infos précises (date, heure, emplacement, etc.), puis sélectionner les distributions une par une (ou toutes d'un coup) dans un catalogue. Rien de trop compliqué ... sauf si on fait une erreur ou s'il y a un changement imprévu (comme un couvre-feu). Si on a le malheur de s'en apercevoir après avoir créé, voire validé, des souscriptions, alors là, tout se complique !
En se focalisant sur le modèle AMAP d'une distribution par semaine, je propose de repenser le concept de "cycle de distribution" et d'introduire le concept de "semaine de livraison" et de "distribution dynamique".
Tout d'abord, créér un cycle de distribution consisterait non plus à créer des distributions individuelles, mais à programmer une sorte d'"événement récurrent", comme dans une calendrier, avec un jour de la semaine, une heure de début, une heure de fin, un emplacement, ... le tout modifiable à volonté.
Ensuite, tout ce qui importe pour créer un catalogue en AMAP est de savoir à quelle fréquence le producteur compte livrer ses produits : chaque semaine, toutes les deux semaines, une fois par mois, etc. C'est la "périodicité" du catalogue. Cette information, combinée aux dates de début et de fin du catalogue, ainsi qu'aux périodes de vacances du producteur, suffiraient amplement à déterminer les "semaines de livraison" exactes du catalogue, ainsi que son nombre de livraisons total (pour les souscriptions). Comme maintenant, une fois une souscription créée et/ou validée, des garde-fous rendraient difficile toute modification pouvant impacter le planning des "semaines de livraison".
Avec ces deux concepts en place ("événement récurrent" pour les distributions, et "semaines de livraison" pour les catalogues), les "distributions" peuvent devenir un concept totalement dynamique. Pour chaque semaine, si au moins un producteur est programmé pour livrer, alors une distribution apparaît sur Cagette au jour de la semaine donné par l'événement récurrent. Sinon, la distribution n'apparaît pas. Tout simplement ! L'événement récurrent reste modifiable à volonté sans affecter les catalogues.
Rien n'empêche ensuite d'ajouter la possibilté de modifier le jour et l'heure d'une distribution spécifique (comme ce qui est proposé lorsqu'on modifie un événement récurrent dans Google Calendar), de fusionner une semaine de distribution avec une autre, etc. Le concept de distribution dynamique ouvre la porte à de nombreuses autres fonctionnalités.
Semble répondre à un contexte très particulier qui n'a plus cours aujourd'hui, et donc les implications seraient considérables voire contre-productives pour le logiciel.
Dans le quotidien, le fait de formaliser des distributions chaque semaine à une date et horaire précis correspond au besoin de stabilité d'un producteur, qui ne peut s'engager à changer son moment de livraison d'un claquement de doigt. Et c'est cette configuration qui prévaut sur Cagette.
-
BOCCIARELLI Axel commenté
J'ajouterais qu'il faudrait tout de même qu'il soit impossible de créer des souscriptions dans un catalogue avant qu'un événement récurrent n'existe.
Pour plus de flexibilité, on pourrait imaginer permettre la création d'autant d'événements récurrents hebdomadaires que souhaité (par exemple un pour les lundis, un pour les mardis, etc.) et permettre à chaque catalogue d'en sélectionner autant que nécessaire en fonction du nombre de livraisons souhaitées par semaine.
Une fois les événements récurrents sélectionnés et les souscriptions créées et validées dans le catalogue, il serait impossible de retirer un événement récurrent du catalogue (pour ne pas changer le nombre total de livraisons), mais il resterait possible d'en sélectionner un autre (puisque tous les événements récurrents sont hebdomadaires). On garderait ainsi un moyen de supprimer un événement récurrent, même en cours d'année, même si cela n'a plus trop d'intérêt vu que les paramètres des événements récurrents (jour de la semaine, etc.) sont modifiables sans contraintes.