Skip to content
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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make computation of due date for edx-proctoring powered exams consistent. #36257

Conversation

michaelroytman
Copy link
Contributor

@michaelroytman michaelroytman commented Feb 14, 2025

Description

This commit fixes an inconsistency in the way an exam due date is computed for courses that do not use an LTI based proctoring provider.

The edx-exams microservice was released last year to provide support for LTI based proctoring providers. After the release of this microservice, all proctoring requests initiated by the platform began to be funneled through the microservice, which acted as a broker for these requests, routing them directly to the service for exams in courses using an LTI based proctoring provider or to the platform edx-proctoring plugin for all other cases.

There is an asynchronous task in the platform that syncs exams from the platform to either the edx-exams microservice or the edx-proctoring plugin. Prior to the release of the microservice, this task computed the due date on exams as the exam subsection due date if the course was instructor-paced or None. After the release of the microservice, the task computed due dates differently than before. The due date on exams was computed as the due date on the exam, if there was one, or the end date of the course, if there was one, or None. This differed from the prior definition.

This resulted in inconsistent due date behavior. The exams in courses that were published or republished after the edx-exams microservice was released had the new computation of due date, while exams in courses that were published or republished before the edx-exams microservice was released had the old computation of due date.

This causes an issue for all exams in courses using non-LTI based providers. This is because the due date on exams across all courses that either do not use proctoring or that use a non-LTI based provider are inconsistent, depending on when they were last published.

This commit reintroduces the old computation to the task for exams in courses using a non-LTI based proctoring provider (i.e. those courses whose exams are not powered by the edx-exams microservice). In order to maintain the functionality of edx-exams, we continue to compute the due date as before for exams in courses using an LTI based proctoring provider (i.e. those courses whose exams are powered by the edx-exams microservice).

Supporting information

Testing instructions

  • Set up the edx-exams microservice using your preferred development environment.
  • Create a course in Studio using your preferred method.
  • Set up the special exam/proctored exam feature in your course.
  • Create a proctored exam with a due date.
  • Using the Proctoring Settings page, linked to from the Studio course outline, set the proctoring provider to "lti_external" or "null".
  • Publish the course and observe that the due dates saved in the edx-proctoring tables or the edx-exams tables conforms to the rule in the code.
    • You may want to test this with different pacing types as well.

Deadline

None.

@michaelroytman michaelroytman force-pushed the michaelroytman/COSMO-605-timed-exam-due-date-inconsistencies branch 5 times, most recently from 67975d0 to f103150 Compare February 18, 2025 21:11
Copy link
Contributor

@alangsto alangsto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you for adding the comment as well 👍

…onsistent

This commit fixes an inconsistency in the way an exam due date is computed for courses that do not use an LTI based proctoring provider.

The edx-exams microservice was released last year to provide support for LTI based proctoring providers. After the release of this microservice, all proctoring requests initiated by the platform began to be funneled through the microservice, which acted as a broker for these requests, routing them directly to the service for exams in courses using an LTI based proctoring provider or to the platform edx-proctoring plugin for all other cases.

There is an asynchronous task in the platform that syncs exams from the platform to either the edx-exams microservice or the edx-proctoring plugin. Prior to the release of the microservice, this task computed the due date on exams as the exam subsection due date if the course was instructor-paced or None. After the release of the microservice, the task computed due dates differently than before. The due date on exams was computed as the due date on the exam, if there was one, or the end date of the course, if there was one, or None. This differed from the prior definition.

This resulted in inconsistent due date behavior. The exams in courses that were published or republished after the edx-exams microservice was released had the new computation of due date, while exams in courses that were published or republished before the edx-exams microservice was released had the old computation of due date.

This causes an issue for all exams in courses using non-LTI based providers. This is because the due date on exams across all courses that either do not use proctoring or that use a non-LTI based provider are inconsistent, depending on when they were last published.

This commit reintroduces the old computation to the task for exams in courses using a non-LTI based proctoring provider (i.e. those courses whose exams are not powered by the edx-exams microservice). In order to maintain the functionality of edx-exams, we continue to compute the due date as before for exams in courses using an LTI based proctoring provider (i.e. those courses whose exams are powered by the edx-exams microservice).
@michaelroytman michaelroytman force-pushed the michaelroytman/COSMO-605-timed-exam-due-date-inconsistencies branch from f103150 to c9beec7 Compare February 20, 2025 14:44
@michaelroytman michaelroytman merged commit 7dd4a09 into master Feb 20, 2025
49 checks passed
@michaelroytman michaelroytman deleted the michaelroytman/COSMO-605-timed-exam-due-date-inconsistencies branch February 20, 2025 15:36
@edx-pipeline-bot
Copy link
Contributor

2U Release Notice: This PR has been deployed to the edX staging environment in preparation for a release to production.

@edx-pipeline-bot
Copy link
Contributor

2U Release Notice: This PR has been deployed to the edX production environment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants