Skip to content
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

[pull] master from ngandrass:master #4

Open
wants to merge 216 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
ca4b890
Add cli script to install webservice.
melanietreitinger Mar 4, 2024
c8d008d
Rename installwebservice CLI script to autoinstall
ngandrass Mar 6, 2024
f3ed37c
cli/autoinstall: Add CLI, fix imports, allow customization of created…
ngandrass Mar 6, 2024
2864758
cli/autoinstall: Set a password and proper defaults for created user
ngandrass Mar 6, 2024
11c534c
cli/autoinstall: Add more verbose script output
ngandrass Mar 6, 2024
0945977
cli/autoinstall: Automatically set corresponding configuration parame…
ngandrass Mar 6, 2024
7a6e7bf
cli/autoinstall: Add PHPDoc comments for constants
ngandrass Mar 6, 2024
032d9e4
cli/autoinstall: Move CLI functions to local class and replace testin…
ngandrass Mar 6, 2024
236d6d7
autoinstall: Add PHPDoc
ngandrass Mar 6, 2024
5d506ff
autoinstall: Check if the plugin is already configured and abort, unl…
ngandrass Mar 6, 2024
f343c7a
autoinstall: Prepare for automatic install routine from plugin settin…
ngandrass Mar 6, 2024
0b30870
autoinstall: Provide language string to make moodle-plugin-ci happy :)
ngandrass Mar 6, 2024
548b04c
autoinstall: Add missing PHPDoc comment
ngandrass Mar 6, 2024
19a0570
autoinstall: Create autoinstall admin UI page with quick form, access…
ngandrass Mar 7, 2024
70d3d1a
autoinstall: Make PHPDoc happy again ;)
ngandrass Mar 7, 2024
7755ca2
autoinstall: Fix language string in admin settings UI
ngandrass Mar 7, 2024
85d6161
Throw error message on job creation if plugin is not fully configured…
ngandrass Mar 14, 2024
f548cc9
autoinstall: Polish integration into admin UI
ngandrass Mar 14, 2024
08a2d7e
autoinstall: Add worker url as additional parameter
ngandrass Mar 14, 2024
08d525f
Document automatic configuration feature and move manual configuratio…
ngandrass Mar 14, 2024
5aecf01
Fix namespace for two external class tests
ngandrass Mar 14, 2024
7d92bfc
autoinstall: Create unit tests
ngandrass Mar 14, 2024
dacfba5
Make autoinstall result bold and do not open autoinstall dialog in ne…
ngandrass Apr 9, 2024
f1f93e6
Create welcome message with setup instructions on plugin installation
ngandrass Apr 9, 2024
b6bf939
Prepare changelog for upcoming release
ngandrass Apr 9, 2024
5737f43
Merge pull request #15 from melanietreitinger/dev-cli-install-webservice
ngandrass Apr 9, 2024
265f4d7
Apply default plugin settings during autoinstall
ngandrass Apr 9, 2024
e2f46b5
Add help texts to autoinstall form
ngandrass Apr 9, 2024
9a6aef3
Suggest using the continue button for manual configuration during ins…
ngandrass Apr 9, 2024
6c696b7
Release version 1.2.5 (2024040900)
ngandrass Apr 9, 2024
4a6d408
Widen CI matrix to execute testes on Moodle 4.4 with PHP 8.1 to 8.3, …
ngandrass Apr 29, 2024
39b871f
Remove deprecated set_blocking() call on asynchronous_backup_task obj…
ngandrass Apr 29, 2024
a1ca815
Release version 1.2.6 (2024042900)
ngandrass Apr 29, 2024
003e30c
Fix inlining of images with URL encoded filenames
ngandrass May 8, 2024
7012561
Fix inlining of Moodle theme icons
ngandrass May 8, 2024
ea9ae2e
Release development version v1.2.6+2024050800
ngandrass May 8, 2024
093bb97
Prevent PHP warning during image MIME type lookup try
ngandrass May 13, 2024
c468344
Fix PHP warning on quiz_archiver_generate_attempt_report webservice call
ngandrass May 13, 2024
f2809b0
Fix quiz header / summary table injection in Moodle 4.4+
ngandrass May 13, 2024
e4fc13a
Replace deprecated Moodle 4.4+ language strings
ngandrass May 13, 2024
4671faf
Release version 1.2.7 (2024051300)
ngandrass May 13, 2024
168e984
Cleanup report generation code
ngandrass May 28, 2024
c965041
Create basic tests for report generation
ngandrass May 28, 2024
e8e6a81
Fix typo in Report::get_attempt_attachments_metadata function name
ngandrass May 28, 2024
bb80fde
Document testing procedures
ngandrass May 28, 2024
bbeed9b
Extend Report tests to attachments
ngandrass May 28, 2024
3f61a78
Largely expand tests of report generation class
ngandrass May 28, 2024
a55b458
Extend archive job tests
ngandrass May 28, 2024
4454498
Check TSPManager::wants_tsp_timestamp during tests
ngandrass May 28, 2024
76fe303
Create tests for RemoteArchiveWorker and TimeStampProtocolClient classes
ngandrass May 28, 2024
e54281a
Create extensive FileManager tests
ngandrass May 29, 2024
2edf5f4
Create extensive BackupManager tests
ngandrass May 29, 2024
2b1a414
Add tests for archive filename generation and job status value conver…
ngandrass May 29, 2024
bf9af87
Fix autoinstall admin UI form for Moodle 4.1 (LTS)
ngandrass May 29, 2024
d180387
Adjust tests to be compatible with older PHPUnit versions and Moodle …
ngandrass May 29, 2024
7532610
Move Report test includes to test class
ngandrass May 29, 2024
30d00c7
Flatten tests directory
ngandrass May 29, 2024
9a0d771
Always require externallib before patching Moodle 4.1 (LTS) legacy ex…
ngandrass May 29, 2024
9c00182
Update testing docs
ngandrass May 29, 2024
85f580c
Fix FileManager invalid attempt during artifact extraction test case …
ngandrass May 29, 2024
8310497
Fix webservice token generation on Moodle 4.1 (LTS)
ngandrass May 29, 2024
bd46b3a
Release version 1.2.8 (2024052900)
ngandrass May 29, 2024
4dc47d3
Synchronize default job timeout setting with quiz archive worker and …
ngandrass Jul 4, 2024
1b1992d
Describe different job timeout settings inside the README
ngandrass Jul 4, 2024
fd86130
Fix display of variables in archive / report names help texts in Mood…
ngandrass Jul 8, 2024
be6f442
Release version 1.2.9 (2024070800)
ngandrass Jul 8, 2024
662177d
adminui/autoinstall: Fix modification of NO_OUTPUT_BUFFERING constant…
ngandrass Jul 8, 2024
9f44e9c
Fix codestyle errors in db files
ngandrass Jul 8, 2024
9413d1e
Refactor code to conform with Moodle coding style (errors first)
ngandrass Jul 8, 2024
0f89054
Refactor unit tests to reflect new APIs due to codestyle refactoring
ngandrass Jul 8, 2024
1a151c7
Re-enable Moodle code checker for CI runs
ngandrass Jul 8, 2024
5e8c22d
Fix missing characters in @license PHPDoc of some files
ngandrass Jul 8, 2024
e9acd8f
End all inline comments with a dot
ngandrass Jul 8, 2024
5b96eae
Fix warnings about superfluous MOODLE_INTERNAL checks
ngandrass Jul 9, 2024
3a6f73e
Fix implicitly nulled function argument type
ngandrass Jul 9, 2024
0364d17
Reformat / break all lines that exceed the warning threshold of 132 c…
ngandrass Jul 9, 2024
d9e3b85
Prepend dummy MDL tracker number to TODOs
ngandrass Jul 9, 2024
3d9882f
Revert cli/autoinstall.php CLI_SCRIPT definition to old define syntax…
ngandrass Jul 9, 2024
b0bf188
Ignore language files from coding style checks to keep proper string …
ngandrass Jul 9, 2024
30eb745
Declare test classes as final
ngandrass Jul 9, 2024
1db176e
Rename test classes and files to match lower-case PHPUnit test name
ngandrass Jul 9, 2024
0e4443f
Attach coverage annotations to all PHPUnit test cases
ngandrass Jul 9, 2024
afc0de6
Make PHPUnit data providers static
ngandrass Jul 9, 2024
aea6edd
Add missing return type declarations to some PHPUnit functions
ngandrass Jul 9, 2024
e1edc8c
Improve English and German translations
ngandrass Jul 9, 2024
e22f9d8
Release version 1.2.10 (2024070900)
ngandrass Jul 9, 2024
329dad2
Fix image inlining for files with non-lowercase file extensions
ngandrass Jul 16, 2024
a49828c
Move "Keep HTML files" setting to a lower location in quiz archive fo…
ngandrass Jul 17, 2024
5c0fd66
Fix conditional hide/show of retention time in quiz archive form
ngandrass Jul 17, 2024
7ad679b
Optionally scale down large images within quiz reports to preserve sp…
ngandrass Jul 17, 2024
edddad7
Fix code indentation in RemoteArchiveWorker class
ngandrass Jul 18, 2024
db37e15
Rename image_resize settings to image_optimize
ngandrass Jul 18, 2024
0f4376c
Optionally compress images within quiz reports to preserve space and …
ngandrass Jul 18, 2024
331d021
Add comment separators to improve readability of settings.php and arc…
ngandrass Jul 18, 2024
171a57d
Write documentation for image optimization / compression feature
ngandrass Jul 18, 2024
d12a48b
Release version 1.3.0 (2024071800)
ngandrass Jul 18, 2024
560be66
Fix missing Moodle version number in CHANGELOG for v1.3.0 release
ngandrass Jul 18, 2024
aee5632
Add note about minimum quiz archive worker version to CHANGELOG for v…
ngandrass Jul 18, 2024
9477939
Define additional job status values: WAITING_FOR_BACKUP, FINALIZING
ngandrass Jul 22, 2024
7e6c747
Keep track of and report progress of running jobs
ngandrass Jul 22, 2024
370ff13
Fix passing null values to json_decode() in ArchiveJob
ngandrass Jul 23, 2024
c6cb02e
Fix top-level optional webservice function parameter. Migrate to VALU…
ngandrass Jul 23, 2024
92f19dc
Create getter for ArchiveJob statusextras
ngandrass Jul 23, 2024
750fc63
Expand unit tests to cover new job status and statusextras
ngandrass Jul 23, 2024
3c40103
Prepare CHANGELOG
ngandrass Jul 23, 2024
28827bb
Bump plugin version to match database version
ngandrass Jul 23, 2024
7856a7b
Fix PHP CS missing comma in multi-line array
ngandrass Jul 23, 2024
be4d068
Fix missing return type for update_job_status_test::test_statusextras()
ngandrass Jul 23, 2024
f5a73be
Create test for util class and fix duration to human readable string …
ngandrass Jul 23, 2024
e6a0307
Fix and extend unit test coverage PHPDoc metadata
ngandrass Jul 23, 2024
e399856
Further extend coverage information for some tests based on calls to …
ngandrass Jul 23, 2024
740bb6e
Make unit tests for external services cover parameter definitions
ngandrass Jul 23, 2024
11ac297
Test error during creation of a job with an already existing UUID
ngandrass Jul 23, 2024
cf88d54
Test retrieval of draft files via the FileManager
ngandrass Jul 23, 2024
a34aed6
Exclude purely frontend related code and code that is unreachable by …
ngandrass Jul 23, 2024
7b0c12e
Create basic test for job_overview_table
ngandrass Jul 23, 2024
57ac355
Move mock data generation code for unit tests into separate generator…
ngandrass Jul 25, 2024
7bc39a2
Create unit tests for all form elements since they can contain logic
ngandrass Jul 25, 2024
b4471ba
Provide translation for core language string 'progress' (Missing in <…
ngandrass Jul 25, 2024
547661e
Remove mixed type definition for archive_quiz_form_test data provider…
ngandrass Jul 25, 2024
566e4b6
Improve parameter validation tests and overall coverage within extern…
ngandrass Jul 25, 2024
1a33160
Create unit test for data generator
ngandrass Jul 29, 2024
3446603
Fix backup restore includes
ngandrass Jul 29, 2024
5389c94
Improve test coverage in some conditional UI paths
ngandrass Jul 29, 2024
8fd376f
Fix job association in job_overview_table_test
ngandrass Jul 29, 2024
98f5e39
Create hover tooltip with help text for all job status values
ngandrass Jul 29, 2024
1a9bc60
Update unit tests to check new status display args
ngandrass Jul 29, 2024
aed57d5
Prepare CHANGELOG
ngandrass Jul 29, 2024
4bec31b
Merge pull request #28 from ngandrass/feature/additional-job-status-info
ngandrass Jul 29, 2024
16f4b23
Release version 1.4.0
ngandrass Jul 29, 2024
541825e
Improve form data handling: Redirect to new page after processing sub…
ngandrass Aug 12, 2024
96f3407
Reduce complexity of quiz_archiver_report::display()
ngandrass Aug 12, 2024
30a7219
Append status notification data to form redirects and display status …
ngandrass Aug 12, 2024
6c94897
Do not render quiz archive form if quiz is not ready to be archived (…
ngandrass Aug 12, 2024
d730285
Replace alert building inside form classes with $OUTPUT->notification()
ngandrass Aug 12, 2024
96c1e36
Fix moodle-plugin-ci nvm issue on current GitHub action runners
ngandrass Aug 12, 2024
394e56a
Merge pull request #31 from ngandrass/fix/moodle-plugin-ci
ngandrass Aug 12, 2024
d117889
Fix moodle-plugin-ci nvm issue on current GitHub action runners
ngandrass Aug 12, 2024
1ae4021
Specify parameter types in quiz_archiver_report::quiz_can_be_archived()
ngandrass Aug 12, 2024
9ca3b9f
Fix PHPDoc param declaration for quiz_archiver_report::quiz_can_be_ar…
ngandrass Aug 12, 2024
c3d915d
Fix templates/overview.mustache example JSON to conform with RFC 8259
ngandrass Aug 12, 2024
ee3e491
Merge pull request #32 from ngandrass/feature/improve-form-data-proce…
ngandrass Aug 12, 2024
a4e7c2d
Add tooltip to archive overview refresh button and list time of last …
ngandrass Aug 12, 2024
5ea6793
Improve visual representation of the quiz archive overview table and …
ngandrass Aug 12, 2024
8c3293a
Narrow down custom CSS selectors to get rid of !important to make Gru…
ngandrass Aug 12, 2024
82f0dbc
Move job status column directly besides action buttons in overview table
ngandrass Aug 12, 2024
65fdbc6
Merge pull request #36 from ngandrass/feature/improve-status-refresh
ngandrass Aug 12, 2024
fd381bb
Remove old reference course (Git LFS migration)
ngandrass Aug 14, 2024
822e192
Add complex examples (large image compression, GeoGebra applets) to n…
ngandrass Aug 14, 2024
d75dd81
Merge pull request #37 from ngandrass/feature/reference-course-additions
ngandrass Aug 14, 2024
622cd07
Describe plugin versioning method and worker service compatibility in…
ngandrass Aug 21, 2024
02c6a75
Merge pull request #38 from ngandrass/feature/semantic-versioning
ngandrass Aug 21, 2024
03e2077
Release version 2.0.0 (2024082100)
ngandrass Aug 21, 2024
04ddeea
Create basic mkdocs boilerplate
ngandrass Aug 22, 2024
2ab8a16
Remove DB modifications inside get_backup_status_test::parameter_data…
ngandrass Sep 4, 2024
fe788ae
Remove DB modifications inside process_uploaded_artifact_test::parame…
ngandrass Sep 4, 2024
b2a1fcd
Fix coding style in get_backup_status_test
ngandrass Sep 4, 2024
59b08a5
Merge pull request #41 from ngandrass/fix/phpunit-dataproviders
ngandrass Sep 4, 2024
f3a39df
New docs WIP
ngandrass Oct 3, 2024
7407aeb
docs: Add links to most important sections to docs index page
ngandrass Oct 3, 2024
6d2db5b
Write installation and configuration sections, add support for multip…
ngandrass Oct 3, 2024
2bd3971
Fix footer link to issue tracker
ngandrass Oct 3, 2024
b4f9b20
docs: Fix comatibility table layout
ngandrass Oct 3, 2024
60889d1
docs: Add copy button to code blocks
ngandrass Oct 3, 2024
f7d93ae
docs: Write installation instructions for worker service, improve lin…
ngandrass Oct 3, 2024
0761744
docs: Add extra bottom margin to main docs container and improve imag…
ngandrass Oct 3, 2024
915b168
docs: Write usage section
ngandrass Oct 3, 2024
6cf1e4e
docs: Remove dollar sign in front of shell commands to allow for easi…
ngandrass Oct 3, 2024
57e2ce5
docs: Write development docs
ngandrass Oct 3, 2024
65b2139
Create GitHub workflow to build mkdocs and deploy to GitHub pages
ngandrass Oct 3, 2024
a329337
Update README to link to the new docs page
ngandrass Oct 4, 2024
dbfca6d
Remove horizontal rules from README since it is now a lot more compac…
ngandrass Oct 4, 2024
ded1682
Prepare CHANGELOG
ngandrass Oct 4, 2024
a0f510f
Fix PHP warning on autoinstall admin page
ngandrass Oct 5, 2024
595a972
docs: Add information on how to use the public demo quiz archive work…
ngandrass Oct 6, 2024
fdb73c9
docs: Fix link to automatic configuration on configuration index page
ngandrass Oct 6, 2024
1c4500b
Replace links to README file with links to new docs page
ngandrass Oct 6, 2024
877b43b
Add demo quiz archive worker information to admin settings page
ngandrass Oct 6, 2024
1c93888
docs: Add warning that public demo worker must be able to access Mood…
ngandrass Oct 6, 2024
72c96bc
docs: Add info on debugging the archive worker to Moodle API connecti…
ngandrass Oct 6, 2024
1eea191
Merge pull request #50 from ngandrass/feature/demoworker
ngandrass Oct 6, 2024
c4653c4
docs: Fix typo in configuration/initialconfig/automatic.md
ngandrass Oct 8, 2024
aca6b8e
docs: Improve plugin intro on index page
ngandrass Oct 8, 2024
a425171
Add Moodle 4.5 to CI test matrix
ngandrass Oct 8, 2024
ff37537
Fix job details dialog not showing up if artifact file was deleted bu…
ngandrass Oct 8, 2024
b76e2df
docs: Fix typos in configuration/initialconfig/(manual|pitfalls)
ngandrass Oct 8, 2024
09d19a6
Merge branch 'develop' into feature/mkdocs
ngandrass Oct 8, 2024
47b715a
Add credits for docs review to CHANGELOG
ngandrass Oct 8, 2024
fbe2ad3
docs: Fix changelog sublist indentation in mkdocs pages
ngandrass Oct 8, 2024
a3d586e
docs: Restrict automated build and deployment of mkdocs to master branch
ngandrass Oct 8, 2024
eb8c4dc
Merge pull request #51 from ngandrass/feature/mkdocs
ngandrass Oct 8, 2024
986e213
Merge branch 'develop' into moodle45
ngandrass Oct 10, 2024
b7444dd
Ensure compatibility with Moodle 4.5 (LTS)
ngandrass Oct 10, 2024
d6a8728
Merge pull request #53 from ngandrass/moodle45
ngandrass Oct 10, 2024
0c96d4e
Replace TESTING.md contents with link to new docs page
ngandrass Oct 10, 2024
2ab2987
Release version 2.1.0
ngandrass Oct 10, 2024
2ebfa47
Fix link to documentation in German translation
ngandrass Oct 10, 2024
5fd7dc5
Fix name of QUIZ_ARCHIVER_PREVENT_REDIRECT_TO_LOGIN env var in worker…
ngandrass Oct 17, 2024
8bf1d71
docs: Improve content spacing
ngandrass Oct 29, 2024
04f8d4d
Fix typo in CHANGELOG
ngandrass Oct 29, 2024
a21dae3
Add student idnumber to quiz report header
ngandrass Oct 29, 2024
3551981
Improve display of empty values in quiz attempt header (e.g., feedbac…
ngandrass Oct 29, 2024
f523c12
Update CHANGELOG.md
ngandrass Oct 29, 2024
3384214
docs: fix single unit test suit execution command
ngandrass Oct 29, 2024
5a1553f
Add student ID number to exported `attempts_metadata.csv` file inside…
ngandrass Oct 29, 2024
202d71d
Allow student ID number to be used in attempt filename pattern as `${…
ngandrass Oct 29, 2024
ff67e9f
Fix Moodle code checker error in Report class
ngandrass Oct 29, 2024
5835c60
Merge pull request #54 from ngandrass/feature/idnumber-integration
ngandrass Oct 29, 2024
84966f9
Fix creation of quiz archives with duplicate archive names
ngandrass Oct 29, 2024
82c77ee
Update FileManager unit tests with new artifact storage paths
ngandrass Oct 29, 2024
ff5c012
Merge pull request #56 from ngandrass/fix/archive-filename-duplicates
ngandrass Oct 29, 2024
ae663dd
Only run CI for commits and PRs on master and develop branches to pre…
ngandrass Oct 29, 2024
1b35bec
Update CHANGELOG
ngandrass Oct 29, 2024
9610e8d
Merge pull request #57 from ngandrass/feature/optimize-ci-runs
ngandrass Oct 29, 2024
0132d0b
Release version 2.2.0 (2024102900)
ngandrass Oct 29, 2024
9c80c96
Add hint about font rendering problems to the documentation
ngandrass Dec 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
res/backup-moodle2-course-qa-ref.mbz filter=lfs diff=lfs merge=lfs -text
55 changes: 55 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Build and publish docs

on:
push:
branches:
- master

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: pip install \
mkdocs \
mkdocs-material \
mkdocs-material-extensions \
mkdocs-material[imaging] \
mkdocs-minify-plugin \
mkdocs-glightbox \
mkdocs-get-deps
- run: mkdocs build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./site

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
33 changes: 27 additions & 6 deletions .github/workflows/moodle-plugin-ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
name: Moodle Plugin CI

on: [push, pull_request]
on:
push:
branches: [ "master", "develop" ]
pull_request:
branches: [ "master", "develop" ]

jobs:
test:
Expand Down Expand Up @@ -53,6 +57,21 @@ jobs:
- {moodle-branch: 'MOODLE_403_STABLE', php: '8.2', database: 'pgsql'}
- {moodle-branch: 'MOODLE_403_STABLE', php: '8.2', database: 'mariadb'}

# Moodle 4.4, PHP 8.1 to 8.3, PostgreSQL and MariaDB
- {moodle-branch: 'MOODLE_404_STABLE', php: '8.1', database: 'pgsql'}
- {moodle-branch: 'MOODLE_404_STABLE', php: '8.1', database: 'mariadb'}
- {moodle-branch: 'MOODLE_404_STABLE', php: '8.2', database: 'pgsql'}
- {moodle-branch: 'MOODLE_404_STABLE', php: '8.2', database: 'mariadb'}
- {moodle-branch: 'MOODLE_404_STABLE', php: '8.3', database: 'pgsql'}
- {moodle-branch: 'MOODLE_404_STABLE', php: '8.3', database: 'mariadb'}

# Moodle 4.5, PHP 8.1 to 8.3, PostgreSQL and MariaDB
- {moodle-branch: 'MOODLE_405_STABLE', php: '8.1', database: 'pgsql'}
- {moodle-branch: 'MOODLE_405_STABLE', php: '8.1', database: 'mariadb'}
- {moodle-branch: 'MOODLE_405_STABLE', php: '8.2', database: 'pgsql'}
- {moodle-branch: 'MOODLE_405_STABLE', php: '8.2', database: 'mariadb'}
- {moodle-branch: 'MOODLE_405_STABLE', php: '8.3', database: 'pgsql'}
- {moodle-branch: 'MOODLE_405_STABLE', php: '8.3', database: 'mariadb'}
steps:
- name: Check out repository code
uses: actions/checkout@v3
Expand All @@ -75,7 +94,10 @@ jobs:
echo $(cd ci/bin; pwd) >> $GITHUB_PATH
echo $(cd ci/vendor/bin; pwd) >> $GITHUB_PATH
sudo locale-gen en_AU.UTF-8
echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV

# Install nvm v0.39.7 as a temporary workaround for issue:
# https://github.com/moodlehq/moodle-plugin-ci/issues/309
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

- name: Install moodle-plugin-ci
run: moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1
Expand All @@ -99,10 +121,9 @@ jobs:
if: ${{ !cancelled() }}
run: moodle-plugin-ci phpmd

# FIXME: Re-enable this step
#- name: Moodle Code Checker
# if: ${{ !cancelled() }}
# run: moodle-plugin-ci phpcs --max-warnings 0
- name: Moodle Code Checker
if: ${{ !cancelled() }}
run: moodle-plugin-ci phpcs --max-warnings 0

- name: Moodle PHPDoc Checker
if: ${{ !cancelled() }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.cache
.idea/
*.iml
140 changes: 138 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,150 @@
# Changelog

## Version X.X.X (YYYYMMDDXX)

- Add hint about font rendering problems to the documentation


## Version 2.2.0 (2024102900)

- Add student ID number to quiz attempt header
- Add student ID number to exported `attempts_metadata.csv` file inside quiz archives
- Allow student ID number to be used in attempt filename pattern as `${idnumber}`
- Fix creation of quiz archives with duplicate archive names (e.g., when using `quiz-archive-${quizid}-${quizname}` as the archive name pattern)
- Improve display of user firstname, lastname, and avatar in quiz attempt header
- Improve display of empty values in quiz attempt header (e.g., feedback, idnumber, ...)
- Fix name of `QUIZ_ARCHIVER_PREVENT_REDIRECT_TO_LOGIN` environment variable in archive worker documentation
- Fix single unit test suit execution command in developer documentation
- Improve content spacing in docs
- Only run Moodle CI for commits and PRs on master and develop branches to prevent duplicate runs


## Version 2.1.0 (2024101000)

- Ensure compatibility with Moodle 4.5 (LTS)
- Create an official Quiz Archiver documentation website: [https://quizarchiver.gandrass.de/](https://quizarchiver.gandrass.de/)
- Great thanks to @melanietreitinger for reviewing and providing valuable feedback!
- Automate building and deployment of documentation website
- Cleanup and restructure existing documentation within README
- Add demo quiz archive worker information to admin settings page
- Fix job details dialog not showing up if artifact file was deleted but metadata still remains
- Fix PHP warning on autoinstall admin page
- Add Moodle 4.5 to automated (CI) test matrix


## Version 2.0.0 (2024082100)

- Switch to semantic versioning (see README.md, Section: "Versioning and Compatibility")
- Fix rendering of GeoGebra applets under certain conditions
- Improve robustness of attempt page rendering state detection ("ready for export" detection)
- Improve status and error notifications for all actions (job creation, deletion, ...)
- Prevent form data resubmission on page reload
- Add tooltip to archive overview refresh button and list time of last page refresh
- Improve visual presentation of the quiz archive overview table
- Improve visual presentation of the quiz archive creation form
- Add complex examples (large image compression, GeoGebra applets) to reference course

**Note:** Use of [moodle-quiz-archive-worker](https://github.com/ngandrass/moodle-quiz-archive-worker) `>= v2.0.0` is required.


## Version 1.4.0 (2024072900)

- Show periodically updated progress of running archive jobs in job overview table and job details modal
- Creation of new job status values:
- `WAITING_FOR_BACKUP`: All attempt reports are generated and the archive worker service is waiting for the Moodle backup to be ready.
- `FINALIZING`: The archive worker service is finalizing the archive creation process (checksums, compression, ...).
- Create hover tooltip with help text for all job status values
- Add additional soft error handling to some web service functions
- Minor compatibility fixes for PHP 7.4 and Moodle 4.1 (LTS)
- Expanding unit test coverage to include the whole plugin logic
- Optimizing unit test code to improve readability and maintainability
- Create generic testing data generator
- Code quality improvements

**Note:** Use of [moodle-quiz-archive-worker](https://github.com/ngandrass/moodle-quiz-archive-worker) `>= v1.6.0` is required.


## Version 1.3.0 (2024071800)

- Optionally scale down large images within quiz reports to preserve space and keep PDF files compact
- Optionally compress images within quiz reports to preserve space and keep PDF files compact
- Fix image inlining for files with non-lowercase file extensions (e.g., `image.JPG`)
- Fix conditional hide/show of retention time in quiz archive form when locked
- Optimize order of settings in quiz archive form and plugin admin settings

**Note:** Use of [moodle-quiz-archive-worker](https://github.com/ngandrass/moodle-quiz-archive-worker) `>= v1.5.0` is required.


## Version 1.2.10 (2024070900)

- Full code overhaul to comply with the [Moodle Coding Style](https://moodledev.io/general/development/policies/codingstyle)
- Enforce strict coding style checks during CI runs / prior to any new releases
- Improve English and German translations


## Version 1.2.9 (2024070800)

- Synchronize default job timeout setting with quiz archive worker and add hint about the additional timeout inside the
archive worker config
- Describe different job timeout settings inside the "Known Pitfalls" section of
the README file.
- Fix display of variables in archive / report names help texts in Moodle <= 4.2

_Note: Keep in mind to update your
[Quiz Archive Worker](https://github.com/ngandrass/moodle-quiz-archive-worker) too!_


## Version 1.2.8 (2024052900)

- Fix autoinstall admin UI form for Moodle 4.1 (LTS)
- Fix edge case during GDPR exports via the Moodle privacy API when using PHP 7.4
- Fix webservice token generation on Moodle 4.1 (LTS)
- Largely extend the test coverage. Now almost everything is tested automatically
for all combinations of:
- Moodle version: 4.1 - 4.4
- PHP versions: 7.4 - 8.3
- Database backends: mariadb, pgsql
- Cleanup attempt report generation code
- Provide documentation how to run tests locally
- Fix typos

_Note: Keep in mind to update your
[Quiz Archive Worker](https://github.com/ngandrass/moodle-quiz-archive-worker) too!_


## Version 1.2.7 (2024051300)

- Fix inlining of images with filenames that contains URL encoded characters (e.g., `image (1).jpg`)
- Fix inlining of Moodle theme icons (e.g., drag and drop markers)
- Fix PHP warning on quiz_archiver_generate_attempt_report webservice call
- Fix quiz header / summary table injection in Moodle 4.4+
- Replace deprecated Moodle 4.4+ language strings


## Version 1.2.6 (2024042900)

- Extend automated tests to cover Moodle 4.4 with PHP 8.1 to 8.3 using PostgreSQL and MariaDB
- Removal of deprecated function use for Moodle 4.4 (See MDL-67667)


## Version 1.2.5 (2024040900)

- Add an automatic plugin configuration feature, to simplify the setup process (#15 - Thanks to @melanietreitinger)
- Display a welcome message with setup instructions during plugin installation
- Add support for automated configuration using a CLI script
- Add error message during job creation, when plugin is not fully configured yet
- Create quizzes with 100, 250, 500, and 1000 attempts in the reference course `res/backup-moodle2-course-qa-ref.mbz`
- Update installation instructions in README.md to reflect the new setup process


## Version 1.2.4 (2024021901)

- Fix image inlining for Moodle instances that reside in subdirectories (e.g., `https://your.domain/moodle`)
- Thanks a lot to @500gLychee for extensive testing and reporting!
- Thanks a lot to @500gLychee for extensive testing and reporting!
- Fix inlining of miscellaneous local images that do not fall into any specific link type category
- Detect quizzes without attempts and prevent archive creation until at least one attempt was registered
- Create GitHub issue template forms for bug reports and feature requests
- Found a bug? Please report it here: https://github.com/ngandrass/moodle-quiz_archiver/issues
- Found a bug? Please report it here: https://github.com/ngandrass/moodle-quiz_archiver/issues


## Version 1.2.3 (2024011200)
Expand Down
Loading