Skip to content

v12.1.0 - "Tanzanite"

Compare
Choose a tag to compare
@zachberry zachberry released this 11 May 20:59
· 685 commits to master since this release

The big stuff you'll wanna know

Big news for this release - we have a new input-a-number question type! Assessment has also been overhauled with several improvements. Read on for more details.

For authors & instructors

  • Numeric questions are here! This allows you to create questions such as "What is 2+2?" and instead of selecting a multiple choice option the student will input the value of "4" to get it correct. You can also define a range of allowed values, or give some leeway with an accepted percent or absolute amount of error. You're not limited to decimal values - fractional values (such as 1/2) are allowed, numbers in scientific notation (6.02e23, 6.02*10^23, 6.02x10^23, 6.02ee23 and 6.02'23 are all valid syntax), hexadecimal values (0xFF, #FF and $FF are all valid syntax), octal values (such as 0o777) and binary values (such as 0b1101) are also available.
  • Questions have a new "Reveal Answer" button. By default this button is hidden for multiple choice questions but will show up in numeric questions if a student answers the question incorrectly. This button puts any question into a review mode so students can see what the correct and incorrect answers are. You can override the defaults to add or remove this button by opening the details (...) menu for a Question.
  • The Assessment Rubric has been cleaned up and moved into a dialog, making it easier to read and use.
  • Finally! The insert menu got a fresh coat of paint in the Visual Editor. Items are now grouped by category, with more common items like text, headings and lists moved to the left, and lesser used items moved to the right.

For students

  • Assessment has been overhauled behind the scenes to better handle situations when taking an assessment quiz during spotty network connections. Now when answering questions in the assessment the question will become dim and non-interactive while it submits your response. Once recorded, the question will display "Answer saved" below the question, so you can be sure it got sent just fine. If, for whatever reason, your network drops and the question isn't sent as expected, you'll see a red error message below the question stating that it wasn't submitted. In that case, you can interact with the question again to re-submit your response, once your network is running again.

For Data Nerds:

  • With the addition of numeric questions it's important to note that the data structure for responses is different for these questions. For multiple choice questions responses are represented by an object like { ids: [ 'question-option-A', 'question-option-C' ] } - An object with a key of "ids" and its value an array of the ids of one or more MCChoice nodes for the answer choices the student selected. Numeric question responses are instead represented by an object like { value: "42" } - An object with a key of "value" and its value a string representing the student input for that question.
  • question:hideExplanation has been updated from 1.1.0 to 1.2.0. context has been added, which informs you if the explanation was viewed in practice or in an assessment review.
  • question:setResponse has been updated from 2.1.0 to 2.2.0. sendResponseImmediately has been added which is a boolean value. If true, this event was fired as soon as the student interacted with the question, which is true for Multiple Choice questions. If false, this event was fired after the student interacted with the question, which is true for numeric (input-a-number) questions. For those questions the student response is not sent until once the focus leaves the text input field. Additionally, targetId can now be null, which will be the case for numeric questions.
  • A new event has been added - question:revealAnswer (version 1.0.0). This event is fired when a student clicks on the new Reveal Answer button for practice questions (if it is available). Here is the payload:
Property Description
questionId The id of the corresponding Question
context The context (string) when the user is checking their answer

For complete information on these events (and others) check out our event documentation.

For developers

  • The modal system in the Viewer has also gotten an overhaul. A new component, <ModalPortal>, has been added. Any children added to ModalPortal will be displayed in the new React Portal window. This allows you to update the contents of your modal based on state/prop changes, and is an alternative to using the older ModalUtil.show() function.
  • Chunk components in the editor now have a is-selected or is-not-selected class applied if that chunk contains any part of the Slate selection.
  • A new region property has been added to for FocusUtil.focusComponent (and focus:component events), allowing you to specify a string for what to focus on when a component's focusOnContent method is called (region is now included in the opts parameter of focusOnContent). As an example, Question now uses this - if given a region of "answers" browser focus will be directed to the answer portion of the component.
  • QuestionUtil.setResponse (and question:setResponse events) now have a new sendResponseImmediately parameter. By default this is true, and if true then calling this event will send the corresponding client:question:setResponse event to the server right away. If false then the event will not be sent to the server, and will need to be sent manually by calling QuestionUtil.sendResponse.
  • This release requires new packages

For administrators

  • This release requires new packages

REST API Changes:

  • No changes in this release

New Feature Screenshots

Numeric Questions

With the new numeric "Input a number" question type students are given a text input and are asked to type in a value:

blank-input

Inside the Visual Editor you can create one of these questions by changing the Question Type from "Multiple choice" to "Input a number"

Screen Shot 2021-04-29 at 3 01 44 PM

When answered correctly these questions look like this:

q1-correct

When answered incorrectly a Reveal Answer button is shown (by default), allowing students to see what the correct answers are:

q1-incorrect

Here's what the question looks like after clicking on Reveal Answer:

q1-reveal

Like multiple choice, these questions can also have feedback, seen here:

q2-feedback

Other number formats are available, such as scientific notation:

sci

You can also specify a range of accepted values or (in this example) an allowed percent error - shown here on this last question at the end of the page. You can see that the student answered within the accepted error amount and was still awarded a correct response:

perc-error

These allowances are displayed when revealing the answer:

perc-error-reveal

Experiment with these new type of questions to explore all of the available options!

Reveal Answer

By default multiple choice questions don't provide a reveal answer button, while numeric questions will show it after an incorrect response only. You can customize this behavior by question - simply focus somewhere inside a question and click on the details menu button (...). You'll see the new "Allow reveal answer?" option.

reveal-ans-button

Assessment Rubric Cleaned Up

The assessment rubric options have been moved into a dialog and have gotten a fresh new clean look! Here's a sample:

rubric-modal

Reorganized Insert Menu

The insert menu in the Visual Editor has been organized - items are now grouped by types of content and more common items have been moved to be closer to the left:

insert-menu

Pro-tip: You can click on the + in the insert menu to cause it to stay open.

Answer Saved Notifications in Assessment

Questions in the assessment now show a "Answer saved" notice below the question to confirm that the response was recorded:

ans-saved

Interacting with questions now disables them while the response is being submitted, making it much more obvious that your responses are being sent successfully:

ans-saved-gif

Complete Issues List

The list of completed pull requests can be seen on our GitHub milestone page.

#1408 is a very big pull request that covers several issues. To keep things simple it is repeated here several times, each time for a different issue it covers / resolves. These are highlights - see the comments in the pull request for a comprehensive list of changes.

  • #1408, #1805, #1807, #1810 - ✨ Adds the new numeric question type, including significant refactors to Question and MultipleChoice components.
  • #1408 - ✨ Refactors assessment and several assessment components. Assessment questions now transition to a disabled state while sending their responses, and indicators have been added next to assessment questions to specify if the response has been saved or not. A loading indicator has been added when starting the assessment.
  • #1408 - ✨ Adds the new Reveal Answer button to Questions
  • #1408 - 🛠️ Text in the viewer on MacOS machines now uses font smoothing in Chrome and Firefox
  • #1408 - 🛠️ The incorrectLabels and correctLabels properties are now defined on Question nodes rather than MCAssessment nodes
  • #1408 - 🐛 When starting an assessment the network response now removes any solution data for questions in the returned JSON
  • #1408 - 🐛 Fixes a bug where the aria-label value of the assessment submit date in the assessment review pages for the Viewer was incorrect
  • #1408 - 🛠️ Adds new components and utility methods which can be used for developers - <ModalPortal>, <Spinner>, timeoutPromise and waitForElement.
  • #1611 - 🐛 Fixes bugs related to LTI memory nonce values not being cleared correctly
  • #1776 - 🛠️ Speeds up the dashboard page by caching module icons
  • #1777 - 🛠️ Speeds up page loading by implementing several javascript and font optimizations
  • #1780 - 🛠️ Moves the assessment rubric editing UI into a dialog with an updated cleaner look
  • #1784 - 🛠️ Fixes some focus weirdness in the Visual Editor which should resolve issues with focus jumping around unexpectedly, such as in the options for Question Banks. Also adds input validation to editing numeric questions.
  • #1785 - 🛠️ Adds a fixed height to dashboard module icons
  • #1787 - 🛠️ Updates the look of the Visual Editor insert menu, and implements a new insert_menu.json config file used to specify the items and order to include in the insert menu

Issue legend:

  • ✨: New features
  • 🛠️: Improvements & enhancements
  • 🐛: Bug fixes

Release Stats

Commits: 213
Developers: 7
Files Changed: 434
Lines Changed: 562,865 (+527,573 / −35,292) 😮
Commit Dates: May 31, 2019 - April 29, 2021

Lines of Code (expand to view)
cloc ./ --hide-rate --by-percent cmb --read-lang-def=cloc-type-definitions.txt
    2258 text files.
    2000 unique files.
     316 files ignored.

github.com/AlDanial/cloc v 1.84
---------------------------------------------------------------------------------
Language                       files        blank %      comment %           code
---------------------------------------------------------------------------------
Jest Test Snapshots              270           0.92           0.05         524732
Jest Tests                       530          13.78           2.01          86316
JavaScript                       775          12.56           8.34          49167
JSON                              93           0.01           0.00          30252
Sass                             156          15.30           1.05          11054
JSX                               29          11.09           1.08           1457
XML                               33           2.29           5.10           1415
Markdown                           4          19.10           0.00            614
EJS                               12           8.48           0.96            470
YAML                               4          16.39           7.56            181
SVG                               41           0.55           0.00            181
---------------------------------------------------------------------------------
SUM:                            1947           3.94           1.05         705839
---------------------------------------------------------------------------------

Thanks!

A big thanks to our contributors and testers for this release (listed in alphabetical order):