Django-minipub est un 'model mixin' pour controller la publication d'objets. J'ai écris cet app en 2013/2014, et utilisé sur plusieurs projets... Cependant, je n'ai jamais eu le temps d'en parler! Cet article corrige cet oubli.
Expliquons minipub par un exemple: votre projet Django a une appli 'news', avec un model qui s'appelle 'Article'. Dans l'interface admin, minipub ajoutera ce fieldset:
NB: vous remarquerez certainement que minipub est en Anglais. Une traduction en Français est à l'étude ;-)
Tous les Articles auront alors 3 champs:
- status:
draft
oupublished
. - start: date de début de publication.
- end: date de fin de publication; champ optionel.
Les articles seront visibles dans la partie publique de votre site seulement si leur statut est published
et si la date d'aujourd'hui est entre les dates de début et de fin de publication.
De plus, nous avons un fieldset pour suivre les dates de création et de modification de l'Article:
Et c'est tout... Minipub, c'est quelques champs sur un Mixin pour vos Models, et du code - models, views, admin et sitemaps - pour en tirer le maximum.
Et ça peut servir à quoi?
Voici quelques examples de sites web utilisant Minipub:
- Controller la publication d'annonces d'évenements pour un circuit automobile connu.
- Controller la publication d'annonces d'emploi sur un site web.
- Les comptes-rendus d'une association de quartier.
Alternatives
Il existe plusieurs autres projets qui proposent des approches différentes, en général avec une gestion plus riche (et plus complexe) de la publication. Une alternative populaire est django-reversion.
Conclusion
Minipub est une application simple, mais qui fonctionne bien sur plusieurs sites web en production. Je voulais trouver un bon compromis entre une application trop basique pour être utile, ou à l'inverse trop complexe pour être comprise par ses utilisateurs. J'éspère y être arrivé.