Skip to main content

Jmbo foundry behaviour/templates app.

Project description

Jmbo Foundry User Guide

jmbo-foundry ties together the various jmbo products enabling you to rapidly build multilingual web and mobi sites with the minimum amount of code and customization.

jmbo-foundry strives for a high level of through the web configuration. Much of the site’s behaviour is configurable through the admin interface.


Your web presence typically consists of a normal web site and a mobile site. There may be many more types of sites in future and jmbo-foundry makes it easy to configure them independently. If your main site is served on then go to Sites in the admin interface and set Domain name and Display name accordingly. Then add a site entry for your mobile site and set the values to

If you have only one site then you may blindly publish everything that is publishable to this site. However, if you have more than one site and in different languages then understanding sites become significant.

At its most basic level publishing to a site means making content appear on a site. This is easy to understand when the content is eg. an article, but content is not always limited to things which are easily translatable into real world objects.


Preferences can be published to certain sites.

General preferences

Check Private site to make the site accessible only to visitors who are logged in.

Check Show age gateway to enable the age gateway for the site. Visitors must confirm their age before they are allowed to browse the site.

Exempted URLs are URLs which must always be visible regardless of Private site or Age gateway settings. Certain URLs like /login are visible by default and do not need to be listed.

The Analytics tags field may contain javascript. There is a fallback to enable analytics on low-end browsers but it is not configurable through the web. See the section.

Registration preferences

You can select which fields to display on the registration form. Some fields (eg. username) are always visible on the registration form and cannot be removed.

You can select a subset of the displayed fields to be required. Fields which are absolutely required (eg. username) cannot be set to be optional. For instance, if the site users my log in using their mobile number then set mobile_number as a required field.

Some fields may need to be unique, especially those that may be used to log in to the site. Using the mobile number example above you should set mobile_number to be a unique field. It is important to decide beforehand which fields must be unique since it is difficult to remove duplicates if you change this setting. An exeption is raised if you attempt to change this setting and duplicates are detected (friendlier validation still to be added).

Login preferences

Users typically log in to a normal site with their username or email address, whereas a mobile number is a natural login field for a mobile site. Choose from Username only, Email address only, Mobile number only or Username or email address.

Password reset preferences

When a user loses his password he may request a password reset. Normally this is accomplished by sending an email to the user, but in the case of a mobile site it is desirable to send a text. Choose between Email address or Mobile number. Note that a password reset request does not automatically generate a new password for the user since this may lead to malicious people disabling users’ accounts.

Naughty word preferences

You can set a list of weighted words. The report_naughty_words management command identifies potentially offensive comments. An email containing clickable links for approval or deletion is sent to the Email recipients.


A listing is essentially a stored search that can be rendered in a certain style. A listing can be published to certain sites.

Content type, Category and Content are criteria which define the items present in the listing. These criteria are mutually exclusive.

Count specifies the maximum number of items in the listing.

Style is the default way in which the listing is rendered. The styles are vertical, vertical, vertical thumbnail, horizontal, promo and widget. See Listing styles for detail.

Items per page is the number of items to display on a single listing page.

Listing styles

Vertical is a vertical listing with no images.

Vertical thumbnail is a vertical listing with images.

Horizontal is a side-by-side listing with images. Each item looks like a baseball trading card.

Promo collates the items in a slideshow.

Widget is the most complex. It is used when each item can be interactive, eg. a listing of polls. Polls you have already voted on are read-only, and the others may change content once you vote on them. The content type being represented as a widget needs to provide code for this functionality.


Page builder documentation tbc.

How to use dumpdata

To move your jmbo-foundry site between databases you will have to use dumpdata –natural. This will emit natural keys for all relations to external models. Internal relations use primary keys. To safely migrate jmbo-foundry models, use the following: dumpdata –natural –all foundry preferences –exclude=foundry.Member –exclude=foundry.Notification –exclude=foundry.BlogPost –exclude=foundry.ChatRoom –exclude=foundry.FoundryComment

The excluded models subclass external models. You will need to manually dump them along with their parent models.


Praekelt Foundation

  • Shaun Sephton
  • Hedley Roos
  • Euan Jonker
  • Rizmari Versfeld



  1. Bug fix for regression introduced into 0.3.7.


  1. Listings being used within a tile can now choose whether to display a title.
  2. Columns now have an optional title.


  1. Demo is now part og jmbo-skeleton.
  2. Minimum jmbo version required is now >= 0.3.4.
  3. Management command load_photosizes loads photosizes in a sane way.


  1. Adjust South migration dependencies.
  2. Simplify and extend demo.


  1. Batching on tastypie listing API.
  2. Remove django-ckeditor dependency. Handled by jmbo-post.
  3. Patch CsrfTokenNode.render so the input is not wrapped in a hidden container.


  1. Version pins for jmbo and jmbo-post.


  1. Use slug for lookups in tastypie API.


  1. Chatrooms and normal comments can now have distinct appearances. jmbo>=0.3.1 required.


  1. Reduce ajax polling when user is inactive
  2. django-tastypie support added. jmbo and jmbo-post have minimum version requirements.


  1. Pin django-ckeditor to >= 3.6.2
  2. Remember me field now on login and join forms. Checked by default.
  3. Any call to get_XXX_url is now layer aware.
  4. Comment posting now ajaxified depending on browser capabilities.


  1. Remove dependency links.


  1. Add a base_inner.html template so it is easier to override base.html.
  2. Patch listdir so collectstatic does not fail on custom layers for third party foundry-based products.


  1. Use Jaro Winkler for matching naughty words.

0.0.2 (2011-09-27)

  1. Detail view.
  2. Element preferences.

0.0.1 (2011-09-21)

  1. Initial release.

Project details

Release history Release notifications

This version
History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
jmbo_foundry-0.3.8-py2.6.egg (675.8 kB) Copy SHA256 hash SHA256 Egg 2.6
jmbo_foundry-0.3.8-py2.7.egg (675.4 kB) Copy SHA256 hash SHA256 Egg 2.7
jmbo-foundry-0.3.8.tar.gz (436.3 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page