Skip to content

WeBWorK 2.20 Release Candidate #2721

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 404 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
404 commits
Select commit Hold shift + click to select a range
5289d8b
Merge pull request #2594 from somiaj/code-mirror-key-bindings
Alex-Jordan Nov 12, 2024
0448efb
Merge pull request #2574 from drgrice1/render-problem-non-empty-filen…
pstaabp Nov 12, 2024
378c4ed
Merge pull request #2596 from drgrice1/remove-old-mathquill-asset-case
pstaabp Nov 12, 2024
5285333
Change behavior when changing dates in a datepicker group to be more …
drgrice1 Sep 27, 2024
4c01001
Update the start index of the for loop.
drgrice1 Sep 28, 2024
cc31f27
Fix an incorrect index comparison.
drgrice1 Oct 10, 2024
c02f04a
Fix another minor observed issue.
drgrice1 Oct 10, 2024
fc659e1
For overrides fallback to the class value when an override is deleted.
drgrice1 Nov 12, 2024
e855cc2
Make the student nav filter selector not split toggle.
drgrice1 Nov 11, 2024
1731d34
Add LTI configuration info to the LTI course map page.
drgrice1 Mar 11, 2024
edbf4e2
Merge pull request #2583 from drgrice1/datepicker-group-update-tweak
somiaj Nov 13, 2024
73af292
Merge pull request #2586 from drgrice1/lti-content-item-info-dialog
Alex-Jordan Nov 13, 2024
a7b059d
Fix the comment about the LTI 1.1 consumer key in the authen_LTI_1_1.…
drgrice1 Nov 13, 2024
5690ae8
Merge pull request #2620 from drgrice1/gateway-nav-filter-not-split
Alex-Jordan Nov 13, 2024
cb7c599
Merge pull request #2621 from drgrice1/lti-consumer-key-comment-fix
Alex-Jordan Nov 13, 2024
16d8d13
Merge pull request #2613 from somiaj/fix-rounding-error-spg
Alex-Jordan Nov 13, 2024
b6e64b8
Fix (and completely revamp) the Shibboleth authentication module.
drgrice1 Oct 24, 2024
29b1db4
Remove `use strict` and `use warnings` from the Shibboleth.pm module.
drgrice1 Oct 28, 2024
89dd676
Make the Shibboleth bypass_query parameter actually work.
drgrice1 Oct 29, 2024
29af722
Fix uninitialized variable warning when not using LTI.
somiaj Nov 13, 2024
01a3b27
Merge pull request #2622 from somiaj/fix-lti-uninitialized
Alex-Jordan Nov 13, 2024
f14d717
Merge pull request #2611 from drgrice1/shibboleth-rework
Alex-Jordan Nov 13, 2024
90f6209
For LTI 1.3 only consider roles in the context for automatically crea…
drgrice1 Oct 2, 2024
df4b848
Merge pull request #2591 from drgrice1/lti-use-context-role-only
somiaj Nov 14, 2024
9938ca8
add controls for when grades are sent to the LMS
Alex-Jordan Nov 8, 2024
4fd4a57
remove unused argument to grade_gateway()
Alex-Jordan Nov 8, 2024
94d38ba
simplify check if gateway set has been attempted
Alex-Jordan Nov 9, 2024
147a961
fix division by zero bug
Alex-Jordan Nov 9, 2024
1b7c707
modularize more with new date and threshold considerations for LTI gr…
Alex-Jordan Nov 10, 2024
f6efa8c
debugging PR 2617
Alex-Jordan Nov 10, 2024
02c9ba9
put x() around config value labels
Alex-Jordan Nov 10, 2024
10ad001
simplify how can_submit_LMS_score is used, and use it earlier
Alex-Jordan Nov 11, 2024
118b732
move can_submit_LMS_score to general set utilities
Nov 12, 2024
b879a98
check that reduced scoring date is enabled or else move on to the clo…
Nov 12, 2024
8964a0c
fix logic for homework_always with LTIGradeOnSubmit
Nov 12, 2024
22457bc
various feedback from PR#2617
Alex-Jordan Nov 14, 2024
f4373dd
minimize calls to grade_set
Alex-Jordan Nov 16, 2024
f251b04
feedback from PR#2617
Alex-Jordan Nov 18, 2024
8f0955f
more feedback from PR#2617
Alex-Jordan Nov 19, 2024
00c7234
handling "0/0" scores for the LMS
Alex-Jordan Nov 19, 2024
918c551
Upgrade to CodeMirror 6.
drgrice1 Oct 6, 2024
58c7d73
Use the Mojolicious template language for CodeMirror when editing ach…
drgrice1 Oct 11, 2024
16bbf2b
efficiency overhaul of grade passback controls, and other feedback fr…
Alex-Jordan Nov 21, 2024
8f50372
Rework of LTI grade pass back.
drgrice1 Nov 19, 2024
5d7062a
Tweak the wording of the `LTICheckPrior` configuration value document…
drgrice1 Nov 21, 2024
cb89fb9
Merge pull request #32 from drgrice1/lti-grades-rework
Alex-Jordan Nov 21, 2024
5354878
Merge branch 'develop' into lti-grades
Alex-Jordan Nov 21, 2024
d9791a8
Merge pull request #2595 from drgrice1/cm6-pg-editor
somiaj Nov 23, 2024
14a6aea
Updates to adding users to newly created courses.
somiaj Nov 9, 2024
07e3a65
Use checkbox list instead of select for admin users.
somiaj Nov 9, 2024
9b83f7b
CourseAdmin add new course tweaks.
somiaj Nov 11, 2024
beb78ea
Ensure all admin users stay unchecked after error.
somiaj Nov 11, 2024
032c304
Remove student ID input from add course page.
somiaj Nov 11, 2024
0a19eed
Tweaks to add course form layout.
somiaj Nov 11, 2024
c1c92bb
Allow adding multiple initial users when adding a new course.
somiaj Nov 13, 2024
1c6f904
Only assign initial users to sets/achievements once.
somiaj Nov 13, 2024
1a0169f
Update langauge for copying admin users as suggsted in the gh review.
somiaj Nov 13, 2024
b10aee4
Add statement for each additional instructor on add course form.
somiaj Nov 17, 2024
6de5027
Add course updates based on feedback.
somiaj Nov 19, 2024
52a38d3
Add course, make passwords text and few more tweaks.
somiaj Nov 20, 2024
f3e0453
Add course admin tool to manage OTP secrets.
somiaj Nov 9, 2024
3d7ab27
Only show small courses initially when managing OTP secrets.
somiaj Nov 12, 2024
aa5d7fd
Use reduced credit when checking if problem is correct in Grades table.
somiaj Sep 28, 2024
1b766f8
Show non-zero status of unattempted problems in grades table.
somiaj Nov 21, 2024
1ea1bb6
Merge pull request #2584 from somiaj/grades-correct-use-reduced-cred
Alex-Jordan Nov 24, 2024
e53d986
ADD support for SAML2 auth
ionparticle Aug 14, 2024
ce836f3
FIX WEBWORK_ROOT_URL typo
ionparticle Aug 14, 2024
b231e44
FIX saml2 plugin code review issues
ionparticle Aug 14, 2024
67b89e0
FIX docker-config/idp whitespace reformat
ionparticle Aug 14, 2024
576b862
Improvements to SAML2 authentication.
drgrice1 Aug 20, 2024
07c0567
Make the saml2 ACS route POST only.
drgrice1 Sep 3, 2024
7b5b884
Add a $saml2{twoFAOnlyWithBypass} option.
drgrice1 Sep 3, 2024
188055f
Add wording for "down" versus "stop" to the comment in docker-compose…
drgrice1 Sep 3, 2024
5130c29
Fix PGML Emphasis.
drgrice1 Nov 23, 2024
0d15519
Merge pull request #2618 from somiaj/manage-otp-secrets
Alex-Jordan Nov 24, 2024
8fa8546
Merge pull request #2619 from somiaj/admin-add-users-to-new-course
Alex-Jordan Nov 24, 2024
ceca849
Merge pull request #2636 from drgrice1/pg-codemirror-emphasis-fix
Alex-Jordan Nov 24, 2024
7dc5de9
Tests, don't show start button when acting as another user.
somiaj Oct 23, 2024
0fd85ba
Disable start new test button instead of hiding it.
somiaj Nov 13, 2024
a694743
Stash disable_start_new_test variable.
somiaj Nov 13, 2024
0d78d47
Add cancel button to create new test version warning.
somiaj Nov 24, 2024
154b597
Merge pull request #2610 from somiaj/test-start-while-acting
drgrice1 Nov 24, 2024
64de78c
Fix invalid regex by moving hyphen to last character.
somiaj Nov 24, 2024
d1cbb38
Merge pull request #2637 from somiaj/fix-regex
drgrice1 Nov 24, 2024
4248777
Merge pull request #2593 from drgrice1/add-saml2-auth-fixes-no-plugin
somiaj Nov 24, 2024
5658804
Remove a local link in the `package-lock.json` file.
drgrice1 Nov 25, 2024
a9bc14a
Merge pull request #2638 from drgrice1/remove-package-lock-local-link
somiaj Nov 25, 2024
734246b
extend grade_all_sets to return a triple including references to the …
Alex-Jordan Nov 26, 2024
3067000
fix a mistake in LTISendScoresAfterDate config options
Alex-Jordan Nov 26, 2024
ac5953b
Add log entries for when grade passback does is blocked
Alex-Jordan Nov 26, 2024
a717243
bring back scalar context output for grade_all_sets
Alex-Jordan Nov 26, 2024
c5fdb38
more log messages for submit_course_grade
Alex-Jordan Nov 28, 2024
f97d4c5
return -1 (not 0) when no sets meet grade passback criteria for cours…
Alex-Jordan Dec 3, 2024
87f6301
Merge pull request #2617 from Alex-Jordan/lti-grades
drgrice1 Dec 3, 2024
711ea44
Fix the invalid set "You must use your LMS to access this set" message.
drgrice1 Nov 26, 2024
b54c470
Switch to using Perl::Tidy version 20240903 (the latest).
drgrice1 Nov 21, 2024
2349421
Run perltidy on the code with the new version.
drgrice1 Oct 21, 2024
4a0953f
Merge pull request #2640 from drgrice1/fix-lti-invalid-set-message
somiaj Dec 3, 2024
0422220
Merge pull request #2632 from drgrice1/perltidy-update
somiaj Dec 10, 2024
46f78c6
Updates to grading tests for other users.
somiaj Nov 26, 2024
8a50103
Updates from review.
somiaj Dec 8, 2024
10abd79
Add warning when view open test of user and can submit answers.
somiaj Dec 10, 2024
434685b
Add alt text to histograms on stats page.
somiaj Nov 17, 2024
aadf024
Split up macros on PODViewer index page.
somiaj Nov 6, 2024
74b7713
Add bin scripts to the wiki PG POD index.
somiaj Nov 24, 2024
cf64d0c
Don't limit macros to predefined lists.
somiaj Nov 24, 2024
e9ef2fa
Merge pull request #2624 from somiaj/alt-text-histograms
Alex-Jordan Dec 11, 2024
54d6c4a
Rework confirmation to creating/recording answers when acting.
somiaj Dec 12, 2024
b005d66
Store acting confirmation in session for proctor logins.
somiaj Dec 12, 2024
129631e
Use stash to access actingConfirmation variables.
somiaj Dec 13, 2024
f0aca96
Don't delete proctor session when waiting for acting proctor confirma…
somiaj Dec 13, 2024
6d8b46e
Maintenance of npm packages.
drgrice1 Dec 13, 2024
3a128d0
Merge pull request #2615 from somiaj/pod-index
Alex-Jordan Dec 16, 2024
44e76a4
Merge pull request #2642 from drgrice1/npm-maintenance-update
somiaj Dec 17, 2024
e02ee86
Eliminate the visually hidden spans injected by javascript.
drgrice1 Nov 19, 2024
57a267d
Make the page help link text in the visually hidden span the title of
drgrice1 Dec 11, 2024
992b831
Make the aria labels for the course configuration page specific to the
drgrice1 Dec 11, 2024
c3cfa8c
Change "Help" links to be more specific.
drgrice1 Dec 11, 2024
3c73acc
Recover syntax highlighting for sample problems.
drgrice1 Nov 25, 2024
8fe3dda
Add leaderboard for achievements.
somiaj Sep 24, 2024
650128d
Update achievement leaderboard from pr review.
somiaj Nov 14, 2024
104efda
Apply improvement to limit database calls in leaderboard.
somiaj Dec 16, 2024
a672901
Use buttons instead of links for badges in leaderboard.
somiaj Dec 17, 2024
14f44e0
Apply suggested styling to leaderboard table.
somiaj Dec 17, 2024
69fba59
Check for LMS ID first when authenticating from LMS
Alex-Jordan Dec 17, 2024
7fbc183
adjustments to date extension achievement items
Alex-Jordan Jul 28, 2024
4cc3d5c
adjustment to reduced credit date extension
Alex-Jordan Jul 28, 2024
be2fe03
remove unnecessary parentheses
Alex-Jordan Nov 23, 2024
c43a105
ensure seed does not overflow
Alex-Jordan Nov 23, 2024
5799ccc
Tell users about achievements that will randomize problems if used af…
Alex-Jordan Dec 17, 2024
f455e39
import after in achievement items where needed
Alex-Jordan Dec 17, 2024
af70879
Merge pull request #2631 from drgrice1/aria-spans
Alex-Jordan Dec 17, 2024
7e386f9
Merge pull request #2639 from drgrice1/pg-codemirror-static
Alex-Jordan Dec 17, 2024
e34631c
more efficient database accessing
Alex-Jordan Dec 17, 2024
8eab14f
Suggestions to make using an existing user with given LMS id work.
drgrice1 Dec 18, 2024
828fb19
Merge pull request #33 from drgrice1/lti-userids-suggestion
Alex-Jordan Dec 18, 2024
a34aa5b
Remove `bin/old_scripts`.
drgrice1 Dec 18, 2024
a66592f
Merge pull request #2647 from drgrice1/remove-old-scripts
somiaj Dec 18, 2024
a40c26a
Change the `timestamp` column in the past answer table to `BIGINT`.
drgrice1 Dec 18, 2024
f36d1c5
Merge pull request #2648 from drgrice1/fix-past-answer-year-2038-bug
somiaj Dec 19, 2024
643debd
Make JITAR disabled problems disabled without javascript.
drgrice1 Jan 15, 2025
fe3e59f
Merge pull request #2645 from Alex-Jordan/lti-userids
somiaj Jan 16, 2025
37385f7
Create a local name for a permission level which is not defined in
taniwallach Nov 21, 2024
7347812
Fix the maketext call for an uknown permission level.
drgrice1 Dec 18, 2024
5a81a74
Add support for wide characters in passwords.
taniwallach Nov 21, 2024
1e0ee36
Create a utf8Crypt method to handle UTF-8 encoded password hashing.
drgrice1 Nov 22, 2024
3219060
Merge pull request #2467 from Alex-Jordan/achievement-date-extensions
drgrice1 Jan 17, 2025
7e1fa1a
Change the default value of `$CookieSecure` to 1.
drgrice1 Jan 22, 2025
fd501c8
Merge pull request #2658 from drgrice1/default-cookie-secure
somiaj Jan 22, 2025
6fbdae6
Merge pull request #2659 from drgrice1/wide-char-passwords-tweaks
somiaj Jan 28, 2025
3a18a63
Merge pull request #2656 from drgrice1/jitar-disabled-problem-no-jquery
pstaabp Jan 28, 2025
a04aad1
Add achievement items that will modify reduced scoring.
somiaj Aug 16, 2024
55983f1
Merge pull request #2660 from drgrice1/unknown-permission-levels
Alex-Jordan Feb 1, 2025
048db57
change introduction to feedback emails
Alex-Jordan Dec 18, 2024
7cf323d
trim and alphabetize URLs in feedback emails
Alex-Jordan Feb 1, 2025
e7f0af0
make it so URLs in feedback emails always show the problem grader
Alex-Jordan Feb 1, 2025
aed3a73
Construct the emailable URL directly and don't use systemLink for that.
drgrice1 Feb 1, 2025
313eb68
Fix a debugging messages in the `formatRenderedProblem` method.
drgrice1 Jan 25, 2025
b1f4114
Merge pull request #34 from drgrice1/email-format-suggested-changes
Alex-Jordan Feb 2, 2025
a1b2955
Merge pull request #2523 from somiaj/reduced-cred-achievement-items
Alex-Jordan Feb 2, 2025
56d153d
Merge pull request #2579 from somiaj/achievement-leader-board
Alex-Jordan Feb 2, 2025
ada1b90
Merge pull request #2641 from somiaj/grade-test-for-others
Alex-Jordan Feb 2, 2025
7a31cc9
make only outer edge of achivements images transparent and fix a miss…
Alex-Jordan Feb 2, 2025
1506512
Merge pull request #2665 from Alex-Jordan/achievement-images
drgrice1 Feb 2, 2025
f1da2b1
Merge pull request #2662 from drgrice1/bugfix/format-rendered-debug-m…
pstaabp Feb 4, 2025
a7ab729
Switch the problem editor to use the debug format.
drgrice1 Feb 4, 2025
8699e27
Rework problem data (or the persistence hash).
drgrice1 Aug 5, 2023
8f0253a
Recompute timezone adjustments for a given date.
drgrice1 Jan 10, 2025
6f094c0
Merge pull request #2666 from drgrice1/pg-editor-debug-format
pstaabp Feb 11, 2025
39e62bf
Merge pull request #2649 from Alex-Jordan/email-format
drgrice1 Feb 11, 2025
db2c703
Merge pull request #2655 from drgrice1/timezone-adjust
pstaabp Feb 11, 2025
28b21ed
Merge pull request #2644 from drgrice1/persistent-data-rework
pstaabp Feb 11, 2025
82153a1
Split the CourseIntegrityCheck.pm module into two parts.
drgrice1 Aug 19, 2023
d9b8fcb
Add the capability of changing database field types when upgrading th…
drgrice1 Dec 19, 2024
a96f56a
Report the types of the fields that differ.
drgrice1 Jan 16, 2025
939f895
Don't show the "This problem uses the same source file as number N." …
drgrice1 Feb 13, 2025
fc7f210
Copy set level proctors when adding a course and copying sets.
drgrice1 Feb 13, 2025
a4806de
Make the Library Browser "Hints", "Solutions", and "Include Contrib" …
drgrice1 Feb 14, 2025
f78042a
Add the "Grader" header back to the Assignments when the "Grade Probl…
drgrice1 Feb 14, 2025
da75967
Merge pull request #2674 from drgrice1/bugfix/problem-list-missing-he…
Alex-Jordan Feb 18, 2025
d455f7b
Merge pull request #2673 from drgrice1/set-maker-checks-on
Alex-Jordan Feb 18, 2025
45224fc
Merge pull request #2671 from drgrice1/grouping-sets-can-be-repeated
Alex-Jordan Feb 18, 2025
d3997e0
Merge pull request #2650 from drgrice1/course-integrity-check-rework
Alex-Jordan Feb 18, 2025
ab56984
Merge pull request #2672 from drgrice1/copy-set-level-proctors-with-sets
somiaj Feb 18, 2025
e5fbbe2
When sorting achievements, make level achievements last.
somiaj Dec 16, 2024
555cb4e
Clarify that level achievements are listed and evaluated last.
somiaj Feb 18, 2025
b45b5ae
Actually handle failure to find a problem from a grouping set gracefu…
drgrice1 Feb 13, 2025
6fda742
Move achievement item use form to ProblemSet page.
somiaj Jan 23, 2025
a2bdaed
Updates to achievement items from feedback.
somiaj Feb 2, 2025
d663d9c
Remove use button from surprise achievement item.
somiaj Feb 2, 2025
6121f56
Use a hash vs an array to store user problems when using achievement …
somiaj Feb 2, 2025
3625914
Don't show use reward button when achievements are enabled but achiev…
somiaj Feb 2, 2025
9b53849
Apply suggested changes from drgrice1 in PR review.
somiaj Feb 16, 2025
304886f
Remove number of remaining items from Surprise.
somiaj Feb 16, 2025
58c747b
Merge pull request #2664 from somiaj/change-achievement-items-applica…
Alex-Jordan Feb 18, 2025
55b342b
Catch network errors that result from a keyset URL not working properly.
drgrice1 Feb 18, 2025
2528145
Switch the feedback emails to HTML.
drgrice1 Feb 16, 2025
63d59f8
Bring back the previous text message for a text fallback.
drgrice1 Feb 17, 2025
fc8515b
Remove the "click me" link.
drgrice1 Feb 18, 2025
a4100dd
Small typo on the Sample Problem category
pstaabp Feb 25, 2025
091efac
Merge pull request #2678 from pstaabp/sample-problem-typo
somiaj Feb 25, 2025
a27d643
Merge pull request #2675 from drgrice1/feedback-email-html
pstaabp Feb 25, 2025
c988719
Merge pull request #2670 from drgrice1/graceful-grouping-set-failure
Alex-Jordan Feb 25, 2025
d77931e
Merge pull request #2676 from drgrice1/lti-1_3-keyset-network-error
Alex-Jordan Feb 25, 2025
bb23dbc
PG Problem Editor file selector
drgrice1 Feb 19, 2025
a8f0868
Update the pg-codemirror-editor to pull in a bugfix.
drgrice1 Mar 1, 2025
79dced1
Merge pull request #2677 from drgrice1/problem-editor-file-chooser
pstaabp Mar 4, 2025
06e1712
Merge pull request #2679 from drgrice1/pg-codemirror-editor-update
pstaabp Mar 4, 2025
f6fbbf3
Check paths before rendering static files.
drgrice1 Mar 13, 2025
4184aae
Merge pull request #2682 from drgrice1/check-download-file-paths
dlglin Mar 13, 2025
e074766
Add missing maketext call.
drgrice1 Mar 14, 2025
0571001
when copying a course including its sets, don't copy the lis_source_i…
Alex-Jordan Mar 18, 2025
e6abfa5
Merge pull request #2685 from drgrice1/add-missing-maketext
Alex-Jordan Mar 18, 2025
ef05f1a
Merge pull request #2643 from somiaj/sort-level-achievements-last
Alex-Jordan Mar 18, 2025
0243e2a
Update the strings in the webwork2.pot file.
drgrice1 Mar 18, 2025
370f2b7
Properly quote file names in the regexp used to extract backup times.
drgrice1 Mar 18, 2025
a80be41
Do not consider parentheses to be illegal characters in file names in…
drgrice1 Mar 18, 2025
f6d0dbd
Merge pull request #2688 from drgrice1/problem-editor-backup-times-qu…
pstaabp Mar 25, 2025
fa947ff
Merge pull request #2687 from drgrice1/localization-update
pstaabp Mar 25, 2025
ded52af
Merge pull request #2686 from Alex-Jordan/no-copy-lis-id
pstaabp Mar 25, 2025
747b083
Rework the warning and exception handling in the config file safe com…
drgrice1 Mar 30, 2025
3b9a306
Fix an issue with conflicting JSON modules in use in FormatRenderedPr…
drgrice1 Apr 2, 2025
a4388bf
Instead of a local `die` handler share a variable to the safe compart…
drgrice1 Apr 3, 2025
5e81aa9
Replace all of webwork2's direct `JSON` usage with `Mojo::JSON`.
drgrice1 Apr 4, 2025
0bfc8e0
Completely remove the `JSON` dependency by switching PG to using `Moj…
drgrice1 Apr 4, 2025
4970e0e
Merge pull request #2689 from drgrice1/improve-course-environment-err…
Alex-Jordan Apr 5, 2025
6395021
Merge pull request #2692 from drgrice1/format-rendered-problem-json-c…
Alex-Jordan Apr 5, 2025
0c28eae
Sanitize the courseID from either the URL path or the request paramet…
drgrice1 Apr 2, 2025
b8e663a
Merge pull request #2691 from drgrice1/sanitize-course-name
somiaj Apr 8, 2025
b930fe0
Add a couple of `use Mojo:JSON` statements that are needed.
drgrice1 Apr 6, 2025
2a7a209
Also remove the json packages from the docker build.
drgrice1 Apr 8, 2025
0030b92
enhance doc2 for achievements
Alex-Jordan Apr 11, 2025
7b813ba
Merge pull request #2695 from drgrice1/json-issues
Alex-Jordan Apr 15, 2025
ad18de4
Fix random order page change issue.
drgrice1 Apr 11, 2025
8ee41c0
Merge pull request #2701 from Alex-Jordan/achievement-help
somiaj Apr 15, 2025
1de70d2
Merge pull request #2699 from drgrice1/gateway-random-order-page-change
somiaj Apr 15, 2025
e93db54
Restore previous behavior of the "Scroll of Resurrection" achievement…
drgrice1 Apr 18, 2025
7516cc3
Adjust the message that is displayed when the scroll of resurrection …
drgrice1 Apr 18, 2025
9fb8bb6
Also revert changes to the "Necromancer Charm".
drgrice1 Apr 18, 2025
688fd34
Merge pull request #2707 from drgrice1/resurrection-achievement-reset
Alex-Jordan Apr 21, 2025
f0256d7
Fix the import form date shift input on the sets manager page.
drgrice1 Apr 22, 2025
2d4cbcc
Merge pull request #2717 from drgrice1/import-date-shift-fix
pstaabp Apr 26, 2025
8edb453
Merge remote-tracking branch 'origin/main' into WeBWorK-2.20
drgrice1 Apr 27, 2025
684b673
Improve loading time for the achievements leaderboard.
drgrice1 Apr 20, 2025
ebd2e99
Speed up deleting of global user achievements.
drgrice1 Apr 20, 2025
f3c27bf
Fix memory leaks.
drgrice1 Apr 14, 2025
ba749a4
Instead of weakening the controller in the around_action hook, ensure
drgrice1 Apr 17, 2025
0399c10
Merge pull request #2703 from drgrice1/memory-leaks
dlglin Apr 29, 2025
a6abcd4
Merge pull request #2709 from drgrice1/achievement-leaderboard-speed-up
dlglin Apr 29, 2025
f18833f
Merge pull request #2710 from drgrice1/delete-global-user-achievement…
dlglin Apr 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions .github/workflows/check-formats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ on:
jobs:
perltidy:
name: Check Perl file formatting with perltidy
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
container:
image: perl:5.34
image: perl:5.38
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: cpanm -n Perl::Tidy@20220613
run: cpanm -n Perl::Tidy@20240903
- name: Run perltidy
shell: bash
run: |
Expand All @@ -30,7 +30,7 @@ jobs:

prettier:
name: Check JavaScript, style, and HTML file formatting with prettier
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down
1 change: 0 additions & 1 deletion .perltidyrc
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,3 @@
-nlop # No logical padding (this causes mixed tabs and spaces)
-wn # Weld nested containers
-xci # Extended continuation indentation
-vxl='q' # No vertical alignment of qw quotes
6 changes: 2 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ RUN echo Cloning branch $PG_BRANCH branch from $PG_GIT_URL \
FROM ubuntu:24.04

ENV WEBWORK_URL=/webwork2 \
WEBWORK_ROOT_URL=http://localhost::8080 \
WEBWORK_ROOT_URL=http://localhost:8080 \
WEBWORK_SMTP_SERVER=localhost \
[email protected] \
WEBWORK_TIMEZONE=America/New_York \
Expand Down Expand Up @@ -106,9 +106,6 @@ RUN apt-get update \
libhttp-async-perl \
libiterator-perl \
libiterator-util-perl \
libjson-maybexs-perl \
libjson-perl \
libjson-xs-perl \
liblocale-maketext-lexicon-perl \
libmariadb-dev \
libmath-random-secure-perl \
Expand Down Expand Up @@ -190,6 +187,7 @@ RUN cpanm install -n \
DBD::MariaDB \
Perl::Tidy@20220613 \
Archive::Zip::SimpleZip \
Net::SAML2 \
&& rm -fr ./cpanm /root/.cpanm /tmp/*

# ==================================================================
Expand Down
4 changes: 1 addition & 3 deletions DockerfileStage1
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,6 @@ RUN apt-get update \
libhttp-async-perl \
libiterator-perl \
libiterator-util-perl \
libjson-maybexs-perl \
libjson-perl \
libjson-xs-perl \
liblocale-maketext-lexicon-perl \
libmariadb-dev \
libmath-random-secure-perl \
Expand Down Expand Up @@ -152,6 +149,7 @@ RUN cpanm install -n \
DBD::MariaDB \
Perl::Tidy@20220613 \
Archive::Zip::SimpleZip \
Net::SAML2 \
&& rm -fr ./cpanm /root/.cpanm /tmp/*

# ==================================================================
2 changes: 1 addition & 1 deletion DockerfileStage2
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ RUN echo Cloning branch $PG_BRANCH branch from $PG_GIT_URL \
FROM webwork-base:forWW219

ENV WEBWORK_URL=/webwork2 \
WEBWORK_ROOT_URL=http://localhost::8080 \
WEBWORK_ROOT_URL=http://localhost:8080 \
WEBWORK_SMTP_SERVER=localhost \
[email protected] \
WEBWORK_TIMEZONE=America/New_York \
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
$WW_VERSION = '2.19';
$WW_VERSION = '2.19+develop';
$WW_COPYRIGHT_YEARS = '1996-2024';

1;
2 changes: 1 addition & 1 deletion assets/pg/PGMLLab/PGML-lab.pg
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ TEXT(tag(
>]{ [ style => 'border: 1px solid black; padding: 1rem;' ] }

One useful application is when using the parserMultiAnswer.pl macro with
singleResult answers. Wrap the answers in in a div tag with the
singleResult answers. Wrap the answers in a div tag with the
"ww-feedback-container" class to tell PG where to place the feedback
button. The feedback button will be placed at the end of the containing div
tag.
Expand Down
6 changes: 3 additions & 3 deletions assets/pg/Student_Orientation/setStudent_Orientation.def
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
assignmentType = default
openDate = 01/01/2024 at 12:00am
reducedScoringDate = 12/31/2124 at 11:59pm
dueDate = 12/31/2124 at 11:59pm
answerDate = 12/31/2124 at 11:59pm
reducedScoringDate = 12/31/2045 at 11:59pm
dueDate = 12/31/2045 at 11:59pm
answerDate = 12/31/2045 at 11:59pm
enableReducedScoring = N
paperHeaderFile = defaultHeader
screenHeaderFile = defaultHeader
Expand Down
2 changes: 0 additions & 2 deletions bin/OPL-update-legacy
Original file line number Diff line number Diff line change
Expand Up @@ -539,8 +539,6 @@ if($canopenfile) {
}
#### End of taxonomy/taxonomy2

use JSON;

#### Save the official taxonomy in json format
my $webwork_htdocs = $ce->{webworkDirs}{htdocs};
my $file = "$webwork_htdocs/DATA/tagging-taxonomy.json";
Expand Down
4 changes: 2 additions & 2 deletions bin/OPLUtils.pm
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ use warnings;
use File::Find::Rule;
use File::Basename;
use open qw/:std :utf8/;
use JSON;
use Mojo::JSON qw(encode_json);

our @EXPORT = ();
our @EXPORT_OK =
Expand Down Expand Up @@ -373,7 +373,7 @@ sub build_library_textbook_tree {
sub writeJSONtoFile {
my ($data, $filename) = @_;

my $json = JSON->new->utf8->encode($data);
my $json = encode_json($data);
open my $fh, ">", $filename or die "Cannot open $filename";
print $fh $json;
close $fh;
Expand Down
3 changes: 0 additions & 3 deletions bin/check_modules.pl
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,6 @@ =head1 DESCRIPTION
IO::Socket::SSL
Iterator
Iterator::Util
JSON
JSON::MaybeXS
Locale::Maketext::Lexicon
Locale::Maketext::Simple
LWP::Protocol::https
Expand Down Expand Up @@ -165,7 +163,6 @@ =head1 DESCRIPTION
'LWP::Protocol::https' => 6.06,
'Mojolicious' => 9.34,
'Net::SSLeay' => 1.46,
'Perl::Tidy' => 20220613,
'SQL::Abstract' => 2.000000
);

Expand Down
2 changes: 1 addition & 1 deletion bin/crypt_passwords_in_classlist.pl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ BEGIN

use lib "$ENV{WEBWORK_ROOT}/lib";

use WeBWorK::Utils qw(cryptPassword);
use WeBWorK::Utils qw(cryptPassword);
use WeBWorK::File::Classlist qw(parse_classlist write_classlist);

unless (@ARGV == 1) {
Expand Down
33 changes: 27 additions & 6 deletions bin/dev_scripts/PODtoHTML.pm
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,29 @@ use Pod::Simple::Search;
use Mojo::Template;
use Mojo::DOM;
use Mojo::Collection qw(c);
use File::Path qw(make_path);
use File::Basename qw(dirname);
use File::Path qw(make_path);
use File::Basename qw(dirname);
use IO::File;
use POSIX qw(strftime);

use WeBWorK::Utils::PODParser;

our @sections = (
bin => 'Scripts',
conf => 'Config Files',
doc => 'Documentation',
bin => 'Scripts',
macros => 'Macros',
lib => 'Libraries',
macros => 'Macros'
);
our %macro_names = (
answers => 'Answers',
contexts => 'Contexts',
core => 'Core',
deprecated => 'Deprecated',
graph => 'Graph',
math => 'Math',
misc => 'Miscellaneous',
parsers => 'Parsers',
ui => 'User Interface'
);

sub new {
Expand All @@ -52,6 +62,7 @@ sub new {
idx => {},
section_hash => $section_hash,
section_order => $section_order,
macros_hash => {},
};
return bless $self, $class;
}
Expand Down Expand Up @@ -131,7 +142,14 @@ sub update_index {
$subdir =~ s|/.*$||;
my $idx = $self->{idx};
my $sections = $self->{section_hash};
if (exists $sections->{$subdir}) {
if ($subdir eq 'macros') {
$idx->{macros} = [];
if ($pod_name =~ m!^(.+)/(.+)$!) {
push @{ $self->{macros_hash}{$1} }, [ $html_rel_path, $2 ];
} else {
push @{ $idx->{doc} }, [ $html_rel_path, $pod_name ];
}
} elsif (exists $sections->{$subdir}) {
push @{ $idx->{$subdir} }, [ $html_rel_path, $pod_name ];
} else {
warn "no section for subdir '$subdir'\n";
Expand All @@ -152,6 +170,9 @@ sub write_index {
pod_index => $self->{idx},
sections => $self->{section_hash},
section_order => $self->{section_order},
macros => $self->{macros_hash},
macros_order => [ sort keys %{ $self->{macros_hash} } ],
macro_names => \%macro_names,
date => strftime('%a %b %e %H:%M:%S %Z %Y', localtime)
}
);
Expand Down
4 changes: 2 additions & 2 deletions bin/dev_scripts/generate-ww-pg-pod.pl
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ =head1 DESCRIPTION
use Mojo::Template;
use IO::File;
use File::Copy;
use File::Path qw(make_path remove_tree);
use File::Path qw(make_path remove_tree);
use File::Basename qw(dirname);
use Cwd qw(abs_path);
use Cwd qw(abs_path);

use lib dirname(dirname(dirname(__FILE__))) . '/lib';
use lib dirname(__FILE__);
Expand Down
32 changes: 29 additions & 3 deletions bin/dev_scripts/pod-templates/category-index.mt
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,44 @@
</div>
</div>
%
% my ($index, $content) = ('', '');
% my ($index, $macro_index, $content, $macro_content) = ('', '', '', '');
% for my $macro (@$macros_order) {
% my $new_index = begin
<a href="#macro-<%= $macro %>" class="nav-link"><%= $macro_names->{$macro} // $macro %></a>
% end
% $macro_index .= $new_index->();
% my $new_content = begin
<h3><a href="#_podtop_" id="macro-<%= $macro %>"><%= $macro_names->{$macro} // $macro %></a></h3>
<div class="list-group mb-2">
% for my $file (sort { $a->[1] cmp $b->[1] } @{ $macros->{$macro} }) {
<a href="<%= $file->[0] %>" class="list-group-item list-group-item-action"><%= $file->[1] %></a>
% }
</div>
% end
% $macro_content .= $new_content->();
% }
% for my $section (@$section_order) {
% next unless defined $pod_index->{$section};
% my $new_index = begin
<a href="#<%= $section %>" class="nav-link"><%= $sections->{$section} %></a>
% if ($section eq 'macros') {
<div class="nav flex-column ms-3">
<%= $macro_index %>
</div>
% }
% end
% $index .= $new_index->();
% my $new_content = begin
<h2><a href="#_podtop_" id="<%= $section %>"><%= $sections->{$section} %></a></h2>
<div class="list-group mb-2">
% for my $file (sort { $a->[1] cmp $b->[1] } @{ $pod_index->{$section} }) {
<a href="<%= $file->[0] %>" class="list-group-item list-group-item-action"><%= $file->[1] %></a>
% if ($section eq 'macros') {
<%= $macro_content =%>
% } else {
% for my $file (sort { $a->[1] cmp $b->[1] } @{ $pod_index->{$section} }) {
<a href="<%= $file->[0] %>" class="list-group-item list-group-item-action">
<%= $file->[1] %>
</a>
% }
% }
</div>
% end
Expand Down
7 changes: 3 additions & 4 deletions bin/dev_scripts/run-perltidy.pl
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ =head1 DESCRIPTION

=head1 OPTIONS

For this script to work the the .perltidyrc file in the webwork2 root directory
For this script to work the .perltidyrc file in the webwork2 root directory
must be readable. Note that the webwork2 root directory is automatically
detected.

Expand Down Expand Up @@ -63,9 +63,8 @@ =head1 OPTIONS

my $webwork_root = curfile->dirname->dirname->dirname;

die "Version 20220613 or newer of perltidy is required for this script.\n"
. "The installed version is $Perl::Tidy::VERSION.\n"
unless $Perl::Tidy::VERSION >= 20220613;
die "Version 20240903 of perltidy is required for this script.\nThe installed version is $Perl::Tidy::VERSION.\n"
unless $Perl::Tidy::VERSION == 20240903;
die "The .perltidyrc file in the webwork root directory is not readable.\n"
unless -r "$webwork_root/.perltidyrc";

Expand Down
6 changes: 3 additions & 3 deletions bin/download-OPL-metadata-release.pl
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
use File::Path;
use Archive::Tar;
use Mojo::File;
use JSON;
use Mojo::JSON qw(decode_json);

BEGIN {
use Mojo::File qw(curfile);
use Env qw(WEBWORK_ROOT);
use Env qw(WEBWORK_ROOT);

$WEBWORK_ROOT = curfile->dirname->dirname;
}
Expand All @@ -36,7 +36,7 @@ BEGIN
File::Fetch->new(uri => 'https://api.github.com/repos/openwebwork/webwork-open-problem-library/releases/latest');
my $file = $releaseDataFF->fetch(to => $ce->{webworkDirs}{tmp}) or die $releaseDataFF->error;
my $path = Mojo::File->new($file);
my $releaseData = JSON->new->utf8->decode($path->slurp);
my $releaseData = decode_json($path->slurp);
$path->remove;

my $releaseTag = $releaseData->{tag_name};
Expand Down
2 changes: 1 addition & 1 deletion bin/dump-OPL-tables.pl
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

BEGIN {
use Mojo::File qw(curfile);
use Env qw(WEBWORK_ROOT);
use Env qw(WEBWORK_ROOT);

$WEBWORK_ROOT = curfile->dirname->dirname;
}
Expand Down
2 changes: 1 addition & 1 deletion bin/dump-past-answers.pl
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ =head1 DESCRIPTION

BEGIN {
use Mojo::File qw(curfile);
use Env qw(WEBWORK_ROOT);
use Env qw(WEBWORK_ROOT);
$WEBWORK_ROOT = curfile->dirname->dirname;
}

Expand Down
2 changes: 1 addition & 1 deletion bin/generate-OPL-set-def-lists.pl
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ =head1 DESCRIPTION

BEGIN {
use Mojo::File qw(curfile);
use Env qw(WEBWORK_ROOT);
use Env qw(WEBWORK_ROOT);

$WEBWORK_ROOT = curfile->dirname->dirname;
}
Expand Down
4 changes: 2 additions & 2 deletions bin/importClassList.pl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

BEGIN {
use Mojo::File qw(curfile);
use Env qw(WEBWORK_ROOT);
use Env qw(WEBWORK_ROOT);

$WEBWORK_ROOT = curfile->dirname->dirname;
}
Expand All @@ -31,7 +31,7 @@ BEGIN

use WeBWorK::DB qw(check_user_id);
use WeBWorK::File::Classlist;
use WeBWorK::Utils qw(cryptPassword);
use WeBWorK::Utils qw(cryptPassword);
use WeBWorK::File::Classlist qw(parse_classlist);

if ((scalar(@ARGV) != 2)) {
Expand Down
2 changes: 1 addition & 1 deletion bin/load-OPL-global-statistics.pl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

BEGIN {
use Mojo::File qw(curfile);
use Env qw(WEBWORK_ROOT);
use Env qw(WEBWORK_ROOT);

$WEBWORK_ROOT = curfile->dirname->dirname;
}
Expand Down
Loading