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
caef3fe8
Commit
caef3fe8
authored
Oct 05, 2016
by
Eric Fischer
Committed by
GitHub
Oct 05, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #13635 from edx/efischer/tnl-5698
Persistent Grades Flag multiple entries per course
parents
66ea22ca
78075d8b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
5 deletions
+65
-5
lms/djangoapps/grades/config/models.py
+3
-5
lms/djangoapps/grades/config/tests/test_models.py
+42
-0
lms/djangoapps/grades/migrations/0005_multiple_course_flags.py
+20
-0
No files found.
lms/djangoapps/grades/config/models.py
View file @
caef3fe8
...
@@ -35,10 +35,8 @@ class PersistentGradesEnabledFlag(ConfigurationModel):
...
@@ -35,10 +35,8 @@ class PersistentGradesEnabledFlag(ConfigurationModel):
if
not
PersistentGradesEnabledFlag
.
is_enabled
():
if
not
PersistentGradesEnabledFlag
.
is_enabled
():
return
False
return
False
elif
not
PersistentGradesEnabledFlag
.
current
()
.
enabled_for_all_courses
and
course_id
:
elif
not
PersistentGradesEnabledFlag
.
current
()
.
enabled_for_all_courses
and
course_id
:
try
:
effective
=
CoursePersistentGradesFlag
.
objects
.
filter
(
course_id
=
course_id
)
.
order_by
(
'-change_date'
)
.
first
()
return
CoursePersistentGradesFlag
.
objects
.
get
(
course_id
=
course_id
)
.
enabled
return
effective
.
enabled
if
effective
is
not
None
else
False
except
CoursePersistentGradesFlag
.
DoesNotExist
:
return
False
return
True
return
True
class
Meta
(
object
):
class
Meta
(
object
):
...
@@ -63,7 +61,7 @@ class CoursePersistentGradesFlag(ConfigurationModel):
...
@@ -63,7 +61,7 @@ class CoursePersistentGradesFlag(ConfigurationModel):
app_label
=
"grades"
app_label
=
"grades"
# The course that these features are attached to.
# The course that these features are attached to.
course_id
=
CourseKeyField
(
max_length
=
255
,
db_index
=
True
,
unique
=
True
)
course_id
=
CourseKeyField
(
max_length
=
255
,
db_index
=
True
)
def
__unicode__
(
self
):
def
__unicode__
(
self
):
not_en
=
"Not "
not_en
=
"Not "
...
...
lms/djangoapps/grades/config/tests/test_models.py
View file @
caef3fe8
...
@@ -47,3 +47,45 @@ class PersistentGradesFeatureFlagTests(TestCase):
...
@@ -47,3 +47,45 @@ class PersistentGradesFeatureFlagTests(TestCase):
PersistentGradesEnabledFlag
.
feature_enabled
(
self
.
course_id_2
),
PersistentGradesEnabledFlag
.
feature_enabled
(
self
.
course_id_2
),
global_flag
and
enabled_for_all_courses
global_flag
and
enabled_for_all_courses
)
)
def
test_enable_disable_course_flag
(
self
):
"""
Ensures that the flag, once enabled for a course, can also be disabled.
"""
with
persistent_grades_feature_flags
(
global_flag
=
True
,
enabled_for_all_courses
=
False
,
course_id
=
self
.
course_id_1
,
enabled_for_course
=
True
):
self
.
assertTrue
(
PersistentGradesEnabledFlag
.
feature_enabled
(
self
.
course_id_1
))
# Prior to TNL-5698, creating a second object would fail due to db constraints
with
persistent_grades_feature_flags
(
global_flag
=
True
,
enabled_for_all_courses
=
False
,
course_id
=
self
.
course_id_1
,
enabled_for_course
=
False
):
self
.
assertFalse
(
PersistentGradesEnabledFlag
.
feature_enabled
(
self
.
course_id_1
))
def
test_enable_disable_globally
(
self
):
"""
Ensures that the flag, once enabled globally, can also be disabled.
"""
with
persistent_grades_feature_flags
(
global_flag
=
True
,
enabled_for_all_courses
=
True
,
):
self
.
assertTrue
(
PersistentGradesEnabledFlag
.
feature_enabled
())
self
.
assertTrue
(
PersistentGradesEnabledFlag
.
feature_enabled
(
self
.
course_id_1
))
with
persistent_grades_feature_flags
(
global_flag
=
True
,
enabled_for_all_courses
=
False
,
):
self
.
assertTrue
(
PersistentGradesEnabledFlag
.
feature_enabled
())
self
.
assertFalse
(
PersistentGradesEnabledFlag
.
feature_enabled
(
self
.
course_id_1
))
with
persistent_grades_feature_flags
(
global_flag
=
False
,
):
self
.
assertFalse
(
PersistentGradesEnabledFlag
.
feature_enabled
())
self
.
assertFalse
(
PersistentGradesEnabledFlag
.
feature_enabled
(
self
.
course_id_1
))
lms/djangoapps/grades/migrations/0005_multiple_course_flags.py
0 → 100644
View file @
caef3fe8
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
xmodule_django.models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'grades'
,
'0004_visibleblocks_course_id'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'coursepersistentgradesflag'
,
name
=
'course_id'
,
field
=
xmodule_django
.
models
.
CourseKeyField
(
max_length
=
255
,
db_index
=
True
),
),
]
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