WR-04: cut each long text of the review context view model to an escaped-byte budget, so a 20000-character answer of characters that html/template expands to 5 bytes can no longer push the partial over 64 KiB. Ordinary answers stay whole; a cut text gets a note pointing to quizzes_review_show.
52 lines
2.7 KiB
HTML
52 lines
2.7 KiB
HTML
<div class="quizzes-review">
|
|
{{with .Data}}
|
|
{{if .Cut}}
|
|
<p class="help-block">{{trans "golem15.quizzes::lang.reviews.cut"}}</p>
|
|
{{end}}
|
|
<dl>
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.quiz"}}</dt>
|
|
<dd>{{.QuizTitle}}</dd>
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.student"}}</dt>
|
|
<dd>{{if .StudentName}}{{.StudentName}} <span class="help-block">{{.StudentEmail}}</span>{{else}}{{.StudentEmail}}{{end}}</dd>
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.question"}} ({{.QuestionPoints}} {{trans "golem15.quizzes::lang.reviews.points_short"}})</dt>
|
|
<dd><p class="whitespace-pre-wrap">{{.QuestionText}}</p></dd>
|
|
{{if .ModelAnswer}}
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.model_answer"}}</dt>
|
|
<dd><p class="whitespace-pre-wrap">{{.ModelAnswer}}</p></dd>
|
|
{{end}}
|
|
{{if .Rubric}}
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.rubric"}}</dt>
|
|
<dd><p class="whitespace-pre-wrap">{{.Rubric}}</p></dd>
|
|
{{end}}
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.text"}} <span class="help-block">{{trans "golem15.quizzes::lang.reviews.max_length"}}: {{.MaxLength}}</span></dt>
|
|
<dd><blockquote class="whitespace-pre-wrap">{{.Text}}</blockquote>{{if .TextCut}}<p class="help-block">{{trans "golem15.quizzes::lang.reviews.text_cut"}}</p>{{end}}</dd>
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.status"}}</dt>
|
|
<dd><strong>{{trans .StatusLabel}}</strong></dd>
|
|
{{if .Grader}}
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.grader"}}</dt>
|
|
<dd>{{trans .GraderLabel}} <span class="help-block">{{trans "golem15.quizzes::lang.reviews.grading_attempts"}}: {{.GradingAttempts}}{{if .GradedAt}} · {{trans "golem15.quizzes::lang.reviews.graded_at"}}: {{.GradedAt}}{{end}}</span></dd>
|
|
{{end}}
|
|
{{if .HasGraderPoints}}
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.grader_points"}}</dt>
|
|
<dd>{{.GraderPoints}}</dd>
|
|
{{end}}
|
|
{{if .GraderFeedback}}
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.grader_feedback"}}</dt>
|
|
<dd><p class="whitespace-pre-wrap">{{.GraderFeedback}}</p></dd>
|
|
{{end}}
|
|
{{if .GradingError}}
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.grading_error"}}</dt>
|
|
<dd><p class="whitespace-pre-wrap">{{.GradingError}}</p></dd>
|
|
{{end}}
|
|
{{if .Reviewed}}
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.points"}}</dt>
|
|
<dd><strong>{{.Points}}</strong> / {{.QuestionPoints}}{{if .ReviewedAt}} <span class="help-block">{{trans "golem15.quizzes::lang.reviews.reviewed_at"}}: {{.ReviewedAt}}</span>{{end}}</dd>
|
|
{{end}}
|
|
{{if .ReviewComment}}
|
|
<dt>{{trans "golem15.quizzes::lang.reviews.review_comment"}}</dt>
|
|
<dd><p class="whitespace-pre-wrap">{{.ReviewComment}}</p></dd>
|
|
{{end}}
|
|
</dl>
|
|
{{end}}
|
|
</div>
|