Skip to main content

Reusable backend to accept & track donations to your site

Project description

Django Donations

https://img.shields.io/travis/founders4schools/django-donations.svg?style=flat-square https://img.shields.io/coveralls/founders4schools/django-donations.svg?style=flat-square Code Health https://img.shields.io/requires/github/founders4schools/django-donations.svg?style=flat-square https://badge.fury.io/py/django-donations.svg

Quick Start

Easiest way to install is via pip:

pip install django-donations

Then add the app to your settings.py:

INSTALLED_APPS = (
    ...
    'donations',
    ...
)

from donations import setup
setup()

And to your urls patterns:

urlpatterns = patterns(
    ...
    url(r'^donate/', include('donations.urls')),
    ...
)

Just Giving Configuration

The app needs to be configured with your JustGiving API settings:

# Ability to point to Production or Sandbox URLs
JUST_GIVING_WEB_URL = 'http://v3-sandbox.justgiving.com'
JUST_GIVING_API_URL = 'http://api-sandbox.justgiving.com'
# Replace below with your personal details
JUST_GIVING_CHARITY_ID = '123456'
JUST_GIVING_APP_ID = 'changeme'
# Add a list of all the currencies you need to support
CURRENCIES = ['GBP']

With django autoconfig

Some of the setup is in database, you need to create a Provider and donation frequencies. To make it easier to set them up, we recommend to use django autoconfig, which will load the required objects when starting up. The only thing that needs to be added to your settings.py is:

from django_autoconfig.autoconfig import configure_settings
configure_settings(globals())

Manually

TODO

TODO

  • Update the documentation and readme

  • integrate with readthedocs or pythonhosted or both!

  • tests - unit/integration

  • task to periodically verify pending donations

(* dashboard - track/view donations from the business side - kpis etc * views/urls? - provide an api hook into the system (/donations - dashboard))

v2 and beyond

  • (other providers (paypal etc))

  • tasks.py - recurring donation handling - this is not possible right now as SDI is not an API to be automated

Usage

Example app is under ./example/app. Basically subclass DonateView or POST to DonateAPI with the correct data…. (example needed) When using DonateView, there is the DonationForm which can be subclassed to customize or just used by itself.

Settings

Supported Providers

  • Just Giving SDI

Basic Commands - Update to be correct

Test coverage

To run the tests, check your test coverage, and generate an HTML coverage report:

$ coverage run manage.py test
$ coverage html
$ open htmlcov/index.html

Running end to end integration tests

N.B. The integration tests will not run on Windows.

To install the test runner:

$ pip install hitch

To run the tests, enter the django-donations/tests directory and run the following commands:

$ hitch init

Then run the stub test:

$ hitch test stub.test

This will download and compile python, postgres and redis and install all python requirements so the first time it runs it may take a while.

Subsequent test runs will be much quicker.

The testing framework runs Django, Celery (if enabled), Postgres, HitchSMTP (a mock SMTP server), Firefox/Selenium and Redis.*/

Create a New Release

This project is configured to use bumpversion, only prerequisite is to have it installed. When the tests have passed and you’re happy with the code base, just need to run:

$ bumpversion [major|minor|patch]

Depending on which digit of the version needs to be updated, and then push with tags:

$ git push --tags

Travis will take care of creating a new packaged, and upload it to PyPi.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-donations-0.3.0.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

django_donations-0.3.0-py2-none-any.whl (21.8 kB view details)

Uploaded Python 2

File details

Details for the file django-donations-0.3.0.tar.gz.

File metadata

File hashes

Hashes for django-donations-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2108a65a7d4cfcd4dd5e96e67d69856e67ce480b975f373ae244412b41ea3936
MD5 1559b3cfe83daefa3face5f3e5706b1d
BLAKE2b-256 e4e05cf2f9d8394f4d4b231b4642350f5266a79c7d86089aa590a250f3c9bdba

See more details on using hashes here.

File details

Details for the file django_donations-0.3.0-py2-none-any.whl.

File metadata

File hashes

Hashes for django_donations-0.3.0-py2-none-any.whl
Algorithm Hash digest
SHA256 e2594c71b9492c9bfb33bb15b0c694512c02ab0d6a7897223468fa8d32ef4069
MD5 35aeb7613f5b27540867b910f69d900f
BLAKE2b-256 dcc949501a80ab770e44e04848653006f31712c0c7e6b49a35a7d080dc216449

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page