fc5a911c76
membershipworks: Add admin links to event reports
Ruff / ruff (push) Successful in 20s
2024-01-30 14:28:09 -05:00
eec1420ee9
membershipworks: Fix EventInstructor search_fields
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
Ruff / ruff (push) Successful in 20s
2024-01-24 22:12:14 -05:00
ee399e6b64
membershipworks: Use bulk_create for Event
...
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
Ruff / ruff (push) Successful in 22s
2024-01-24 16:32:42 -05:00
5f59aac67e
Use more generic location for table download component
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
48cad701e8
Implement some basic API access for paperwork and membershipworks
2022-12-25 01:21:30 -05:00
245e946fc2
Add is_active
annotatation helper to membershipworks.Member
2022-12-24 14:04:54 -05:00
ad28f96129
membershipworks: Remove unused import
2022-12-08 15:21:55 -05:00
e14e57c39e
[rentals] Use django-autocomplete-light for locker renter selection
...
This primarily to make the list of members not block/slow down
loading excessively, as it was currently doing
2022-05-05 17:23:36 -04:00
c23397c102
Remove "Transaction" migration for membershipworks
...
That table shouldn't be implemented yet :(
2022-02-15 16:35:10 -05:00
ce2f656805
Remove router for paperwork (just use default db instead)
2022-02-14 16:26:57 -05:00
52feb2d0b2
Merge remote-tracking branch 'paperwork/main'
2022-02-14 16:26:57 -05:00
61fc2386e5
Make initial migration for membershipworks app
...
Also retroactively make it a dependency for paperwork migrations
2022-02-12 00:10:01 -05:00
35f714760d
Add/apply black formatter
2022-02-11 23:50:46 -05:00
d50cec383e
Add complete Member, Flag, and MemberFlag models
2022-02-10 17:00:44 -05:00
030cbe8a92
Use autocomplete for member field in Certification admin
2022-02-03 16:37:18 -05:00
68a42b90ce
"Fix" foreign key to members table
...
Turning off the constraint here is probably not a good idea in the
long term, but it will work until I move tables around to make this sane
2022-02-03 16:17:33 -05:00
4fb8aa74f0
Move Members model to new "membershipworks" app
2022-02-03 13:45:58 -05:00