Commit 9d1e77e0 by Andy Armstrong Committed by GitHub

Merge pull request #13840 from edx/andya/support-proctoring-only

Allow authors to remove option for unproctored exams
parents f8e7a5d4 afee725f
......@@ -740,6 +740,17 @@ class CourseFields(object):
scope=Scope.settings
)
allow_proctoring_opt_out = Boolean(
display_name=_("Allow Opting Out of Proctored Exams"),
help=_(
"Enter true or false. If this value is true, learners can choose to take proctored exams "
"without proctoring. If this value is false, all learners must take the exam with proctoring. "
"This setting only applies if proctored exams are enabled for the course."
),
default=True,
scope=Scope.settings
)
create_zendesk_tickets = Boolean(
display_name=_("Create Zendesk Tickets For Suspicious Proctored Exam Attempts"),
help=_(
......@@ -752,7 +763,8 @@ class CourseFields(object):
enable_timed_exams = Boolean(
display_name=_("Enable Timed Exams"),
help=_(
"Enter true or false. If this value is true, timed exams are enabled in your course."
"Enter true or false. If this value is true, timed exams are enabled in your course. "
"Regardless of this setting, timed exams are enabled if Enable Proctored Exams is set to true."
),
default=False,
scope=Scope.settings
......
......@@ -117,6 +117,12 @@ class ProctoringFields(object):
scope=Scope.settings,
)
def _get_course(self):
"""
Return course by course id.
"""
return self.descriptor.runtime.modulestore.get_course(self.course_id) # pylint: disable=no-member
@property
def is_timed_exam(self):
"""
......@@ -130,6 +136,14 @@ class ProctoringFields(object):
""" Alias the is_proctored_enabled field to the more legible is_proctored_exam """
return self.is_proctored_enabled
@property
def allow_proctoring_opt_out(self):
"""
Returns true if the learner should be given the option to choose between
taking a proctored exam, or opting out to take the exam without proctoring.
"""
return self._get_course().allow_proctoring_opt_out
@is_proctored_exam.setter
def is_proctored_exam(self, value):
""" Alias the is_proctored_enabled field to the more legible is_proctored_exam """
......@@ -453,6 +467,7 @@ class SequenceModule(SequenceFields, ProctoringFields, XModule):
self.default_time_limit_minutes else 0
),
'is_practice_exam': self.is_practice_exam,
'allow_proctoring_opt_out': self.allow_proctoring_opt_out,
'due_date': self.due
}
......
......@@ -220,6 +220,7 @@ class AdvancedSettingsPage(CoursePage):
'video_bumper',
'cert_html_view_enabled',
'enable_proctored_exams',
'allow_proctoring_opt_out',
'enable_timed_exams',
'enable_subsection_gating',
'learning_info',
......
......@@ -10,6 +10,10 @@
@import 'shared/alerts_pattern_library_shim';
@import 'shared/tooltips';
// Pattern Library shims
@import 'edx-pattern-library-shims/base/variables';
@import 'edx-pattern-library-shims/buttons';
// base - elements
@import 'elements/typography';
@import 'elements/controls';
......
......@@ -12,6 +12,10 @@
// base - starter
@import 'base/base';
// Pattern Library shims
@import 'edx-pattern-library-shims/base/variables';
@import 'edx-pattern-library-shims/buttons';
// base - elements
@import 'elements/controls';
@import 'elements/creative-commons';
......@@ -74,6 +78,3 @@
// overrides
@import 'developer'; // used for any developer-created scss that needs further polish/refactoring
@import 'shame'; // used for any bad-form/orphaned scss
// CAPA Problem Feedback
@import 'edx-pattern-library-shims/buttons';
......@@ -252,7 +252,7 @@ html.video-fullscreen {
@extend .timed-exam;
.proctored-exam-message {
border-top: ($baseline/10) solid rgb(207, 216, 220);
border-top: ($baseline/10) solid $uxpl-gray-background;
padding-top: 25px;
}
......@@ -266,56 +266,47 @@ html.video-fullscreen {
padding: 0 ($baseline*5) 0 ($baseline*2.5);
}
}
hr {
border-bottom: 1px solid rgb(207, 216, 220);
border-bottom: 1px solid $uxpl-gray-background;
}
.gated-sequence {
border-bottom: 2px solid rgb(207, 216, 220);
border-bottom: 2px solid $uxpl-gray-background;
padding: 22px ($baseline*5) 15px 50px;
position: relative;
span {
.fa {
position: absolute;
font-size: 22px;
left: 0;
top: $baseline;
color: rgb(206, 216, 220);
}
}
.start-timed-exam {
&.start-timed-exam {
margin-bottom:($baseline/2);
display: block;
&.action-primary {
.icon {
color: $uxpl-blue-base;
}
}
}
p {
color: #414141;
color: $uxpl-gray-base;
strong {
font-weight: 600;
}
}
> .fa {
.icon {
@include right(35px);
position: absolute;
top: 50%;
font-size: 30px;
margin-top: -15px;
&.fa-arrow-circle-right {
top: 30%;
}
}
&:last-child {
> .fa {
color: rgb(206, 216, 220);
}
border-bottom: none;
color: $uxpl-gray-base;
}
&:last-child {
> .practice-exam {
color: $uxpl-blue-base;
}
border-bottom: none;
}
}
}
.proctored-exam-skip-confirm-wrapper {
border-left: ($baseline/4) solid $red;
padding: $baseline ($baseline*1.5);;
......@@ -343,7 +334,7 @@ html.video-fullscreen {
padding: 30px 0px 20px 0px;
border-bottom: ($baseline/10) solid #CFD9DD;
hr {
border-bottom: 1px solid rgb(207, 216, 220);
border-bottom: 1px solid $uxpl-gray-background;
}
.clearfix {
clear: both;
......@@ -375,9 +366,9 @@ html.video-fullscreen {
margin-bottom: ($baseline/20);
color: #797676;
}
.proctored-exam-instruction{
.proctored-exam-instruction {
padding: ($baseline/2) 0;
border-bottom: 2px solid rgb(207, 216, 220);
border-bottom: 2px solid $uxpl-gray-background;
}
}
.border-b-0 {
......@@ -391,7 +382,7 @@ html.video-fullscreen {
border-bottom : none;
a.footer-link {
display: block;
padding: 10px 0px 10px 0px;
padding: ($baseline/2) 0;
}
}
p {
......
......@@ -91,7 +91,7 @@ git+https://github.com/edx/xblock-utils.git@v1.0.3#egg=xblock-utils==1.0.3
-e git+https://github.com/edx/edx-reverification-block.git@0.0.5#egg=edx-reverification-block==0.0.5
git+https://github.com/edx/edx-user-state-client.git@1.0.1#egg=edx-user-state-client==1.0.1
git+https://github.com/edx/xblock-lti-consumer.git@v1.0.9#egg=xblock-lti-consumer==1.0.9
git+https://github.com/edx/edx-proctoring.git@0.15.0#egg=edx-proctoring==0.15.0
git+https://github.com/edx/edx-proctoring.git@0.16.1#egg=edx-proctoring==0.16.1
# Third Party XBlocks
-e git+https://github.com/mitodl/edx-sga@172a90fd2738f8142c10478356b2d9ed3e55334a#egg=edx-sga
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment