[x] ignore (0 = no. 1 = Yes for reputation % only. 2 = Yes for both reputation % and count of any absences/cancellations/late starts/late ends).
Also implement the following:
[x] attendance/edit (only allow editing of the active and the ignore columns for now; requires director authentication)
[x] Correct marking of active status especially when adding records for cancellations and unexcused absences. Remove adding {CANCELLED via Google Calendar} in the event column.
[x] Run a DB query that transforms all current records: Set all records ignore value to 0. If scheduledStart and scheduledEnd is filled in, but actualStart and actualEnd is null, set active to 0 if the {CANCELLED via Google Calendar} does not exist in the event column. Otherwise, set to -1. Also, remove {CANCELLED via Google Calendar} from all rows that contain it.
[x] Update analytics.showtime helper to utilize both active and ignore to determine reputation and show absences / cancellations. Do not use Logs anymore.
[x] In DJ Controls, update the attendance history for DJs as well as the global log. Instead of relying on scheduledStart / scheduledEnd / actualStart / actualEnd for determining of an event aired, use the happened column. Also, differentiate in text between unexcused absence and excused absence.
[x] Also in DJ Controls, for all attendance records where actualStart is 10+ minutes off from scheduledStart, or actualEnd is 10+ minutes off from scheduledEnd, add an icon next to edit that allows a director to specify to ignore the fault, either only in reputation %, or from the count of early/late starts or early/late ends all together.
[x] Also in DJ Controls, for unexcused absences, add an icon to allow a director to change it to an excused absence or to ignore the absence all together. For excused absences, do the same except have icons allowing to specify unexcused absence, or ignore all together.
[x] Also in DJ Controls, for any records where ignore does not equal 0, allow a director to reverse their decision and no longer ignore a record towards reputation.
For the Attendance model, add two new columns of type tinyint:
[x] happened (1 = event happened, 0 = unexcused absence, -1 = cancelled. Defaults to 1.)
[x] ignore (0 = no. 1 = Yes for reputation % only. 2 = Yes for both reputation % and count of any absences/cancellations/late starts/late ends).
Also implement the following:
[x] attendance/edit (only allow editing of the active and the ignore columns for now; requires director authentication)
[x] Correct marking of active status especially when adding records for cancellations and unexcused absences. Remove adding {CANCELLED via Google Calendar} in the event column.
[x] Run a DB query that transforms all current records: Set all records ignore value to 0. If scheduledStart and scheduledEnd is filled in, but actualStart and actualEnd is null, set active to 0 if the {CANCELLED via Google Calendar} does not exist in the event column. Otherwise, set to -1. Also, remove {CANCELLED via Google Calendar} from all rows that contain it.
[x] Update analytics.showtime helper to utilize both active and ignore to determine reputation and show absences / cancellations. Do not use Logs anymore.
[x] In DJ Controls, update the attendance history for DJs as well as the global log. Instead of relying on scheduledStart / scheduledEnd / actualStart / actualEnd for determining of an event aired, use the happened column. Also, differentiate in text between unexcused absence and excused absence.
[x] Also in DJ Controls, for all attendance records where actualStart is 10+ minutes off from scheduledStart, or actualEnd is 10+ minutes off from scheduledEnd, add an icon next to edit that allows a director to specify to ignore the fault, either only in reputation %, or from the count of early/late starts or early/late ends all together.
[x] Also in DJ Controls, for unexcused absences, add an icon to allow a director to change it to an excused absence or to ignore the absence all together. For excused absences, do the same except have icons allowing to specify unexcused absence, or ignore all together.
[x] Also in DJ Controls, for any records where ignore does not equal 0, allow a director to reverse their decision and no longer ignore a record towards reputation.
[x] Test everything