Skip to content

Conversation

@Rotheem
Copy link

@Rotheem Rotheem commented Aug 24, 2025

* Set REFRESH_TOKEN_EXPIRE_MINUTES to 60 days (aeecleclair#753)

* raid-registering: Generate PDF from HTML template with weasyprint (aeecleclair#739)

Generate PDF using Jinja templates and WeasyPrint.

We use:
 - PyMuPDF for PDF manipulation, and conversion between image and PDF
 - WeasyPrint for PDF generation from HTML

We remove fpdf2 which html engine was too simple for complex templates

---------

Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
Co-authored-by: Thonyk <timr.web@free.fr>

* feat: support multiple HelloAsso configurations (aeecleclair#750)

Please explain the changes you made here.

- [ ] Created tests which fail without the change (if possible)
- [ ] All tests passing
- [ ] Extended the documentation, if necessary

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com>

* Accept all schools accounts for WikijsAuthClient (aeecleclair#752)

* MyECLPay: use new CalypSSO UI for text assets (aeecleclair#763)

The link in the mail asserting you signed the ToS now brings to a less
austere page.

- [x] Bump CalypSSO to 2.2.0
- [x] Update mail link
  - [x] Use CalypSSO methods to build the URL

---------

Co-authored-by: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com>

* Hyperion 4.6.0 (aeecleclair#762)

* Admin endpoint to send notification to group (aeecleclair#765)

* Hyperion configuration using yaml file (aeecleclair#756)

Hyperion will try to load its configuration, using, by precedence:
 - environment variables
 - .env.yaml file
 - .env file

* Allow to configure AuthClients using a dictionnary (aeecleclair#757)

instead of a list of list

This PR introduce a breaking change
Requires aeecleclair#756

* Acquire a lock before running initialization steps (aeecleclair#768)

If multiple workers are detected, and a Redis client, Hyperion will
raise an error.
Otherwise the server won't be able to:
 - run initialization steps
 - send messages over WebSocket reliably.

The logic is extracted from the great aeecleclair#375

---------

Co-authored-by: Thonyk <timr.web@free.fr>
Co-authored-by: Timothée Robert <114694873+Rotheem@users.noreply.github.com>

* Refactor app state using dependencies and state (aeecleclair#769)

Instead of initiating objects like redis client or db connection when
the dependency is called for the first time, we
create a dedicated `init_app_state` dependency to initialize all these
objects. These objects are stored in the application state instead of
global variables.

This ensures that an object may not be reused in another Hyperion app
instance, which would have its own event loop. This previously caused
issues for tests

Requires aeecleclair#768

---------

Co-authored-by: Thonyk <timr.web@free.fr>

* Use an existing default file for raid rules (aeecleclair#771)

* Removed old init.py (aeecleclair#773)

Please explain the changes you made here.

- [ ] Created tests which fail without the change (if possible)
- [ ] All tests passing
- [ ] Extended the documentation, if necessary

* Notification topics refactorization using a db table (aeecleclair#680)

Change completely the structure of topics in Hyperion. Instead of using
an Enum difficult to edit, we have a table in db with all existing
topics.

This allows to ensure that users can only subscribe to *real* topics.
Topics can be created either in the module definition (ex: `cinema`), or
using a utils from an endpoint (creation of a new topic each time we
create an advertiser in `announce`). Topics can now be restricted to a
specific group.

By default, all users are subscribed to each topic, they can unsubscribe
manually if they want.

A change in the frontend is required:
 - using `/notification/topics` the client will get all available topics
 - it could be nice to group topics by `module_root`

This PR will reset existing subscriptions. All users will be subscribed
to all topics, except for `advert`

Fix aeecleclair#479
Requires aeecleclair#768

---------

Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
Co-authored-by: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com>

* Optional HA api-base (aeecleclair#774)

* Only hash a global password for all test users (aeecleclair#776)

as hashing password is a time consuming operation. We expect a 2 min
gain over our test suite.

* Dotenv for Docker variables in addition to yaml config file (aeecleclair#778)

Please explain the changes you made here.

- [ ] Created tests which fail without the change (if possible)
- [ ] All tests passing
- [ ] Extended the documentation, if necessary

* Feat : Add base to allow factory setup (aeecleclair#375)

Co-authored-by: Warix <39554785+warix8@users.noreply.github.com>
Co-authored-by: cotanoine <tan.maillard@gmail.com>

* Change Dockerfile entrypoint to adapt new env_file parameter (aeecleclair#781)

Please explain the changes you made here.

- [ ] Created tests which fail without the change (if possible)
- [ ] All tests passing
- [ ] Extended the documentation, if necessary

* Invert logic for unlock_key (aeecleclair#782)

Please explain the changes you made here.

- [ ] Created tests which fail without the change (if possible)
- [ ] All tests passing
- [ ] Extended the documentation, if necessary

* Allow to restrict registration to invited users (#6)

* Allow to restrict registration to invited users

* Add user to default_group on activation

* Invite users

* Queued emails

* Lint

* Cron for send mail task

* Lint

* Pass args directly instead of model in cruds

* Test batch invite user

* Docstring

* Don't send emails if the address is empty

* Only remove send mails from the queue

* Only send 100 email per hours

* Calypsso 2.3.0

* Fix

* Fixup

* Migration

* Lint

* Format

* Optional default_group_id

* Comment

* PROXI-54: modular association groupements (#9)

* feat: use modular association groupements

* typo

* fix: adapt factories to new system

* fix: rebase

* feat: change default logo

* fix: rebase

* fix: correct worker count when using --worker option (#10)

* School configuration (#7)

* Add user to default_group on activation

* Configurable email regex

* Configurable email regex

* Parametrize application name

* Configure the email regex directly in settings

* Rename centrale_lyon to this_school

* Import Pattern from re

* Use simple quotes for regex

* base_school

* Rename base_school in test

* Migration

* Self registration in config template

* Serve color and name of the project

* Remove unused css file and fix yaml template

* pydantic-extra-types==2.10.5

* Entity name

* Remove unused imports

* Rename is_user_a_school_member

* Rename get_school_account_types

* Rename is_user_an_ecl_member

* Documentation

* Lint

* Rename is_user_a_school_member

* fixup

* Remove unused code

* Validate users

* fix: rebase

---------

Co-authored-by: Thonyk <timr.web@free.fr>

* PROXI-61: rename payment files (#11)

* feat: rename payment part

* feat: rename tables

* fix: rebase

* feat: change routes

* fix: test

* Fix(state management): store state in global variable to allow the scheduler to access db (#8)

* Fix user batch invitation response model

* Fix: add missing param in send_emails_from_queue_task

* Get db directly using SessionLocal

* Store state in global Python variable

* Use arq 0.26.3

* Don't keep arq job results after completion

to be able to queue new jobs with the same id

* Cancel planned notification with the same job_id

before queuing a new one

* fixup state

* Access GLOBAL_STATE in tests init

* Remove unexpected state param while disconnecting

* Lint

* Parametrize test_factory fixture

* Lint

* Refactor test settings

* Lint

* Return email placeholder in variables (#15)

* Feed and feed from advert (#4)

* Feed

* Image endpoint and location and action fields

* Lint

* fix: rebase

* Add a logo for groups

* Feed: rename image_folder to image_directory

* Advert post to feed and remove tag

* Fix rebase

* Lint and migration

* Rebase migration

---------

Co-authored-by: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com>
Co-authored-by: Thonyk <timr.web@free.fr>

* CoreAssociation (#13)

* CoreAssociation

* Migration

* Rebase migration

* Rename migration file 40 to 41 (#16)

* remove tags in update model (#17)

Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>

* fix: circular import on windows (#20)

* remove status in admin query (#21)

Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>

* Super admin (#22)

* feat: add super admin attribute

* feat: remove admin bypass

* fix: tests

* super user in factory (#23)

* super user in factory

* copilot this fyot

---------

Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>

* Add for front (#24)

Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>

* PROXI-71: patch legal texts on request and update them (#12)

* feat: patch legals text on request

* feat: add end of support

* fix: typo

* Account deletion

* Apply suggestions from code review

Co-authored-by: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>

* fixes

* add email_placeholder to school

* fix config.yaml

* Fix indentation

---------

Co-authored-by: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com>
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>

* Refactor Calendar to use associations and feed (#14)

* Refactor Calendar to use associations and feed

* Lint

* Migration

* Fix calendar factory condition

* Add a daylong event in calendar factory

* ical: use date for daylong events

instead of datetime

* Parametrize ical id

* Ticket url

* lint

* bump revision number

* remove description

* add post feed image

* fix : add image directory

* fix : use image id

* update factory

* admin id from GroupType enum

* post feed image in calendar

* Event image

* Lint

* Test

* fixup

---------

Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>

* Refactor advert to use associations (#18)

* Refactor Calendar to use associations and feed

* Migration

* Refactor advert to use associations

* fixup

* Migration

* Rebase migration

* rebase migration

* CalypSSO 2.4.0 (#25)

* typo (#26)

Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>

* typo (#29)

Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>

* fix: replace placeholder in tos (#30)

* fix: replace placeholder in tos

* feat: prevent event with ticket and missing ticket field

* fix: typo

* feat: add tests

* PROXI 79: mypayment multi structure (#19)

* feat: add mypayment invoices

* fix: clean up

* Export PDF documentation

* Fix migration

* fix: typo

* fix: use structure as bank account holder

* fix: add missing config.template

* fix: extend s3 directory null check to empty string

* feat: add mypayment factory

* fix: rebase and correct factory

* fix: typo

* fix: missing function call

* fix: invoice pdf data

* fix: typo

* fix: use utils

* feat: add delay penalty

* fix: tests and rebase

* fix: move dependency

---------

Co-authored-by: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com>

* Fix MyPayment Invoices (#33)

* fix: apply suggestions

* fix: typo

* fix: remove useless schema

* fix: typo

* Don't raise when feed picture does not exist and create data/campaigns folder at launch (#32)

* Don't raise when feed picture does not exist

but return an HTTPException

* Create data/campaigns folder at launch

---------

Co-authored-by: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Co-authored-by: Foucauld Bellanger <63885990+foucblg@users.noreply.github.com>
Co-authored-by: Warix <39554785+warix8@users.noreply.github.com>
Co-authored-by: cotanoine <tan.maillard@gmail.com>
@codecov
Copy link

codecov bot commented Aug 25, 2025

@Rotheem Rotheem merged commit 9b487d5 into main Aug 25, 2025
5 checks passed
@Rotheem Rotheem changed the title v2.0.0 (#35) v5.0.0 (#35) Aug 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants