Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
242 commits
Select commit Hold shift + click to select a range
955e89c
bump version to 2.3.3
MyPyDavid Jul 11, 2025
1dea78c
Add adjust label hook for radio and checkbox (#1398)
jochenklar Aug 4, 2025
94e6820
Fix adjust label hook
jochenklar Aug 7, 2025
46cf6ed
Cancel debouncing when changing radio/checkbox in interview (#1406)
jochenklar Aug 7, 2025
9f51fc9
Use state for additional input and clear on uncheck
MyPyDavid Aug 7, 2025
6c6b9ff
accounts(checks): add potential warnings when using shibboleth (#77)
MyPyDavid Aug 13, 2025
58272a5
Add SelectValueContainer to allow for links in select widgets in the …
jochenklar Aug 15, 2025
2878c84
locale(de): update german translations in .po
MyPyDavid Aug 22, 2025
d1611a3
Revert "locale(de): update german translations in .po"
MyPyDavid Aug 22, 2025
c7f2f1c
locale(de): update german translations in .po again
MyPyDavid Aug 22, 2025
9becdb2
Add useAdditionalInputs hook
jochenklar Aug 22, 2025
30b9f5f
Fix timeout
jochenklar Aug 22, 2025
53107db
Fix erase value behavior
jochenklar Aug 22, 2025
0226df1
accounts(checks): refactor to top level module
MyPyDavid Aug 22, 2025
70d7c90
Add useIdle hook to fix "double clicks" in CheckboxInput
jochenklar Aug 22, 2025
4bfddbb
Merge pull request #1404 from rdmorganiser/adjust_label
jochenklar Aug 29, 2025
1147cc3
Merge pull request #1408 from rdmorganiser/react_select_links
jochenklar Sep 4, 2025
1aa9c71
chore: remove obsolete filter for warnings
afuetterer Sep 5, 2025
253427c
Merge pull request #1420 from afuetterer/warnings
jochenklar Sep 19, 2025
45ed457
Merge pull request #1407 from rdmorganiser/add-check-for-shibboleth
MyPyDavid Sep 19, 2025
8992fdf
ci: do not fail on error for coveralls #1428
MyPyDavid Sep 19, 2025
7200381
tests(management): update tests for new rules #1425
MyPyDavid Sep 22, 2025
93d4b62
accounts(models): add is_editor and is_reviewer as cached props
MyPyDavid Sep 22, 2025
060158a
core(permissions): add HasRulesPermission for rules in DRF viewsets
MyPyDavid Sep 22, 2025
f343a59
core(tests): add multisite management and import perms
MyPyDavid Sep 22, 2025
be85453
mangement(rules): fix #1425 and add perms for upload and import
MyPyDavid Sep 22, 2025
e656be5
mangement(views): use permission_required instead
MyPyDavid Sep 22, 2025
74b902d
mangement(viewsets): use HasRulesPermission for viewsets
MyPyDavid Sep 22, 2025
c2d237a
core(templates): use has_perm in base_navigation
MyPyDavid Sep 22, 2025
a97e40e
accounts(tests): add tests for is_editor and is_reviewer props
MyPyDavid Sep 22, 2025
20b2ccc
tests(multisite): fix viewset tests detail and delete
MyPyDavid Sep 24, 2025
99b9005
core(tests,multisite): update perms map and get function
MyPyDavid Sep 24, 2025
8687feb
tests(multisite): fix import tests
MyPyDavid Sep 24, 2025
6767a52
tests(multisite): fix assert line break syntax
MyPyDavid Sep 24, 2025
b6e2dc7
projects(rules): remove redundant rule
Sep 29, 2025
33ea939
Revert MetaViewSet to IsAuthenticated
Sep 29, 2025
f0d714a
Keep legacy rule in base navi
Sep 29, 2025
c95c317
Rename to HasPermission and get perm directly from view
Sep 29, 2025
26b3c63
Rename management perms
Sep 29, 2025
93220ee
style, fix end of file
Sep 29, 2025
a12eb0e
Fix missing label for Role #1424
Sep 29, 2025
774bee6
Merge pull request #1435 from rdmorganiser/1424-translation-missing-f…
jochenklar Oct 9, 2025
8cc3f95
Relax test_openapi_schema a bit
jochenklar Oct 9, 2025
e7c9d74
Add AnswerTree
jochenklar Sep 30, 2025
fb41928
Add conditions to AnswerTree and fix compute_element_sets
jochenklar Oct 4, 2025
a0a8636
Add count and total to AnswerTree
jochenklar Oct 5, 2025
bdeea13
Refactor conditions in AnswerTree
jochenklar Oct 6, 2025
0f61778
Break recursion on conditions in AnswerTree
jochenklar Oct 6, 2025
e01e302
Fix AnswerTree
jochenklar Oct 6, 2025
07773a7
Add show and title to AnswerTree
jochenklar Oct 7, 2025
967f0a3
Remove progress.py and use AnswerTree for navigation, progress and
jochenklar Oct 7, 2025
1c796bf
Merge pull request #1429 from rdmorganiser/ci-fix-coveralls
MyPyDavid Oct 9, 2025
e04af0f
Merge pull request #1412 from rdmorganiser/locale-de
MyPyDavid Oct 9, 2025
fb6cbd3
replace "benefits" with "users"
Zack-83 Oct 10, 2025
eafafb7
Add files via upload
Zack-83 Oct 10, 2025
62ced9c
Add files via upload
Zack-83 Oct 10, 2025
def6b44
Add files via upload
Zack-83 Oct 10, 2025
98578f9
Add files via upload
Zack-83 Oct 10, 2025
46a3c19
Merge pull request #1444 from rdmorganiser/1411-typo-in-english-benef…
Zack-83 Oct 15, 2025
f29e25a
build(pre-commit): pre-commit autoupdate by ci
pre-commit-ci[bot] Jul 7, 2025
f0972f4
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 7, 2025
06759e4
build(pre-commit): pre-commit autoupdate by ci
pre-commit-ci[bot] Aug 4, 2025
eb08ba3
build(deps-dev): bump webpack in the webpack group
dependabot[bot] Aug 1, 2025
3bf530f
build(deps-dev): bump the babel group with 3 updates
dependabot[bot] Aug 1, 2025
f52a785
build(deps): bump @uiw/react-codemirror in the prod-dependencies group
dependabot[bot] Aug 1, 2025
dc100d0
build(deps): bump the github-actions group with 2 updates
dependabot[bot] Sep 1, 2025
585e544
build(deps-dev): bump sass in the dev-dependencies group
dependabot[bot] Sep 1, 2025
c7ac21c
build(deps): bump @uiw/react-codemirror in the prod-dependencies group
dependabot[bot] Sep 1, 2025
ec69841
build(pre-commit): pre-commit autoupdate by ci
pre-commit-ci[bot] Sep 1, 2025
ef65430
build(deps): update django-allauth[openid,socialaccount] requirement
dependabot[bot] Sep 1, 2025
b111cd1
build(deps): update defusedcsv requirement from <3.0,>=2.0 to >=2.0,<4.0
dependabot[bot] Oct 1, 2025
6015eeb
build(deps): bump the github-actions group with 2 updates
dependabot[bot] Oct 1, 2025
7a8e9b3
build(deps): bump the optional group with 2 updates
dependabot[bot] Oct 1, 2025
3c46c4f
build(deps-dev): bump the dev-dependencies group with 2 updates
dependabot[bot] Oct 1, 2025
fd67125
ci: prefer build-and-inspect-python-package over custom solution
afuetterer Oct 15, 2025
5bc0b55
Merge pull request #1445 from afuetterer/1089-baipp
MyPyDavid Oct 20, 2025
79bcc26
build(dev): bump ruff version
afuetterer Oct 21, 2025
d6ae5f5
ci: pin gha version
afuetterer Oct 21, 2025
a98be3d
chore: apply pep 639
afuetterer Oct 21, 2025
7d725f3
Merge pull request #1448 from afuetterer/gha
MyPyDavid Oct 21, 2025
b48b54d
Merge pull request #1450 from afuetterer/license
MyPyDavid Oct 21, 2025
9dfab60
chore: clean up obsolete dependencies
afuetterer Oct 21, 2025
22e622f
Merge pull request #1451 from afuetterer/wheel
MyPyDavid Oct 21, 2025
a718145
Use only catalog and values in AnswerTree
jochenklar Oct 21, 2025
55cffc1
Refactor ProjectOverviewSerializer
jochenklar Oct 21, 2025
21222ae
Replace capitalize with upperFirst in interview
jochenklar Oct 21, 2025
1c69f16
Merge pull request #1453 from rdmorganiser/2.3.3-fix-verbose-name-but…
jochenklar Oct 29, 2025
9d9dba1
Use view_management perm instead of can_view...
MyPyDavid Oct 29, 2025
b9002d3
Kohärente Benennung von Tabs
Zack-83 Oct 30, 2025
9617d04
Konflikte lösen
Zack-83 Oct 30, 2025
820a9e9
nochmals
Zack-83 Oct 30, 2025
096ba6f
Refactor AnswerTree with helper methods for sets
MyPyDavid Oct 29, 2025
3f7ae88
Partially revert 9d9dba1e
jochenklar Oct 30, 2025
841b23f
Fix and clean up refactor of AnswerTree
MyPyDavid Oct 30, 2025
3558622
core(templates): remove legacy test_rule from base_navigation
MyPyDavid Oct 30, 2025
69385c7
Merge pull request #1452 from rdmorganiser/fix-management-ui-access+i…
jochenklar Oct 30, 2025
9b69fc5
Refactor AnswerTree and add tests
jochenklar Oct 30, 2025
3391379
Merge pull request #1458 from rdmorganiser/2.3.3-answer-tree+dw
jochenklar Oct 30, 2025
3895cd1
Refactor AnswerTree some more
jochenklar Oct 30, 2025
f343dfc
Merge pull request #1431 from rdmorganiser/fix-management-ui-access
MyPyDavid Oct 31, 2025
5b24b2e
Kohärente Benennung von Tabs
Zack-83 Oct 30, 2025
ba8671b
Konflikte lösen
Zack-83 Oct 30, 2025
f3032a4
nochmals
Zack-83 Oct 30, 2025
363f941
Use _meta.label_lower
jochenklar Oct 31, 2025
0ba965c
Merge pull request #1441 from rdmorganiser/2.3.3-answer-tree
jochenklar Oct 31, 2025
8d70d3a
build(deps): bump the github-actions group with 3 updates
dependabot[bot] Nov 1, 2025
1748c6f
build(deps-dev): update django-allauth[openid,socialaccount] requirement
dependabot[bot] Nov 1, 2025
ee295a2
build(deps-dev): bump @babel/preset-react in the dev-dependencies group
dependabot[bot] Nov 1, 2025
77a05ba
Merge pull request #1463 from rdmorganiser/dependabot/npm_and_yarn/de…
dependabot[bot] Nov 3, 2025
7ce3aaa
Merge pull request #1460 from rdmorganiser/dependabot/github_actions/…
dependabot[bot] Nov 3, 2025
accb0ed
Merge branch 'tabs-in-allen-sprachen' of https://github.com/rdmorgani…
Zack-83 Nov 3, 2025
9296b9d
.
Zack-83 Nov 3, 2025
1058613
Ersetzen "der Fragensatz" -> "das Fragenset"
Zack-83 Nov 3, 2025
b4589dd
build(pre-commit): pre-commit autoupdate by ci
pre-commit-ci[bot] Nov 3, 2025
93e4ef9
build(dev): bump ruff version
MyPyDavid Nov 4, 2025
44cc5d5
style: rename unused vars to _x
MyPyDavid Nov 4, 2025
4a7b129
Update django.po
sa-wetter Nov 4, 2025
feec1cd
Update django.po
sa-wetter Nov 5, 2025
72e154f
Revert pre-commit update to ruff in favor of PR#1449
MyPyDavid Nov 6, 2025
7250fcf
build(pre-commit): bump eslint
MyPyDavid Nov 6, 2025
46b884e
style: rename more unused vars to _x
MyPyDavid Nov 6, 2025
830bb2b
Merge pull request #1461 from rdmorganiser/dependabot/pip/dependency-…
MyPyDavid Nov 6, 2025
7192e5c
Merge pull request #1464 from rdmorganiser/pre-commit-ci-update-config
MyPyDavid Nov 6, 2025
9fb0c2d
Rename _x back to _ or _<var> if _ is used for gettext_lazy
jochenklar Nov 6, 2025
832090d
Merge pull request #1449 from afuetterer/ruff
jochenklar Nov 6, 2025
702aea8
Merge pull request #1393 from rdmorganiser/dependency-updates
jochenklar Nov 6, 2025
bf5f1bb
bump version to 2.4.0
MyPyDavid Sep 19, 2025
2410b36
Fix datepicker date conversion in interview
jochenklar Nov 4, 2025
7da850c
feat: drop support for python 3.9
afuetterer Sep 9, 2025
5a62c69
style: fix ruff errors for >=3.10
MyPyDavid Sep 19, 2025
8555a66
style: autofix by ruff for >=py3.10
MyPyDavid Sep 19, 2025
1e4068c
Use strict=True in zip
jochenklar Nov 6, 2025
b98fb59
Merge pull request #1421 from afuetterer/python-3.9
jochenklar Nov 7, 2025
a960c97
build(deps): bump the prod-dependencies group with 5 updates
dependabot[bot] Nov 3, 2025
553da1c
build(deps): keep React 18.3.1
MyPyDavid Nov 7, 2025
f5cb74a
Reorganize optional dependencies
jochenklar Nov 10, 2025
934219d
Update pyproject.toml
jochenklar Nov 10, 2025
197014c
Fix pyproject.toml
jochenklar Nov 10, 2025
fab8df7
Merge pull request #1459 from rdmorganiser/tabs-in-allen-sprachen
jochenklar Nov 11, 2025
eddfcb5
Reformat .po files
jochenklar Nov 11, 2025
573c171
nouvelle traduction en français de l'IN2P3
Zack-83 Jul 21, 2025
51ff56d
Merge pull request #1397 from rdmorganiser/Lokalisierung_Französisch
jochenklar Nov 11, 2025
224bd41
Update poedit management script to work on macOS
jochenklar Nov 11, 2025
2fdcf1b
Merge pull request #1471 from rdmorganiser/2.4.0-i18n
jochenklar Nov 11, 2025
c81d7db
Add verbose flag to answers tree
jochenklar Nov 11, 2025
d56d237
Merge pull request #1470 from rdmorganiser/reorganize_optional_depend…
jochenklar Nov 11, 2025
7c46319
Update compute_element_node
jochenklar Nov 11, 2025
9fb3dd6
Add Cookies to window
jochenklar Nov 11, 2025
7dde6fe
Remove mutable default argument
jochenklar Nov 11, 2025
ee5f22e
Merge pull request #1473 from rdmorganiser/2.4.0-cookies
jochenklar Nov 12, 2025
9e1bc68
projects(tests): add assertions for verbose
MyPyDavid Nov 13, 2025
77300d9
Make verbose into a set and refactor into a method
MyPyDavid Nov 13, 2025
8b090d1
Remove add_verbose_fields and use tuples in AnswerTree
jochenklar Nov 13, 2025
628fc6b
Merge pull request #1472 from rdmorganiser/2.4.0-refactor-answers
jochenklar Nov 13, 2025
91c24b5
ci: fix zizmor findings
afuetterer Nov 11, 2025
39abd95
Merge pull request #1475 from afuetterer/zizmor
MyPyDavid Nov 14, 2025
8b653dc
Do not ignore ruff B007
jochenklar Nov 17, 2025
33594af
Do not ignore ruff B006
jochenklar Nov 17, 2025
8fbb402
Remove widgets.py
jochenklar Nov 17, 2025
e21e5b1
Do not ignore ruff B018
jochenklar Nov 18, 2025
aacdea3
Merge pull request #1478 from rdmorganiser/remove_ruff_ignores
jochenklar Nov 19, 2025
8dd674b
Update CHANGELOG.md
jochenklar Nov 20, 2025
deb69d6
Add release management script (for rdmo-admin)
jochenklar Nov 20, 2025
e40441b
build(deps-dev): bump js-yaml from 4.1.0 to 4.1.1
dependabot[bot] Nov 20, 2025
f321767
Update clean management command
jochenklar Nov 20, 2025
ae94909
build(js): bump react-datepicker to 8.9.0
MyPyDavid Nov 20, 2025
5b3407e
Use setuptools_scm to dynamically create the version
jochenklar Nov 20, 2025
0c33b85
* update useDatePicker hook and ProjectFilters component
CalamityC Nov 20, 2025
a7ffe28
Remove version update from CI
jochenklar Nov 20, 2025
8361c4c
Fix gatherOptions call in CheckboxWidget and SelectWidget (#1480)
jochenklar Nov 20, 2025
f2c34dd
Merge pull request #1468 from rdmorganiser/deps-update-react-packages
MyPyDavid Nov 20, 2025
9cdc2a2
Do not filter no sites for multisite #1481
MyPyDavid Nov 20, 2025
c17a1e1
Simplifiy availability filter
MyPyDavid Nov 20, 2025
8858756
Add catalog filter for user and refactor
MyPyDavid Nov 20, 2025
6fbe9de
Add data migration for catalog.sites in multisite
MyPyDavid Nov 20, 2025
f1ec18c
ci: Add fetch-depth: 0 for setuptools_scm
MyPyDavid Nov 21, 2025
d0d948a
build(pre-commit): bump typos from mutable v1 rev
afuetterer Nov 21, 2025
333b42e
chore: fix typo
afuetterer Nov 21, 2025
5258ed7
Use version_scheme = "release-branch-semver"
jochenklar Nov 21, 2025
8427adc
Add a CatalogQueryset method for projects
MyPyDavid Nov 21, 2025
3f494d2
Fix command error message
jochenklar Nov 21, 2025
ccc0e0c
Revert to correct user object in serializer
MyPyDavid Nov 21, 2025
6b5aac2
Use version from importlib.metadata
jochenklar Nov 22, 2025
995b967
Merge pull request #1489 from afuetterer/typos-hook
MyPyDavid Nov 24, 2025
a851204
projects(tests): move enable multisite fixture
MyPyDavid Nov 24, 2025
ec58221
projects(tests): update viewset catalog
MyPyDavid Nov 24, 2025
b53ca88
Merge pull request #1487 from rdmorganiser/2.4.0-fix-gather-options
jochenklar Nov 24, 2025
2c8d7d1
Fix build managament script
jochenklar Nov 24, 2025
fe0a140
Fix typo
jochenklar Nov 24, 2025
de9b360
Add projects catalog tests for #1481
MyPyDavid Nov 24, 2025
f79a7f1
Also order filtered catalogs by id
MyPyDavid Nov 24, 2025
540a62e
Fix typo
jochenklar Nov 24, 2025
499177e
Merge pull request #1486 from rdmorganiser/2.4.0-dynamic-version
jochenklar Nov 25, 2025
8439b96
chore: remove ruff pt setting which is now a default
afuetterer Nov 26, 2025
d1a3db3
build(deps): bump pytest and related test depedencies
afuetterer Nov 26, 2025
6205628
chore: switch to [tool.pytest] config
afuetterer Nov 26, 2025
72fd1a7
Merge pull request #1491 from afuetterer/pytest
jochenklar Nov 26, 2025
dd38f6d
Do not use list in Catalogs data migration
MyPyDavid Nov 27, 2025
02755ca
Update Catalog manager methods and use subquery in viewset
MyPyDavid Nov 27, 2025
8019d56
Refactor clean management script
jochenklar Nov 27, 2025
94fc0b5
Clean before build in build management script
jochenklar Nov 27, 2025
3bf065d
Merge pull request #1484 from rdmorganiser/dependabot/npm_and_yarn/js…
MyPyDavid Nov 27, 2025
5b33ed7
Refactor QuerysetMixins for Task and View
MyPyDavid Nov 27, 2025
ff8ff63
Refactor View and Task managers into ForProjectManager
MyPyDavid Nov 28, 2025
781cca8
Merge pull request #1485 from rdmorganiser/2.4.0-release-tools
jochenklar Nov 28, 2025
846daae
build(deps-dev): bump the dev-dependencies group with 2 updates
dependabot[bot] Dec 1, 2025
344841c
build(deps): bump the prod-dependencies group with 3 updates
dependabot[bot] Dec 1, 2025
a85174b
build(deps): bump the github-actions group with 2 updates
dependabot[bot] Dec 1, 2025
cd37b53
Add multisite condition for sites to task or view filter for projects
MyPyDavid Dec 1, 2025
ed16aa1
Add view information to project wrapper
jochenklar Dec 1, 2025
98d5c1e
Update and fix project sync tests
MyPyDavid Dec 1, 2025
f197bfb
Add query for catalogs to filter_projects_for_task_or_view
MyPyDavid Dec 1, 2025
0583de9
Merge pull request #1497 from rdmorganiser/2.4.0-add-view-to-project-…
jochenklar Dec 1, 2025
504118c
Merge pull request #1495 from rdmorganiser/dependabot/npm_and_yarn/de…
MyPyDavid Dec 1, 2025
8681599
Merge pull request #1494 from rdmorganiser/dependabot/github_actions/…
MyPyDavid Dec 1, 2025
ecee149
build(pre-commit): pre-commit autoupdate by ci
pre-commit-ci[bot] Dec 1, 2025
713d9f8
Keep React 18.3.1 in package.json
MyPyDavid Dec 1, 2025
d1e4e3c
Refactor manager methods into projects.util filter_tasks_or_views_for…
MyPyDavid Dec 1, 2025
2a2c453
build(pre-commit): keep eslint 9.39.1 and set typos to v1.40.0
MyPyDavid Dec 1, 2025
fb8b9c8
Merge pull request #1499 from rdmorganiser/update-js-dependencies
MyPyDavid Dec 1, 2025
3618343
Merge pull request #1498 from rdmorganiser/pre-commit-ci-update-config
MyPyDavid Dec 1, 2025
2969be0
Merge pull request #1488 from rdmorganiser/2.4.0-fix-multisite-not-al…
MyPyDavid Dec 4, 2025
57a75b0
Fix clean management script
jochenklar Dec 4, 2025
daf99b0
erste Übersetzungen
Zack-83 Dec 5, 2025
18cd951
Update changelog for 2.4.0
MyPyDavid Dec 5, 2025
4a2ad11
Update changelog and add breaking changes for 2.4.0
MyPyDavid Dec 5, 2025
b2002b7
Add PR link to changelog
MyPyDavid Dec 5, 2025
d20b6b8
.,
Zack-83 Dec 8, 2025
524c64f
Autor
Zack-83 Dec 8, 2025
1e6ca9e
Add data migration for view.sites and task.sites in multisite
MyPyDavid Dec 8, 2025
13d7e5d
Zeilenumbruch
Zack-83 Dec 9, 2025
2e9b414
Update CHANGELOG.md
jochenklar Dec 9, 2025
14ef4b6
Französisch
Zack-83 Dec 9, 2025
89a7ca1
Französisch
Zack-83 Dec 9, 2025
5266d87
primer/tercer
Zack-83 Dec 10, 2025
6663b16
Update German django.mo
jochenklar Dec 12, 2025
0c7b64b
Merge pull request #1503 from rdmorganiser/2.4.0-Sprachkorrektur
jochenklar Dec 12, 2025
d955fba
Update German django.po file
jochenklar Dec 12, 2025
1e9b60d
Update and cleanup translation files
jochenklar Dec 12, 2025
76d8dfc
Merge pull request #1500 from rdmorganiser/dependency-updates
MyPyDavid Dec 12, 2025
40e03ca
Update NOTICE
jochenklar Dec 12, 2025
8c4e727
Merge pull request #1482 from rdmorganiser/2.4.0-changelog
jochenklar Dec 12, 2025
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
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ updates:
patterns:
- django*
- drf*
cooldown:
default-days: 7
- package-ecosystem: github-actions
directory: /
schedule:
Expand All @@ -44,6 +46,8 @@ updates:
github-actions:
patterns:
- '*'
cooldown:
default-days: 7
- package-ecosystem: npm
directory: /
schedule:
Expand Down Expand Up @@ -82,3 +86,5 @@ updates:
dependency-type: production
dev-dependencies:
dependency-type: development
cooldown:
default-days: 7
113 changes: 41 additions & 72 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,88 +27,48 @@ env:
PYTHONDONTWRITEBYTECODE: 1
FORCE_COLOR: 1 # colored output by pytest etc.

permissions: {}

jobs:

build-wheel:
name: Build python wheel
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
# update the version
- name: Get short commit SHA
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
SHA="${{ github.event.pull_request.head.sha }}"
else
SHA="${{ github.sha }}"
fi
echo "SHA=$(git rev-parse --short $SHA)" >> $GITHUB_ENV
- name: Get current version (MAJOR.MINOR.PATCH)
id: current-version
run: echo "current_version=$(grep -Po '(?<=__version__ = ")[\d\w.]+(?=")' rdmo/__init__.py)" >> $GITHUB_OUTPUT
- name: Generate new version (current version + SHA)
id: new-version
run: echo "new_version=${{ steps.current-version.outputs.current_version }}+$SHA" >> $GITHUB_OUTPUT
- name: Update version in rdmo/__init__.py
run: |
sed -i "s/__version__ = .*/__version__ = \"${{ steps.new-version.outputs.new_version }}\"/" rdmo/__init__.py
- uses: actions/checkout@v6
with:
persist-credentials: false
fetch-depth: 0 # important for setuptools_scm
# build the webpack bundle
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
- run: npm ci && npm run build:dist
# build the wheel
- uses: actions/setup-python@v5
with:
python-version: '3.13'
cache: pip
- run: |
python -m pip install --upgrade pip build[uv] twine
python -m pip --version
- name: Build the wheel
run: python -m build --installer=uv
- name: Check the metadata of wheel and sdist
run: python -m twine check --strict dist/*
- name: Install package from built wheel
run: python -m pip install --no-compile dist/rdmo*.whl # do not create __pycache__/*.pyc files
- name: Write info to step summary
run: |
{
echo -e "# ✓ Wheel successfully built (v${{ steps.new-version.outputs.new_version }})\n\n"
echo '<details><summary>Information about installed wheel</summary>'
echo -e "\n\`\`\`console"
echo "$ python -m pip show --files --verbose rdmo"
python -m pip show --files --verbose rdmo
echo -e "\`\`\`\n</details>"
} >> $GITHUB_STEP_SUMMARY
- name: Upload wheel as artifact
uses: actions/upload-artifact@v4
with:
name: wheel
path: dist/rdmo*.whl
if-no-files-found: error
retention-days: 30
- name: Build and inspect package
uses: hynek/build-and-inspect-python-package@efb823f52190ad02594531168b7a2d5790e66516 # v2.14.0

test:
name: "Test (Python: ${{ matrix.python-version }}, DB: ${{ matrix.db-backend }})"
needs: build-wheel
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ['3.9', '3.13']
python-version: ['3.10', '3.13']
db-backend: [mysql, postgres]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Download wheel
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: wheel
name: Packages
path: dist
- name: Install Dependencies
run: |
Expand Down Expand Up @@ -141,10 +101,12 @@ jobs:
env:
GITHUB_DB_BACKEND: ${{ matrix.db-backend }}
- name: Upload coverage data to coveralls.io
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6
uses: coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # v2.3.7
with:
flag-name: '${{ matrix.db-backend }}: ${{ matrix.python-version }}'
parallel: true
fail-on-error: false
allow-empty: true

test-e2e:
name: "End-to-end Test (Python: ${{ matrix.python-version }}, DB: ${{ matrix.db-backend }})"
Expand All @@ -155,16 +117,18 @@ jobs:
python-version: ['3.13']
db-backend: [postgres]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Download wheel
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: wheel
name: Packages
path: dist
- name: Install Dependencies
run: |
Expand All @@ -190,7 +154,7 @@ jobs:
env:
DJANGO_DEBUG: True
GITHUB_DB_BACKEND: ${{ matrix.db-backend }}
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v5
with:
name: screenshots
path: screenshots/**/*.png
Expand All @@ -202,9 +166,10 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Run Coveralls finish
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6
uses: coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # v2.3.7
with:
parallel-finished: true
fail-on-error: false

dev-setup:
# Ref: structlog (MIT licensed) <https://github.com/hynek/structlog/blob/main/.github/workflows/ci.yml>
Expand All @@ -214,8 +179,10 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
Expand All @@ -227,24 +194,26 @@ jobs:
needs: build-wheel
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
- name: Download wheel
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: wheel
name: Packages
path: dist
- name: Install os requirements for python-ldap
run: sudo apt-get update && sudo apt-get install --yes libldap2-dev libsasl2-dev
- run: python -m pip install --upgrade pip
- name: Install rdmo wheel with all optional dependency groups
run: python -m pip install --no-compile "$(ls dist/*.whl)[allauth,ci,dev,gunicorn,ldap,mysql,postgres,pytest]"
run: python -m pip install --no-compile "$(ls dist/*.whl)[all]"
- name: Verify installed packages have compatible dependencies
run: python -m pip check
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
Expand Down Expand Up @@ -286,6 +255,6 @@ jobs:
- dependencies
runs-on: ubuntu-24.04
steps:
- uses: re-actors/alls-green@release/v1
- uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
with:
jobs: ${{ toJSON(needs) }}
15 changes: 10 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ repos:
hooks:
- id: check-hooks-apply
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: check-ast
- id: check-json
Expand All @@ -22,12 +22,12 @@ repos:
exclude: \.dot$
- id: debug-statements
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.11.12
rev: v0.14.7
hooks:
- id: ruff
- id: ruff-check
args: [--fix, --exit-non-zero-on-fix]
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v9.28.0
rev: v9.39.1
hooks:
- id: eslint
args: [--fix, --color]
Expand All @@ -36,7 +36,7 @@ repos:
- eslint-plugin-react@7.37.0
- react@18.3.1
- repo: https://github.com/crate-ci/typos
rev: v1
rev: v1.40.0
hooks:
- id: typos
exclude: |
Expand All @@ -49,6 +49,11 @@ repos:
testing/.*.json|
testing/.*.xml
)$
- repo: https://github.com/zizmorcore/zizmor-pre-commit
rev: v1.18.0
hooks:
- id: zizmor
args: [--fix, --offline]
ci:
autoupdate_schedule: monthly
autofix_prs: false
Expand Down
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,55 @@
# Changelog 📔

## [RDMO 2.4.0](https://github.com/rdmorganiser/rdmo/releases/tag/2.4.0) (December 15, 2025)

### Main improvements ⭐

* Rewrite progress bar and navigation using a new `AnswerTree` class (#1346)
* Allow links in select dropdown by optionset provider plugins (#1408)

### Breaking changes ⚠️

* The filtering behaviour of sites in a multisite setup for catalogs, tasks and views was changed (#1488).
From now on, but only when `settings.MULTISITE = True`, a catalog that does not have any sites associated
with it will not be available to **any site**. Before those catalogs were available to all sites. For non-multisite
instances, this behaviour will not change. A data migration for catalogs is included in this release, so that
no extra action is required when updating.
* The rules `is_editor_for_current_site` and `is_reviewer_for_current_site` (which might be used in templates) were
removed and the equivalent `is_editor` and `is_reviewer` can be used instead (#1431).

### Bug fixes 🐛

* Fix a bug with the autosave of checkboxes, radio buttons and additional input (#1406)
* Fix a bug where text and icons overlap in the interview (#1398)
* Fix datepicker date conversion in interview (#1465)
* Fix a bug with legacy management permissions and disable the latter in a multisite setup (#1425)
* Fix a bug with verbose name that contain a space (#1453)
* Fix a bug with site availability of catalogs in a multisite setup (#1481)

### Translations 🌍

* Consistent naming of "Tabs" in every language (#1459)
* Language improvements in the French localisation (#1397)
* Several minor fixes (#1411, #1424)

### Maintenance and Dependencies 🔧

* Drop support for Python 3.9
* Add `all` and `recommended` dependency groups
* Ignore fewer `ruff` rules (`B007`, `B006`, `B018`)
* Use [zizmor](https://github.com/zizmorcore/zizmor) to harden CI setup
* Update `poedit` management script to work on macOS
* Add checks for shibboleth setup (#1407)
* Add cookies to window (#1473)
* Use dynamic versioning (#1486)

**Milestones**:
[2.3.3](https://github.com/rdmorganiser/rdmo/milestone/24?closed=1),
[2.4.0](https://github.com/rdmorganiser/rdmo/milestone/21?closed=1)

**Commit history**: [2.3.2...2.4.0](https://github.com/rdmorganiser/rdmo/compare/2.3.2...2.4.0)


## [RDMO 2.3.2](https://github.com/rdmorganiser/rdmo/compare/2.3.1...2.3.2) (July 4, 2025)

* Improve ORCID branding display and social connections page (#1376)
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ If you decide to work on the issue yourself, please wait until you received some

## How to set up your development environment

You need [Python 3.9+](https://www.python.org/downloads).
You need [Python 3.10+](https://www.python.org/downloads).

Install the package with development requirements:

Expand Down
Loading