From c34f720f94ee3118d3b0cfe3fc8984a733645866 Mon Sep 17 00:00:00 2001 From: juminet Date: Tue, 27 Jan 2026 10:26:57 +0000 Subject: [PATCH 01/13] Adding the option to deal with duplicate addresses in the BAN importer --- .changes/unreleased/Fixed-20260127-110742.yaml | 7 +++++++ .../Command/LoadAddressesFRFromBANCommand.php | 5 +++-- .../Service/Import/AddressReferenceFromBAN.php | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 .changes/unreleased/Fixed-20260127-110742.yaml diff --git a/.changes/unreleased/Fixed-20260127-110742.yaml b/.changes/unreleased/Fixed-20260127-110742.yaml new file mode 100644 index 000000000..b49f9aaf6 --- /dev/null +++ b/.changes/unreleased/Fixed-20260127-110742.yaml @@ -0,0 +1,7 @@ +kind: Fixed +body: | + Add the option to deal with duplicate address in BAN adress importer +time: 2026-01-27T11:07:42.709140905+01:00 +custom: + Issue: "496" + SchemaChange: No schema change diff --git a/src/Bundle/ChillMainBundle/Command/LoadAddressesFRFromBANCommand.php b/src/Bundle/ChillMainBundle/Command/LoadAddressesFRFromBANCommand.php index 8483c0be1..a747b4c2c 100644 --- a/src/Bundle/ChillMainBundle/Command/LoadAddressesFRFromBANCommand.php +++ b/src/Bundle/ChillMainBundle/Command/LoadAddressesFRFromBANCommand.php @@ -31,7 +31,8 @@ class LoadAddressesFRFromBANCommand extends Command { $this->setName('chill:main:address-ref-from-ban') ->addArgument('departementNo', InputArgument::REQUIRED | InputArgument::IS_ARRAY, 'a list of departement numbers') - ->addOption('send-report-email', 's', InputOption::VALUE_REQUIRED, 'Email address where a list of unimported addresses can be send'); + ->addOption('send-report-email', 's', InputOption::VALUE_REQUIRED, 'Email address where a list of unimported addresses can be send') + ->addOption('allow-remove-double-refid', 'd', InputOption::VALUE_NONE, 'Should the address importer be allowed to remove same refid in the source data, if any'); } protected function execute(InputInterface $input, OutputInterface $output): int @@ -40,7 +41,7 @@ class LoadAddressesFRFromBANCommand extends Command foreach ($input->getArgument('departementNo') as $departementNo) { $output->writeln('Import addresses for '.$departementNo); - $this->addressReferenceFromBAN->import($departementNo, $input->hasOption('send-report-email') ? $input->getOption('send-report-email') : null); + $this->addressReferenceFromBAN->import($departementNo, $input->hasOption('send-report-email') ? $input->getOption('send-report-email') : null, allowRemoveDoubleRefId: $input->hasOption('allow-remove-double-refid') ? $input->getOption('allow-remove-double-refid') : false); } return Command::SUCCESS; diff --git a/src/Bundle/ChillMainBundle/Service/Import/AddressReferenceFromBAN.php b/src/Bundle/ChillMainBundle/Service/Import/AddressReferenceFromBAN.php index 0aa4cd6ce..83def3d5c 100644 --- a/src/Bundle/ChillMainBundle/Service/Import/AddressReferenceFromBAN.php +++ b/src/Bundle/ChillMainBundle/Service/Import/AddressReferenceFromBAN.php @@ -23,7 +23,7 @@ class AddressReferenceFromBAN private readonly AddressToReferenceMatcher $addressToReferenceMatcher, ) {} - public function import(string $departementNo, ?string $sendAddressReportToEmail = null): void + public function import(string $departementNo, ?string $sendAddressReportToEmail = null, ?bool $allowRemoveDoubleRefId = false): void { if (!is_numeric($departementNo)) { throw new \UnexpectedValueException('Could not parse this department number'); @@ -96,7 +96,7 @@ class AddressReferenceFromBAN ); } - $this->baseImporter->finalize(sendAddressReportToEmail: $sendAddressReportToEmail); + $this->baseImporter->finalize(allowRemoveDoubleRefId: $allowRemoveDoubleRefId, sendAddressReportToEmail: $sendAddressReportToEmail); $this->addressToReferenceMatcher->checkAddressesMatchingReferences(); From 9997fb287a7bbb6b3ea0ca9e62a4ce3b60c664e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Thu, 29 Jan 2026 12:27:56 +0000 Subject: [PATCH 02/13] Update PHP-CS-Fixer to version 3.93.0 in composer dependencies --- composer.json | 2 +- .../DependencyInjection/ChillActivityExtension.php | 2 +- .../DependencyInjection/ChillBudgetExtension.php | 2 +- .../DependencyInjection/ChillCustomFieldsExtension.php | 2 +- .../ChillCustomFieldsBundle/Form/Type/ChoiceWithOtherType.php | 4 ++-- .../ChillCustomFieldsBundle/Form/Type/ChoicesListType.php | 2 +- .../ChillCustomFieldsBundle/Service/CustomFieldProvider.php | 2 +- .../DependencyInjection/ChillEventExtension.php | 2 +- .../ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php | 4 ++-- src/Bundle/ChillMainBundle/Command/LoadCountriesCommand.php | 4 ++-- .../CompilerPass/SearchableServicesCompilerPass.php | 2 +- .../Widget/Factory/AbstractWidgetFactory.php | 2 +- .../Security/Resolver/ScopeResolverDispatcher.php | 2 +- src/Bundle/ChillPersonBundle/Search/PersonSearch.php | 4 ++-- 14 files changed, 18 insertions(+), 18 deletions(-) diff --git a/composer.json b/composer.json index b3424ddba..65cbd19dd 100644 --- a/composer.json +++ b/composer.json @@ -98,7 +98,7 @@ "require-dev": { "doctrine/doctrine-fixtures-bundle": "^3.3", "fakerphp/faker": "^1.13", - "friendsofphp/php-cs-fixer": "3.92.5", + "friendsofphp/php-cs-fixer": "3.93.0", "jangregor/phpstan-prophecy": "^1.0", "nelmio/alice": "^3.8", "nikic/php-parser": "^4.15", diff --git a/src/Bundle/ChillActivityBundle/DependencyInjection/ChillActivityExtension.php b/src/Bundle/ChillActivityBundle/DependencyInjection/ChillActivityExtension.php index 15e7e7e4b..38aefdaea 100644 --- a/src/Bundle/ChillActivityBundle/DependencyInjection/ChillActivityExtension.php +++ b/src/Bundle/ChillActivityBundle/DependencyInjection/ChillActivityExtension.php @@ -69,7 +69,7 @@ class ChillActivityExtension extends Extension implements PrependExtensionInterf } /** (non-PHPdoc). - * @see \Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface::prepend() + * @see PrependExtensionInterface::prepend() */ public function prependRoutes(ContainerBuilder $container) { diff --git a/src/Bundle/ChillBudgetBundle/DependencyInjection/ChillBudgetExtension.php b/src/Bundle/ChillBudgetBundle/DependencyInjection/ChillBudgetExtension.php index 6a8842b64..6bae7c785 100644 --- a/src/Bundle/ChillBudgetBundle/DependencyInjection/ChillBudgetExtension.php +++ b/src/Bundle/ChillBudgetBundle/DependencyInjection/ChillBudgetExtension.php @@ -56,7 +56,7 @@ class ChillBudgetExtension extends Extension implements PrependExtensionInterfac } /** (non-PHPdoc). - * @see \Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface::prepend() + * @see PrependExtensionInterface::prepend() */ public function prependRoutes(ContainerBuilder $container) { diff --git a/src/Bundle/ChillCustomFieldsBundle/DependencyInjection/ChillCustomFieldsExtension.php b/src/Bundle/ChillCustomFieldsBundle/DependencyInjection/ChillCustomFieldsExtension.php index 724fd01ca..a68284989 100644 --- a/src/Bundle/ChillCustomFieldsBundle/DependencyInjection/ChillCustomFieldsExtension.php +++ b/src/Bundle/ChillCustomFieldsBundle/DependencyInjection/ChillCustomFieldsExtension.php @@ -52,7 +52,7 @@ class ChillCustomFieldsExtension extends Extension implements PrependExtensionIn } /** (non-PHPdoc). - * @see \Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface::prepend() + * @see PrependExtensionInterface::prepend() */ public function prepend(ContainerBuilder $container) { diff --git a/src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoiceWithOtherType.php b/src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoiceWithOtherType.php index 8d0c049f0..6c705ec7f 100644 --- a/src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoiceWithOtherType.php +++ b/src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoiceWithOtherType.php @@ -25,7 +25,7 @@ class ChoiceWithOtherType extends AbstractType private string $otherValueLabel = 'Other value'; /** (non-PHPdoc). - * @see \Symfony\Component\Form\AbstractType::buildForm() + * @see AbstractType::buildForm() */ public function buildForm(FormBuilderInterface $builder, array $options) { @@ -42,7 +42,7 @@ class ChoiceWithOtherType extends AbstractType } /** (non-PHPdoc). - * @see \Symfony\Component\Form\AbstractType::configureOptions() + * @see AbstractType::configureOptions() */ public function configureOptions(OptionsResolver $resolver) { diff --git a/src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoicesListType.php b/src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoicesListType.php index c50bd856e..7a06217d9 100644 --- a/src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoicesListType.php +++ b/src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoicesListType.php @@ -22,7 +22,7 @@ use Symfony\Component\Form\FormEvents; class ChoicesListType extends AbstractType { /** (non-PHPdoc). - * @see \Symfony\Component\Form\AbstractType::buildForm() + * @see AbstractType::buildForm() */ public function buildForm(FormBuilderInterface $builder, array $options) { diff --git a/src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php b/src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php index fcccf01ed..97b2dbe71 100644 --- a/src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php +++ b/src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php @@ -82,7 +82,7 @@ class CustomFieldProvider implements ContainerAwareInterface /** * (non-PHPdoc). * - * @see \Symfony\Component\DependencyInjection\ContainerAwareInterface::setContainer() + * @see ContainerAwareInterface::setContainer() */ public function setContainer(?ContainerInterface $container = null) { diff --git a/src/Bundle/ChillEventBundle/DependencyInjection/ChillEventExtension.php b/src/Bundle/ChillEventBundle/DependencyInjection/ChillEventExtension.php index cb59bb390..e5cbb2638 100644 --- a/src/Bundle/ChillEventBundle/DependencyInjection/ChillEventExtension.php +++ b/src/Bundle/ChillEventBundle/DependencyInjection/ChillEventExtension.php @@ -52,7 +52,7 @@ class ChillEventExtension extends Extension implements PrependExtensionInterface } /** (non-PHPdoc). - * @see \Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface::prepend() + * @see PrependExtensionInterface::prepend() */ public function prepend(ContainerBuilder $container): void { diff --git a/src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php b/src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php index 376df4e52..43d63a0fa 100644 --- a/src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php +++ b/src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php @@ -48,7 +48,7 @@ class LoadAndUpdateLanguagesCommand extends Command /** * (non-PHPdoc). * - * @see \Symfony\Component\Console\Command\Command::configure() + * @see Command::configure() */ protected function configure() { @@ -73,7 +73,7 @@ class LoadAndUpdateLanguagesCommand extends Command /** * (non-PHPdoc). * - * @see \Symfony\Component\Console\Command\Command::execute() + * @see Command::execute() */ protected function execute(InputInterface $input, OutputInterface $output): int { diff --git a/src/Bundle/ChillMainBundle/Command/LoadCountriesCommand.php b/src/Bundle/ChillMainBundle/Command/LoadCountriesCommand.php index 3f7f82523..fd921b51a 100644 --- a/src/Bundle/ChillMainBundle/Command/LoadCountriesCommand.php +++ b/src/Bundle/ChillMainBundle/Command/LoadCountriesCommand.php @@ -51,7 +51,7 @@ class LoadCountriesCommand extends Command /** * (non-PHPdoc). * - * @see \Symfony\Component\Console\Command\Command::configure() + * @see Command::configure() */ protected function configure() { @@ -61,7 +61,7 @@ class LoadCountriesCommand extends Command /** * (non-PHPdoc). * - * @see \Symfony\Component\Console\Command\Command::execute() + * @see Command::execute() */ protected function execute(InputInterface $input, OutputInterface $output): int { diff --git a/src/Bundle/ChillMainBundle/DependencyInjection/CompilerPass/SearchableServicesCompilerPass.php b/src/Bundle/ChillMainBundle/DependencyInjection/CompilerPass/SearchableServicesCompilerPass.php index ee305f964..6d34d2e93 100644 --- a/src/Bundle/ChillMainBundle/DependencyInjection/CompilerPass/SearchableServicesCompilerPass.php +++ b/src/Bundle/ChillMainBundle/DependencyInjection/CompilerPass/SearchableServicesCompilerPass.php @@ -20,7 +20,7 @@ class SearchableServicesCompilerPass implements CompilerPassInterface /** * (non-PHPdoc). * - * @see \Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface::process() + * @see CompilerPassInterface::process() */ public function process(ContainerBuilder $container) { diff --git a/src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php b/src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php index b0c14f27e..05aafba77 100644 --- a/src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php +++ b/src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php @@ -32,7 +32,7 @@ abstract class AbstractWidgetFactory implements WidgetFactoryInterface * Will create the definition by returning the definition from the `services.yml` * file (or `services.xml` or `what-you-want.yml`). * - * @see \Chill\MainBundle\DependencyInjection\Widget\Factory\WidgetFactoryInterface::createDefinition() + * @see WidgetFactoryInterface::createDefinition() */ public function createDefinition(ContainerBuilder $containerBuilder, $place, $order, array $config) { diff --git a/src/Bundle/ChillMainBundle/Security/Resolver/ScopeResolverDispatcher.php b/src/Bundle/ChillMainBundle/Security/Resolver/ScopeResolverDispatcher.php index 50cca33d5..d7cb0ee21 100644 --- a/src/Bundle/ChillMainBundle/Security/Resolver/ScopeResolverDispatcher.php +++ b/src/Bundle/ChillMainBundle/Security/Resolver/ScopeResolverDispatcher.php @@ -33,7 +33,7 @@ final readonly class ScopeResolverDispatcher } /** - * @return Scope|iterable|Scope|null + * @return Scope|iterable|null */ public function resolveScope(mixed $entity, ?array $options = []): iterable|Scope|null { diff --git a/src/Bundle/ChillPersonBundle/Search/PersonSearch.php b/src/Bundle/ChillPersonBundle/Search/PersonSearch.php index c5c15e125..e891e6e6b 100644 --- a/src/Bundle/ChillPersonBundle/Search/PersonSearch.php +++ b/src/Bundle/ChillPersonBundle/Search/PersonSearch.php @@ -167,7 +167,7 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf /** * (non-PHPdoc). * - * @see \Chill\MainBundle\Search\SearchInterface::getOrder() + * @see SearchInterface::getOrder() */ public function getOrder(): int { @@ -177,7 +177,7 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf /** * (non-PHPdoc). * - * @see \Chill\MainBundle\Search\SearchInterface::isActiveByDefault() + * @see SearchInterface::isActiveByDefault() */ public function isActiveByDefault() { From 3402e4863f2c277ea6b65ead7b6ecca36bf5fe0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Sun, 1 Feb 2026 18:52:21 +0100 Subject: [PATCH 03/13] Release v4.12.1 --- .changes/unreleased/Fixed-20260127-110742.yaml | 7 ------- .changes/v4.12.1.md | 4 ++++ CHANGELOG.md | 7 +++++++ 3 files changed, 11 insertions(+), 7 deletions(-) delete mode 100644 .changes/unreleased/Fixed-20260127-110742.yaml create mode 100644 .changes/v4.12.1.md diff --git a/.changes/unreleased/Fixed-20260127-110742.yaml b/.changes/unreleased/Fixed-20260127-110742.yaml deleted file mode 100644 index b49f9aaf6..000000000 --- a/.changes/unreleased/Fixed-20260127-110742.yaml +++ /dev/null @@ -1,7 +0,0 @@ -kind: Fixed -body: | - Add the option to deal with duplicate address in BAN adress importer -time: 2026-01-27T11:07:42.709140905+01:00 -custom: - Issue: "496" - SchemaChange: No schema change diff --git a/.changes/v4.12.1.md b/.changes/v4.12.1.md new file mode 100644 index 000000000..a1e69887f --- /dev/null +++ b/.changes/v4.12.1.md @@ -0,0 +1,4 @@ +## v4.12.1 - 2026-02-01 +### Fixed +* ([#496](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/496)) Add the option to deal with duplicate address in BAN adress importer + diff --git a/CHANGELOG.md b/CHANGELOG.md index 37372c9fb..1f93dc783 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). +## v4.12.1 - 2026-02-01 +### Fixed +* ([#496](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/496)) Add the option to deal with duplicate address in BAN adress importer + + ## v4.12.0 - 2026-01-15 ### Feature * ([#473](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/473)) Display version of chill bundles in application footer @@ -21,6 +26,8 @@ and is generated by [Changie](https://github.com/miniscruff/changie). * ([#492](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/492)) fix CommentInput: replace deprecated value binding with model-value * ([#493](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/493)) fix issue with stored object permissions associated with workflows (as attachment, or through a related entity) + BC: the constructor's signature of `\Chill\DocStoreBundle\Security\Authorization\StoredObjectVoter\AbstractStoredObjectVoter` has changed. + ## v4.11.0 - 2025-12-17 ### Feature * ([#478](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/478)) Add filtering to admin lists: social actions, social issues, goals, results, and evaluations From 0e1d233d7973245209b4d737e000932077259716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Tue, 10 Feb 2026 15:05:49 +0000 Subject: [PATCH 04/13] Take workflow creator into account when granting edit permissions on documents --- .changes/unreleased/Fixed-20260210-155209.yaml | 6 ++++++ .../ChillMainBundle/Entity/Workflow/EntityWorkflow.php | 4 ++++ 2 files changed, 10 insertions(+) create mode 100644 .changes/unreleased/Fixed-20260210-155209.yaml diff --git a/.changes/unreleased/Fixed-20260210-155209.yaml b/.changes/unreleased/Fixed-20260210-155209.yaml new file mode 100644 index 000000000..9cd6c9cb1 --- /dev/null +++ b/.changes/unreleased/Fixed-20260210-155209.yaml @@ -0,0 +1,6 @@ +kind: Fixed +body: For giving edit permissions on documents, take into account the workflow creator +time: 2026-02-10T15:52:09.785649121+01:00 +custom: + Issue: "498" + SchemaChange: No schema change diff --git a/src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflow.php b/src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflow.php index ad5fa9e95..914a71615 100644 --- a/src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflow.php +++ b/src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflow.php @@ -394,6 +394,10 @@ class EntityWorkflow implements TrackCreationInterface, TrackUpdateInterface public function isUserInvolved(User $user): bool { + if ($this->getCreatedBy() === $user) { + return true; + } + foreach ($this->getSteps() as $step) { if ($step->getAllDestUser()->contains($user)) { return true; From a87d93682828a3ccc76b3368c4adf22fc760867e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Wed, 11 Feb 2026 13:27:48 +0000 Subject: [PATCH 05/13] Changie/add mr to question --- .changes/unreleased/DX-20260210-161202.yaml | 7 +++++++ .changes/unreleased/Fixed-20260210-155209.yaml | 1 + .changie.yaml | 8 +++++++- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 .changes/unreleased/DX-20260210-161202.yaml diff --git a/.changes/unreleased/DX-20260210-161202.yaml b/.changes/unreleased/DX-20260210-161202.yaml new file mode 100644 index 000000000..43843456f --- /dev/null +++ b/.changes/unreleased/DX-20260210-161202.yaml @@ -0,0 +1,7 @@ +kind: DX +body: Configure changie to ask for merge request number for a better tracking of changes +time: 2026-02-10T16:12:02.400722306+01:00 +custom: + Issue: "" + MR: "960" + SchemaChange: No schema change diff --git a/.changes/unreleased/Fixed-20260210-155209.yaml b/.changes/unreleased/Fixed-20260210-155209.yaml index 9cd6c9cb1..1047a9334 100644 --- a/.changes/unreleased/Fixed-20260210-155209.yaml +++ b/.changes/unreleased/Fixed-20260210-155209.yaml @@ -3,4 +3,5 @@ body: For giving edit permissions on documents, take into account the workflow c time: 2026-02-10T15:52:09.785649121+01:00 custom: Issue: "498" + MR: "" SchemaChange: No schema change diff --git a/.changie.yaml b/.changie.yaml index 49a885a2e..0bcab1f5b 100644 --- a/.changie.yaml +++ b/.changie.yaml @@ -7,7 +7,7 @@ versionFormat: '## {{.Version}} - {{.Time.Format "2006-01-02"}}' kindFormat: '### {{.Kind}}' # Note: it is possible to add a `.custom.Long` text manually into the yaml file produced by `changie new`. This will add a long description. changeFormat: >- - * {{ if not (eq .Custom.Issue "") }}([#{{ .Custom.Issue }}](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/{{ .Custom.Issue }})) {{ end }}{{ .Body }} {{ if and .Custom.SchemaChange (ne .Custom.SchemaChange "No schema change") }} + * {{ if not (eq .Custom.Issue "") }}([#{{ .Custom.Issue }}](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/{{ .Custom.Issue }})) {{ end }}{{ if not (eq .Custom.MR "") }}([!{{ .Custom.MR }}](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/{{ .Custom.MR }})) {{ end }}{{ .Body }} {{ if and .Custom.SchemaChange (ne .Custom.SchemaChange "No schema change") }} **Schema Change**: {{ .Custom.SchemaChange }} {{- end -}} @@ -30,6 +30,12 @@ custom: type: int minInt: 1 + - key: MR + label: Merge request number (on chill-bundles repository) (optional) + optional: true + type: int + minInt: 1 + body: # allow multiline messages block: true From 80b05a81335820d9d566cb603996217da3853992 Mon Sep 17 00:00:00 2001 From: Boris Waaub Date: Thu, 12 Feb 2026 08:50:00 +0000 Subject: [PATCH 06/13] =?UTF-8?q?Resolve=20"Parcours=20-=20"D=C3=A9signer?= =?UTF-8?q?=20comme=20adresse=20du=20parcours"=20to=20be=20green"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changes/unreleased/Fixed-20260210-141731.yaml | 6 ++++++ .../vuejs/AccompanyingCourse/components/ButtonLocation.vue | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changes/unreleased/Fixed-20260210-141731.yaml diff --git a/.changes/unreleased/Fixed-20260210-141731.yaml b/.changes/unreleased/Fixed-20260210-141731.yaml new file mode 100644 index 000000000..013080c9f --- /dev/null +++ b/.changes/unreleased/Fixed-20260210-141731.yaml @@ -0,0 +1,6 @@ +kind: Fixed +body: Change wrong color of submit button "Désigner comme adresse du parcours" +time: 2026-02-10T14:17:31.926008236+01:00 +custom: + Issue: "438" + SchemaChange: No schema change diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/ButtonLocation.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/ButtonLocation.vue index e84d5a9f2..39c90ddeb 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/ButtonLocation.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/ButtonLocation.vue @@ -27,7 +27,7 @@

{{ $t("courselocation.sure_description") }}

From 76d675ac02d9a0c2e8385945cf266bba1312d794 Mon Sep 17 00:00:00 2001 From: nobohan Date: Tue, 17 Feb 2026 14:11:15 +0100 Subject: [PATCH 07/13] Fixed translations of address in exports (addresse -> adresse) --- .changes/unreleased/Fixed-20260217-140838.yaml | 7 +++++++ src/Bundle/ChillPersonBundle/translations/messages.fr.yml | 4 ++-- .../ChillThirdPartyBundle/translations/messages.fr.yml | 6 +++--- 3 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 .changes/unreleased/Fixed-20260217-140838.yaml diff --git a/.changes/unreleased/Fixed-20260217-140838.yaml b/.changes/unreleased/Fixed-20260217-140838.yaml new file mode 100644 index 000000000..d6b3d20be --- /dev/null +++ b/.changes/unreleased/Fixed-20260217-140838.yaml @@ -0,0 +1,7 @@ +kind: Fixed +body: 'Fixed mispelling of address in translations: addresse -> adresse' +time: 2026-02-17T14:08:38.82625052+01:00 +custom: + Issue: "" + MR: "" + SchemaChange: No schema change diff --git a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml index b62908dc0..ad97767d2 100644 --- a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml @@ -453,8 +453,8 @@ Filtered by entrusted child status: Uniquement les usagers qui sont "enfant conf Filter by nomadic status: Filtrer les usagers "gens du voyage" Filtered by nomadic status: Uniquement les usagers qui sont "gens du voyage" -"Filter by person's who have a residential address located at another user": Filtrer les usagers qui ont une addresse de résidence chez une autre usager -"Filtered by person's who have a residential address located at another user": Uniquement les usagers qui ont une addresse de résidence chez une autre usager +"Filter by person's who have a residential address located at another user": Filtrer les usagers qui ont une adresse de résidence chez une autre usager +"Filtered by person's who have a residential address located at another user": Uniquement les usagers qui ont une adresse de résidence chez une autre usager Filter by person's that are alive or have deceased at a certain date: Filtrer les usagers qui sont décédés ou vivantes à une certaine date Filtered by person's that are alive or have deceased at a certain date: Uniquement les usagers qui sont décédés ou vivantes à une certaine date diff --git a/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml b/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml index bdd9420f7..62df67616 100644 --- a/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml @@ -129,11 +129,11 @@ export: thirdParties: Tiers intervenant # exports filters/aggregators -Filtered by person\'s who have a residential address located at a thirdparty of type %thirparty_type%: Uniquement les usagers qui ont une addresse de résidence chez un tiers de catégorie %thirdparty_type% +Filtered by person\'s who have a residential address located at a thirdparty of type %thirparty_type%: Uniquement les usagers qui ont une adresse de résidence chez un tiers de catégorie %thirdparty_type% is thirdparty: Le demandeur est un tiers -Filter by person's who have a residential address located at a thirdparty of type: Filtrer les usagers qui ont une addresse de résidence chez un tiers -"Filtered by person's who have a residential address located at a thirdparty of type %thirdparty_type% and valid on %date_calc%": "Uniquement les usagers qui ont une addresse de résidence chez un tiers de catégorie %thirdparty_type% et valide sur la date %date_calc%" +Filter by person's who have a residential address located at a thirdparty of type: Filtrer les usagers qui ont une adresse de résidence chez un tiers +"Filtered by person's who have a residential address located at a thirdparty of type %thirdparty_type% and valid on %date_calc%": "Uniquement les usagers qui ont une adresse de résidence chez un tiers de catégorie %thirdparty_type% et valide sur la date %date_calc%" # admin admin: From f1446d7abee67734d4fee9d9a36982add5a7b1e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 23 Feb 2026 14:16:45 +0000 Subject: [PATCH 08/13] =?UTF-8?q?Resolve=20"Des=20codes=20postaux=20marqu?= =?UTF-8?q?=C3=A9s=20comme=20supprim=C3=A9s=20apparaissent=20toujours=20da?= =?UTF-8?q?ns=20la=20recherche=20d'adresse"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unreleased/Fixed-20260223-144735.yaml | 8 ++++ .../Controller/PostalCodeAPIController.php | 2 + .../Repository/PostalCodeRepository.php | 4 +- .../migrations/Version20260223134919.php | 41 +++++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 .changes/unreleased/Fixed-20260223-144735.yaml create mode 100644 src/Bundle/ChillMainBundle/migrations/Version20260223134919.php diff --git a/.changes/unreleased/Fixed-20260223-144735.yaml b/.changes/unreleased/Fixed-20260223-144735.yaml new file mode 100644 index 000000000..d20a8b4de --- /dev/null +++ b/.changes/unreleased/Fixed-20260223-144735.yaml @@ -0,0 +1,8 @@ +kind: Fixed +body: | + Fix: some postal code appears in the UI, although they are marked as deleted +time: 2026-02-23T14:47:35.925109983+01:00 +custom: + Issue: "499" + MR: "963" + SchemaChange: No schema change diff --git a/src/Bundle/ChillMainBundle/Controller/PostalCodeAPIController.php b/src/Bundle/ChillMainBundle/Controller/PostalCodeAPIController.php index cd13ad455..4ca82053d 100644 --- a/src/Bundle/ChillMainBundle/Controller/PostalCodeAPIController.php +++ b/src/Bundle/ChillMainBundle/Controller/PostalCodeAPIController.php @@ -79,5 +79,7 @@ final class PostalCodeAPIController extends ApiController $qb->andWhere('e.origin = :zero') ->setParameter('zero', 0); + + $qb->andWhere('e.deletedAt IS NULL'); } } diff --git a/src/Bundle/ChillMainBundle/Repository/PostalCodeRepository.php b/src/Bundle/ChillMainBundle/Repository/PostalCodeRepository.php index 0779ea90a..b26b5bed2 100644 --- a/src/Bundle/ChillMainBundle/Repository/PostalCodeRepository.php +++ b/src/Bundle/ChillMainBundle/Repository/PostalCodeRepository.php @@ -100,7 +100,9 @@ final readonly class PostalCodeRepository implements PostalCodeRepositoryInterfa $query ->setFromClause('chill_main_postal_code cmpc') - ->andWhereClause('cmpc.origin = 0'); + ->andWhereClause('cmpc.origin = 0') + ->andWhereClause('cmpc.deletedAt IS NULL') + ; if (null !== $country) { $query->andWhereClause('cmpc.country_id = ?', [$country->getId()]); diff --git a/src/Bundle/ChillMainBundle/migrations/Version20260223134919.php b/src/Bundle/ChillMainBundle/migrations/Version20260223134919.php new file mode 100644 index 000000000..170519940 --- /dev/null +++ b/src/Bundle/ChillMainBundle/migrations/Version20260223134919.php @@ -0,0 +1,41 @@ +addSql('DROP INDEX public.search_name_code'); + $this->addSql('CREATE INDEX search_name_code ON public.chill_main_postal_code USING GIN (LOWER(code) gin_trgm_ops, LOWER(label) gin_trgm_ops) WHERE deletedAt IS NULL'); + $this->addSql('DROP INDEX public.chill_internal_postal_code_canonicalized'); + $this->addSql('CREATE INDEX chill_internal_postal_code_canonicalized ON chill_main_postal_code USING GIST (canonical gist_trgm_ops) WHERE origin = 0 AND deletedAt IS NULL'); + + } + + public function down(Schema $schema): void + { + $this->addSql('DROP INDEX public.search_name_code'); + $this->addSql('CREATE INDEX search_name_code ON chill_main_postal_code USING GIN (LOWER(code) gin_trgm_ops, LOWER(label) gin_trgm_ops)'); + + $this->addSql('DROP INDEX public.chill_internal_postal_code_canonicalized'); + $this->addSql('CREATE INDEX chill_internal_postal_code_canonicalized ON chill_main_postal_code USING GIST (canonical gist_trgm_ops) WHERE origin = 0'); + } +} From bf56b3cc65baa0c431fe24ca2005d32e51cf9fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 23 Feb 2026 14:24:53 +0000 Subject: [PATCH 09/13] =?UTF-8?q?Resolve=20"T=C3=A9l=C3=A9chargement=20des?= =?UTF-8?q?=20documents=20d'un=20workflow:=20limiter=20=C3=A0=2030=20t?= =?UTF-8?q?=C3=A9l=C3=A9chargements=20plut=C3=B4t=20que=20100"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changes/unreleased/Feature-20260223-151808.yaml | 7 +++++++ .../Controller/WorkflowViewSendPublicController.php | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 .changes/unreleased/Feature-20260223-151808.yaml diff --git a/.changes/unreleased/Feature-20260223-151808.yaml b/.changes/unreleased/Feature-20260223-151808.yaml new file mode 100644 index 000000000..2d134c8af --- /dev/null +++ b/.changes/unreleased/Feature-20260223-151808.yaml @@ -0,0 +1,7 @@ +kind: Feature +body: Limit the number of public download of stored object to 30 downloads +time: 2026-02-23T15:18:08.688011924+01:00 +custom: + Issue: "500" + MR: "964" + SchemaChange: No schema change diff --git a/src/Bundle/ChillMainBundle/Controller/WorkflowViewSendPublicController.php b/src/Bundle/ChillMainBundle/Controller/WorkflowViewSendPublicController.php index 9cd4fd6f7..1a005c4c7 100644 --- a/src/Bundle/ChillMainBundle/Controller/WorkflowViewSendPublicController.php +++ b/src/Bundle/ChillMainBundle/Controller/WorkflowViewSendPublicController.php @@ -62,15 +62,15 @@ final readonly class WorkflowViewSendPublicController ); } - if (100 < $workflowSend->getViews()->count()) { - $this->chillLogger->info(self::LOG_PREFIX.'100 view reached, not allowed to see it again'); - throw new AccessDeniedHttpException('100 views reached, not allowed to see it again'); + if (30 < $workflowSend->getViews()->count()) { + $this->chillLogger->info(self::LOG_PREFIX.'30 view reached, not allowed to see it again'); + throw new AccessDeniedHttpException('30 views reached, not allowed to see it again'); } try { $metadata = new EntityWorkflowViewMetadataDTO( $workflowSend->getViews()->count(), - 100 - $workflowSend->getViews()->count(), + 30 - $workflowSend->getViews()->count(), ); $response = new Response( $this->entityWorkflowManager->renderPublicView($workflowSend, $metadata), From 22049558da867336a26d881c8d2bbfb1538e4f46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 23 Feb 2026 14:50:14 +0000 Subject: [PATCH 10/13] =?UTF-8?q?Resolve=20"Depr=C3=A9ciation=20dans=20le?= =?UTF-8?q?=20paquet=20de=20transformation=20markdown"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changes/unreleased/Fixed-20260223-154405.yaml | 7 +++++++ .../Templating/ChillMarkdownRenderExtension.php | 2 +- .../Tests/Templating/ChillMarkdownRenderExtensionTest.php | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 .changes/unreleased/Fixed-20260223-154405.yaml diff --git a/.changes/unreleased/Fixed-20260223-154405.yaml b/.changes/unreleased/Fixed-20260223-154405.yaml new file mode 100644 index 000000000..9e089c807 --- /dev/null +++ b/.changes/unreleased/Fixed-20260223-154405.yaml @@ -0,0 +1,7 @@ +kind: Fixed +body: Fix deprecation in the markdown rendering +time: 2026-02-23T15:44:05.800494138+01:00 +custom: + Issue: "501" + MR: "966" + SchemaChange: No schema change diff --git a/src/Bundle/ChillMainBundle/Templating/ChillMarkdownRenderExtension.php b/src/Bundle/ChillMainBundle/Templating/ChillMarkdownRenderExtension.php index 54c9c4f63..3f227b6d6 100644 --- a/src/Bundle/ChillMainBundle/Templating/ChillMarkdownRenderExtension.php +++ b/src/Bundle/ChillMainBundle/Templating/ChillMarkdownRenderExtension.php @@ -41,6 +41,6 @@ final class ChillMarkdownRenderExtension extends AbstractExtension public function renderMarkdownToHtml(?string $var): string { - return $this->parsedown->parse((string) $var); + return $this->parsedown->text((string) $var); } } diff --git a/src/Bundle/ChillMainBundle/Tests/Templating/ChillMarkdownRenderExtensionTest.php b/src/Bundle/ChillMainBundle/Tests/Templating/ChillMarkdownRenderExtensionTest.php index d4eb8afa8..3dbd7fd3b 100644 --- a/src/Bundle/ChillMainBundle/Tests/Templating/ChillMarkdownRenderExtensionTest.php +++ b/src/Bundle/ChillMainBundle/Tests/Templating/ChillMarkdownRenderExtensionTest.php @@ -37,7 +37,7 @@ final class ChillMarkdownRenderExtensionTest extends TestCase MD; private const UNAUTHORIZED_HTML = <<<'HTML' -

<script>alert("ok");</script>

+

<script>alert("ok");</script>

HTML; private const UNAUTHORIZED_MARKDOWN = <<<'MD' From 69bb7026c9f55a757447c39235675d3d5a149e82 Mon Sep 17 00:00:00 2001 From: Boris Waaub Date: Mon, 23 Feb 2026 15:08:48 +0000 Subject: [PATCH 11/13] =?UTF-8?q?Resolve=20"Titre=20'Toute=20la=20journ?= =?UTF-8?q?=C3=A9e'=20tronqu=C3=A9=20sur=20la=20page=20Mes=20Rendez-vous"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changes/unreleased/Fixed-20260223-155645.yaml | 8 ++++++++ .../Resources/public/vuejs/MyCalendarRange/App2.vue | 1 + 2 files changed, 9 insertions(+) create mode 100644 .changes/unreleased/Fixed-20260223-155645.yaml diff --git a/.changes/unreleased/Fixed-20260223-155645.yaml b/.changes/unreleased/Fixed-20260223-155645.yaml new file mode 100644 index 000000000..7d9b8fccc --- /dev/null +++ b/.changes/unreleased/Fixed-20260223-155645.yaml @@ -0,0 +1,8 @@ +kind: Fixed +body: | + - Remove unused all-day slot display +time: 2026-02-23T15:56:45.517079+01:00 +custom: + Issue: "494" + MR: "965" + SchemaChange: No schema change diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue index 40c3200b9..952ab748f 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App2.vue @@ -346,6 +346,7 @@ const baseOptions = ref({ center: "title", right: "timeGridWeek,timeGridDay", }, + allDaySlot: false, }); const ranges = computed(() => { From dc3a585e5bd1b55f7d1c96e122928e41ec272a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 23 Feb 2026 15:49:39 +0000 Subject: [PATCH 12/13] Remove unused method `sendNotificationEmailsToAddressesEmails` from `NotificationMailer` --- .../unreleased/Feature-20260223-164835.yaml | 7 +++ .../Notification/Email/NotificationMailer.php | 44 +++---------------- ...il_non_system_notification_content.md.twig | 19 ++++---- ...l_non_system_notification_content.txt.twig | 14 ++++++ ...stem_notification_content_to_email.md.twig | 20 --------- ...email_notification_comment_persist.md.twig | 12 +++-- ...mail_notification_comment_persist.txt.twig | 14 ++++++ 7 files changed, 54 insertions(+), 76 deletions(-) create mode 100644 .changes/unreleased/Feature-20260223-164835.yaml create mode 100644 src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content.txt.twig delete mode 100644 src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content_to_email.md.twig create mode 100644 src/Bundle/ChillMainBundle/Resources/views/Notification/email_notification_comment_persist.txt.twig diff --git a/.changes/unreleased/Feature-20260223-164835.yaml b/.changes/unreleased/Feature-20260223-164835.yaml new file mode 100644 index 000000000..07ffcc676 --- /dev/null +++ b/.changes/unreleased/Feature-20260223-164835.yaml @@ -0,0 +1,7 @@ +kind: Feature +body: Send email related to notification in both html and txt format, and render quote correctly +time: 2026-02-23T16:48:35.48244838+01:00 +custom: + Issue: "495" + MR: "967" + SchemaChange: No schema change diff --git a/src/Bundle/ChillMainBundle/Notification/Email/NotificationMailer.php b/src/Bundle/ChillMainBundle/Notification/Email/NotificationMailer.php index 1cb64ff4a..237cb178b 100644 --- a/src/Bundle/ChillMainBundle/Notification/Email/NotificationMailer.php +++ b/src/Bundle/ChillMainBundle/Notification/Email/NotificationMailer.php @@ -59,7 +59,8 @@ readonly class NotificationMailer $email ->to($dest->getEmail()) ->subject('Re: '.$comment->getNotification()->getTitle()) - ->textTemplate('@ChillMain/Notification/email_notification_comment_persist.md.twig') + ->textTemplate('@ChillMain/Notification/email_notification_comment_persist.txt.twig') + ->htmlTemplate('@ChillMain/Notification/email_notification_comment_persist.md.twig') ->context([ 'comment' => $comment, 'dest' => $dest, @@ -83,7 +84,6 @@ readonly class NotificationMailer public function postPersistNotification(Notification $notification, PostPersistEventArgs $eventArgs): void { $this->sendNotificationEmailsToAddressees($notification); - $this->sendNotificationEmailsToAddressesEmails($notification); } private function sendNotificationEmailsToAddressees(Notification $notification): void @@ -149,7 +149,8 @@ readonly class NotificationMailer } else { $email = new TemplatedEmail(); $email - ->textTemplate('@ChillMain/Notification/email_non_system_notification_content.md.twig') + ->textTemplate('@ChillMain/Notification/email_non_system_notification_content.txt.twig') + ->htmlTemplate('@ChillMain/Notification/email_non_system_notification_content.md.twig') ->context([ 'notification' => $notification, 'dest' => $addressee, @@ -186,7 +187,8 @@ readonly class NotificationMailer } else { $email = new TemplatedEmail(); $email - ->textTemplate('@ChillMain/Notification/email_non_system_notification_content.md.twig') + ->textTemplate('@ChillMain/Notification/email_non_system_notification_content.txt.twig') + ->htmlTemplate('@ChillMain/Notification/email_non_system_notification_content.md.twig') ->context([ 'notification' => $notification, 'dest' => $addressee, @@ -286,38 +288,4 @@ readonly class NotificationMailer throw $e; } } - - private function sendNotificationEmailsToAddressesEmails(Notification $notification): void - { - foreach ($notification->getAddresseeUserGroups() as $userGroup) { - - if (!$userGroup->hasEmail()) { - continue; - } - - $emailAddress = $userGroup->getEmail(); - - $email = new TemplatedEmail(); - $email - ->textTemplate('@ChillMain/Notification/email_non_system_notification_content_to_email.md.twig') - ->context([ - 'notification' => $notification, - 'dest' => $emailAddress, - ]); - - $email - ->subject($notification->getTitle()) - ->to($emailAddress); - - try { - $this->mailer->send($email); - } catch (TransportExceptionInterface $e) { - $this->logger->warning('[NotificationMailer] could not send an email notification', [ - 'to' => $emailAddress, - 'error_message' => $e->getMessage(), - 'error_trace' => $e->getTraceAsString(), - ]); - } - } - } } diff --git a/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content.md.twig b/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content.md.twig index 023f2901a..5c07e2ef7 100644 --- a/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content.md.twig +++ b/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content.md.twig @@ -1,20 +1,17 @@ +{% apply markdown_to_html %} {{ dest.label }}, {{ notification.sender.label }} a créé une notification pour vous: -> {{ notification.title }} -> -> -{%- for line in notification.message|split("\n") %} +**Titre de la notification**: {{ notification.title }} + +{% for line in notification.message|split("\n") %} > {{ line }} -{%- if not loop.last %} -> -{%- endif %} -{%- endfor %} +{% endfor %} -Vous pouvez visualiser la notification et y répondre ici: +[Vous pouvez visualiser la notification et y répondre ici.]({{ absolute_url(path('chill_main_notification_show', {'_locale': dest.locale, 'id': notification.id }, false)) }}) -{{ absolute_url(path('chill_main_notification_show', {'_locale': dest.locale, 'id': notification.id }, false)) }} +----- --- Le logiciel Chill +{% endapply %} diff --git a/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content.txt.twig b/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content.txt.twig new file mode 100644 index 000000000..58f138322 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content.txt.twig @@ -0,0 +1,14 @@ +{{ dest.label }}, + +{{ notification.sender.label }} a créé une notification pour vous: + +Titre de la notification: {{ notification.title }} + +{% for line in notification.message|split("\n") %} +> {{ line|raw }} +{% endfor %} + +Vous pouvez visualiser la notification et y répondre ici: {{ absolute_url(path('chill_main_notification_show', {'_locale': dest.locale, 'id': notification.id }, false)) }}. + +-- +Le logiciel Chill diff --git a/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content_to_email.md.twig b/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content_to_email.md.twig deleted file mode 100644 index 9a32f0c15..000000000 --- a/src/Bundle/ChillMainBundle/Resources/views/Notification/email_non_system_notification_content_to_email.md.twig +++ /dev/null @@ -1,20 +0,0 @@ -{{ dest }}, - -{{ notification.sender.label }} a créé une notification pour vous: - -> {{ notification.title }} -> -> -{%- for line in notification.message|split("\n") %} -> {{ line }} -{%- if not loop.last %} -> -{%- endif %} -{%- endfor %} - -Vous pouvez cliquer sur ce lien pour obtenir un accès permanent à la notification: - -{{ absolute_url(path('chill_main_notification_grant_access_by_access_key', {'_locale': 'fr', 'id': notification.id, 'accessKey': notification.accessKey, 'email': dest})) }} - --- -Le logiciel Chill diff --git a/src/Bundle/ChillMainBundle/Resources/views/Notification/email_notification_comment_persist.md.twig b/src/Bundle/ChillMainBundle/Resources/views/Notification/email_notification_comment_persist.md.twig index e7e212492..176484d9f 100644 --- a/src/Bundle/ChillMainBundle/Resources/views/Notification/email_notification_comment_persist.md.twig +++ b/src/Bundle/ChillMainBundle/Resources/views/Notification/email_notification_comment_persist.md.twig @@ -1,3 +1,4 @@ +{% apply markdown_to_html %} {{ dest.label }}, {{ comment.createdBy.label }} a créé un commentaire sur la notification "{{ comment.notification.title }}". @@ -6,14 +7,11 @@ Commentaire: {% for line in comment.content|split("\n") %} > {{ line }} -{%- if not loop.last %} -> -{%- endif %} -{%- endfor %} +{% endfor %} -Vous pouvez visualiser la notification et y répondre ici: +[Vous pouvez visualiser la notification et y répondre ici.]({{ absolute_url(path('chill_main_notification_show', {'_locale': dest.locale, 'id': comment.notification.id }, false)) }}) -{{ absolute_url(path('chill_main_notification_show', {'_locale': dest.locale, 'id': comment.notification.id }, false)) }} +---- --- Le logiciel Chill +{% endapply %} diff --git a/src/Bundle/ChillMainBundle/Resources/views/Notification/email_notification_comment_persist.txt.twig b/src/Bundle/ChillMainBundle/Resources/views/Notification/email_notification_comment_persist.txt.twig new file mode 100644 index 000000000..952c38662 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/views/Notification/email_notification_comment_persist.txt.twig @@ -0,0 +1,14 @@ +{{ dest.label }}, + +{{ comment.createdBy.label }} a créé un commentaire sur la notification "{{ comment.notification.title }}". + +Commentaire: + +{% for line in comment.content|split("\n") %} +> {{ line }} +{%- endfor %} + +Vous pouvez visualiser la notification et y répondre ici: {{ absolute_url(path('chill_main_notification_show', {'_locale': dest.locale, 'id': comment.notification.id }, false)) }} + +-- +Le logiciel Chill From 966f9f7e33dd0f33902cdaaab8d047dfb6c3f033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 23 Feb 2026 17:13:24 +0100 Subject: [PATCH 13/13] Release v4.13.0 --- .changes/unreleased/DX-20260210-161202.yaml | 7 ------- .changes/unreleased/Feature-20260223-151808.yaml | 7 ------- .changes/unreleased/Feature-20260223-164835.yaml | 7 ------- .changes/unreleased/Fixed-20260210-141731.yaml | 6 ------ .changes/unreleased/Fixed-20260210-155209.yaml | 7 ------- .changes/unreleased/Fixed-20260217-140838.yaml | 7 ------- .changes/unreleased/Fixed-20260223-144735.yaml | 8 -------- .changes/unreleased/Fixed-20260223-154405.yaml | 7 ------- .changes/unreleased/Fixed-20260223-155645.yaml | 8 -------- .changes/v4.13.0.md | 15 +++++++++++++++ CHANGELOG.md | 16 ++++++++++++++++ 11 files changed, 31 insertions(+), 64 deletions(-) delete mode 100644 .changes/unreleased/DX-20260210-161202.yaml delete mode 100644 .changes/unreleased/Feature-20260223-151808.yaml delete mode 100644 .changes/unreleased/Feature-20260223-164835.yaml delete mode 100644 .changes/unreleased/Fixed-20260210-141731.yaml delete mode 100644 .changes/unreleased/Fixed-20260210-155209.yaml delete mode 100644 .changes/unreleased/Fixed-20260217-140838.yaml delete mode 100644 .changes/unreleased/Fixed-20260223-144735.yaml delete mode 100644 .changes/unreleased/Fixed-20260223-154405.yaml delete mode 100644 .changes/unreleased/Fixed-20260223-155645.yaml create mode 100644 .changes/v4.13.0.md diff --git a/.changes/unreleased/DX-20260210-161202.yaml b/.changes/unreleased/DX-20260210-161202.yaml deleted file mode 100644 index 43843456f..000000000 --- a/.changes/unreleased/DX-20260210-161202.yaml +++ /dev/null @@ -1,7 +0,0 @@ -kind: DX -body: Configure changie to ask for merge request number for a better tracking of changes -time: 2026-02-10T16:12:02.400722306+01:00 -custom: - Issue: "" - MR: "960" - SchemaChange: No schema change diff --git a/.changes/unreleased/Feature-20260223-151808.yaml b/.changes/unreleased/Feature-20260223-151808.yaml deleted file mode 100644 index 2d134c8af..000000000 --- a/.changes/unreleased/Feature-20260223-151808.yaml +++ /dev/null @@ -1,7 +0,0 @@ -kind: Feature -body: Limit the number of public download of stored object to 30 downloads -time: 2026-02-23T15:18:08.688011924+01:00 -custom: - Issue: "500" - MR: "964" - SchemaChange: No schema change diff --git a/.changes/unreleased/Feature-20260223-164835.yaml b/.changes/unreleased/Feature-20260223-164835.yaml deleted file mode 100644 index 07ffcc676..000000000 --- a/.changes/unreleased/Feature-20260223-164835.yaml +++ /dev/null @@ -1,7 +0,0 @@ -kind: Feature -body: Send email related to notification in both html and txt format, and render quote correctly -time: 2026-02-23T16:48:35.48244838+01:00 -custom: - Issue: "495" - MR: "967" - SchemaChange: No schema change diff --git a/.changes/unreleased/Fixed-20260210-141731.yaml b/.changes/unreleased/Fixed-20260210-141731.yaml deleted file mode 100644 index 013080c9f..000000000 --- a/.changes/unreleased/Fixed-20260210-141731.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: Fixed -body: Change wrong color of submit button "Désigner comme adresse du parcours" -time: 2026-02-10T14:17:31.926008236+01:00 -custom: - Issue: "438" - SchemaChange: No schema change diff --git a/.changes/unreleased/Fixed-20260210-155209.yaml b/.changes/unreleased/Fixed-20260210-155209.yaml deleted file mode 100644 index 1047a9334..000000000 --- a/.changes/unreleased/Fixed-20260210-155209.yaml +++ /dev/null @@ -1,7 +0,0 @@ -kind: Fixed -body: For giving edit permissions on documents, take into account the workflow creator -time: 2026-02-10T15:52:09.785649121+01:00 -custom: - Issue: "498" - MR: "" - SchemaChange: No schema change diff --git a/.changes/unreleased/Fixed-20260217-140838.yaml b/.changes/unreleased/Fixed-20260217-140838.yaml deleted file mode 100644 index d6b3d20be..000000000 --- a/.changes/unreleased/Fixed-20260217-140838.yaml +++ /dev/null @@ -1,7 +0,0 @@ -kind: Fixed -body: 'Fixed mispelling of address in translations: addresse -> adresse' -time: 2026-02-17T14:08:38.82625052+01:00 -custom: - Issue: "" - MR: "" - SchemaChange: No schema change diff --git a/.changes/unreleased/Fixed-20260223-144735.yaml b/.changes/unreleased/Fixed-20260223-144735.yaml deleted file mode 100644 index d20a8b4de..000000000 --- a/.changes/unreleased/Fixed-20260223-144735.yaml +++ /dev/null @@ -1,8 +0,0 @@ -kind: Fixed -body: | - Fix: some postal code appears in the UI, although they are marked as deleted -time: 2026-02-23T14:47:35.925109983+01:00 -custom: - Issue: "499" - MR: "963" - SchemaChange: No schema change diff --git a/.changes/unreleased/Fixed-20260223-154405.yaml b/.changes/unreleased/Fixed-20260223-154405.yaml deleted file mode 100644 index 9e089c807..000000000 --- a/.changes/unreleased/Fixed-20260223-154405.yaml +++ /dev/null @@ -1,7 +0,0 @@ -kind: Fixed -body: Fix deprecation in the markdown rendering -time: 2026-02-23T15:44:05.800494138+01:00 -custom: - Issue: "501" - MR: "966" - SchemaChange: No schema change diff --git a/.changes/unreleased/Fixed-20260223-155645.yaml b/.changes/unreleased/Fixed-20260223-155645.yaml deleted file mode 100644 index 7d9b8fccc..000000000 --- a/.changes/unreleased/Fixed-20260223-155645.yaml +++ /dev/null @@ -1,8 +0,0 @@ -kind: Fixed -body: | - - Remove unused all-day slot display -time: 2026-02-23T15:56:45.517079+01:00 -custom: - Issue: "494" - MR: "965" - SchemaChange: No schema change diff --git a/.changes/v4.13.0.md b/.changes/v4.13.0.md new file mode 100644 index 000000000..cb92860e2 --- /dev/null +++ b/.changes/v4.13.0.md @@ -0,0 +1,15 @@ +## v4.13.0 - 2026-02-23 +### Feature +* ([#500](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/500)) ([!964](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/964)) Limit the number of public download of stored object to 30 downloads +* ([#495](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/495)) ([!967](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/967)) Send email related to notification in both html and txt format, and render quote correctly + +### Fixed +* ([#438](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/438)) Change wrong color of submit button "Désigner comme adresse du parcours" +* ([#498](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/498)) For giving edit permissions on documents, take into account the workflow creator +* Fixed mispelling of address in translations: addresse -> adresse +* ([#499](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/499)) ([!963](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/963)) Fix: some postal code appears in the UI, although they are marked as deleted +* ([#501](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/501)) ([!966](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/966)) Fix deprecation in the markdown rendering +* ([#494](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/494)) ([!965](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/965)) Remove unused all-day slot display + +### DX +* ([!960](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/960)) Configure changie to ask for merge request number for a better tracking of changes diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f93dc783..6fd8931fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,22 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). +## v4.13.0 - 2026-02-23 +### Feature +* ([#500](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/500)) ([!964](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/964)) Limit the number of public download of stored object to 30 downloads +* ([#495](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/495)) ([!967](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/967)) Send email related to notification in both html and txt format, and render quote correctly + +### Fixed +* ([#438](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/438)) Change wrong color of submit button "Désigner comme adresse du parcours" +* ([#498](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/498)) For giving edit permissions on documents, take into account the workflow creator +* Fixed mispelling of address in translations: addresse -> adresse +* ([#499](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/499)) ([!963](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/963)) Fix: some postal code appears in the UI, although they are marked as deleted +* ([#501](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/501)) ([!966](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/966)) Fix deprecation in the markdown rendering +* ([#494](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/494)) ([!965](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/965)) Remove unused all-day slot display + +### DX +* ([!960](https://gitlab.com/Chill-Projet/chill-bundles/-/merge_requests/960)) Configure changie to ask for merge request number for a better tracking of changes + ## v4.12.1 - 2026-02-01 ### Fixed * ([#496](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/496)) Add the option to deal with duplicate address in BAN adress importer