django-libsA collection of things that we re-use in every Django project, such as
custom middlewares, testrunner, templates, templatetags, test mixins,
test factories etc...Django Libs
===========
This project aims to provide commonly used building blocks for Django projects
and applications.
**Current features**:
* A custom testrunner that uses django-nose for discovering tests and
django-coverage for automatically generating a coverage report on each test
run
* A factory for creating User objects
* TestCase mixins to ease the process of testing views via ``self.client.get``
* A JSONResponseMixin
* New generic class based view DetailViewWithPostAction which is able to
handle custom post actions.
* Template filter to provide field's verbose names
* Template tag for displaying the currently selected main navigation item
* Custom test_email_backend that sends emails to your own address no matter
who the recepient is
* Functions to test callable or non-callable views
* Dummy views to test your 404 and 500 templates
* RapidPrototypingView to render any template even when it has no view hooked
up in ``urls.py``.
* AjaxRedirectMiddleware for jQuery AJAX calls that return 301 redirects
* AjaxResponseMixin for views that can return their normal template or a
partial template when it is an ajax call
* A context processor to add your analytics tracking code to your template
context.
* A decorator ``lockfile`` for wrapping ``handle`` methods of admin commands
so that they never run twice at the same time.
* A ``getCookie`` js function that can be used to retrieve the csrf token
for AJAX POST requests.
* A templatetag ``call`` which allows to call any method with params.
* A ``SimpleTranslationMixin`` which adds a ``get_translaion`` method to a
model that is registered with ``simple-translation``.
* A ``SimpleTranslationMixin`` which makes it easier to write factories for
models that are registered with ``simple-translation``.
* Utilities for loading classes from a string like ``myproject.models.Foobar``.
**Coming soon**:
* View mixins to make class based views private for authenticated users
* Extensive fabfile for checking pep8 compliancy, running tests, importing
and exporting the database and locale files, dumping and loading fixtures
etc.
* Useful shell scripts to be installed on the server for various maintenance
and deployment tasks
* Smart urlpatterns to serve static and media files when you set DEBUG=False
locally, no need to setup Apache on your development machine
* A set of templates for django-registration and some partials for rendering
forms compatible with Twitter Bootstrap.
Installation
------------
To get the latest stable release from PyPi::
$ pip install django-libs
To get the latest commit from GitHub::
$ pip install -e git://github.com/bitmazk/django-libs.git#egg=django_libs
Usage
-----
See the docs folder for descriptions of the different tools this project
provides.
Or read the docs here: http://django-libs.readthedocs.org/en/latest/
Contribute
----------
If you want to contribute to this project, please perform the following steps::
# Fork this repository
# Clone your fork
$ mkvirtualenv -p python2.7 django-libs
$ pip install -r requirements.txt
$ git co -b feature_branch master
# Implement your feature and tests
$ git add . && git commit
$ git push -u origin feature_branch
# Send us a pull request for your feature branchMartin Brochhausbcf8b7b72d7236787329fc1ce60800d6cca3978d1.13