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
4bd15cf2
Commit
4bd15cf2
authored
May 05, 2015
by
Clinton Blackburn
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7911 from edx/clintonb/deprecate-verify-later
Deprecated Verify Later Page
parents
f7e8b2e4
5e687531
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
42 additions
and
69 deletions
+42
-69
lms/djangoapps/shoppingcart/models.py
+1
-1
lms/djangoapps/verify_student/tests/test_views.py
+15
-47
lms/djangoapps/verify_student/urls.py
+11
-14
lms/djangoapps/verify_student/views.py
+13
-6
lms/templates/dashboard/_dashboard_course_listing.html
+1
-1
lms/urls.py
+1
-0
No files found.
lms/djangoapps/shoppingcart/models.py
View file @
4bd15cf2
...
...
@@ -1751,7 +1751,7 @@ class CertificateItem(OrderItem):
if
is_enrollment_mode_verified
:
domain
=
microsite
.
get_value
(
'SITE_NAME'
,
settings
.
SITE_NAME
)
path
=
reverse
(
'verify_student_verify_
later
'
,
kwargs
=
{
'course_id'
:
unicode
(
self
.
course_id
)})
path
=
reverse
(
'verify_student_verify_
now
'
,
kwargs
=
{
'course_id'
:
unicode
(
self
.
course_id
)})
verification_url
=
"http://{domain}{path}"
.
format
(
domain
=
domain
,
path
=
path
)
verification_reminder
=
_
(
...
...
lms/djangoapps/verify_student/tests/test_views.py
View file @
4bd15cf2
...
...
@@ -275,20 +275,18 @@ class TestPayAndVerifyView(UrlResetMixin, ModuleStoreTestCase):
@ddt.data
(
"verify_student_verify_now"
,
"verify_student_verify_later"
,
"verify_student_payment_confirmation"
)
def
test_verify_now_
or_later_
not_enrolled
(
self
,
page_name
):
def
test_verify_now_not_enrolled
(
self
,
page_name
):
course
=
self
.
_create_course
(
"verified"
)
response
=
self
.
_get_page
(
page_name
,
course
.
id
,
expected_status_code
=
302
)
self
.
_assert_redirects_to_start_flow
(
response
,
course
.
id
)
@ddt.data
(
"verify_student_verify_now"
,
"verify_student_verify_later"
,
"verify_student_payment_confirmation"
)
def
test_verify_now_
or_later_
unenrolled
(
self
,
page_name
):
def
test_verify_now_unenrolled
(
self
,
page_name
):
course
=
self
.
_create_course
(
"verified"
)
self
.
_enroll
(
course
.
id
,
"verified"
)
self
.
_unenroll
(
course
.
id
)
...
...
@@ -297,46 +295,21 @@ class TestPayAndVerifyView(UrlResetMixin, ModuleStoreTestCase):
@ddt.data
(
"verify_student_verify_now"
,
"verify_student_verify_later"
,
"verify_student_payment_confirmation"
)
def
test_verify_now_
or_later_
not_paid
(
self
,
page_name
):
def
test_verify_now_not_paid
(
self
,
page_name
):
course
=
self
.
_create_course
(
"verified"
)
self
.
_enroll
(
course
.
id
,
"honor"
)
response
=
self
.
_get_page
(
page_name
,
course
.
id
,
expected_status_code
=
302
)
self
.
_assert_redirects_to_upgrade
(
response
,
course
.
id
)
def
test_verify_later
(
self
):
""" The deprecated verify-later page should redirect to the verification start page. """
course
=
self
.
_create_course
(
"verified"
)
self
.
_enroll
(
course
.
id
,
"verified"
)
response
=
self
.
_get_page
(
"verify_student_verify_later"
,
course
.
id
)
self
.
_assert_messaging
(
response
,
PayAndVerifyView
.
VERIFY_LATER_MSG
)
# Expect that the payment steps are NOT displayed
self
.
_assert_steps_displayed
(
response
,
[
PayAndVerifyView
.
INTRO_STEP
]
+
PayAndVerifyView
.
VERIFICATION_STEPS
,
PayAndVerifyView
.
INTRO_STEP
)
self
.
_assert_requirements_displayed
(
response
,
[
PayAndVerifyView
.
PHOTO_ID_REQ
,
PayAndVerifyView
.
WEBCAM_REQ
,
])
def
test_verify_later_already_verified
(
self
):
course
=
self
.
_create_course
(
"verified"
)
self
.
_enroll
(
course
.
id
,
"verified"
)
self
.
_set_verification_status
(
"submitted"
)
# Already verified, so if we somehow end up here,
# redirect immediately to the dashboard
response
=
self
.
_get_page
(
'verify_student_verify_later'
,
course
.
id
,
expected_status_code
=
302
)
self
.
_assert_redirects_to_dashboard
(
response
)
course_key
=
course
.
id
self
.
_enroll
(
course_key
,
"verified"
)
response
=
self
.
_get_page
(
"verify_student_verify_later"
,
course_key
,
expected_status_code
=
301
)
self
.
_assert_redirects_to_verify_start
(
response
,
course_key
,
301
)
def
test_payment_confirmation
(
self
):
course
=
self
.
_create_course
(
"verified"
)
...
...
@@ -489,7 +462,7 @@ class TestPayAndVerifyView(UrlResetMixin, ModuleStoreTestCase):
course
.
id
,
expected_status_code
=
302
)
self
.
_assert_redirects_to_verify_
later
(
response
,
course
.
id
)
self
.
_assert_redirects_to_verify_
start
(
response
,
course
.
id
)
def
test_upgrade_already_verified_and_paid
(
self
):
course
=
self
.
_create_course
(
"verified"
)
...
...
@@ -531,7 +504,6 @@ class TestPayAndVerifyView(UrlResetMixin, ModuleStoreTestCase):
pages
=
[
'verify_student_start_flow'
,
'verify_student_verify_now'
,
'verify_student_verify_later'
,
'verify_student_upgrade_and_verify'
,
]
...
...
@@ -553,7 +525,6 @@ class TestPayAndVerifyView(UrlResetMixin, ModuleStoreTestCase):
@ddt.data
(
"verify_student_start_flow"
,
"verify_student_verify_now"
,
"verify_student_verify_later"
,
"verify_student_upgrade_and_verify"
,
)
def
test_require_login
(
self
,
url_name
):
...
...
@@ -571,7 +542,6 @@ class TestPayAndVerifyView(UrlResetMixin, ModuleStoreTestCase):
@ddt.data
(
"verify_student_start_flow"
,
"verify_student_verify_now"
,
"verify_student_verify_later"
,
"verify_student_upgrade_and_verify"
,
)
def
test_no_such_course
(
self
,
url_name
):
...
...
@@ -654,7 +624,7 @@ class TestPayAndVerifyView(UrlResetMixin, ModuleStoreTestCase):
# The course mode has expired, so expect an explanation
# to the student that the deadline has passed
response
=
self
.
_get_page
(
"verify_student_verify_
later
"
,
course
.
id
)
response
=
self
.
_get_page
(
"verify_student_verify_
now
"
,
course
.
id
)
self
.
assertContains
(
response
,
"verification deadline"
)
self
.
assertContains
(
response
,
"Jan 02, 1999 at 00:00 UTC"
)
...
...
@@ -821,10 +791,10 @@ class TestPayAndVerifyView(UrlResetMixin, ModuleStoreTestCase):
url
=
reverse
(
'verify_student_start_flow'
,
kwargs
=
{
'course_id'
:
unicode
(
course_id
)})
self
.
assertRedirects
(
response
,
url
)
def
_assert_redirects_to_verify_
later
(
self
,
response
,
course_id
):
def
_assert_redirects_to_verify_
start
(
self
,
response
,
course_id
,
status_code
=
302
):
"""Check that the page redirects to the "verify later" part of the flow. """
url
=
reverse
(
'verify_student_verify_
later
'
,
kwargs
=
{
'course_id'
:
unicode
(
course_id
)})
self
.
assertRedirects
(
response
,
url
)
url
=
reverse
(
'verify_student_verify_
now
'
,
kwargs
=
{
'course_id'
:
unicode
(
course_id
)})
self
.
assertRedirects
(
response
,
url
,
status_code
)
def
_assert_redirects_to_upgrade
(
self
,
response
,
course_id
):
"""Check that the page redirects to the "upgrade" part of the flow. """
...
...
@@ -1765,8 +1735,7 @@ class TestInCourseReverifyView(ModuleStoreTestCase):
self
.
_create_checkpoint
()
response
=
self
.
client
.
get
(
self
.
_get_url
(
self
.
course_key
,
self
.
MIDTERM
))
url
=
reverse
(
'verify_student_verify_later'
,
kwargs
=
{
"course_id"
:
unicode
(
self
.
course_key
)})
url
=
reverse
(
'verify_student_verify_now'
,
kwargs
=
{
"course_id"
:
unicode
(
self
.
course_key
)})
self
.
assertRedirects
(
response
,
url
)
@override_settings
(
SEGMENT_IO_LMS_KEY
=
"foobar"
)
...
...
@@ -1810,8 +1779,7 @@ class TestInCourseReverifyView(ModuleStoreTestCase):
self
.
_create_checkpoint
()
response
=
self
.
client
.
post
(
self
.
_get_url
(
self
.
course_key
,
self
.
MIDTERM
))
url
=
reverse
(
'verify_student_verify_later'
,
kwargs
=
{
"course_id"
:
unicode
(
self
.
course_key
)})
url
=
reverse
(
'verify_student_verify_now'
,
kwargs
=
{
"course_id"
:
unicode
(
self
.
course_key
)})
self
.
assertRedirects
(
response
,
url
)
...
...
lms/djangoapps/verify_student/urls.py
View file @
4bd15cf2
""" URL definitions for the verify_student app. """
from
django.conf
import
settings
from
django.conf.urls
import
patterns
,
url
from
verify_student
import
views
from
verify_student.views
import
PayAndVerifyView
from
django.conf
import
settings
urlpatterns
=
patterns
(
...
...
@@ -19,7 +19,7 @@ urlpatterns = patterns(
views
.
PayAndVerifyView
.
as_view
(),
# pylint: disable=no-value-for-parameter
name
=
"verify_student_start_flow"
,
kwargs
=
{
'message'
:
PayAndVerifyView
.
FIRST_TIME_VERIFY_MSG
'message'
:
views
.
PayAndVerifyView
.
FIRST_TIME_VERIFY_MSG
}
),
...
...
@@ -31,7 +31,7 @@ urlpatterns = patterns(
views
.
PayAndVerifyView
.
as_view
(),
# pylint: disable=no-value-for-parameter
name
=
"verify_student_upgrade_and_verify"
,
kwargs
=
{
'message'
:
PayAndVerifyView
.
UPGRADE_MSG
'message'
:
views
.
PayAndVerifyView
.
UPGRADE_MSG
}
),
...
...
@@ -47,8 +47,8 @@ urlpatterns = patterns(
name
=
"verify_student_verify_now"
,
kwargs
=
{
'always_show_payment'
:
True
,
'current_step'
:
PayAndVerifyView
.
FACE_PHOTO_STEP
,
'message'
:
PayAndVerifyView
.
VERIFY_NOW_MSG
'current_step'
:
views
.
PayAndVerifyView
.
FACE_PHOTO_STEP
,
'message'
:
views
.
PayAndVerifyView
.
VERIFY_NOW_MSG
}
),
...
...
@@ -59,11 +59,8 @@ urlpatterns = patterns(
# (since the user already paid).
url
(
r'^verify-later/{course}/$'
.
format
(
course
=
settings
.
COURSE_ID_PATTERN
),
views
.
PayAndVerifyView
.
as_view
(),
# pylint: disable=no-value-for-parameter
name
=
"verify_student_verify_later"
,
kwargs
=
{
'message'
:
PayAndVerifyView
.
VERIFY_LATER_MSG
}
views
.
VerifyLaterView
.
as_view
(),
# pylint: disable=no-value-for-parameter
name
=
"verify_student_verify_later"
),
# The user is returning to the flow after paying.
...
...
@@ -75,8 +72,8 @@ urlpatterns = patterns(
name
=
"verify_student_payment_confirmation"
,
kwargs
=
{
'always_show_payment'
:
True
,
'current_step'
:
PayAndVerifyView
.
PAYMENT_CONFIRMATION_STEP
,
'message'
:
PayAndVerifyView
.
PAYMENT_CONFIRMATION_MSG
'current_step'
:
views
.
PayAndVerifyView
.
PAYMENT_CONFIRMATION_STEP
,
'message'
:
views
.
PayAndVerifyView
.
PAYMENT_CONFIRMATION_MSG
}
),
...
...
lms/djangoapps/verify_student/views.py
View file @
4bd15cf2
...
...
@@ -20,7 +20,7 @@ from django.http import (
from
django.shortcuts
import
redirect
from
django.views.decorators.csrf
import
csrf_exempt
from
django.views.decorators.http
import
require_POST
from
django.views.generic.base
import
View
from
django.views.generic.base
import
View
,
RedirectView
from
django.utils.decorators
import
method_decorator
from
django.utils.translation
import
ugettext
as
_
,
ugettext_lazy
from
django.contrib.auth.decorators
import
login_required
...
...
@@ -473,10 +473,9 @@ class PayAndVerifyView(View):
url
=
reverse
(
'verify_student_start_flow'
,
kwargs
=
course_kwargs
)
elif
message
==
self
.
UPGRADE_MSG
:
if
is_enrolled
:
# If upgrading and we've paid but haven't verified,
# then the "verify later" messaging makes more sense.
if
already_paid
:
url
=
reverse
(
'verify_student_verify_later'
,
kwargs
=
course_kwargs
)
# If the student has paid, but not verified, redirect to the verification flow.
url
=
reverse
(
'verify_student_verify_now'
,
kwargs
=
course_kwargs
)
else
:
url
=
reverse
(
'verify_student_start_flow'
,
kwargs
=
course_kwargs
)
...
...
@@ -1205,7 +1204,7 @@ class InCourseReverifyView(View):
Returns:
HttpResponse with status_code 400 if photo is missing or any error
or redirect to
verify_student_verify_later url
if initial verification doesn't exist otherwise
or redirect to
the verification flow
if initial verification doesn't exist otherwise
HttpsResponse with status code 200
"""
# Check the in-course re-verification is enabled or not
...
...
@@ -1330,4 +1329,12 @@ class InCourseReverifyView(View):
u"for the course
%
s."
,
user
.
id
,
course_key
)
return
redirect
(
reverse
(
'verify_student_verify_later'
,
kwargs
=
{
'course_id'
:
unicode
(
course_key
)}))
return
redirect
(
reverse
(
'verify_student_verify_now'
,
kwargs
=
{
'course_id'
:
unicode
(
course_key
)}))
class
VerifyLaterView
(
RedirectView
):
""" This view has been deprecated and should redirect to the unified verification flow. """
permanent
=
True
def
get_redirect_url
(
self
,
course_id
,
**
kwargs
):
# pylint: disable=unused-argument
return
reverse
(
'verify_student_verify_now'
,
kwargs
=
{
'course_id'
:
unicode
(
course_id
)})
lms/templates/dashboard/_dashboard_course_listing.html
View file @
4bd15cf2
...
...
@@ -292,7 +292,7 @@ from student.helpers import (
% endif
</div>
<div
class=
"verification-cta"
>
<a
href=
"${reverse('verify_student_verify_
later
', kwargs={'course_id': unicode(course.id)})}"
class=
"cta"
data-course-id=
"${course.id | h}"
>
${_('Verify Now')}
</a>
<a
href=
"${reverse('verify_student_verify_
now
', kwargs={'course_id': unicode(course.id)})}"
class=
"cta"
data-course-id=
"${course.id | h}"
>
${_('Verify Now')}
</a>
</div>
% elif verification_status['status'] == VERIFY_STATUS_SUBMITTED:
<h4
class=
"message-title"
>
${_('You have already verified your ID!')}
</h4>
...
...
lms/urls.py
View file @
4bd15cf2
...
...
@@ -122,6 +122,7 @@ if settings.FEATURES["ENABLE_MOBILE_REST_API"]:
# if settings.FEATURES.get("MULTIPLE_ENROLLMENT_ROLES"):
urlpatterns
+=
(
# TODO Namespace these!
url
(
r'^verify_student/'
,
include
(
'verify_student.urls'
)),
url
(
r'^course_modes/'
,
include
(
'course_modes.urls'
)),
)
...
...
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