makeict / automation-scripts Goto Github PK
View Code? Open in Web Editor NEWPython script to monitor unpaid registrations in Wild Apricot
Python script to monitor unpaid registrations in Wild Apricot
Perhaps an email should be sent when an unpaid registration is marked as paid. Will need to check WA behavior to prevent redundant emails.
Create and send a list of upcoming events to some group of people that want it. Newsletter subscribers? A special mailing list? Something on the forum?
The database currently uses Latin-1 encoding. This should be changed to UTF-8 to prevent issues with characters that aren't included in Latin-1.
Sometimes the event monitor script fails to run properly for a period of time. When it gets fixed, it will fire off a bunch of emails for upcoming events, so people might get an incomplete registration warning followed immediately by a cancellation message all with dates in the past. In these events we should prevent the cancellation from occurring, and maybe send the warning with a modified date.
Main monitoring code should be combine to reduce number of API calls and make it easier to add functionality.
Generate regular report on key usage and new/lapsed members for onboarding/membership committee.
Should also have the ability to manually run for information on set periods of time.
Parse contact notes field for information on when members joined/lapsed. Save info in database or spreadsheet.
Currently the smartwaiver integration only updates the WA account with the date the waiver was signed. It also syncs the waivers to google drive. Ideally we would add a link to the location of the person's waiver in drive to their WA account, like we had before with the paper waiver scans.
The instructor payment calculation seems to overpay slightly for events with guests registered. I believe that it is adding 75% of the total payment from the guest, rather than subtracting the $5.00 non-member fee and then adding 75% of the remainder.
For registrants who plan to pay in cash some mechanism to prevent deletion of their registration is needed.
The script stopped sending emails after about a week. Found that the external IP of home router had changed. After restarting the script it resumed proper function. Not sure where the stdout logs are getting dumped when running as a service.
Name, email, interests, etc.
Create a script that automatically grants authorizations to people that attend an authorization class. Currently authorizations are entered manually by the instructors after the class, but 99.9% of the time they authorize everyone who took the class. This would save some hassle for our instructors.
It might be nice to charge people on a monthly basis for their lockers even if they are on a membership plan that renews less frequently.
WildApricot does not give users a way to apply a positive balance towards an invoice. We could probably do this through the API. When we eventually get the automatic charges for the 3D printers up and running it would be very handy to be able to pre-pay and not have to deal with every 32 cent print.
Log output:
The following exception was thrown:
'latin-1' codec can't encode character '\u2019' in position 11: ordinal not in range(256)
File "/usr/lib/python3/dist-packages/apscheduler/executors/base.py", line 125, in run_job
retval = job.func(*job.args, **job.kwargs)
File "/home/pi/code/automation-scripts/RegistrationMonitor.py", line 324, in Run
self.SendEventReminders(upcoming_events)
File "/home/pi/code/automation-scripts/RegistrationMonitor.py", line 278, in SendEventReminders
action="Send event reminder email")
File "/home/pi/code/automation-scripts/database/init.py", line 195, in AddLogEntry
self.NewCursor().execute(sql,(timestamp, event_name, registrant_name, registrant_email, action))
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 207, in execute
args = tuple(map(db.literal, args))
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 304, in literal
s = self.escape(o, self.encoders)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 226, in unicode_literal
return db.literal(str(u).encode(unicode_literal.charset))
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.