Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
9d1e77e0
Commit
9d1e77e0
authored
Oct 31, 2016
by
Andy Armstrong
Committed by
GitHub
Oct 31, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #13840 from edx/andya/support-proctoring-only
Allow authors to remove option for unproctored exams
parents
f8e7a5d4
afee725f
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
62 additions
and
38 deletions
+62
-38
common/lib/xmodule/xmodule/course_module.py
+13
-1
common/lib/xmodule/xmodule/seq_module.py
+15
-0
common/test/acceptance/pages/studio/settings_advanced.py
+1
-0
lms/static/sass/_build-course.scss
+4
-0
lms/static/sass/_build-lms-v1.scss
+4
-3
lms/static/sass/course/courseware/_courseware.scss
+24
-33
requirements/edx/github.txt
+1
-1
No files found.
common/lib/xmodule/xmodule/course_module.py
View file @
9d1e77e0
...
@@ -740,6 +740,17 @@ class CourseFields(object):
...
@@ -740,6 +740,17 @@ class CourseFields(object):
scope
=
Scope
.
settings
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
(
create_zendesk_tickets
=
Boolean
(
display_name
=
_
(
"Create Zendesk Tickets For Suspicious Proctored Exam Attempts"
),
display_name
=
_
(
"Create Zendesk Tickets For Suspicious Proctored Exam Attempts"
),
help
=
_
(
help
=
_
(
...
@@ -752,7 +763,8 @@ class CourseFields(object):
...
@@ -752,7 +763,8 @@ class CourseFields(object):
enable_timed_exams
=
Boolean
(
enable_timed_exams
=
Boolean
(
display_name
=
_
(
"Enable Timed Exams"
),
display_name
=
_
(
"Enable Timed Exams"
),
help
=
_
(
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
,
default
=
False
,
scope
=
Scope
.
settings
scope
=
Scope
.
settings
...
...
common/lib/xmodule/xmodule/seq_module.py
View file @
9d1e77e0
...
@@ -117,6 +117,12 @@ class ProctoringFields(object):
...
@@ -117,6 +117,12 @@ class ProctoringFields(object):
scope
=
Scope
.
settings
,
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
@property
def
is_timed_exam
(
self
):
def
is_timed_exam
(
self
):
"""
"""
...
@@ -130,6 +136,14 @@ class ProctoringFields(object):
...
@@ -130,6 +136,14 @@ class ProctoringFields(object):
""" Alias the is_proctored_enabled field to the more legible is_proctored_exam """
""" Alias the is_proctored_enabled field to the more legible is_proctored_exam """
return
self
.
is_proctored_enabled
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
@is_proctored_exam.setter
def
is_proctored_exam
(
self
,
value
):
def
is_proctored_exam
(
self
,
value
):
""" Alias the is_proctored_enabled field to the more legible is_proctored_exam """
""" Alias the is_proctored_enabled field to the more legible is_proctored_exam """
...
@@ -453,6 +467,7 @@ class SequenceModule(SequenceFields, ProctoringFields, XModule):
...
@@ -453,6 +467,7 @@ class SequenceModule(SequenceFields, ProctoringFields, XModule):
self
.
default_time_limit_minutes
else
0
self
.
default_time_limit_minutes
else
0
),
),
'is_practice_exam'
:
self
.
is_practice_exam
,
'is_practice_exam'
:
self
.
is_practice_exam
,
'allow_proctoring_opt_out'
:
self
.
allow_proctoring_opt_out
,
'due_date'
:
self
.
due
'due_date'
:
self
.
due
}
}
...
...
common/test/acceptance/pages/studio/settings_advanced.py
View file @
9d1e77e0
...
@@ -220,6 +220,7 @@ class AdvancedSettingsPage(CoursePage):
...
@@ -220,6 +220,7 @@ class AdvancedSettingsPage(CoursePage):
'video_bumper'
,
'video_bumper'
,
'cert_html_view_enabled'
,
'cert_html_view_enabled'
,
'enable_proctored_exams'
,
'enable_proctored_exams'
,
'allow_proctoring_opt_out'
,
'enable_timed_exams'
,
'enable_timed_exams'
,
'enable_subsection_gating'
,
'enable_subsection_gating'
,
'learning_info'
,
'learning_info'
,
...
...
lms/static/sass/_build-course.scss
View file @
9d1e77e0
...
@@ -10,6 +10,10 @@
...
@@ -10,6 +10,10 @@
@import
'shared/alerts_pattern_library_shim'
;
@import
'shared/alerts_pattern_library_shim'
;
@import
'shared/tooltips'
;
@import
'shared/tooltips'
;
// Pattern Library shims
@import
'edx-pattern-library-shims/base/variables'
;
@import
'edx-pattern-library-shims/buttons'
;
// base - elements
// base - elements
@import
'elements/typography'
;
@import
'elements/typography'
;
@import
'elements/controls'
;
@import
'elements/controls'
;
...
...
lms/static/sass/_build-lms-v1.scss
View file @
9d1e77e0
...
@@ -12,6 +12,10 @@
...
@@ -12,6 +12,10 @@
// base - starter
// base - starter
@import
'base/base'
;
@import
'base/base'
;
// Pattern Library shims
@import
'edx-pattern-library-shims/base/variables'
;
@import
'edx-pattern-library-shims/buttons'
;
// base - elements
// base - elements
@import
'elements/controls'
;
@import
'elements/controls'
;
@import
'elements/creative-commons'
;
@import
'elements/creative-commons'
;
...
@@ -74,6 +78,3 @@
...
@@ -74,6 +78,3 @@
// overrides
// overrides
@import
'developer'
;
// used for any developer-created scss that needs further polish/refactoring
@import
'developer'
;
// used for any developer-created scss that needs further polish/refactoring
@import
'shame'
;
// used for any bad-form/orphaned scss
@import
'shame'
;
// used for any bad-form/orphaned scss
// CAPA Problem Feedback
@import
'edx-pattern-library-shims/buttons'
;
lms/static/sass/course/courseware/_courseware.scss
View file @
9d1e77e0
...
@@ -252,7 +252,7 @@ html.video-fullscreen {
...
@@ -252,7 +252,7 @@ html.video-fullscreen {
@extend
.timed-exam
;
@extend
.timed-exam
;
.proctored-exam-message
{
.proctored-exam-message
{
border-top
:
(
$baseline
/
10
)
solid
rgb
(
207
,
216
,
220
)
;
border-top
:
(
$baseline
/
10
)
solid
$uxpl-gray-background
;
padding-top
:
25px
;
padding-top
:
25px
;
}
}
...
@@ -266,56 +266,47 @@ html.video-fullscreen {
...
@@ -266,56 +266,47 @@ html.video-fullscreen {
padding
:
0
(
$baseline
*
5
)
0
(
$baseline
*
2
.5
);
padding
:
0
(
$baseline
*
5
)
0
(
$baseline
*
2
.5
);
}
}
}
}
hr
{
hr
{
border-bottom
:
1px
solid
rgb
(
207
,
216
,
220
)
;
border-bottom
:
1px
solid
$uxpl-gray-background
;
}
}
.gated-sequence
{
.gated-sequence
{
border-bottom
:
2px
solid
rgb
(
207
,
216
,
220
)
;
border-bottom
:
2px
solid
$uxpl-gray-background
;
padding
:
22px
(
$baseline
*
5
)
15px
50px
;
padding
:
22px
(
$baseline
*
5
)
15px
50px
;
position
:
relative
;
position
:
relative
;
span
{
.fa
{
&
.start-timed-exam
{
position
:
absolute
;
font-size
:
22px
;
left
:
0
;
top
:
$baseline
;
color
:
rgb
(
206
,
216
,
220
);
}
}
.start-timed-exam
{
margin-bottom
:(
$baseline
/
2
);
margin-bottom
:(
$baseline
/
2
);
display
:
block
;
display
:
block
;
&
.action-primary
{
.icon
{
color
:
$uxpl-blue-base
;
}
}
}
}
p
{
p
{
color
:
#414141
;
color
:
$uxpl-gray-base
;
strong
{
strong
{
font-weight
:
600
;
font-weight
:
600
;
}
}
}
}
>
.fa
{
.icon
{
@include
right
(
35px
);
@include
right
(
35px
);
position
:
absolute
;
position
:
absolute
;
top
:
50%
;
font-size
:
30px
;
font-size
:
30px
;
margin-top
:
-15px
;
color
:
$uxpl-gray-base
;
&
.fa-arrow-circle-right
{
top
:
30%
;
}
}
&
:last-child
{
>
.fa
{
color
:
rgb
(
206
,
216
,
220
);
}
border-bottom
:
none
;
}
}
&
:last-child
{
&
:last-child
{
>
.practice-exam
{
color
:
$uxpl-blue-base
;
}
border-bottom
:
none
;
border-bottom
:
none
;
}
}
}
}
}
}
.proctored-exam-skip-confirm-wrapper
{
.proctored-exam-skip-confirm-wrapper
{
border-left
:
(
$baseline
/
4
)
solid
$red
;
border-left
:
(
$baseline
/
4
)
solid
$red
;
padding
:
$baseline
(
$baseline
*
1
.5
);;
padding
:
$baseline
(
$baseline
*
1
.5
);;
...
@@ -343,7 +334,7 @@ html.video-fullscreen {
...
@@ -343,7 +334,7 @@ html.video-fullscreen {
padding
:
30px
0px
20px
0px
;
padding
:
30px
0px
20px
0px
;
border-bottom
:
(
$baseline
/
10
)
solid
#CFD9DD
;
border-bottom
:
(
$baseline
/
10
)
solid
#CFD9DD
;
hr
{
hr
{
border-bottom
:
1px
solid
rgb
(
207
,
216
,
220
)
;
border-bottom
:
1px
solid
$uxpl-gray-background
;
}
}
.clearfix
{
.clearfix
{
clear
:
both
;
clear
:
both
;
...
@@ -375,9 +366,9 @@ html.video-fullscreen {
...
@@ -375,9 +366,9 @@ html.video-fullscreen {
margin-bottom
:
(
$baseline
/
20
);
margin-bottom
:
(
$baseline
/
20
);
color
:
#797676
;
color
:
#797676
;
}
}
.proctored-exam-instruction
{
.proctored-exam-instruction
{
padding
:
(
$baseline
/
2
)
0
;
padding
:
(
$baseline
/
2
)
0
;
border-bottom
:
2px
solid
rgb
(
207
,
216
,
220
)
;
border-bottom
:
2px
solid
$uxpl-gray-background
;
}
}
}
}
.border-b-0
{
.border-b-0
{
...
@@ -391,7 +382,7 @@ html.video-fullscreen {
...
@@ -391,7 +382,7 @@ html.video-fullscreen {
border-bottom
:
none
;
border-bottom
:
none
;
a
.footer-link
{
a
.footer-link
{
display
:
block
;
display
:
block
;
padding
:
10px
0px
10px
0px
;
padding
:
(
$baseline
/
2
)
0
;
}
}
}
}
p
{
p
{
...
...
requirements/edx/github.txt
View file @
9d1e77e0
...
@@ -91,7 +91,7 @@ git+https://github.com/edx/xblock-utils.git@v1.0.3#egg=xblock-utils==1.0.3
...
@@ -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
-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/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/xblock-lti-consumer.git@v1.0.9#egg=xblock-lti-consumer==1.0.9
git+https://github.com/edx/edx-proctoring.git@0.1
5.0#egg=edx-proctoring==0.15.0
git+https://github.com/edx/edx-proctoring.git@0.1
6.1#egg=edx-proctoring==0.16.1
# Third Party XBlocks
# Third Party XBlocks
-e git+https://github.com/mitodl/edx-sga@172a90fd2738f8142c10478356b2d9ed3e55334a#egg=edx-sga
-e git+https://github.com/mitodl/edx-sga@172a90fd2738f8142c10478356b2d9ed3e55334a#egg=edx-sga
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment