Close registration at start and complete ended tests automatically #62

Open
opened 2026-11-01 20:12:26 +00:00 by viacheslavshuka · 0 comments

Test status and attendance defaults must remain correct when workers run late or a test changes schedule. Deliver start-cutoff and automatic-completion behavior with visible lifecycle status.

Acceptance criteria

  • At scheduled start, close registration permanently for that running test and stop issuing waiting-list offers.
  • Pending applications, waiting entries, and tentative registrations become inactive. They cannot become confirmed after the cutoff.
  • Offers and reconfirmations expire no later than start. Preserve inactive records as history without a rejection ban.
  • Ordinary approval actions cannot confirm a previously pending request after start, even when the deadline worker is late.
  • Missing quorum shows the shortfall and emits organizer readiness information. It never cancels the test automatically.
  • At current estimated end, automatically complete an ordinary active test. Apply default attendance to its eligible confirmed roster and default full familiarity to the selected groups.
  • Exclude tentative, waiting, pending, rejected, and pre-start withdrawn records from automatic attendance.
  • Record that automatic attendance is an assumption, not evidence of joining the external meeting. Preserve provenance for later organizer corrections.
  • Cancellation prevents ordinary completion and default attendance. Moderation-interrupted tests use actual attendance controls instead of automatic full-attendance defaults.
  • A duration extension changes the expected end. A stale completion job cannot complete the earlier schedule.
  • Worker recovery processes overdue cutoff and completion work according to current status and times. Duplicate execution does not duplicate attendance or activity credit.
  • Retain test, attendance, and group-history records without automatic age-based deletion. Notification cleanup does not delete these records.

Validation

Test start and end boundaries without running deadline jobs first. Race approval against start and execute duplicate completion jobs.

Use independent current-state fixtures for an extended end time, cancellation, and moderation interruption. A stale completion job must preserve those states and their attendance policy.

Assert exact attendance records and provenance, not only final test status. Recover after downtime spanning both start and end.

Dependencies

Test status and attendance defaults must remain correct when workers run late or a test changes schedule. Deliver start-cutoff and automatic-completion behavior with visible lifecycle status. ## Acceptance criteria - At scheduled start, close registration permanently for that running test and stop issuing waiting-list offers. - Pending applications, waiting entries, and tentative registrations become inactive. They cannot become confirmed after the cutoff. - Offers and reconfirmations expire no later than start. Preserve inactive records as history without a rejection ban. - Ordinary approval actions cannot confirm a previously pending request after start, even when the deadline worker is late. - Missing quorum shows the shortfall and emits organizer readiness information. It never cancels the test automatically. - At current estimated end, automatically complete an ordinary active test. Apply default attendance to its eligible confirmed roster and default full familiarity to the selected groups. - Exclude tentative, waiting, pending, rejected, and pre-start withdrawn records from automatic attendance. - Record that automatic attendance is an assumption, not evidence of joining the external meeting. Preserve provenance for later organizer corrections. - Cancellation prevents ordinary completion and default attendance. Moderation-interrupted tests use actual attendance controls instead of automatic full-attendance defaults. - A duration extension changes the expected end. A stale completion job cannot complete the earlier schedule. - Worker recovery processes overdue cutoff and completion work according to current status and times. Duplicate execution does not duplicate attendance or activity credit. - Retain test, attendance, and group-history records without automatic age-based deletion. Notification cleanup does not delete these records. ## Validation Test start and end boundaries without running deadline jobs first. Race approval against start and execute duplicate completion jobs. Use independent current-state fixtures for an extended end time, cancellation, and moderation interruption. A stale completion job must preserve those states and their attendance policy. Assert exact attendance records and provenance, not only final test status. Recover after downtime spanning both start and end. ## Dependencies - [#52: Register individual testers with approval, tentative status, and capacity checks](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/52). Provides the eligible roster. - [#58: Offer available places to waiting testers with explicit acceptance](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/58). Provides reservations and offers to expire. - [#16: Run durable PostgreSQL jobs with atomic effects](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/16). Provides durable cutoff and completion execution. ## Related work - [#64: Reconfirm protected places when test commitments change](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/64) - [#65: Correct attendance and group familiarity without erasing history](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/65) - [#72: Cancel upcoming tests and stop running tests through explicit controls](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/72) - [#71: Show tester and organizer activity rankings from recorded participation](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/71)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
viacheslavshuka/quorum#62
No description provided.