Commit Graph

205 Commits

Author SHA1 Message Date
c3f3294f2a membershipworks: Add a __str__ method for EventMeetingTime 2024-06-07 09:36:49 -04:00
521c6cd52a membershipworks: Allow setting verbosity in scrape_events command 2024-06-07 09:36:49 -04:00
b1d3f16459 membershipworks: Add event instructor name to EventInvoice list_display
All checks were successful
Ruff / ruff (push) Successful in 29s
Test / test (push) Successful in 4m5s
2024-05-24 11:38:05 -04:00
229558116b membershipworks: Add event start/end to EventInvoice list_display
All checks were successful
Ruff / ruff (push) Successful in 29s
Test / test (push) Successful in 3m55s
2024-05-24 11:30:34 -04:00
26420ce28e membershipworks: Add a model admin for event invoices
All checks were successful
Ruff / ruff (push) Successful in 30s
Test / test (push) Successful in 4m13s
2024-05-24 11:19:14 -04:00
c03c5ff2f0 membershipworks: Use django.utils.timezone.now instead of django.db.models.functions.Now
All checks were successful
Ruff / ruff (push) Successful in 36s
Test / test (push) Successful in 4m32s
`Now()` produces incorrect results due to timezone mismatch, see
https://code.djangoproject.com/ticket/31638
2024-05-23 23:43:31 -04:00
eeb83388e1 Directly use q_task_group name in django-q2 ensure_scheduled helper
All checks were successful
Ruff / ruff (push) Successful in 29s
Test / test (push) Successful in 3m55s
2024-05-23 23:23:35 -04:00
bd1e009cc2 membershipworks: Only send event survey emails to non-voided participants
All checks were successful
Ruff / ruff (push) Successful in 28s
Test / test (push) Successful in 4m5s
2024-05-23 19:42:57 -04:00
350dc4e1ee membershipworks: Inline event survey_url function 2024-05-23 19:41:57 -04:00
dcf483d19e membershipworks: Automatically send survey emails to event attendees
All checks were successful
Ruff / ruff (push) Successful in 29s
Test / test (push) Successful in 3m55s
2024-05-23 19:20:01 -04:00
7ce28d449f Refactor email generation to use a class-based design like Django views 2024-05-16 00:58:17 -04:00
a7e7fafedd membershipworks: Fix check for existing invoices in EventInvoiceForm
All checks were successful
Ruff / ruff (push) Successful in 1m16s
Test / test (push) Successful in 5m14s
2024-05-15 19:33:17 -04:00
8b1722d1f0 membershipworks: Hide EventExt.registrations from admin
All checks were successful
Ruff / ruff (push) Successful in 27s
Test / test (push) Successful in 4m24s
2024-05-08 12:48:10 -04:00
df4c5564c4 membershipworks: Remove unnecessary admin.display() function 2024-05-08 12:46:56 -04:00
1310e72e3f membershipworks: Convert EventExt.details_timestamp to GeneratedField
was waiting on Django 5.0.5 to fix
https://code.djangoproject.com/ticket/35350
2024-05-08 12:45:34 -04:00
9c2084903f membershipworks: Add view for event registrations 2024-05-05 23:20:47 -04:00
25fbe3d352 membershipworks: Add breadcrumbs for "my events" and event details page 2024-05-05 23:20:43 -04:00
0944dd7992 Fix various type issues 2024-05-04 18:03:22 -04:00
ee2d63f784 membershipworks: Add support for scraping event registration data 2024-05-03 12:37:48 -04:00
c2b1da743c membershipworks: Remove commented out line 2024-05-03 12:37:48 -04:00
79651731b1 membershipworks: Fix missing @property on EventExt.ready_for_invoice
All checks were successful
Ruff / ruff (push) Successful in 29s
Test / test (push) Successful in 4m53s
2024-05-03 12:37:30 -04:00
31cc5312ad membershipworks: More thoroughly check if events are ready for an invoice
All checks were successful
Ruff / ruff (push) Successful in 37s
Test / test (push) Successful in 5m29s
2024-05-02 23:53:48 -04:00
0f30358357 membershipworks: Handle events without instructors better
All checks were successful
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
Some checks failed
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
All checks were successful
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
All checks were successful
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
Some checks failed
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
All checks were successful
Ruff / ruff (push) Successful in 24s
2024-02-12 16:26:19 -05:00
7fd9181da1 membershipworks: Add changelist action to sync UCS accounts
All checks were successful
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
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