Numbas v11.0

I’ve had to remove all of the XSLT code from Numbas, because browsers are dropping support for XSLT – see my previous post on how that could affect you.

This entailed a breaking change in the Numbas runtime, so I’ve increased the major version number to 11.

This post also lists other changes since the last development update, in June.

Numbas runtime

Bug fixes

  • Made sure that the “pattern the student’s answer must match” is interpreted using the pattern matching notation. (code)
  • PatternParser.expand_pattern returns straight away if the given tree is null. (code)
  • When rendering expressions to JME strings, bracket an argument when it’s a binary operation with no defined bracketing rule. (code)
  • Each variable defined by destructuring is saved separately in the suspend data. (code, issue)
  • Ayobami Haastrup contributed a change to avoid duplicated feedback messages about part scores. (code)
  • Fixed a bug to do with regnerated questions. (code)
  • In the pattern matching notation, fixed implicit multiplication by a $ name. (code, issue)

Extensions

  • Updated JSXGraph 1.13.1 and included a JessieCode bug fix. (code, issue)
  • Programming: use webR v0.6.0. (code)
  • Programming: fixed the SCORM storage. (code)
  • Programming: truncate_buffer deals with undefined content. (code)

Numbas editor

The editor now supports references to alternative Numbas compilers, to support old themes that still need the XSLT code. Themes can say which compiler they’d prefer to use.

Bug fixes

  • Fixed the algorithm to find resources in uploaded exam zip files. (code)
  • Fixed the filename of resources created during an exam upload. (code)
  • Uploaded files are stored by hash, to avoid duplication. (code, issue)
  • Added access restrictions to custom part type copy/publish/unpublish views, and fixed the (disabled) edit view when not logged in, (code)
  • Uploading an exam copes with old .exam files which gave absolute paths for resources. (code)
  • Uploading and exam copes with contributors with no profile URL. (code)
  • The account deactivation view returns a “bad request” error if you’re not logged in. (code)
  • Many changes to return “not found” errors when the requested content doesn’t exist. (code)
  • The status badge at the top of the editor correctly shows error responses. (code)

Numbas LTI provider

Bug fixes

  • The session handler uses response Cache-Control headers. (code)
  • The resourceLinkId field is set on new line items. (code)
  • Fixed LTIUserData.get_source_id. (code)
  • Fixed the scores CSV report when there’s a user with no attempts. (code)
  • Attempt analysis: added the LTI parameters to the “download tag data” URL. (code)
  • The attempt analysis view creates an ExamAnalysis object if it doesn’t already exist. (code)