Django-minipub is a minimalpublication control system for Django. I wrote this app in 2013/2014 and I've used it on several websites... However, I've never had the time to talk about it! Time to fix that oversight.
The best way to explain it is with an example: you have a 'news' application, with an Article model. In the admin interface, Minipub will add this fieldset:
All articles will then have the following 3 fields:
- status: usually
draft
orpublished
. - start: start date.
- end: end date; optional.
Articles will only be visible in the public website if they are published
and today's date is between the start and end dates.
In addition, we have a fieldset for showing various read-only status fields:
These can be of use for tracking changes to an Article.
And that's it... Minipub is simply a few fields on a Model Mixin, together with plenty of code - in the models, views, admin and sitemap - to make the best use of it, that you will hopefully reuse again and again throughout a project.
What can I use it for?
Here are some examples of Minipub at work:
- Controlling the publication of the Events for a F1 racetrack.
- Controlling when job offers are displayed.
- Minutes of the meetings of a residents association website.
Alternatives
There are several similar projects that take slightly different approaches to publication control; usually they introduce more complex control. A well-known example is django-reversion.
Conclusion
Minipub is a very simple publication control tool that works well on several production websites. I have found it be a decent compromise between a tool that's too basic to be useful, and a tool that's too complex to be understood by its intended end users.