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
95636a95
Commit
95636a95
authored
May 20, 2014
by
Waqas Khalid
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "Handle the indexerror exception on create_order"
It was merged by mistake during the code freeze.
parent
d87fa2ce
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
12 additions
and
129 deletions
+12
-129
lms/djangoapps/verify_student/tests/test_views.py
+0
-91
lms/djangoapps/verify_student/views.py
+10
-15
lms/static/js/verify_student/photocapture.js
+1
-10
lms/templates/verify_student/photo_verification.html
+1
-13
No files found.
lms/djangoapps/verify_student/tests/test_views.py
View file @
95636a95
...
...
@@ -109,97 +109,6 @@ class TestVerifiedView(TestCase):
@override_settings
(
MODULESTORE
=
TEST_DATA_MONGO_MODULESTORE
)
class
TestCreateOrderView
(
TestCase
):
"""
Tests for the create_order view of verified course registration process
"""
def
setUp
(
self
):
self
.
user
=
UserFactory
.
create
(
username
=
"rusty"
,
password
=
"test"
)
self
.
client
.
login
(
username
=
"rusty"
,
password
=
"test"
)
self
.
course_id
=
'Robot/999/Test_Course'
CourseFactory
.
create
(
org
=
'Robot'
,
number
=
'999'
,
display_name
=
'Test Course'
)
verified_mode
=
CourseMode
(
course_id
=
self
.
course_id
,
mode_slug
=
"verified"
,
mode_display_name
=
"Verified Certificate"
,
min_price
=
50
)
verified_mode
.
save
()
course_mode_post_data
=
{
'certificate_mode'
:
'Select Certificate'
,
'contribution'
:
50
,
'contribution-other-amt'
:
''
,
'explain'
:
''
}
self
.
client
.
post
(
reverse
(
"course_modes_choose"
,
kwargs
=
{
'course_id'
:
self
.
course_id
}),
course_mode_post_data
)
def
test_invalid_photos_data
(
self
):
"""
Test that the invalid photo data cannot be submitted
"""
create_order_post_data
=
{
'contribution'
:
50
,
'course_id'
:
self
.
course_id
,
'face_image'
:
''
,
'photo_id_image'
:
''
}
response
=
self
.
client
.
post
(
reverse
(
'verify_student_create_order'
),
create_order_post_data
)
json_response
=
json
.
loads
(
response
.
content
)
self
.
assertFalse
(
json_response
.
get
(
'success'
))
@patch.dict
(
settings
.
FEATURES
,
{
'AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING'
:
True
})
def
test_invalid_amount
(
self
):
"""
Test that the user cannot give invalid amount
"""
create_order_post_data
=
{
'contribution'
:
'1.a'
,
'course_id'
:
self
.
course_id
,
'face_image'
:
','
,
'photo_id_image'
:
','
}
response
=
self
.
client
.
post
(
reverse
(
'verify_student_create_order'
),
create_order_post_data
)
self
.
assertEquals
(
response
.
status_code
,
400
)
self
.
assertIn
(
'Selected price is not valid number.'
,
response
.
content
)
@patch.dict
(
settings
.
FEATURES
,
{
'AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING'
:
True
})
def
test_invalid_mode
(
self
):
"""
Test that the course without verified mode cannot be processed
"""
course_id
=
'Fake/999/Test_Course'
CourseFactory
.
create
(
org
=
'Fake'
,
number
=
'999'
,
display_name
=
'Test Course'
)
create_order_post_data
=
{
'contribution'
:
'50'
,
'course_id'
:
course_id
,
'face_image'
:
','
,
'photo_id_image'
:
','
}
response
=
self
.
client
.
post
(
reverse
(
'verify_student_create_order'
),
create_order_post_data
)
self
.
assertEquals
(
response
.
status_code
,
400
)
self
.
assertIn
(
'This course doesn
\'
t support verified certificates'
,
response
.
content
)
@patch.dict
(
settings
.
FEATURES
,
{
'AUTOMATIC_VERIFY_STUDENT_IDENTITY_FOR_TESTING'
:
True
})
def
test_create_order_success
(
self
):
"""
Test that the order is created successfully when given valid data
"""
create_order_post_data
=
{
'contribution'
:
50
,
'course_id'
:
self
.
course_id
,
'face_image'
:
','
,
'photo_id_image'
:
','
}
response
=
self
.
client
.
post
(
reverse
(
'verify_student_create_order'
),
create_order_post_data
)
json_response
=
json
.
loads
(
response
.
content
)
self
.
assertTrue
(
json_response
.
get
(
'success'
))
self
.
assertIsNotNone
(
json_response
.
get
(
'orderNumber'
))
@override_settings
(
MODULESTORE
=
TEST_DATA_MONGO_MODULESTORE
)
class
TestReverifyView
(
TestCase
):
"""
Tests for the reverification views
...
...
lms/djangoapps/verify_student/views.py
View file @
95636a95
...
...
@@ -42,8 +42,8 @@ EVENT_NAME_USER_ENTERED_MIDCOURSE_REVERIFY_VIEW = 'edx.course.enrollment.reverif
EVENT_NAME_USER_SUBMITTED_MIDCOURSE_REVERIFY
=
'edx.course.enrollment.reverify.submitted'
EVENT_NAME_USER_REVERIFICATION_REVIEWED_BY_SOFTWARESECURE
=
'edx.course.enrollment.reverify.reviewed'
class
VerifyView
(
View
):
@method_decorator
(
login_required
)
def
get
(
self
,
request
,
course_id
):
"""
...
...
@@ -54,6 +54,7 @@ class VerifyView(View):
before proceeding to payment
"""
upgrade
=
request
.
GET
.
get
(
'upgrade'
,
False
)
# If the user has already been verified within the given time period,
# redirect straight to the payment -- no need to verify again.
if
SoftwareSecurePhotoVerification
.
user_has_valid_or_pending
(
request
.
user
):
...
...
@@ -98,7 +99,7 @@ class VerifyView(View):
"min_price"
:
verify_mode
.
min_price
,
"upgrade"
:
upgrade
,
}
context
[
'retake'
]
=
request
.
GET
.
get
(
'retake'
,
False
)
return
render_to_response
(
'verify_student/photo_verification.html'
,
context
)
...
...
@@ -107,7 +108,6 @@ class VerifiedView(View):
View that gets shown once the user has already gone through the
verification flow
"""
@method_decorator
(
login_required
)
def
get
(
self
,
request
,
course_id
):
"""
...
...
@@ -145,14 +145,9 @@ def create_order(request):
"""
if
not
SoftwareSecurePhotoVerification
.
user_has_valid_or_pending
(
request
.
user
):
attempt
=
SoftwareSecurePhotoVerification
(
user
=
request
.
user
)
try
:
b64_face_image
=
request
.
POST
[
'face_image'
]
.
split
(
","
)[
1
]
b64_photo_id_image
=
request
.
POST
[
'photo_id_image'
]
.
split
(
","
)[
1
]
except
IndexError
:
context
=
{
'success'
:
False
,
}
return
HttpResponse
(
json
.
dumps
(
context
),
content_type
=
"text/json"
)
b64_face_image
=
request
.
POST
[
'face_image'
]
.
split
(
","
)[
1
]
b64_photo_id_image
=
request
.
POST
[
'photo_id_image'
]
.
split
(
","
)[
1
]
attempt
.
upload_face_image
(
b64_face_image
.
decode
(
'base64'
))
attempt
.
upload_photo_id_image
(
b64_photo_id_image
.
decode
(
'base64'
))
attempt
.
mark_ready
()
...
...
@@ -187,7 +182,7 @@ def create_order(request):
CertificateItem
.
add_to_order
(
cart
,
course_id
,
amount
,
'verified'
)
params
=
get_signed_purchase_params
(
cart
)
params
[
'success'
]
=
True
return
HttpResponse
(
json
.
dumps
(
params
),
content_type
=
"text/json"
)
...
...
@@ -303,7 +298,6 @@ class ReverifyView(View):
Does not need to be attached to a particular course.
Does not need to worry about pricing
"""
@method_decorator
(
login_required
)
def
get
(
self
,
request
):
"""
...
...
@@ -357,7 +351,6 @@ class MidCourseReverifyView(View):
Does not need to worry about pricing
"""
@method_decorator
(
login_required
)
def
get
(
self
,
request
,
course_id
):
"""
...
...
@@ -432,7 +425,8 @@ def midcourse_reverify_dash(request):
try
:
course_enrollment_pairs
.
append
((
course_from_id
(
enrollment
.
course_id
),
enrollment
))
except
ItemNotFoundError
:
log
.
error
(
"User {0} enrolled in non-existent course {1}"
.
format
(
user
.
username
,
enrollment
.
course_id
))
log
.
error
(
"User {0} enrolled in non-existent course {1}"
.
format
(
user
.
username
,
enrollment
.
course_id
))
statuses
=
[
"approved"
,
"pending"
,
"must_reverify"
,
"denied"
]
...
...
@@ -459,6 +453,7 @@ def toggle_failed_banner_off(request):
return
HttpResponse
(
'Success'
)
@login_required
def
reverification_submission_confirmation
(
_request
):
"""
...
...
lms/static/js/verify_student/photocapture.js
View file @
95636a95
...
...
@@ -73,15 +73,7 @@ var submitToPaymentProcessing = function() {
}
)
.
done
(
function
(
data
)
{
if
(
data
.
success
)
{
$
(
"#pay_form"
).
submit
();
}
else
{
if
(
$
(
location
).
attr
(
'href'
).
indexOf
(
"retake"
)
<
0
)
{
window
.
location
.
href
=
$
(
location
).
attr
(
'href'
)
+
"&retake=True"
;
}
else
{
location
.
reload
();
}
}
$
(
"#pay_form"
).
submit
();
})
.
fail
(
function
(
jqXhr
,
text_status
,
error_thrown
)
{
if
(
jqXhr
.
status
==
400
)
{
...
...
@@ -311,7 +303,6 @@ $(document).ready(function() {
// when moving between steps
$
(
'#face_next_link'
).
click
(
function
(){
analytics
.
pageview
(
"Capture ID Photo"
);
$
(
'#photo-error'
).
hide
();
$
(
'body'
).
addClass
(
'step-photos-id'
).
removeClass
(
'step-photos-cam'
)
})
...
...
lms/templates/verify_student/photo_verification.html
View file @
95636a95
...
...
@@ -56,19 +56,7 @@
</div>
</div>
</div>
%if retake:
<div
id=
"photo-error"
class=
"wrapper-msg wrapper-msg-activate"
>
<div
class=
" msg msg-activate"
>
<i
class=
"msg-icon icon-warning-sign"
></i>
<div
class=
"msg-content"
>
<h3
class=
"title"
>
${_("Error processing your order")}
</h3>
<div
class=
"copy"
>
<p>
${_("Oops! Something went wrong. Please take your photos again. If you are still having trouble, please try again later.")}
</p>
</div>
</div>
</div>
</div>
%endif
<div
class=
"container"
>
<section
class=
"wrapper"
>
...
...
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