Skip to content

Commit 64f799d

Browse files
MaijjayMaija Y
andauthored
Reject and reset button for manual review (#1571)
* Reject and reset button for manual review * Small fixes * New course with peer review to seed, test fix and message to user when answer has been reset * Little improvements * Fix indent --------- Co-authored-by: Maija Y <[email protected]>
1 parent 1de8db2 commit 64f799d

File tree

34 files changed

+574
-25
lines changed

34 files changed

+574
-25
lines changed

services/course-material/src/components/ContentRenderer/moocfi/ExerciseBlock/GradingState.tsx

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,28 @@ interface GradingStateProps {
1616
reviewingStage: ReviewingStage
1717
peerOrSelfReviewConfig: CourseMaterialPeerOrSelfReviewConfig | null
1818
exercise: Exercise
19+
shouldSeeResetMessage: boolean
1920
}
2021
const GradingState: React.FC<React.PropsWithChildren<GradingStateProps>> = ({
2122
gradingProgress,
2223
reviewingStage,
2324
peerOrSelfReviewConfig,
2425
exercise,
26+
shouldSeeResetMessage,
2527
}) => {
2628
const { t } = useTranslation()
2729

2830
const text = useMemo(
29-
() => getText(reviewingStage, gradingProgress, peerOrSelfReviewConfig, exercise, t),
30-
[gradingProgress, peerOrSelfReviewConfig, reviewingStage, exercise, t],
31+
() =>
32+
getText(
33+
reviewingStage,
34+
gradingProgress,
35+
peerOrSelfReviewConfig,
36+
exercise,
37+
shouldSeeResetMessage,
38+
t,
39+
),
40+
[gradingProgress, peerOrSelfReviewConfig, reviewingStage, exercise, shouldSeeResetMessage, t],
3141
)
3242

3343
if (text === null) {
@@ -46,8 +56,12 @@ const getText = (
4656
gradingProgress: GradingProgress,
4757
peerOrSelfReviewConfig: CourseMaterialPeerOrSelfReviewConfig | null,
4858
exercise: Exercise,
59+
shouldSeeResetMessage: boolean,
4960
t: TFunction<Namespace<"course-material">, Namespace<"course-material">>,
5061
): string | null => {
62+
if (shouldSeeResetMessage && reviewingStage === "NotStarted") {
63+
return t("help-text-exercise-involves-reject-and-reset")
64+
}
5165
if (peerOrSelfReviewConfig && reviewingStage === "NotStarted") {
5266
if (exercise.needs_peer_review && exercise.needs_self_review) {
5367
return t("help-text-exercise-involves-peer-review-and-self-review", {
@@ -90,5 +104,4 @@ const getText = (
90104
return null
91105
}
92106
}
93-
94107
export default GradingState

services/course-material/src/components/ContentRenderer/moocfi/ExerciseBlock/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,7 @@ const ExerciseBlock: React.FC<
575575
reviewingStage={reviewingStage}
576576
peerOrSelfReviewConfig={getCourseMaterialExercise.data.peer_or_self_review_config}
577577
exercise={getCourseMaterialExercise.data.exercise}
578+
shouldSeeResetMessage={getCourseMaterialExercise.data.should_show_reset_message}
578579
/>
579580
)}
580581
{/* Reviewing stage seems to be undefined at least for exams */}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
-- Replace enum value 'reject-and-reset' with 'custom-points'
2+
-- to ensure compatibility with the original teacher_decision_type definition
3+
UPDATE teacher_grading_decisions
4+
SET teacher_decision = 'custom-points'
5+
WHERE teacher_decision = 'reject-and-reset';
6+
7+
-- Rename the old enum
8+
ALTER TYPE teacher_decision_type
9+
RENAME TO teacher_decision_type_old;
10+
11+
-- Create a new enum without 'reject-and-reset'
12+
CREATE TYPE teacher_decision_type AS ENUM (
13+
'full-points',
14+
'zero-points',
15+
'custom-points',
16+
'suspected-plagiarism'
17+
);
18+
19+
-- Change the column to use the new enum
20+
ALTER TABLE teacher_grading_decisions
21+
ALTER COLUMN teacher_decision TYPE teacher_decision_type USING teacher_decision::text::teacher_decision_type;
22+
23+
DROP TYPE teacher_decision_type_old;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ALTER TYPE teacher_decision_type
2+
ADD VALUE IF NOT EXISTS 'reject-and-reset';

services/headless-lms/models/.sqlx/query-2c8c3495c6e898d23d0a73cb3861d511b64e8a06fb5cb8382c9457d494f03d2d.json

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

services/headless-lms/models/.sqlx/query-332f207786e607bdf65df714ed797932f9370e3f01b6091e829202860101b290.json

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

services/headless-lms/models/.sqlx/query-3a4ddf6ae73f0f14deaf0b90c4bb571135b2d2615da09ab2db0e142f6e8163ed.json

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

services/headless-lms/models/.sqlx/query-4ca3f8f39a9cd44d9315a208a4a10dae259aa8938ac279a0a27a54c9129cdf67.json

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

services/headless-lms/models/.sqlx/query-6e9ff76b570a35f0bebf23885d0f90b94820cf360c77736192fc3fb582f91dd4.json

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

services/headless-lms/models/.sqlx/query-87fff2ca65c9bc20623fe470a2267c0638338b0fc3e8ede9f20251f5ee2b428d.json

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)