diff --git a/CHANGELOG.md b/CHANGELOG.md
index e315bb85c..edd7fbc91 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,23 +11,40 @@ and this project adheres to
## Unreleased
+[fast_actions] improve fast-actions buttons override mechanism, fix https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/413
+[homepage widget] add vue homepage_widget with asynchone loading, give a global view resume of the user concerned actions, notifications, etc.
+* [person] accompanying course: optimisation: do not fetch some resources for the banner (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/409)
+* [person] accompanying course: close modal when edit participation (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/420)
+* [person] accompanying course: treat validation error when editing on-the-fly entities (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/420)
+* [activity] show activity attendee (présence) in the activity list (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/412)
+* [activity] admin: change validation rule for social action visible field (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/413)
+* [parcours]: component added to change the opening date of a parcours (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/411)
+* [search]: listing of parcours display changed (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/410)
+* [user]: page with accompanying periods to which is user is referent (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/408)
+* [person] age added to renderstring + renderbox/ vue component created to display person text (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/389)
+* [household member editor] allow to push to existing household
+* [workflow][notification] improve how notifications and workflows are 'attached' to entities: contextual list, counter, buttons and vue modal
+
+
+## Test releases
+
+### test release 2021-01-28
+
* [person] improve filiations vis graph: disable physics, use chill colors for persons-households-course, increase label of relations, remove labels on household arrows and other improvements (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/286, https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/362)
* [activity] Order activity by date and by id (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/364)
* [main] increase length of 4 Address fields (change to TEXT, no size limits) (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/277)
* [main] Add confidential option for address, in edit and view (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/165)
* [person] name suggestions within create person form when person is created departing from a search input (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/377)
-* [workflow][notification] improve how notifications and workflows are 'attached' to entities: contextual list, counter, buttons and vue modal
+* [person] Add residential address entity, form and list for each person
+* [aside_activity]: dynamicUserPickerType used (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/399)
+* dispatching list
-## Test releases
### test release 2021-01-26
* [parcours] comments truncated if too long + link added (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/406)
* [person]: possibility to add person resources (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/382)
* [person ressources]: module added
-* [parcours] bugfix if deathdate is not defined (eg. for a thirdparty) parcours is still displayed. Gave error before.
-* dispatching list
-
### test release 2022-01-24
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index d996ff3b8..20970a799 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -80,11 +80,6 @@ parameters:
count: 1
path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php
- -
- message: "#^Foreach overwrites \\$action with its value variable\\.$#"
- count: 1
- path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
-
-
message: "#^Foreach overwrites \\$action with its value variable\\.$#"
count: 1
diff --git a/phpstan-critical.neon b/phpstan-critical.neon
index b214654bf..632356aa6 100644
--- a/phpstan-critical.neon
+++ b/phpstan-critical.neon
@@ -30,36 +30,6 @@ parameters:
count: 2
path: src/Bundle/ChillPersonBundle/Household/MembersEditorFactory.php
- -
- message: "#^Parameter \\$action of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkRepository\\:\\:buildQueryBySocialActionWithDescendants\\(\\) has invalid type Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\SocialAction\\.$#"
- count: 1
- path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
-
- -
- message: "#^Parameter \\$action of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkRepository\\:\\:countBySocialActionWithDescendants\\(\\) has invalid type Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\SocialAction\\.$#"
- count: 1
- path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
-
- -
- message: "#^Undefined variable\\: \\$action$#"
- count: 1
- path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
-
- -
- message: "#^Undefined variable\\: \\$limit$#"
- count: 1
- path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
-
- -
- message: "#^Undefined variable\\: \\$offset$#"
- count: 1
- path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
-
- -
- message: "#^Undefined variable\\: \\$orderBy$#"
- count: 1
- path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
-
-
message: "#^Variable variables are not allowed\\.$#"
count: 4
diff --git a/phpstan-types.neon b/phpstan-types.neon
index 949ff774a..2cc55255a 100644
--- a/phpstan-types.neon
+++ b/phpstan-types.neon
@@ -400,11 +400,6 @@ parameters:
count: 1
path: src/Bundle/ChillPersonBundle/Form/Type/PersonPhoneType.php
- -
- message: "#^Method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkRepository\\:\\:buildQueryBySocialActionWithDescendants\\(\\) has invalid return type Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\QueryBuilder\\.$#"
- count: 1
- path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php
-
-
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
count: 3
diff --git a/src/Bundle/ChillActivityBundle/Entity/ActivityType.php b/src/Bundle/ChillActivityBundle/Entity/ActivityType.php
index c7448e07d..94f732a89 100644
--- a/src/Bundle/ChillActivityBundle/Entity/ActivityType.php
+++ b/src/Bundle/ChillActivityBundle/Entity/ActivityType.php
@@ -16,6 +16,7 @@ use InvalidArgumentException;
use Symfony\Component\Serializer\Annotation as Serializer;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
+use Symfony\Component\Validator\Context\ExecutionContextInterface;
/**
* Class ActivityType.
@@ -193,7 +194,6 @@ class ActivityType
/**
* @ORM\Column(type="smallint", nullable=false, options={"default": 1})
- * @Assert\EqualTo(propertyPath="socialIssuesVisible", message="This parameter must be equal to social issue parameter")
*/
private int $socialActionsVisible = self::FIELD_INVISIBLE;
@@ -263,6 +263,23 @@ class ActivityType
*/
private int $userVisible = self::FIELD_REQUIRED;
+ /**
+ * @Assert\Callback
+ *
+ * @param mixed $payload
+ */
+ public function checkSocialActionsVisibility(ExecutionContextInterface $context, $payload)
+ {
+ if ($this->socialIssuesVisible !== $this->socialActionsVisible) {
+ if (!($this->socialIssuesVisible === 2 && $this->socialActionsVisible === 1)) {
+ $context
+ ->buildViolation('The socialActionsVisible value is not compatible with the socialIssuesVisible value')
+ ->atPath('socialActionsVisible')
+ ->addViolation();
+ }
+ }
+ }
+
/**
* Get active
* return true if the type is active.
diff --git a/src/Bundle/ChillActivityBundle/Resources/public/chill/chillactivity.scss b/src/Bundle/ChillActivityBundle/Resources/public/chill/chillactivity.scss
index 8b88f0e78..5c1c83d06 100644
--- a/src/Bundle/ChillActivityBundle/Resources/public/chill/chillactivity.scss
+++ b/src/Bundle/ChillActivityBundle/Resources/public/chill/chillactivity.scss
@@ -34,6 +34,8 @@ p.date-label {
font-size: 18pt;
}
div.dashboard,
+h4.badge-title,
+h3.badge-title,
h2.badge-title {
ul.list-content {
font-size: 70%;
diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue
index f5057eb25..45483dc95 100644
--- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue
+++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue
@@ -1,45 +1,48 @@
-
+
-
{{ 'Participants'|trans ~ ' : ' }}
{% for p in w.persons %}
- {{ p|chill_entity_render_box }}
+ {{ p|chill_entity_render_box({'addAgeBadge': true}) }}
{% endfor %}
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/user_periods_list.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/user_periods_list.html.twig
new file mode 100644
index 000000000..d30997bac
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/user_periods_list.html.twig
@@ -0,0 +1,30 @@
+{% extends "@ChillMain/layout.html.twig" %}
+
+{% set activeRouteKey = 'chill_person_accompanying_period_user_list' %}
+
+{% block title %}{{ 'My accompanying periods'|trans }}{% endblock title %}
+
+{% macro recordAction(period) %}
+
+
+
+{% endmacro %}
+
+
+{% block content %}
+
+
+
{{ 'My accompanying periods'|trans }}
+
+
+ {% for period in accompanyingPeriods %}
+ {% include '@ChillPerson/AccompanyingPeriod/_list_item.html.twig' with {'period': period, 'recordAction': _self.recordAction(period)} %}
+ {% endfor %}
+
\ 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 a273277f9..820da9179 100644
--- a/src/Bundle/ChillPersonBundle/Resources/views/PersonResource/list.html.twig
+++ b/src/Bundle/ChillPersonBundle/Resources/views/PersonResource/list.html.twig
@@ -84,6 +84,8 @@
{{ 'There are no available resources'|trans }}
{% endif %}
+
{{ 'Add a person resource'|trans }}
+
{% include "@ChillPerson/PersonResource/create.html.twig" %}
{% endblock %}
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/ResidentialAddress/_form.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/ResidentialAddress/_form.html.twig
new file mode 100644
index 000000000..22add892d
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Resources/views/ResidentialAddress/_form.html.twig
@@ -0,0 +1,37 @@
+
+
+{{ form_start(form) }}
+
+{{ form_row(form.startDate) }}
+{{ form_row(form.endDate) }}
+
+{% if form.hostPerson is defined %}
+ {{ form_row(form.hostPerson) }}
+{% endif %}
+
+{% if form.hostThirdParty is defined %}
+ {{ form_row(form.hostThirdParty) }}
+{% endif %}
+
+{% if form.address is defined %}
+ {{ form_row(form.address) }}
+
+ {% block js %}
+ {{ encore_entry_script_tags('mod_input_address') }}
+ {% endblock %}
+
+ {% block css %}
+ {{ encore_entry_link_tags('mod_input_address') }}
+ {% endblock %}
+{% endif %}
+
+{{ form_row(form.comment) }}
+
+
+
+
+
+
+
+
+{{ form_end(form) }}
\ No newline at end of file
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/ResidentialAddress/delete.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/ResidentialAddress/delete.html.twig
new file mode 100644
index 000000000..3171af58d
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Resources/views/ResidentialAddress/delete.html.twig
@@ -0,0 +1,58 @@
+{% extends "@ChillPerson/Person/layout.html.twig" %}
+
+{% set activeRouteKey = '' %}
+
+{% block title %}{{ 'Delete residential address'|trans }}{% endblock %}
+
+{% block personcontent %}
+