Skip to main content

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

Project description


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


Documentation at


Praekelt Foundation

  • Shaun Sephton

  • Jonathan Bydendyk

  • Euan Jonker

  • Hedley Roos



  1. Add missing migrations.


  1. Simplify as_leaf_class method. It was erroneously assuming it was saving a database query.


  1. Add DjangoModelPermissionsOrAnonReadOnly permissions to jmbo-modelbase-permitted API endpoint.


  1. Use django-sortedm2m because it does proper sorting at ORM level.


  1. Compatibility with Django Rest Framework 3.6


  1. Django 1.9 - 1.11 compatibility.

  2. This release deprecates the items marked for deprecation in the 2.x versions.


  1. Fixed an issue where the patched photologue may flip the image.


  1. Special migration handling for a special database - Oracle.


  1. Move to tox for unit testing.


  1. Add indexes for title and description fields.


  1. Add database index to state.


  1. Safe handling for missing image on an object.


  1. The fix for 2.0.10 was incomplete. Fix it properly.


  1. Fix missing USE_GIS in migrations. It would always try to pull in django-atlas without it.


  1. Add a model that allows a specific curated image to override a scale that would normally be generated.


  1. The ObjectDetail view now respects template_name set at class level.


  1. Simplify template inclusion tags.

  2. The detail and list views now respect the model attribute.


  1. Make object detail template resolution follow the standard Django naming conventions. Backward compatibility is preserved.

  2. Move test templates into tests directory.

  3. Add dependency on django-ultracache and defer jmbocache template tag to ultracache template tag.


  1. Gracefully handle missing images in the API.

  2. Change the site information in the unicode method to be less overwhelming.

  3. Use built-in jQuery for autosave function.


  1. Patch ImageModel delete to handle null image.


  1. Limit photologue to <3.2 because they have stopped supporting Django 1.6.


  1. Disable more filters so Oracle can work.


  1. Disable advanced admin change list filtering if Oracle is the database. The Oracle adapter is buggy.


  1. Allow per content type customization of object header and footer.

  2. Select all sites initially for new items.

  3. The API now dereferences resource URI to the leaf class if possible.

  4. Ensure image field is optional on ModelBase database table as well.


  1. Move to Django 1.6 support. Django 1.4 support is deprecated. For Django 1.4 use Jmbo 1.x.

  2. Add Clone this item button to change forms.

  3. Deprecate gizmo, “wide” template, Pin class.

  4. Deprecate own class based generic views in favour of Django’s equivalent.

  5. Deprecate views related to show objects per category. jmbo-foundry offers a much more powerful solution and scales better.

  6. Limit Relation change form to only ModelBase subclasses.

  7. Deprecate smart_url template tag because Django url template tag does the same now.

  8. Move back to mainline django-photologue.

  9. API now includes image detail url.


  1. Use renamed django-photologue-praekelt.

  2. SEO optimizations in templates.

  3. Make it possible to reach a detail page through a category.


  1. Bump to resolve missing version bump in


  1. API now includes image detail url.

  2. URL pattern to resolve detail page through category.


  1. Ignore result of celery tasks as appropriate.


  1. Relax uniqueness constraint on slugs.


  1. Fix modelbase editing where location field was added to wrong fieldset.


  1. Add logging to jmbocache template tag.


  1. Add a template base.html so unit tests that render detail pages work.

  2. Reshuffle the test layout.


  1. Location aware functionality now only takes effect if both ‘django-atlas` and django.contrib.gis are installed.

  2. django-photologue 2.10 is now the minimum version.


  1. Add rel=”nofollow” on view modifier links.

  2. Fix render_object where context was copied instead of using push and pop.

  3. Simplify sharing link creation.


  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.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jmbo-3.0.5.tar.gz (591.2 kB view hashes)

Uploaded source

Built Distribution

jmbo-3.0.5-py2.7.egg (799.0 kB view hashes)

Uploaded 2 7

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page