Compare commits

..

91 Commits

Author SHA1 Message Date
e00ece4200 Update form builder parameter in SearchController
Changed the first argument in the `createNamedBuilder` method from `null` to an empty string. This adjustment ensures the form factory correctly creates the builder in the SearchController.
2024-05-28 15:58:17 +02:00
640fd71402 merge ticket-app-master and fix rector / cs 2024-05-28 15:54:52 +02:00
aae50ca290 Merge branch 'ticket-app-master' into chill-bundles-ticket-app-adaptations 2024-05-28 15:08:59 +02:00
1fa483598b Merge branch 'upgrade-sf5' into ticket-app-master 2024-05-28 14:59:25 +02:00
e4b6a468f8 adding fixtures for ticket in every environment 2024-05-28 13:47:58 +02:00
Boris Waaub
66c7758023 Adapt module name 2024-05-22 11:17:07 +02:00
Boris Waaub
4750d2c24e Adapt module name 2024-05-22 11:16:18 +02:00
Boris Waaub
ca05e3d979 Layout adaptation 2024-05-22 11:12:22 +02:00
Boris Waaub
a20f9b4f86 Generalize ticket actions 2024-05-22 00:38:47 +02:00
Boris Waaub
c73c1eb8d5 Rename "appelant" by "patient" 2024-05-21 22:24:30 +02:00
Boris Waaub
8778bb0731 Use colors and badges for history and banner 2024-05-21 22:22:33 +02:00
Boris Waaub
c7d20eebc5 chore: Remove unused code in AddresseeSelectorComponent.vue 2024-05-21 20:53:15 +02:00
Boris Waaub
b9e130c159 Use suggestion for user asignee 2024-05-21 20:44:23 +02:00
Boris Waaub
3e8bc94af3 Remove user object display 2024-05-21 18:14:11 +02:00
Boris Waaub
0c914c9f9f Remove "remove_addressee" history line 2024-05-21 17:32:40 +02:00
Boris Waaub
580a60c939 Add user_group for returning type 2024-05-21 17:32:05 +02:00
Boris Waaub
4996ac3b7c Adapt layout action toolbar 2024-05-21 15:22:13 +02:00
Boris Waaub
2a23bf19cb use record_actions sticky-form-buttons 2024-05-21 10:53:25 +02:00
Boris Waaub
650d2596d9 Update ticket display to use ticket ID instead of external reference 2024-05-21 09:54:06 +02:00
Boris Waaub
2bdd5a329e Merge branch 'ticket-app-master' of gitlab.com:boriswa/chill-bundles into ticket-app-master 2024-05-21 09:53:32 +02:00
78d1776733 Add functionality to find a caller by phone number
Added a new method in PersonRepository to allow querying people by phone number. Also, a new REST API endpoint "/public/api/1.0/ticket/find-caller" was introduced and it can find a caller by their phone number. Accompanied this feature addition with corresponding test cases.
2024-05-17 13:14:26 +02:00
66dc603c85 fix cs with new version of php-cs-fixer 2024-05-17 12:20:33 +02:00
3a8154ecce Replace PhoneNumberUtil with PhonenumberHelper
The PhoneNumberUtil has been replaced with PhonenumberHelper in AssociateByPhonenumberCommandHandler and its test class. The purpose of this change is to improve phone number parsing which is now delegated to the PhonenumberHelper class in the Chill\MainBundle\Phonenumber namespace. As a consequence, the related dependencies in both the service and the test class have been updated accordingly.
2024-05-17 12:17:00 +02:00
c81828e04f Add phone number parsing functionality
Added a new method 'parse' in the PhonenumberHelper class in ChillMainBundle to sanitize and parse phone numbers. This method specifically handles phone numbers that start with '00', '+' or '0'. Associated unit tests for this new method were also added in PhonenumberHelperTest.php.
2024-05-17 12:16:28 +02:00
Boris Waaub
ec17dd7de2 Merge branch 'master' of https://gitlab.com/Chill-Projet/chill-bundles into ticket-app-master 2024-05-13 16:08:19 +02:00
76c076a5f3 Merge branch 'ticket-app-create-template' into 'ticket-app-master'
Mise à jour des messages de l'interface utilisateur pour inclure les...

See merge request Chill-Projet/chill-bundles!689
2024-05-13 13:34:43 +00:00
Boris Waaub
f0045edd6c FIX: Ouvert depuis 2024-05-13 12:33:11 +02:00
Boris Waaub
d00b76ffcd $tc n'est plus supporté pour i18n composition api, il faut utiliser $t.
FIX: Person PersonRenderBox
2024-05-13 12:16:07 +02:00
Boris Waaub
8991f0ef3f Modification i18n 2024-05-13 12:00:11 +02:00
Boris Waaub
d6f5eae0c9 Rendre les commentaire markdown 2024-05-13 11:59:50 +02:00
Boris Waaub
821fce3dd8 $tc n'est plus supporté pour i18n composiontion api, il faut utiliser $t.
Source : https://github.com/intlify/vue-cli-plugin-i18n/issues/214
i18n composion api : https://vue-i18n.intlify.dev/api/composition
2024-05-13 11:38:28 +02:00
Boris Waaub
1d33ae1e39 use ckeditor 2024-05-08 18:03:50 +02:00
Boris Waaub
19af0feb57 Use PersonRenderBox 2024-05-08 17:54:03 +02:00
Boris Waaub
1c09e9a692 Merge branch 'ticket-app-master' into ticket-app-create-template 2024-05-08 16:05:35 +02:00
Boris Waaub
d72e748388 Merge branch 'ticket-app-master' of https://gitlab.com/boriswa/chill-bundles into ticket-app-master 2024-05-08 16:02:09 +02:00
Boris Waaub
ab850b7b70 Fusionner les utilisateurs/goupes en une "Card" 2024-05-06 20:07:15 +02:00
Boris Waaub
3f9745d8cf Use teleport for banner 2024-05-06 18:03:04 +02:00
Boris Waaub
473765366a Add tranfert with AddPerson 2024-05-06 16:38:56 +02:00
Boris Waaub
6500c24a7f Déplacer le répertoire translation dans source 2024-05-02 14:10:22 +02:00
Boris Waaub
1d00457141 Ajouter les propriétés createdAt et updatedBy à l'interface Ticket 2024-05-02 14:09:52 +02:00
Boris Waaub
eb0bf56cff Add user group addressee 2024-05-02 13:18:45 +02:00
Boris Waaub
7b8cd90cf1 Add user store 2024-05-02 12:03:10 +02:00
Boris Waaub
a27d92aba0 Add comment and motive 2024-05-02 00:50:33 +02:00
Boris Waaub
85bdfb9e21 Remove banner component 2024-05-01 22:04:07 +02:00
Boris Waaub
4cffcf4de1 Use translate in setup 2024-05-01 22:03:36 +02:00
Boris Waaub
b2587a688f Déplacer le composant banner dans twig 2024-05-01 15:51:12 +02:00
Boris Waaub
c9f0e9843b Déplacer le composant banner dans twig 2024-05-01 15:49:32 +02:00
Boris Waaub
b40ad9e445 Mise à jour des messages de l'interface utilisateur pour inclure les fonctionnalités de commentaire, de motif et de transfert 2024-04-25 11:16:08 +02:00
Boris Waaub
3e10e47e29 Merge branch 'ticket-app-master' into ticket-app-create-template 2024-04-25 10:37:42 +02:00
Boris Waaub
2a1963e993 Mise à jour de l'interface utilisateur pour le composant ActionToolbarComponent 2024-04-25 10:36:45 +02:00
34c171659b Merge branch 'ticket-app/backend-3' into 'ticket-app-master'
Add functionality to set addressees for a ticket

See merge request Chill-Projet/chill-bundles!683
2024-04-24 16:50:29 +00:00
2d8b960d9e Re-open the same ticket if a ticket already exists with the same externalRef, instead of creating a new one 2024-04-24 18:48:00 +02:00
831ae03431 Merge branch 'ticket-app/backend-2' into 'ticket-app-master'
Add functionality to add comments to tickets

See merge request Chill-Projet/chill-bundles!681
2024-04-23 21:42:07 +00:00
45828174d1 Add addressee history to ticket serialization
This update extends the tickets serialization and normalisation process to include addressee history. With the changes, AddresseeHistory class now also keeps track of who removed an addressee. Additional types, tests and interfaces have been introduced to support this change.
2024-04-23 23:39:01 +02:00
ed45f14a45 Add tracking of addressee history in ticket system
The updates introduce tracking for the history of addressees in the ticket system, both when added and when removed. The user who removed an addressee is now recorded. The changes also ensure these updated aspects are correctly normalized and users can see them in the ticket history. A new database migration file was created for the changes.
2024-04-23 23:38:34 +02:00
fa67835690 Add functionality to add single addressee to tickets
This update introduces a new feature allowing end-users to add a single addressee to a ticket without removing the existing ones. This was achieved by adding a new API endpoint and updating the SetAddresseesController to handle the addition of a single addressee. Accompanying tests have also been provided to ensure the new feature works as expected.
2024-04-23 23:00:12 +02:00
b434d38091 Add functionality to set addressees for a ticket
This update includes the implementation of methods to add and retrieve addressee history in the Ticket entity, a handler for addressee setting command, denormalizer for transforming request data to SetAddresseesCommand, and corresponding tests. Additionally, it adds a SetAddresseesController for handling addressee related requests and updates the API specifications.
2024-04-23 22:50:51 +02:00
Boris Waaub
800a952532 Add base template 2024-04-23 20:41:32 +02:00
9f355032a8 Create a "do not exclude" validation constraint for user groups 2024-04-22 12:41:43 +02:00
0bc6e62d4d Add fixtures for UserGroup 2024-04-22 12:01:49 +02:00
46fb1c04b5 Add color and exclusion fields to UserGroup
This commit introduces new fields to the UserGroup entity, specifically background color, foreground color, and an exclusion key. These have been implemented both in the PHP entity and TypeScript interface definitions. Additionally, a Doctrine migration has been created to reflect these changes on the database side.
2024-04-22 12:01:28 +02:00
3b2c3d1464 Merge branch 'ticket-app-create-store' into 'ticket-app-master'
Create vuex store

See merge request Chill-Projet/chill-bundles!678
2024-04-22 08:29:56 +00:00
Boris Waaub
0bd6038160 Merge branch chill-bundles:master into ticket-app-master 2024-04-19 15:54:24 +00:00
Boris Waaub
baab8e94ce Add ticket to storeand catch error with toast in component 2024-04-19 17:46:12 +02:00
e2deb55fdb Create api endpoint for listing user-group 2024-04-19 15:34:43 +02:00
Boris Waaub
2cdfb50058 Mise en œuvre de la fonctionnalité de remplacement du motif du ticket
La validation introduit plusieurs fonctionnalités liées à la gestion du motif du ticket dans le bundle Chill-TicketBundle :
- Ajoute la possibilité de remplacer le motif d'un ticket par un nouveau.
- Fournit des fonctionnalités de gestion de l'historique des motifs du ticket.
- Implémente les modifications pertinentes au niveau du contrôleur, du gestionnaire d'actions et de l'entité.
- Intègre de nouvelles points d'API et met à jour le fichier de spécification de l'API pour la nouvelle fonctionnalité.
- Inclut des tests pour garantir le bon fonctionnement de la nouvelle fonctionnalité.
2024-04-19 14:12:09 +02:00
39d701feb2 Serialize ticket's Comment 2024-04-18 22:10:56 +02:00
613ee8b186 Add functionality to add comments to tickets
A new controller, 'AddCommentController', has been added. This controller implements the 'AddCommentCommandHandler', allowing users to add comments to tickets. Additionally, corresponding test cases were implemented. The Ticket entity was also updated to accept and manage comments. API endpoint specs were updated to reflect these changes.
2024-04-18 21:57:55 +02:00
56a1a488de Return the content of the ticket on replace motive POST request 2024-04-18 15:44:05 +02:00
3f789ad0f4 Merge branch 'ticket-app/create-entities' into 'ticket-app-master'
Add phone number search function to PersonACLAwareRepository

See merge request Chill-Projet/chill-bundles!677
2024-04-18 11:21:46 +00:00
467bea7cde Serialization of tickets with history 2024-04-18 13:13:09 +02:00
670b8eb82b Implement functionality to replace ticket's motive
The commit introduces several features related to ticket motive management in the Chill-TicketBundle:
- Adds capability to replace a ticket's motive with a new one.
- Provides ticket motive history management features.
- Implements relevant changes in Controller, Action Handler, and Entity levels.
- Incorporates new API endpoints and updates the API specification file for the new feature.
- Includes tests to ensure the new functionality works as expected.
2024-04-18 13:13:08 +02:00
a9760b323f Add ChillTicketBundle to configuration and autoload-dev
The commit includes the ChillTicketBundle in the bundles configuration file for testing. Additionally, the autoload-dev directive in the composer.json file was updated to include the "App" namespace for testing purposes. This ensures that the tests related to the "App" namespace are correctly autoloaded.
2024-04-18 13:13:08 +02:00
71a3a1924a Add Motive API and related fixtures to ChillTicketBundle
This update introduces the Motive API Controller to the ChillTicket bundle with its corresponding service configuration. Also included are related data fixtures for loading motive information. The motive entity has been updated to improve its serialization properties and new types were added to the TypeScript definitions of the bundle.
2024-04-18 13:13:07 +02:00
ecdc1e25bf Layout of banner for ticket 2024-04-18 13:13:07 +02:00
dd37427be1 Bootstrap ticket layout and vue app to edit ticket 2024-04-18 13:13:07 +02:00
c8467df1b1 fixup! Rename Command directory to Action to avoid confusion with symfony commands 2024-04-18 13:13:06 +02:00
4c89a954fa Refactor test, fixing the constructor 2024-04-18 13:13:05 +02:00
7c1f3b114d Rename Command directory to Action to avoid confusion with symfony commands 2024-04-18 13:13:05 +02:00
36bc4dab24 Configure a testsuite for TicketBundle 2024-04-18 13:13:04 +02:00
4b30d92282 Add ticket creation and associating by phone number functionality
This update introduces new features allowing the creation of tickets and associating them with a phone number. Specifically, relevant commands and their handlers have been created along with corresponding tests. An endpoint for ticket creation has also been set up, and the ViewTicketController has been renamed and refactored to EditTicketController to better reflect its function.
2024-04-18 13:13:04 +02:00
75fbec5489 Create entities and doctrine mapping for ticket 2024-04-18 13:13:03 +02:00
912fdd6349 Add phone number search function to PersonACLAwareRepository
A new function, findByPhone, has been added to the PersonACLAwareRepository. This function allows searching for people based on their phone numbers. Changes also reflect in the PersonACLAwareRepositoryInterface, and new test cases have been added to the PersonACLAwareRepositoryTest.
2024-04-16 14:41:55 +02:00
5832542978 load also tests for ticket bundle 2024-04-16 14:41:39 +02:00
5c3585a1ed Fix loading of environment variable in bootstrap process 2024-04-16 14:41:29 +02:00
a2f1e20ddf Fix cs 2024-04-15 15:49:47 +02:00
4d67702a76 Bootstrap loading of controllers and routes for ticket bundle 2024-04-15 15:48:25 +02:00
18e442db29 Merge branch 'ticket-app-init' into 'ticket-app-master'
Add ChillTicketBundle webpack configuration

See merge request Chill-Projet/chill-bundles!673
2024-04-15 12:44:21 +00:00
Boris Waaub
deb3d92189 Add ChillTicketBundle webpack configuration 2024-04-15 14:34:09 +02:00
a59ea7db31 Compiles with ticket bundle 2024-04-15 13:48:49 +02:00
a738b0cac9 Initialize ChillTicketBundle 2024-04-15 13:22:36 +02:00
2100 changed files with 7812 additions and 23288 deletions

View File

@@ -0,0 +1,5 @@
kind: Feature
body: '[DX] move async-upload-bundle features into chill-bundles'
time: 2023-12-12T15:48:41.954970271+01:00
custom:
Issue: "221"

View File

@@ -0,0 +1,6 @@
kind: Fixed
body: Fix resolving of centers for an household, which will fix in turn the access
control
time: 2024-04-10T10:37:36.462484988+02:00
custom:
Issue: ""

View File

@@ -1,21 +0,0 @@
## v2.20.0 - 2024-06-05
### Fixed
* ([#170](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/170)) Display agents traitants instead of accompanying period referrer in export list social actions.
* Added translations for choices of durations (> 5 hours)
### Feature
* ([#145](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/145)) Allow to open documents in LibreOffice locally (need configuration within security);
This endpoint should be added to make the endpoint works properly:
```yaml
security:
firewalls:
dav:
pattern: ^/dav
provider: chain_provider
stateless: true
guard:
authenticators:
- Chill\DocStoreBundle\Security\Guard\JWTOnDavUrlAuthenticator
```

View File

@@ -1,3 +0,0 @@
## v2.20.1 - 2024-06-05
### Fixed
* Do not allow StoredObjectCreated for edit and convert buttons

View File

@@ -1,31 +0,0 @@
## v2.21.0 - 2024-06-18
### Feature
* Add flash menu buttons in search results, to open directly a new calendar, or a new activity in an accompanying period
* ([#122](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/122)) Improve the list of calendar in the search results: make all calendar clicable, and display a list of calendars
* ([#282](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/282)) [export] add start date and end date on filters "filter course by referrer job" and "filter course by referrer scope"
* ([#282](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/282)) [export] the aggregator "Group by referrer" now accept a date range.
* ([#282](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/282)) [export] add date range on "group course by referrer's scope"
* ([#282](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/282)) [export] add date range on "group course by referrer's jobs"
* ([#168](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/168) In the UX, display user job and service at the time when he performs an action:
now, the job and service is shown:
* at the activity's date,
* at the appointment's date,
* when the user is marked as referrer for an accompanying period work,
* when the user apply a transition in a workflow,
* when the user updates or creates "something" ("created/updated by ... at ..."),
* or when he wrote a comment,
*
### Traduction francophone
* Ajout d'un menu "flash" dans les résultats de recherche, pour créer un rendez-vous ou un échange dans un parcours depuis les résultats de recherche;
* Améliore la liste des rendez-vous dans les résultats de recherche: les rendez-vous sont cliquables;
* [exports] Ajout d'intervalles de dates pour des filtres et regroupements des parcours par référent, métier du référent, service du référent;
* Affiche le métier et le service des utilisateurs à la date à laquelle il a exécuté une action. Le métier et le service est affiché:
* à la date d'un échange,
* au jour d'un rendez-vous,
* quand l'utilisateur est devenu référent d'un parcours d'accompagnement,
* quand il a appliqué une transition sur un workflow,
* quand il a mise à jour ou créé une fiche, dans les mentions "créé / mise à jour par ..., le ...",
* quand il a mis à jour un commentaire,
*

View File

@@ -1,6 +0,0 @@
## v2.22.0 - 2024-06-25
### Feature
* ([#216](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/216)) [event bundle] exports added for the event module
### Traduction francophone
* Exports sont ajoutés pour la module événement.

View File

@@ -1,5 +0,0 @@
## v2.22.1 - 2024-07-01
### Fixed
* Remove debug word
### DX
* Add a command for reading official address DB from Luxembourg and update chill addresses

View File

@@ -1,3 +0,0 @@
## v2.22.2 - 2024-07-03
### Fixed
* Remove scope required for event participation stats

View File

@@ -1,11 +0,0 @@
## v2.23.0 - 2024-07-23
### Feature
* ([#221](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/221)) [DX] move async-upload-bundle features into chill-bundles
* Add job bundle (module emploi)
* Upgrade import of address list to the last version of compiled addresses of belgian-best-address
* Upgrade CKEditor and refactor configuration with use of typescript
### Fixed
* Fix resolving of centers for an household, which will fix in turn the access control
* Resolved type hinting error in activity list export

View File

@@ -6,93 +6,6 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
and is generated by [Changie](https://github.com/miniscruff/changie). and is generated by [Changie](https://github.com/miniscruff/changie).
## v2.23.0 - 2024-07-23
### Feature
* ([#221](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/221)) [DX] move async-upload-bundle features into chill-bundles
* Add job bundle (module emploi)
* Upgrade import of address list to the last version of compiled addresses of belgian-best-address
* Upgrade CKEditor and refactor configuration with use of typescript
### Fixed
* Fix resolving of centers for an household, which will fix in turn the access control
* Resolved type hinting error in activity list export
## v2.22.2 - 2024-07-03
### Fixed
* Remove scope required for event participation stats
## v2.22.1 - 2024-07-01
### Fixed
* Remove debug word
### DX
* Add a command for reading official address DB from Luxembourg and update chill addresses
## v2.22.0 - 2024-06-25
### Feature
* ([#216](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/216)) [event bundle] exports added for the event module
### Traduction francophone
* Exports sont ajoutés pour la module événement.
## v2.21.0 - 2024-06-18
### Feature
* Add flash menu buttons in search results, to open directly a new calendar, or a new activity in an accompanying period
* ([#122](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/122)) Improve the list of calendar in the search results: make all calendar clicable, and display a list of calendars
* ([#282](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/282)) [export] add start date and end date on filters "filter course by referrer job" and "filter course by referrer scope"
* ([#282](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/282)) [export] the aggregator "Group by referrer" now accept a date range.
* ([#282](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/282)) [export] add date range on "group course by referrer's scope"
* ([#282](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/282)) [export] add date range on "group course by referrer's jobs"
* ([#168](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/168) In the UX, display user job and service at the time when he performs an action:
now, the job and service is shown:
* at the activity's date,
* at the appointment's date,
* when the user is marked as referrer for an accompanying period work,
* when the user apply a transition in a workflow,
* when the user updates or creates "something" ("created/updated by ... at ..."),
* or when he wrote a comment,
*
### Traduction francophone
* Ajout d'un menu "flash" dans les résultats de recherche, pour créer un rendez-vous ou un échange dans un parcours depuis les résultats de recherche;
* Améliore la liste des rendez-vous dans les résultats de recherche: les rendez-vous sont cliquables;
* [exports] Ajout d'intervalles de dates pour des filtres et regroupements des parcours par référent, métier du référent, service du référent;
* Affiche le métier et le service des utilisateurs à la date à laquelle il a exécuté une action. Le métier et le service est affiché:
* à la date d'un échange,
* au jour d'un rendez-vous,
* quand l'utilisateur est devenu référent d'un parcours d'accompagnement,
* quand il a appliqué une transition sur un workflow,
* quand il a mise à jour ou créé une fiche, dans les mentions "créé / mise à jour par ..., le ...",
* quand il a mis à jour un commentaire,
*
## v2.20.1 - 2024-06-05
### Fixed
* Do not allow StoredObjectCreated for edit and convert buttons
## v2.20.0 - 2024-06-05
### Fixed
* ([#170](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/170)) Display agents traitants instead of accompanying period referrer in export list social actions.
* Added translations for choices of durations (> 5 hours)
### Feature
* ([#145](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/145)) Allow to open documents in LibreOffice locally (need configuration within security);
This endpoint should be added to make the endpoint works properly:
```yaml
security:
firewalls:
dav:
pattern: ^/dav
provider: chain_provider
stateless: true
guard:
authenticators:
- Chill\DocStoreBundle\Security\Guard\JWTOnDavUrlAuthenticator
```
## v2.19.0 - 2024-05-14 ## v2.19.0 - 2024-05-14
### Feature ### Feature
* ([#197](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/197)) Make the script which subscribe to microsoft calendars changes more tolerant to errors or missing configuration on the microsoft side * ([#197](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/197)) Make the script which subscribe to microsoft calendars changes more tolerant to errors or missing configuration on the microsoft side

View File

@@ -55,7 +55,7 @@ Arborescence:
- person - person
- personvendee - personvendee
- household_edit_metadata - household_edit_metadata
- index.js - index.ts
``` ```
## Organisation des feuilles de styles ## Organisation des feuilles de styles

View File

@@ -8,7 +8,7 @@
"social worker" "social worker"
], ],
"require": { "require": {
"php": "^8.3", "php": "^8.2",
"ext-dom": "*", "ext-dom": "*",
"ext-json": "*", "ext-json": "*",
"ext-openssl": "*", "ext-openssl": "*",
@@ -19,6 +19,7 @@
"doctrine/doctrine-migrations-bundle": "^3.0", "doctrine/doctrine-migrations-bundle": "^3.0",
"doctrine/orm": "^2.13.0", "doctrine/orm": "^2.13.0",
"erusev/parsedown": "^1.7", "erusev/parsedown": "^1.7",
"graylog2/gelf-php": "^1.5",
"knplabs/knp-menu-bundle": "^3.0", "knplabs/knp-menu-bundle": "^3.0",
"knplabs/knp-time-bundle": "^1.12", "knplabs/knp-time-bundle": "^1.12",
"knpuniversity/oauth2-client-bundle": "^2.10", "knpuniversity/oauth2-client-bundle": "^2.10",
@@ -30,48 +31,49 @@
"ovh/ovh": "^3.0", "ovh/ovh": "^3.0",
"phpoffice/phpspreadsheet": "^1.16", "phpoffice/phpspreadsheet": "^1.16",
"ramsey/uuid-doctrine": "^1.7", "ramsey/uuid-doctrine": "^1.7",
"sensio/framework-extra-bundle": "^6.0", "sensio/framework-extra-bundle": "^5.5",
"spomky-labs/base64url": "^2.0", "spomky-labs/base64url": "^2.0",
"symfony/asset": "6.4.*", "symfony/asset": "^5.4",
"symfony/browser-kit": "6.4.*", "symfony/browser-kit": "^5.4",
"symfony/cache": "6.4.*", "symfony/cache": "^5.4",
"symfony/clock": "^6.2", "symfony/clock": "^6.2",
"symfony/config": "^6.4", "symfony/config": "^5.4",
"symfony/console": "6.4.*", "symfony/console": "^5.4",
"symfony/css-selector": "6.4.*", "symfony/css-selector": "^5.4",
"symfony/dom-crawler": "6.4.*", "symfony/dom-crawler": "^5.4",
"symfony/error-handler": "6.4.*", "symfony/error-handler": "^5.4",
"symfony/event-dispatcher": "6.4.*", "symfony/event-dispatcher": "^5.4",
"symfony/expression-language": "6.4.*", "symfony/expression-language": "^5.4",
"symfony/filesystem": "6.4.*", "symfony/filesystem": "^5.4",
"symfony/finder": "6.4.*", "symfony/finder": "^5.4",
"symfony/form": "6.4.*", "symfony/form": "^5.4",
"symfony/framework-bundle": "6.4.*", "symfony/framework-bundle": "^5.4",
"symfony/http-client": "6.4.*", "symfony/http-client": "^5.4",
"symfony/http-foundation": "6.4.*", "symfony/http-foundation": "^5.4",
"symfony/intl": "6.4.*", "symfony/intl": "^5.4",
"symfony/mailer": "6.4.*", "symfony/mailer": "^5.4",
"symfony/messenger": "6.4.*", "symfony/messenger": "^5.4",
"symfony/mime": "6.4.*", "symfony/mime": "^5.4",
"symfony/monolog-bundle": "^3.5", "symfony/monolog-bundle": "^3.5",
"symfony/options-resolver": "6.4.*", "symfony/options-resolver": "^5.4",
"symfony/process": "6.4.*", "symfony/process": "^5.4",
"symfony/property-access": "6.4.*", "symfony/property-access": "^5.4",
"symfony/property-info": "6.4.*", "symfony/property-info": "^5.4",
"symfony/routing": "6.4.*", "symfony/routing": "^5.4",
"symfony/security-bundle": "^6.4", "symfony/security-bundle": "^5.4",
"symfony/security-core": "6.4.*", "symfony/security-core": "^5.4",
"symfony/security-csrf": "6.4.*", "symfony/security-csrf": "^5.4",
"symfony/security-http": "6.4.*", "symfony/security-guard": "^5.4",
"symfony/serializer": "6.4.*", "symfony/security-http": "^5.4",
"symfony/string": "6.4.*", "symfony/serializer": "^5.4",
"symfony/templating": "6.4.*", "symfony/string": "^5.4",
"symfony/translation": "6.4.*", "symfony/templating": "^5.4",
"symfony/twig-bundle": "6.4.*", "symfony/translation": "^5.4",
"symfony/validator": "6.4.*", "symfony/twig-bundle": "^5.4",
"symfony/validator": "^5.4",
"symfony/webpack-encore-bundle": "^1.11", "symfony/webpack-encore-bundle": "^1.11",
"symfony/workflow": "6.4.*", "symfony/workflow": "^5.4",
"symfony/yaml": "6.4.*", "symfony/yaml": "^5.4",
"thenetworg/oauth2-azure": "^2.0", "thenetworg/oauth2-azure": "^2.0",
"twig/extra-bundle": "^3.0", "twig/extra-bundle": "^3.0",
"twig/intl-extra": "^3.0", "twig/intl-extra": "^3.0",
@@ -90,15 +92,15 @@
"phpstan/phpstan": "^1.9", "phpstan/phpstan": "^1.9",
"phpstan/phpstan-deprecation-rules": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.1",
"phpstan/phpstan-strict-rules": "^1.0", "phpstan/phpstan-strict-rules": "^1.0",
"phpunit/phpunit": "^10.5.24", "phpunit/phpunit": ">= 7.5",
"rector/rector": "^1.1.0", "rector/rector": "^1.1.0",
"symfony/debug-bundle": "6.4.*", "symfony/debug-bundle": "^5.4",
"symfony/dotenv": "6.4.*", "symfony/dotenv": "^5.4",
"symfony/maker-bundle": "^1.20", "symfony/maker-bundle": "^1.20",
"symfony/phpunit-bridge": "^7.1", "symfony/phpunit-bridge": "^5.4",
"symfony/runtime": "6.4.*", "symfony/runtime": "^5.4",
"symfony/stopwatch": "6.4.*", "symfony/stopwatch": "^5.4",
"symfony/var-dumper": "6.4.*" "symfony/var-dumper": "^5.4"
}, },
"conflict": { "conflict": {
"symfony/symfony": "*" "symfony/symfony": "*"
@@ -113,12 +115,11 @@
"Chill\\DocGeneratorBundle\\": "src/Bundle/ChillDocGeneratorBundle", "Chill\\DocGeneratorBundle\\": "src/Bundle/ChillDocGeneratorBundle",
"Chill\\DocStoreBundle\\": "src/Bundle/ChillDocStoreBundle", "Chill\\DocStoreBundle\\": "src/Bundle/ChillDocStoreBundle",
"Chill\\EventBundle\\": "src/Bundle/ChillEventBundle", "Chill\\EventBundle\\": "src/Bundle/ChillEventBundle",
"Chill\\FranceTravailApiBundle\\": "src/Bundle/ChillFranceTravailApiBundle/src",
"Chill\\JobBundle\\": "src/Bundle/ChillJobBundle/src",
"Chill\\MainBundle\\": "src/Bundle/ChillMainBundle", "Chill\\MainBundle\\": "src/Bundle/ChillMainBundle",
"Chill\\PersonBundle\\": "src/Bundle/ChillPersonBundle", "Chill\\PersonBundle\\": "src/Bundle/ChillPersonBundle",
"Chill\\ReportBundle\\": "src/Bundle/ChillReportBundle", "Chill\\ReportBundle\\": "src/Bundle/ChillReportBundle",
"Chill\\TaskBundle\\": "src/Bundle/ChillTaskBundle", "Chill\\TaskBundle\\": "src/Bundle/ChillTaskBundle",
"Chill\\TicketBundle\\": "src/Bundle/ChillTicketBundle/src",
"Chill\\ThirdPartyBundle\\": "src/Bundle/ChillThirdPartyBundle", "Chill\\ThirdPartyBundle\\": "src/Bundle/ChillThirdPartyBundle",
"Chill\\WopiBundle\\": "src/Bundle/ChillWopiBundle/src", "Chill\\WopiBundle\\": "src/Bundle/ChillWopiBundle/src",
"Chill\\Utils\\Rector\\": "utils/rector/src" "Chill\\Utils\\Rector\\": "utils/rector/src"
@@ -126,8 +127,9 @@
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "psr-4": {
"App\\": "tests/", "App\\": "tests",
"Chill\\DocGeneratorBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests", "Chill\\DocGeneratorBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests",
"Chill\\TicketBundle\\Tests\\": "src/Bundle/ChillTicketBundle/tests",
"Chill\\WopiBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests", "Chill\\WopiBundle\\Tests\\": "src/Bundle/ChillDocGeneratorBundle/tests",
"Chill\\Utils\\Rector\\Tests\\": "utils/rector/tests" "Chill\\Utils\\Rector\\Tests\\": "utils/rector/tests"
} }
@@ -149,13 +151,6 @@
"scripts": { "scripts": {
"auto-scripts": { "auto-scripts": {
"cache:clear": "symfony-cmd" "cache:clear": "symfony-cmd"
},
"php-cs-fixer": "php-cs-fixer fix --config=./.php-cs-fixer.dist.php --show-progress=none"
},
"extra": {
"symfony": {
"allow-contrib": false,
"require": "6.4.*"
} }
} }
} }

View File

@@ -21,15 +21,13 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
class BirthdateFilter implements ExportElementValidatedInterface, FilterInterface class BirthdateFilter implements ExportElementValidatedInterface, FilterInterface
{ {
// add specific role for this filter // add specific role for this filter
#[\Override] public function addRole()
public function addRole(): ?string
{ {
// we do not need any new role for this filter, so we return null // we do not need any new role for this filter, so we return null
return null; return null;
} }
// here, we alter the query created by Export // here, we alter the query created by Export
#[\Override]
public function alterQuery(\Doctrine\ORM\QueryBuilder $qb, $data) public function alterQuery(\Doctrine\ORM\QueryBuilder $qb, $data)
{ {
$where = $qb->getDQLPart('where'); $where = $qb->getDQLPart('where');
@@ -54,14 +52,12 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
} }
// we give information on which type of export this filter applies // we give information on which type of export this filter applies
#[\Override]
public function applyOn() public function applyOn()
{ {
return 'person'; return 'person';
} }
// we build a form to collect some parameters from the users // we build a form to collect some parameters from the users
#[\Override]
public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder) public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder)
{ {
$builder->add('date_from', DateType::class, [ $builder->add('date_from', DateType::class, [
@@ -78,7 +74,6 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
'format' => 'dd-MM-yyyy', 'format' => 'dd-MM-yyyy',
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return ['date_from' => new DateTime(), 'date_to' => new DateTime()]; return ['date_from' => new DateTime(), 'date_to' => new DateTime()];
@@ -86,7 +81,6 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
// here, we create a simple string which will describe the action of // here, we create a simple string which will describe the action of
// the filter in the Response // the filter in the Response
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
return ['Filtered by person\'s birtdate: ' return ['Filtered by person\'s birtdate: '
@@ -96,7 +90,6 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
], ]; ], ];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'Filter by person\'s birthdate'; return 'Filter by person\'s birthdate';
@@ -106,7 +99,6 @@ class BirthdateFilter implements ExportElementValidatedInterface, FilterInterfac
// is executed here. This function is added by the interface // is executed here. This function is added by the interface
// `ExportElementValidatedInterface`, and can be ignore if there is // `ExportElementValidatedInterface`, and can be ignore if there is
// no need for a validation // no need for a validation
#[\Override]
public function validateForm($data, ExecutionContextInterface $context) public function validateForm($data, ExecutionContextInterface $context)
{ {
$date_from = $data['date_from']; $date_from = $data['date_from'];

View File

@@ -32,30 +32,25 @@ class CountPerson implements ExportInterface
$this->entityManager = $em; $this->entityManager = $em;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// this export does not add any form // this export does not add any form
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes() public function getAllowedFormattersTypes()
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription() public function getDescription()
{ {
return 'Count peoples by various parameters.'; return 'Count peoples by various parameters.';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
// the Closure which will be executed by the formatter. // the Closure which will be executed by the formatter.
@@ -65,7 +60,6 @@ class CountPerson implements ExportInterface
}; };
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
// this array match the result keys in the query. We have only // this array match the result keys in the query. We have only
@@ -73,25 +67,21 @@ class CountPerson implements ExportInterface
return ['export_result']; return ['export_result'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'Count peoples'; return 'Count peoples';
} }
#[\Override]
public function getType() public function getType()
{ {
return Declarations::PERSON_TYPE; return Declarations::PERSON_TYPE;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
// we gather all center the user choose. // we gather all center the user choose.
@@ -108,13 +98,11 @@ class CountPerson implements ExportInterface
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return PersonVoter::STATS; return PersonVoter::STATS;
} }
#[\Override]
public function supportsModifiers() public function supportsModifiers()
{ {
// explain the export manager which formatters and filters are allowed // explain the export manager which formatters and filters are allowed

View File

@@ -31,7 +31,6 @@ class ChillMainConfiguration implements ConfigurationInterface
$this->setWidgetFactories($widgetFactories); $this->setWidgetFactories($widgetFactories);
} }
#[\Override]
public function getConfigTreeBuilder() public function getConfigTreeBuilder()
{ {
$treeBuilder = new TreeBuilder('chill_main'); $treeBuilder = new TreeBuilder('chill_main');

View File

@@ -27,13 +27,11 @@ class ChillMainExtension extends Extension implements Widget\HasWidgetFactoriesE
*/ */
protected $widgetFactories = []; protected $widgetFactories = [];
#[\Override]
public function addWidgetFactory(WidgetFactoryInterface $factory) public function addWidgetFactory(WidgetFactoryInterface $factory)
{ {
$this->widgetFactories[] = $factory; $this->widgetFactories[] = $factory;
} }
#[\Override]
public function getConfiguration(array $config, ContainerBuilder $container) public function getConfiguration(array $config, ContainerBuilder $container)
{ {
return new Configuration($this->widgetFactories, $container); return new Configuration($this->widgetFactories, $container);
@@ -42,13 +40,11 @@ class ChillMainExtension extends Extension implements Widget\HasWidgetFactoriesE
/** /**
* @return WidgetFactoryInterface[] * @return WidgetFactoryInterface[]
*/ */
#[\Override]
public function getWidgetFactories() public function getWidgetFactories()
{ {
return $this->widgetFactories; return $this->widgetFactories;
} }
#[\Override]
public function load(array $configs, ContainerBuilder $container) public function load(array $configs, ContainerBuilder $container)
{ {
// configuration for main bundle // configuration for main bundle

View File

@@ -25,7 +25,6 @@ class ChillPersonAddAPersonListWidgetFactory extends AbstractWidgetFactory
* see http://symfony.com/doc/current/components/config/definition.html * see http://symfony.com/doc/current/components/config/definition.html
* *
*/ */
#[\Override]
public function configureOptions($place, NodeBuilder $node) public function configureOptions($place, NodeBuilder $node)
{ {
$node->booleanNode('only_active') $node->booleanNode('only_active')
@@ -57,7 +56,6 @@ class ChillPersonAddAPersonListWidgetFactory extends AbstractWidgetFactory
* the service must exists in the container, and it is not required that the service * the service must exists in the container, and it is not required that the service
* has the `chill_main` tag. * has the `chill_main` tag.
*/ */
#[\Override]
public function getServiceId(ContainerBuilder $containerBuilder, $place, $order, array $config) public function getServiceId(ContainerBuilder $containerBuilder, $place, $order, array $config)
{ {
return 'chill_person.widget.person_list'; return 'chill_person.widget.person_list';
@@ -68,7 +66,6 @@ class ChillPersonAddAPersonListWidgetFactory extends AbstractWidgetFactory
* *
* @return string * @return string
*/ */
#[\Override]
public function getWidgetAlias() public function getWidgetAlias()
{ {
return 'person_list'; return 'person_list';

View File

@@ -79,7 +79,6 @@ class ChillPersonAddAPersonWidget implements WidgetInterface
* *
* @return string * @return string
*/ */
#[\Override]
public function render(Twig_Environment $env, $place, array $context, array $config) public function render(Twig_Environment $env, $place, array $context, array $config)
{ {
$qb = $this->personRepository $qb = $this->personRepository

View File

@@ -22,7 +22,6 @@ use Symfony\Component\HttpKernel\DependencyInjection\Extension;
*/ */
class ChillPersonExtension extends Extension implements PrependExtensionInterface class ChillPersonExtension extends Extension implements PrependExtensionInterface
{ {
#[\Override]
public function load(array $configs, ContainerBuilder $container) public function load(array $configs, ContainerBuilder $container)
{ {
// ... // ...
@@ -33,7 +32,6 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac
* *
* @param \Chill\PersonBundle\DependencyInjection\containerBuilder $container * @param \Chill\PersonBundle\DependencyInjection\containerBuilder $container
*/ */
#[\Override]
public function prepend(ContainerBuilder $container) public function prepend(ContainerBuilder $container)
{ {
$container->prependExtensionConfig('chill_main', [ $container->prependExtensionConfig('chill_main', [

View File

@@ -56,7 +56,7 @@ We strongly encourage you to initialize a git repository at this step, to track
cat <<< "$(jq '.extra.symfony += {"endpoint": ["flex://defaults", "https://gitlab.com/api/v4/projects/57371968/repository/files/index.json/raw?ref=main"]}' composer.json)" > composer.json cat <<< "$(jq '.extra.symfony += {"endpoint": ["flex://defaults", "https://gitlab.com/api/v4/projects/57371968/repository/files/index.json/raw?ref=main"]}' composer.json)" > composer.json
# install chill and some dependencies # install chill and some dependencies
# TODO fix the suffix "alpha1" and replace by ^3.0.0 when version 3.0.0 will be released # TODO fix the suffix "alpha1" and replace by ^3.0.0 when version 3.0.0 will be released
symfony composer require chill-project/chill-bundles v3.0.0-RC3 champs-libres/wopi-lib dev-master@dev champs-libres/wopi-bundle dev-master@dev symfony composer require chill-project/chill-bundles v3.0.0-alpha1 champs-libres/wopi-lib dev-master@dev champs-libres/wopi-bundle dev-master@dev
We encourage you to accept the inclusion of the "Docker configuration from recipes": this is the documented way to run the database. We encourage you to accept the inclusion of the "Docker configuration from recipes": this is the documented way to run the database.
You must also accept to configure recipes from the contrib repository, unless you want to configure the bundles manually). You must also accept to configure recipes from the contrib repository, unless you want to configure the bundles manually).
@@ -95,7 +95,7 @@ custom developments. But most of the time, this should be fine.
You have to configure some local variables, which are described in the :code:`.env` file. The secrets should not be stored You have to configure some local variables, which are described in the :code:`.env` file. The secrets should not be stored
in this :code:`.env` file, but instead using the `secrets management tool <https://symfony.com/doc/current/configuration/secrets.html>`_ in this :code:`.env` file, but instead using the `secrets management tool <https://symfony.com/doc/current/configuration/secrets.html>`_
or in the :code:`.env.local` file, which should not be committed to the git repository. or in the :code:`.env.local` file, which should not be commited to the git repository.
You do not need to set variables for the smtp server, redis server and relatorio server, as they are generated automatically You do not need to set variables for the smtp server, redis server and relatorio server, as they are generated automatically
by the symfony server, from the docker compose services. by the symfony server, from the docker compose services.
@@ -110,15 +110,10 @@ you can either:
.. code-block:: env .. code-block:: env
ADMIN_PASSWORD=\$2y\$13\$iyvJLuT4YEa6iWXyQV4/N.hNHpNG8kXlYDkkt5MkYy4FXcSwYAwmm ADMIN_PASSWORD=\$2y\$13\$iyvJLuT4YEa6iWXyQV4/N.hNHpNG8kXlYDkkt5MkYy4FXcSwYAwmm
# note: if you copy-paste the line above, the password will be "admin".
- add the generated password to the secrets manager (**note**: you must add the generated hashed password to the secrets env, - add the generated password to the secrets manager (**note**: you must add the generated hashed password to the secrets env,
not the password in clear text). not the password in clear text).
- set up the jwt authentication bundle
Some environment variables are available for the JWT authentication bundle in the :code:`.env` file.
Prepare migrations and other tools Prepare migrations and other tools
********************************** **********************************
@@ -135,8 +130,6 @@ To continue the installation process, you will have to run migrations:
symfony console messenger:setup-transports symfony console messenger:setup-transports
# prepare some views # prepare some views
symfony console chill:db:sync-views symfony console chill:db:sync-views
# generate jwt token, required for some api features (webdav access, ...)
symfony console lexik:jwt:generate-keypair
.. warning:: .. warning::
@@ -171,7 +164,7 @@ can rely on the whole chill framework, meaning there is no need to add them to t
You will require some bundles to have the following development tools: You will require some bundles to have the following development tools:
- add fixtures - add fixtures
- add profiler and debug bundle - add profiler and var-dumper to debug
Install fixtures Install fixtures
**************** ****************
@@ -186,7 +179,7 @@ Install fixtures
This will generate user accounts, centers, and some basic configuration. This will generate user accounts, centers, and some basic configuration.
The accounts created are: :code:`center a_social`, :code:`center b_social`, :code:`center a_direction`, ... The full list is The accounts created are: :code:`center a_social`, :code:`center b_social`, :code:`center a_direction`, ... The full list is
visible in the "users" table: :code:`docker compose exec database psql -U app -c "SELECT username FROM users"`. visibile in the "users" table: :code:`docker compose exec database psql -U app -c "SELECT username FROM users"`.
The password is always :code:`password`. The password is always :code:`password`.
@@ -199,7 +192,7 @@ Add web profiler and debugger
.. code-block:: bash .. code-block:: bash
symfony composer require --dev symfony/web-profiler-bundle symfony/debug-bundle symfony composer require --dev symfony/web-profiler-bundle symfony/var-dumper
Working on chill bundles Working on chill bundles
************************ ************************

View File

@@ -6,13 +6,12 @@
"@apidevtools/swagger-cli": "^4.0.4", "@apidevtools/swagger-cli": "^4.0.4",
"@babel/core": "^7.20.5", "@babel/core": "^7.20.5",
"@babel/preset-env": "^7.20.2", "@babel/preset-env": "^7.20.2",
"@ckeditor/ckeditor5-build-classic": "^41.4.2", "@ckeditor/ckeditor5-build-classic": "^35.3.2",
"@ckeditor/ckeditor5-dev-utils": "^40.2.0", "@ckeditor/ckeditor5-dev-utils": "^31.1.13",
"@ckeditor/ckeditor5-dev-webpack-plugin": "^31.1.13", "@ckeditor/ckeditor5-dev-webpack-plugin": "^31.1.13",
"@ckeditor/ckeditor5-dev-translations": "^40.2.0", "@ckeditor/ckeditor5-markdown-gfm": "^35.3.2",
"@ckeditor/ckeditor5-markdown-gfm": "^41.4.2", "@ckeditor/ckeditor5-theme-lark": "^35.3.2",
"@ckeditor/ckeditor5-theme-lark": "^41.4.2", "@ckeditor/ckeditor5-vue": "^4.0.1",
"@ckeditor/ckeditor5-vue": "^5.1.0",
"@symfony/webpack-encore": "^4.1.0", "@symfony/webpack-encore": "^4.1.0",
"@tsconfig/node14": "^1.0.1", "@tsconfig/node14": "^1.0.1",
"@types/dompurify": "^3.0.5", "@types/dompurify": "^3.0.5",
@@ -27,12 +26,12 @@
"popper.js": "^1.16.1", "popper.js": "^1.16.1",
"postcss-loader": "^7.0.2", "postcss-loader": "^7.0.2",
"raw-loader": "^4.0.2", "raw-loader": "^4.0.2",
"sass-loader": "^14.0.0", "sass-loader": "^13.0.0",
"select2": "^4.0.13", "select2": "^4.0.13",
"select2-bootstrap-theme": "0.1.0-beta.10", "select2-bootstrap-theme": "0.1.0-beta.10",
"style-loader": "^3.3.1", "style-loader": "^3.3.1",
"ts-loader": "^9.3.1", "ts-loader": "^9.3.1",
"typescript": "^5.4.5", "typescript": "^4.7.2",
"vue-loader": "^17.0.0", "vue-loader": "^17.0.0",
"webpack": "^5.75.0", "webpack": "^5.75.0",
"webpack-cli": "^5.0.1" "webpack-cli": "^5.0.1"
@@ -46,11 +45,9 @@
"@fullcalendar/vue3": "^6.1.4", "@fullcalendar/vue3": "^6.1.4",
"@popperjs/core": "^2.9.2", "@popperjs/core": "^2.9.2",
"@types/leaflet": "^1.9.3", "@types/leaflet": "^1.9.3",
"@types/dompurify": "^3.0.5",
"dropzone": "^5.7.6", "dropzone": "^5.7.6",
"es6-promise": "^4.2.8", "es6-promise": "^4.2.8",
"leaflet": "^1.7.1", "leaflet": "^1.7.1",
"marked": "^12.0.2",
"masonry-layout": "^4.2.2", "masonry-layout": "^4.2.2",
"mime": "^4.0.0", "mime": "^4.0.0",
"swagger-ui": "^4.15.5", "swagger-ui": "^4.15.5",
@@ -58,7 +55,7 @@
"vue": "^3.2.37", "vue": "^3.2.37",
"vue-i18n": "^9.1.6", "vue-i18n": "^9.1.6",
"vue-multiselect": "3.0.0-alpha.2", "vue-multiselect": "3.0.0-alpha.2",
"vue-toast-notification": "^3.1.2", "vue-toast-notification": "^2.0",
"vuex": "^4.0.0" "vuex": "^4.0.0"
}, },
"browserslist": [ "browserslist": [

View File

@@ -1,29 +1,34 @@
parameters: parameters:
ignoreErrors: ignoreErrors:
-
message: "#^Foreach overwrites \\$key with its key variable\\.$#"
count: 1
path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php
- -
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#" message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 1 count: 1
path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomField.php path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomField.php
- -
message: "#^Property Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomField\\:\\:\\$required \\(false\\) does not accept bool\\.$#" message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 1 count: 1
path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomField.php path: src/Bundle/ChillPersonBundle/Form/PersonType.php
- -
message: "#^Parameter \\#1 \\$user of method Chill\\\\DocStoreBundle\\\\Entity\\\\Document\\:\\:setUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 2 count: 1
path: src/Bundle/ChillDocStoreBundle/Controller/DocumentAccompanyingCourseController.php path: src/Bundle/ChillMainBundle/Templating/ChillTwigRoutingHelper.php
- -
message: "#^Parameter \\#1 \\$user of method Chill\\\\DocStoreBundle\\\\Entity\\\\Document\\:\\:setUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 1
path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomFieldsGroup.php
-
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 2 count: 2
path: src/Bundle/ChillDocStoreBundle/Controller/DocumentPersonController.php path: src/Bundle/ChillMainBundle/Repository/NotificationRepository.php
-
message: "#^Foreach overwrites \\$key with its key variable\\.$#"
count: 1
path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php
- -
message: "#^Variable \\$participation might not be defined\\.$#" message: "#^Variable \\$participation might not be defined\\.$#"
@@ -35,106 +40,6 @@ parameters:
count: 1 count: 1
path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php
-
message: "#^Comparison operation \"\\>\" between \\(bool\\|int\\|Redis\\) and 0 results in an error\\.$#"
count: 1
path: src/Bundle/ChillFranceTravailApiBundle/src/ApiHelper/ApiWrapper.php
-
message: "#^Variable \\$response might not be defined\\.$#"
count: 1
path: src/Bundle/ChillFranceTravailApiBundle/src/ApiHelper/ApiWrapper.php
-
message: "#^Function GuzzleHttp\\\\Psr7\\\\get not found\\.$#"
count: 1
path: src/Bundle/ChillFranceTravailApiBundle/src/ApiHelper/PartenaireRomeAppellation.php
-
message: "#^Function GuzzleHttp\\\\Psr7\\\\str not found\\.$#"
count: 2
path: src/Bundle/ChillFranceTravailApiBundle/src/ApiHelper/PartenaireRomeAppellation.php
-
message: "#^Parameter \\#1 \\$seconds of function sleep expects int, string given\\.$#"
count: 1
path: src/Bundle/ChillFranceTravailApiBundle/src/ApiHelper/PartenaireRomeAppellation.php
-
message: "#^Unreachable statement \\- code above always terminates\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Controller/CSPersonController.php
-
message: "#^Parameter \\#1 \\$interval of method DateTimeImmutable\\:\\:add\\(\\) expects DateInterval, string\\|null given\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Entity/Immersion.php
-
message: "#^Parameter \\#1 \\$object of static method DateTimeImmutable\\:\\:createFromMutable\\(\\) expects DateTime, DateTimeInterface given\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Entity/Immersion.php
-
message: "#^Property Chill\\\\JobBundle\\\\Entity\\\\Rome\\\\Metier\\:\\:\\$appellations is never read, only written\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Entity/Rome/Metier.php
-
message: "#^Method Chill\\\\JobBundle\\\\Export\\\\ListCSPerson\\:\\:splitArrayToColumns\\(\\) never returns Closure so it can be removed from the return type\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Export/ListCSPerson.php
-
message: "#^Variable \\$f might not be defined\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Export/ListCSPerson.php
-
message: "#^Method Chill\\\\JobBundle\\\\Export\\\\ListFrein\\:\\:splitArrayToColumns\\(\\) never returns Closure so it can be removed from the return type\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Export/ListFrein.php
-
message: "#^Method Chill\\\\JobBundle\\\\Export\\\\ListProjetProfessionnel\\:\\:splitArrayToColumns\\(\\) never returns Closure so it can be removed from the return type\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Export/ListProjetProfessionnel.php
-
message: "#^Property Chill\\\\JobBundle\\\\Form\\\\ChoiceLoader\\\\RomeAppellationChoiceLoader\\:\\:\\$appellationRepository \\(Chill\\\\JobBundle\\\\Repository\\\\Rome\\\\AppellationRepository\\) does not accept Doctrine\\\\ORM\\\\EntityRepository\\<Chill\\\\JobBundle\\\\Entity\\\\Rome\\\\Appellation\\>\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Form/ChoiceLoader/RomeAppellationChoiceLoader.php
-
message: "#^Result of && is always false\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Form/ChoiceLoader/RomeAppellationChoiceLoader.php
-
message: "#^Strict comparison using \\=\\=\\= between array\\{\\} and Symfony\\\\Component\\\\Validator\\\\ConstraintViolationListInterface will always evaluate to false\\.$#"
count: 2
path: src/Bundle/ChillJobBundle/src/Form/ChoiceLoader/RomeAppellationChoiceLoader.php
-
message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Form/ChoiceLoader/RomeAppellationChoiceLoader.php
-
message: "#^Variable \\$metier might not be defined\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Form/ChoiceLoader/RomeAppellationChoiceLoader.php
-
message: "#^Parameter \\#1 \\$interval of method DateTimeImmutable\\:\\:add\\(\\) expects DateInterval, string\\|null given\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Security/Authorization/CSConnectesVoter.php
-
message: "#^Parameter \\#1 \\$object of static method DateTimeImmutable\\:\\:createFromMutable\\(\\) expects DateTime, DateTimeInterface given\\.$#"
count: 1
path: src/Bundle/ChillJobBundle/src/Security/Authorization/CSConnectesVoter.php
- -
message: "#^Cannot unset offset '_token' on array\\{formatter\\: mixed, export\\: mixed, centers\\: mixed, alias\\: string\\}\\.$#" message: "#^Cannot unset offset '_token' on array\\{formatter\\: mixed, export\\: mixed, centers\\: mixed, alias\\: string\\}\\.$#"
count: 1 count: 1
@@ -160,31 +65,11 @@ parameters:
count: 1 count: 1
path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php
-
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 2
path: src/Bundle/ChillMainBundle/Repository/NotificationRepository.php
-
message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:userHasAccessForCenter\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface given\\.$#"
count: 1
path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php
-
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 1
path: src/Bundle/ChillMainBundle/Templating/ChillTwigRoutingHelper.php
- -
message: "#^Foreach overwrites \\$value with its value variable\\.$#" message: "#^Foreach overwrites \\$value with its value variable\\.$#"
count: 1 count: 1
path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php
-
message: "#^Only booleans are allowed in an if condition, mixed given\\.$#"
count: 1
path: src/Bundle/ChillPersonBundle/Form/PersonType.php
- -
message: "#^Foreach overwrites \\$value with its value variable\\.$#" message: "#^Foreach overwrites \\$value with its value variable\\.$#"
count: 1 count: 1

View File

@@ -49,6 +49,10 @@
<!-- temporarily removed, the time to find a fix --> <!-- temporarily removed, the time to find a fix -->
<exclude>src/Bundle/ChillPersonBundle/Tests/Controller/PersonDuplicateControllerViewTest.php</exclude> <exclude>src/Bundle/ChillPersonBundle/Tests/Controller/PersonDuplicateControllerViewTest.php</exclude>
</testsuite> </testsuite>
<testsuite name="TicketBundle">
<directory suffix="Test.php">src/Bundle/ChillTicketBundle/tests/</directory>
</testsuite>
<!-- <!--
<testsuite name="ReportBundle"> <testsuite name="ReportBundle">
<directory suffix="Test.php">src/Bundle/ChillReportBundle/Tests/</directory> <directory suffix="Test.php">src/Bundle/ChillReportBundle/Tests/</directory>

View File

@@ -28,9 +28,6 @@ return static function (RectorConfig $rectorConfig): void {
// register a single rule // register a single rule
$rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class); $rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class);
$rectorConfig->rule(Rector\TypeDeclaration\Rector\ClassMethod\AddParamTypeFromPropertyTypeRector::class);
$rectorConfig->rule(Rector\TypeDeclaration\Rector\Class_\MergeDateTimePropertyTypeDeclarationRector::class);
$rectorConfig->rule(Rector\TypeDeclaration\Rector\ClassMethod\AddReturnTypeDeclarationBasedOnParentClassMethodRector::class);
// part of the symfony 54 rules // part of the symfony 54 rules
$rectorConfig->rule(\Rector\Symfony\Symfony53\Rector\StaticPropertyFetch\KernelTestCaseContainerPropertyDeprecationRector::class); $rectorConfig->rule(\Rector\Symfony\Symfony53\Rector\StaticPropertyFetch\KernelTestCaseContainerPropertyDeprecationRector::class);
@@ -39,19 +36,14 @@ return static function (RectorConfig $rectorConfig): void {
//define sets of rules //define sets of rules
$rectorConfig->sets([ $rectorConfig->sets([
LevelSetList::UP_TO_PHP_83,
// \Rector\Symfony\Set\SymfonySetList::SYMFONY_40,
// \Rector\Symfony\Set\SymfonySetList::SYMFONY_41,
// \Rector\Symfony\Set\SymfonySetList::SYMFONY_42,
// \Rector\Symfony\Set\SymfonySetList::SYMFONY_43,
// \Rector\Symfony\Set\SymfonySetList::SYMFONY_44,
\Rector\Symfony\Set\SymfonySetList::SYMFONY_50, \Rector\Symfony\Set\SymfonySetList::SYMFONY_50,
\Rector\Symfony\Set\SymfonySetList::SYMFONY_50_TYPES,
\Rector\Symfony\Set\SymfonySetList::SYMFONY_51, \Rector\Symfony\Set\SymfonySetList::SYMFONY_51,
\Rector\Symfony\Set\SymfonySetList::SYMFONY_52, \Rector\Symfony\Set\SymfonySetList::SYMFONY_52,
\Rector\Symfony\Set\SymfonySetList::SYMFONY_53, \Rector\Symfony\Set\SymfonySetList::SYMFONY_53,
\Rector\Symfony\Set\SymfonySetList::SYMFONY_54, \Rector\Symfony\Set\SymfonySetList::SYMFONY_54,
// \Rector\Doctrine\Set\DoctrineSetList::DOCTRINE_CODE_QUALITY, \Rector\Doctrine\Set\DoctrineSetList::DOCTRINE_CODE_QUALITY,
// \Rector\PHPUnit\Set\PHPUnitSetList::PHPUNIT_90, \Rector\Doctrine\Set\DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES,
]); ]);
$rectorConfig->ruleWithConfiguration(\Rector\Php80\Rector\Class_\AnnotationToAttributeRector::class, [ $rectorConfig->ruleWithConfiguration(\Rector\Php80\Rector\Class_\AnnotationToAttributeRector::class, [

View File

@@ -99,10 +99,10 @@ final class ActivityController extends AbstractController
$form = $this->createDeleteForm($activity->getId(), $person, $accompanyingPeriod); $form = $this->createDeleteForm($activity->getId(), $person, $accompanyingPeriod);
if (Request::METHOD_POST === $request->getMethod()) { if (Request::METHOD_DELETE === $request->getMethod()) {
$form->handleRequest($request); $form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) { if ($form->isValid()) {
$this->logger->notice('An activity has been removed', [ $this->logger->notice('An activity has been removed', [
'by_user' => $this->getUser()->getUsername(), 'by_user' => $this->getUser()->getUsername(),
'activity_id' => $activity->getId(), 'activity_id' => $activity->getId(),
@@ -640,6 +640,7 @@ final class ActivityController extends AbstractController
return $this->createFormBuilder() return $this->createFormBuilder()
->setAction($this->generateUrl('chill_activity_activity_delete', $params)) ->setAction($this->generateUrl('chill_activity_activity_delete', $params))
->setMethod('DELETE')
->add('submit', SubmitType::class, ['label' => 'Delete']) ->add('submit', SubmitType::class, ['label' => 'Delete'])
->getForm(); ->getForm();
} }

View File

@@ -22,7 +22,6 @@ class AdminActivityPresenceController extends CRUDController
* *
* @return \Doctrine\ORM\QueryBuilder|mixed * @return \Doctrine\ORM\QueryBuilder|mixed
*/ */
#[\Override]
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator) protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator)
{ {
/* @var \Doctrine\ORM\QueryBuilder $query */ /* @var \Doctrine\ORM\QueryBuilder $query */

View File

@@ -22,7 +22,6 @@ class AdminActivityTypeCategoryController extends CRUDController
* *
* @return \Doctrine\ORM\QueryBuilder|mixed * @return \Doctrine\ORM\QueryBuilder|mixed
*/ */
#[\Override]
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator) protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator)
{ {
/* @var \Doctrine\ORM\QueryBuilder $query */ /* @var \Doctrine\ORM\QueryBuilder $query */

View File

@@ -22,7 +22,6 @@ class AdminActivityTypeController extends CRUDController
* *
* @return \Doctrine\ORM\QueryBuilder|mixed * @return \Doctrine\ORM\QueryBuilder|mixed
*/ */
#[\Override]
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator) protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator)
{ {
/* @var \Doctrine\ORM\QueryBuilder $query */ /* @var \Doctrine\ORM\QueryBuilder $query */

View File

@@ -32,13 +32,11 @@ class LoadActivity extends AbstractFixture implements OrderedFixtureInterface
$this->faker = FakerFactory::create('fr_FR'); $this->faker = FakerFactory::create('fr_FR');
} }
#[\Override]
public function getOrder() public function getOrder()
{ {
return 16400; return 16400;
} }
#[\Override]
public function load(ObjectManager $manager) public function load(ObjectManager $manager)
{ {
$persons = $this->em $persons = $this->em

View File

@@ -38,7 +38,6 @@ class LoadActivityNotifications extends AbstractFixture implements DependentFixt
], ],
]; ];
#[\Override]
public function getDependencies() public function getDependencies()
{ {
return [ return [

View File

@@ -23,13 +23,11 @@ class LoadActivityReason extends AbstractFixture implements OrderedFixtureInterf
{ {
public static $references = []; public static $references = [];
#[\Override]
public function getOrder() public function getOrder()
{ {
return 16300; return 16300;
} }
#[\Override]
public function load(ObjectManager $manager) public function load(ObjectManager $manager)
{ {
$reasons = [ $reasons = [

View File

@@ -21,13 +21,11 @@ use Doctrine\Persistence\ObjectManager;
*/ */
class LoadActivityReasonCategory extends AbstractFixture implements OrderedFixtureInterface class LoadActivityReasonCategory extends AbstractFixture implements OrderedFixtureInterface
{ {
#[\Override]
public function getOrder() public function getOrder()
{ {
return 16200; return 16200;
} }
#[\Override]
public function load(ObjectManager $manager) public function load(ObjectManager $manager)
{ {
$categs = [ $categs = [

View File

@@ -23,13 +23,11 @@ class LoadActivityType extends Fixture implements OrderedFixtureInterface
{ {
public static $references = []; public static $references = [];
#[\Override]
public function getOrder() public function getOrder()
{ {
return 16100; return 16100;
} }
#[\Override]
public function load(ObjectManager $manager) public function load(ObjectManager $manager)
{ {
$types = [ $types = [

View File

@@ -23,13 +23,11 @@ class LoadActivityTypeCategory extends Fixture implements OrderedFixtureInterfac
{ {
public static $references = []; public static $references = [];
#[\Override]
public function getOrder() public function getOrder()
{ {
return 16050; return 16050;
} }
#[\Override]
public function load(ObjectManager $manager) public function load(ObjectManager $manager)
{ {
$categories = [ $categories = [

View File

@@ -26,13 +26,11 @@ use Doctrine\Persistence\ObjectManager;
*/ */
class LoadActivitytACL extends AbstractFixture implements OrderedFixtureInterface class LoadActivitytACL extends AbstractFixture implements OrderedFixtureInterface
{ {
#[\Override]
public function getOrder() public function getOrder()
{ {
return 16000; return 16000;
} }
#[\Override]
public function load(ObjectManager $manager) public function load(ObjectManager $manager)
{ {
foreach (LoadPermissionsGroup::$refs as $permissionsGroupRef) { foreach (LoadPermissionsGroup::$refs as $permissionsGroupRef) {

View File

@@ -25,7 +25,6 @@ use Symfony\Component\HttpKernel\DependencyInjection\Extension;
*/ */
class ChillActivityExtension extends Extension implements PrependExtensionInterface class ChillActivityExtension extends Extension implements PrependExtensionInterface
{ {
#[\Override]
public function load(array $configs, ContainerBuilder $container) public function load(array $configs, ContainerBuilder $container)
{ {
$configuration = new Configuration(); $configuration = new Configuration();
@@ -45,7 +44,6 @@ class ChillActivityExtension extends Extension implements PrependExtensionInterf
$loader->load('services/doctrine.entitylistener.yaml'); $loader->load('services/doctrine.entitylistener.yaml');
} }
#[\Override]
public function prepend(ContainerBuilder $container) public function prepend(ContainerBuilder $container)
{ {
$this->prependRoutes($container); $this->prependRoutes($container);

View File

@@ -22,7 +22,6 @@ use function is_int;
*/ */
class Configuration implements ConfigurationInterface class Configuration implements ConfigurationInterface
{ {
#[\Override]
public function getConfigTreeBuilder() public function getConfigTreeBuilder()
{ {
$treeBuilder = new TreeBuilder('chill_activity'); $treeBuilder = new TreeBuilder('chill_activity');

View File

@@ -53,9 +53,9 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
use TrackUpdateTrait; use TrackUpdateTrait;
final public const string SENTRECEIVED_RECEIVED = 'received'; final public const SENTRECEIVED_RECEIVED = 'received';
final public const string SENTRECEIVED_SENT = 'sent'; final public const SENTRECEIVED_SENT = 'sent';
#[Groups(['read'])] #[Groups(['read'])]
#[ORM\ManyToOne(targetEntity: AccompanyingPeriod::class)] #[ORM\ManyToOne(targetEntity: AccompanyingPeriod::class)]
@@ -262,7 +262,6 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
return $this; return $this;
} }
#[\Override]
public function getAccompanyingPeriod(): ?AccompanyingPeriod public function getAccompanyingPeriod(): ?AccompanyingPeriod
{ {
return $this->accompanyingPeriod; return $this->accompanyingPeriod;
@@ -282,7 +281,6 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
* get the center * get the center
* center is extracted from person. * center is extracted from person.
*/ */
#[\Override]
public function getCenters(): iterable public function getCenters(): iterable
{ {
if ($this->person instanceof Person) { if ($this->person instanceof Person) {
@@ -401,7 +399,6 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
return $this->scope; return $this->scope;
} }
#[\Override]
public function getScopes(): iterable public function getScopes(): iterable
{ {
if (null !== $this->getAccompanyingPeriod()) { if (null !== $this->getAccompanyingPeriod()) {
@@ -425,7 +422,6 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
return $this->socialActions; return $this->socialActions;
} }
#[\Override]
public function getSocialIssues(): Collection public function getSocialIssues(): Collection
{ {
return $this->socialIssues; return $this->socialIssues;
@@ -496,7 +492,6 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
return $this; return $this;
} }
#[\Override]
public function removeSocialIssue(SocialIssue $socialIssue): self public function removeSocialIssue(SocialIssue $socialIssue): self
{ {
$this->socialIssues->removeElement($socialIssue); $this->socialIssues->removeElement($socialIssue);

View File

@@ -79,9 +79,11 @@ class ActivityReason
/** /**
* Set active. * Set active.
* *
* @param bool $active
*
* @return ActivityReason * @return ActivityReason
*/ */
public function setActive(bool $active) public function setActive($active)
{ {
$this->active = $active; $this->active = $active;
@@ -108,9 +110,11 @@ class ActivityReason
/** /**
* Set name. * Set name.
* *
* @param array $name
*
* @return ActivityReason * @return ActivityReason
*/ */
public function setName(array $name) public function setName($name)
{ {
$this->name = $name; $this->name = $name;

View File

@@ -53,7 +53,6 @@ class ActivityReasonCategory implements \Stringable
$this->reasons = new ArrayCollection(); $this->reasons = new ArrayCollection();
} }
#[\Override]
public function __toString(): string public function __toString(): string
{ {
return 'ActivityReasonCategory('.$this->getName('x').')'; return 'ActivityReasonCategory('.$this->getName('x').')';

View File

@@ -25,11 +25,11 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
#[ORM\Table(name: 'activitytype')] #[ORM\Table(name: 'activitytype')]
class ActivityType class ActivityType
{ {
final public const int FIELD_INVISIBLE = 0; final public const FIELD_INVISIBLE = 0;
final public const int FIELD_OPTIONAL = 1; final public const FIELD_OPTIONAL = 1;
final public const int FIELD_REQUIRED = 2; final public const FIELD_REQUIRED = 2;
/** /**
* @deprecated not in use * @deprecated not in use

View File

@@ -19,13 +19,11 @@ use Symfony\Component\Form\FormBuilderInterface;
class ByActivityNumberAggregator implements AggregatorInterface class ByActivityNumberAggregator implements AggregatorInterface
{ {
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data): void public function alterQuery(QueryBuilder $qb, $data): void
{ {
$qb $qb
@@ -33,25 +31,21 @@ class ByActivityNumberAggregator implements AggregatorInterface
->addGroupBy('activity_by_number_aggregator'); ->addGroupBy('activity_by_number_aggregator');
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACP_TYPE; return Declarations::ACP_TYPE;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder): void public function buildForm(FormBuilderInterface $builder): void
{ {
// No form needed // No form needed
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return static function ($value) { return static function ($value) {
@@ -67,13 +61,11 @@ class ByActivityNumberAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['activity_by_number_aggregator']; return ['activity_by_number_aggregator'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Group acp by activity number'; return 'Group acp by activity number';

View File

@@ -25,7 +25,7 @@ use Symfony\Component\Form\FormBuilderInterface;
final readonly class ByActivityTypeAggregator implements AggregatorInterface final readonly class ByActivityTypeAggregator implements AggregatorInterface
{ {
private const string PREFIX = 'acp_by_activity_type_agg'; private const PREFIX = 'acp_by_activity_type_agg';
public function __construct( public function __construct(
private RollingDateConverterInterface $rollingDateConverter, private RollingDateConverterInterface $rollingDateConverter,
@@ -33,7 +33,6 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface
private TranslatableStringHelperInterface $translatableStringHelper, private TranslatableStringHelperInterface $translatableStringHelper,
) {} ) {}
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder $builder
@@ -47,7 +46,6 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -56,7 +54,6 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface
]; ];
} }
#[\Override]
public function getLabels($key, array $values, mixed $data) public function getLabels($key, array $values, mixed $data)
{ {
return function (int|string|null $value): string { return function (int|string|null $value): string {
@@ -72,25 +69,21 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return [self::PREFIX.'_actype_id']; return [self::PREFIX.'_actype_id'];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'export.aggregator.acp.by_activity_type.title'; return 'export.aggregator.acp.by_activity_type.title';
} }
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -122,7 +115,6 @@ final readonly class ByActivityTypeAggregator implements AggregatorInterface
->addGroupBy("{$p}_actype_id"); ->addGroupBy("{$p}_actype_id");
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return Declarations::ACP_TYPE; return Declarations::ACP_TYPE;

View File

@@ -22,13 +22,11 @@ class BySocialActionAggregator implements AggregatorInterface
{ {
public function __construct(private readonly SocialActionRender $actionRender, private readonly SocialActionRepository $actionRepository) {} public function __construct(private readonly SocialActionRender $actionRender, private readonly SocialActionRepository $actionRepository) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('actsocialaction', $qb->getAllAliases(), true)) { if (!\in_array('actsocialaction', $qb->getAllAliases(), true)) {
@@ -39,25 +37,21 @@ class BySocialActionAggregator implements AggregatorInterface
$qb->addGroupBy('socialaction_aggregator'); $qb->addGroupBy('socialaction_aggregator');
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY_ACP; return Declarations::ACTIVITY_ACP;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// no form // no form
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value) { return function ($value) {
@@ -75,13 +69,11 @@ class BySocialActionAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['socialaction_aggregator']; return ['socialaction_aggregator'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Group activity by linked socialaction'; return 'Group activity by linked socialaction';

View File

@@ -22,13 +22,11 @@ class BySocialIssueAggregator implements AggregatorInterface
{ {
public function __construct(private readonly SocialIssueRepository $issueRepository, private readonly SocialIssueRender $issueRender) {} public function __construct(private readonly SocialIssueRepository $issueRepository, private readonly SocialIssueRender $issueRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('actsocialissue', $qb->getAllAliases(), true)) { if (!\in_array('actsocialissue', $qb->getAllAliases(), true)) {
@@ -39,25 +37,21 @@ class BySocialIssueAggregator implements AggregatorInterface
$qb->addGroupBy('socialissue_aggregator'); $qb->addGroupBy('socialissue_aggregator');
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY_ACP; return Declarations::ACTIVITY_ACP;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// no form // no form
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value): string { return function ($value): string {
@@ -75,13 +69,11 @@ class BySocialIssueAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['socialissue_aggregator']; return ['socialissue_aggregator'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Group activity by linked socialissue'; return 'Group activity by linked socialissue';

View File

@@ -18,15 +18,13 @@ use Symfony\Component\Form\FormBuilderInterface;
final readonly class ActivityLocationAggregator implements AggregatorInterface final readonly class ActivityLocationAggregator implements AggregatorInterface
{ {
public const string KEY = 'activity_location_aggregator'; public const KEY = 'activity_location_aggregator';
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('actloc', $qb->getAllAliases(), true)) { if (!\in_array('actloc', $qb->getAllAliases(), true)) {
@@ -36,25 +34,21 @@ final readonly class ActivityLocationAggregator implements AggregatorInterface
$qb->addGroupBy(self::KEY); $qb->addGroupBy(self::KEY);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// no form required for this aggregator // no form required for this aggregator
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data): \Closure public function getLabels($key, array $values, $data): \Closure
{ {
return function ($value): string { return function ($value): string {
@@ -70,13 +64,11 @@ final readonly class ActivityLocationAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return [self::KEY]; return [self::KEY];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'export.aggregator.activity.by_location.Title'; return 'export.aggregator.activity.by_location.Title';

View File

@@ -22,16 +22,13 @@ final readonly class ActivityPresenceAggregator implements AggregatorInterface
{ {
public function __construct(private ActivityPresenceRepositoryInterface $activityPresenceRepository, private TranslatableStringHelperInterface $translatableStringHelper) {} public function __construct(private ActivityPresenceRepositoryInterface $activityPresenceRepository, private TranslatableStringHelperInterface $translatableStringHelper) {}
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, mixed $data) public function getLabels($key, array $values, mixed $data)
{ {
return function (int|string|null $value): string { return function (int|string|null $value): string {
@@ -47,32 +44,27 @@ final readonly class ActivityPresenceAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return ['activity_presence_aggregator_attendee']; return ['activity_presence_aggregator_attendee'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.aggregator.activity.by_activity_presence.Group activity by presence'; return 'export.aggregator.activity.by_activity_presence.Group activity by presence';
} }
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data): void public function alterQuery(QueryBuilder $qb, $data): void
{ {
$qb->addSelect('IDENTITY(activity.attendee) AS activity_presence_aggregator_attendee'); $qb->addSelect('IDENTITY(activity.attendee) AS activity_presence_aggregator_attendee');
$qb->addGroupBy('activity_presence_aggregator_attendee'); $qb->addGroupBy('activity_presence_aggregator_attendee');
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;

View File

@@ -31,13 +31,11 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
protected TranslatableStringHelper $translatableStringHelper protected TranslatableStringHelper $translatableStringHelper
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
// add select element // add select element
@@ -69,13 +67,11 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
$qb->addGroupBy($alias); $qb->addGroupBy($alias);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add( $builder->add(
@@ -93,7 +89,6 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
); );
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -101,7 +96,6 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
]; ];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value) use ($data) { return function ($value) use ($data) {
@@ -131,7 +125,6 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
}; };
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
// add select element // add select element
@@ -146,13 +139,11 @@ class ActivityReasonAggregator implements AggregatorInterface, ExportElementVali
throw new \RuntimeException('The data provided are not recognised.'); throw new \RuntimeException('The data provided are not recognised.');
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'Aggregate by activity reason'; return 'Aggregate by activity reason';
} }
#[\Override]
public function validateForm($data, ExecutionContextInterface $context) public function validateForm($data, ExecutionContextInterface $context)
{ {
if (null === $data['level']) { if (null === $data['level']) {

View File

@@ -20,17 +20,15 @@ use Symfony\Component\Form\FormBuilderInterface;
class ActivityTypeAggregator implements AggregatorInterface class ActivityTypeAggregator implements AggregatorInterface
{ {
final public const string KEY = 'activity_type_aggregator'; final public const KEY = 'activity_type_aggregator';
public function __construct(protected ActivityTypeRepositoryInterface $activityTypeRepository, protected TranslatableStringHelperInterface $translatableStringHelper) {} public function __construct(protected ActivityTypeRepositoryInterface $activityTypeRepository, protected TranslatableStringHelperInterface $translatableStringHelper) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('acttype', $qb->getAllAliases(), true)) { if (!\in_array('acttype', $qb->getAllAliases(), true)) {
@@ -41,25 +39,21 @@ class ActivityTypeAggregator implements AggregatorInterface
$qb->addGroupBy(self::KEY); $qb->addGroupBy(self::KEY);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// no form required for this aggregator // no form required for this aggregator
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data): \Closure public function getLabels($key, array $values, $data): \Closure
{ {
return function (int|string|null $value): string { return function (int|string|null $value): string {
@@ -75,13 +69,11 @@ class ActivityTypeAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return [self::KEY]; return [self::KEY];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'Aggregate by activity type'; return 'Aggregate by activity type';

View File

@@ -20,17 +20,15 @@ use Symfony\Component\Form\FormBuilderInterface;
class ActivityUserAggregator implements AggregatorInterface class ActivityUserAggregator implements AggregatorInterface
{ {
final public const string KEY = 'activity_user_id'; final public const KEY = 'activity_user_id';
public function __construct(private readonly UserRepository $userRepository, private readonly UserRender $userRender) {} public function __construct(private readonly UserRepository $userRepository, private readonly UserRender $userRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
// add select element // add select element
@@ -40,25 +38,21 @@ class ActivityUserAggregator implements AggregatorInterface
$qb->addGroupBy(self::KEY); $qb->addGroupBy(self::KEY);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// nothing to add // nothing to add
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, $values, $data): \Closure public function getLabels($key, $values, $data): \Closure
{ {
return function ($value) { return function ($value) {
@@ -76,13 +70,11 @@ class ActivityUserAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return [self::KEY]; return [self::KEY];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Aggregate by activity user'; return 'Aggregate by activity user';

View File

@@ -22,13 +22,11 @@ class ActivityUsersAggregator implements AggregatorInterface
{ {
public function __construct(private readonly UserRepositoryInterface $userRepository, private readonly UserRender $userRender) {} public function __construct(private readonly UserRepositoryInterface $userRepository, private readonly UserRender $userRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('actusers', $qb->getAllAliases(), true)) { if (!\in_array('actusers', $qb->getAllAliases(), true)) {
@@ -40,25 +38,21 @@ class ActivityUsersAggregator implements AggregatorInterface
->addGroupBy('activity_users_aggregator'); ->addGroupBy('activity_users_aggregator');
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// nothing to add on the form // nothing to add on the form
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value) { return function ($value) {
@@ -76,13 +70,11 @@ class ActivityUsersAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return ['activity_users_aggregator']; return ['activity_users_aggregator'];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'Aggregate by activity users'; return 'Aggregate by activity users';

View File

@@ -22,20 +22,18 @@ use Symfony\Component\Form\FormBuilderInterface;
class ActivityUsersJobAggregator implements AggregatorInterface class ActivityUsersJobAggregator implements AggregatorInterface
{ {
private const string PREFIX = 'act_agg_user_job'; private const PREFIX = 'act_agg_user_job';
public function __construct( public function __construct(
private readonly UserJobRepositoryInterface $userJobRepository, private readonly UserJobRepositoryInterface $userJobRepository,
private readonly TranslatableStringHelperInterface $translatableStringHelper private readonly TranslatableStringHelperInterface $translatableStringHelper
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -62,22 +60,18 @@ class ActivityUsersJobAggregator implements AggregatorInterface
->addGroupBy("{$p}_select"); ->addGroupBy("{$p}_select");
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value): string { return function ($value): string {
@@ -97,13 +91,11 @@ class ActivityUsersJobAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return [self::PREFIX.'_select']; return [self::PREFIX.'_select'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.aggregator.activity.by_user_job.Aggregate by users job'; return 'export.aggregator.activity.by_user_job.Aggregate by users job';

View File

@@ -22,20 +22,18 @@ use Symfony\Component\Form\FormBuilderInterface;
class ActivityUsersScopeAggregator implements AggregatorInterface class ActivityUsersScopeAggregator implements AggregatorInterface
{ {
private const string PREFIX = 'act_agg_user_scope'; private const PREFIX = 'act_agg_user_scope';
public function __construct( public function __construct(
private readonly ScopeRepositoryInterface $scopeRepository, private readonly ScopeRepositoryInterface $scopeRepository,
private readonly TranslatableStringHelperInterface $translatableStringHelper private readonly TranslatableStringHelperInterface $translatableStringHelper
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -62,22 +60,18 @@ class ActivityUsersScopeAggregator implements AggregatorInterface
->addGroupBy("{$p}_select"); ->addGroupBy("{$p}_select");
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value): string { return function ($value): string {
@@ -97,13 +91,11 @@ class ActivityUsersScopeAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return [self::PREFIX.'_select']; return [self::PREFIX.'_select'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.aggregator.activity.by_user_scope.Aggregate by users scope'; return 'export.aggregator.activity.by_user_scope.Aggregate by users scope';

View File

@@ -22,38 +22,32 @@ class ByCreatorAggregator implements AggregatorInterface
{ {
public function __construct(private readonly UserRepositoryInterface $userRepository, private readonly UserRender $userRender) {} public function __construct(private readonly UserRepositoryInterface $userRepository, private readonly UserRender $userRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$qb->addSelect('IDENTITY(activity.createdBy) AS creator_aggregator'); $qb->addSelect('IDENTITY(activity.createdBy) AS creator_aggregator');
$qb->addGroupBy('creator_aggregator'); $qb->addGroupBy('creator_aggregator');
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// no form // no form
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value): string { return function ($value): string {
@@ -71,13 +65,11 @@ class ByCreatorAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['creator_aggregator']; return ['creator_aggregator'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Group activity by creator'; return 'Group activity by creator';

View File

@@ -22,13 +22,11 @@ class ByThirdpartyAggregator implements AggregatorInterface
{ {
public function __construct(private readonly ThirdPartyRepository $thirdPartyRepository, private readonly ThirdPartyRender $thirdPartyRender) {} public function __construct(private readonly ThirdPartyRepository $thirdPartyRepository, private readonly ThirdPartyRender $thirdPartyRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('acttparty', $qb->getAllAliases(), true)) { if (!\in_array('acttparty', $qb->getAllAliases(), true)) {
@@ -39,25 +37,21 @@ class ByThirdpartyAggregator implements AggregatorInterface
$qb->addGroupBy('thirdparty_aggregator'); $qb->addGroupBy('thirdparty_aggregator');
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// no form // no form
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value): string { return function ($value): string {
@@ -75,13 +69,11 @@ class ByThirdpartyAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['thirdparty_aggregator']; return ['thirdparty_aggregator'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Group activity by linked thirdparties'; return 'Group activity by linked thirdparties';

View File

@@ -22,20 +22,18 @@ use Symfony\Component\Form\FormBuilderInterface;
class CreatorJobAggregator implements AggregatorInterface class CreatorJobAggregator implements AggregatorInterface
{ {
private const string PREFIX = 'acp_agg_creator_job'; private const PREFIX = 'acp_agg_creator_job';
public function __construct( public function __construct(
private readonly UserJobRepositoryInterface $userJobRepository, private readonly UserJobRepositoryInterface $userJobRepository,
private readonly TranslatableStringHelper $translatableStringHelper private readonly TranslatableStringHelper $translatableStringHelper
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -62,22 +60,18 @@ class CreatorJobAggregator implements AggregatorInterface
->addGroupBy("{$p}_select"); ->addGroupBy("{$p}_select");
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value): string { return function ($value): string {
@@ -95,13 +89,11 @@ class CreatorJobAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return [self::PREFIX.'_select']; return [self::PREFIX.'_select'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.aggregator.activity.by_creator_job.Group activity by creator job'; return 'export.aggregator.activity.by_creator_job.Group activity by creator job';

View File

@@ -22,20 +22,18 @@ use Symfony\Component\Form\FormBuilderInterface;
class CreatorScopeAggregator implements AggregatorInterface class CreatorScopeAggregator implements AggregatorInterface
{ {
private const string PREFIX = 'acp_agg_creator_scope'; private const PREFIX = 'acp_agg_creator_scope';
public function __construct( public function __construct(
private readonly ScopeRepository $scopeRepository, private readonly ScopeRepository $scopeRepository,
private readonly TranslatableStringHelper $translatableStringHelper private readonly TranslatableStringHelper $translatableStringHelper
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -62,22 +60,18 @@ class CreatorScopeAggregator implements AggregatorInterface
->addGroupBy("{$p}_select"); ->addGroupBy("{$p}_select");
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value): string { return function ($value): string {
@@ -97,13 +91,11 @@ class CreatorScopeAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return [self::PREFIX.'_select']; return [self::PREFIX.'_select'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.aggregator.activity.by_creator_scope.Group activity by creator scope'; return 'export.aggregator.activity.by_creator_scope.Group activity by creator scope';

View File

@@ -19,21 +19,19 @@ use Symfony\Component\Form\FormBuilderInterface;
class DateAggregator implements AggregatorInterface class DateAggregator implements AggregatorInterface
{ {
private const array CHOICES = [ private const CHOICES = [
'by month' => 'month', 'by month' => 'month',
'by week' => 'week', 'by week' => 'week',
'by year' => 'year', 'by year' => 'year',
]; ];
private const string DEFAULT_CHOICE = 'year'; private const DEFAULT_CHOICE = 'year';
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$order = null; $order = null;
@@ -64,13 +62,11 @@ class DateAggregator implements AggregatorInterface
$qb->addOrderBy('date_aggregator', $order); $qb->addOrderBy('date_aggregator', $order);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('frequency', ChoiceType::class, [ $builder->add('frequency', ChoiceType::class, [
@@ -80,13 +76,11 @@ class DateAggregator implements AggregatorInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return ['frequency' => self::DEFAULT_CHOICE]; return ['frequency' => self::DEFAULT_CHOICE];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return static function ($value) use ($data): string { return static function ($value) use ($data): string {
@@ -104,13 +98,11 @@ class DateAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['date_aggregator']; return ['date_aggregator'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Group activity by date'; return 'Group activity by date';

View File

@@ -22,13 +22,11 @@ class LocationTypeAggregator implements AggregatorInterface
{ {
public function __construct(private readonly LocationTypeRepository $locationTypeRepository, private readonly TranslatableStringHelper $translatableStringHelper) {} public function __construct(private readonly LocationTypeRepository $locationTypeRepository, private readonly TranslatableStringHelper $translatableStringHelper) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('actloc', $qb->getAllAliases(), true)) { if (!\in_array('actloc', $qb->getAllAliases(), true)) {
@@ -39,25 +37,21 @@ class LocationTypeAggregator implements AggregatorInterface
$qb->addGroupBy('locationtype_aggregator'); $qb->addGroupBy('locationtype_aggregator');
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// no form // no form
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return function ($value): string { return function ($value): string {
@@ -79,13 +73,11 @@ class LocationTypeAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['locationtype_aggregator']; return ['locationtype_aggregator'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Group activity by locationtype'; return 'Group activity by locationtype';

View File

@@ -21,43 +21,36 @@ final readonly class PersonAggregator implements AggregatorInterface
{ {
public function __construct(private LabelPersonHelper $labelPersonHelper) {} public function __construct(private LabelPersonHelper $labelPersonHelper) {}
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// nothing to add here // nothing to add here
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, mixed $data) public function getLabels($key, array $values, mixed $data)
{ {
return $this->labelPersonHelper->getLabel($key, $values, 'export.aggregator.person.by_person.person'); return $this->labelPersonHelper->getLabel($key, $values, 'export.aggregator.person.by_person.person');
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return ['activity_by_person_agg']; return ['activity_by_person_agg'];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'export.aggregator.person.by_person.title'; return 'export.aggregator.person.by_person.title';
} }
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$qb $qb
@@ -65,7 +58,6 @@ final readonly class PersonAggregator implements AggregatorInterface
->addGroupBy('activity_by_person_agg'); ->addGroupBy('activity_by_person_agg');
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return Declarations::ACTIVITY_PERSON; return Declarations::ACTIVITY_PERSON;

View File

@@ -23,23 +23,20 @@ use Symfony\Component\Form\FormBuilderInterface;
*/ */
final readonly class PersonsAggregator implements AggregatorInterface final readonly class PersonsAggregator implements AggregatorInterface
{ {
private const string PREFIX = 'act_persons_agg'; private const PREFIX = 'act_persons_agg';
public function __construct(private LabelPersonHelper $labelPersonHelper) {} public function __construct(private LabelPersonHelper $labelPersonHelper) {}
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// nothing to add here // nothing to add here
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, mixed $data) public function getLabels($key, array $values, mixed $data)
{ {
if ($key !== self::PREFIX.'_pid') { if ($key !== self::PREFIX.'_pid') {
@@ -49,25 +46,21 @@ final readonly class PersonsAggregator implements AggregatorInterface
return $this->labelPersonHelper->getLabel($key, $values, 'export.aggregator.activity.by_persons.Persons'); return $this->labelPersonHelper->getLabel($key, $values, 'export.aggregator.activity.by_persons.Persons');
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return [self::PREFIX.'_pid']; return [self::PREFIX.'_pid'];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'export.aggregator.activity.by_persons.Group activity by persons'; return 'export.aggregator.activity.by_persons.Group activity by persons';
} }
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -78,7 +71,6 @@ final readonly class PersonsAggregator implements AggregatorInterface
->addGroupBy("{$p}_pid"); ->addGroupBy("{$p}_pid");
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;

View File

@@ -21,38 +21,32 @@ class SentReceivedAggregator implements AggregatorInterface
{ {
public function __construct(private readonly TranslatorInterface $translator) {} public function __construct(private readonly TranslatorInterface $translator) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data): void public function alterQuery(QueryBuilder $qb, $data): void
{ {
$qb->addSelect('activity.sentReceived AS activity_sentreceived_aggregator') $qb->addSelect('activity.sentReceived AS activity_sentreceived_aggregator')
->addGroupBy('activity_sentreceived_aggregator'); ->addGroupBy('activity_sentreceived_aggregator');
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder): void public function buildForm(FormBuilderInterface $builder): void
{ {
// No form needed // No form needed
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getLabels($key, array $values, $data): callable public function getLabels($key, array $values, $data): callable
{ {
return function (?string $value): string { return function (?string $value): string {
@@ -77,13 +71,11 @@ class SentReceivedAggregator implements AggregatorInterface
}; };
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['activity_sentreceived_aggregator']; return ['activity_sentreceived_aggregator'];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.aggregator.activity.by_sent_received.Group activity by sentreceived'; return 'export.aggregator.activity.by_sent_received.Group activity by sentreceived';

View File

@@ -36,34 +36,28 @@ class AvgActivityDuration implements ExportInterface, GroupedExportInterface
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes(): array public function getAllowedFormattersTypes(): array
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription(): string public function getDescription(): string
{ {
return 'Average activities linked to an accompanying period duration by various parameters.'; return 'Average activities linked to an accompanying period duration by various parameters.';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to an accompanying period'; return 'Exports of activities linked to an accompanying period';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_avg_activity_duration' !== $key) { if ('export_avg_activity_duration' !== $key) {
@@ -73,31 +67,26 @@ class AvgActivityDuration implements ExportInterface, GroupedExportInterface
return static fn ($value) => '_header' === $value ? 'Average activities linked to an accompanying period duration' : $value; return static fn ($value) => '_header' === $value ? 'Average activities linked to an accompanying period duration' : $value;
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['export_avg_activity_duration']; return ['export_avg_activity_duration'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Average activity linked to an accompanying period duration'; return 'Average activity linked to an accompanying period duration';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -127,13 +116,11 @@ class AvgActivityDuration implements ExportInterface, GroupedExportInterface
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers(): array public function supportsModifiers(): array
{ {
return [ return [

View File

@@ -41,37 +41,31 @@ class AvgActivityVisitDuration implements ExportInterface, GroupedExportInterfac
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// TODO: Implement buildForm() method. // TODO: Implement buildForm() method.
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes(): array public function getAllowedFormattersTypes(): array
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription(): string public function getDescription(): string
{ {
return 'Average activities linked to an accompanying period visit duration by various parameters.'; return 'Average activities linked to an accompanying period visit duration by various parameters.';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to an accompanying period'; return 'Exports of activities linked to an accompanying period';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_avg_activity_visit_duration' !== $key) { if ('export_avg_activity_visit_duration' !== $key) {
@@ -81,31 +75,26 @@ class AvgActivityVisitDuration implements ExportInterface, GroupedExportInterfac
return static fn ($value) => '_header' === $value ? 'Average activities linked to an accompanying period visit duration' : $value; return static fn ($value) => '_header' === $value ? 'Average activities linked to an accompanying period visit duration' : $value;
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['export_avg_activity_visit_duration']; return ['export_avg_activity_visit_duration'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Average activity linked to an accompanying period visit duration'; return 'Average activity linked to an accompanying period visit duration';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -135,13 +124,11 @@ class AvgActivityVisitDuration implements ExportInterface, GroupedExportInterfac
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers(): array public function supportsModifiers(): array
{ {
return [ return [

View File

@@ -41,34 +41,28 @@ class CountActivity implements ExportInterface, GroupedExportInterface
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes(): array public function getAllowedFormattersTypes(): array
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription(): string public function getDescription(): string
{ {
return 'Count activities linked to an accompanying period by various parameters.'; return 'Count activities linked to an accompanying period by various parameters.';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to an accompanying period'; return 'Exports of activities linked to an accompanying period';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_count_activity' !== $key) { if ('export_count_activity' !== $key) {
@@ -78,31 +72,26 @@ class CountActivity implements ExportInterface, GroupedExportInterface
return static fn ($value) => '_header' === $value ? 'Number of activities linked to an accompanying period' : $value; return static fn ($value) => '_header' === $value ? 'Number of activities linked to an accompanying period' : $value;
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['export_count_activity']; return ['export_count_activity'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Count activities linked to an accompanying period'; return 'Count activities linked to an accompanying period';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -131,13 +120,11 @@ class CountActivity implements ExportInterface, GroupedExportInterface
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers(): array public function supportsModifiers(): array
{ {
return [ return [

View File

@@ -42,34 +42,28 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes(): array public function getAllowedFormattersTypes(): array
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription(): string public function getDescription(): string
{ {
return 'export.export.count_household_on_activity.description'; return 'export.export.count_household_on_activity.description';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to an accompanying period'; return 'Exports of activities linked to an accompanying period';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_count_activity' !== $key) { if ('export_count_activity' !== $key) {
@@ -79,31 +73,26 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
return static fn ($value) => '_header' === $value ? 'export.export.count_household_on_activity.header' : $value; return static fn ($value) => '_header' === $value ? 'export.export.count_household_on_activity.header' : $value;
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['export_count_activity']; return ['export_count_activity'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.export.count_household_on_activity.title'; return 'export.export.count_household_on_activity.title';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -140,13 +129,11 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers(): array public function supportsModifiers(): array
{ {
return [ return [

View File

@@ -41,34 +41,28 @@ class CountPersonsOnActivity implements ExportInterface, GroupedExportInterface
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes(): array public function getAllowedFormattersTypes(): array
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription(): string public function getDescription(): string
{ {
return 'export.export.count_person_on_activity.description'; return 'export.export.count_person_on_activity.description';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to an accompanying period'; return 'Exports of activities linked to an accompanying period';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_count_activity' !== $key) { if ('export_count_activity' !== $key) {
@@ -78,31 +72,26 @@ class CountPersonsOnActivity implements ExportInterface, GroupedExportInterface
return static fn ($value) => '_header' === $value ? 'export.export.count_person_on_activity.header' : $value; return static fn ($value) => '_header' === $value ? 'export.export.count_person_on_activity.header' : $value;
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['export_count_activity']; return ['export_count_activity'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.export.count_person_on_activity.title'; return 'export.export.count_person_on_activity.title';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -132,13 +121,11 @@ class CountPersonsOnActivity implements ExportInterface, GroupedExportInterface
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers(): array public function supportsModifiers(): array
{ {
return [ return [

View File

@@ -33,37 +33,31 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
private FilterListAccompanyingPeriodHelperInterface $filterListAccompanyingPeriodHelper, private FilterListAccompanyingPeriodHelperInterface $filterListAccompanyingPeriodHelper,
) {} ) {}
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$this->helper->buildForm($builder); $this->helper->buildForm($builder);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes() public function getAllowedFormattersTypes()
{ {
return $this->helper->getAllowedFormattersTypes(); return $this->helper->getAllowedFormattersTypes();
} }
#[\Override]
public function getDescription() public function getDescription()
{ {
return ListActivityHelper::MSG_KEY.'List activities linked to an accompanying course'; return ListActivityHelper::MSG_KEY.'List activities linked to an accompanying course';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to an accompanying period'; return 'Exports of activities linked to an accompanying period';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
return match ($key) { return match ($key) {
@@ -79,7 +73,6 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
}; };
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return return
@@ -92,25 +85,21 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
); );
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $this->helper->getResult($query, $data); return $this->helper->getResult($query, $data);
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return ListActivityHelper::MSG_KEY.'List activity linked to a course'; return ListActivityHelper::MSG_KEY.'List activity linked to a course';
} }
#[\Override]
public function getType() public function getType()
{ {
return $this->helper->getType(); return $this->helper->getType();
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -146,13 +135,11 @@ final readonly class ListActivity implements ListInterface, GroupedExportInterfa
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::LISTS; return ActivityStatsVoter::LISTS;
} }
#[\Override]
public function supportsModifiers() public function supportsModifiers()
{ {
return array_merge( return array_merge(

View File

@@ -40,37 +40,31 @@ class SumActivityDuration implements ExportInterface, GroupedExportInterface
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// TODO: Implement buildForm() method. // TODO: Implement buildForm() method.
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes(): array public function getAllowedFormattersTypes(): array
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription(): string public function getDescription(): string
{ {
return 'Sum activities linked to an accompanying period duration by various parameters.'; return 'Sum activities linked to an accompanying period duration by various parameters.';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to an accompanying period'; return 'Exports of activities linked to an accompanying period';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_sum_activity_duration' !== $key) { if ('export_sum_activity_duration' !== $key) {
@@ -80,31 +74,26 @@ class SumActivityDuration implements ExportInterface, GroupedExportInterface
return static fn ($value) => '_header' === $value ? 'Sum activities linked to an accompanying period duration' : $value; return static fn ($value) => '_header' === $value ? 'Sum activities linked to an accompanying period duration' : $value;
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['export_sum_activity_duration']; return ['export_sum_activity_duration'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Sum activity linked to an accompanying period duration'; return 'Sum activity linked to an accompanying period duration';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -134,13 +123,11 @@ class SumActivityDuration implements ExportInterface, GroupedExportInterface
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers(): array public function supportsModifiers(): array
{ {
return [ return [

View File

@@ -40,37 +40,31 @@ class SumActivityVisitDuration implements ExportInterface, GroupedExportInterfac
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// TODO: Implement buildForm() method. // TODO: Implement buildForm() method.
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes(): array public function getAllowedFormattersTypes(): array
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription(): string public function getDescription(): string
{ {
return 'Sum activities linked to an accompanying period visit duration by various parameters.'; return 'Sum activities linked to an accompanying period visit duration by various parameters.';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to an accompanying period'; return 'Exports of activities linked to an accompanying period';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_sum_activity_visit_duration' !== $key) { if ('export_sum_activity_visit_duration' !== $key) {
@@ -80,31 +74,26 @@ class SumActivityVisitDuration implements ExportInterface, GroupedExportInterfac
return static fn ($value) => '_header' === $value ? 'Sum activities linked to an accompanying period visit duration' : $value; return static fn ($value) => '_header' === $value ? 'Sum activities linked to an accompanying period visit duration' : $value;
} }
#[\Override]
public function getQueryKeys($data): array public function getQueryKeys($data): array
{ {
return ['export_sum_activity_visit_duration']; return ['export_sum_activity_visit_duration'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Sum activity linked to an accompanying period visit duration'; return 'Sum activity linked to an accompanying period visit duration';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -134,13 +123,11 @@ class SumActivityVisitDuration implements ExportInterface, GroupedExportInterfac
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers(): array public function supportsModifiers(): array
{ {
return [ return [

View File

@@ -33,34 +33,28 @@ class CountActivity implements ExportInterface, GroupedExportInterface
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes() public function getAllowedFormattersTypes()
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription() public function getDescription()
{ {
return 'Count activities linked to a person by various parameters.'; return 'Count activities linked to a person by various parameters.';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to a person'; return 'Exports of activities linked to a person';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_count_activity' !== $key) { if ('export_count_activity' !== $key) {
@@ -70,31 +64,26 @@ class CountActivity implements ExportInterface, GroupedExportInterface
return static fn ($value) => '_header' === $value ? 'Number of activities linked to a person' : $value; return static fn ($value) => '_header' === $value ? 'Number of activities linked to a person' : $value;
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return ['export_count_activity']; return ['export_count_activity'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'Count activities linked to a person'; return 'Count activities linked to a person';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -124,13 +113,11 @@ class CountActivity implements ExportInterface, GroupedExportInterface
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers() public function supportsModifiers()
{ {
return [ return [

View File

@@ -34,34 +34,28 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes() public function getAllowedFormattersTypes()
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription() public function getDescription()
{ {
return 'export.export.count_household_on_activity_person.description'; return 'export.export.count_household_on_activity_person.description';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to a person'; return 'Exports of activities linked to a person';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_count_activity' !== $key) { if ('export_count_activity' !== $key) {
@@ -71,31 +65,26 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
return static fn ($value) => '_header' === $value ? 'export.export.count_household_on_activity_person.header' : $value; return static fn ($value) => '_header' === $value ? 'export.export.count_household_on_activity_person.header' : $value;
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return ['export_count_activity']; return ['export_count_activity'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'export.export.count_household_on_activity_person.title'; return 'export.export.count_household_on_activity_person.title';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -132,13 +121,11 @@ final readonly class CountHouseholdOnActivity implements ExportInterface, Groupe
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers() public function supportsModifiers()
{ {
return [ return [

View File

@@ -57,7 +57,6 @@ class ListActivity implements ListInterface, GroupedExportInterface
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('fields', ChoiceType::class, [ $builder->add('fields', ChoiceType::class, [
@@ -77,31 +76,26 @@ class ListActivity implements ListInterface, GroupedExportInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes() public function getAllowedFormattersTypes()
{ {
return [FormatterInterface::TYPE_LIST]; return [FormatterInterface::TYPE_LIST];
} }
#[\Override]
public function getDescription() public function getDescription()
{ {
return 'List activities linked to a person description'; return 'List activities linked to a person description';
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to a person'; return 'Exports of activities linked to a person';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
switch ($key) { switch ($key) {
@@ -171,31 +165,26 @@ class ListActivity implements ListInterface, GroupedExportInterface
} }
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return $data['fields']; return $data['fields'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'List activity linked to a person'; return 'List activity linked to a person';
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map(static fn ($el) => $el['center'], $acl); $centers = array_map(static fn ($el) => $el['center'], $acl);
@@ -290,13 +279,11 @@ class ListActivity implements ListInterface, GroupedExportInterface
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::LISTS; return ActivityStatsVoter::LISTS;
} }
#[\Override]
public function supportsModifiers() public function supportsModifiers()
{ {
return [ return [

View File

@@ -30,7 +30,7 @@ use Symfony\Component\Form\FormBuilderInterface;
*/ */
class StatActivityDuration implements ExportInterface, GroupedExportInterface class StatActivityDuration implements ExportInterface, GroupedExportInterface
{ {
final public const string SUM = 'sum'; final public const SUM = 'sum';
private readonly bool $filterStatsByCenters; private readonly bool $filterStatsByCenters;
/** /**
@@ -47,22 +47,18 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
$this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center'];
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) {} public function buildForm(FormBuilderInterface $builder) {}
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function getAllowedFormattersTypes() public function getAllowedFormattersTypes()
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
#[\Override]
public function getDescription() public function getDescription()
{ {
if (self::SUM === $this->action) { if (self::SUM === $this->action) {
@@ -72,13 +68,11 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
throw new \LogicException('this action is not supported: '.$this->action); throw new \LogicException('this action is not supported: '.$this->action);
} }
#[\Override]
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities linked to a person'; return 'Exports of activities linked to a person';
} }
#[\Override]
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_stat_activity' !== $key) { if ('export_stat_activity' !== $key) {
@@ -90,19 +84,16 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
return static fn (string $value) => '_header' === $value ? $header : $value; return static fn (string $value) => '_header' === $value ? $header : $value;
} }
#[\Override]
public function getQueryKeys($data) public function getQueryKeys($data)
{ {
return ['export_stat_activity']; return ['export_stat_activity'];
} }
#[\Override]
public function getResult($query, $data) public function getResult($query, $data)
{ {
return $query->getQuery()->getResult(Query::HYDRATE_SCALAR); return $query->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
if (self::SUM === $this->action) { if (self::SUM === $this->action) {
@@ -112,13 +103,11 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
throw new \LogicException('This action is not supported: '.$this->action); throw new \LogicException('This action is not supported: '.$this->action);
} }
#[\Override]
public function getType(): string public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{ {
$centers = array_map( $centers = array_map(
@@ -156,13 +145,11 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
return $qb; return $qb;
} }
#[\Override]
public function requiredRole(): string public function requiredRole(): string
{ {
return ActivityStatsVoter::STATS; return ActivityStatsVoter::STATS;
} }
#[\Override]
public function supportsModifiers() public function supportsModifiers()
{ {
return [ return [

View File

@@ -28,7 +28,7 @@ use Symfony\Contracts\Translation\TranslatorInterface;
class ListActivityHelper class ListActivityHelper
{ {
final public const string MSG_KEY = 'export.list.activity.'; final public const MSG_KEY = 'export.list.activity.';
public function __construct( public function __construct(
private readonly ActivityPresenceRepositoryInterface $activityPresenceRepository, private readonly ActivityPresenceRepositoryInterface $activityPresenceRepository,
@@ -152,7 +152,7 @@ class ListActivityHelper
return ''; return '';
} }
return $this->translator->trans((string) $value); return $this->translator->trans($value);
}, },
}; };
} }

View File

@@ -25,7 +25,7 @@ use Symfony\Component\Form\FormBuilderInterface;
final readonly class ActivityTypeFilter implements FilterInterface final readonly class ActivityTypeFilter implements FilterInterface
{ {
private const string BASE_EXISTS = 'SELECT 1 FROM '.Activity::class.' act_type_filter_activity WHERE act_type_filter_activity.accompanyingPeriod = acp'; private const BASE_EXISTS = 'SELECT 1 FROM '.Activity::class.' act_type_filter_activity WHERE act_type_filter_activity.accompanyingPeriod = acp';
public function __construct( public function __construct(
private ActivityTypeRepositoryInterface $activityTypeRepository, private ActivityTypeRepositoryInterface $activityTypeRepository,
@@ -33,13 +33,11 @@ final readonly class ActivityTypeFilter implements FilterInterface
private RollingDateConverterInterface $rollingDateConverter, private RollingDateConverterInterface $rollingDateConverter,
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$exists = self::BASE_EXISTS; $exists = self::BASE_EXISTS;
@@ -64,13 +62,11 @@ final readonly class ActivityTypeFilter implements FilterInterface
} }
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return Declarations::ACP_TYPE; return Declarations::ACP_TYPE;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_activitytypes', EntityType::class, [ $builder->add('accepted_activitytypes', EntityType::class, [
@@ -96,7 +92,6 @@ final readonly class ActivityTypeFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -106,7 +101,6 @@ final readonly class ActivityTypeFilter implements FilterInterface
]; ];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$types = []; $types = [];
@@ -124,7 +118,6 @@ final readonly class ActivityTypeFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter accompanying course by activity type'; return 'Filter accompanying course by activity type';

View File

@@ -23,13 +23,11 @@ class BySocialActionFilter implements FilterInterface
{ {
public function __construct(private readonly SocialActionRender $actionRender) {} public function __construct(private readonly SocialActionRender $actionRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('actsocialaction', $qb->getAllAliases(), true)) { if (!\in_array('actsocialaction', $qb->getAllAliases(), true)) {
@@ -45,13 +43,11 @@ class BySocialActionFilter implements FilterInterface
); );
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY_ACP; return Declarations::ACTIVITY_ACP;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_socialactions', PickSocialActionType::class, [ $builder->add('accepted_socialactions', PickSocialActionType::class, [
@@ -59,13 +55,11 @@ class BySocialActionFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$actions = []; $actions = [];
@@ -81,7 +75,6 @@ class BySocialActionFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter activity by linked socialaction'; return 'Filter activity by linked socialaction';

View File

@@ -23,13 +23,11 @@ class BySocialIssueFilter implements FilterInterface
{ {
public function __construct(private readonly SocialIssueRender $issueRender) {} public function __construct(private readonly SocialIssueRender $issueRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('actsocialissue', $qb->getAllAliases(), true)) { if (!\in_array('actsocialissue', $qb->getAllAliases(), true)) {
@@ -45,13 +43,11 @@ class BySocialIssueFilter implements FilterInterface
); );
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY_ACP; return Declarations::ACTIVITY_ACP;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_socialissues', PickSocialIssueType::class, [ $builder->add('accepted_socialissues', PickSocialIssueType::class, [
@@ -59,13 +55,11 @@ class BySocialIssueFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$issues = []; $issues = [];
@@ -81,7 +75,6 @@ class BySocialIssueFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter activity by linked socialissue'; return 'Filter activity by linked socialissue';

View File

@@ -22,13 +22,11 @@ use Symfony\Component\Form\FormBuilderInterface;
*/ */
class HasNoActivityFilter implements FilterInterface class HasNoActivityFilter implements FilterInterface
{ {
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$qb $qb
@@ -40,31 +38,26 @@ class HasNoActivityFilter implements FilterInterface
'); ');
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACP_TYPE; return Declarations::ACP_TYPE;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
// no form needed // no form needed
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
return ['Filtered acp which has no activities', []]; return ['Filtered acp which has no activities', []];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter acp which has no activity'; return 'Filter acp which has no activity';

View File

@@ -25,13 +25,11 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
private RollingDateConverterInterface $rollingDateConverter, private RollingDateConverterInterface $rollingDateConverter,
) {} ) {}
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'export.filter.activity.course_having_activity_between_date.Title'; return 'export.filter.activity.course_having_activity_between_date.Title';
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder $builder
@@ -43,7 +41,6 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -52,7 +49,6 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
]; ];
} }
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
return [ return [
@@ -64,13 +60,11 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
]; ];
} }
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$alias = 'act_period_having_act_betw_date_alias'; $alias = 'act_period_having_act_betw_date_alias';
@@ -79,7 +73,7 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
$qb->andWhere( $qb->andWhere(
$qb->expr()->exists( $qb->expr()->exists(
'SELECT 1 FROM '.Activity::class." {$alias} WHERE {$alias}.date >= :{$from} AND {$alias}.date < :{$to} AND {$alias}.accompanyingPeriod = activity.accompanyingPeriod" 'SELECT 1 FROM '.Activity::class." {$alias} WHERE {$alias}.date >= :{$from} AND {$alias}.date < :{$to} AND {$alias}.accompanyingPeriod = acp"
) )
); );
@@ -88,7 +82,6 @@ final readonly class PeriodHavingActivityBetweenDatesFilter implements FilterInt
->setParameter($to, $this->rollingDateConverter->convert($data['end_date'])); ->setParameter($to, $this->rollingDateConverter->convert($data['end_date']));
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return \Chill\PersonBundle\Export\Declarations::ACP_TYPE; return \Chill\PersonBundle\Export\Declarations::ACP_TYPE;

View File

@@ -25,13 +25,11 @@ class ActivityDateFilter implements FilterInterface
{ {
public function __construct(protected TranslatorInterface $translator, private readonly RollingDateConverterInterface $rollingDateConverter) {} public function __construct(protected TranslatorInterface $translator, private readonly RollingDateConverterInterface $rollingDateConverter) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$where = $qb->getDQLPart('where'); $where = $qb->getDQLPart('where');
@@ -58,13 +56,11 @@ class ActivityDateFilter implements FilterInterface
); );
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder $builder
@@ -76,13 +72,11 @@ class ActivityDateFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return ['date_from' => new RollingDate(RollingDate::T_YEAR_PREVIOUS_START), 'date_to' => new RollingDate(RollingDate::T_TODAY)]; return ['date_from' => new RollingDate(RollingDate::T_YEAR_PREVIOUS_START), 'date_to' => new RollingDate(RollingDate::T_TODAY)];
} }
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
return [ return [
@@ -94,7 +88,6 @@ class ActivityDateFilter implements FilterInterface
]; ];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'Filtered by date activity'; return 'Filtered by date activity';

View File

@@ -28,13 +28,11 @@ final readonly class ActivityPresenceFilter implements FilterInterface
private TranslatorInterface $translator private TranslatorInterface $translator
) {} ) {}
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'export.filter.activity.by_presence.Filter activity by activity presence'; return 'export.filter.activity.by_presence.Filter activity by activity presence';
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('presences', EntityType::class, [ $builder->add('presences', EntityType::class, [
@@ -47,13 +45,11 @@ final readonly class ActivityPresenceFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
$presences = array_map( $presences = array_map(
@@ -67,13 +63,11 @@ final readonly class ActivityPresenceFilter implements FilterInterface
]; ];
} }
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$qb $qb
@@ -81,7 +75,6 @@ final readonly class ActivityPresenceFilter implements FilterInterface
->setParameter('activity_presence_filter_presences', $data['presences']); ->setParameter('activity_presence_filter_presences', $data['presences']);
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;

View File

@@ -29,13 +29,11 @@ class ActivityTypeFilter implements ExportElementValidatedInterface, FilterInter
protected ActivityTypeRepositoryInterface $activityTypeRepository protected ActivityTypeRepositoryInterface $activityTypeRepository
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$clause = $qb->expr()->in('activity.activityType', ':selected_activity_types'); $clause = $qb->expr()->in('activity.activityType', ':selected_activity_types');
@@ -44,13 +42,11 @@ class ActivityTypeFilter implements ExportElementValidatedInterface, FilterInter
$qb->setParameter('selected_activity_types', $data['types']); $qb->setParameter('selected_activity_types', $data['types']);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('types', EntityType::class, [ $builder->add('types', EntityType::class, [
@@ -74,13 +70,11 @@ class ActivityTypeFilter implements ExportElementValidatedInterface, FilterInter
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
// collect all the reasons'name used in this filter in one array // collect all the reasons'name used in this filter in one array
@@ -94,13 +88,11 @@ class ActivityTypeFilter implements ExportElementValidatedInterface, FilterInter
]]; ]];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'Filter by activity type'; return 'Filter by activity type';
} }
#[\Override]
public function validateForm($data, ExecutionContextInterface $context) public function validateForm($data, ExecutionContextInterface $context)
{ {
if (null === $data['types'] || 0 === \count($data['types'])) { if (null === $data['types'] || 0 === \count($data['types'])) {

View File

@@ -22,13 +22,11 @@ class ActivityUsersFilter implements FilterInterface
{ {
public function __construct(private readonly UserRender $userRender) {} public function __construct(private readonly UserRender $userRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$orX = $qb->expr()->orX(); $orX = $qb->expr()->orX();
@@ -41,13 +39,11 @@ class ActivityUsersFilter implements FilterInterface
$qb->andWhere($orX); $qb->andWhere($orX);
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_users', PickUserDynamicType::class, [ $builder->add('accepted_users', PickUserDynamicType::class, [
@@ -56,13 +52,11 @@ class ActivityUsersFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
$users = []; $users = [];
@@ -76,7 +70,6 @@ class ActivityUsersFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter activity by users'; return 'Filter activity by users';

View File

@@ -22,13 +22,11 @@ class ByCreatorFilter implements FilterInterface
{ {
public function __construct(private readonly UserRender $userRender) {} public function __construct(private readonly UserRender $userRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$qb $qb
@@ -38,13 +36,11 @@ class ByCreatorFilter implements FilterInterface
->setParameter('users', $data['accepted_users']); ->setParameter('users', $data['accepted_users']);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_users', PickUserDynamicType::class, [ $builder->add('accepted_users', PickUserDynamicType::class, [
@@ -52,13 +48,11 @@ class ByCreatorFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$users = []; $users = [];
@@ -72,7 +66,6 @@ class ByCreatorFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter activity by creator'; return 'Filter activity by creator';

View File

@@ -26,7 +26,7 @@ use Symfony\Contracts\Translation\TranslatorInterface;
final readonly class CreatorJobFilter implements FilterInterface final readonly class CreatorJobFilter implements FilterInterface
{ {
private const string PREFIX = 'acp_act_filter_creator_job'; private const PREFIX = 'acp_act_filter_creator_job';
public function __construct( public function __construct(
private TranslatableStringHelper $translatableStringHelper, private TranslatableStringHelper $translatableStringHelper,
@@ -34,13 +34,11 @@ final readonly class CreatorJobFilter implements FilterInterface
private UserJobRepositoryInterface $userJobRepository, private UserJobRepositoryInterface $userJobRepository,
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -72,13 +70,11 @@ final readonly class CreatorJobFilter implements FilterInterface
); );
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder $builder
@@ -94,7 +90,6 @@ final readonly class CreatorJobFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$jobs = array_map( $jobs = array_map(
@@ -107,7 +102,6 @@ final readonly class CreatorJobFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -115,7 +109,6 @@ final readonly class CreatorJobFilter implements FilterInterface
]; ];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.filter.activity.by_creator_job.Filter activity by user job'; return 'export.filter.activity.by_creator_job.Filter activity by user job';

View File

@@ -24,20 +24,18 @@ use Symfony\Component\Form\FormBuilderInterface;
class CreatorScopeFilter implements FilterInterface class CreatorScopeFilter implements FilterInterface
{ {
private const string PREFIX = 'acp_act_filter_creator_scope'; private const PREFIX = 'acp_act_filter_creator_scope';
public function __construct( public function __construct(
private readonly TranslatableStringHelper $translatableStringHelper, private readonly TranslatableStringHelper $translatableStringHelper,
private readonly ScopeRepositoryInterface $scopeRepository, private readonly ScopeRepositoryInterface $scopeRepository,
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -69,13 +67,11 @@ class CreatorScopeFilter implements FilterInterface
); );
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder $builder
@@ -90,7 +86,6 @@ class CreatorScopeFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$scopes = []; $scopes = [];
@@ -106,7 +101,6 @@ class CreatorScopeFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -114,7 +108,6 @@ class CreatorScopeFilter implements FilterInterface
]; ];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.filter.activity.by_creator_scope.Filter activity by user scope'; return 'export.filter.activity.by_creator_scope.Filter activity by user scope';

View File

@@ -21,22 +21,20 @@ use Symfony\Contracts\Translation\TranslatorInterface;
class EmergencyFilter implements FilterInterface class EmergencyFilter implements FilterInterface
{ {
private const array CHOICES = [ private const CHOICES = [
'activity is emergency' => 'true', 'activity is emergency' => 'true',
'activity is not emergency' => 'false', 'activity is not emergency' => 'false',
]; ];
private const string DEFAULT_CHOICE = 'false'; private const DEFAULT_CHOICE = 'false';
public function __construct(private readonly TranslatorInterface $translator) {} public function __construct(private readonly TranslatorInterface $translator) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$where = $qb->getDQLPart('where'); $where = $qb->getDQLPart('where');
@@ -53,13 +51,11 @@ class EmergencyFilter implements FilterInterface
$qb->setParameter('emergency', $data['accepted_emergency']); $qb->setParameter('emergency', $data['accepted_emergency']);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_emergency', ChoiceType::class, [ $builder->add('accepted_emergency', ChoiceType::class, [
@@ -70,13 +66,11 @@ class EmergencyFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return ['accepted_emergency' => self::DEFAULT_CHOICE]; return ['accepted_emergency' => self::DEFAULT_CHOICE];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
return [ return [
@@ -88,7 +82,6 @@ class EmergencyFilter implements FilterInterface
]; ];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter activity by emergency'; return 'Filter activity by emergency';

View File

@@ -19,13 +19,11 @@ use Symfony\Component\Form\FormBuilderInterface;
class LocationFilter implements FilterInterface class LocationFilter implements FilterInterface
{ {
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$qb->andWhere( $qb->andWhere(
@@ -35,13 +33,11 @@ class LocationFilter implements FilterInterface
$qb->setParameter('location', $data['accepted_location']); $qb->setParameter('location', $data['accepted_location']);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_location', PickUserLocationType::class, [ $builder->add('accepted_location', PickUserLocationType::class, [
@@ -50,13 +46,11 @@ class LocationFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$locations = []; $locations = [];
@@ -70,7 +64,6 @@ class LocationFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter activity by location'; return 'Filter activity by location';

View File

@@ -23,13 +23,11 @@ class LocationTypeFilter implements FilterInterface
{ {
public function __construct(private readonly TranslatableStringHelper $translatableStringHelper) {} public function __construct(private readonly TranslatableStringHelper $translatableStringHelper) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
if (!\in_array('actloc', $qb->getAllAliases(), true)) { if (!\in_array('actloc', $qb->getAllAliases(), true)) {
@@ -49,13 +47,11 @@ class LocationTypeFilter implements FilterInterface
$qb->setParameter('locationtype', $data['accepted_locationtype']); $qb->setParameter('locationtype', $data['accepted_locationtype']);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_locationtype', PickLocationTypeType::class, [ $builder->add('accepted_locationtype', PickLocationTypeType::class, [
@@ -64,13 +60,11 @@ class LocationTypeFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$types = []; $types = [];
@@ -86,7 +80,6 @@ class LocationTypeFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter activity by locationtype'; return 'Filter activity by locationtype';

View File

@@ -28,13 +28,11 @@ class ActivityReasonFilter implements ExportElementValidatedInterface, FilterInt
{ {
public function __construct(protected TranslatableStringHelper $translatableStringHelper, protected ActivityReasonRepository $activityReasonRepository) {} public function __construct(protected TranslatableStringHelper $translatableStringHelper, protected ActivityReasonRepository $activityReasonRepository) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$where = $qb->getDQLPart('where'); $where = $qb->getDQLPart('where');
@@ -55,13 +53,11 @@ class ActivityReasonFilter implements ExportElementValidatedInterface, FilterInt
$qb->setParameter('selected_activity_reasons', $data['reasons']); $qb->setParameter('selected_activity_reasons', $data['reasons']);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY_PERSON; return Declarations::ACTIVITY_PERSON;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('reasons', EntityType::class, [ $builder->add('reasons', EntityType::class, [
@@ -74,13 +70,11 @@ class ActivityReasonFilter implements ExportElementValidatedInterface, FilterInt
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
// collect all the reasons'name used in this filter in one array // collect all the reasons'name used in this filter in one array
@@ -97,13 +91,11 @@ class ActivityReasonFilter implements ExportElementValidatedInterface, FilterInt
]; ];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'Filter by reason'; return 'Filter by reason';
} }
#[\Override]
public function validateForm($data, ExecutionContextInterface $context) public function validateForm($data, ExecutionContextInterface $context)
{ {
if (null === $data['reasons'] || 0 === \count($data['reasons'])) { if (null === $data['reasons'] || 0 === \count($data['reasons'])) {

View File

@@ -34,13 +34,11 @@ final readonly class PersonHavingActivityBetweenDateFilter implements ExportElem
private RollingDateConverterInterface $rollingDateConverter, private RollingDateConverterInterface $rollingDateConverter,
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
// create a subquery for activity // create a subquery for activity
@@ -85,13 +83,11 @@ final readonly class PersonHavingActivityBetweenDateFilter implements ExportElem
); );
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::PERSON_TYPE; return Declarations::PERSON_TYPE;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('date_from_rolling', PickRollingDateType::class, [ $builder->add('date_from_rolling', PickRollingDateType::class, [
@@ -116,7 +112,6 @@ final readonly class PersonHavingActivityBetweenDateFilter implements ExportElem
} }
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -126,7 +121,6 @@ final readonly class PersonHavingActivityBetweenDateFilter implements ExportElem
]; ];
} }
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
return [ return [
@@ -147,13 +141,11 @@ final readonly class PersonHavingActivityBetweenDateFilter implements ExportElem
]; ];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'export.filter.activity.person_between_dates.title'; return 'export.filter.activity.person_between_dates.title';
} }
#[\Override]
public function validateForm($data, ExecutionContextInterface $context) public function validateForm($data, ExecutionContextInterface $context)
{ {
if ($this->rollingDateConverter->convert($data['date_from_rolling']) if ($this->rollingDateConverter->convert($data['date_from_rolling'])

View File

@@ -24,17 +24,15 @@ use Symfony\Component\Form\FormBuilderInterface;
*/ */
final readonly class PersonsFilter implements FilterInterface final readonly class PersonsFilter implements FilterInterface
{ {
private const string PREFIX = 'act_persons_filter'; private const PREFIX = 'act_persons_filter';
public function __construct(private PersonRenderInterface $personRender) {} public function __construct(private PersonRenderInterface $personRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -49,13 +47,11 @@ final readonly class PersonsFilter implements FilterInterface
$qb->andWhere($orX); $qb->andWhere($orX);
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_persons', PickPersonDynamicType::class, [ $builder->add('accepted_persons', PickPersonDynamicType::class, [
@@ -64,7 +60,6 @@ final readonly class PersonsFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -72,7 +67,6 @@ final readonly class PersonsFilter implements FilterInterface
]; ];
} }
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
$users = []; $users = [];
@@ -86,7 +80,6 @@ final readonly class PersonsFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.filter.activity.by_persons.Filter activity by persons'; return 'export.filter.activity.by_persons.Filter activity by persons';

View File

@@ -22,22 +22,20 @@ use Symfony\Contracts\Translation\TranslatorInterface;
class SentReceivedFilter implements FilterInterface class SentReceivedFilter implements FilterInterface
{ {
private const array CHOICES = [ private const CHOICES = [
'export.filter.activity.by_sent_received.is sent' => Activity::SENTRECEIVED_SENT, 'export.filter.activity.by_sent_received.is sent' => Activity::SENTRECEIVED_SENT,
'export.filter.activity.by_sent_received.is received' => Activity::SENTRECEIVED_RECEIVED, 'export.filter.activity.by_sent_received.is received' => Activity::SENTRECEIVED_RECEIVED,
]; ];
private const string DEFAULT_CHOICE = Activity::SENTRECEIVED_SENT; private const DEFAULT_CHOICE = Activity::SENTRECEIVED_SENT;
public function __construct(private readonly TranslatorInterface $translator) {} public function __construct(private readonly TranslatorInterface $translator) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$where = $qb->getDQLPart('where'); $where = $qb->getDQLPart('where');
@@ -54,13 +52,11 @@ class SentReceivedFilter implements FilterInterface
$qb->setParameter('sentreceived', $data['accepted_sentreceived']); $qb->setParameter('sentreceived', $data['accepted_sentreceived']);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_sentreceived', ChoiceType::class, [ $builder->add('accepted_sentreceived', ChoiceType::class, [
@@ -72,13 +68,11 @@ class SentReceivedFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return ['accepted_sentreceived' => self::DEFAULT_CHOICE]; return ['accepted_sentreceived' => self::DEFAULT_CHOICE];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$sentreceived = array_flip(self::CHOICES)[$data['accepted_sentreceived']]; $sentreceived = array_flip(self::CHOICES)[$data['accepted_sentreceived']];
@@ -88,7 +82,6 @@ class SentReceivedFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter activity by sentreceived'; return 'Filter activity by sentreceived';

View File

@@ -23,13 +23,11 @@ class UserFilter implements FilterInterface
{ {
public function __construct(private readonly UserRender $userRender) {} public function __construct(private readonly UserRender $userRender) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$where = $qb->getDQLPart('where'); $where = $qb->getDQLPart('where');
@@ -46,13 +44,11 @@ class UserFilter implements FilterInterface
$qb->setParameter('users', $data['accepted_users']); $qb->setParameter('users', $data['accepted_users']);
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder->add('accepted_users', PickUserDynamicType::class, [ $builder->add('accepted_users', PickUserDynamicType::class, [
@@ -61,13 +57,11 @@ class UserFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return []; return [];
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
$users = []; $users = [];
@@ -81,7 +75,6 @@ class UserFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'Filter activity by user'; return 'Filter activity by user';

View File

@@ -25,20 +25,18 @@ use Symfony\Component\Form\FormBuilderInterface;
class UsersJobFilter implements FilterInterface class UsersJobFilter implements FilterInterface
{ {
private const string PREFIX = 'act_filter_user_job'; private const PREFIX = 'act_filter_user_job';
public function __construct( public function __construct(
private readonly TranslatableStringHelperInterface $translatableStringHelper, private readonly TranslatableStringHelperInterface $translatableStringHelper,
private readonly UserJobRepositoryInterface $userJobRepository private readonly UserJobRepositoryInterface $userJobRepository
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -62,13 +60,11 @@ class UsersJobFilter implements FilterInterface
); );
} }
#[\Override]
public function applyOn() public function applyOn()
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder $builder
@@ -81,7 +77,6 @@ class UsersJobFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string')
{ {
return ['export.filter.activity.by_users_job.Filtered activity by users job: only %jobs%', [ return ['export.filter.activity.by_users_job.Filtered activity by users job: only %jobs%', [
@@ -95,7 +90,6 @@ class UsersJobFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -103,7 +97,6 @@ class UsersJobFilter implements FilterInterface
]; ];
} }
#[\Override]
public function getTitle() public function getTitle()
{ {
return 'export.filter.activity.by_users_job.Filter by users job'; return 'export.filter.activity.by_users_job.Filter by users job';

View File

@@ -25,20 +25,18 @@ use Symfony\Component\Form\FormBuilderInterface;
class UsersScopeFilter implements FilterInterface class UsersScopeFilter implements FilterInterface
{ {
private const string PREFIX = 'act_filter_user_scope'; private const PREFIX = 'act_filter_user_scope';
public function __construct( public function __construct(
private readonly ScopeRepositoryInterface $scopeRepository, private readonly ScopeRepositoryInterface $scopeRepository,
private readonly TranslatableStringHelperInterface $translatableStringHelper private readonly TranslatableStringHelperInterface $translatableStringHelper
) {} ) {}
#[\Override]
public function addRole(): ?string public function addRole(): ?string
{ {
return null; return null;
} }
#[\Override]
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data)
{ {
$p = self::PREFIX; $p = self::PREFIX;
@@ -62,13 +60,11 @@ class UsersScopeFilter implements FilterInterface
); );
} }
#[\Override]
public function applyOn(): string public function applyOn(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
#[\Override]
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder)
{ {
$builder $builder
@@ -81,7 +77,6 @@ class UsersScopeFilter implements FilterInterface
]); ]);
} }
#[\Override]
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array
{ {
return ['export.filter.activity.by_users_scope.Filtered activity by users scope: only %scopes%', [ return ['export.filter.activity.by_users_scope.Filtered activity by users scope: only %scopes%', [
@@ -95,7 +90,6 @@ class UsersScopeFilter implements FilterInterface
]]; ]];
} }
#[\Override]
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return [ return [
@@ -103,7 +97,6 @@ class UsersScopeFilter implements FilterInterface
]; ];
} }
#[\Override]
public function getTitle(): string public function getTitle(): string
{ {
return 'export.filter.activity.by_users_scope.Filter by users scope'; return 'export.filter.activity.by_users_scope.Filter by users scope';

View File

@@ -20,7 +20,6 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
class ActivityPresenceType extends AbstractType class ActivityPresenceType extends AbstractType
{ {
#[\Override]
public function buildForm(FormBuilderInterface $builder, array $options): void public function buildForm(FormBuilderInterface $builder, array $options): void
{ {
$builder $builder
@@ -34,7 +33,6 @@ class ActivityPresenceType extends AbstractType
]); ]);
} }
#[\Override]
public function configureOptions(OptionsResolver $resolver): void public function configureOptions(OptionsResolver $resolver): void
{ {
$resolver->setDefaults([ $resolver->setDefaults([

View File

@@ -19,7 +19,6 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
class ActivityReasonCategoryType extends AbstractType class ActivityReasonCategoryType extends AbstractType
{ {
#[\Override]
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder $builder
@@ -30,7 +29,6 @@ class ActivityReasonCategoryType extends AbstractType
/** /**
* @param OptionsResolverInterface $resolver * @param OptionsResolverInterface $resolver
*/ */
#[\Override]
public function configureOptions(OptionsResolver $resolver) public function configureOptions(OptionsResolver $resolver)
{ {
$resolver->setDefaults([ $resolver->setDefaults([
@@ -41,7 +39,6 @@ class ActivityReasonCategoryType extends AbstractType
/** /**
* @return string * @return string
*/ */
#[\Override]
public function getBlockPrefix() public function getBlockPrefix()
{ {
return 'chill_activitybundle_activityreasoncategory'; return 'chill_activitybundle_activityreasoncategory';

View File

@@ -21,7 +21,6 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
class ActivityReasonType extends AbstractType class ActivityReasonType extends AbstractType
{ {
#[\Override]
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder $builder
@@ -30,7 +29,6 @@ class ActivityReasonType extends AbstractType
->add('category', TranslatableActivityReasonCategoryType::class); ->add('category', TranslatableActivityReasonCategoryType::class);
} }
#[\Override]
public function configureOptions(OptionsResolver $resolver) public function configureOptions(OptionsResolver $resolver)
{ {
$resolver->setDefaults([ $resolver->setDefaults([
@@ -41,7 +39,6 @@ class ActivityReasonType extends AbstractType
/** /**
* @return string * @return string
*/ */
#[\Override]
public function getBlockPrefix() public function getBlockPrefix()
{ {
return 'chill_activitybundle_activityreason'; return 'chill_activitybundle_activityreason';

Some files were not shown because too many files have changed in this diff Show More