v12.1.0 - "Tanzanite"
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
and6.02'23
are all valid syntax), hexadecimal values (0xFF
,#FF
and$FF
are all valid syntax), octal values (such as0o777
) and binary values (such as0b1101
) 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 from1.1.0
to1.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 from2.1.0
to2.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 benull
, which will be the case for numeric questions.- A new event has been added -
question:revealAnswer
(version1.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 olderModalUtil.show()
function. - Chunk components in the editor now have a
is-selected
oris-not-selected
class applied if that chunk contains any part of the Slate selection. - A new
region
property has been added to forFocusUtil.focusComponent
(andfocus:component
events), allowing you to specify a string for what to focus on when a component'sfocusOnContent
method is called (region
is now included in theopts
parameter offocusOnContent
). As an example, Question now uses this - if given aregion
of"answers"
browser focus will be directed to the answer portion of the component. QuestionUtil.setResponse
(andquestion:setResponse
events) now have a newsendResponseImmediately
parameter. By default this is true, and if true then calling this event will send the correspondingclient:question:setResponse
event to the server right away. Iffalse
then the event will not be sent to the server, and will need to be sent manually by callingQuestionUtil.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:
Inside the Visual Editor you can create one of these questions by changing the Question Type from "Multiple choice" to "Input a number"
When answered correctly these questions look like this:
When answered incorrectly a Reveal Answer button is shown (by default), allowing students to see what the correct answers are:
Here's what the question looks like after clicking on Reveal Answer:
Like multiple choice, these questions can also have feedback, seen here:
Other number formats are available, such as scientific notation:
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:
These allowances are displayed when revealing the answer:
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.
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:
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:
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:
Interacting with questions now disables them while the response is being submitted, making it much more obvious that your responses are being sent successfully:
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
andcorrectLabels
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
andwaitForElement
. - #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):