Conversation
`maketext` is not defined in the Translator package, and so it cannot be called directly in the default graders defined in the translator. Instead an eval is needed to access the `maketext` in the safe compartment. This fixes issue #1261.
Also fixes spelling of SYNOPSIS
…ucket to be continually replenished.
…oblems. This extends @sfiedle1's work in #1258, and implements the structural rework that I suggested in the conversation for that pull request (albeit slightly modified). There are two new options for the `draggableSubsets.pl` macro. They are `ShowUniversalSet` and `UniversalSetLabel`. If `ShowUniversalSet` is 1, then the set of all elements that are passed as the first argument for the `DraggableSubsets` method will be shown as a separate drag and drop bucket. This bucket is always above the other usual drag and drop buckets (both in HTML and TeX). The elements of the universal set can be dragged multiple times to the other buckets. Really this is a copy of the element, so all elements always remain in the universal set. The `UniversalSetLabel` option is a string that will be shown as the label of the universal set bucket. Note that this approach doesn't require any special handling for grading the answer regardless of if `$showPartialCorrectAnswers` is true or not, because the universal set bucket is not part of the answer in any case. It is not listed in any of the answer previews, and is not part of the grading in any way. It is purely a source of elements. I also added some validation of the answers and default subsets that are passed to the DraggableSubsets method. Previously invalid inputs would have caused rather unexpected things. Now they will be errors (specifically `Value::Error`s). In my original comment to #1258 I suggested a `ShowUniversalSet` option and a related `AllowReusableElements` option. The latter option was dropped because I realized it doesn't really make sense in the context of a universal set. I initially implemented it, but basically it made the "universal set" bucket really just a regular bucket just like all of the others, and it really wasn't a "universal set" anymore since it didn't always have all elements. I thought of a way that it could make sense in which it always has all elements, but only one copy was allowed to be dragged to the other buckets. So only one duplicate, no reuse after that. That would take some effort to implement (mostly in the javascript code), but could be done. I don't know that this would really be that useful though, so I didn't implement it for now. A MWE for testing this is as follows: ```perl DOCUMENT(); loadMacros(qw{PGstandard.pl PGML.pl draggableSubsets.pl PGcourse.pl}); $draggable = DraggableSubsets( [ 'orange', 'blue', 'apple' ], [ [ 0, 1 ], [ 0, 2 ] ], DefaultSubsets => [ { label => 'Color', indices => [] }, { label => 'Fruit', indices => [] }, ], ShowUniversalSet => 1, UniversalSetLabel => 'Classify each item below as a color, fruit, or both.', AllowNewBuckets => 0 ); BEGIN_PGML [_]{$draggable} END_PGML ENDDOCUMENT(); ``` To test this you should also test modifications of the above problem with other options. For example, change to `AllowNewBuckets => 1`, and test addition and removal of buckets particularly removal after elements have been added to the bucket. Add indices to the `DefaultSubsets` so elements are initially shown in those and behavior when elements are dragged in an out.
`draggableSubsets.pl` macro consistent with what is documented. Add `options.sort = false` for the universal set so that it can not be rearranged from what it is set to. This is for transparency since this doesn't matter anyway.
There are some new strings that have not been added to the pot file.
Also remove use for foreach.
66% of minimum 1% translated source file: 'pg.pot' on 'el'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
84% of minimum 1% translated source file: 'pg.pot' on 'he_IL'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
41% of minimum 1% translated source file: 'pg.pot' on 'cs_CZ'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
11% of minimum 1% translated source file: 'pg.pot' on 'es'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
14% of minimum 1% translated source file: 'pg.pot' on 'ko'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
4% of minimum 1% translated source file: 'pg.pot' on 'ru_RU'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
22% of minimum 1% translated source file: 'pg.pot' on 'de'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
7% of minimum 1% translated source file: 'pg.pot' on 'fr'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
4% of minimum 1% translated source file: 'pg.pot' on 'zh_HK'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
9% of minimum 1% translated source file: 'pg.pot' on 'hu'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
6% of minimum 1% translated source file: 'pg.pot' on 'tr'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
6% of minimum 1% translated source file: 'pg.pot' on 'zh_CN'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
PG 2.20 back to develop
don't let a negative score be reported
Rewrite the PG uniq function to return the array in a consistent order
This fixes two issues with a check in BeginList; first, it accessed a parameter without checking it if existed first, resulting in undefined value warnings; and second it tested the validity of the uppercase version of the parameter but then used the literal parameter in the assignment.
This sets the `aria` option from the JSXGraph library for all graphed objects. Thus objects are described as they are graphed. I am sure this will still need some work, but this makes the graphtool at least basically accessible. There is also a need to specifically set the tabindex for objects (usually to the empty string which is the closest thing to unsetting it that the JSXGraph library allows). Otherwise JSXGraph now sets that to -1 for everything and tries to focus those things with javascript and that is interfering with the graphtools own focus behavior. This is more of what was done in #1357. Note that the aria labels are not translated. Although nothing for the graphtool is. The usual data attribute approach really would be a mess for this. There are a lot of strings. Translating the graphtool would take a lot of effort with the current methods for javascript translation.
Also, using `Ctrl-Backspace` will clear the graph. This is not documented or in the help, but I susped that some keyboards label what is really the Backspace key as Delete. So this will make those work.
…ots.pl` macro. To set custom tick positions use the `tick_positions` axis option. Set that to a reference to an array containing the positions on the axis that ticks are desired. For example, `tick_positions => [ 2, 5, 9 ]` will place ticks at positions 2, 5, and 9 on the axis. Note that when this option is used the `tick_delta`, `tick_scale`, and `tick_distance` options are not used. So only the given tick positions will appear in the graph. To set custom tick labels use the `tick_labels` option. Note that this is not a new option, but now it accepts a new type of value. Previously this was purely boolean (0 or 1), and it only determined if tick labels would be shown or not. Now it can take a value that is a reference to a hash. The keys of the hash are tick positions, and the values are the labels to be placed at those positons. Note that formatting of the label must be done by the auther, and the `tick_label_format` option is ignored for any label provided in this hash. If a major tick is not listed in the hash, then the position will be used for the label and it will be formatted according to the `tick_label_format` option. This is intended to replace what is done in #1374 and is a more flexible approach than what is done there. In that pull request the capability for custom tick labels only is added, and it is extremely restrictive in what it can do. Only positive tick labels can be customized, and it requires that the problem author label all major ticks (there is no fallback and a tick is labeled "undefined" if one is missing).
…the y-axis. The coordinate for the y-axis is different than for the x-axis.
Make the graphtool screen reader friendly.
Make it possible to set custom tick positions and labels with the `plots.pl` macro.
Add keyboard controls for drag and drop problems.
fix a typo and clarify some POD
Add method to load texPackages and tikzLibraries to Plots
Co-authored-by: Glenn Rice <47527406+drgrice1@users.noreply.github.com>
Add an html attributes option to essay boxes
flash feedback message badges
All are updated to the latest versions except for iframe-resizer. There are no changes to the code needed for our usage of these libraries. Note that this includes the update to `@openwebwork/mathquill` in #1416, so that pull request is not needed with this.
Update npm dependencies to latest versions.
Update MathQuill to version 0.11.2 with the MathFunction copy/paste fix.
Fix elementary Matrix construction bug
add cancel package to pg.sty
empty node following booktabs rules
Lockfile version 3 has been supported since node version 18 (and npm version 7). So there is no need to stay with lockfile version 2 anymore. The only real change it seems is that the `dependencies` section is removed. This means that the file is about 1100 lines shorter!
Switch `package-lock.json` to lockfile version 3.
These are changes needed to use the new internal toolbar implemented in openwebwork/mathquill#46. To test this you need to use that branch. Clone that branch somewhere on the webwork2 server, and then in the directory of that clone execute ```bash npm ci npm run build npm link ``` Then in the `pg/htdocs` directory run `npm link @openwebwork/mathquill`. After doing so if you look at `pg/htdocs/node_modules/@openwebwork/mathquill` you will see that it is now a link to the MathQuill clone above. Execute `npm ci` again to reset that back to the currently published MathQuill version. Once openwebwork/mathquill#46 is merged, I will publish it and add it to this pull request. So don't merge this pull request until then.
Update the mqeditor to use MathQuill's new internal toolbar.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is the release candidate for WeBWorK 2.21. Please re-target any pull requests that you want to get into the release for this branch.