diff --git a/CHANGELOG.md b/CHANGELOG.md
index 885af7493..8fe60496a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,11 +11,14 @@ and this project adheres to
## Unreleased
-
* [person] AccompanyingCourseWorkEdit: fix deleting evaluation documents (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/546)
* [person] AccompanyingCourseWorkEdit: download existing documents (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/512)
* [person] AccompanyingCourseWorkEdit: replace document by a new one (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/511)
-
+* [person] AccompanyingPeriodWork: add referrers to work, add doctrine event listener to add logged user to referrers collection and display a referrers list in work list (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/502)
+* [person] AccompanyingPeriodWorkEvaluation: fix circular reference when serialising (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/495)
+* [person] order accompanying period by opening date in search persons, person and household period lists (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/493)
+* [parcours] autosave of the pinned comment for draft accompanying course (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/477)
+* [main] filter user job in undispatch acc period to assign (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/472)
* [main] filter user job in undispatch acc period to assign (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/472)
* [person] Add url in accompanying period work evaluations entity and form (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/476)
* [person] Add document generation in admin and in person/{id}/document (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/464)
@@ -35,13 +38,21 @@ and this project adheres to
* [confidential] Fix position of toggle button so it does not cover text nor fall outside of box (no issue)
* [parcours] Fix edit of both thirdparty and contact name (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/474)
* [template] do not list inactive templates (for doc generator)
+* [household] bugfix if position of member is null, renderbox no longer throws an error (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/480)
* [parcours] location cannot be removed if linked to a user (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/478)
* [person] email added to twig personRenderbox (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/490)
* [person] Add link to current household in person banner (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/484)
+* [address] person badge in address history changed to open OnTheFly with all person info (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/489)
* [person] Change 'personne' with 'usager' and '&' with 'ET' (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/499)
* [thirdparty] Add parameter condition to display centers or not (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/500)
* [phonenumber] Remove placeholder in phonenumber field (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/496)
+* [person_resource] separate create page created to avoid confusion (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/504)
* [contact] add contact button color changed plus the pipe at the side removed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/506)
+* [household] create-edit household composition placed in separate page to avoid confusion (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/505)
+* [blur] Improved positioning of toggle icon (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/486)
+* [parcours] List of parcours for a specific user so they can be reassigned in case of absence (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/509)
+* [thirdparty] Thirdparty view page, english text translated (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/534)
+* [social_action] Translation changed in evaluation section (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/512)
## Test releases
diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/listPerson.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/listPerson.html.twig
index ac4266f8c..8b30bc6c7 100644
--- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/listPerson.html.twig
+++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/listPerson.html.twig
@@ -46,7 +46,7 @@
{% include 'ChillActivityBundle:Activity:list.html.twig' with {'context': 'person'} %}
- {% if is_granted('CHILL_ACTIVITY_CREATE', person) %}
+ {% if is_granted('CHILL_ACTIVITY_CREATE_PERSON', person) %}
@@ -12,28 +12,24 @@
diff --git a/src/Bundle/ChillMainBundle/Resources/views/Entity/address.html.twig b/src/Bundle/ChillMainBundle/Resources/views/Entity/address.html.twig
index 54a0b86b7..3dfc27d2f 100644
--- a/src/Bundle/ChillMainBundle/Resources/views/Entity/address.html.twig
+++ b/src/Bundle/ChillMainBundle/Resources/views/Entity/address.html.twig
@@ -59,7 +59,7 @@
must be shown in such list
#}
{%- if render == 'list' -%}
-
+
+ {{ form_end(form) }}
+
+ {% if form.user.vars.value is empty %}
+
{{ 'period_by_user_list.Pick a user'|trans }}
+ {% elseif periods|length == 0 and form.user.vars.value is not empty %}
+
{{ 'period_by_user_list.Any course or no authorization to see them'|trans }}
+
+ {% else %}
+
{{ paginator.totalItems }} parcours à réassigner (calculé ce jour à {{ null|format_time('medium') }})
+
+
+ {% for period in periods %}
+ {% include '@ChillPerson/AccompanyingPeriod/_list_item.html.twig' with {'period': period,
+ 'recordAction': m.period_actions(period), 'itemMeta': m.period_meta(period) } %}
+ {% endfor %}
+
{% include "@ChillPerson/PersonResource/form.html.twig" %}
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/PersonResource/list.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/PersonResource/list.html.twig
index 1d480614f..48773c236 100644
--- a/src/Bundle/ChillPersonBundle/Resources/views/PersonResource/list.html.twig
+++ b/src/Bundle/ChillPersonBundle/Resources/views/PersonResource/list.html.twig
@@ -85,8 +85,14 @@
{{ 'There are no available resources'|trans }}
{% endif %}
-
{{ 'Add a person resource'|trans }}
-
-{% include "@ChillPerson/PersonResource/create.html.twig" %}
+{% if is_granted('CHILL_PERSON_UPDATE', person) %}
+
{% if a.hostThirdParty.address is not null %}
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation_document.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation_document.html.twig
index 488f31661..2e05a6648 100644
--- a/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation_document.html.twig
+++ b/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation_document.html.twig
@@ -1,5 +1,10 @@
+{%- import "@ChillDocStore/Macro/macro.html.twig" as m -%}
+
+
+
{{ doc.title }}
+
@@ -20,6 +25,24 @@
+
+
+
+ {{ 'Participants'|trans }}
+
+
+
+ {% for p in evaluation.accompanyingPeriodWork.persons %}
+ {% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with {
+ targetEntity: { name: 'person', id: p.id },
+ action: 'show',
+ displayBadge: true,
+ buttonText: p|chill_entity_render_string,
+ isDead: p.deathdate is not null
+ } %}
+ {% endfor %}
+
+
@@ -92,12 +115,19 @@
{% if display_action is defined and display_action == true %}
- {# TODO add acl #}
+ {% if is_granted('CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_UPDATE', evaluation.accompanyingPeriodWork) %}
+ {% endif %}
{% endif %}
diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php
index fc9b6003a..e8febcf5d 100644
--- a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php
+++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php
@@ -14,6 +14,7 @@ namespace Chill\PersonBundle\Serializer\Normalizer;
use Chill\MainBundle\Repository\Workflow\EntityWorkflowRepository;
use Chill\MainBundle\Workflow\Helper\MetadataExtractor;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluation;
+use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
use Symfony\Component\Serializer\Normalizer\ContextAwareNormalizerInterface;
use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface;
use Symfony\Component\Serializer\Normalizer\NormalizerAwareTrait;
@@ -46,7 +47,10 @@ class AccompanyingPeriodWorkEvaluationNormalizer implements ContextAwareNormaliz
{
$initial = $this->normalizer->normalize($object, $format, array_merge(
$context,
- [self::IGNORE_EVALUATION => spl_object_hash($object)]
+ [self::IGNORE_EVALUATION => spl_object_hash($object)],
+ [AbstractNormalizer::CIRCULAR_REFERENCE_HANDLER => static function ($object, $format, $context) {
+ return $object->getId();
+ }]
));
// due to bug: https://api-platform.com/docs/core/serialization/#collection-relation
diff --git a/src/Bundle/ChillPersonBundle/Tests/Serializer/Normalizer/HouseholdNormalizerTest.php b/src/Bundle/ChillPersonBundle/Tests/Serializer/Normalizer/HouseholdNormalizerTest.php
index ac015155b..c67e07b5e 100644
--- a/src/Bundle/ChillPersonBundle/Tests/Serializer/Normalizer/HouseholdNormalizerTest.php
+++ b/src/Bundle/ChillPersonBundle/Tests/Serializer/Normalizer/HouseholdNormalizerTest.php
@@ -16,6 +16,7 @@ use Chill\PersonBundle\Entity\Household\HouseholdMember;
use Chill\PersonBundle\Entity\Household\Position;
use Chill\PersonBundle\Entity\Person;
use DateTimeImmutable;
+use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
@@ -25,17 +26,24 @@ use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
*/
final class HouseholdNormalizerTest extends KernelTestCase
{
+ private EntityManagerInterface $entityManager;
+
private ?NormalizerInterface $normalizer;
+ private array $toDelete;
+
protected function setUp(): void
{
self::bootKernel();
$this->normalizer = self::$container->get(NormalizerInterface::class);
+ $this->entityManager = self::$container->get(EntityManagerInterface::class);
}
public function testNormalizationRecursive()
{
$person = new Person();
+ $person->setFirstName('ok')->setLastName('ok');
+ $this->entityManager->persist($person);
$member = new HouseholdMember();
$household = new Household();
$position = (new Position())
@@ -44,7 +52,8 @@ final class HouseholdNormalizerTest extends KernelTestCase
$member->setPerson($person)
->setStartDate(new DateTimeImmutable('1 year ago'))
- ->setEndDate(new DateTimeImmutable('1 month ago'));
+ ->setEndDate(new DateTimeImmutable('1 month ago'))
+ ->setPosition($position);
$household->addMember($member);
diff --git a/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php b/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php
index 1e02d0465..d7ce1ed4b 100644
--- a/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php
+++ b/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php
@@ -61,8 +61,8 @@ class AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler implements EntityW
return $this->translator->trans(
'workflow.Doc for evaluation (n°%eval%)',
['%eval%' => $entityWorkflow->getRelatedEntityId()]
- ) . ' - ' . $this->translatableStringHelper->localize($doc->getAccompanyingPeriodWorkEvaluation()
- ->getEvaluation()->getTitle());
+ ) . ' (' . $this->translatableStringHelper->localize($doc->getAccompanyingPeriodWorkEvaluation()
+ ->getEvaluation()->getTitle()) . ') ' . $doc->getTitle();
}
public function getRelatedEntity(EntityWorkflow $entityWorkflow): ?AccompanyingPeriodWorkEvaluationDocument
diff --git a/src/Bundle/ChillPersonBundle/config/routes.yaml b/src/Bundle/ChillPersonBundle/config/routes.yaml
index 13d1c1227..bec2af134 100644
--- a/src/Bundle/ChillPersonBundle/config/routes.yaml
+++ b/src/Bundle/ChillPersonBundle/config/routes.yaml
@@ -59,6 +59,10 @@ chill_person_resource_list:
path: /{_locale}/person/{person_id}/resources/list
controller: Chill\PersonBundle\Controller\PersonResourceController::listAction
+chill_person_resource_new:
+ path: /{_locale}/person/{person_id}/resources/new
+ controller: Chill\PersonBundle\Controller\PersonResourceController::newAction
+
chill_person_resource_edit:
path: /{_locale}/person/{person_id}/resources/{resource_id}/edit
controller: Chill\PersonBundle\Controller\PersonResourceController::editAction
@@ -91,11 +95,6 @@ chill_person_address_update:
chill_person_timeline:
path: /{_locale}/person/{person_id}/timeline
controller: Chill\PersonBundle\Controller\TimelinePersonController::personAction
- options:
- menus:
- person:
- order: 60
- label: Timeline
chill_person_admin:
path: "/{_locale}/admin/person"
diff --git a/src/Bundle/ChillPersonBundle/config/services/controller.yaml b/src/Bundle/ChillPersonBundle/config/services/controller.yaml
index 22d58ccbe..67c724093 100644
--- a/src/Bundle/ChillPersonBundle/config/services/controller.yaml
+++ b/src/Bundle/ChillPersonBundle/config/services/controller.yaml
@@ -41,6 +41,11 @@ services:
autowire: true
tags: ['controller.service_arguments']
+ Chill\PersonBundle\Controller\ReassignAccompanyingPeriodController:
+ autoconfigure: true
+ autowire: true
+ tags: ['controller.service_arguments']
+
Chill\PersonBundle\Controller\PersonApiController:
arguments:
$authorizationHelper: '@Chill\MainBundle\Security\Authorization\AuthorizationHelper'
diff --git a/src/Bundle/ChillPersonBundle/config/services/doctrineEventListener.yaml b/src/Bundle/ChillPersonBundle/config/services/doctrineEventListener.yaml
index f75243d02..dbf6fc16d 100644
--- a/src/Bundle/ChillPersonBundle/config/services/doctrineEventListener.yaml
+++ b/src/Bundle/ChillPersonBundle/config/services/doctrineEventListener.yaml
@@ -12,3 +12,13 @@ services:
event: 'prePersist'
entity: 'Chill\PersonBundle\Entity\PersonAltName'
method: 'prePersistAltName'
+
+ Chill\PersonBundle\EventListener\AccompanyingPeriodWorkEventListener:
+ autoconfigure: true
+ autowire: true
+ tags:
+ -
+ name: 'doctrine.orm.entity_listener'
+ event: 'prePersist'
+ entity: 'Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork'
+ method: 'prePersistAccompanyingPeriodWork'
\ No newline at end of file
diff --git a/src/Bundle/ChillPersonBundle/migrations/Version20220310063629.php b/src/Bundle/ChillPersonBundle/migrations/Version20220310063629.php
new file mode 100644
index 000000000..9e6f0c332
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/migrations/Version20220310063629.php
@@ -0,0 +1,42 @@
+addSql('DROP TABLE chill_person_accompanying_period_work_referrer');
+ }
+
+ public function getDescription(): string
+ {
+ return 'Add referrers to AccompanyingPeriodWork';
+ }
+
+ public function up(Schema $schema): void
+ {
+ $this->addSql('CREATE TABLE chill_person_accompanying_period_work_referrer (accompanyingperiodwork_id INT NOT NULL, user_id INT NOT NULL, PRIMARY KEY(accompanyingperiodwork_id, user_id))');
+ $this->addSql('CREATE INDEX IDX_3619F5EBB99F6060 ON chill_person_accompanying_period_work_referrer (accompanyingperiodwork_id)');
+ $this->addSql('CREATE INDEX IDX_3619F5EBA76ED395 ON chill_person_accompanying_period_work_referrer (user_id)');
+ $this->addSql('ALTER TABLE chill_person_accompanying_period_work_referrer ADD CONSTRAINT FK_3619F5EBB99F6060 FOREIGN KEY (accompanyingperiodwork_id) REFERENCES chill_person_accompanying_period_work (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
+ $this->addSql('ALTER TABLE chill_person_accompanying_period_work_referrer ADD CONSTRAINT FK_3619F5EBA76ED395 FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
+ $this->addSql('INSERT INTO chill_person_accompanying_period_work_referrer (accompanyingperiodwork_id, user_id)
+ SELECT id, createdby_id FROM postgres.public.chill_person_accompanying_period_work');
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/migrations/Version20220310124318.php b/src/Bundle/ChillPersonBundle/migrations/Version20220310124318.php
new file mode 100644
index 000000000..211a2e68a
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/migrations/Version20220310124318.php
@@ -0,0 +1,38 @@
+addSql('ALTER TABLE chill_person_accompanying_period DROP CONSTRAINT fk_e260a868b0804e90');
+ $this->addSql('ALTER TABLE chill_person_accompanying_period ADD CONSTRAINT fk_e260a868b0804e90 FOREIGN KEY (pinnedcomment_id) REFERENCES chill_person_accompanying_period_comment (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
+ }
+
+ public function getDescription(): string
+ {
+ return 'Change constraint on pinnedComment in Accompanying period';
+ }
+
+ public function up(Schema $schema): void
+ {
+ $this->addSql('ALTER TABLE chill_person_accompanying_period DROP CONSTRAINT FK_E260A868B0804E90');
+ $this->addSql('ALTER TABLE chill_person_accompanying_period ADD CONSTRAINT FK_E260A868B0804E90 FOREIGN KEY (pinnedComment_id) REFERENCES chill_person_accompanying_period_comment (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml
index e4265fca0..d6e739632 100644
--- a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml
+++ b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml
@@ -194,6 +194,7 @@ No accompanying user: Aucun accompagnant
No data given: Pas d'information
Participants: Personnes impliquées
Create an accompanying course: Créer un parcours
+Accompanying courses of users: Parcours des utilisateurs
This accompanying course is still a draft: Ce parcours est encore à l'état brouillon.
Associated peoples: Usagers concernés
Resources: Interlocuteurs privilégiés
@@ -213,6 +214,7 @@ No requestor: Pas de demandeur
No resources: "Pas d'interlocuteurs privilégiés"
Persons associated: Usagers concernés
Referrer: Référent
+Referrers: Référents
Some peoples does not belong to any household currently. Add them to an household soon: Certaines personnes n'appartiennent à aucun ménage actuellement. Renseignez leur ménage dès que possible.
Add to household now: Ajouter à un ménage
Any resource for this accompanying course: Aucun interlocuteur privilégié pour ce parcours
@@ -566,6 +568,7 @@ household_composition:
Currently no composition: Aucune composition familiale renseignée.
Add a composition: Ajouter une composition familiale
Update composition: Modifier la composition familiale
+ Create: Créér une nouvelle composition familiale
# docgen
Linked evaluations: Évaluations associées
@@ -576,3 +579,8 @@ My accompanying periods in draft: Mes parcours brouillons
workflow:
Doc for evaluation (n°%eval%): Document de l'évaluation n°%eval%
+
+period_by_user_list:
+ Period by user: Parcours d'accompagnement par utilisateur
+ Pick a user: Choisissez un utilisateur pour obtenir la liste de ses parcours
+ Any course or no authorization to see them: Aucun parcours pour ce référent, ou aucun droit pour visualiser les parcours de ce référent.
diff --git a/src/Bundle/ChillThirdPartyBundle/Resources/views/ThirdParty/view.html.twig b/src/Bundle/ChillThirdPartyBundle/Resources/views/ThirdParty/view.html.twig
index c4f2bcfbd..759ba5918 100644
--- a/src/Bundle/ChillThirdPartyBundle/Resources/views/ThirdParty/view.html.twig
+++ b/src/Bundle/ChillThirdPartyBundle/Resources/views/ThirdParty/view.html.twig
@@ -60,7 +60,7 @@
{% if types|length > 0 %}
{{ types|join(', ') }}
{% else %}
-
{{ 'thirdParty.Any categories' }}
+
{{ 'thirdparty.no_categories' }}
{% endif %}
@@ -110,7 +110,7 @@
{{ 'Contacts'|trans }}
{% if thirdParty.activeChildren|length == 0 %}
-
{{ 'Any contacts associated'|trans }}
+
{{ 'No contacts associated'|trans }}
{% else %}
{% for tp in thirdParty.activeChildren %}
diff --git a/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml b/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml
index 20b45a398..9c8091307 100644
--- a/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml
+++ b/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml
@@ -63,13 +63,13 @@ Show thirdparty: Voir le tiers
Add a contact: Ajouter un contact
Remove a contact: Supprimer
Contacts: Contacts
-Any contact: Aucun contact
+No contacts associated: Aucun contact
No nameCompany given: Aucune raison sociale renseignée
No acronym given: Aucun sigle renseigné
No phone given: Aucun téléphone renseigné
No email given: Aucune adresse courriel renseignée
-thirdparty.Any categories: Aucune catégorie
+thirdparty.no_categories: Aucune catégorie
The party is visible in those centers: Le tiers est visible dans ces centres
The party is not visible in any center: Le tiers n'est associé à aucun centre
diff --git a/src/Bundle/ChillWopiBundle/src/Resources/public/page/editor/index.js b/src/Bundle/ChillWopiBundle/src/Resources/public/page/editor/index.js
index 613a51d63..99b4ae707 100644
--- a/src/Bundle/ChillWopiBundle/src/Resources/public/page/editor/index.js
+++ b/src/Bundle/ChillWopiBundle/src/Resources/public/page/editor/index.js
@@ -14,7 +14,7 @@ window.addEventListener('DOMContentLoaded', function(e) {
office_frame.setAttribute('allowfullscreen', 'true');
// The sandbox attribute is needed to allow automatic redirection to the O365 sign-in page in the business user flow
- office_frame.setAttribute('sandbox', 'allow-scripts allow-same-origin allow-forms allow-popups allow-top-navigation allow-popups-to-escape-sandbox');
+ office_frame.setAttribute('sandbox', 'allow-downloads allow-scripts allow-same-origin allow-forms allow-popups allow-top-navigation allow-popups-to-escape-sandbox');
frameholder.appendChild(office_frame);
document.getElementById('office_form').submit();