Commit Graph

8077 Commits

Author SHA1 Message Date
8df06504ba Add support for associated subject conversion in AccompanyingPeriodWorkSubjectConverter
- Updated `convert` method to append associated subjects when `$includeAssociated` is true.
- Modified `SubjectConverterManager` to pass `$includeAssociated` to converters during subject resolution.
2026-02-17 09:33:04 +01:00
fa38f7edaa Add advanced filtering support to AuditTrailSearchController and related views
- Introduced filters for date range, course number, and person number using `FilterOrderHelper`.
- Updated `AuditTrailSearchController` to build and process filtering criteria dynamically.
- Enhanced translations and updated templates to render the new filter options.
2026-02-16 15:14:17 +01:00
4e9846930b Refactor AuditTrailRepository to extract query-building logic and add support for date and subject-based filtering
- Moved query-building logic to a new `buildByCriteriaQuery` private method for better modularity.
- Added handling for `from_date`, `to_date`, and subject-based filtering using `JSONB` containment for improved query flexibility.
2026-02-16 15:14:17 +01:00
dd3a08f766 Add support for integer fields in FilterOrderHelper and FilterOrderHelperBuilder
- Introduced methods to define, retrieve, and process integer fields in `FilterOrderHelper` and `FilterOrderHelperBuilder`.
- Updated `FilterOrderType` to render integer fields dynamically as form inputs.
- Added corresponding support in `FilterOrderGetActiveFilterHelper` to handle integer field data.
- Updated `FilterOrderPositionEnum` and template files to include integer field rendering logic.
- Enhanced entity labels with translation capabilities where applicable.
2026-02-16 15:14:16 +01:00
16c5fd0cf2 Add JsonbContains custom DQL function and corresponding test
- Introduced `JsonbContains` class to enable the usage of PostgreSQL's JSONB containment operator in DQL queries.
- Created `JsonbContainsTest` to validate the functionality of the custom DQL function.
2026-02-16 15:14:16 +01:00
cc769fd4ba Support translatable labels in FilterOrderHelper and FilterOrderHelperBuilder
- Updated methods to accept `string|TranslatableInterface` for label parameters, allowing translation capabilities.
- Added `Symfony\Contracts\Translation\TranslatableInterface` imports in both classes.
2026-02-16 13:30:07 +01:00
22ace0c66e WIP: render entities 2026-02-16 13:02:46 +01:00
32c5f21438 Refactor subject conversion handling and enhance audit logging
- Replaced `Subject|array` return types with `SubjectBag` in `SubjectConverterInterface` for more robust handling.
- Updated `getSubjectsForEntity` to include an optional `$includeAssociated` parameter for finer control over associated subject resolution.
- Refactored `AuditEvent` to differentiate `mainSubject` from associated subjects, improving clarity in audit logging.
- Introduced database schema changes to add `main_subject` and `subjects` columns in the `chill_main_audit_trail` table.
- Added `SubjectBag` class for grouped subject management and implemented deduplication logic.
- Updated all converters and test cases to use the new `SubjectBag` approach, ensuring compatibility.
- Improved event dispatching in controllers to utilize the updated `AuditEvent` structure and refined metadata handling.
2026-02-13 17:07:30 +01:00
443ee4cb1a Update insert method in AuditTrailRepository to simplify nullable user handling
- Removed redundant null-check logic for `user_id` assignment.
- Updated query to directly handle optional users with safe navigation and nullable type support.
2026-01-28 22:36:26 +01:00
23d23da6b3 Specify \Throwable explicitly in ConvertSubjectException constructor for improved type clarity. 2026-01-28 22:35:29 +01:00
54e2777fa2 Update AuditTrailRepository to improve user handling and fix nullable user type in AuditTrail
- Changed `getUser` method in `AuditTrail` to allow null values by updating the return type to `?User`.
- Updated `insert` method in `AuditTrailRepository` to handle nullable users, ensuring the `user_id` parameter is set only when applicable.
- Improved code robustness by adding null-check logic for user assignment in the SQL query.
2026-01-28 22:35:13 +01:00
c1a0234358 Refactor subject conversion APIs and simplify usage in audit-related components
- Removed `convertEntityToSubjects` method from `SubjectConverterManager` and updated all references to use `getSubjectsForEntity`.
- Ensured `getSubjectsForEntity` always returns an array by wrapping single `Subject` instances.
- Replaced manual type handling in converters with `array_push` and improved code clarity in `AuditEvent2Trail` and related tests.
- Updated and fixed tests for the modified subject conversion logic to maintain coverage.
2026-01-28 22:34:55 +01:00
412aa213c8 Add AccompanyingPeriodWorkSubjectConverter and integrate audit logging for accompanying period work
- Implemented `AccompanyingPeriodWorkSubjectConverter` to handle subject conversion for accompanying period work entities.
- Added unit tests to ensure proper functionality of the new converter.
- Integrated `AuditEvent` dispatching into `AccompanyingCourseWorkController` for viewing and listing accompanying period works.
2026-01-28 17:32:37 +01:00
d2f5b49131 Add audit logging and subject conversion for accompanying periods
- Added `AccompanyingPeriodSubjectConverter` to handle subject conversion for accompanying periods.
- Integrated `AuditEvent` dispatching into `AccompanyingCourseController` for key actions (e.g., create, view, update, delete, reopen).
- Extended translations to include audit-related messages for accompanying periods.
- Introduced tests for `AccompanyingPeriodSubjectConverter` to ensure proper functionality.
2026-01-28 17:32:27 +01:00
624cad8818 Add support for SubjectConverterManager awareness in converters and refactor subject retrieval.
- Introduced `SubjectConverterManagerAwareTrait` and `SubjectConverterManagerAwareInterface` for injecting subject converter manager into converters.
- Added `getSubjectsForEntity` method in `SubjectConverterManager` to centralize subject retrieval logic.
- Updated converters to set the subject converter manager when applicable.
2026-01-28 17:32:07 +01:00
bb96b9312e Replace PrivacyEvent dispatch with AuditEvent for viewing a person.
- Updated `PersonController` to dispatch `AuditEvent` with `AUDIT_VIEW` action instead of `PrivacyEvent`.
- Added necessary `AuditEvent` and `AuditTrail` imports to the controller.
2026-01-28 16:20:01 +01:00
59b322ee8e Register SubjectConverterInterface for autoconfiguration and add new audit services
- Registered `SubjectConverterInterface` for autoconfiguration with the `chill_main.audit_subject_converter` tag.
- Added `audit.yaml` to configure audit-related services and enable service discovery for the `Audit` namespace.
- Updated `services.yaml` to include the new `audit.yaml` configuration.
2026-01-28 16:19:54 +01:00
1de7da709c Add PersonSubjectConverter for handling Person subject conversion in audits
- Created `PersonSubjectConverter` class implementing `SubjectConverterInterface` to convert `Person` entities into `Subject` instances.
- Registered the `Audit` namespace in `services.yaml` to enable automatic service discovery.
2026-01-28 16:19:45 +01:00
d6f9aa6b45 Refactor subject conversion in AuditEvent2Trail and enhance SubjectConverterInterface
- Replaced `array_map` with `array_reduce` in `AuditEvent2Trail` for flattening converted subjects.
- Enhanced `SubjectConverterInterface` with a `supportsConvert` method and PHPStan annotations to improve type safety and flexibility.
2026-01-28 16:19:25 +01:00
e27876aeeb Update AuditTrail entity with standardized column naming and new constants
- Renamed entity columns to adhere to naming convention (`action`, `id`, `occurredat`, `user_id`, `description`, `targets`, `metadata`).
- Added constants for audit actions (`AUDIT_VIEW`, `AUDIT_CREATE`, `AUDIT_UPDATE`, `AUDIT_DELETE`).
2026-01-28 16:18:58 +01:00
ee624cae4b Add AuditTrailPersisterInterface and improve AuditTrailPersister
- Introduced `AuditTrailPersisterInterface` to define the persisting contract.
- Updated `AuditTrailPersister` to implement the interface and delegate persistence to `AuditTrailRepository`.
- Added `AuditTrailRepository` with `persistImmediately` method to save audit trails directly to the database.
2026-01-28 16:18:45 +01:00
6bbdc858bd Add audit system core with event handling and subject conversion
- Implemented `AuditEvent` class to represent audit events.
- Added `AuditEvent2Trail` for converting events to audit trails.
- Introduced `Subject` and `SubjectConverterManager` for subject conversion.
- Created contracts like `SubjectConverterInterface` and `AuditEvent2TrailInterface`.
- Developed `AuditEventSubscriber` to persist audit events using `AuditTrailPersister`.
- Included test classes for core audit services and components.
2026-01-23 17:33:48 +01:00
ed41224d7a Add audit trail entity and migration
- Introduced `AuditTrail` entity to track user actions.
- Added Doctrine migration to create the `chill_main_audit_trail` table.
2026-01-23 17:33:18 +01:00
b6152d5356 Fix issues with permission for stored objects associated with workflows 2026-01-15 16:54:37 +00:00
8b708f8c73 fix CommentInput: replace deprecated value binding with model-value 2026-01-15 14:53:40 +01:00
3915574ed4 phpstan error fix 2026-01-15 13:40:46 +01:00
f3217d22ef Fix: acc periods of which user is the referrer should not be included if when the list is filtered by center and none of the participations are part of the center 2026-01-15 13:25:54 +01:00
06c5affbe7 Increase delay for removing stale workflows from 90 to 180 days
- Updated `KEEP_INTERVAL` in `CancelStaleWorkflowCronJob` to `P180D`.
2026-01-15 10:08:40 +01:00
bf461a1211 Merge branch '473-display-bundles-version' into 'master'
Resolve "Afficher le numéro de version de Chill dans l'UX"

Closes #473

See merge request Chill-Projet/chill-bundles!947
2026-01-13 15:35:26 +00:00
3f0ad51114 Resolve "Afficher le numéro de version de Chill dans l'UX" 2026-01-13 15:35:26 +00:00
a4de8eaab3 Merge branch '489-fix-desactivation-date-goarls-results' into 'master'
Fix issue with goal/result deactivation date handling and improve formatting

Closes #489

See merge request Chill-Projet/chill-bundles!949
2026-01-13 15:32:08 +00:00
2feb137ac2 Fix issue with goal/result deactivation date handling and improve formatting 2026-01-13 15:32:07 +00:00
8eb7a55ef5 Prevent notifications from being sent when the user signs a document he asked to himself 2026-01-13 15:31:49 +00:00
281887355f Fix calculation of budget balance 2026-01-12 10:34:30 +01:00
47b285b584 Fix export group by center for persons without a center in CenterAggregator.php 2025-12-30 13:01:56 +01:00
7c9b4d02f6 Fix ordering of social actions
Actions with a closing date in the future should be considered as 'still open'.
2025-12-18 11:08:18 +01:00
3ff9bba4de Fix the condition to display concerned persons in calendar list items. 2025-12-18 10:24:24 +01:00
a49ea2b6b9 Fix translation syntax
Cannot start with %, wrap translation value in double quotes
2025-12-17 16:54:33 +01:00
a30232d3ce Merge branch '478-admin-list-filters' into 'master'
Resolve "Add filters to admin lists"

Closes #478

See merge request Chill-Projet/chill-bundles!941
2025-12-15 16:49:39 +00:00
c9513f2f6c Fix migration to exclude null user_id in activity_user population 2025-12-15 13:43:20 +00:00
11d7425883 php cs fixes 2025-12-15 10:48:20 +01:00
08897e0981 Fix count of total items for correct paginator display 2025-12-15 10:48:00 +01:00
98cbfed054 Add filtering methods to controllers 2025-12-15 10:48:00 +01:00
9af4d19744 Add repository methods for filtering 2025-12-15 10:48:00 +01:00
c1cf5a8bb2 Start implementation of filter within admin index pages 2025-12-15 10:48:00 +01:00
0f1ff9baf4 Fix CS 2025-12-11 14:43:29 +01:00
a16d659f69 Tentatively fix CTRL+C in Collabora editor with edge and chrome browser (+ remove zimbra bundle from configuration) 2025-12-11 13:26:10 +00:00
c4a069ba2e Fix display of header for ByActivityNumberAggregator 2025-12-10 05:13:24 +01:00
2600c6fa2a Fix ByActivityNumberAggregator when used on count exports within ActivityBundle 2025-12-10 05:06:03 +01:00
27853c594d Fix missing translation variable in NewLocation component 2025-12-10 04:17:29 +01:00