Metadata-Version: 1.0
Name: jmbo-foundry
Version: 1.1.3
Summary: 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.
Home-page: http://github.com/praekelt/jmbo-foundry
Author: Praekelt Foundation
Author-email: dev@praekelt.com
License: BSD
Description: Jmbo Foundry
        ============
        **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.**
        
        .. contents:: Contents
            :depth: 5
        
        Overview
        --------
        
        `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.
        
        Installation
        ------------
        
        Use `jmbo-skeleton <http://pypi.python.org/pypi/jmbo-skeleton>`_ to set up a
        Jmbo environment. It is not recommended to install `jmbo-foundry` by itself.
        
        Supported Jmbo products
        -----------------------
        
        `jmbo-foundry` pulls in these Jmbo products.
        
        +-----------------------------------------------------------------------+-------+-------+-----+------------+
        | Product                                                               | Basic | Smart | Web | Translated |
        +=======================================================================+=======+=======+=====+============+
        |`jmbo <http://pypi.python.org/pypi/jmbo>`_                             |       |       |     | 100%       |
        +-----------------------------------------------------------------------+-------+-------+-----+------------+
        |`jmbo-banner <http://pypi.python.org/pypi/jmbo-banner>`_               | x     |       |     | N/A        |
        +-----------------------------------------------------------------------+-------+-------+-----+------------+
        |`jmbo-calendar <http://pypi.python.org/pypi/jmbo-calendar>`_           | x     |       |     | 0%         |
        +-----------------------------------------------------------------------+-------+-------+-----+------------+
        |`jmbo-competition <http://pypi.python.org/pypi/jmbo-competition>`_     | x     | x     |     | 0%         |
        +-----------------------------------------------------------------------+-------+-------+-----+------------+
        |`jmbo-downloads <http://pypi.python.org/pypi/jmbo-downloads>`_         | x     |       |     | 0%         |
        +-----------------------------------------------------------------------+-------+-------+-----+------------+
        |`jmbo-gallery <http://pypi.python.org/pypi/jmbo-gallery>`_             | x     | x     | x   | 100%       |
        +-----------------------------------------------------------------------+-------+-------+-----+------------+
        |`jmbo-poll <http://pypi.python.org/pypi/jmbo-poll>`_                   | x     |       |     | 100%       |
        +-----------------------------------------------------------------------+-------+-------+-----+------------+
        |`jmbo-post <http://pypi.python.org/pypi/jmbo-post>`_                   | x     |       |     | 100%       |
        +-----------------------------------------------------------------------+-------+-------+-----+------------+
        
        Sites
        -----
        
        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
        `www.mysite.com` 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 `m.mysite.com`.
        
        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
        -----------
        
        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 `settings.py` 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`.
        
        Listings
        --------
        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.
        
        Links
        -----
        
        A `link` is a re-usable pointer to something, be it inside the site or external.
        
        `URL`, `Category`, `View name` and `Target` fields are mutually exclusive.
        
        `View name` warrants further explanation. It is the name of a named Django
        view, eg. `contact-us`.  The vocabulary is all the named views in the Django
        site excluding those with a variable parameter.
        
        Navbars
        -------
        
        A navigation bar typically contains a small amount of items since horizontal
        space is limited.  Each item in the navigation bar is represented as a `Link`.
        A navbar can be published to certain sites.
        
        A navbar with slug `main` is considered special. It is assumed to be the site 
        navbar by default.
        
        Menus
        -----
        
        A menu is essentially the same as a navigation bar, except it has a vertical
        layout by default.
        
        A menu with slug `main` is considered special. It is assumed to be the site
        menu by default.
        
        Pages
        -----
        
        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:
        
            migrate.py 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.
        
        Layers
        ------
        
        A layer is a rendering target. `jmbo-foundry` defines four type of layers:
        basic, smart and web. Templates, styling, javascript, images and even code
        can all be different per payer. This enables optimal support for different
        devices from the same codebase.
        
        Layers are arranged in this hierarchy. 
        
          basic - smart
          basic - web
        
        If eg. the template my_page.html is not found in the web layer then it falls
        back to my_page.html from the basic layer. The basic layer must be complete.
        
        Authors
        =======
        
        Praekelt Foundation
        -------------------
        
        * Shaun Sephton
        * Hedley Roos
        * Euan Jonker
        * Rizmari Versfeld
        
        Changelog
        =========
        
        1.1.3
        -----
        #. Use `django-social-auth` to authenticate against external providers.
        #. Drop the wizard style of registration. This is required for consistent UX when registering via Facebook.
        #. Listings no longer include unpublished items that are referenced by the Content or Pinned fields.
        
        1.1.2
        -----
        #. Fix migration 0045 which would case South to complain about a previous set not being frozen.
        #. Page objects can now be styled with extra CSS. This is useful when using a page as a campaign.
        
        1.1.1
        -----
        #. Filter Foundry comments by content type in admin.
        #. Remove redundant chatroom detail template. It caused a comment count bug.
        #. Allow social sharing of content even if it is a private site.
        #. Remove jquery from basic layer since it causes out of memory errors on some devices. We will in future look for an API compatible replacement.
        #. Add `jmbo-twitter` as dependency.
        #. Provide three customizable listings to enable developers to easily add more listings.
        
        1.1
        ---
        #. Rename potentially confusing photosizes used in listing item templates. Old photosizes are retained for backward compatibility. If your app redefines a photosize for `listing_*` then you must update those photosize names.
        #. Handle favicon.ico requests so they do not 404.
        #. Include `jmbo-gallery` admin urls.
        
        1.0.1
        -----
        #. Make fields in registration form reorderable.
        #. Set initial values for location and age in registration form, when possible.
        #. Remove hack to django-autopaginate to allow last page as default view. We have our own replacement autopaginate tag now.
        
        1.0
        ---
        #. Patch django.contrib.sites.models.Site.__unicode__ so it returns name and not domain. The UI gets confusing since we have up to three sites comprising one logical mobi site.
        #. Listings now have automatic RSS feeds.
        #. Comment form now fires up correct virtual keyboard for a smart phone.
        #. Logged in members can now flag offensive comments. After three flags a moderator is notified.
        #. Some IP addresses can now be allowed to bypass the age gateway / private site.
        #. Listing gets an optional RSS feed.
        #. Simplified paginator. No more breadcrumbs.
        #. Show less metadata in mobi listings.
        #. Ditch addthis sharing widget. It is too slow.
        #. Simplified commenting and chatroom. Removed some navigation links.
        #. Some user agents can now be allowed to bypass the age gateway. This allows bots to crawl the site.
        #. Up required jmbo to 1.0.
        
        0.7.2
        -----
        #. Hotfix. Apps with empty URL patterns cause infinite recursion when adding a page.
        
        0.7.1
        -----
        #. Hotfix. Remove references deprecated `jmbo-gallery` views.
        
        0.7
        ---
        #. A listing now has an optional view modifier. This makes it possible to filter or order the listing.
        #. `compute_settings` function is now redundant thanks to the introduction of `foundry.finders.FileSystemLayerAwareFinder`. Add this finder to STATICFILES_FINDERS as the first item.
        #. Gallery specific code ported to `jmbo-gallery`. `base_inner.html` has a new link to gallery CSS and JS. If you have a customized template then update accordingly.
        #. Up required `jmbo-gallery` to 0.1.
        
        0.6.4
        -----
        #. Replace deprecated message_set call.
        
        0.6.3
        -----
        #. Move FileSystemStorage listdir monkey patch to __init__.py so it is applied for collectstatic.
        
        0.6.2
        -----
        #. Django 1.4 incompatibilities with login and password reset fixed.
        #. More tests.
        
        0.6.1
        -----
        #. Change admin static file urls to use 'static' filter instead of deprecated 'ADMIN_MEDIA_PREFIX'.
        
        0.6
        ---
        #. Up required jmbo to 0.5. Django 1.4 now implicitly required. You may get errors on template loaders not being found. See the Django 1.4 changelog in that case.
        
        0.5.1
        -----
        #. Clean up ajax batching of listings for basic and smart layers. 
        #. View modifiers and modelbase_list.html style templates are not ajaxified anymore.
        #. Country model has new field country code.
        #. Up required jmbo to 0.4.
        
        0.5
        ---
        #. "More" style batching for smart layer.
        #. Listings now have optional pinned items which are anchored to the top of a listing.
        #. Default photosizes for basic, mid, smart and web. Some old settings have changed so existing images may be scaled differently.
        
        0.4
        ---
        #. `layered` decorator so you can write different views for different layers without cluttering urls.py.
        
        0.3.10
        ------
        #. Translation for search form.
        #. Member profile editing regression fixed.
        
        0.3.9
        -----
        #. Searching now working.
        
        0.3.8
        -----
        #. Bug fix for regression introduced into 0.3.7.
        
        0.3.7
        -----
        #. Listings being used within a tile can now choose whether to display a title.
        #. Columns now have an optional title.
        
        0.3.6
        -----
        #. Demo is now part og jmbo-skeleton.
        #. Minimum jmbo version required is now >= 0.3.4.
        #. Management command load_photosizes loads photosizes in a sane way.
        
        0.3.5
        -----
        #. Adjust South migration dependencies.
        #. Simplify and extend demo.
        
        0.3.4
        -----
        #. Batching on tastypie listing API.
        #. Remove django-ckeditor dependency. Handled by jmbo-post.
        #. Patch CsrfTokenNode.render so the input is not wrapped in a hidden container.
        
        0.3.3
        -----
        #. Version pins for jmbo and jmbo-post.
        
        0.3.2
        -----
        #. Use slug for lookups in tastypie API.
        
        0.3.1
        -----
        #. Chatrooms and normal comments can now have distinct appearances. jmbo>=0.3.1 required.
        
        0.3
        ----
        #. Reduce ajax polling when user is inactive
        #. django-tastypie support added. jmbo and jmbo-post have minimum version requirements.
        
        0.2.2
        -----
        #. Pin django-ckeditor to >= 3.6.2
        #. Remember me field now on login and join forms. Checked by default.
        #. Any call to get_XXX_url is now layer aware.
        #. Comment posting now ajaxified depending on browser capabilities.
        
        0.2.1
        -----
        #. Remove dependency links.
        
        0.2
        ---
        #. Add a base_inner.html template so it is easier to override base.html.
        #. Patch listdir so collectstatic does not fail on custom layers for third party foundry-based products.
        
        0.1
        ---
        #. Use Jaro Winkler for matching naughty words.
        
        0.0.2 (2011-09-27)
        ------------------
        #. Detail view.
        #. Element preferences.
        
        0.0.1 (2011-09-21)
        ------------------
        #. Initial release.
        
        
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: License :: OSI Approved :: BSD License
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
