Metadata-Version: 1.1
Name: django-preferences
Version: 1.0.0
Summary: Django app allowing users to set app specific preferences through the admin interface.
Home-page: http://github.com/praekelt/django-preferences
Author: Praekelt Consulting
Author-email: dev@praekelt.com
License: BSD
Description: Django Preferences
        ==================
        **Django app allowing users to set app specific preferences through the admin interface.**
        
        .. image:: https://travis-ci.org/praekelt/django-preferences.svg?branch=develop
            :target: https://travis-ci.org/praekelt/django-preferences
        
        .. image:: https://coveralls.io/repos/github/praekelt/django-preferences/badge.svg?branch=develop
            :target: https://coveralls.io/github/praekelt/django-preferences?branch=develop
        
        .. image:: https://badge.fury.io/py/django-preferences.svg
            :target: https://badge.fury.io/py/django-preferences
        
        Provides singleton admin views for Preferences objects and a simple interface to preference values.
        Singleton views ensure only one preference instance per site is available for each ``Preferences`` class.
        
        ..
        
            **Requires** and supports `Django's "sites" framework <https://docs.djangoproject.com/en/dev/ref/contrib/sites/>`_, which means you can have multiple preferences, each associated with a particular site.
        
        .. contents:: Contents
            :depth: 5
        
        Requirements
        ------------
        
        #. Python 2.7, 3.5-3.7
        
        #. Django 1.11, 2.0, 2.1
        
        #. django.contrib.sites
        
        
        Installation
        ------------
        
        #. Install or add ``django-preferences`` to your Python path.
        
        #. Add ``preferences`` to your ``INSTALLED APPS`` setting.
        
        #. Add ``django.contrib.sites`` to your ``INSTALLED APPS`` setting. django-preferences associates preferences to specific sites and thus requires Django's "sites" framework to be installed.
        
        #. Optionally, add ``preferences.context_processors.preferences_cp`` to your template option settings. This will automatically add a ``preferences`` variable to your template context::
        
             TEMPLATES = [{
                 ...
                 'OPTIONS': {
                     'context_processors': [
                         ...
                         'preferences.context_processors.preferences_cp',
                     ],
                 },
             }]
        
        Usage
        -----
        To create preferences for your app create a Django ORM model as usual, with the model inheriting from ``preferences.models.Preferences``. Also specify ``preferences.models`` as your model's module::
        
            from django.db import models
            from preferences.models import Preferences
        
            class MyPreferences(Preferences):
                portal_contact_email = models.EmailField()
        
        Admin classes are specified as per usual, except that they have to inherit from or be registered with ``preferences.admin.PreferencesAdmin``, i.e.::
        
            from django.contrib import admin
        
            from preferences.admin import PreferencesAdmin
            from <my_app>.models import MyPreferences
        
            admin.site.register(MyPreferences, PreferencesAdmin)
        
        When your model is registered with admin it will show up under the *Preferences* app label in Django admin.
        
        Preferences can be accessed in Python by importing the ``preferences`` module and traversing to your required preference in the form ``preferences.<ModelName>.<field>``, i.e.::
        
            from preferences import preferences
        
            portal_contact_email = preferences.MyPreferences.portal_contact_email
        
        
        If you've specified the ``preferences.context_processors.preferences_cp`` as a `TEMPLATES <https://docs.djangoproject.com/en/1.11/topics/templates>`_ you can similarly access your preferences within templates through the ``preferences`` variable, i.e.::
        
            {{ preferences.MyPreferences.portal_contact_email }}
        
        Authors
        =======
        
        Praekelt Consulting
        -------------------
        * Shaun Sephton
        * Euan Jonker
        * Hedley Roos
        
        Changelog
        =========
        
        next
        ----
        #. Django 2 and Python 3.5 compatibility. Django 1.9 is no longer supported.
        
        
        1.0.0
        ---
        #. Support Django 1.11, 2.0 & 2.1 remove support for Django < 1.11
        #. Support Python 2.7, 3.5-3.7
        #. Added tests coverage
        
        0.2
        ---
        #. Move to tox for tests.
        #. Django 1.9 to 1.11 support. The official minimum supported version is 1.9.
        
        0.1
        ---
        #. Cleanup and fixing of tests courtesy of senyor.
        #. Rewrite distinct query so it works with Oracle backend.
        
        0.0.6
        -----
        #. Better packaging.
        
        0.0.5 (2011-08-17)
        ------------------
        #. Added sites support.
        #. Added unittests.
        
        0.0.4 (2011-08-11)
        ------------------
        #. Cleanup. Docs polish.
        
        0.0.3
        -----
        #. Spelling correction, thanks tiktuk.
        
        0.0.2
        -----
        #. Doc update to indicate importance of placing url include before admin url include.
        
        0.0.1
        -----
        #. First super alpha release.
        
        
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Framework :: Django :: 1.11
Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.1
Classifier: License :: OSI Approved :: BSD License
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: OS Independent
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
