Commit Graph

163 Commits

Author SHA1 Message Date
387767204a membershipworks: Add upcoming events to dashboard 2024-02-05 19:51:55 -05:00
72a1ce8750 membershipworks: Add/fix migrations for earlier manual fixes
All checks were successful
Ruff / ruff (push) Successful in 21s
2024-02-04 22:37:22 -05:00
824c37df04 membershipworks: Ignore EventExt.materials_fee_included_in_price when materials fee is 0
All checks were successful
Ruff / ruff (push) Successful in 21s
2024-02-03 23:33:50 -05:00
560225cdb3 membershipworks: Add new event attendee email report
All checks were successful
Ruff / ruff (push) Successful in 20s
2024-02-02 19:26:06 -05:00
2d16029ed7 membershipworks: Switch EventExt.details_timestamp to an annotation
All checks were successful
Ruff / ruff (push) Successful in 22s
to avoid issues with saving new objects with GeneratedFields when the
pk is set
2024-02-01 11:14:49 -05:00
8961542d14 Use decorator to keep track of group names for django-q2 tasks 2024-02-01 11:10:22 -05:00
3d7d428914 membershipworks: Add event invoices and financial info to event reports
All checks were successful
Ruff / ruff (push) Successful in 22s
2024-01-31 20:28:28 -05:00
fc5a911c76 membershipworks: Add admin links to event reports
All checks were successful
Ruff / ruff (push) Successful in 20s
2024-01-30 14:28:09 -05:00
eec1420ee9 membershipworks: Fix EventInstructor search_fields
All checks were successful
Ruff / ruff (push) Successful in 1m16s
2024-01-29 21:49:45 -05:00
e10bcd5b49 membershipworks: Add storage and scraping for Event details 2024-01-29 21:48:19 -05:00
334f8d4bf8 membershipworks: Move table-specific queryset operations into get_table_data 2024-01-29 14:18:00 -05:00
29e87c4468 membershipworks: Change name for EventExt.meetings to avoid extra queries 2024-01-29 14:18:00 -05:00
dafd8cc620 membershipworks: Add default ordering by start field to EventExt 2024-01-29 14:17:58 -05:00
21fe7f66cd membershipworks: Expose EventExtQuerySet methods on EventExtManager 2024-01-28 23:54:55 -05:00
0eab482893 Allow empty lines in templates 2024-01-26 14:13:46 -05:00
19d8e888f4 membershipworks: Add EventExt.materials_fee_included_in_price field
All checks were successful
Ruff / ruff (push) Successful in 20s
2024-01-24 22:12:14 -05:00
ee399e6b64 membershipworks: Use bulk_create for Event
All checks were successful
Ruff / ruff (push) Successful in 21s
Work around for issues with GeneratedField. Also faster anyway.
2024-01-24 18:35:25 -05:00
e0b5820bc2 membershipworks: Don't try to set generated fields in from_api_dict
All checks were successful
Ruff / ruff (push) Successful in 22s
2024-01-24 16:32:42 -05:00
5f59aac67e Use more generic location for table download component
All checks were successful
Ruff / ruff (push) Successful in 23s
2024-01-24 00:20:12 -05:00
bfe9fc7c2c membershipworks: Add download buttons for event reports 2024-01-24 00:03:57 -05:00
97e9a3c9d5 membershipworks: Use django-tables2 for event reports 2024-01-22 14:41:11 -05:00
1dd2fa521a membershipworks: Set more useful titles in event report templates 2024-01-22 12:28:56 -05:00
0a3a709ab5 membershipworks: Fix djlint formatting in event report templates 2024-01-22 00:57:19 -05:00
8155402dbb membershipworks: Round durations in event reports to two digits 2024-01-22 00:56:28 -05:00
c489c492b2 membershipworks: Fix scope attribute in event report templates 2024-01-22 00:56:19 -05:00
599b7f7785 membershipworks: Use unique name for sum of count of EventExt.meeting_times 2024-01-22 00:56:02 -05:00
df621988f6 membershipworks: Fix bad grouping in EventExt.summarize using subquery 2024-01-19 16:25:20 -05:00
bfa04be2d9 membershipworks: Add event index and year reports 2024-01-19 15:41:27 -05:00
cbe8d24fe4 membershipworks: Add generated field to check if an event occured 2024-01-19 15:22:05 -05:00
4561e317b8 Enable/apply ruff's "flake6-simplify" rules 2024-01-19 15:16:47 -05:00
37cb41af1b Enable ruff's "pylint" rules 2024-01-18 14:21:36 -05:00
3728442680 Enable/apply ruff's "perflint" rules 2024-01-18 14:21:36 -05:00
de0db9ac5a Enable ruff's "comprehensions" rules 2024-01-18 14:21:36 -05:00
02777265b0 Switch from Black to Ruff for formatting, add linting/import sorting 2024-01-18 14:21:36 -05:00
978024c538 membershipworks: Annotate EventExt.meeting_times__count 2024-01-18 13:58:28 -05:00
8498d311d5 membershipworks: Convert EventExt.person_hours to annotation 2024-01-18 13:58:28 -05:00
b8c2792f0a membershipworks: Convert EventExt.duration annotation to a Subquery
should be somewhat less performant, but allows for easier aggregation
2024-01-18 13:58:28 -05:00
0633e4ecef membershipworks: Add breadcrumbs for EventMonthReport 2024-01-18 13:58:28 -05:00
27c705668c membershipworks: Slightly simplify admin task "last run time" logic 2024-01-18 13:58:28 -05:00
1fe097ca86 membershipworks: Require "view EventExt" permission for upcoming events 2024-01-18 13:58:28 -05:00
44692d8d9b membershipworks: Use more specific name for EventMonthReport 2024-01-18 13:58:28 -05:00
270e6c7837 membershipworks: Add basic per-month event report 2024-01-15 21:31:06 -05:00
34821e1c58 membershipworks: Update Transaction.for_what csv field name 2024-01-05 14:58:37 -05:00
8e4353c925 membershipworks/ucsAccounts: Don't set email if empty in MembershipWorks 2024-01-05 14:55:42 -05:00
188824d53b membershipworks: Collapse sequential periods in ucsAccounts usernames 2024-01-05 14:39:33 -05:00
35d8fec2a3 membershipworks: Use GeneratedField for EventMeetingTime.duration
Relevant Django bug was fixed in 5.0.1
https://code.djangoproject.com/ticket/35019
2024-01-05 14:39:33 -05:00
34f520aa81 membershipworks: Autocomplete instructor field in EventExt admin 2024-01-02 19:26:06 -05:00
8827a77c0c membershipworks: Hide actual URL field in EventExt admin 2024-01-02 19:21:48 -05:00
fbdfb47e60 membershipworks: Improve EventExt admin 2024-01-02 10:54:29 -05:00
f2332dbe37 membershipworks: Add EventExt instructor invoice fields 2024-01-01 21:15:03 -05:00
f5688e39c3 membershipworks: Scrape event data, with extension model for extra data 2023-12-30 14:36:21 -05:00
546b13428e membershipworks: Allow get_events_list to use end date, retrieve categories 2023-12-30 13:27:19 -05:00
08dde9a4f4 membershipworks: Make MW api->model BaseModel more generic 2023-12-30 13:26:44 -05:00
02986bdabc Replace {django-,}bleach with {django-,}nh3, as bleach is now deprecated
https://bluesock.org/~willkg/blog/dev/bleach_6_0_0_deprecation.html
nh3/ammonia is faster anyway. django-nh3 is not yet feature complete,
but cmsmanage was only using the template tag anyway
2023-12-30 12:54:08 -05:00
ee7c18f575 Add search fields and date drilldowns to various admin pages 2023-12-29 18:23:10 -05:00
0ab7da0463 membershipworks: Change line spacing in the header of upcoming-events 2023-12-28 10:43:28 -05:00
ba913154d6 membershipworks: Use ClipboardItem API when available in upcoming-events 2023-12-28 10:41:56 -05:00
d44903b561 membershipworks: Remove DB constraints for FKs to Members table
MariaDB doesn't support partitions on tables with FKs, and performance
of the Members table has become unusable due to size caused by system
versioning
2023-12-26 12:47:06 -05:00
9a0d6012b9 membershipworks: Fix layout/use wordpress blocks in upcoming-events 2023-12-24 00:21:24 -05:00
65669ab5da membershipworks: Remove an extra debug print statement 2023-12-22 13:43:26 -05:00
8d78868e88 membershipworks: Handle case where scrape task has never been run in admin action 2023-12-22 13:37:19 -05:00
97bcc1df6d membershipworks: Add upcoming events generator 2023-12-22 01:08:20 -05:00
7afcc1f9e0 membershipworks: Add "refresh data" changelist actions to admin 2023-12-21 14:56:38 -05:00
5ddd0e68ac membershipworks/api: Schedule scraping task 2023-12-21 14:56:22 -05:00
dc648d6770 membershipworks: Move scrape task to 'tasks' submodule 2023-12-20 13:04:56 -05:00
68c9b3f82d membershipworks: Add methods to get event listing and events by eid/url 2023-12-20 13:04:56 -05:00
cf55c2aed5 membershipworks: Handle Byte Order Mark (BOM) in CSVs 2023-12-20 13:04:56 -05:00
3fcfddb221 membershipworks: Allow missing fields in transactions json 2023-12-20 13:04:56 -05:00
b8b6e7abf1 membershipworks: Use get_attname_column() to get correct field name/column 2023-12-20 13:04:56 -05:00
18a811ce44 membershipworks: Move scraping logic to tasks module 2023-12-20 13:04:56 -05:00
0ee423c079 membershipworks: Expand undersized Transaction.sid field 2023-12-20 13:04:56 -05:00
ea94d9a3df membershipworks: Move member and transaction scraping into separate functions 2023-12-20 13:04:56 -05:00
02c9be5ae6 membershipworks: Get only transactions since last in database + 1 second
This avoids having to deduplicate transactions, at the cost of
hypothetically missing transactions in some unlikely edge cases
2023-12-20 13:04:56 -05:00
7563e5dcea membershipworks: Ensure that all expected fields are present in data 2023-12-20 13:04:56 -05:00
cd63a169aa membershipworks: Scrape Transactions 2023-12-20 13:04:56 -05:00
0a92c28efc membershipworks: Scrape folder membership from membershipworks api 2023-12-20 12:47:46 -05:00
dfacf813e2 membershipworks: Add API module and command for scraping data 2023-12-20 12:47:46 -05:00
6b3113e839 membershipworks: Remove Member fields that no longer exist in MembershipWorks 2023-12-20 12:47:46 -05:00
42f75f0858 membershipworks: Sync initial migration to current state of database 2023-12-20 12:47:46 -05:00
365efdacf7 membershipworks: Allow migrations for membershipworks database 2023-12-20 12:47:46 -05:00
bfefa840ea membershipworks: Set models as managed 2023-12-20 12:47:46 -05:00
01b20cd844 membershipworks: Define nullable fields as blank 2023-12-20 12:47:46 -05:00
7f7c6484ea membershipworks: Add Transaction model and admin
Retroactively adding to the initial migration as this table already
existed, just wasn't represented in the Django app yet
2023-12-20 00:26:42 -05:00
e03b9e3c70 Always show admin facet counts in most models with filters
New feature in Django 5.0

Didn't enable always on HIDEvent admin, as the table size is relatively large
2023-12-04 13:09:13 -05:00
d2f87fd37b membershipworks: Add task to sync members with UCS users
UCS = Univention Corporate Server.
Ported from memberPlumbing
2023-12-04 11:27:04 -05:00
feed128a3b Re-apply Black formatting 2023-09-07 10:56:22 -04:00
a3a8c305ac membershipworks: Use EXISTS for testing flags in is_active
This behaves much more correctly, although may not have ideal performance
2023-08-27 13:48:48 -04:00
41d8ed691b Move Member by user and Departments by shop lead lookups to models 2023-04-25 23:23:27 -04:00
b48c723bc4 Optimize member autocomplete by using indexes and istartswith 2023-03-31 23:54:16 -04:00
c6f546d080 Fix some mypy typing issues 2023-02-02 22:33:32 -05:00
d5a45a0589 paperwork: Use Volunteer Email field for shop leads in mailing lists 2023-02-02 21:38:19 -05:00
8556190117 Minor fixes/optimizations for API endpoints 2023-01-23 21:12:00 -05:00
efe476b367 paperwork: Also generate the ShopLeads mailing list in api 2023-01-23 21:12:00 -05:00
068a5f1ccd membershipworks: Sort flags by name by default 2023-01-23 21:12:00 -05:00
03ccf73d81 membershipworks: Improve admin listing for Flags 2023-01-19 19:02:03 -05:00
39f97dd6f9 membershipworks: Use django functions to sanitize Member mailbox 2023-01-19 14:39:30 -05:00
aa87026e99 membershipworks: Move Member.with_is_active() to a QuerySet 2023-01-17 16:28:27 -05:00
9a2915b247 membershipworks: Fix is_active check by using aggregation 2023-01-03 19:48:36 -05:00
60bbe18322 membershipworks: Require "Members" or "CMS Staff" folder for is_active check 2023-01-03 16:37:46 -05:00
a53c9409bb membershipworks: Correctly invert is_active check on Member 2022-12-25 10:20:50 -05:00