== description

With django-dbpreferences you can store some app/user preferences into the database.

| {{https://travis-ci.org/jedie/django-dbpreferences.svg|Build Status on travis-ci.org}} | [[https://travis-ci.org/jedie/django-dbpreferences/|travis-ci.org/jedie/django-dbpreferences]] |
| {{https://coveralls.io/repos/jedie/django-dbpreferences/badge.svg|Coverage Status on coveralls.io}} | [[https://coveralls.io/r/jedie/django-dbpreferences|coveralls.io/r/jedie/django-dbpreferences]] |
| {{https://landscape.io/github/jedie/django-dbpreferences/master/landscape.svg|Status on landscape.io}} | [[https://landscape.io/github/jedie/django-dbpreferences/master|landscape.io/github/jedie/django-dbpreferences/master]] |

A django app defines a form with initial values. The form cleaned data dict would
be stored serialized into the database. The app can easy get the current preference
dict and the user can easy edit the values in the django admin panel.

With [[https://code.google.com/p/django-dbpreferences/wiki/UserSettings|UserSettings]] you can
store some settings per user.

More Information and examples can be found here:

* https://code.google.com/p/django-dbpreferences/w/list

== unittests

There exist different ways to run unittests, e.g.:
{{{
.../django-dbpreferences $ ./setup.py test
.../django-dbpreferences $ ./manage.py test
.../django-dbpreferences $ ./runtests.sh
}}}
Run specific tests, e.g.:
{{{
.../django-dbpreferences $ ./setup.py test tests.test_dbpreferences.TestDBPref
.../django-dbpreferences $ ./manage.py test tests.test_dbpreferences.TestDBPref
.../django-dbpreferences $ ./runtests.sh tests.test_dbpreferences.TestDBPref
}}}



== Django compatibility

|= django-tools |= django version |= python  |
| v0.6.0        | 1.6 - 1.8       | 2.7, 3,4 |
| v0.5.0        | <=1.6           | 2 only   |
| v0.4.5        | <=1.4           | 2 only   |

(version combination will be tested via travis-ci)

== history

* v0.6.0 - 11.08.2015 - [[https://github.com/jedie/django-dbpreferences/compare/v0.5.0...v0.6.0|compare v0.5.0...v0.6.0]]
** Bugfixes and compatibility with Python 2 and 3, Django 1.6-1.8
** **data_eval** rewrite using ast module
** **dbpreferences.fields.DictField** was renamed to **DictModelField**
* v0.5.0 - 12.02.2015 - [[https://github.com/jedie/django-dbpreferences/compare/v0.4.5...v0.5.0|compare v0.4.5...v0.5.0]]
** Changes for django 1.6 support
* v0.4.5 - 03.08.2012 - [[https://github.com/jedie/django-dbpreferences/compare/v0.4.4...v0.4.5|compare v0.4.4...v0.4.5]]
** Add cache for preferences access (used [[https://github.com/jedie/django-tools#local-sync-cache|LocalSyncCache from django-tools]] if installed)
* v0.4.4 - 03.08.2012 - [[https://github.com/jedie/django-dbpreferences/compare/v0.4.3...v0.4.4|compare v0.4.3...v0.4.4]]
** Add south support (if installed)
** tests can be run with {{{./setup.py test}}}
** add german translations
* v0.4.3
** Bugfix: [[https://github.com/jedie/django-dbpreferences/issues/1|For 'UserSettings' object has no attribute 'get_settings']] 
* v0.4.2
** Bugfix: Add templates to pypi package
* v0.4.1
** Bugfix with BooleanField
* v0.4.0
** NEW: Use initial data, if not exist in saved preferences. So it’s easier to add new preferences values.
* v0.3.8
** Bugfix in error message for not existing keys
* v0.3.7
** Change version scheme and add last git commit date to version string
* v0.3.6
** Display current value on ValidationError
* v0.3.5
** Updates for django v1.2 API changes
* v0.3.4
** Bugfix if help_text contains non ascii characters and html code
* v0.3.3
** validate preferences with model validation
** clean preferences in get_preferences()
* v0.3.2
** some bugfixes
* v0.3.1
** Bugfix if DictField can be null / {{{ DictFormField(required=False) }}}
* v0.3.0
** separate field stuff from models.py into fields.py, so its usable in other projects, too.
** Use own dict class for serialize/deserialize
** Update unittest for new django admin url prefix
* v0.2.0
** Add [[https://code.google.com/p/django-dbpreferences/wiki/UserSettings|UserSettings]], see: http://www.jensdiemer.de/_command/118/blog/detail/64/ (de)
* v0.1.0
** first version cut out from PyLucid CMS – http://www.pylucid.org


== pip upgrade

To do a pip upgrade in a virtual environment, run this:

{{{
~$ cd /YourVirtualEnv/bin
~/YourVirtualEnv/bin$ source activate
(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=git+git://github.com/jedie/django-dbpreferences.git#egg=django-dbpreferences
}}} The example used git readonly clone url. If you use subversion do this:

{{{
(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=http://svn.github.com/jedie/django-dbpreferences.git#egg=django-dbpreferences
}}}

If you have git write access, use this:
{{{
(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=git+git@github.com:jedie/django-dbpreferences.git#egg=django-dbpreferences
}}}



== donation ==

If you like it, send some [[http://www.bitcoin.org/|Bitcoins]] to [[https://blockexplorer.com/address/1HLNVtZFwdHLavRKdUebTGHVn8A7e6Dgne|1HLNVtZFwdHLavRKdUebTGHVn8A7e6Dgne]] ;)


== links

| homepage    | http://github.com/jedie/django-dbpreferences
| PyPi        | http://pypi.python.org/pypi/django-dbpreferences/

=== contact ===

Come into the conversation, besides the github communication features:

| Forum   | http://www.pylucid.org/en/forum/10/
| IRC     | #pylucid on freenode.net (Yes, the PyLucid channel...)
| webchat | http://webchat.freenode.net/?channels=pylucid
