0f30358357
membershipworks: Handle events without instructors better
Ruff / ruff (push) Successful in 29s
Test / test (push) Successful in 4m59s
2024-05-01 14:35:12 -04:00
b1daa21e2c
membershipworks: Reject event invoice form if an invoice already exists
Ruff / ruff (push) Successful in 29s
Test / test (push) Failing after 4m56s
2024-05-01 14:26:40 -04:00
0f1640a5d6
membershipworks: Adjust invoice PDF spacing
Ruff / ruff (push) Successful in 1m49s
Test / test (push) Successful in 6m20s
2024-05-01 12:48:43 -04:00
05bdc92a36
membershipworks: Show materials fee as $0.00 in invoice, even when unknown
2024-05-01 12:48:43 -04:00
e6a7e0c974
membershipworks: Reword event invoice, add date to body
Ruff / ruff (push) Successful in 2m9s
Test / test (push) Successful in 6m27s
2024-04-27 11:01:08 -04:00
ae1116fea8
membershipworks: Add PDF preview for event invoices
2024-04-27 11:01:08 -04:00
029b4dff28
Split tables out of view
modules into tables
2024-04-18 11:30:18 -04:00
0ce441336f
membershipworks: Add ability for instructors to generate and submit event invoices
Ruff / ruff (push) Successful in 1m23s
Test / test (push) Failing after 6m7s
2024-04-14 01:31:03 -04:00
b6b16a17d8
membershipworks: Add model and admin for EventInvoice
2024-04-05 14:10:08 -04:00
132b134dc5
membershipworks: Use nh3 to unescape event titles
2024-04-04 00:23:06 -04:00
58cc8cb2f8
doorcontrol: Add EventTicketType method to group by member/non-member
2024-03-29 12:01:23 -04:00
0318a610e7
membershipworks: Use monospace font for invoice header math
2024-03-29 12:01:23 -04:00
1ac1470d29
membershipworks: Rename Instructor Revenue column in invoices
2024-03-29 12:01:23 -04:00
bc52dd3369
Add permissions-based visible
method to LinksCardDashboardFragment
2024-03-15 12:11:30 -04:00
dc9a06b415
Remove separate membershipworks
database, merging it into default
2024-02-23 13:01:37 -05:00
d59318e2a5
membershipworks: Add Missing Paperwork report
2024-02-16 11:38:45 -05:00
dd6ef35223
membershipworks: Constrain EventMeetingTime.end
after start
Ruff / ruff (push) Successful in 24s
2024-02-12 16:26:19 -05:00
7fd9181da1
membershipworks: Add changelist action to sync UCS accounts
Ruff / ruff (push) Successful in 21s
2024-02-08 15:45:02 -05:00
43f992e2c3
paperwork: Remove suffixes from names in shopleads mailing list
...
Mailman3 doesn't have display names per list anymore, so this is
somewhat confusing
2024-02-07 13:40:04 -05:00
26514e60fb
dashboard: Add more flexible Link Card dashboard fragment
...
with support for tooltips and accordions
2024-02-06 00:42:14 -05:00
387767204a
membershipworks: Add upcoming events to dashboard
2024-02-05 19:51:55 -05:00
72a1ce8750
membershipworks: Add/fix migrations for earlier manual fixes
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
Ruff / ruff (push) Successful in 21s
2024-02-03 23:33:50 -05:00
560225cdb3
membershipworks: Add new event attendee email report
Ruff / ruff (push) Successful in 20s
2024-02-02 19:26:06 -05:00
2d16029ed7
membershipworks: Switch EventExt.details_timestamp to an annotation
...
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
Ruff / ruff (push) Successful in 22s
2024-01-31 20:28:28 -05:00
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