Django-minipub: a minimal publication control mixin

Tag:Django

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 or published.
  • start: start date.
  • end: end date; optional.

Articles will only be visible in the public website if they are publishedand 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:

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.

Links

Minipub project page on Github 

Documentation on ReadTheDocs