Simple Supporters database for fundraising
Find a file
Denver Gingerich 4d3b8b0673 models: flexible returning supporter mth count API
Rename months_expired() to months_expired_at_return() and have the
method return an integer representing the month count rather than an
enum-like so that the API user has more flexibility with respect to
what they then do with the result.  Thanks to Brett for the review
that suggested this, and for much of the clever math in this change.

The results produced by returning_report.py (which is updated here to
use the new API) are almost identical to the results produced before
the change.  In rare cases (about 2-5% of the time) a supporter's
lapsed month count will fall into an adjacent bucket instead of the
one it fell into before, usually because the previous result was wrong
to begin with (due to the ugly days-per-3-months table that we used
previously, which this change thankfully eliminates).
2018-01-25 17:03:09 -05:00
python models: flexible returning supporter mth count API 2018-01-25 17:03:09 -05:00
scripts mass email changes for encoding and skipping addresses. 2018-01-24 11:47:47 -08:00
sql Implement ability to put requests on hold. 2016-12-08 15:10:16 -08:00
Supporters emailOk: attempts to make more versatile. 2018-01-24 11:45:03 -08:00
.gitignore python: Start Django project. 2017-01-24 13:31:30 -05:00
AGPLv3 Downloaded a copy of the Affero GPLv3. 2015-12-06 16:55:11 -08:00
COPYRIGHT.md Move license notice information to LICENSE.md 2015-12-06 17:01:33 -08:00
LICENSE.md Move license notice information to LICENSE.md 2015-12-06 17:01:33 -08:00
README.md Wrote add-email-address.plx script. 2015-12-31 00:38:59 -08:00

Mini Non-Profit Supporters and Donors Database

"Supporters" is a small donor database for non-profit fundraising that uses Ledger-CLI as a backend for accounting data.

While this system is used in production for Software Freedom Conservancy, the code is likely only appropriate if you plan to do a lot of work on the command-line. Eventually, the ideal would be to refactor CiviCRM to support the ideas and Ledger-CLI integration represented in this code.

Why Does This Exist?

Conservancy needed a simple donor database and could not invest the resources required to maintain a CiviCRM instance: most organizations that use CiviCRM either pay for hosting or devote some amount of staff time its maintenance. Conservancy could afford neither, but this weekend-hack version of a database suits our needs (at least for now).

License Information

See the file LICENSE.md for license information.

Common Tasks

These are recipes for some common tasks that one might want to complete on the command line with the Supporters database.

  • Add a Supporter from the command line: ./scripts/add-supporter.plx

  • Add an email address, or change the preferred email address: ./scripts/add-email-address.plx