From 62bffc06d79f048aa5b7ead722e9d4e4fa9aaf81 Mon Sep 17 00:00:00 2001 From: Muhammad Faraz Maqsood Date: Fri, 16 May 2025 11:26:55 +0500 Subject: [PATCH] feat: add never show assessment msg in subsection - add never show assessment result message in subsection card --- .../NeverShowAssessmentResultMessage.jsx | 20 +++++++++++++++++++ .../xblock-status/XBlockStatus.jsx | 7 +++++++ .../xblock-status/XBlockStatus.test.jsx | 20 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 src/course-outline/xblock-status/NeverShowAssessmentResultMessage.jsx diff --git a/src/course-outline/xblock-status/NeverShowAssessmentResultMessage.jsx b/src/course-outline/xblock-status/NeverShowAssessmentResultMessage.jsx new file mode 100644 index 000000000..12dd0667f --- /dev/null +++ b/src/course-outline/xblock-status/NeverShowAssessmentResultMessage.jsx @@ -0,0 +1,20 @@ +import { useIntl } from '@edx/frontend-platform/i18n'; +import { Icon } from '@openedx/paragon'; +import { HelpOutline } from '@openedx/paragon/icons'; +import messages from '../../generic/configure-modal/messages'; + +const NeverShowAssessmentResultMessage = () => { + const intl = useIntl(); + return ( +
+ + + {intl.formatMessage(messages.neverShowAssessmentResults)} + +
+ ); +}; + +NeverShowAssessmentResultMessage.propTypes = {}; + +export default NeverShowAssessmentResultMessage; diff --git a/src/course-outline/xblock-status/XBlockStatus.jsx b/src/course-outline/xblock-status/XBlockStatus.jsx index d077889e7..77e81e071 100644 --- a/src/course-outline/xblock-status/XBlockStatus.jsx +++ b/src/course-outline/xblock-status/XBlockStatus.jsx @@ -7,6 +7,8 @@ import GradingPolicyAlert from './GradingPolicyAlert'; import GradingTypeAndDueDate from './GradingTypeAndDueDate'; import StatusMessages from './StatusMessages'; import HideAfterDueMessage from './HideAfterDueMessage'; +import NeverShowAssessmentResultMessage from './NeverShowAssessmentResultMessage'; +import { ShowAnswerTypesKeys } from '../../editors/data/constants/problem'; const XBlockStatus = ({ isSelfPaced, @@ -33,6 +35,7 @@ const XBlockStatus = ({ graded, courseGraders, hideAfterDue, + showCorrectness, } = blockData; const isInstructorPaced = !isSelfPaced; @@ -40,6 +43,9 @@ const XBlockStatus = ({ return (
+ {category === COURSE_BLOCK_NAMES.sequential.id && showCorrectness === ShowAnswerTypesKeys.NEVER && ( + + )} {!isVertical && ( for Instructor paced Subsection', () => { @@ -275,6 +277,13 @@ describe(' for Instructor paced Subsection', () => { expect(hideAfterDueMessage).toBeInTheDocument(); expect(hideAfterDueMessage).toHaveTextContent(messages.hiddenAfterDueDate.defaultMessage); + // check never show assessment result message + const neverShowAssessmentResultMessage = queryByTestId('never-show-assessment-result-message'); + expect(neverShowAssessmentResultMessage).toBeInTheDocument(); + expect(neverShowAssessmentResultMessage).toHaveTextContent( + genericMessages.neverShowAssessmentResults.defaultMessage, + ); + // check status messages const statusDiv = queryByTestId('status-messages-div'); expect(statusDiv).toBeInTheDocument(); @@ -402,6 +411,13 @@ describe(' for self paced Subsection', () => { expect(hideAfterDueMessage).toBeInTheDocument(); expect(hideAfterDueMessage).toHaveTextContent(messages.hiddenAfterEndDate.defaultMessage); + // check never show assessment result message + const neverShowAssessmentResultMessage = queryByTestId('never-show-assessment-result-message'); + expect(neverShowAssessmentResultMessage).toBeInTheDocument(); + expect(neverShowAssessmentResultMessage).toHaveTextContent( + genericMessages.neverShowAssessmentResults.defaultMessage, + ); + // check status messages const statusDiv = queryByTestId('status-messages-div'); expect(statusDiv).toBeInTheDocument(); @@ -468,6 +484,10 @@ describe(' for unit', () => { // hide after due date message should not be visible as the flag is set to false expect(queryByTestId('hide-after-due-message')).not.toBeInTheDocument(); + // check never show assessment result message + // never show assessment result message should not be visible as the flag is set to false + expect(queryByTestId('never-show-assessment-result-message')).not.toBeInTheDocument(); + // check status messages for partition info const statusDiv = queryByTestId('status-messages-div'); expect(statusDiv).toBeInTheDocument();