django-petitions
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:A simple django app to add Petition functionality into your project
How to use django-petitions
------------------------------

``django-petitions`` allows for basic petitions functionality in your django project.
It is in use on GovCheck.net (http://govcheck.net) at http://govcheck.net/petitions/.
``django-petitions`` is released under the BSD license. See License.txt for more
details.

### Install

For now, to install django-petitions, check it out from github using:

        git clone git://github.com/rmanocha/django-petitions.git

You can then copy either copy the petitions folder to your python distribution's
``site-packages`` folder or create a symbolic link.

### Adding ``django-petitions`` to your project

You will need to add the petitions app to your ``INSTALLED_APPS`` setting in 
your settings.py file. It should look something like::

        INSTALLED_APPS = (
            # ...
            'petitions',
        )

You will now need to create the required tables. To do this, run the following
command from your project's root folder::

        python manage.py syncdb

You will also need to add the petitions urls to your site's URLConf. You can 
do this by adding the following line to your URLConf::

        (r'petitions/', include('petitions.urls')),

That's it. You can now create petitions by going to ``/petitions/add/`` and 
view a complete list of create petitions at ``/petitions/``.

Notes on ``views.py``
---------------------

There are 3 views defined in ``django-petitions``.

1. ``create_new_petition``
    
    This view is used to display and process the form used to create
    new petitions. By default, the form used to create new petitions is
    CreatePetitionForm defined in ``forms.py``. However, you might want 
    to define a custom form with additional fields. You can do this by 
    sending in a custom form class to the view from your URLConf like so::

    url(r'petitions/add/$', 'petitions.views.create_new_petition', {'form_class' : FullCreatePetitionForm}, name = 'create-new-petition'),

    The default template used to display the form is ``petitions/new_petition.html``.
    This too can be changed by passing in the ``template_name`` arg to the
    ``create_new_petition`` view (same as with the custom form).

    This view sends out a custom signal (defined in ``signals.py``) called
    ``petition_saved`` with the bound form and the newly created petition as
    arguments. You can connect to this signal to do any sort of post-processing (
    such as sending out emails to alert people of a new petition being created etc.)

2. ``sign_petition``

    This view is used to allow users to sign a given petition. It creates 
    PetitionSignature objects. This view requires you to make a POST AJAX request
    with the petition id (as ``petition_id``) and comments (as ``sign_comment``)
    as arguments. If the request is not made via an AJAX call, a HTTP 404 error is
    thrown.

3. ``get_petition_signators``

    This view is used to get details about the signatures for a given petition.
    It requires you to make a GET AJAX call with the ``petition_id`` defined. 
    In addition is also needs a ``data`` argument which should be either of 
    ``full`` or ``count``. See the docs in the function signature to understand
    what each does.

Notes on ``migrations``
-----------------------

Any changes in the models are done using south (http://south.aeracode.org/). If you 
have already installed the app and see some additional features that will need changing
the models, you will need to run the relevant migrations. Read south's website to learn
how to do that.

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。