Skip to main content

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

Project description

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

.. figure:: https://travis-ci.org/praekelt/jmbo.svg?branch=develop
:align: center
:alt: Travis

.. contents:: Contents
:depth: 5

Overview
--------

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.

.. image:: https://raw.github.com/praekelt/jmbo/develop/images/admin.png

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.

.. image:: https://raw.github.com/praekelt/jmbo/develop/images/publishing.png

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.

.. image:: https://raw.github.com/praekelt/jmbo/develop/images/meta.png

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.

.. image:: https://raw.github.com/praekelt/jmbo/develop/images/commenting-liking.png

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.

.. figure:: https://raw.github.com/praekelt/jmbo/develop/images/content.png
:align: center

A trivial item as it is seen by the public.

Authors
=======

Praekelt Foundation
-------------------

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

Changelog
=========

2.0.0a1
-------
#. Move to Django 1.6 support. Django 1.4 support is deprecated. For Django 1.4 use Jmbo 1.x.
#. Add `Clone this item` button to change forms.
#. Deprecate gizmo, "wide" template, Pin class.
#. Deprecate own class based generic views in favour of Django's equivalent.
#. Deprecate views related to show objects per category. `jmbo-foundry` offers a much more powerful solution and scales better.
#. Limit Relation change form to only ModelBase subclasses.
#. Deprecate smart_url template tag because Django url template tag does the same now.
#. Move back to mainline `django-photologue`.
#. API now includes image detail url.

1.2.0
-----
#. Use renamed django-photologue-praekelt.
#. SEO optimizations in templates.
#. Make it possible to reach a detail page through a category.

1.1.7
-----
#. Bump to resolve missing version bump in setup.py.

1.1.6
-----
#. API now includes image detail url.
#. URL pattern to resolve detail page through category.
>>>>>>> develop

1.1.5
-----
#. Ignore result of celery tasks as appropriate.

1.1.4
-----
#. Relax uniqueness constraint on slugs.

1.1.3
-----
#. Fix modelbase editing where location field was added to wrong fieldset.

1.1.2
-----
#. Add logging to `jmbocache` template tag.

1.1.1
-----
#. Add a template `base.html` so unit tests that render detail pages work.
#. Reshuffle the test layout.

1.1
---
#. Location aware functionality now only takes effect if both 'django-atlas` and `django.contrib.gis` are installed.
#. `django-photologue` 2.10 is now the minimum version.

1.0.14
------
#. Add `rel="nofollow"` on view modifier links.
#. Fix `render_object` where context was copied instead of using push and pop.
#. Simplify sharing link creation.

1.0.13
------
#. Fix a broken find link in `setup.py`.

1.0.12
------
#. Fix incorrect file permissions.

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

1.0.10
------
#. Change secretballot usage so it does not hijack the objects manager anymore.
#. Add `owner_override` and `image_attribution` fields.

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

1.0.8
-----
#. Add caching template tag `jmbocache` which automatically adds the `SITE_ID` as part of the cache key.

1.0.7
-----
#. Generic caching on detail templates.
#. Share on Google.

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

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

1.0.4
-----
#. Restore crop from field to a more prominent position.

1.0.3
-----
#. Simplify the change form. Move advanced fields into their own section.

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

1.0.1
-----
#. `as_leaf_class` method would break if two models had the same name. Fixed.

1.0
---
#. 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 ``convert_to_geodb_ubuntu.sh`` script.

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

0.5.4
-----
#. Pin Django on 1.4.x range.

0.5.3
-----
#. Add `Save and publish` and `Save and unpublish` buttons to edit form.

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

0.5.1 (2012-08-20)
------------------
#. ``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.

0.5
---
#. Django 1.4 compatible release. Django 1.4 is now required.

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

0.3.4 (2012-06-26)
------------------
#. Natural key support for dumping and loading data.

0.3.3 (2012-06-20)
------------------
#. Use Pillow instead of PIL.

0.3.2
-----
#. Use slug for lookups in tastypie API.

0.3.1 (2012-06-15)
------------------
#. Add a decorator register_tag that can accept a softcoded list of templates.

0.3 (2012-06-14)
----------------
#. django-tastypie support added

0.2.6 (2012-06-07)
------------------
#. Add image_list_url to Modelbase.
#. Pin django-setuptest to 0.0.6 because of issue in 0.0.7

0.2.5 (2012-05-11)
------------------
#. Admin category filtering now filters on both categories and primary_category fields.

0.2.4
-----
#. Remove dependency links in setup.py.

0.2.3 (2012-05-08)
------------------
#. render_object tag now fails with clear TemplateDoesNot exist exception.

0.2.2
-----
#. Include category filtering in admin.

0.2.1
-----
#. Find links in setup.py

0.2
---
#. Add Opengraph metadata tags to detail view.
#. Add dependency on django-sites-groups.
#. Setup South migration chain.

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

0.1.9 (2011-09-27)
------------------
#. Added primary category field on ModelBase.
#. Allow for modifier on humanize time diff tag.
#. Added category pin model and admin override.

0.1.7 (2011-06-15)
------------------
#. Jmbo rename.

0.1.6
-----
#. Added state admin bulk actions.

0.1.5
-----
#. Use photologue 2.6.praekelt

0.1.4
-----
#. Generate slug optimization.

0.1.3
-----
#. Refactored ModelBase.comment_count to resolve comments for leaf class or modelbase content types.

0.1.2
-----
#. Generic form issues corrected.

0.1.1
-----
#. Use django-photologue 2.5.praekelt

0.1.0
-----
#. Improved generate_slug utils method.
#. Removed ModelBaseAdminForm.

Project details


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