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
...
@@ -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`.
- 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`
* - `sequential`
- A collection of videos, problems, and other materials, rendered as a horizontal icon bar in the courseware.
- 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`
* - `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.
- 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
...
@@ -501,33 +499,6 @@ The `courseware_studentmodule` table holds all courseware state for a given user
`selfassessment`
`selfassessment`
TODO: More details to come.
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`
`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.
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>