Django-mininews is a basic tool for controlling the publication of objects.
Let's take an example: you have a 'news' application, that just consists of a Article model. In the admin interface, mininews will add this fieldset:
All articles will have the following 3 fields:
- status: usually 'draft' or 'published'.
- start: start date, defaults to whenever the status is changed to
published
. - end: end date; optional.
Articles can only be viewed in the public website if they are published
and 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... Mininews is just an abstract Model, together with plenty of code - in the models, views, admin and sitemap - to make the best use of it, that you will reuse again and again throughout a project.
Here are some examples of Mininews at work:
- Minutes of the meetings of an association.
- Controlling the publication of the Events at a well-known racetrack.
- Controlling when job offers are displayed.
There are several similar projects that take slightly different approaches to publication control; usually they introduce more sophisticated control. A well-known example is django-reversion.
Mininews is a very basic publication control tool, but works well on several production websites. Its author has found it be a decent compromise between a tool that's too basic to be useful, and too complex to be understood by its intended end users.
Please take a look at the documentation on ReadTheDocs.