mes parcours page created

This commit is contained in:
Julie Lenaerts 2022-01-27 11:42:14 +01:00
parent 3fd4c6339a
commit b9c2d63a53
5 changed files with 145 additions and 0 deletions

View File

@ -0,0 +1,41 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\PersonBundle\Controller;
use Chill\PersonBundle\Repository\AccompanyingPeriodRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
class UserAccompanyingPeriodController extends AbstractController
{
private AccompanyingPeriodRepository $accompanyingPeriodRepository;
public function __construct(AccompanyingPeriodRepository $accompanyingPeriodRepository)
{
$this->accompanyingPeriodRepository = $accompanyingPeriodRepository;
}
public function listAction(Request $request)
{
$userId = $this->getUser()->getId();
$accompanyingPeriods = [];
$accompanyingPeriods = $this->accompanyingPeriodRepository->findBy(['user' => $userId]);
return $this->render('@ChillPerson/AccompanyingPeriod/user_periods_list.html.twig', [
'accompanyingPeriods' => $accompanyingPeriods
]);
}
}

View File

@ -0,0 +1,72 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\PersonBundle\Menu;
use Chill\MainBundle\Routing\LocalMenuBuilderInterface;
use Chill\TaskBundle\Templating\UI\CountNotificationTask;
use Knp\Menu\MenuItem;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Component\Translation\TranslatorInterface;
class UserMenuBuilder implements LocalMenuBuilderInterface
{
/**
* @var AuthorizationCheckerInterface
*/
public $authorizationChecker;
/**
* @var CountNotificationTask
*/
public $counter;
/**
* @var TokenStorageInterface
*/
public $tokenStorage;
/**
* @var TranslatorInterface
*/
public $translator;
public function __construct(
CountNotificationTask $counter,
TokenStorageInterface $tokenStorage,
TranslatorInterface $translator,
AuthorizationCheckerInterface $authorizationChecker
) {
$this->counter = $counter;
$this->tokenStorage = $tokenStorage;
$this->translator = $translator;
$this->authorizationChecker = $authorizationChecker;
}
public function buildMenu($menuId, MenuItem $menu, array $parameters)
{
if ($this->authorizationChecker->isGranted('ROLE_USER')) {
$menu->addChild('My accompanying periods', [
'route' => 'chill_person_accompanying_period_user',
])
->setExtras([
'order' => 20,
'icon' => 'tasks',
]);
}
}
public static function getMenuIds(): array
{
return ['user'];
}
}

View File

@ -0,0 +1,25 @@
{% extends "@ChillMain/layout.html.twig" %}
{% set activeRouteKey = 'chill_person_accompanying_period_user_list' %}
{% block title %}{{ 'Accompanying period list'|trans }}{% endblock title %}
{% macro recordAction(period) %}
<li>
<a href="{{ path('chill_person_accompanying_course_index', { 'accompanying_period_id': period.id }) }}"
class="btn btn-show" title="{{ 'See accompanying period'|trans }}"></a>
</li>
{% endmacro %}
{% block content %}
<h1>{{ 'Accompanying period list'|trans }}</h1>
<div class="flex-table accompanyingcourse-list">
{% for period in accompanyingPeriods %}
{% include '@ChillPerson/AccompanyingPeriod/_list_item.html.twig' with {'period': period, 'recordAction': _self.recordAction(period)} %}
{% endfor %}
</div>
{% endblock %}

View File

@ -55,6 +55,10 @@ chill_person_accompanying_period_re_open:
path: /{_locale}/person/{person_id}/accompanying-period/{period_id}/re-open
controller: Chill\PersonBundle\Controller\AccompanyingPeriodController::reOpenAction
chill_person_accompanying_period_user:
path: /{_locale}/accompanying-periods
controller: Chill\PersonBundle\Controller\UserAccompanyingPeriodController::listAction
chill_person_resource_list:
path: /{_locale}/person/{person_id}/resources/list
controller: Chill\PersonBundle\Controller\PersonResourceController::listAction

View File

@ -533,3 +533,6 @@ household_composition:
# docgen
Linked evaluations: Évaluations associées
# Accompanying period per user
My accompanying periods: Mes parcours