-
Notifications
You must be signed in to change notification settings - Fork 1
How it Works
There are two Django apps in ppl - membership and resumes. These are two relatively distinct parts of the site; the two apps only interact when the resume database is sync'd by a management script.
Both apps can use either Google OAuth or local accounts for authentication. OAuth is preferred for membership because ops generally have hackucf.org accounts, while local login is a convenient option for handing out access to resumes.
Now for stuff you probably already know:
membership allows select users to search the membership list by name or email with no restrictions on results. This does in fact mean that if you search "knights", you'll get all members.
resumes allows select users to filter resumes by semester submitted and/or date submitted. It has rudimentary export-as-csv functionality for... no reason really. Unfortunately, proper per-year access control here requires finagling with users directly.
The rest of this is probably new.
Just a note: when you run this for the first time:
./manage.py update_membership --noauth_local_webserver
...you authorize ppl to download the membership and resume sheets on your behalf. This means that it inherits your permissions and you have to be able to view the sheets with your selected Google Account.
As of August 2016, ppl downloads a CSV of the hardcoded signup responses sheet on HackUCF's Drive. This can be edited to any appropriate Google Sheet that ppl or the viewing user has permissions to read.
If a user decides to force an update through the Web UI, ppl uses their Google account to download a new copy of the sheet. If run through the management script, ppl downloads a new copy using its own API access.
Members can be updated/synchronized by running:
./manage.py update_membership
To update the Mailchimp list, throw in your API key:
./manage.py update_membership -m mailchimpkeygoeshere
Users can also force update the sheet with this button on the Web UI, but Mailchimp will not be updated until the next command-line update. This is a known issue.
FILE_ID
in /membership/api.py
points to the currently used sheet's ID.
To quickly change the spreadsheet ppl uses, open the new sheet in a browser and edit FILE_ID
to the new ID in the URL. For example, in this sheet's URL:
docs.google.com/spreadsheets/d/1N1uid80PejvonQ1T4ky3qUydOfbTTN5qFkUz7UB9kc4/edit?usp=drive_web
1N1uid80PejvonQ1T4ky3qUydOfbTTN5qFkUz7UB9kc4
would be the new FILE_ID
.
ppl requires the sheet to have a specific format in order to determine things like shirt size, form submission time, and if a member paid dues. As of August 2016, ppl requires all of these case-sensitive columns to run:
- Timestamp (automatically generated by Google Forms)
- First Name
- Last Name
- UCF Student Email
- Preferred Email Address (unused, but still required)
- Shirt Size
- Shirt Gender
- Payment Method
- Paid Dues
For exact details on how these fields are used and how editable these are, you should probably just read update_membership()
in the source code.
Like membership, the resumes app (as of August 2016) uses a hardcoded Google Forms responses sheet as its authoritative source.
Resumes can be updated/synchronized by running:
./manage.py update_resumes
The same as Changing the Spreadsheet in membership, but with FILE_ID
in resumes/management/commands/update_resumes.py
.
As with membership, the strict, case sensitive spreadsheet format is as follows:
- Timestamp (automatically generated by Google Forms)
- Knights Email
- Planned Graduation - the value must be one of these
- Resume Link
- Opt-in Resume Sharing - value must be:
- CCDC Team sponsors
- Club excecutives' discretion
- Recruiting guest speakers