skip to navigation
skip to content

jmbo 1.0.13

The Jmbo base product introduces a content type and various tools required to build Jmbo products.

Latest Version: 3.0.5


The Jmbo base product introduces a content type and various tools required to build Jmbo products.


Jmbo is a CMS built on Django enabling you to rapidly build multilingual web and mobi sites with the minimum amount of code and customization.

The Jmbo base product introduces abstract models and concepts that are used in Jmbo products.

Content types

Trivial content type

Jmbo itself has no content type. For our purposes assume a trivial content type called Trivial Content.

  1. Title is self-explanatory.

  2. Subtitle is an optional field that is only visible in the admin interface. If you have two items with the same title (a common case in multilingual sites) then add extra text in the subtitle to distinguish between the items.

  3. Description is an optional field. It is good practice to set it since sites like Facebook read it when content is shared.

  4. See below.

  5. See below.

  6. You should always attempt to set an image since sites look dull without them! All popular formats up to 1MB in size are supported. An aspect ratio of 4:3 is preferred but an attempt is made to convert the uploaded image into a 4:3 format. Applications may override this aspect ratio as they wish.

    Crop from and Effect are for advanced use. Crop from is used when the default cropping algorithm is eg. chopping a person’s head off.

  7. See below.

  8. See below.

  9. Image overrides are for advanced use. The image you upload in 6 is converted behind the scenes into potentially many sizes. If the algorithm produces undesirable results you can override each size as required.

  10. Save and publish saves the item and makes it publicly accessible.

  11. Save and add another saves the item. You are redirected to a screen to add a new trivial content item.

  12. Save and continue editing saves the item. You stay on the edit screen.

  13. Save saves the item. You are redirected to a listing of all trivial content items.

  1. Jmbo uses the Django sites framework. This means items can be selectively published to one or more sites. Select the applicable sites, or use the shortcuts to select a group of sites.
  2. Publish on is an optional date on which to publish the item. If you leave it empty you must publish the item manually, eg. by clicking Save and publish.
  3. Retract on is an optional date on which to retract the item. If you leave it empty you must unpublish the item manually, eg. by clicking Save and unpublish.
  4. Publishers is marked for deprecation. The idea was to publish an item to eg. Facebook. Unfortunately those platforms often have unstable API’s, making it impractical.
  1. Jmbo uses categories from django-category. Categorizing an item enables you to display it in a certain context. An example is a listing (as defined by jmbo-foundry) of all items in a category.
  2. The primary category is considered the most important category. Once again it enables you do display the item in a certain context.
  3. Freeform tagging of an item allows more ways of searching for it.
  4. Created date and time is when the item was created. If you leave it empty it is automatically set to the current time.
  5. The owner of the item. The dropdown may change into an autocomplete field if there are many people to choose from.
  1. Enable commenting for this item. Comments will not display when disabled.
  2. Enable anonymous commenting for this item.
  3. Close commenting for this item. Comments will still display, but users won’t be able to add new comments.
  4. Enable liking for this item. Likes will not display when disabled.
  5. Enable anonymous liking for this item.
  6. Close liking for this item. Likes will still display, but users won’t be able to add new likes.

A trivial item as it is seen by the public.


Praekelt Foundation

  • Shaun Sephton
  • Jonathan Bydendyk
  • Euan Jonker
  • Hedley Roos



  1. Fix a broken find link in


  1. Fix incorrect file permissions.


  1. Add functionality to periodically autosave certain fields on the change form.
  2. Change change list ordering to be -publish_on, -created.
  3. Change get_related_items ordering to be -publish_on, -created.
  4. Use a celery task to publish content.
  5. Permalink now links to all sites.


  1. Change secretballot usage so it does not hijack the objects manager anymore.
  2. Add owner_override and image_attribution fields.


  1. Change permitted manager and generic object detail so staff can preview unpublished content.
  2. Aggregate total comments and likes onto ModelBase to prevent expensive queries.


  1. Add caching template tag jmbocache which automatically adds the SITE_ID as part of the cache key.


  1. Generic caching on detail templates.
  2. Share on Google.


  1. Add a list filter in admin to filter ModelBase objects by site and site group.
  2. ModelBase.__unicode__ includes the site name - non-admin templates that rely on __unicode__ will have to be updated.
  3. Set title, description and keywords meta tags on detail page.
  4. comment_count is now aware that multiple sites may comprise a logical site.


  1. Make jmbo_publish command timezone-aware, ensuring that it works with old, naive timestamps.


  1. Restore crop from field to a more prominent position.


  1. Simplify the change form. Move advanced fields into their own section.


  1. Ensure the leaf object is passed to template tags in modelbase_detail.html.
  2. get_related_items parameter name is now optional. The sorting has changed to reverse on modified (our default sorting).


  1. as_leaf_class method would break if two models had the same name. Fixed.


  1. Jmbo is now location aware. This requires a manual upgrade of libraries and existing databases. DO NOT UPGRADE to 1.0 without preparation. If you are on Ubuntu then it is as simple as running the interactive script.


  1. modelbase_detail inclusion template now has a block for easier re-use.
  2. Simplified paginator. No more breadcrumbs.
  3. Introduce object_footer template which shows sharing links.
  4. can_comment has an API change. It has always only been used internally and should not cause problems.
  5. README.rst gets friendlier documentation.


  1. Pin Django on 1.4.x range.


  1. Add Save and publish and Save and unpublish buttons to edit form.


  1. Use django.jQuery instead of $ to trigger publish ajax call. $ is not necessarily available.

0.5.1 (2012-08-20)

  1. on_likes_enabled_test and on_can_vote_test signal receivers now only checks ModelBase based objects. Also updated for compatibility with django-likes 0.0.8, which updated its signal’s obj param to conventional instance. django-likes >= 0.0.8 is now required for correct operation.


  1. Django 1.4 compatible release. Django 1.4 is now required.


  1. Detail templates can now be customized per model. Create {app_label}/{model}_detail.html.
  2. publish_on and retract_on filters are now applied via management command jmbo_publish. Run it via cron.
  3. Published state is not directly editable through change form anymore. It is now an action.

0.3.4 (2012-06-26)

  1. Natural key support for dumping and loading data.

0.3.3 (2012-06-20)

  1. Use Pillow instead of PIL.


  1. Use slug for lookups in tastypie API.

0.3.1 (2012-06-15)

  1. Add a decorator register_tag that can accept a softcoded list of templates.

0.3 (2012-06-14)

  1. django-tastypie support added

0.2.6 (2012-06-07)

  1. Add image_list_url to Modelbase.
  2. Pin django-setuptest to 0.0.6 because of issue in 0.0.7

0.2.5 (2012-05-11)

  1. Admin category filtering now filters on both categories and primary_category fields.


  1. Remove dependency links in

0.2.3 (2012-05-08)

  1. render_object tag now fails with clear TemplateDoesNot exist exception.


  1. Include category filtering in admin.


  1. Find links in


  1. Add Opengraph metadata tags to detail view.
  2. Add dependency on django-sites-groups.
  3. Setup South migration chain.


  1. Bring pager HTML and CSS in line with django-pagination.
  2. Add wrapping div to comments UI.
  3. Fix admin interface bug where some fields were duplicated.
  4. Reverse lookup for <content_type>_object_detail now works for model names that may contain spaces, eg. ‘Blog Post’.
  5. Add fallback to modelbase detail view to get_absolute_url.
  6. Add ability to limit size of queryset for generic views.
  7. Afrikaans and French translations.
  8. Make it possible to specify a custom photosize per content type.
  9. Introduce a new optional field ‘subtitle’ for friendlier admin UI.
  10. Add South migrations. Existing installations must be upgraded using ./ migrate jmbo 0001 –fake and then ./ migrate jmbo.

0.1.9 (2011-09-27)

  1. Added primary category field on ModelBase.
  2. Allow for modifier on humanize time diff tag.
  3. Added category pin model and admin override.

0.1.7 (2011-06-15)

  1. Jmbo rename.


  1. Added state admin bulk actions.


  1. Use photologue 2.6.praekelt


  1. Generate slug optimization.


  1. Refactored ModelBase.comment_count to resolve comments for leaf class or modelbase content types.


  1. Generic form issues corrected.


  1. Use django-photologue 2.5.praekelt


  1. Improved generate_slug utils method.
  2. Removed ModelBaseAdminForm.
File Type Py Version Uploaded on Size
jmbo-1.0.13-py2.7.egg (md5) Python Egg 2.7 2014-04-23 662KB
jmbo-1.0.13.tar.gz (md5) Source 2014-04-23 888KB