ABTech / tracker

Carnegie Mellon Activities Board Technical Committee Tracker
abtech.org
22 stars 28 forks source link

Resolve #439 by adding eventdate statuses #536

Open NoRePercussions opened 10 months ago

NoRePercussions commented 10 months ago

Resolves #439 Supersedes #534

This adds statuses to eventdates, so they can be marked cancelled or completed similar to events.

As of 45b6d1b4 a date marked cancelled can still be billed for if marked show billable or similar. This does not reflect how events work (cannot bill for cancelled events even if they are marked billable), but may be necessary for edge cases such as an event getting cancelled after an early setup but before the show.

DaAwesomeP commented 8 months ago

I think this is missing some coordination with the overall event status. Since all events must have at least one event date, it seems like there should be validations for all event dates that determine the allowable overall event status. Examples:

I think these validations are especially necessary until the billing system switches to being fully by event date and not by event (later pull).

Theoretically the overall event status could be determined from an expression based on the statuses of the event dates, but that will need some thought into edge cases.

I think a "set all at once" option is necessary for massive events like orientation (this could be in the frontend so that you can make exceptions). This should be a later pull.

I think I would much prefer having cancelled as an eventdate status instead of a checkbox since that mirrors how overall events work. If people billed for an event date, then it took place as far as billing is concerned.

DaAwesomeP commented 8 months ago

Another thought: there should be a "blank" or null default state for eventdate statuses so that we don't have to edit old events when adding columns to the DB. Also useful for events that don't use the event date statuses.