wuvt / donormotor Goto Github PK
View Code? Open in Web Editor NEWWUVT's new donation management and donor-relations platform.
License: GNU Affero General Public License v3.0
WUVT's new donation management and donor-relations platform.
License: GNU Affero General Public License v3.0
in admin donation index, set paid/shipped asynchronously instead of with POST+redirect.
we should expose radiothon status via an API, for trackman and wuvt-site to poll.
Also, this should break down the total by outstanding pledges and amount actually received so far.
donormotor/init.py:from werkzeug.contrib.cache import RedisCache
donormotor/init.py: from werkzeug.contrib.fixers import ProxyFix
replace with https://github.com/pallets/cachelib
and werkzeug.middleware.proxy_fix.ProxyFix
We should store that a donation was taken by mission control. Even without log-in, this is useful information, and we can rely on human processes to determine who was mc.
consider a config option to rename "radiothon" as "donor drive" or something similar in the UI. This will allow non-radio or non-radiothon stations to use the tool in the future.
the donations page should allow one to automatically send a receipt, if the donation was "ordered" at least 30 days ago, paid, premiums (if available) were shipped, and a valid email address is available.
else, it should allow printing of a receipt.
mostly date paid, ship date (also for pickup date, eventually), and comments.
For various reasons, some people may be unable or unwilling to use Stripe. It would be nice to support alternative payment backends such as Authorize.net, Braintree, Square, or PayPal.
most of these are card testing that stripe blocks as fraud.
okay. so there's a subtle bug in logic somewhere: when radiothon mode is not set and premiums are not available, credit card transactions may not be marked as paid. I'm not entirely sure what causes this, but I suspect it's an error in #22 rather than overall. this needs to be investigated more.
At a high level, this is turn https://github.com/wuvt/donormotor/blob/main/donormotor/admin/views.py#L127 into a POST, with startdate and enddate parameters. These can be selected using using a normal form-control date field. https://github.com/wuvt/trackman/blob/master/trackman/admin/views.py#L119 has a good example of the type of query to make.
I'd like to eliminate the Dockerfile.dev thing and just move to a single Dockerfile with a docker-compose file that spins up the necessary container for Redis (and PostgreSQL, if we choose to require that).
since slack can talk to authenticated endpoints, we should have expose donation stats to it---the same stats we display prominently on /admin/donations
L189 uses the ARTIST_PER_PAGE
config variable. This needs to be replaced with something more sensibly named.
log who set "paid" and "shipped" status for code based on #22
ipaddress
covers 99.9% of what netaddr does, and is built in (removes dependency).
because people have already hit it and caused problems...
if I donate between 5 and 10, I get a
for 65 to 125, I get a
and so on.
sometimes folks like making very small donations to several shows, because 1) it's motivating to shows when money is donated, and 2) they want to "support" multiple shows. While this is fine for missioncontrol, we should merge these donations in the main UI (and in reports), so that these donors can get larger premiums.
seems to be an issue for user-initiated donation. need to play with this more.
This can be used to update the donor list and play a cash register sound when a donation is made.
this is so we have a name of a person to yell at when things are added incorrectly.
It would be nice if we got some nice histograms showing:
Some other statistics that would be useful:
In this line, it would also be nice if we could export donation data as CSV, only including time of day of donation, dollars donated, a unique donor identifier (hash of email address?), and first-time-donor status, so people can do statistical analysis of donor data.
should be able to
interface should fetch the following from stripe
some other nice features:
Donation viewer does not paginate. This means it will break when large numbers (say >200,000) of fake donations are made.
It should be possible to disable self-pay donations. This allows us to prevent card stuffing while still being able to proces other donations.
Many tickets attached to wuvt/wuvt-site are strictly related to donation infrastructure. These tickets should be moved here.
TL;DR, allow pledges to be paid via credit card through Stripe. c.f their documentation
currently, it's a bool set in Redis. It should be simple to add a button or timer to the admin interface
this prevents non-radiothon donors from filling out extraneous fields and from thinking they'll get premiums.
Online donors shouldn't be able to pledge.
probably create a table in donations/models.py for premiums:
basically Premium_bool and Premium_size with appropriate fields, and the control panel allows setting 0) item type (bool or sized) 1) minimum donation, 2) name (which we sanitise into a slug for the DB), 3) size options (comma-seperated, converted into selection)
This way we don't have a survey link that needs to be updated by IT staff every year, and it also allows campaign-specific messages to be added
bootstrap 3 -> 4. largest change will probably be panel -> card...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.