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
b4d4041f
Commit
b4d4041f
authored
Sep 11, 2017
by
Awais Jibran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Auto-certs: Courses w/o certificates still display certificate issue date to learners
parent
56eee715
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
8 deletions
+45
-8
lms/djangoapps/courseware/date_summary.py
+9
-0
lms/djangoapps/courseware/tests/test_date_summary.py
+36
-8
No files found.
lms/djangoapps/courseware/date_summary.py
View file @
b4d4041f
...
@@ -214,6 +214,7 @@ class CertificateAvailableDate(DateSummary):
...
@@ -214,6 +214,7 @@ class CertificateAvailableDate(DateSummary):
def
is_enabled
(
self
):
def
is_enabled
(
self
):
return
(
return
(
can_show_certificate_available_date_field
(
self
.
course
)
and
can_show_certificate_available_date_field
(
self
.
course
)
and
self
.
has_certificate_modes
and
self
.
date
is
not
None
and
self
.
date
is
not
None
and
datetime
.
datetime
.
now
(
utc
)
<=
self
.
date
and
datetime
.
datetime
.
now
(
utc
)
<=
self
.
date
and
len
(
self
.
active_certificates
)
>
0
len
(
self
.
active_certificates
)
>
0
...
@@ -227,6 +228,14 @@ class CertificateAvailableDate(DateSummary):
...
@@ -227,6 +228,14 @@ class CertificateAvailableDate(DateSummary):
def
date
(
self
):
def
date
(
self
):
return
self
.
course
.
certificate_available_date
return
self
.
course
.
certificate_available_date
@property
def
has_certificate_modes
(
self
):
return
any
([
mode
.
slug
for
mode
in
CourseMode
.
modes_for_course
(
course_id
=
self
.
course
.
id
,
include_expired
=
True
)
if
mode
.
slug
!=
CourseMode
.
AUDIT
])
class
VerifiedUpgradeDeadlineDate
(
DateSummary
):
class
VerifiedUpgradeDeadlineDate
(
DateSummary
):
"""
"""
...
...
lms/djangoapps/courseware/tests/test_date_summary.py
View file @
b4d4041f
...
@@ -60,6 +60,17 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
...
@@ -60,6 +60,17 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
return
user
return
user
def
enable_course_certificates
(
self
,
course
):
""" Enable course certificate configuration """
course
.
certificates
=
{
u'certificates'
:
[{
u'course_title'
:
u'Test'
,
u'name'
:
u''
,
u'is_active'
:
True
,
}]
}
course
.
save
()
def
test_course_info_feature_flag
(
self
):
def
test_course_info_feature_flag
(
self
):
SelfPacedConfiguration
(
enable_course_home_improvements
=
False
)
.
save
()
SelfPacedConfiguration
(
enable_course_home_improvements
=
False
)
.
save
()
course
=
create_course_run
()
course
=
create_course_run
()
...
@@ -339,6 +350,30 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
...
@@ -339,6 +350,30 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
self
.
assertNotEqual
(
block
.
date
,
None
)
self
.
assertNotEqual
(
block
.
date
,
None
)
self
.
assertFalse
(
block
.
is_enabled
)
self
.
assertFalse
(
block
.
is_enabled
)
# @waffle.testutils.override_switch('certificates.instructor_paced_only', True)
def
test_no_certificate_available_date_for_audit_course
(
self
):
"""
Tests that Certificate Available Date is not visible in the course "Important Course Dates" section
if the course only has audit mode.
"""
course
=
create_course_run
()
audit_user
=
self
.
create_user
()
# Enroll learner in the audit mode and verify the course only has 1 mode (audit)
CourseEnrollmentFactory
(
course_id
=
course
.
id
,
user
=
audit_user
,
mode
=
CourseMode
.
AUDIT
)
CourseMode
.
objects
.
get
(
course_id
=
course
.
id
,
mode_slug
=
CourseMode
.
VERIFIED
)
.
delete
()
all_course_modes
=
CourseMode
.
modes_for_course
(
course
.
id
)
self
.
assertEqual
(
len
(
all_course_modes
),
1
)
self
.
assertEqual
(
all_course_modes
[
0
]
.
slug
,
CourseMode
.
AUDIT
)
course
.
certificate_available_date
=
datetime
.
now
(
utc
)
+
timedelta
(
days
=
7
)
course
.
save
()
# Verify Certificate Available Date is not enabled for learner.
block
=
CertificateAvailableDate
(
course
,
audit_user
)
self
.
assertFalse
(
block
.
is_enabled
)
self
.
assertNotEqual
(
block
.
date
,
None
)
@waffle.testutils.override_switch
(
'certificates.instructor_paced_only'
,
True
)
@waffle.testutils.override_switch
(
'certificates.instructor_paced_only'
,
True
)
def
test_certificate_available_date_defined
(
self
):
def
test_certificate_available_date_defined
(
self
):
course
=
create_course_run
()
course
=
create_course_run
()
...
@@ -347,14 +382,7 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
...
@@ -347,14 +382,7 @@ class CourseDateSummaryTest(SharedModuleStoreTestCase):
verified_user
=
self
.
create_user
()
verified_user
=
self
.
create_user
()
CourseEnrollmentFactory
(
course_id
=
course
.
id
,
user
=
verified_user
,
mode
=
CourseMode
.
VERIFIED
)
CourseEnrollmentFactory
(
course_id
=
course
.
id
,
user
=
verified_user
,
mode
=
CourseMode
.
VERIFIED
)
course
.
certificate_available_date
=
datetime
.
now
(
utc
)
+
timedelta
(
days
=
7
)
course
.
certificate_available_date
=
datetime
.
now
(
utc
)
+
timedelta
(
days
=
7
)
course
.
certificates
=
{
self
.
enable_course_certificates
(
course
)
u'certificates'
:
[{
u'course_title'
:
u'Test'
,
u'name'
:
u''
,
u'is_active'
:
True
,
}]
}
course
.
save
()
CertificateAvailableDate
(
course
,
audit_user
)
CertificateAvailableDate
(
course
,
audit_user
)
for
block
in
(
CertificateAvailableDate
(
course
,
audit_user
),
CertificateAvailableDate
(
course
,
verified_user
)):
for
block
in
(
CertificateAvailableDate
(
course
,
audit_user
),
CertificateAvailableDate
(
course
,
verified_user
)):
self
.
assertIsNotNone
(
course
.
certificate_available_date
)
self
.
assertIsNotNone
(
course
.
certificate_available_date
)
...
...
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