mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
[admin][templates] move job/scope history in an unique template and display history for a given user
This commit is contained in:
parent
b4e5618e00
commit
c526973475
@ -1,29 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Chill\MainBundle\Controller;
|
|
||||||
|
|
||||||
use Chill\MainBundle\CRUD\Controller\CRUDController;
|
|
||||||
use Chill\MainBundle\Pagination\PaginatorInterface;
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
|
||||||
|
|
||||||
class UserJobHistoryController extends CRUDController
|
|
||||||
{
|
|
||||||
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator)
|
|
||||||
{
|
|
||||||
$query
|
|
||||||
->addOrderBy('e.startDate', 'DESC')
|
|
||||||
->addOrderBy('e.user', 'ASC')
|
|
||||||
;
|
|
||||||
|
|
||||||
return parent::orderQuery($action, $query, $request, $paginator);
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Chill\MainBundle\Controller;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Entity\User;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
use Twig\Environment;
|
||||||
|
|
||||||
|
class UserJobScopeHistoriesController extends AbstractController
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
private readonly Environment $engine,
|
||||||
|
) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Route("/{_locale}/admin/main/user/{id}/job-scope-history", name="admin_user_job_scope_history")
|
||||||
|
*/
|
||||||
|
public function indexAction(User $user): Response
|
||||||
|
{
|
||||||
|
$jobHistories = $user->getUserJobHistories();
|
||||||
|
$scopeHistories = $user->getMainScopeHistories();
|
||||||
|
|
||||||
|
|
||||||
|
return new Response(
|
||||||
|
$this->engine->render('@ChillMain/User/history.html.twig', [
|
||||||
|
'user' => $user,
|
||||||
|
'jobHistories' => $jobHistories,
|
||||||
|
'scopeHistories' => $scopeHistories,
|
||||||
|
]
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
@ -1,29 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Chill\MainBundle\Controller;
|
|
||||||
|
|
||||||
use Chill\MainBundle\CRUD\Controller\CRUDController;
|
|
||||||
use Chill\MainBundle\Pagination\PaginatorInterface;
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
|
||||||
|
|
||||||
class UserScopeHistoryController extends CRUDController
|
|
||||||
{
|
|
||||||
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator)
|
|
||||||
{
|
|
||||||
$query
|
|
||||||
->addOrderBy('e.startDate', 'DESC')
|
|
||||||
->addOrderBy('e.user', 'ASC')
|
|
||||||
;
|
|
||||||
|
|
||||||
return parent::orderQuery($action, $query, $request, $paginator);
|
|
||||||
}
|
|
||||||
}
|
|
@ -375,32 +375,6 @@ class ChillMainExtension extends Extension implements
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
[
|
|
||||||
'class' => UserJobHistory::class,
|
|
||||||
'controller' => UserJobHistoryController::class,
|
|
||||||
'name' => 'admin_user_job_history',
|
|
||||||
'base_path' => '/admin/main/user-job-history',
|
|
||||||
'base_role' => 'ROLE_ADMIN',
|
|
||||||
'actions' => [
|
|
||||||
'index' => [
|
|
||||||
'role' => 'ROLE_ADMIN',
|
|
||||||
'template' => '@ChillMain/UserJob/history.html.twig',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'class' => UserScopeHistory::class,
|
|
||||||
'controller' => UserScopeHistoryController::class,
|
|
||||||
'name' => 'admin_user_scope_history',
|
|
||||||
'base_path' => '/admin/main/user-scope-history',
|
|
||||||
'base_role' => 'ROLE_ADMIN',
|
|
||||||
'actions' => [
|
|
||||||
'index' => [
|
|
||||||
'role' => 'ROLE_ADMIN',
|
|
||||||
'template' => '@ChillMain/Scope/history.html.twig',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
[
|
[
|
||||||
'class' => User::class,
|
'class' => User::class,
|
||||||
'controller' => UserController::class,
|
'controller' => UserController::class,
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
|
|
||||||
|
|
||||||
{% block admin_content %}
|
|
||||||
{% embed '@ChillMain/CRUD/_index.html.twig' %}
|
|
||||||
|
|
||||||
{% block table_entities_thead_tr %}
|
|
||||||
<th>{{ 'crud.admin_user_scope_history.index.start'|trans }}</th>
|
|
||||||
<th>{{ 'crud.admin_user_scope_history.index.end'|trans }}</th>
|
|
||||||
<th>{{ 'crud.admin_user_scope_history.index.user'|trans }}</th>
|
|
||||||
<th>{{ 'crud.admin_user_scope_history.index.scope'|trans }}</th>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block table_entities_tbody %}
|
|
||||||
{% for entity in entities %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ entity.startDate|format_datetime('medium') }}</td>
|
|
||||||
<td>
|
|
||||||
{% if entity.endDate is not null %}
|
|
||||||
{{ entity.endDate|format_datetime('medium') }}
|
|
||||||
{% else %}
|
|
||||||
<i class="opacity-50">{{ "crud.admin_user_scope_history.index.today"|trans }}</i>
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td>{{ entity.user.usernameCanonical }}</td>
|
|
||||||
<td>
|
|
||||||
{% if entity.scope %}
|
|
||||||
{{ entity.scope.name|localize_translatable_string }}
|
|
||||||
{% else %}
|
|
||||||
<i class="opacity-50">{{ 'crud.admin_user_scope_history.index.undefined'|trans }}</i>
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block actions_before %}
|
|
||||||
<li class='cancel'>
|
|
||||||
<a href="{{ path('chill_main_admin_central') }}" class="btn btn-cancel">{{'Back to the admin'|trans }}</a>
|
|
||||||
</li>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block list_actions %}
|
|
||||||
<ul class="record_actions sticky-form-buttons">
|
|
||||||
<li class='cancel'>
|
|
||||||
<a href="{{ path('admin_scope') }}" class="btn btn-cancel">{{'crud.admin_user_scope_history.Back to user scope'|trans }}</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
{% endblock %}
|
|
||||||
{% endembed %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
@ -48,9 +48,6 @@
|
|||||||
<li class='cancel'>
|
<li class='cancel'>
|
||||||
<a href="{{ path('chill_main_admin_central') }}" class="btn btn-cancel">{{'Back to the admin'|trans}}</a>
|
<a href="{{ path('chill_main_admin_central') }}" class="btn btn-cancel">{{'Back to the admin'|trans}}</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<a href="{{ path('chill_crud_admin_user_scope_history_index') }}" class="btn btn-show">{{ 'crud.admin_user_scope_history.Show scope history'|trans }}</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ path('admin_scope_new') }}" class="btn btn-create">{{ 'Create a new circle'|trans }}</a>
|
<a href="{{ path('admin_scope_new') }}" class="btn btn-create">{{ 'Create a new circle'|trans }}</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
|
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
|
||||||
|
|
||||||
{% block admin_content -%}
|
{% block admin_content -%}
|
||||||
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
|
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
|
||||||
|
|
||||||
{% block crud_content_after_form %}
|
{% block crud_content_after_form %}
|
||||||
{% if access_permissions_group_list %}
|
{% if access_permissions_group_list %}
|
||||||
<h2 class="mt-5">{{ 'Permissions granted'|trans }}</h2>
|
<h2 class="mt-5">{{ 'Permissions granted'|trans }}</h2>
|
||||||
@ -54,5 +55,14 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content_form_actions_save_and_show %}{% endblock %}
|
{% block content_form_actions_save_and_show %}{% endblock %}
|
||||||
|
|
||||||
|
{% block content_form_actions_view %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ path('admin_user_job_scope_history', {id: entity.id}) }}" class="btn btn-show">
|
||||||
|
{{ 'admin.users.job_scope_histories.Show history'|trans }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% endembed %}
|
{% endembed %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -0,0 +1,81 @@
|
|||||||
|
{% extends '@ChillMain/Admin/layoutWithVerticalMenu.html.twig' %}
|
||||||
|
|
||||||
|
{% block title %}{{ 'admin.users.job_scope_histories.index.histories'|trans }}{% endblock title %}
|
||||||
|
|
||||||
|
{% block admin_content %}
|
||||||
|
<h2>{{ user.usernameCanonical }}</h2>
|
||||||
|
<h1>{{ 'admin.users.job_scope_histories.index.histories'|trans }}</h1>
|
||||||
|
|
||||||
|
<h3 class="mt-5">{{ 'admin.users.job_scope_histories.index.job_history.title'|trans }}</h3>
|
||||||
|
<table class="records_list table table-bordered border-dark">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="w-25">{{ 'admin.users.job_scope_histories.index.job_history.start'|trans }}</th>
|
||||||
|
<th class="w-25">{{ 'admin.users.job_scope_histories.index.job_history.end'|trans }}</th>
|
||||||
|
<th>{{ 'admin.users.job_scope_histories.index.job_history.job'|trans }}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for entity in jobHistories|reverse %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ entity.startDate|format_datetime('medium') }}</td>
|
||||||
|
<td>
|
||||||
|
{% if entity.endDate is not null %}
|
||||||
|
{{ entity.endDate|format_datetime('medium') }}
|
||||||
|
{% else %}
|
||||||
|
<i class="opacity-50">{{ "admin.users.job_scope_histories.index.job_history.today"|trans }}</i>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if entity.job %}
|
||||||
|
{{ entity.job.label|localize_translatable_string }}
|
||||||
|
{% else %}
|
||||||
|
<i class="opacity-50">{{ 'admin.users.job_scope_histories.index.job_history.undefined'|trans }}</i>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3 class="mt-5">{{ 'admin.users.job_scope_histories.index.scope_history.title'|trans }}</h3>
|
||||||
|
<table class="records_list table table-bordered border-dark">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="w-25">{{ 'admin.users.job_scope_histories.index.scope_history.start'|trans }}</th>
|
||||||
|
<th class="w-25">{{ 'admin.users.job_scope_histories.index.scope_history.end'|trans }}</th>
|
||||||
|
<th>{{ 'admin.users.job_scope_histories.index.scope_history.scope'|trans }}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for entity in scopeHistories|reverse %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ entity.startDate|format_datetime('medium') }}</td>
|
||||||
|
<td>
|
||||||
|
{% if entity.endDate is not null %}
|
||||||
|
{{ entity.endDate|format_datetime('medium') }}
|
||||||
|
{% else %}
|
||||||
|
<i class="opacity-50">{{ "admin.users.job_scope_histories.index.scope_history.today"|trans }}</i>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if entity.scope %}
|
||||||
|
{{ entity.scope.name|localize_translatable_string }}
|
||||||
|
{% else %}
|
||||||
|
<i class="opacity-50">{{ 'admin.users.job_scope_histories.index.scope_history.undefined'|trans }}</i>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<ul class="record_actions sticky-form-buttons">
|
||||||
|
<li class='cancel'>
|
||||||
|
<a href="{{ path('chill_crud_admin_user_edit', {id: user.id}) }}" class="btn btn-cancel">
|
||||||
|
{{'admin.users.job_scope_histories.index.Back to user job'|trans }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{% endblock %}
|
@ -1,51 +0,0 @@
|
|||||||
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
|
|
||||||
|
|
||||||
{% block admin_content %}
|
|
||||||
{% embed '@ChillMain/CRUD/_index.html.twig' %}
|
|
||||||
|
|
||||||
{% block table_entities_thead_tr %}
|
|
||||||
<th>{{ 'crud.admin_user_job_history.index.start'|trans }}</th>
|
|
||||||
<th>{{ 'crud.admin_user_job_history.index.end'|trans }}</th>
|
|
||||||
<th>{{ 'crud.admin_user_job_history.index.user'|trans }}</th>
|
|
||||||
<th>{{ 'crud.admin_user_job_history.index.job'|trans }}</th>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block table_entities_tbody %}
|
|
||||||
{% for entity in entities %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ entity.startDate|format_datetime('medium') }}</td>
|
|
||||||
<td>
|
|
||||||
{% if entity.endDate is not null %}
|
|
||||||
{{ entity.endDate|format_datetime('medium') }}
|
|
||||||
{% else %}
|
|
||||||
<i class="opacity-50">{{ "crud.admin_user_job_history.index.today"|trans }}</i>
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td>{{ entity.user.usernameCanonical }}</td>
|
|
||||||
<td>
|
|
||||||
{% if entity.job %}
|
|
||||||
{{ entity.job.label|localize_translatable_string }}
|
|
||||||
{% else %}
|
|
||||||
<i class="opacity-50">{{ 'crud.admin_user_job_history.index.undefined'|trans }}</i>
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block actions_before %}
|
|
||||||
<li class='cancel'>
|
|
||||||
<a href="{{ path('chill_main_admin_central') }}" class="btn btn-cancel">{{'Back to the admin'|trans }}</a>
|
|
||||||
</li>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block list_actions %}
|
|
||||||
<ul class="record_actions sticky-form-buttons">
|
|
||||||
<li class='cancel'>
|
|
||||||
<a href="{{ path('chill_crud_admin_user_job_index') }}" class="btn btn-cancel">{{'crud.admin_user_job_history.Back to user job'|trans }}</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
{% endblock %}
|
|
||||||
{% endembed %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
@ -37,9 +37,6 @@
|
|||||||
<li class='cancel'>
|
<li class='cancel'>
|
||||||
<a href="{{ path('chill_main_admin_central') }}" class="btn btn-cancel">{{'Back to the admin'|trans }}</a>
|
<a href="{{ path('chill_main_admin_central') }}" class="btn btn-cancel">{{'Back to the admin'|trans }}</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<a href="{{ path('chill_crud_admin_user_job_history_index') }}" class="btn btn-show">{{ 'crud.admin_user_job_history.Show job history'|trans }}</a>
|
|
||||||
</li>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% endembed %}
|
{% endembed %}
|
||||||
|
@ -389,28 +389,6 @@ crud:
|
|||||||
add_new: Créer
|
add_new: Créer
|
||||||
title_new: Nouveau métier
|
title_new: Nouveau métier
|
||||||
title_edit: Modifier un métier
|
title_edit: Modifier un métier
|
||||||
admin_user_job_history:
|
|
||||||
index:
|
|
||||||
title: Historique des métiers
|
|
||||||
start: Du
|
|
||||||
end: Jusque
|
|
||||||
today: en cours
|
|
||||||
undefined: non défini
|
|
||||||
user: Utilisateur
|
|
||||||
job: Métier
|
|
||||||
Show job history: Voir l'historique
|
|
||||||
Back to user job: Revenir aux métiers
|
|
||||||
admin_user_scope_history:
|
|
||||||
index:
|
|
||||||
title: Historique des cercles
|
|
||||||
start: Du
|
|
||||||
end: Jusque
|
|
||||||
today: en cours
|
|
||||||
undefined: non défini
|
|
||||||
user: Utilisateur
|
|
||||||
scope: Cercle
|
|
||||||
Show scope history: Voir l'historique
|
|
||||||
Back to user scope: Revenir aux cercles
|
|
||||||
main_location_type:
|
main_location_type:
|
||||||
index:
|
index:
|
||||||
title: Liste des types de localisations
|
title: Liste des types de localisations
|
||||||
@ -673,3 +651,24 @@ admin:
|
|||||||
center_name: Centre
|
center_name: Centre
|
||||||
permissionsGroup_id: Identifiant du groupe de permissions
|
permissionsGroup_id: Identifiant du groupe de permissions
|
||||||
permissionsGroup_name: Groupe de permissions
|
permissionsGroup_name: Groupe de permissions
|
||||||
|
job_scope_histories:
|
||||||
|
Show history: Voir l'historique
|
||||||
|
index:
|
||||||
|
histories: Historique des services et des métiers
|
||||||
|
Back to user job: Revenir à l'utilisateur
|
||||||
|
job_history:
|
||||||
|
title: Historique des métiers
|
||||||
|
start: Du
|
||||||
|
end: Jusque
|
||||||
|
today: en cours
|
||||||
|
undefined: non défini
|
||||||
|
user: Utilisateur
|
||||||
|
job: Métier
|
||||||
|
scope_history:
|
||||||
|
title: Historique des services
|
||||||
|
start: Du
|
||||||
|
end: Jusque
|
||||||
|
today: en cours
|
||||||
|
undefined: non défini
|
||||||
|
user: Utilisateur
|
||||||
|
scope: Service
|
||||||
|
@ -36,7 +36,17 @@ use Symfony\Contracts\Translation\TranslatorInterface;
|
|||||||
|
|
||||||
class HouseholdCompositionController extends AbstractController
|
class HouseholdCompositionController extends AbstractController
|
||||||
{
|
{
|
||||||
public function __construct(private readonly Security $security, private readonly HouseholdCompositionRepository $householdCompositionRepository, private readonly HouseholdRepository $householdRepository, private readonly PaginatorFactory $paginatorFactory, private readonly FormFactoryInterface $formFactory, private readonly EntityManagerInterface $entityManager, private readonly TranslatorInterface $translator, private readonly \Twig\Environment $engine, private readonly UrlGeneratorInterface $urlGenerator) {}
|
public function __construct(
|
||||||
|
private readonly Security $security,
|
||||||
|
private readonly HouseholdCompositionRepository $householdCompositionRepository,
|
||||||
|
private readonly HouseholdRepository $householdRepository,
|
||||||
|
private readonly PaginatorFactory $paginatorFactory,
|
||||||
|
private readonly FormFactoryInterface $formFactory,
|
||||||
|
private readonly EntityManagerInterface $entityManager,
|
||||||
|
private readonly TranslatorInterface $translator,
|
||||||
|
private readonly \Twig\Environment $engine,
|
||||||
|
private readonly UrlGeneratorInterface $urlGenerator
|
||||||
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{_locale}/person/household/{household_id}/composition/{composition_id}/delete", name="chill_person_household_composition_delete")
|
* @Route("/{_locale}/person/household/{household_id}/composition/{composition_id}/delete", name="chill_person_household_composition_delete")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user