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
f1a9f81e
Commit
f1a9f81e
authored
Apr 15, 2016
by
Adam
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12148 from edx/add-logging-to-certs
Add logging to certs
parents
014185ea
18474b2d
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
1 deletions
+37
-1
lms/djangoapps/certificates/tests/test_webview_views.py
+10
-0
lms/djangoapps/certificates/views/webview.py
+27
-1
No files found.
lms/djangoapps/certificates/tests/test_webview_views.py
View file @
f1a9f81e
...
...
@@ -695,6 +695,16 @@ class CertificatesViewsTests(ModuleStoreTestCase, EventTrackingTestCase):
self
.
assertIn
(
'invalid'
,
response
.
content
)
@override_settings
(
FEATURES
=
FEATURES_WITH_CERTS_ENABLED
)
def
test_render_html_view_non_int_user
(
self
):
self
.
_add_course_certificates
(
count
=
1
,
signatory_count
=
0
)
test_url
=
get_certificate_url
(
user_id
=
"Good tests make good neighbors"
,
course_id
=
unicode
(
self
.
course
.
id
)
)
response
=
self
.
client
.
get
(
test_url
)
self
.
assertEqual
(
response
.
status_code
,
404
)
@override_settings
(
FEATURES
=
FEATURES_WITH_CERTS_ENABLED
)
def
test_render_html_view_invalid_user_certificate
(
self
):
self
.
_add_course_certificates
(
count
=
1
,
signatory_count
=
0
)
test_url
=
get_certificate_url
(
...
...
lms/djangoapps/certificates/views/webview.py
View file @
f1a9f81e
...
...
@@ -496,6 +496,11 @@ def render_html_view(request, user_id, course_id):
This public view generates an HTML representation of the specified user and course
If a certificate is not available, we display a "Sorry!" screen instead
"""
try
:
user_id
=
int
(
user_id
)
except
ValueError
:
raise
Http404
preview_mode
=
request
.
GET
.
get
(
'preview'
,
None
)
platform_name
=
microsite
.
get_value
(
"platform_name"
,
settings
.
PLATFORM_NAME
)
configuration
=
CertificateHtmlViewConfiguration
.
get_config
()
...
...
@@ -506,6 +511,11 @@ def render_html_view(request, user_id, course_id):
# Kick the user back to the "Invalid" screen if the feature is disabled
if
not
has_html_certificates_enabled
(
course_id
):
log
.
info
(
"Invalid cert: HTML certificates disabled for
%
s. User id:
%
d"
,
course_id
,
user_id
,
)
return
render_to_response
(
invalid_template_path
,
context
)
# Load the course and user objects
...
...
@@ -515,12 +525,22 @@ def render_html_view(request, user_id, course_id):
course
=
modulestore
()
.
get_course
(
course_key
)
# For any other expected exceptions, kick the user back to the "Invalid" screen
except
(
InvalidKeyError
,
ItemNotFoundError
,
User
.
DoesNotExist
):
except
(
InvalidKeyError
,
ItemNotFoundError
,
User
.
DoesNotExist
)
as
exception
:
error_str
=
(
"Invalid cert: error finding course
%
s or user with id "
"
%
d. Specific error:
%
s"
)
log
.
info
(
error_str
,
course_id
,
user_id
,
str
(
exception
))
return
render_to_response
(
invalid_template_path
,
context
)
# Load user's certificate
user_certificate
=
_get_user_certificate
(
request
,
user
,
course_key
,
course
,
preview_mode
)
if
not
user_certificate
:
log
.
info
(
"Invalid cert: User
%
d does not have eligible cert for
%
s."
,
user_id
,
course_id
,
)
return
render_to_response
(
invalid_template_path
,
context
)
# Get the active certificate configuration for this course
...
...
@@ -528,7 +548,13 @@ def render_html_view(request, user_id, course_id):
# Passing in the 'preview' parameter, if specified, will return a configuration, if defined
active_configuration
=
get_active_web_certificate
(
course
,
preview_mode
)
if
active_configuration
is
None
:
log
.
info
(
"Invalid cert: course
%
s does not have an active configuration. User id:
%
d"
,
course_id
,
user_id
,
)
return
render_to_response
(
invalid_template_path
,
context
)
context
[
'certificate_data'
]
=
active_configuration
# Append/Override the existing view context values with any mode-specific ConfigurationModel values
...
...
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