E2605: Complete backend support for specialized rubrics by topic#325
E2605: Complete backend support for specialized rubrics by topic#325PositivelyBookish wants to merge 10 commits into
Conversation
Generated by 🚫 Danger |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (24)
📝 WalkthroughWalkthroughThis PR introduces a topic-aware rubric management system for assignments. It adds a new controller for assignment questionnaires, implements automatic review reset with archival when rubrics change, enables instructors to assign rubrics per topic, and notifies reviewers when rubrics are updated. Changes
Sequence Diagram(s)sequenceDiagram
participant Instructor
participant Controller as AssignmentQuestionnairesController
participant Planner as ReviewResetHandler
participant Archive as ReviewResetArchive
participant Mailer as RubricUpdateMailer
participant DB as Database
Instructor->>Controller: POST/PATCH assignment_questionnaire
Controller->>Planner: build_review_reset_plan(context)
Planner->>DB: Query ReviewQuestionnaire mappings<br/>for assignment & topic
Planner->>DB: Fetch associated Responses<br/>by round
Planner->>DB: Build archive payloads<br/>(with snapshots)
Planner-->>Controller: Return reset_plan
Controller->>DB: Save mapping (create/update)
Controller->>Planner: apply_review_reset_plan(plan)
Planner->>Archive: Create ReviewResetArchive<br/>(for each response)
Planner->>Mailer: Enqueue redo notifications<br/>for reviewers
Mailer-->>Instructor: Email sent (async)
Planner->>DB: Delete archived Responses
Planner-->>Controller: Plan applied
Controller-->>Instructor: JSON response (201/200)
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
This PR finalizes backend support for specialized review rubrics by topic.
It enables assignments to use a default review rubric while allowing individual topics to override that rubric, with support for round-specific behavior when rubrics vary by both topic and round.
Changes
Behavior
After this change:
Testing
Verified through manual integration testing with the assignment editor by:
Review rubric varies by topic?Summary by CodeRabbit
New Features
Tests