mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-13 05:44:24 +00:00
Admin: Add country and languages to the admin
This commit is contained in:
parent
f917be0958
commit
4c99abd6d3
@ -24,6 +24,11 @@ class AdminController extends AbstractController
|
|||||||
return $this->render('@ChillMain/Admin/index.html.twig');
|
return $this->render('@ChillMain/Admin/index.html.twig');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function indexLanguageCountryAction()
|
||||||
|
{
|
||||||
|
return $this->render('@ChillMain/Admin/layout_language_country.html.twig');
|
||||||
|
}
|
||||||
|
|
||||||
public function indexLocationsAction()
|
public function indexLocationsAction()
|
||||||
{
|
{
|
||||||
return $this->render('@ChillMain/Admin/layout_location.html.twig');
|
return $this->render('@ChillMain/Admin/layout_location.html.twig');
|
||||||
|
27
src/Bundle/ChillMainBundle/Controller/CountryController.php
Normal file
27
src/Bundle/ChillMainBundle/Controller/CountryController.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?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\MainBundle\Controller;
|
||||||
|
|
||||||
|
use Chill\MainBundle\CRUD\Controller\CRUDController;
|
||||||
|
use Chill\MainBundle\Pagination\PaginatorInterface;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
|
class CountryController extends CRUDController
|
||||||
|
{
|
||||||
|
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator)
|
||||||
|
{
|
||||||
|
$query->addOrderBy('e.countryCode', 'ASC');
|
||||||
|
|
||||||
|
return parent::orderQuery($action, $query, $request, $paginator);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
27
src/Bundle/ChillMainBundle/Controller/LanguageController.php
Normal file
27
src/Bundle/ChillMainBundle/Controller/LanguageController.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?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\MainBundle\Controller;
|
||||||
|
|
||||||
|
use Chill\MainBundle\CRUD\Controller\CRUDController;
|
||||||
|
use Chill\MainBundle\Pagination\PaginatorInterface;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
|
class LanguageController extends CRUDController
|
||||||
|
{
|
||||||
|
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator)
|
||||||
|
{
|
||||||
|
$query->addOrderBy('e.id', 'ASC');
|
||||||
|
|
||||||
|
return parent::orderQuery($action, $query, $request, $paginator);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -13,6 +13,7 @@ namespace Chill\MainBundle\DependencyInjection;
|
|||||||
|
|
||||||
use Chill\MainBundle\Controller\AddressApiController;
|
use Chill\MainBundle\Controller\AddressApiController;
|
||||||
use Chill\MainBundle\Controller\CivilityApiController;
|
use Chill\MainBundle\Controller\CivilityApiController;
|
||||||
|
use Chill\MainBundle\Controller\CountryController;
|
||||||
use Chill\MainBundle\Controller\LocationController;
|
use Chill\MainBundle\Controller\LocationController;
|
||||||
use Chill\MainBundle\Controller\LocationTypeController;
|
use Chill\MainBundle\Controller\LocationTypeController;
|
||||||
use Chill\MainBundle\Controller\UserController;
|
use Chill\MainBundle\Controller\UserController;
|
||||||
@ -30,10 +31,14 @@ use Chill\MainBundle\Doctrine\DQL\Unaccent;
|
|||||||
use Chill\MainBundle\Doctrine\ORM\Hydration\FlatHierarchyEntityHydrator;
|
use Chill\MainBundle\Doctrine\ORM\Hydration\FlatHierarchyEntityHydrator;
|
||||||
use Chill\MainBundle\Doctrine\Type\NativeDateIntervalType;
|
use Chill\MainBundle\Doctrine\Type\NativeDateIntervalType;
|
||||||
use Chill\MainBundle\Doctrine\Type\PointType;
|
use Chill\MainBundle\Doctrine\Type\PointType;
|
||||||
|
use Chill\MainBundle\Entity\Country;
|
||||||
|
use Chill\MainBundle\Entity\Language;
|
||||||
use Chill\MainBundle\Entity\Location;
|
use Chill\MainBundle\Entity\Location;
|
||||||
use Chill\MainBundle\Entity\LocationType;
|
use Chill\MainBundle\Entity\LocationType;
|
||||||
use Chill\MainBundle\Entity\User;
|
use Chill\MainBundle\Entity\User;
|
||||||
use Chill\MainBundle\Entity\UserJob;
|
use Chill\MainBundle\Entity\UserJob;
|
||||||
|
use Chill\MainBundle\Form\CountryType;
|
||||||
|
use Chill\MainBundle\Form\LanguageType;
|
||||||
use Chill\MainBundle\Form\LocationFormType;
|
use Chill\MainBundle\Form\LocationFormType;
|
||||||
use Chill\MainBundle\Form\LocationTypeType;
|
use Chill\MainBundle\Form\LocationTypeType;
|
||||||
use Chill\MainBundle\Form\UserJobType;
|
use Chill\MainBundle\Form\UserJobType;
|
||||||
@ -348,15 +353,15 @@ class ChillMainExtension extends Extension implements
|
|||||||
'actions' => [
|
'actions' => [
|
||||||
'index' => [
|
'index' => [
|
||||||
'role' => 'ROLE_ADMIN',
|
'role' => 'ROLE_ADMIN',
|
||||||
'template' => '@ChillMain/Location/index.html.twig',
|
'template' => '@ChillMain/Admin/Location/index.html.twig',
|
||||||
],
|
],
|
||||||
'new' => [
|
'new' => [
|
||||||
'role' => 'ROLE_ADMIN',
|
'role' => 'ROLE_ADMIN',
|
||||||
'template' => '@ChillMain/Location/new.html.twig',
|
'template' => '@ChillMain/Admin/Location/new.html.twig',
|
||||||
],
|
],
|
||||||
'edit' => [
|
'edit' => [
|
||||||
'role' => 'ROLE_ADMIN',
|
'role' => 'ROLE_ADMIN',
|
||||||
'template' => '@ChillMain/Location/edit.html.twig',
|
'template' => '@ChillMain/Admin/Location/edit.html.twig',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
@ -370,15 +375,59 @@ class ChillMainExtension extends Extension implements
|
|||||||
'actions' => [
|
'actions' => [
|
||||||
'index' => [
|
'index' => [
|
||||||
'role' => 'ROLE_ADMIN',
|
'role' => 'ROLE_ADMIN',
|
||||||
'template' => '@ChillMain/LocationType/index.html.twig',
|
'template' => '@ChillMain/Admin/LocationType/index.html.twig',
|
||||||
],
|
],
|
||||||
'new' => [
|
'new' => [
|
||||||
'role' => 'ROLE_ADMIN',
|
'role' => 'ROLE_ADMIN',
|
||||||
'template' => '@ChillMain/LocationType/new.html.twig',
|
'template' => '@ChillMain/Admin/LocationType/new.html.twig',
|
||||||
],
|
],
|
||||||
'edit' => [
|
'edit' => [
|
||||||
'role' => 'ROLE_ADMIN',
|
'role' => 'ROLE_ADMIN',
|
||||||
'template' => '@ChillMain/LocationType/edit.html.twig',
|
'template' => '@ChillMain/Admin/LocationType/edit.html.twig',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => Country::class,
|
||||||
|
'name' => 'main_country',
|
||||||
|
'base_path' => '/admin/main/country',
|
||||||
|
'base_role' => 'ROLE_ADMIN',
|
||||||
|
'form_class' => CountryType::class,
|
||||||
|
'controller' => CountryController::class,
|
||||||
|
'actions' => [
|
||||||
|
'index' => [
|
||||||
|
'role' => 'ROLE_ADMIN',
|
||||||
|
'template' => '@ChillMain/Admin/Country/index.html.twig',
|
||||||
|
],
|
||||||
|
'new' => [
|
||||||
|
'role' => 'ROLE_ADMIN',
|
||||||
|
'template' => '@ChillMain/Admin/Country/edit.html.twig',
|
||||||
|
],
|
||||||
|
'edit' => [
|
||||||
|
'role' => 'ROLE_ADMIN',
|
||||||
|
'template' => '@ChillMain/Admin/Country/edit.html.twig',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => Language::class,
|
||||||
|
'name' => 'main_language',
|
||||||
|
'base_path' => '/admin/main/language',
|
||||||
|
'base_role' => 'ROLE_ADMIN',
|
||||||
|
'form_class' => LanguageType::class,
|
||||||
|
'controller' => LanguageController::class,
|
||||||
|
'actions' => [
|
||||||
|
'index' => [
|
||||||
|
'role' => 'ROLE_ADMIN',
|
||||||
|
'template' => '@ChillMain/Admin/Language/index.html.twig',
|
||||||
|
],
|
||||||
|
'new' => [
|
||||||
|
'role' => 'ROLE_ADMIN',
|
||||||
|
'template' => '@ChillMain/Admin/Language/edit.html.twig',
|
||||||
|
],
|
||||||
|
'edit' => [
|
||||||
|
'role' => 'ROLE_ADMIN',
|
||||||
|
'template' => '@ChillMain/Admin/Language/edit.html.twig',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
32
src/Bundle/ChillMainBundle/Form/CountryType.php
Normal file
32
src/Bundle/ChillMainBundle/Form/CountryType.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?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\MainBundle\Form;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Form\Type\TranslatableStringFormType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
|
|
||||||
|
class CountryType extends \Symfony\Component\Form\AbstractType
|
||||||
|
{
|
||||||
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
|
{
|
||||||
|
$builder
|
||||||
|
->add('name', TranslatableStringFormType::class, [
|
||||||
|
'label' => 'Name',
|
||||||
|
'required' => true,
|
||||||
|
])
|
||||||
|
->add('countryCode', TextType::class, [
|
||||||
|
'label' => 'Country code',
|
||||||
|
'required' => true,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
32
src/Bundle/ChillMainBundle/Form/LanguageType.php
Normal file
32
src/Bundle/ChillMainBundle/Form/LanguageType.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?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\MainBundle\Form;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Form\Type\TranslatableStringFormType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
|
|
||||||
|
class LanguageType extends \Symfony\Component\Form\AbstractType
|
||||||
|
{
|
||||||
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
|
{
|
||||||
|
$builder
|
||||||
|
->add('id', TextType::class, [
|
||||||
|
'label' => 'Id',
|
||||||
|
'required' => true,
|
||||||
|
])
|
||||||
|
->add('name', TranslatableStringFormType::class, [
|
||||||
|
'label' => 'Name',
|
||||||
|
'required' => true,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
|
||||||
|
|
||||||
|
{% block content -%}
|
||||||
|
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
|
||||||
|
{% block content_form_actions_save_and_show %}{% endblock %}
|
||||||
|
{% endembed %}
|
||||||
|
{% endblock content %}
|
@ -0,0 +1,28 @@
|
|||||||
|
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% embed '@ChillMain/CRUD/_index.html.twig' %}
|
||||||
|
{% block table_entities_thead_tr %}
|
||||||
|
<th>id</th>
|
||||||
|
<th>name</th>
|
||||||
|
<th>countryCode</th>
|
||||||
|
{% endblock %}
|
||||||
|
{% block table_entities_tbody %}
|
||||||
|
{% for entity in entities %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ entity.id }}</td>
|
||||||
|
<td>{{ entity.name|localize_translatable_string }}</td>
|
||||||
|
<td>{{ entity.countrycode }}</td>
|
||||||
|
<td>
|
||||||
|
<ul class="record_actions">
|
||||||
|
<li>
|
||||||
|
<a href="{{ chill_path_add_return_path('chill_crud_main_country_edit', { 'id': entity.id}) }}" class="btn btn-sm btn-edit btn-mini"></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
||||||
|
{% endembed %}
|
||||||
|
{% endblock content %}
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
|
||||||
|
|
||||||
|
{% block content -%}
|
||||||
|
{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
|
||||||
|
{% block content_form_actions_save_and_show %}{% endblock %}
|
||||||
|
{% endembed %}
|
||||||
|
{% endblock content %}
|
@ -0,0 +1,27 @@
|
|||||||
|
{% extends '@ChillMain/CRUD/Admin/index.html.twig' %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% embed '@ChillMain/CRUD/_index.html.twig' %}
|
||||||
|
{% block table_entities_thead_tr %}
|
||||||
|
<th>id</th>
|
||||||
|
<th>name</th>
|
||||||
|
<th> </th>
|
||||||
|
{% endblock %}
|
||||||
|
{% block table_entities_tbody %}
|
||||||
|
{% for entity in entities %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ entity.id }}</td>
|
||||||
|
<td>{{ entity.name|localize_translatable_string }}</td>
|
||||||
|
<td>
|
||||||
|
<ul class="record_actions">
|
||||||
|
<li>
|
||||||
|
<a href="{{ chill_path_add_return_path('chill_crud_main_language_edit', { 'id': entity.id}) }}" class="btn btn-sm btn-edit btn-mini"></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
||||||
|
{% endembed %}
|
||||||
|
{% endblock content %}
|
||||||
|
|
@ -0,0 +1,33 @@
|
|||||||
|
{#
|
||||||
|
* Copyright (C) 2014-2015, Champs Libres Cooperative SCRLFS,
|
||||||
|
<info@champs-libres.coop> / <http://www.champs-libres.coop>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% extends "@ChillMain/Admin/layoutWithVerticalMenu.html.twig" %}
|
||||||
|
|
||||||
|
{% block vertical_menu_content %}
|
||||||
|
{{ chill_menu('admin_language_country', {
|
||||||
|
'layout': '@ChillMain/Admin/menu_admin_language_country.html.twig',
|
||||||
|
}) }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% block layout_wvm_content %}
|
||||||
|
{% block admin_content %}
|
||||||
|
<h1>{{ 'Management of languages and countries' |trans }}</h1>
|
||||||
|
{% endblock %}
|
||||||
|
{% endblock %}
|
@ -0,0 +1,20 @@
|
|||||||
|
{#
|
||||||
|
* Copyright (C) 2014-2015, Champs Libres Cooperative SCRLFS,
|
||||||
|
<info@champs-libres.coop> / <http://www.champs-libres.coop>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% extends "@ChillMain/Menu/verticalMenu.html.twig" %}
|
||||||
|
{% block v_menu_title %}{{ 'Language and countries menu'|trans }}{% endblock %}
|
@ -223,6 +223,12 @@ none: aucun
|
|||||||
person: usager
|
person: usager
|
||||||
thirdparty: tiers
|
thirdparty: tiers
|
||||||
|
|
||||||
|
|
||||||
|
#admin section for language and country
|
||||||
|
Language and countries menu: Menu Langues & Pays
|
||||||
|
Management of languages and countries: Gestion des langues & Pays
|
||||||
|
|
||||||
|
|
||||||
# circles / scopes
|
# circles / scopes
|
||||||
Choose the circle: Choisir le cercle
|
Choose the circle: Choisir le cercle
|
||||||
Scopes: Services
|
Scopes: Services
|
||||||
@ -344,6 +350,18 @@ crud:
|
|||||||
main_location:
|
main_location:
|
||||||
title_new: Nouvelle localisation
|
title_new: Nouvelle localisation
|
||||||
title_edit: Modifier une localisation
|
title_edit: Modifier une localisation
|
||||||
|
main_language:
|
||||||
|
index:
|
||||||
|
title: Liste des langues
|
||||||
|
add_new: Ajouter une langue
|
||||||
|
title_new: Nouvelle langue
|
||||||
|
title_edit: Modifier une langue
|
||||||
|
main_country:
|
||||||
|
index:
|
||||||
|
title: Liste des pays
|
||||||
|
add_new: Ajouter un pays
|
||||||
|
title_new: Nouveau pays
|
||||||
|
title_edit: Modifier un pays
|
||||||
|
|
||||||
No entities: Aucun élément
|
No entities: Aucun élément
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user