WeBWorK 2.20 Release Candidate#2721
Merged
Merged
Conversation
…ter the close date
Eliminate the visually hidden spans injected by javascript.
Recover syntax highlighting for sample problems.
Co-authored-by: Glenn Rice <47527406+drgrice1@users.noreply.github.com>
Suggestions to make using an existing user with given LMS id work.
I keep seeing this and wanting to get rid of them. Time to do it. None of these work.
Remove `bin/old_scripts`.
Currently this column is of `INT` type. The `INT` type is a 4 bit integer, and so a timestamp stored in this column that is after the year 2038 will not work. A `BIGINT` is large enough for my lifetime at least (and then another 292 billion years or so). There is no need to update databases since the INT and BIGINT types are compatible. However, at some point you will need to make sure that the type of the column in all courses is updated. You can run the `upgrade-database-to-utf8mb4.pl` script to do this. For example, running `upgrade-database-to-utf8mb4.pl -c courseId` will update the past answer table for the named course. This fixes issue #952.
Change the `timestamp` column in the past answer table to `BIGINT`.
There is no reason to use javascript for this. Just make the links disabled to begin with. Furthermore, there is no reason to use jQuery for this. I thought all webwork2 jQuery usage had already been removed, but this was missed. To test this create a JITAR set with two or more problems (or really two or more nested sets of problems), and set "Restrict Problem Progression" to "Yes". Assign the set to a student user, and then log in as that student user. On the problem list page the latter prolems in the set should be grayed out, and clicking on them does nothing (that already works without javascript because these aren't even `a` tags, they are `span` tags). If you open the first problem, then the latter problems in the prroblems list in the site menu should be grayed out, and clicking on them does nothing. Currently, that uses jQuery javascript to disable those links. With this pull request, they are just disabled to begin with.
Check for LMS ID first when authenticating from LMS
the active %userRoles hash. Will prevent Accounts Manager from failing. See #2625 but when editing a user with such a value, will only allow choosing a defined level.
The crypt function cannot handle most wide (Unicode) characters, but does handle some by attempting to downgrade to an 8-bit string. In order to support wide characters in passwords while not breaking any passwords which worked before this change, a password will be encoded into UTF-8 before being sent to crypt only when crypt dies on the original string.
This makes it easy to generate a password hash or verify a given password against a previously generated password hash. Note that this uses Encode::encode (via the Mojo::Util encode method) rather than Encode::utf8_encode. The Encode::utf8_encode method should not be used anymore.
adjustments to date extension achievement items
There is really no production scenario where this should be anything but 1. If you are really serving without https, then you can change this. And good luck dealing with your users having to click through the warnings to get to your site. Note that this just works if you are using `localhost` in development also. Browsers have a built in exception for `localhost` and consider it secure without actual certificates. I am tired of seeing forum issues because system administrators forget or don't know to change this.
Change the default value of `$CookieSecure` to 1.
Add support for wide characters in passwords. (replacement of #2628)
Make JITAR disabled problems disabled without javascript.
This adds achievement items that modify the reduced scoring time period while leaving other settings alone. These are designed for classes which use reduced scoring and keep assignments open in the reduced scoring period for a long time (such as the end of the course). + ExtendReducedDate -> Extends the reduced scoring date 24 hours. + SuperExtendReducedDate -> Extends the reduced scoring date 48 hours. + NoReducedCred -> Removes the reduced scoring flag on an assignment to allow full credit after the reduced scoring date.
Support for custom permission levels not in the userRoles hash (replacement of #2629)
This way the parameters can be sorted in this one instance where this is desired.
11% of minimum 1% translated source file: 'webwork2.pot' on 'ko'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
12% of minimum 1% translated source file: 'webwork2.pot' on 'fr'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
34% of minimum 1% translated source file: 'webwork2.pot' on 'fr_CA'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
42% of minimum 1% translated source file: 'webwork2.pot' on 'el'. 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: 'webwork2.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
5% of minimum 1% translated source file: 'webwork2.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
52% of minimum 1% translated source file: 'webwork2.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
10% of minimum 1% translated source file: 'webwork2.pot' on 'es'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
12% of minimum 1% translated source file: 'webwork2.pot' on 'hu'. Sync of partially translated files: untranslated content is included with an empty translation or source language content depending on file format
23% of minimum 1% translated source file: 'webwork2.pot' on 'de'. 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: 'webwork2.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
…2f0efb Updates for file lib/WeBWorK/Localize/webwork2.pot in ru_RU [Manual Sync]
…a555ba Updates for file lib/WeBWorK/Localize/webwork2.pot in de [Manual Sync]
…09b01c Updates for file lib/WeBWorK/Localize/webwork2.pot in cs_CZ [Manual Sync]
…9ae7d9 Updates for file lib/WeBWorK/Localize/webwork2.pot in zh_HK [Manual Sync]
…86f39c Updates for file lib/WeBWorK/Localize/webwork2.pot in zh_CN [Manual Sync]
…fe77ba Updates for file lib/WeBWorK/Localize/webwork2.pot in he_IL [Manual Sync]
…225881 Updates for file lib/WeBWorK/Localize/webwork2.pot in es [Manual Sync]
…881df7 Updates for file lib/WeBWorK/Localize/webwork2.pot in hu [Manual Sync]
…ca662b Updates for file lib/WeBWorK/Localize/webwork2.pot in fr_CA [Manual Sync]
…41b207 Updates for file lib/WeBWorK/Localize/webwork2.pot in el [Manual Sync]
…e80e68 Updates for file lib/WeBWorK/Localize/webwork2.pot in ko [Manual Sync]
…c29bdb Updates for file lib/WeBWorK/Localize/webwork2.pot in fr [Manual Sync]
Currently if the session has expired and one of the options in the "Format Code" tabe is used in the PG problem editor, then the message reads `Error: can't access property "status", t.result_data is undefined` which is not very informative. This makes it so that the error message in the response which is `Error: Authentication failed. Log in again to continue.` An easy way to test this is to open a problem in the problem editor, delete the cookie for the session in the developer tools, and then switch to the "Format Code" tabe and click the "Format Code" button.
Fix the session expired message in the problem editor.
record/update user lis_source_did even when grade passback not in use
somiaj
approved these changes
Jul 22, 2025
dlglin
approved these changes
Jul 22, 2025
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.
It is time for this. We have talked about just using the develop branch, but I think it is nice to have a separate branch for the release candidate. It just keeps things separate in a nice way.
So as usual, re-target pull requests for this branch that you want to get into the release, and I will handle synchronizing those to develop as they are merged.