diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e718317c..ff3792145 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to * [on-the-fly] close modal only after validation * [person] correct thirdparty PATCH url + add email and altnames in AddPerson and serializer (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/433) * change order for accompanying course work list +* [parcours]: Mes parcours brouillon added to user menu (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/440) * [Documents]: List view adapted to display more information (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/414) * [person]: style fix in parcours listing per person. (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/432) * [household]: display address of current household (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/415) diff --git a/src/Bundle/ChillPersonBundle/Controller/UserAccompanyingPeriodController.php b/src/Bundle/ChillPersonBundle/Controller/UserAccompanyingPeriodController.php index bd95d06db..51c8a32c0 100644 --- a/src/Bundle/ChillPersonBundle/Controller/UserAccompanyingPeriodController.php +++ b/src/Bundle/ChillPersonBundle/Controller/UserAccompanyingPeriodController.php @@ -34,10 +34,10 @@ class UserAccompanyingPeriodController extends AbstractController */ public function listAction(Request $request) { - $total = $this->accompanyingPeriodRepository->countBy(['user' => $this->getUser()]); + $total = $this->accompanyingPeriodRepository->countBy(['user' => $this->getUser(), 'step' => ['CONFIRMED', 'CLOSED']]); $pagination = $this->paginatorFactory->create($total); $accompanyingPeriods = $this->accompanyingPeriodRepository->findBy( - ['user' => $this->getUser()], + ['user' => $this->getUser(), 'step' => ['CONFIRMED', 'CLOSED']], ['openingDate' => 'DESC'], $pagination->getItemsPerPage(), $pagination->getCurrentPageFirstItemNumber() @@ -48,4 +48,24 @@ class UserAccompanyingPeriodController extends AbstractController 'pagination' => $pagination, ]); } + + /** + * @Route("/{_locale}/accompanying-periods/drafts", name="chill_person_accompanying_period_draft_user") + */ + public function listDraftsAction(Request $request) + { + $total = $this->accompanyingPeriodRepository->countBy(['user' => $this->getUser(), 'step' => 'DRAFT']); + $pagination = $this->paginatorFactory->create($total); + $accompanyingPeriods = $this->accompanyingPeriodRepository->findBy( + ['createdBy' => $this->getUser(), 'step' => 'DRAFT'], + ['id' => 'DESC'], + $pagination->getItemsPerPage(), + $pagination->getCurrentPageFirstItemNumber() + ); + + return $this->render('@ChillPerson/AccompanyingPeriod/user_draft_periods_list.html.twig', [ + 'accompanyingPeriods' => $accompanyingPeriods, + 'pagination' => $pagination, + ]); + } } diff --git a/src/Bundle/ChillPersonBundle/Menu/UserMenuBuilder.php b/src/Bundle/ChillPersonBundle/Menu/UserMenuBuilder.php index 0a9d2a31c..d390c9993 100644 --- a/src/Bundle/ChillPersonBundle/Menu/UserMenuBuilder.php +++ b/src/Bundle/ChillPersonBundle/Menu/UserMenuBuilder.php @@ -44,6 +44,13 @@ class UserMenuBuilder implements LocalMenuBuilderInterface 'order' => 20, 'icon' => 'tasks', ]); + $menu->addChild('My accompanying periods in draft', [ + 'route' => 'chill_person_accompanying_period_draft_user', + ]) + ->setExtras([ + 'order' => 30, + 'icon' => 'tasks', + ]); } } diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list_item.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list_item.html.twig index 72e635f7d..11517def2 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list_item.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/_list_item.html.twig @@ -26,9 +26,9 @@
- {% if period.closingDate == null %} + {% if period.closingDate == null and period.step != 'DRAFT' %} {{ 'accompanying_period.dates_from_%opening_date%'|trans({ '%opening_date%': period.openingDate|format_date('long') } ) }} - {% else %} + {% elseif period.closingDate != null %} {{ 'accompanying_period.dates_from_%opening_date%_to_%closing_date%'|trans({ '%opening_date%': period.openingDate|format_date('long'), '%closing_date%': period.closingDate|format_date('long')} @@ -55,65 +55,67 @@
-
-
- {% if period.requestorPerson is not null or period.requestorThirdParty is not null %} -
-

{{ 'Requestor'|trans({'gender': null }) }}

-
- {% if period.requestorPerson is not null %} - - {% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with { - action: 'show', displayBadge: true, - targetEntity: { name: 'person', id: period.requestorPerson.id }, - buttonText: period.requestorPerson|chill_entity_render_string, - isDead: period.requestorPerson.deathdate is not null - } %} - - {% endif %} - {% if period.requestorThirdParty is not null %} - - {% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with { - action: 'show', displayBadge: true, - targetEntity: { name: 'thirdparty', id: period.requestorThirdParty.id }, - buttonText: period.requestorThirdParty|chill_entity_render_string - } %} - - {% endif %} + {% if period.requestor is not null or period.participations.count > 0 or period.socialIssues.count > 0%} +
+
+ {% if period.requestorPerson is not null or period.requestorThirdParty is not null %} +
+

{{ 'Requestor'|trans({'gender': null }) }}

+
+ {% if period.requestorPerson is not null %} + + {% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with { + action: 'show', displayBadge: true, + targetEntity: { name: 'person', id: period.requestorPerson.id }, + buttonText: period.requestorPerson|chill_entity_render_string, + isDead: period.requestorPerson.deathdate is not null + } %} + + {% endif %} + {% if period.requestorThirdParty is not null %} + + {% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with { + action: 'show', displayBadge: true, + targetEntity: { name: 'thirdparty', id: period.requestorThirdParty.id }, + buttonText: period.requestorThirdParty|chill_entity_render_string + } %} + + {% endif %} +
-
- {% endif %} - {% if period.participations.count > 0 %} -
-

{{ 'Participants'|trans }}

-
- {% for p in period.getCurrentParticipations %} - - {% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with { - action: 'show', displayBadge: true, - targetEntity: { name: 'person', id: p.person.id }, - buttonText: p.person|chill_entity_render_string, - isDead: p.person.deathdate is not null - } %} - - {% endfor %} + {% endif %} + {% if period.participations.count > 0 %} +
+

{{ 'Participants'|trans }}

+
+ {% for p in period.getCurrentParticipations %} + + {% include '@ChillMain/OnTheFly/_insert_vue_onthefly.html.twig' with { + action: 'show', displayBadge: true, + targetEntity: { name: 'person', id: p.person.id }, + buttonText: p.person|chill_entity_render_string, + isDead: p.person.deathdate is not null + } %} + + {% endfor %} +
-
- {% endif %} - {% if period.socialIssues.count > 0 %} -
-

{{ 'Social issues'|trans }}

-
- {% for si in period.socialIssues %} -

- {{ si|chill_entity_render_box }} -

- {% endfor %} + {% endif %} + {% if period.socialIssues.count > 0 %} +
+

{{ 'Social issues'|trans }}

+
+ {% for si in period.socialIssues %} +

+ {{ si|chill_entity_render_box }} +

+ {% endfor %} +
-
- {% endif %} + {% endif %} +
-
+ {% endif %}
{% set notif_counter = chill_count_notifications('Chill\\PersonBundle\\Entity\\AccompanyingPeriod', period.id) %} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/user_draft_periods_list.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/user_draft_periods_list.html.twig new file mode 100644 index 000000000..33317d51d --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/user_draft_periods_list.html.twig @@ -0,0 +1,32 @@ +{% extends "@ChillMain/layout.html.twig" %} + +{% set activeRouteKey = 'chill_person_accompanying_period_user_list' %} + +{% block title %}{{ 'My accompanying periods in draft'|trans }}{% endblock title %} + +{% macro recordAction(period) %} +
  • + +
  • +{% endmacro %} + + +{% block content %} + +
    +

    {{ 'My accompanying periods in draft'|trans }}

    + +
    + {% for period in accompanyingPeriods %} + {% include '@ChillPerson/AccompanyingPeriod/_list_item.html.twig' with {'period': period, 'recordAction': _self.recordAction(period)} %} + {% else %} +

    {{ 'Any accompanying period'|trans }}

    + {% endfor %} +
    + + {{ chill_pagination(pagination) }} + +
    + +{% endblock %} diff --git a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml index 60cf842af..2c796c163 100644 --- a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml @@ -179,6 +179,7 @@ An accompanying period is open: Une période d'accompagnement est ouverte Accompanying period list: Périodes d'accompagnement Accompanying period list for person: Périodes d'accompagnement de la personne Accompanying period: Parcours d'accompagnement +Any accompanying period: Aucun parcours d'accompagnement period: Parcours New accompanying course: Nouveau parcours d'accompagnement Choose a motive: Motif de fermeture @@ -566,3 +567,4 @@ Linked evaluations: Évaluations associées # Accompanying period per user My accompanying periods: Mes parcours +My accompanying periods in draft: Mes parcours brouillons