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.2.6.tar.gz (16.3 kB view details)

Uploaded Source

Built Distributions

django_donations-0.2.6-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

django_donations-0.2.6-py2-none-any.whl (21.5 kB view details)

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for django-donations-0.2.6.tar.gz
Algorithm Hash digest
SHA256 b48bad7cd30d7a9a8814758b23a974e08ef626e2942bd77667b9960cc22dd065
MD5 194da3d0e8d66937be34be7ff13a15f2
BLAKE2b-256 ddc6dc199a8eca2ecb2c0c81ddf5a24599b2372807aea87a3096d0d576a31916

See more details on using hashes here.

File details

Details for the file django_donations-0.2.6-py3-none-any.whl.

File metadata

File hashes

Hashes for django_donations-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9f71f772315024c3167bc869ef9d9aeff0b01ee33f1913422257afea6396656f
MD5 68d5fc69ba8557173c59e464525e4ee4
BLAKE2b-256 aa9ae32b36544faf8d2620fa1bfbb96f803da83f99d6114bcfb7797a861fd866

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_donations-0.2.6-py2-none-any.whl
Algorithm Hash digest
SHA256 8accb81a861e747211b045e946cd4155c80ce964fadc54e16ba9b129b678c10c
MD5 fd910af806dfeab827b0695593f0c82a
BLAKE2b-256 69121fc72ad90378efa456dd228160225b2389333797a16c9dcd2bf692e9ae6c

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