-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce id verification step for proctored exams #309
Conversation
4022e67
to
3c21e38
Compare
@dianakhuang @robrap here's a new version of this branch that is rebased against the test cleanup work, so it is clearer what has changed. Tomorrow hopefully we can get this working on a sandbox. |
@catong this work for proctoring isn't available on a sandbox yet, but it would be great if you could review the documentation strings. They are based on the designs found in the ticket: |
I'll review in more detail later. I was thinking last night that we'll need a way to disable this for load testing. |
@andy-armstrong @dianakhuang: It's possible that we can ignore my earlier comment about verification and load testing, because I think auto_auth was updated to allow for verification. We'll need to confirm. |
@andy-armstrong: It looks like it turned out verification_status was already available? Thanks. All looks good to me. 馃憤 |
Sandbox is now available! https://dianakhuang.sandbox.edx.org/ |
3c21e38
to
ab79cd7
Compare
On the sandbox, there are 4 students in various states:
|
<div class=""> | ||
<h3> | ||
{% blocktrans %} | ||
Complete verification prior to starting your proctored exam. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Complete your verification before starting the proctored exam."
</h3> | ||
<p> | ||
{% blocktrans %} | ||
In order to start your proctored exam, you must successfully complete identity verification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"You must successfully complete identity verification before you can start the proctored exam."
{% if verification_status == 'pending' %} | ||
<p> | ||
{% blocktrans %} | ||
Your verification is currently pending. You should expect to hear back in 2-3 days |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Your verification is pending. Results should be available 2-3 days after you submit your verification."
{% elif verification_status == 'must_reverify' %} | ||
<p> | ||
{% blocktrans %} | ||
Your verification attempt failed. Please retry verification after reading |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Your verification attempt failed. Please read our guidelines to make sure you understand the requirements for successfully completing verification, then try again."
<p> | ||
{% blocktrans %} | ||
Your verification has expired. Please retry verification after reading | ||
our guidelines to ensure you successfully complete verification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andy-armstrong The second sentence for the "expired" scenario is identical to that for the "failed" scenario, but I think we might be able to provide more helpful info for this specific case. What does an "expired" verification attempt mean? Previously verified and a certain amount of time has elapsed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@catong Yes, this scenario is for a user who verified too long ago. I'm not entirely sure what the expiration rules are (a year?).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @andy-armstrong. I don't think we should put a specific time frame in our messaging, but instead of "retry verification", the message should be something like: "Your verification has expired. You must successfully complete a new identity verification before you can start the proctored exam."
@@ -149,6 +151,42 @@ def test_get_honor_view(self): | |||
self.assertIsNone(rendered_response) | |||
|
|||
@ddt.data( | |||
(None, 'Make sure you have valid photo identification'), | |||
('pending', 'Your verification is currently pending'), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can strike the word "currently": "Your verification is pending"
{% else %} | ||
<p> | ||
{% blocktrans %} | ||
Make sure you have valid photo identification, such as a driver's license |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On the page that results after I select "Continue to Verification" there's a prominent banner that proclaims, "You need a computer that has a webcam." Should we add the webcam requirement to the previous message too?
"Make sure you are on a computer with a webcam, and that you have valid photo identification such as a driver's license or passport, before you continue."
@robrap @dianakhuang @catong @marcotuts this PR is ready for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, it looks good! I just had one question/comment. 馃憤
@@ -34,11 +34,6 @@ | |||
{% endblocktrans %} | |||
</p> | |||
<p> | |||
{% blocktrans %} | |||
You will be asked to verify your identity before you begin the exam. Make sure you have valid photo identification, such as a driver's license or passport, before you continue. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure why you removed this line. I thought this was referring to the fact that the proctoring software asks for photo id again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dianakhuang Good catch! @andy-armstrong Perhaps we can prevent confusion by changing the wording a bit?
"You will be asked to verify your identity as part of the proctoring exam set up."?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting. Removing this line was in the acceptance criteria:
Once this verification step is added, we can remove the line of text in the Proctoring Exam Instructions that reads: "You will be asked to verify your identity before you begin the exam. Make sure you have valid photo identification, such as a driver's license or passport, before you continue."
This existing step in the process will no longer need to happen within the exam workflow as it will be completed prior to start of the proctoring instructions step.
I'll add it back with the revised wording.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@catong How's this?
You will be asked to verify your identity as part of the proctoring exam set up. Make sure you are on a computer with a webcam, and that you have valid photo identification such as a driver's license or passport, before you continue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That sounds good to me @andy-armstrong
</p> | ||
<div> | ||
<a href="{{ reverify_url }}" class="reverify-url btn-pl-primary"> | ||
{% trans "Retry Verification" %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andy-armstrong The link for expired verifications should probably be "Continue to Verification" rather than "Retry".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just one comment about the link for expired verifications (should not be "retry"), otherwise this looks great! 馃憤
8146226
to
16e2f80
Compare
@catong @dianakhuang I've addressed your feedback and squashed so I can hopefully merge this shortly. @robrap @chris-mike @marcotuts please review today if possible. Thanks. |
16e2f80
to
6ef5eec
Compare
@@ -414,6 +414,7 @@ def setUp(self): | |||
self.student_taking_exam = User() | |||
self.student_taking_exam.save() | |||
|
|||
set_runtime_service('credit', MockCreditService()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andy-armstrong: Where is this used?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess this is to deal with credit_state. It seems like this would have been required already for some existing tests, but maybe I'm missing something. Anyway, I don't think this is an issue, I'm just trying to understand.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question. These tests call proctoring code that assumes that there's a credit service installed. They work when run as a complete suite because other tests have installed the service and it doesn't get uninstalled. I put this in so that I can run individual suites and/or test methods.
馃憤 Looks good. I had a question, but I don't think you have anything to do. I'm just trying to understand the test code. Thanks. |
@marcotuts discovered that I'd put the id verification step in the wrong place in the workflow. It was showing before the user chose to enter a proctored exam, rather than being shown immediately after they make that choice. I've fixed the code and the tests, and I've updated the sandbox. Great catch, @marcotuts! |
I got a verbal 馃憤 from Lauren, so I'm merging this now. |
TNL-5083
Description
This change introduces a new id verification step when rendering a proctored exam that is shown when the user has not yet passed verification. It also updates the subsequent instruction step to remove the unnecessary recommendation to ensure that the learner is verified.
Sandbox
You can use the four test users which are already in the various states:
Testing
- [x] i18nReviewers
If you've been tagged for review, please check your corresponding box once you've given the 馃憤.
FYI: @douglashall
Post-review