AUDIT_LOG.warning("cand {} on exam {} for course {}: test already over at {}".format(client_candidate_id,exam_series_code,course_id,timelimit_module.ending_at))
AUDIT_LOG.info("Logged in user '{}' for test of cand {} on exam {} for course {}: URL = {}".format(testcenteruser.user.username,client_candidate_id,exam_series_code,course_id,location))
log.info("Updated registration information for user's test center exam registration: username \"{}\" course \"{}\", examcode \"{}\"".format(registration.testcenter_user.user.username,registration.course_id,registration.exam_series_code))
log.info("User {0} enrolled in course {1} {2}updating demographic info for exam registration".format(user.username,course_id,""ifneeds_updatingelse"not "))
exceptTestCenterUser.DoesNotExist:
# do additional initialization here:
testcenter_user=TestCenterUser.create(user)
needs_updating=True
log.info("User {0} enrolled in course {1} creating demographic info for exam registration".format(user.username,course_id))
# perform validation:
ifneeds_updating:
# first perform validation on the user information
@@ -437,8 +437,6 @@ The `courseware_studentmodule` table holds all courseware state for a given user
- Self assessment problems. An early test of the open ended grading system that is not in widespread use yet. Recently deprecated in favor of `combinedopenended`.
* - `sequential`
- A collection of videos, problems, and other materials, rendered as a horizontal icon bar in the courseware.
* - `timelimit`
- A special module that records the time you start working on a piece of courseware and enforces time limits, used for Pearson exams. This hasn't been completely generalized yet, so is not available for widespread use.
* - `videosequence`
- A collection of videos, exercise problems, and other materials, rendered as a horizontal icon bar in the courseware. Use is inconsistent, and some courses use a `sequential` instead.
...
...
@@ -501,33 +499,6 @@ The `courseware_studentmodule` table holds all courseware state for a given user
`selfassessment`
TODO: More details to come.
`timelimit`
This very uncommon type was only used in one Pearson exam for one course, and the format may change significantly in the future. It is currently a JSON dictionary with fields:
.. list-table::
:widths: 10 20 70
:header-rows: 1
* - JSON field
- Example
- Definition
* - `beginning_at`
- `1360590255.488154`
- UTC time as measured in seconds since UNIX epoch representing when the exam was started.
* - `ending_at`
- `1360596632.559758`
- UTC time as measured in seconds since UNIX epoch representing the time the exam will close.
* - `accomodation_codes`
- `DOUBLE`
- (optional) Sometimes students are given more time for accessibility reasons. Possible values are:
* `NONE`: no time accommodation
* `ADDHALFTIME`: 1.5X normal time allowance
* `ADD30MIN`: normal time allowance + 30 minutes
* `DOUBLE`: 2X normal time allowance
* `TESTING`: extra long period (for testing/debugging)
`grade`
-------
Floating point value indicating the total unweighted grade for this problem that the student has scored. Basically how many responses they got right within the problem.
<h3class="message-title">${_('Registration for this Pearson exam is closed')}</h3>
<pclass="message-copy">${_('Your previous information is available below, however you may not edit any of the information.')}
</div>
% endif
% if registration:
<pclass="instructions">
${_('Please use the following form if you need to update your demographic information used in your Pearson VUE Proctored Exam. Required fields are noted by <strongclass="indicator">bold text and an asterisk (*)')}</strong>.
</p>
% else:
<pclass="instructions">
${_('Please provide the following demographic information to register for a Pearson VUE Proctored Exam. Required fields are noted by <strongclass="indicator">bold text and an asterisk (*)')}</strong>.
<inputid="company_name"type="text"name="company_name"value="${testcenteruser.company_name}"placeholder="${_('e.g. American Association of University Professors')}"/>
</li>
</ol>
</fieldset>
</div>
% if registration:
% if registration.accommodation_request and len(registration.accommodation_request) > 0:
% if registration.accommodation_request and len(registration.accommodation_request) > 0:
<pclass="note">${_('<spanclass="title">Note</span>: Your previous accommodation request below needs to be reviewed in detail <strong>and will add a significant delay to your registration process</strong>.')}</p>
% endif
% else:
<pclass="note">${_('<spanclass="title">Note</span>: Accommodation requests are not part of your demographic information, <strong>and cannot be changed once submitted</strong>. Accommodation requests, which are reviewed on a case-by-case basis, <strong>will add significant delay to the registration process</strong>.')}</p>
<pclass="details">${_('The demographic information you most recently provided is pending. You may edit this information at any point before exam registration closes on <strong>{end_date}</strong>').format(end_date=exam_info.registration_end_date_text)}</p>
</li>
% endif
% if registration.demographics_is_accepted:
<liclass="item status status-processed status-demographics">
<pclass="details">${_('The demographic information you most recently provided has been processed. You may edit this information at any point before exam registration closes on <strong>{end_date}</strong>').format(end_date=exam_info.registration_end_date_text)}</p>
</li>
% endif
% if registration.demographics_is_rejected:
<liclass="item status status-rejected status-demographics">
<pclass="details">${_('The demographic information you most recently provided has been rejected by Pearson. You can correct and submit it again before the exam registration closes on <strong>{end_date}</strong>. The error message is:').format(end_date=exam_info.registration_end_date_text)}</p>
<pclass="action">${_('If the error is not correctable by revising your demographic information, please {contact_link_start}contact edX at exam-help@edx.org{contact_link_end}.').format(contact_link_start='<aclass="contact-link"href="{}"'.format(exam_help_href),contact_link_end='</a>')}</p>
</li>
% endif
<!-- then provide status of accommodations, if any -->
% if registration.accommodation_is_pending:
<liclass="item status status-pending status-accommodations">
<pclass="details">${_('Your requested accommodations are pending. Within a few days, you should see confirmation here of granted accommodations.')}</p>
</li>
% endif
% if registration.accommodation_is_accepted:
<liclass="item status status-processed status-accommodations">
<pclass="details">${_('Your exam registration is pending. Once your information is processed, it will be forwarded to Pearson and you will be able to schedule an exam.')}</p>
</li>
% endif
% if registration.registration_is_accepted:
<liclass="item status status-processed status-registration">
<pclass="details">${_('Your exam registration has been processed and has been forwarded to Pearson. <strong>You are now able to {exam_link_start}schedule a Pearson exam{exam_link_end}</strong>.').format(exam_link_start='<ahref="{}"class="exam-link">'.format(registration.registration_signup_url), exam_link_end='</a>')}</p>
</li>
% endif
% if registration.registration_is_rejected:
<liclass="item status status-rejected status-registration">
<pclass="details">${_('Your exam registration has been rejected by Pearson. <strong>You currently cannot schedule an exam</strong>. The errors found include:')}</p>
<pclass="action">${_('Please {contact_link_start}contact edX at exam-help@edx.org{contact_link_end}.').format(contact_link_start='<aclass="contact-link"href="{}"'.format(exam_help_href),contact_link_end='</a>')}</p>
<p>${_('If you have a specific question pertaining to your registration, you may {contact_link_start}contact edX at exam-help@edx.org{contact_link_end}.').format(contact_link_start='<aclass="contact-link"href="{}"'.format(exam_help_href),contact_link_end='</a>')}</p>