Development update, November 2024

Here’s another round-up of development work on the Numbas project in the past couple of months.

Numbas runtime

I’ve tagged v8.1 of the Numbas runtime on GitHub.

Enhancements

  • Zach Potthoff took on a “good first issue” from the GitHub repository and added an input hint for number entry parts when the student needs to write a fraction. (issue)
  • The element numbas.review_allowed from SCORM is used to decide whether to enter review mode on resuming a finished attempt. (code)
  • Fixed a bug which led to a blank space next to the answer input box when there’s no feedback icon. (issue)
  • Part feedback messages are always shown when there’s only one part in the question. (code)
  • The part feedback summary shows when the feedback has changed. (code)
  • The layout of the part submit and feedback area has changed: on wide viewports, the feedback messages are shown to the left of the “save answer” button and score display. (code)
  • When auto-submitting a part because the user moved focus away from the input box by clicking inside the same part, the feedback messages are shown. (code)
  • The objects in Numbas.storage.inputWidgetStorage are documented. (code)
  • The main question content tries to be as wide as possible, rather than fitting tightly to the content. (code)
  • In “match choices with answers” parts, the whole cell around a checkbox is clickable. (code)
  • Some improvements to screen reader part feedback. (issue)
  • HTML elements with data-interactive="false" can be safely copied and embedded multiple times in the question content. (issue)
  • The “save all answers” button at the bottom of each question has been removed. It’s unnecessary when answers are automatically submitted, and we thought it was better to always have a “save answer” button next to each part. (issue)
  • The offline analysis tool now has the ability to review attempts. (code, issue)

Bug fixes

  • The final part feedback message summing up the the marks awarded is treated separately to messages produced by the marking algorithm, so can be hidden when appropriate. (code)
  • Somanshu Rath updated the link to the documentation in the README. (code)
  • Fixed a recently-introduced bug, so expected answers are shown when the question is revealed. (issue)
  • Fixed the display of questions in print. (issue)
  • The menu mode question menu no longer overflows horizontally. (code)
  • When showing part feedback messages but not answer state, positive or negative messages aren’t shown. (code)
  • Fixed a bug in the simplification rules for removing brackets involving subtraction. (code)
  • The gauss_jordan_elimination function always puts the matrix into reduced row-echelon form when possible. (issue)
  • Parts aren’t generated until rulesets have been generated. (code)
  • The align attribute on images in question content is translated into corresponding CSS rules on the container when the lightbox button is added. (issue)

Extensions

  • Geogebra: when linking gaps to geogebra objects, the parent part’s HTML element is used for event handling. (code)
  • Polynomials: Fixed a typo on Polynomial.pow. (code)
  • Programming: Submitting with ctrl+enter opens the feedback. (issue)

Numbas editor

I’ve tagged v8.1 of the Numbas editor on GitHub.

  • When re-uploading a custom part type, the short name isn’t changed. (code)
  • The first_setup script sends the correct Content-Type header for HTML. (code)
  • Updated the installation instructions. (code)
  • The exam: editor loads the ‘enter review mode immediately’ setting. (code)
  • Fixed a bug with statuses on item queue entries. (code)
  • You’re notified when someone is assigned to an item you put in a queue and when they review it. (code)
  • The warning about interactive HTML elements is only shown in the variable editor for HTML elements not marked as non-interactive. (code, issue)

Numbas LTI provider

I’ve tagged v4.1 of the Numbas LTI provider on GitHub.

The main change is an improvement to how scores are reported through LTI 1.3. The completion status of attempts is reported and the “submitted at” time correctly reflects the time the student ended the attempt.

  • Improved the layout of the access change and resource settings forms. (code)
  • Improved the Blackboard LTI 1.3 upgrade management command. (code)
  • Now uses the parser from the compiler to read .exam files. (code)
  • Fix a regular expression syntax error. (code)
  • When re-opening an attempt, a RemarkedScormElement object is created so it shows up in the attempt timeline. (code)
  • When a student re-opens an attempt, they’re sent straight to that attempt. (code)
  • The student progress view copes with there being no LTI launch or no line item. (code)
  • The routine to remove an access token silently copes with there being no token to delete. (code)
  • Fixed the logic around the grade shown in the student progress view. (code)
  • When running an attempt, the numbas.review_allowed SCORM element is set, to determine if full review is allowed. (code, issue)
  • Updated the feedback summary tables for the new feedback settings. (code)
  • When reporting scores, it silently copes with attempts with no SCORM elements. (code)
  • Improved the display of the cookie check page. (code)
  • Changed availability times are sent to clients when access changes are saved or deleted. (code)
  • Slightly lightened the danger button background colour. (code)
  • The “discount parts” view is available even when there are no attempts. (code, issue)
  • LTI access tokens are cached, to avoid making redundant requests to the consumer platform. (code)
  • Fixed a bug when comparing line item start and end times. (code)