feat: review open answers in the admin and pick a grader per quiz

- Do oceny admin screen (golem15.quizzes.reviews) over the open answers,
  with a read-only context partial, score and comment virtual fields saved
  through SetScore, confirm and regrade record actions, bulk confirm
- open question type, rubric and max_length in the question form; grader
  dropdown on the quiz form from the grader registry
- Review model with quiz, status and student filters
This commit is contained in:
Jakub Zych
2026-11-09 18:31:19 +01:00
parent 1ce1ebee16
commit 2ad4e8b1ec
20 changed files with 1244 additions and 9 deletions

View File

@@ -51,6 +51,8 @@ quizzes:
navigation_comment: Applies to tests only.
max_attempts: Attempt limit
max_attempts_comment: Tests only. Leave empty for no limit.
grader: Grading of open questions
grader_comment: "Manual: you grade every answer yourself. Installed plugins add other options."
questions:
title: Questions
question: Question
@@ -59,11 +61,16 @@ questions:
type: Type
type_single: Single choice
type_multiple: Multiple choice
type_open: Open question
type_self_check: Self-check (flashcard)
category: Category
points: Points
answer_text: Model answer
answer_text_comment: Revealed for self-check questions.
answer_text_comment: Revealed for self-check questions. For an open question it is the model answer.
rubric: Grading criteria (for the grader only)
rubric_comment: Only the grader sees it, never the student. Applies to open questions.
max_length: Max. answer length
max_length_comment: Characters; empty means 2000. Applies to open questions.
explanation: Explanation
answers:
title: Answers
@@ -81,3 +88,45 @@ attempts:
score_points: Points
max_points: Max points
score_percent: Score (%)
reviews:
title: To review
answer: Open answer
context: Answer
quiz: Quiz
question: Question
student: Student
text: Student's answer
max_length: Character limit
status: Status
status_pending: waiting for a grade
status_graded: to be verified
status_failed: grading failed
status_reviewed: verified
grader: Grader
grader_points: Grader's points
grader_feedback: Grader's feedback
grading_error: Grading error
grading_attempts: Grading attempts
points: Points
points_short: pts
graded_at: Graded
reviewed_at: Verified
model_answer: Model answer
rubric: Grading criteria
review_points: Points (final)
review_points_comment: From 0 to the question's points, in steps of 0.5.
review_comment: Comment to the student
review_comment_comment: The student sees it with their answer. Saving points replaces an earlier comment.
confirm: Confirm the grade
confirm_selected: Confirm selected
confirmed: Grade confirmed.
regrade: Grade again
regrade_confirm: The answer goes back to grading and loses the grader's current result.
regraded: The answer was sent to be graded again.
points_required: Enter the points to save a grade.
points_invalid: Points must be from 0 to the question's points, in steps of 0.5.
no_grader_score: This answer has no grader's score yet; enter the points yourself.
already_reviewed: This answer is already verified.
grader_manual: This quiz is graded manually; nothing can grade the answer again.
not_found: This answer was not found.
not_created: Open answers come from students; they cannot be added or deleted here.