ec7182319d
membershipworks: Avoid duplicating Transactions with NULL sid field
...
Ruff / ruff (push) Successful in 1m0s
Test / test (push) Successful in 3m57s
Treat NULL in Transaction.sid as non-distinct in the UNIQUE constraint
2024-12-06 15:08:20 -05:00
64d8d1fcfb
Allow assigning arbitrary NFC card numbers to members on HID doors
Ruff / ruff (push) Successful in 1m53s
Test / test (push) Successful in 4m50s
2024-12-03 11:54:07 -05:00
ad93c361fd
membershipworks: Group tickets by price group for event invoices
...
Ruff / ruff (push) Successful in 46s
Test / test (push) Successful in 3m44s
This groups tickets by their actual price grouping, instead of always
using member/non-member, which is not a useful distinction post 2024-07-01.
2024-11-25 14:18:13 -05:00
fd26e2b17d
membershipworks: Provide details when an event is not ready for invoice
2024-11-25 13:37:50 -05:00
e5462a0063
membershipworks: Add some help text to event materials fee fields
Ruff / ruff (push) Successful in 1m29s
Test / test (push) Successful in 4m19s
2024-11-07 00:45:02 -05:00
69defab388
membershipworks: Indicate in admin events with meeting times not matching event start/end
2024-09-09 22:33:01 -04:00
62e48c6e6f
membershipworks: Use bulk upsert when scraping transactions
...
Ruff / ruff (push) Successful in 29s
Test / test (push) Successful in 3m9s
Instead of trying to do fiddly things with relative times, which turns
out not to work very well. This will break if anyone changes the sid
or timestamp of a transaction though (because of course
MembershipWorks allows editing those).
2024-09-02 12:50:08 -04:00
b98804e514
membershipworks: Use django-simple-history for Member, Flag, and MemberFlag
2024-08-29 21:45:56 -04:00
ee61451759
Convert from MariaDB to PostgreSQL
...
MariaDB has become far too annoying/buggy, and there are some neat
features only available in PostgreSQL
2024-08-29 21:45:56 -04:00
cd054bd716
membershipworks: Ignore deletions of related EventExt in View Models
2024-08-14 16:58:22 -04:00
20fcac99a8
Apply Ruff's flake8-bugbear (B) rules
2024-08-09 01:47:32 -04:00
7b3dfef732
Apply Ruff's flake8-type-checking (TCH) rules
2024-08-09 01:47:32 -04:00
ab25da0aa1
Apply Ruff's flake8-builtins (A) rules
2024-08-09 01:47:32 -04:00
d792efc084
reservations: Make ReservationAdmin more useful for subclasses
2024-08-09 01:47:32 -04:00
e4280361d1
membershipworks: Convert EventMeetingTime to subclass of Reservation
2024-08-09 01:47:32 -04:00
508baf809c
membershipworks: Specify timezone in ticket price policy effective date
2024-08-09 01:47:32 -04:00
5e4ab7a58a
membershipworks: Use Non-Member ticket price when Member price is 0
Ruff / ruff (push) Successful in 1m36s
Test / test (push) Failing after 3m35s
2024-07-23 12:49:44 -04:00
e4c3b7cca2
membershipworks: Add "Current and Upcoming Events" view
2024-07-18 13:09:21 -04:00
a49466a93a
membershipworks: Apply new "Members" ticket-based pricing to classes after 2024-07-01
Ruff / ruff (push) Successful in 1m32s
Test / test (push) Successful in 5m17s
2024-06-27 15:54:13 -04:00
d8e6a69719
Apply ruff lint rule DJ012 for model internals ordering
2024-06-07 09:36:49 -04:00
c3f3294f2a
membershipworks: Add a __str__
method for EventMeetingTime
2024-06-07 09:36:49 -04:00
dcf483d19e
membershipworks: Automatically send survey emails to event attendees
Ruff / ruff (push) Successful in 29s
Test / test (push) Successful in 3m55s
2024-05-23 19:20:01 -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
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
79651731b1
membershipworks: Fix missing @property
on EventExt.ready_for_invoice
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
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
Ruff / ruff (push) Successful in 29s
Test / test (push) Successful in 4m59s
2024-05-01 14:35:12 -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
1ac1470d29
membershipworks: Rename Instructor Revenue column in invoices
2024-03-29 12:01:23 -04:00
dd6ef35223
membershipworks: Constrain EventMeetingTime.end
after start
Ruff / ruff (push) Successful in 24s
2024-02-12 16:26:19 -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
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
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
e10bcd5b49
membershipworks: Add storage and scraping for Event details
2024-01-29 21:48:19 -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
19d8e888f4
membershipworks: Add EventExt.materials_fee_included_in_price field
Ruff / ruff (push) Successful in 20s
2024-01-24 22:12:14 -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
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
02777265b0
Switch from Black to Ruff for formatting, add linting/import sorting
2024-01-18 14:21:36 -05:00