diff --git a/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminSocialIssueController.php b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminSocialIssueController.php
new file mode 100644
index 000000000..35b0df4a2
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminSocialIssueController.php
@@ -0,0 +1,33 @@
+
+ *
+ * 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 .
+ */
+
+namespace Chill\PersonBundle\Controller\SocialWork;
+
+use Chill\MainBundle\CRUD\Controller\CRUDController;
+
+/**
+ * Class AdminSocialIssueController
+ * Controller for social issues
+ *
+ * @package Chill\PersonBundle\Controller
+ */
+class AdminSocialIssueController extends CRUDController
+{
+}
diff --git a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php
index 3745c6849..ecc390f59 100644
--- a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php
+++ b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php
@@ -345,6 +345,27 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac
]
]
],
+ [
+ 'class' => \Chill\PersonBundle\Entity\SocialWork\SocialIssue::class,
+ 'name' => 'social_issue',
+ 'base_path' => '/admin/social-issue',
+ 'form_class' => \Chill\PersonBundle\Form\SocialWork\SocialIssueType::class,
+ 'controller' => \Chill\PersonBundle\Controller\SocialWork\AdminSocialIssueController::class,
+ 'actions' => [
+ 'index' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/SocialIssue/index.html.twig',
+ ],
+ 'new' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/SocialIssue/new.html.twig',
+ ],
+ 'edit' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/SocialIssue/edit.html.twig',
+ ]
+ ]
+ ]
],
'apis' => [
[
@@ -355,7 +376,6 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac
'actions' => [
'_entity' => [
'roles' => [
-<<<<<<< HEAD
Request::METHOD_GET => \Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter::SEE,
Request::METHOD_PATCH => \Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter::SEE,
Request::METHOD_PUT => \Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter::SEE,
@@ -364,9 +384,6 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac
Request::METHOD_GET => true,
Request::METHOD_PUT => true,
Request::METHOD_PATCH => true,
-=======
- Request::METHOD_GET => \Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter::SEE
->>>>>>> Removing spaces at the end of line
]
],
'participation' => [
@@ -380,7 +397,6 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac
Request::METHOD_POST => \Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter::SEE,
Request::METHOD_DELETE=> \Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter::SEE
]
-<<<<<<< HEAD
],
'resource' => [
'methods' => [
@@ -467,10 +483,6 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac
Request::METHOD_POST => \Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter::SEE,
]
],
-=======
- ]
-
->>>>>>> Removing spaces at the end of line
]
],
[
diff --git a/src/Bundle/ChillPersonBundle/Form/SocialWork/SocialIssueType.php b/src/Bundle/ChillPersonBundle/Form/SocialWork/SocialIssueType.php
new file mode 100644
index 000000000..482ff60f3
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Form/SocialWork/SocialIssueType.php
@@ -0,0 +1,83 @@
+
+ *
+ * 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 .
+ */
+namespace Chill\PersonBundle\Form\SocialWork;
+
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+use Chill\MainBundle\Form\Type\TranslatableStringFormType;
+use Symfony\Component\Form\Extension\Core\Type\DateType;
+use Chill\MainBundle\Templating\TranslatableStringHelper;
+use Symfony\Bridge\Doctrine\Form\Type\EntityType;
+use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
+
+/**
+ * Class SocialIssueType
+ *
+ * @package Chill\PersonBundle\Form
+ */
+class SocialIssueType extends AbstractType
+{
+ /**
+ *
+ * @var TranslatableStringHelper
+ */
+ protected $translatableStringHelper;
+
+ public function __construct(TranslatableStringHelper $translatableStringHelper) {
+ $this->translatableStringHelper = $translatableStringHelper;
+ }
+
+ /**
+ * @param FormBuilderInterface $builder
+ * @param array $options
+ */
+ public function buildForm(FormBuilderInterface $builder, array $options)
+ {
+ $builder
+ ->add('title', TranslatableStringFormType::class, [
+ 'label' => 'Nom'
+ ])
+
+ ->add('parent', EntityType::class, [
+ 'class' => SocialIssue::class,
+ 'required' => false,
+ 'choice_label' => function (SocialIssue $issue) {
+ return $this->translatableStringHelper->localize($issue->getTitle());
+ }
+ ])
+
+ ->add('desactivationDate', DateType::class, array(
+ 'attr' => array('class' => 'datepicker'),
+ 'widget'=> 'single_text',
+ 'format' => 'dd-MM-yyyy',
+ 'required' => false,
+ ));
+}
+
+ /**
+ * @param OptionsResolver $resolver
+ */
+ public function configureOptions(OptionsResolver $resolver)
+ {
+ $resolver
+ ->setDefault('class', SocialIssue::class)
+ ;
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/Repository/PersonRepository.php b/src/Bundle/ChillPersonBundle/Repository/PersonRepository.php
index d99ab590e..6686b55b7 100644
--- a/src/Bundle/ChillPersonBundle/Repository/PersonRepository.php
+++ b/src/Bundle/ChillPersonBundle/Repository/PersonRepository.php
@@ -18,11 +18,13 @@
namespace Chill\PersonBundle\Repository;
+
use Chill\PersonBundle\Entity\Person;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder;
+
final class PersonRepository
{
private EntityRepository $repository;
@@ -113,11 +115,20 @@ final class PersonRepository
$qb->setParameter('phonenumber', '%'.$phonenumber.'%');
}
+
+ /**
+ * @param $phonenumber
+ * @return string
+ */
protected function parsePhoneNumber(string $phonenumber): string
{
return \str_replace(' ', '', $phonenumber);
}
+ /**
+ * @param QueryBuilder $qb
+ * @param array $centers
+ */
protected function addByCenters(QueryBuilder $qb, array $centers): void
{
if (count($centers) > 0) {
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/SocialWork/SocialIssue/edit.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/SocialWork/SocialIssue/edit.html.twig
new file mode 100644
index 000000000..0ae8754fe
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Resources/views/SocialWork/SocialIssue/edit.html.twig
@@ -0,0 +1,12 @@
+{% extends '@ChillPerson/Admin/layout.html.twig' %}
+
+{% block title %}
+{% include('@ChillMain/CRUD/_edit_title.html.twig') %}
+{% endblock %}
+
+{% block layout_wvm_content %}
+{% embed '@ChillMain/CRUD/_edit_content.html.twig' %}
+ {% block content_form_actions_view %}{% endblock %}
+ {% block content_form_actions_save_and_show %}{% endblock %}
+{% endembed %}
+{% endblock %}
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/SocialWork/SocialIssue/index.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/SocialWork/SocialIssue/index.html.twig
new file mode 100644
index 000000000..44627852e
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Resources/views/SocialWork/SocialIssue/index.html.twig
@@ -0,0 +1,27 @@
+{% extends '@ChillPerson/Admin/layout.html.twig' %}
+
+{% block layout_wvm_content %}
+ {% embed '@ChillMain/CRUD/_index.html.twig' %}
+ {% block table_entities_thead_tr %}
+
{{ 'Id'|trans }} |
+ {{ 'Title'|trans }} |
+ |
+ {% endblock %}
+
+ {% block table_entities_tbody %}
+ {% for entity in entities %}
+
+ {{ entity.id }} |
+ {{ entity.title|localize_translatable_string }} |
+
+
+ |
+
+ {% endfor %}
+ {% endblock %}
+ {% endembed %}
+{% endblock %}
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/SocialWork/SocialIssue/new.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/SocialWork/SocialIssue/new.html.twig
new file mode 100644
index 000000000..cc6021021
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Resources/views/SocialWork/SocialIssue/new.html.twig
@@ -0,0 +1,11 @@
+{% extends '@ChillPerson/Admin/layout.html.twig' %}
+
+{% block title %}
+{% include('@ChillMain/CRUD/_new_title.html.twig') %}
+{% endblock %}
+
+{% block layout_wvm_content %}
+{% embed '@ChillMain/CRUD/_new_content.html.twig' %}
+ {% block content_form_actions_save_and_show %}{% endblock %}
+{% endembed %}
+{% endblock %}
diff --git a/src/Bundle/ChillPersonBundle/config/routes.yaml b/src/Bundle/ChillPersonBundle/config/routes.yaml
index cd0de3ea3..8b5065bff 100644
--- a/src/Bundle/ChillPersonBundle/config/routes.yaml
+++ b/src/Bundle/ChillPersonBundle/config/routes.yaml
@@ -136,6 +136,16 @@ chill_person_maritalstatus_admin:
order: 120
label: 'person_admin.marital status'
+chill_person_socialissue_admin:
+ path: /{_locale}/admin/social-issue
+ controller: cscrud_social_issue_controller:index
+ options:
+ menus:
+ admin_person:
+ order: 150
+ label: 'person_admin.social_issue'
+
+
chill_person_controllers:
resource: "@ChillPersonBundle/Controller"
type: annotation
diff --git a/src/Bundle/ChillPersonBundle/config/services.yaml b/src/Bundle/ChillPersonBundle/config/services.yaml
index 922081d05..aedea4396 100644
--- a/src/Bundle/ChillPersonBundle/config/services.yaml
+++ b/src/Bundle/ChillPersonBundle/config/services.yaml
@@ -2,12 +2,9 @@ parameters:
# cl_chill_person.example.class: Chill\PersonBundle\Example
services:
-<<<<<<< HEAD
_defaults:
autowire: true
autoconfigure: true
-=======
->>>>>>> Removing spaces at the end of line
Chill\PersonBundle\Service\:
resource: '../Service/'
diff --git a/src/Bundle/ChillPersonBundle/config/services/form.yaml b/src/Bundle/ChillPersonBundle/config/services/form.yaml
index aa6f36b28..0f415acac 100644
--- a/src/Bundle/ChillPersonBundle/config/services/form.yaml
+++ b/src/Bundle/ChillPersonBundle/config/services/form.yaml
@@ -32,7 +32,7 @@ services:
chill.person.form.type.pick_person:
class: Chill\PersonBundle\Form\Type\PickPersonType
arguments:
- - "@chill.person.repository.person"
+ - '@Chill\PersonBundle\Repository\PersonRepository'
- "@security.token_storage"
- "@chill.main.security.authorization.helper"
- '@Symfony\Component\Routing\Generator\UrlGeneratorInterface'
@@ -53,3 +53,9 @@ services:
$em: '@Doctrine\ORM\EntityManagerInterface'
tags:
- { name: form.type }
+
+ Chill\PersonBundle\Form\SocialWork\SocialIssueType:
+ arguments:
+ $translatableStringHelper: '@chill.main.helper.translatable_string'
+ tags:
+ - { name: form.type }
diff --git a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml
index 52254295b..5871c4733 100644
--- a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml
+++ b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml
@@ -304,6 +304,12 @@ crud:
add_new: Ajouter un nouveau
title_new: Nouvel état civil
title_edit: Modifier l'état civil
+ social_issue:
+ index:
+ title: Liste des problématiques sociales
+ add_new: Ajouter une nouvelle problématique sociale
+ title_new: Nouvelle problématique sociale
+ title_edit: Modifier la problématique sociale
# specific to closing motive
closing_motive:
@@ -322,6 +328,7 @@ person_admin:
marital status list: Liste des états civils
marital status explanation: >
Configurer la liste des états civils.
+ social_issue: Problématiques sociales
# specific to accompanying period
accompanying_period: