feat(phonebook): use modular association groupements#759
Merged
Marc-Andrieu merged 12 commits intomainfrom Jan 30, 2026
Merged
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #759 +/- ##
==========================================
+ Coverage 84.85% 84.91% +0.05%
==========================================
Files 199 199
Lines 14101 14166 +65
==========================================
+ Hits 11966 12029 +63
- Misses 2135 2137 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
armanddidierjean
approved these changes
Jun 26, 2025
Member
armanddidierjean
left a comment
There was a problem hiding this comment.
LGTM. You should use a dependency instead of is_user_member_of_any_group
833474f to
df6d05e
Compare
45b4497 to
dd3b1a5
Compare
3 tasks
957c79d to
dca585c
Compare
19 tasks
Marc-Andrieu
approved these changes
Jan 30, 2026
Marc-Andrieu
added a commit
to aeecleclair/Titan
that referenced
this pull request
Jan 30, 2026
# Description ## Summary <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> Assuming this is the front-end of aeecleclair/Hyperion#759 <!--#### Sources at the end--> ## Changes Made <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Don't touch thses two tags--> <details> <summary> # Classification </summary> ## Type of Change - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [x] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users ## Impact & Scope - [ ] Core functionality changes - [x] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> ## Testing - [x] 1. Tested this locally - [x] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly ## Documentation - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> --------- Co-authored-by: Thonyk <timr.web@free.fr>
Rotheem
added a commit
to ProximApp/Hyperion
that referenced
this pull request
Feb 28, 2026
commit 58a9017666e904041dd191f69511302e7c562502
Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Date: Wed Feb 25 00:13:43 2026 +0100
added respo TE as a phonebook roletag (#886)
The BDE secretary asked that Respo TE be a role of the bureau for the
BDE
<!--Sources/references at the end-->
<!-- If applicable-->
<!--Use keywords "closes", "fixes", "resolves", or others at
https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests
-->
<!--Fixes #-->
<!--Fixes aeecleclair/CalypSSO#-->
<!-- If applicable-->
<!--Use keywords "depends on" or "blocked by", see
https://github.com/gregsdennis/dependencies-action -->
<!--Depends on #-->
<!--Depends on aeecleclair/CalypSSO#-->
<!--Please describe the changes made in this pull request-->
<!--Tell the big steps, use a checklist to show progress. You can
explain here how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: <!--not module-oriented-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI
- [ ] 3. Tested in a pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit d0a93ee2de97b88ce2c4ff16551168620bfcf236
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Feb 18 22:39:20 2026 +0100
Feat: use workers even without Redis (#874)
<!--Brief description of what this PR does.-->
Now we can enjoy using workers locally even without Redis: it was only
useful to set a lock on initialization.
<!--Please describe the changes made in this pull request-->
- made a distinction between the number of workers, and having a Redis
instance or not
- the fallback Redis-less lock is just allowing the first worker to run
the 5 init functions: the iterator of workers always output the element
in the same order (tested locally in `dev` (necessarily 1 worker), and
in `run` with 1 (no `--worker` flag), 2, 3, 4, 6, 8 and 12 workers)
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other
- [ ] Added/modified tests that pass the CI
- [ ] Tested in a pre-prod
- [x] Tested this locally
- [ ] Updated docs accordingly (docs.myecl.fr) : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] Code includes docstrings
- [x] Inline comment
- [ ] No documentation needed
- [ ] My code follows the style guidelines of this project
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] Any dependent changes have been merged and published (_Indicate
the linked PR for the dependent changes_)
Add any other context, screenshots, or information about the pull
request here.
---------
Co-authored-by: Lühmos <guillaume.foucher.pele@gmail.com>
commit 7cd32e9be9e57b5c3ea6aabfa19e87c0262692b7
Author: Rémi <83755025+Pokegali@users.noreply.github.com>
Date: Wed Feb 18 20:27:01 2026 +0100
Fix all of those pesky mypy errors (#959)
There were 18 mypy errors lying around in the main branch, and there are
none, now.
None
None
None
- [x] Remove the mypy errors
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [x] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit d43ad5f01ff00ab190279a873fb8761e23e6da83
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Feb 18 02:24:51 2026 +0100
Fix(AMAP): write info logs in euros, not cents (#952)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->

That's why
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Display the amount in euros (float), rounded with 2 digits after
comma, then "€".
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 298d7a23c31cd55592b802a5514263ec1204dd20
Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Date: Tue Feb 17 23:56:25 2026 +0100
Improve loans (#958)
This PR fixes how slow the get_current_user_loaners endpoint is (the one
we wait for before the admin button shows up) and improves the tests and
factory for the loan module.
The loan factory didn't use real groups to create loaners from, so they
couldn't be used in the same way as a loan created through the app,
which defeats the purpose.
The factory and tests now behave the same way as the endpoints do, by
creating LoanContent in db.
The tests now actually check some of the output rather than only the
response status code.
Some relationship loading models have been changed to not load
unnecessary data, which necessitated a really slow call to unique().
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 707bb52b82fea8d2b9ae0f1716a73cbe56d277f7
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sun Feb 15 20:50:43 2026 +0100
Allow admin to handle purchases (#955)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit fc596b7ebbcfec984e57a552739909f88b93d9a6
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sun Feb 8 02:23:38 2026 +0100
Challenger more export (#943)
Added more export options to Challenger
Added
- captains exporter
- sport participants exporter
- school users exporter
- school quotas exporter
- sport quotas exporter
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [x] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 1ad10e476b767b6ccc6d23b197a56516031c319e
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Fri Feb 6 22:56:45 2026 +0100
Fix competition counter (#953)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 6f9da70bc41786a5d05c96c1a71ec19641e73727
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Thu Feb 5 14:50:15 2026 +0100
Bump 5.0.3
commit 523775aca1dfc8086c98410c2618f4e97a8c5a86
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Thu Feb 5 14:46:48 2026 +0100
Fix competition validation (#951)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit f9a3c08070d1b4d0088d6bdc4400ea07333d83ed
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Feb 3 16:05:27 2026 +0100
Fix #950
commit d9d08d152c6fac40e9565e2a5cc6294bba28e163
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Feb 3 15:49:16 2026 +0100
Pin versions of Postgres, Redis, Python and uv in CI, Dockerfile and Docker composes (#950)
…Docker composes
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
That's obvious
<!--#### Sources at the end-->
Subset of #944
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
See diff
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [x] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [x] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 457e7aeb0fdbb45fd16d78bc30e34f42b8135482
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Jan 31 13:19:32 2026 +0100
Fix(Git ignorecase=false): keep default_PDF.pdf, remove default_pdf.pdf (#947)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
That damn PDF breaks my local repo bc it conflicts with my global
`ignorecase = false` git config
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] `rm default_pdf.pdf` (used once vs thrice for `default_PDF.pdf`)
- [ ] use only `default_PDF.pdf` in the codebase
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [x] Other: <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit fc7181921895d2a2ae23e5dd09e269bf6fe18e6a
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Fri Jan 30 14:22:40 2026 +0100
feat(phonebook): use modular association groupements (#759)
Please explain the changes you made here.
- [ ] Created tests which fail without the change (if possible)
- [ ] All tests passing
- [ ] Extended the documentation, if necessary
commit 8bc4861339392268147c249e3d83ee1fbe7e46b2
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Mon Jan 19 19:48:09 2026 +0100
Fix mypayment invoices reference parsing (#941)
Change MyPayment Invoice reference parsing during creation to improve
robustness
Use RegEx to parse any accepted format and not a specific one
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit dfc6359b7d0116be7b5618d47e2d96bc048391fe
Author: Lühmos <guillaume.foucher.pele@gmail.com>
Date: Sat Jan 10 01:51:39 2026 +0100
Make weasyprint optional for development (#936)
Makes weasyprint optional for development as it's rarely (if even) used.
Moves the library import inside the function that uses it, moves the
requirement in a new file only for production (we might need to change
the github workflow but idk how to do that), and changes the readme
accordingly.
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [x] Other: development workflow changes <!--Not module-oriented: write
something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed (?)
</details>
---------
Co-authored-by: Timothée Robert <timr.web@free.fr>
commit f848c27ee65788e2354206528a541ae2ab8824f6
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 9 13:57:37 2026 +0100
Raise Titan's minimal version (#939)
commit c8d4871e2a86e4d9f1dbd9ee1bf52576931b4c3d
Author: Flaim-X2 <cecchinato.mathieu.n@gmail.com>
Date: Wed Jan 7 01:20:40 2026 +0100
AMAP in cents (#686)
Replace float with int.
---------
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
Co-authored-by: Thonyk <timr.web@free.fr>
Co-authored-by: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Co-authored-by: Lühmos <guillaume.foucher.pele@gmail.com>
Co-authored-by: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Co-authored-by: Marc-Andrieu <marc.andrieu@outlook.com>
commit 5ad761ebfd6c36bc3070f54d0f5f1e0fd5ee1cf8
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Jan 6 13:25:07 2026 +0100
Rename MyECLPay to MyPayment for genericity & bump CalypSSO (#914)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Renaming MyECLPay to MyPayment for 2 reasons:
- Compatibility with CalypSSO: For #879 I need a change on CalypSSO, but
the current latest (2.6.1) breaks Hyperion, hence this refacto is
required
- Genericity: not hard-coding our school's name in the internal payment
solution to make it easier to fork and deploy for other schools
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Renaming myeclpay to mypayment to fix CalypSSO compatibility
- [x] Refacto for CalypSSO to work
- [x] Refactor the displayname for the front-end
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [x] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit b5cc8a0218f463909d04ba5039fa5d3c89746f52
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Mon Jan 5 12:14:36 2026 +0100
Initialiaze basic auth permission on startup (#935)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit a540c36bb613be965bb41d60fb8cc999972ac335
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Fri Jan 2 02:59:46 2026 +0100
POC: Modular permissions (#679)
Relying on hardcoded groups for access restriction is prone to be
limiting at some point. We can't easily change which group owns a
specific module and it is heavily dependent on Centrale's association
structure.
This PR introduces a new concept : Permissions. Represented by
system-wide unique string they are declared by modules and replace
completely GroupTypes for endpoint restriction. A user must have the
endpoint's specific permission to have access to it. A permission can be
linked to a user through 2 ways :
- Linking a group to the permission and having the user in the group
- Linking an account type to the permission and having this account type
for the user
Thus, a permission can be linked to multiple groups and/or account type,
can be easily transferred and allow each Hyperion instance to adapt
better to any school's association structure.
The visibility system was introduced to restrict in-app access to
module, however it was still falling short for direct API calls both in
synchronization and flexibility. The visibility could be set on/off for
certain account types or groups while the endpoint would still be
restricting another group and only GroupType could be used for API
restriction.
To address this issue, we use `access_XXX` permissions, this specific
syntax will be recognized by Titan as a replacement for visibility. As
permissions are fully modular and uniformized, both issues are resolved
by replacing visibility by specific permissions.
Auth providers allow access depending on account types or GroupTypes,
however as permissions delete GroupTypes there was a need to refacto
this part. The chosen method is a set of specific permissions for auth
manually added to the global permission list after the module discovery.
- [x] add permissions modification logic
- [x] declare modules' permissions
- [x] refactor all modules' endpoints restrictions with permissions
check
- [x] refactor visibility with specific permissions
- [x] refactor auth access
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [x] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: <!--not module-oriented-->
- [ ] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI
- [ ] 3. Tested in a pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 61a12ce906a1260bbff20b645a80e84b4ad27f01
Author: NakoGH <rbelahcene10@gmail.com>
Date: Wed Dec 31 19:46:25 2025 +0100
MyECLPay export csv (#927)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
---------
Co-authored-by: Thonyk <timr.web@free.fr>
commit c507e2f425b7efb614736335b5c4ae6ea4ade715
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Dec 31 19:15:42 2025 +0100
fix: run Codecov project only on main branch (#912)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Codecov project (not patch) fails in PRs when we don't run all tests
because... well... not all lines are being tested.
<!--#### Sources at the end-->
* https://docs.codecov.com/docs/commit-status
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Run the global ("project") only when run on the main branch, not
in PRs
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [x] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [x] Other: `codecov.yaml` <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [x] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 0527f235386860c7e3bec7099961fcda5284c2d9
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Wed Dec 31 18:47:41 2025 +0100
Save tip_amount in db (#919)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 0705ecc8e43cd632e70bfbcd7de4de75b6e09c30
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Mon Dec 29 16:14:27 2025 +0100
Fix competition withdrawal (#932)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit f5d2f74c5937dc3ab74e4781aa8b49e7923a6b2f
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Wed Dec 17 19:26:26 2025 +0100
Allow to ask for the email scope (#928)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Some oidc clients may require to be able to ask for the `email` scope
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [x] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 2891c6252dbe32c4f6b3ae67d0b90c4642da936c
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Wed Dec 17 19:26:13 2025 +0100
Use correct competition permissions (#929)
Use correct competition permissions dependencies
Use correct competition permissions dependencies
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit 5fd6acef521510ef80290b200b4ee6ef10c70163
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Dec 9 18:36:48 2025 +0100
Update README.md, and various related changes (#845)
See the commits for a (rather) clear-cut view of the changes
---------
Co-authored-by: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Co-authored-by: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
commit ca3324196c1788e3b85f48e35cdff07c25bb4d73
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Tue Dec 9 14:41:53 2025 +0100
Fix competition migration (#923)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit fe8a0b457c038c758cc3ebe43dc2c13785d9493b
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Dec 9 14:23:49 2025 +0100
Bump Hyperion 4.11.1 (#921)
commit b718ba447116b184acf7bdd8536d0da193fb606a
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Tue Dec 9 14:21:29 2025 +0100
Fix competition migration (#920)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [ ] No documentation needed
</details>
commit a6238d0ca61644b7516d2ff1a6e50a929510aef0
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Dec 6 13:15:35 2025 +0100
Sport competition part 2 (#901)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on #-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [x] Database migrations required
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a deployed pre-prod
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `"` Docstrings
- [ ] `#` Inline comments
- [x] No documentation needed
</details>
commit 2606c2023ad6254e35f5076c1d4caea22aaaa75a
Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Date: Sun Nov 30 21:35:35 2025 +0100
Flappybird fix (#913)
Some data was stored in db but never accessed
---------
Co-authored-by: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Co-authored-by: Marc-Andrieu <marc.andrieu@outlook.com>
commit 814bf45b622aeb32877ca43e32651f38388ed2e0
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sun Nov 30 21:10:45 2025 +0100
Preprod-building workflow: input PR number instead of branch name (#892)
<!--Brief description of what this PR does.-->
<!--Don't explain the code, justify what this PR exists for!-->
The new manually-triggered workflow to build&push pre-prods has a nice
dropdown to select the pre-prod...
But the branch name had to be put in as a string.
**Now you write the PR number.**
* Before, it required the dev to search the branch name (which we often
don't know), but we remember more easily PR numbers because shorter.
* A branch name is long thus prone to errors, a PR number is less
error-prone
* There was no validation before, now a step ensures the PR number makes
sense in the 1st place.
The best would have been a nice dropdown (with branch names or PR
numbers, whatever) because this ensures no error is possible and the dev
doesn't have to search information.
But I did not find how to run some command before/inside the top-level
`on` to generate the dropdown choices.
<!--Sources/references at the end-->
<!--Use keywords "closes", "fixes", "resolves", or others at
https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests
-->
<!--Fixes #-->
<!--Fixes aeecleclair/CalypSSO#-->
<!--Use keywords "depends on" or "blocked by", see
https://github.com/gregsdennis/dependencies-action -->
<!--Depends on #-->
<!--Depends on aeecleclair/CalypSSO#-->
<!--Please describe the changes made in this pull request-->
<!--Tell the big steps, use a checklist to show progress. You can
explain here how the code works.-->
You'd better read the code for this one.
<!--Anything relevant that does not quite fit in the summary-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [x] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
<!---->
- [ ] 😶🌫️ No impact for the end-users
- [x] Other: CI/CD<!--not module-oriented-->
- [ ] Tested on a fork, when the number has an opened PR and when not
- [x] No documentation needed
</details>
commit 542646d7f6ce38628a971631198715c4e7474f00
Author: julien4215 <120588494+julien4215@users.noreply.github.com>
Date: Sun Nov 30 08:20:55 2025 +0100
Upgrade Python to 3.14 (#915)
commit f02f39f054569d4d7c1b406bfd9791c3931b0434
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat Nov 29 19:01:30 2025 +0100
Bump glob from 10.4.5 to 10.5.0 in /assets/templates (#911)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/isaacs/node-glob/commit/56774ef73b495eb0b17cdd0f42921f5ef62297c1"><code>56774ef</code></a>
10.5.0</li>
<li><a
href="https://github.com/isaacs/node-glob/commit/1e4e297342a09f2aa0ced87fcd4a70ddc325d75f"><code>1e4e297</code></a>
bin: Do not expose filenames to shell expansion</li>
<li>See full diff in <a
href="https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/aeecleclair/Hyperion/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
commit 4d028162d9c869e4d4182ce13e9c451605545576
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat Nov 29 17:32:52 2025 +0100
Bump brace-expansion from 2.0.1 to 2.0.2 in /assets/templates (#760)
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion)
from 2.0.1 to 2.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/juliangruber/brace-expansion/releases">brace-expansion's
releases</a>.</em></p>
<blockquote>
<h2>v2.0.2</h2>
<ul>
<li>pkg: publish on tag 2.x 14f1d91</li>
<li>fmt ed7780a</li>
<li>Fix potential ReDoS Vulnerability or Inefficient Regular Expression
(<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/65">#65</a>)
36603d5</li>
</ul>
<hr />
<p><a
href="https://github.com/juliangruber/brace-expansion/compare/v2.0.1...v2.0.2">https://github.com/juliangruber/brace-expansion/compare/v2.0.1...v2.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/juliangruber/brace-expansion/commit/a3efcee659ef0fb381e2b50d759c720900580a15"><code>a3efcee</code></a>
2.0.2</li>
<li><a
href="https://github.com/juliangruber/brace-expansion/commit/14f1d91b0523ffb0c8bbe6a28dc98ddc56ae53bc"><code>14f1d91</code></a>
pkg: publish on tag 2.x</li>
<li><a
href="https://github.com/juliangruber/brace-expansion/commit/ed7780ab1cb8a7696f1813b5a945fcc70d8d1990"><code>ed7780a</code></a>
fmt</li>
<li><a
href="https://github.com/juliangruber/brace-expansion/commit/36603d5f3599a37af9e85eda30acd7d28599c36e"><code>36603d5</code></a>
Fix potential ReDoS Vulnerability or Inefficient Regular Expression (<a
href="https://redirect.github.com/juliangruber/brace-expansion/issues/65">#65</a>)</li>
<li>See full diff in <a
href="https://github.com/juliangruber/brace-expansion/compare/v2.0.1...v2.0.2">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/aeecleclair/Hyperion/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
commit 317d4d4bcba41b2d530c677776fdcf58df7b9b61
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat Nov 29 17:24:59 2025 +0100
Bump pypdf from 4.3.1 to 6.4.0 (#907)
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 4.3.1 to 6.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/py-pdf/pypdf/releases">pypdf's
releases</a>.</em></p>
<blockquote>
<h2>Version 6.4.0, 2025-11-23</h2>
<h2>What's new</h2>
<h3>Security (SEC)</h3>
<ul>
<li>Reduce default limit for LZW decoding by <a
href="ht…
Rotheem
added a commit
to ProximApp/Titan
that referenced
this pull request
Mar 7, 2026
commit 5085d0a Author: FastSpyder <FastSpyder321@gmail.com> Date: Sun Mar 1 02:41:45 2026 +0100 Changing names in the deleting xxx admin interfaces (users from groups, groups and schools) to add name of the deleted entity (aeecleclair#656) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> When deleting someone from the admin interface, it is unclear and misleading which entity is deleted <!--#### Sources at the end--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] Changing message from deleting Group - [x] Changing message from deleting User from a Group - [x] Changing message from deleting School <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch these two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [x] ✨ New feature (non-breaking change which adds functionality) - [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [x] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [x] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [x] `//` Comments - [ ] No documentation needed </details> commit d9f9828 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Sat Feb 28 13:39:45 2026 +0100 Fix README.md and various related things (aeecleclair#655) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> Analogous to aeecleclair/Hyperion#926 <!--#### Sources at the end--> <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch these two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [x] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [x] Other: README <!--Not module-oriented: write something!--> - [x] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly This *is* documentation. </details> commit 603a6ac Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Fri Feb 20 23:38:05 2026 +0100 Optimize(Web): gzip pre-compression (aeecleclair#653) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> The web version can be unbearably slow. One way to fix it is compression. - Compression = fewer data is transferred over the network = faster loading times (even more blatant in slow networks) - Pre-compression = compressed once (here I included this in the building of the Docker image), served instantly from disk, no CPU overhead, and allows more aggressive levels without downsides for the client (source: the creator of gzip himself said so on StackOverflow) = even faster - gzip = already in Nginx by default. Brotli may be even faster to decompress, and supported everywhere as well, but building a Nginx+Brotli image really is unmaintainable for us. <!--#### Sources at the end--> Sources: - https://stackoverflow.com/a/37892135/30331616 A video is better than 1000 words: ~30% faster with a fast connection. Can go up to 2x faster in slower networks. Consistently 12.0-12.2s for https://titan.dev.eclair.ec-lyon.fr and 8.7-9.0s for https://titan-1.dev.eclair.ec-lyon.fr https://github.com/user-attachments/assets/a3d00882-fd46-4221-b337-1857829246a3 Subset of the draft aeecleclair#646 for Nginx pre-compression. <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] Nginx config: gzip config: gzip & gunzip, static, level 9, >512 bytes, mime types to take text-based files & avoid images, - [x] Dockerfile: include the compression there, for >512 bytes file, take text-based files & avoid image - [x] Consistent params between the Nginx config and the compression during image build. - [x] Re-run `flutter pub run pdfx:install_web` to regenerate the PDF script <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [x] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [x] Optimization - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [x] Other: Dockerfile, Nginx config, index.html <!--Not module-oriented: write something!--> - [x] 1. Tested this locally: built and run my Docker image - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [x] 3. Tested in a local client using a pre-prod backend - [x] 4. Created the 1st Titan pre-prod for the occasion - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> commit d06e20c Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Tue Feb 10 14:30:14 2026 +0100 Update README.md and .env.template (aeecleclair#638) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> Titan counterpart of aeecleclair/Hyperion#845 <!--#### Sources at the end--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] Follow aeecleclair/Hyperion#845 style: working environment > dependencies > fill the config file (`.env`) > launch it > beyond - [x] Pre-fill the `.env` <!--Anything relevant that does not quite fit in the summary--> Go on https://github.com/aeecleclair/Titan/blob/update/readme/README.md to see the Markdown preview. <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [x] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [x] Other: Installation guide <!--Not module-oriented: write something!--> This PR *is* documentation. </details> commit 27a10d9 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Mon Feb 9 13:48:05 2026 +0100 Use a `web_dev_config.yaml` (a Flutter 3.38 novelty) (aeecleclair#651) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> `web_dev_config.yaml` is a brand-new config file, added in Flutter 3.38. Here it's first use will be to use the port 3000 without having to type it ever again, even in command line! Also, sync-ed headers with the Nginx config. Fixing the port and headers here means **reproducible** runs **aligned** with the way (static) builds are served by Nginx. <!--#### Sources at the end--> Source: https://docs.flutter.dev/platform-integration/web/web-dev-config-file <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] Add a `web_dev_config.yaml` for port 3000 - [x] Remove the `--web-port 3000` from the launch.json - [x] Add `Cache-Control` headers and sync-ed with the Nginx config - [x] Fix: the pubspec.lock automatically sync-ed the Dart SDK version on the pubspec.yaml (someone modified it by hand and didn't `pub get` afterward) <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch these two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [x] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [x] Other: Development only (file only used locally by devs) <!--Not module-oriented: write something!--> - [x] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [x] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [x] No documentation needed </details> commit cb570b2 Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com> Date: Mon Feb 9 12:56:18 2026 +0100 Release 2.0.6 (aeecleclair#650) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> ... <!--#### Sources at the end--> <!--Use a keyword, then aeecleclair#123 for the same repo or aeecleclair/RepoName#123 for another--> <!--Keywords: "closes", "fixes", "resolves" --> <!--Fixes #--> <!--Keywords: "depends on", "blocked by" --> <!--Depends on aeecleclair/Hyperion#--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [ ] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> commit 02a9741 Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com> Date: Thu Feb 5 15:21:20 2026 +0100 Fix web worker (aeecleclair#649) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> ... <!--#### Sources at the end--> <!--Use a keyword, then aeecleclair#123 for the same repo or aeecleclair/RepoName#123 for another--> <!--Keywords: "closes", "fixes", "resolves" --> <!--Fixes #--> <!--Keywords: "depends on", "blocked by" --> <!--Depends on aeecleclair/Hyperion#--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [ ] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> commit f19e347 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Fri Jan 30 16:03:33 2026 +0100 Release v2.0.5+163-alpha (aeecleclair#645) commit 5e73e13 Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com> Date: Fri Jan 30 15:58:14 2026 +0100 Correct member filtering (aeecleclair#644) Fix member filtering in phonebook <!--#### Sources at the end--> <!--Use a keyword, then aeecleclair#123 for the same repo or aeecleclair/RepoName#123 for another--> <!--Keywords: "closes", "fixes", "resolves" --> <!--Fixes #--> <!--Keywords: "depends on", "blocked by" --> <!--Depends on aeecleclair/Hyperion#--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [ ] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> commit 4f8095a Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Fri Jan 30 15:53:25 2026 +0100 Feat(phonebook): button to copy a pastable email list (aeecleclair#619) As asked by the clients of this module, a button to copy to clipboard the email list of an association's term, so that it can be pasted in and parsed by mail clients Not sure it's the best UI rendering, tho <img width="1113" height="502" alt="image" src="https://github.com/user-attachments/assets/6754bb26-24c4-4e03-b884-6bf580d3293e" /> commit 36e8580 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Fri Jan 30 14:39:27 2026 +0100 Association groupement (aeecleclair#643) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> Assuming this is the front-end of aeecleclair/Hyperion#759 <!--#### Sources at the end--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [x] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [x] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [x] 1. Tested this locally - [x] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> --------- Co-authored-by: Thonyk <timr.web@free.fr> commit e42acfb Author: NakoGH <rbelahcene10@gmail.com> Date: Tue Jan 27 19:30:08 2026 +0100 Myeclpay export history to csv (aeecleclair#641) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> <img width="437" height="449" alt="image" src="https://github.com/user-attachments/assets/2d20a1c6-a185-4851-90b7-fb7a5da98d89" /> <!--#### Sources at the end--> <!--Use a keyword, then aeecleclair#123 for the same repo or aeecleclair/RepoName#123 for another--> <!--Keywords: "closes", "fixes", "resolves" --> <!--Fixes #--> <!--Keywords: "depends on", "blocked by" --> <!--Depends on aeecleclair/Hyperion#--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [x] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [x] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> commit 98b6486 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Tue Jan 27 15:58:31 2026 +0100 Feat(Booking): manage from dialog (aeecleclair#617) [Requested by Sid] The point is to make the booking module more intuitive to manage a booking you're authorized to manage (if you're manager ~~or if it's a booking you requested~~). You click on the colored cells in the calendar, and the popup lets you henceforth manage it (i.e. edit, copy information, and crucially: accept and decline). Previously, the popup was there but with read-only stuff, now there's "write" stuff as well. See screen recording below: on the manager page, pending booking requests are now displayed, but translucent to distinguish them from the accepted ones. In any case, the manager, can tap the booking to manage it from the dialog instead of scrolling through dozens of cards, making its life far easier. https://github.com/user-attachments/assets/82f680ab-0583-41f0-892f-9e32eee6714b commit 2dd1133 Author: Warix <39554785+warix8@users.noreply.github.com> Date: Fri Jan 16 14:34:03 2026 +0100 [.env] Minimal Hyperion Version (aeecleclair#480) These changes introduce a **minimal Hyperion version** to ensure Titan can work properly. When a new Titan version with a new Hyperion including breaking changes (e.g. login system) is introduced, there will be a downtime because the stores take a few hours to review the version. Thus, the new version is submitted to the store, this version will work because it will fall back to the alpha version. No downtime anymore for introducing breaking changes. --------- Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com> Co-authored-by: Marc-Andrieu <marc.andrieu@outlook.com> Co-authored-by: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> commit f7c7831 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Mon Jan 12 10:00:03 2026 +0100 Release v2.0.4+162-alpha (aeecleclair#639) commit 02c3528 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Mon Jan 12 09:51:04 2026 +0100 Fix(Flutter web deprecation): use worker version special token (+ HTML formatting) (aeecleclair#637) <!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is for!--> For a long time we've had an annoying deprecation warning everytime we launch the project locally, and today I'm fed up with it. <!--#### Sources at the end--> Source: https://docs.flutter.dev/platform-integration/web/initialization <!--Use a keyword, then aeecleclair#123 for the same repo or aeecleclair/RepoName#123 for another--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] Use the template `{{flutter_service_worker_version}}` as intended per the docs - [x] Format the index.html <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [x] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [x] Other: follow deprecation warning <!--Not module-oriented: write something!--> - [ ] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [x] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [x] No documentation needed </details> commit cc72b0b Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Sun Jan 11 23:46:06 2026 +0100 Fix: bump google_fonts to use the new Flutter API to find fonts (aeecleclair#636) <!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is for!--> notes](https://docs.flutter.dev/release/release-notes/release-notes-3.38.0), has the following breaking change: > Remove deprecated AssetManifest.json file by @matanlurey in [172594](flutter/flutter#172594) But `google_fonts 6.2.1` relied on this file, until 6.3.0 where, according to the [changelog](https://pub.dev/packages/google_fonts/changelog#630), they: > Update AssetManifest to use the builtin Flutter API. That's why `google_fonts` version ought to be bumped. NB: 7.0.0 was released 4 days ago, without breaking changes according to the changelog, I decided to test it and it works as before aeecleclair#635 <!--#### Sources at the end--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] Use `google_fonts 7.0.0` <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [x] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [x] 😶🌫️ No impact for the end-users: that's why an alpha was for: testing - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [x] Other: dependency <!--Not module-oriented: write something!--> - [ ] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [x] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [x] No documentation needed </details> commit 517fcc8 Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com> Date: Sun Jan 11 15:53:03 2026 +0100 feat: Flutter 3.38.6 and ios generated files (aeecleclair#635) <!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is for!--> ... <!--#### Sources at the end--> <!--Use a keyword, then aeecleclair#123 for the same repo or aeecleclair/RepoName#123 for another--> <!--Keywords: "closes", "fixes", "resolves" --> <!--Fixes #--> <!--Keywords: "depends on", "blocked by" --> <!--Depends on aeecleclair/Hyperion#--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [ ] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> commit d48f6fd Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Sat Jan 10 19:46:32 2026 +0100 Fix: lower the minimum Android API level to Flutter's (keep the targeted SDK version to 36) (aeecleclair#634) <!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is for!--> Accidentally bumped the Android API instead of only the SDK + Gradle-related stuff <!--#### Sources at the end--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] Change Android's so-called minSdk (they name things weirdly) </summary> - [x] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [x] 😶🌫️ No impact for the end-users: because we can't release an app compatible with only about 2% of the market (according to the Play Store console) - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [x] Other: build-related stuff to ensure we're still compatible with most of our users' phones <!--Not module-oriented: write something!--> - [ ] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [x] 0. Untestable (exceptionally), will be tested in alpha directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [x] No documentation needed </details> --------- Co-authored-by: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com> commit be5d7d9 Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com> Date: Sat Jan 10 02:13:56 2026 +0100 Fix mypayment root (aeecleclair#633) <!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is for!--> ... <!--#### Sources at the end--> <!--Use a keyword, then aeecleclair#123 for the same repo or aeecleclair/RepoName#123 for another--> <!--Keywords: "closes", "fixes", "resolves" --> <!--Fixes #--> <!--Keywords: "depends on", "blocked by" --> <!--Depends on aeecleclair/Hyperion#--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [ ] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> commit efd6b69 Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com> Date: Sat Jan 10 01:45:11 2026 +0100 Fix root comparison for permission (aeecleclair#632) <!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is for!--> ... <!--#### Sources at the end--> <!--Use a keyword, then aeecleclair#123 for the same repo or aeecleclair/RepoName#123 for another--> <!--Keywords: "closes", "fixes", "resolves" --> <!--Fixes #--> <!--Keywords: "depends on", "blocked by" --> <!--Depends on aeecleclair/Hyperion#--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [ ] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [ ] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [ ] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [ ] No documentation needed </details> commit 2bc5124 Author: Flaim-X2 <cecchinato.mathieu.n@gmail.com> Date: Wed Jan 7 01:20:40 2026 +0100 AMAP in cents (aeecleclair#496) Keeps amounts, accounts and balances in cents and calculates them in cents, i.e. in int. Then the front-end displays in euros and takes in euros. --------- Co-authored-by: Maxime Roucher <maximeroucher@gmail.com> Co-authored-by: Lühmos <guillaume.foucher.pele@gmail.com> Co-authored-by: Maillard Antoine <145469528+cotanoine@users.noreply.github.com> Co-authored-by: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> commit 954c031 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Wed Jan 7 01:02:22 2026 +0100 Myeclpay to mypayment (aeecleclair#623) - rename "MyECLPay" to "MyPayment", excepted for what is displayed in the UI - rename the `paiement` module to `mypayment` commit 75c9c35 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Mon Jan 5 23:12:48 2026 +0100 Fix: Android namespace (aeecleclair#631) commit ef81d43 Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com> Date: Sat Jan 3 23:38:49 2026 +0100 Modular permissions (aeecleclair#618) <img width="1911" height="814" alt="image" src="https://github.com/user-attachments/assets/9493ff28-e01b-497e-af42-8707151042d7" /> <img width="1900" height="574" alt="image" src="https://github.com/user-attachments/assets/a01ee66b-68b4-4d5b-9126-f922e88561ac" /> <img width="1880" height="824" alt="image" src="https://github.com/user-attachments/assets/70761a00-c717-4cce-a95e-2719010001c0" /> commit 8c93ccf Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Sat Jan 3 22:46:50 2026 +0100 Test build with google services (aeecleclair#630) test commit 41b0cf6 Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Wed Dec 31 22:47:24 2025 +0100 Release 1.4.1+157 (aeecleclair#627) commit 38b119a Author: Foucauld Bellanger <63885990+foucblg@users.noreply.github.com> Date: Wed Dec 31 21:43:22 2025 +0100 bump mobile_scanner (aeecleclair#602) Need to bump mobile_scanner in order to reach 16ko compatibility. Since v.7.0.0 scanner needs to be stopped properly before a new start(). Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com> commit 87ceca7 Author: NakoGH <rbelahcene10@gmail.com> Date: Wed Dec 31 21:38:29 2025 +0100 add : button to show/hide revoked devices (aeecleclair#624) <!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is for!--> <img width="416" height="868" alt="image" src="https://github.com/user-attachments/assets/ce62a088-cc6d-427f-9af4-e2a853387ae9" /> <img width="453" height="881" alt="image" src="https://github.com/user-attachments/assets/9282f405-2ec8-436f-8dbd-8df67fa921e0" /> ... <!--#### Sources at the end--> <!--Use a keyword, then aeecleclair#123 for the same repo or aeecleclair/RepoName#123 for another--> <!--Keywords: "closes", "fixes", "resolves" --> <!--Fixes #--> <!--Keywords: "depends on", "blocked by" --> <!--Depends on aeecleclair/Hyperion#--> <!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show progress. You can explain below how the code works.--> - [x] ... - [ ] ... <!--Anything relevant that does not quite fit in the summary--> <!--Don't touch thses two tags--> <details> <summary> </summary> - [ ] 🐛 Bug fix (non-breaking change which fixes an issue) - [x] ✨ New feature (non-breaking change which adds functionality) - [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds a feature) - [ ] 🔧 Infra CI/CD (changes to configs of workflows) - [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal version of the front-end) - [ ] 😶🌫️ No impact for the end-users - [ ] Core functionality changes - [x] Single module changes - [ ] Multiple modules changes - [ ] Other: ... <!--Not module-oriented: write something!--> - [x] 1. Tested this locally - [ ] 2. Added/modified tests that pass the CI (or tested in a downstream fork) - [ ] 3. Tested in a local client using a pre-prod backend - [ ] 0. Untestable (exceptionally), will be tested in prod directly - [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 - Title](https://github.com/aeecleclair/myecl-documentation/pull/0)--> - [ ] `//` Comments - [x] No documentation needed </details> commit a9e179b Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com> Date: Sat Dec 6 13:28:24 2025 +0100 Reloads saved preferences for module order (aeecleclair#622) Should allow module order to be retained when reopening the app. Co-authored-by: NakoGH <rbelahcene10@gmail.com> commit 99be830 Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Sun Nov 30 05:56:33 2025 +0100 New issue template and actual PR template (aeecleclair#620) Change to the pull request template to improve reviews and enable quick understanding of the nature of the changes to be reviewed. Put it in a path that GitHub understands. Add issue template BTW. commit ab34a6d Author: NakoGH <rbelahcene10@gmail.com> Date: Sun Nov 30 05:20:48 2025 +0100 Show purchases per year in Module Purchases (aeecleclair#621) <img width="292" height="430" alt="image" src="https://github.com/user-attachments/assets/0f229e3e-10fb-4114-b747-8d8f077ec616" /> commit 52c1283 Author: julien4215 <120588494+julien4215@users.noreply.github.com> Date: Fri Nov 21 16:42:34 2025 +0100 Handle error when getting QR code content (aeecleclair#608) commit 8c3cc8f Author: julien4215 <120588494+julien4215@users.noreply.github.com> Date: Fri Nov 21 16:31:32 2025 +0100 Try/catch authentication for paiement module (aeecleclair#607) To handle the exceptions in a better way we should use the exceptions of the package local_auth when this gets released: flutter/packages#10147. commit 6710417 Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Fri Nov 7 16:38:41 2025 +0100 UI: Reduce the size of the module name in TopBar and drawer (aeecleclair#616) As a consequence of the new module "Centralassocation" whose name is too long for the drawer <img width="300" height="1815" alt="image" src="https://github.com/user-attachments/assets/cfd2c44e-c0ee-4967-8ac3-ddaa884bc74e" /> commit 3ba130b Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com> Date: Tue Nov 4 02:01:45 2025 +0100 Add myeclpay invoices (aeecleclair#613) commit 33cfaf9 Author: Luhmos <guillaume.foucher.pele@gmail.com> Date: Tue Oct 21 12:34:53 2025 +0200 New module: Centralassociation (aeecleclair#609) New module based on Centralisation. It adapts the code to use the links from the Centralassociation website instead, using more appropriate classes. commit 7f92e22 Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Mon Sep 8 20:26:10 2025 +0200 Release 1.3.0+155 (aeecleclair#599) commit 5b5b300 Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Mon Sep 8 20:25:27 2025 +0200 Fix QR code scanner of purchases (strictly) (aeecleclair#600) * [x] Fix `onScan` argument type to actually pass the scanned secret downstream down to the request to Hyperion * [x] replace "validate" button with "next" commit b5a3aeb Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Mon Sep 8 14:32:26 2025 +0200 Account management - Part I (aeecleclair#575) Fix aeecleclair#396 Fix aeecleclair#305 Fix aeecleclair#222 commit 02f9517 Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Mon Sep 8 13:14:14 2025 +0200 Remember what store the user selected last (aeecleclair#595) Feedback: several people scanned several times for the wrong store because the default one was always the same. Now we put in the storage the ID of the last store selected by the user, so that when s/he comes back on MyECL during an event on behalf of one club, the virtual money goes the right store. commit 10279a1 Author: Maxime Roucher <maximeroucher@gmail.com> Date: Mon Sep 8 13:08:24 2025 +0200 fix: migrating to new key encoding (aeecleclair#598) commit 983bc29 Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com> Date: Mon Sep 1 18:41:58 2025 +0200 Fix: access memberships from admin UI (aeecleclair#590) commit 04f9da3 Author: Maxime Roucher <maximeroucher@gmail.com> Date: Mon Sep 1 09:47:34 2025 +0200 fix: setting interval default end time to 23:59:59 (aeecleclair#589) commit e5adffa Author: NakoGH <rbelahcene10@gmail.com> Date: Wed Jul 30 21:57:14 2025 +0200 rm .yaml add .yml (aeecleclair#579) commit d5e3bc4 Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com> Date: Sat Jul 19 19:57:16 2025 +0200 New async child (aeecleclair#567) This PR is meant to extend the current AsyncChild to handle multiple AsyncValues simultaneously to avoid having to use AsyncChild in AsyncChild. For example with Phonebook we need to fetch associations and associationKinds and both are mixed up, thus we can't show any of them separately and we need to wait for both to be available. With this one widget would be sufficient.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Please explain the changes you made here.
Checklist