+ {%- if activity.socialIssues is not empty -%}
+ {% for r in activity.socialIssues %}
+ {{ r|chill_entity_render_box }}
+ {% endfor %}
+ {%- endif -%}
+
+ {%- if activity.socialActions is not empty -%}
+ {% for r in activity.socialActions %}
+ {{ r.title|localize_translatable_string }}
+ {% endfor %}
+ {%- endif -%}
+
+
+ {% if activity.comment.comment is not empty
+ or activity.persons|length > 0
+ or activity.thirdParties|length > 0
+ or activity.users|length > 0
+ %}
+
+
+ {% include 'ChillActivityBundle:Activity:concernedGroups.html.twig' with {'context': context, 'with_display': 'row', 'entity': activity } %}
+
+
+ {% if activity.comment.comment is not empty %}
+
-
- {%
- if activity.comment.comment is not empty
- or activity.persons|length > 0
- or activity.thirdParties|length > 0
- or activity.users|length > 0
- %}
-
-
-
- {% include 'ChillActivityBundle:Activity:concernedGroups.html.twig' with {'context': context, 'with_display': 'row', 'entity': activity } %}
-
-
- {% if activity.comment.comment is not empty %}
-
diff --git a/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210804082249.php b/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210804082249.php
index 8a0e98b9a..4135bb4a2 100644
--- a/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210804082249.php
+++ b/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210804082249.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Application\Migrations;
+namespace Chill\Migrations\AsideActivity;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
diff --git a/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210806140343.php b/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210806140343.php
index f05da8643..62b568407 100644
--- a/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210806140343.php
+++ b/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210806140343.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Application\Migrations;
+namespace Chill\Migrations\AsideActivity;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
diff --git a/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210806140710.php b/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210806140710.php
index e71cd50d2..92320e639 100644
--- a/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210806140710.php
+++ b/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210806140710.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Application\Migrations;
+namespace Chill\Migrations\AsideActivity;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
diff --git a/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210810084456.php b/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210810084456.php
index 51e9c0571..29d6be7f3 100644
--- a/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210810084456.php
+++ b/src/Bundle/ChillAsideActivityBundle/src/migrations/Version20210810084456.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Application\Migrations;
+namespace Chill\Migrations\AsideActivity;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
@@ -43,6 +43,6 @@ final class Version20210810084456 extends AbstractMigration
$this->addSql('COMMENT ON COLUMN chill_asideactivity.AsideActivity.createdat IS \'(DC2Type:datetime_immutable)\'');
$this->addSql('COMMENT ON COLUMN chill_asideactivity.AsideActivity.updatedat IS \'(DC2Type:datetime_immutable)\'');
$this->addSql('COMMENT ON COLUMN chill_asideactivity.AsideActivity.date IS \'(DC2Type:datetime_immutable)\'');
-
+
}
}
diff --git a/src/Bundle/ChillDocGeneratorBundle/.gitignore b/src/Bundle/ChillDocGeneratorBundle/.gitignore
new file mode 100644
index 000000000..f443cb81e
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/.gitignore
@@ -0,0 +1,11 @@
+composer.lock
+vendor/*
+parameters.yml
+*~
+*.DS_Store
+*.sass-cache
+Resources/node_modules/
+Tests/Fixtures/App/app/config/parameters.yml
+/nbproject/private/
+Resources/test/Fixtures/App/bootstrap.php.cache
+
diff --git a/src/Bundle/ChillDocGeneratorBundle/ChillDocGeneratorBundle.php b/src/Bundle/ChillDocGeneratorBundle/ChillDocGeneratorBundle.php
new file mode 100644
index 000000000..350290b08
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/ChillDocGeneratorBundle.php
@@ -0,0 +1,9 @@
+ $entity];
+ } elseif(get_class($entity) == SocialAction::class) {
+ $ret = ['SocialAction' => $entity];
+ }
+
+ // TODO AJOUTER LES DONNES DU FORMULAIRE
+
+ return $ret;
+ }
+}
diff --git a/src/Bundle/ChillDocGeneratorBundle/Controller/AdminDocGeneratorTemplateController.php b/src/Bundle/ChillDocGeneratorBundle/Controller/AdminDocGeneratorTemplateController.php
new file mode 100644
index 000000000..0b870a34e
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/Controller/AdminDocGeneratorTemplateController.php
@@ -0,0 +1,9 @@
+setContent('Test');
+ }
+
+ /**
+ * @Route(
+ * "{_locale}/doc/gen/test",
+ * name="chill_docgenerator_test"
+ * )
+ *
+ * @param Request $request
+ * @return \Symfony\Component\HttpFoundation\Response
+ */
+ public function getDoc(Request $request, TempUrlOpenstackGenerator $tempUrlGenerator)
+ {
+ $p = $tempUrlGenerator->generate(
+ 'GET',
+ 'FORMULAIRE_AEB.docx',
+ $request->query->has('expires_delay') ? $request->query->getInt('expires_delay', 0) : null
+ );
+
+ $tmpfname = tempnam(sys_get_temp_dir(), 'DOC_TEMPLATE');
+ file_put_contents($tmpfname, file_get_contents($p->{"url"}));
+
+ $templateProcessor = new TemplateProcessor($tmpfname);
+ $templateProcessor->setValues(array('firstname' => 'John', 'lastname' => 'Doe'));
+
+ $tmpfname2 = tempnam(sys_get_temp_dir(), 'DOC_GENERATED');
+ $templateProcessor->saveAs($tmpfname2);
+
+ unlink($tmpfname);
+
+ $fileContent = fopen($tmpfname2, 'r'); // the generated file content
+ $response = new Response(fread($fileContent, filesize($tmpfname2)));
+
+ $disposition = HeaderUtils::makeDisposition(
+ HeaderUtils::DISPOSITION_ATTACHMENT,
+ 'foo.docx'
+ );
+
+ $response->headers->set('Content-Disposition', $disposition);
+ unlink($tmpfname2);
+
+ return $response;
+ }
+}
diff --git a/src/Bundle/ChillDocGeneratorBundle/DataFixtures/ORM/LoadDocGeneratorTemplate.php b/src/Bundle/ChillDocGeneratorBundle/DataFixtures/ORM/LoadDocGeneratorTemplate.php
new file mode 100644
index 000000000..ade47e307
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/DataFixtures/ORM/LoadDocGeneratorTemplate.php
@@ -0,0 +1,55 @@
+ ['fr' => 'FORMULAIRE AEB'],
+ 'desc' => 'stocké sur openstack comedienbe',
+ 'file' => 'FORMULAIRE_AEB.docx',
+ 'context' => 'Chill\DocGeneratorBundle\Context\HouseholdMemberSelectionContext',
+ 'entities' => ['Chill\PersonBundle\Entity\AccompanyingPeriod', 'Chill\PersonBundle\Entity\SocialWork\SocialAction'],
+ ], [
+ 'name' => ['fr' => 'AIDE ALIMENTAIRE'],
+ 'desc' => 'stocké sur openstack comedienbe',
+ 'file' => 'AIDE_ALIMENTAIRE.docx',
+ 'context' => 'Chill\DocGeneratorBundle\Context\HouseholdMemberSelectionContext',
+ 'entities' => ['Chill\PersonBundle\Entity\AccompanyingPeriod', 'Chill\PersonBundle\Entity\SocialWork\SocialAction'],
+ ],
+ ];
+
+ foreach ($templates as $template) {
+
+ print('Adding doc generator templates '.$template['file'].")\n");
+
+ $newTemplate = (new DocGeneratorTemplate())
+ ->setName($template['name'])
+ ->setDescription($template['desc'])
+ ->setFile($template['file'])
+ ->setContext($template['context'])
+ ->setEntities($template['entities'])
+ ;
+
+ $manager->persist($newTemplate);
+
+ $manager->flush();
+ }
+ }
+}
diff --git a/src/Bundle/ChillDocGeneratorBundle/DependencyInjection/ChillDocGeneratorExtension.php b/src/Bundle/ChillDocGeneratorBundle/DependencyInjection/ChillDocGeneratorExtension.php
new file mode 100644
index 000000000..24f3a2d01
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/DependencyInjection/ChillDocGeneratorExtension.php
@@ -0,0 +1,81 @@
+processConfiguration($configuration, $configs);
+
+ $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
+ $loader->load('services.yml');
+ $loader->load('services/controller.yml');
+ $loader->load('services/fixtures.yml');
+ $loader->load('services/form.yml');
+ }
+
+ public function prepend(ContainerBuilder $container)
+ {
+ $this->preprendRoutes($container);
+ $this->prependCruds($container);
+ }
+
+ protected function preprendRoutes(ContainerBuilder $container)
+ {
+ $container->prependExtensionConfig('chill_main', array(
+ 'routing' => array(
+ 'resources' => array(
+ '@ChillDocGeneratorBundle/Resources/config/routes.yml'
+ )
+ )
+ ));
+ }
+
+ /**
+ * @param ContainerBuilder $container
+ */
+ protected function prependCruds(ContainerBuilder $container)
+ {
+ $container->prependExtensionConfig('chill_main', [
+ 'cruds' => [
+ [
+ 'class' => \Chill\DocGeneratorBundle\Entity\DocGeneratorTemplate::class,
+ 'name' => 'docgen_template',
+ 'base_path' => '/admin/docgen/template',
+ 'form_class' => \Chill\DocGeneratorBundle\Form\DocGeneratorTemplateType::class,
+ 'controller' => \Chill\DocGeneratorBundle\Controller\AdminDocGeneratorTemplateController::class,
+ 'actions' => [
+ 'index' => [
+ 'template' => '@ChillDocGenerator/Admin/DocGeneratorTemplate/index.html.twig',
+ 'role' => 'ROLE_ADMIN'
+ ],
+ 'new' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillDocGenerator/Admin/DocGeneratorTemplate/new.html.twig',
+ ],
+ 'edit' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillDocGenerator/Admin/DocGeneratorTemplate/edit.html.twig',
+ ]
+ ]
+ ]
+ ]
+ ]);
+ }
+}
diff --git a/src/Bundle/ChillDocGeneratorBundle/DependencyInjection/Configuration.php b/src/Bundle/ChillDocGeneratorBundle/DependencyInjection/Configuration.php
new file mode 100644
index 000000000..def8043a4
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/DependencyInjection/Configuration.php
@@ -0,0 +1,29 @@
+getRootNode('chill_calendar');
+
+ // Here you should define the parameters that are allowed to
+ // configure your bundle. See the documentation linked above for
+ // more information on that topic.
+
+ return $treeBuilder;
+ }
+}
diff --git a/src/Bundle/ChillDocGeneratorBundle/Entity/DocGeneratorTemplate.php b/src/Bundle/ChillDocGeneratorBundle/Entity/DocGeneratorTemplate.php
new file mode 100644
index 000000000..bf9c89839
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/Entity/DocGeneratorTemplate.php
@@ -0,0 +1,123 @@
+id;
+ }
+
+ public function getName(): ?array
+ {
+ return $this->name;
+ }
+
+ public function setName(array $name): self
+ {
+ $this->name = $name;
+
+ return $this;
+ }
+
+ public function getDescription(): ?string
+ {
+ return $this->description;
+ }
+
+ public function setDescription(?string $description): self
+ {
+ $this->description = $description;
+
+ return $this;
+ }
+
+ public function getFile(): ?string
+ {
+ return $this->file;
+ }
+
+ public function setFile(string $file): self
+ {
+ $this->file = $file;
+
+ return $this;
+ }
+
+ public function getEntities(): ?array
+ {
+ return $this->entities;
+ }
+
+ public function setEntities(array $entities): self
+ {
+ $this->entities = $entities;
+
+ return $this;
+ }
+
+ public function getContext(): ?string
+ {
+ return $this->context;
+ }
+
+ public function setContext(string $context): self
+ {
+ $this->context = $context;
+
+ return $this;
+ }
+}
diff --git a/src/Bundle/ChillDocGeneratorBundle/Form/DocGeneratorTemplateType.php b/src/Bundle/ChillDocGeneratorBundle/Form/DocGeneratorTemplateType.php
new file mode 100644
index 000000000..a0f36da0a
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/Form/DocGeneratorTemplateType.php
@@ -0,0 +1,38 @@
+add('name', TranslatableStringFormType::class, [
+ 'label' => 'Nom'
+ ])
+ ->add('description')
+ ->add('file')
+ ;
+ }
+
+ /**
+ * @param OptionsResolver $resolver
+ */
+ public function configureOptions(OptionsResolver $resolver)
+ {
+ $resolver
+ ->setDefault('class', DocGeneratorTemplate::class)
+ ;
+ }
+}
diff --git a/src/Bundle/ChillDocGeneratorBundle/LICENSE b/src/Bundle/ChillDocGeneratorBundle/LICENSE
new file mode 100644
index 000000000..2def0e883
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/LICENSE
@@ -0,0 +1,661 @@
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+ An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ 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 .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+.
\ No newline at end of file
diff --git a/src/Bundle/ChillDocGeneratorBundle/README.md b/src/Bundle/ChillDocGeneratorBundle/README.md
new file mode 100644
index 000000000..8739b5395
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/README.md
@@ -0,0 +1,5 @@
+Doc generator bundle
+====================
+
+This bundle generates documents (from templates)
+
diff --git a/src/Bundle/ChillDocGeneratorBundle/Repository/DocGeneratorTemplateRepository.php b/src/Bundle/ChillDocGeneratorBundle/Repository/DocGeneratorTemplateRepository.php
new file mode 100644
index 000000000..83f206d4b
--- /dev/null
+++ b/src/Bundle/ChillDocGeneratorBundle/Repository/DocGeneratorTemplateRepository.php
@@ -0,0 +1,21 @@
+{{ 'Title'|trans }}
+
{{ 'File'|trans }}
+ {% endblock %}
+
+ {% block table_entities_tbody %}
+ {% for entity in entities %}
+
- {% for flashMessage in app.session.flashbag.get('error') %}
-
- {{ flashMessage|raw }}
-
- {% endfor %}
+ {% for flashMessage in app.session.flashbag.get('success') %}
+
+ {{ flashMessage|raw }}
+
+ {% endfor %}
- {% for flashMessage in app.session.flashbag.get('notice') %}
-
- {{ flashMessage|raw }}
-
- {% endfor %}
+ {% for flashMessage in app.session.flashbag.get('error') %}
+
+ {{ flashMessage|raw }}
+
+ {% endfor %}
+
+ {% for flashMessage in app.session.flashbag.get('notice') %}
+
+ {{ flashMessage|raw }}
+
+ {% endfor %}
+
+
+ {% endif %}
{% block layout_wvm_content %}
{% endblock %}
diff --git a/src/Bundle/ChillPersonBundle/Controller/HouseholdApiController.php b/src/Bundle/ChillPersonBundle/Controller/HouseholdApiController.php
index 1e15490dc..0bb804689 100644
--- a/src/Bundle/ChillPersonBundle/Controller/HouseholdApiController.php
+++ b/src/Bundle/ChillPersonBundle/Controller/HouseholdApiController.php
@@ -6,10 +6,12 @@ use Chill\MainBundle\CRUD\Controller\ApiController;
use Chill\MainBundle\Entity\Address;
use Chill\MainBundle\Serializer\Model\Collection;
use Chill\PersonBundle\Entity\Person;
+use Chill\PersonBundle\Entity\Household\Household;
use Chill\PersonBundle\Repository\Household\HouseholdRepository;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
+use Symfony\Component\Routing\Annotation\Route;
class HouseholdApiController extends ApiController
{
@@ -50,4 +52,45 @@ class HouseholdApiController extends ApiController
return $this->json($collection, Response::HTTP_OK, [],
[ "groups" => ["read"]]);
}
+
+ /**
+ * @Route("/api/1.0/person/address/suggest/by-household/{household_id}.{_format}",
+ * name="chill_person_address_suggest_by_household",
+ * requirements={
+ * "_format"="json"
+ * }
+ * )
+ * @ParamConverter("household", options={"id" = "household_id"})
+ */
+ public function suggestAddressByHousehold(Household $household, string $_format)
+ {
+ // TODO add acl
+
+ $addresses = [];
+ // collect addresses from location in courses
+ foreach ($household->getCurrentPersons() as $person) {
+ foreach ($person->getAccompanyingPeriodParticipations() as $participation) {
+ if (null !== $participation->getAccompanyingPeriod()->getAddressLocation()) {
+ $a = $participation->getAccompanyingPeriod()->getAddressLocation();
+ $addresses[$a->getId()] = $a;
+ }
+ if (null !== $personLocation = $participation
+ ->getAccompanyingPeriod()->getPersonLocation()) {
+ $a = $personLocation->getCurrentHouseholdAddress();
+ if (null !== $a) {
+ $addresses[$a->getId()] = $a;
+ }
+ }
+ }
+ }
+
+ // remove the actual address
+ $actual = $household->getCurrentAddress();
+ if (null !== $actual) {
+ $addresses = \array_filter($addresses, fn($a) => $a !== $actual);
+ }
+
+ return $this->json(\array_values($addresses), Response::HTTP_OK, [],
+ [ 'groups' => [ 'read' ] ]);
+ }
}
diff --git a/src/Bundle/ChillPersonBundle/Controller/PersonApiController.php b/src/Bundle/ChillPersonBundle/Controller/PersonApiController.php
index 9db1854fc..b3f4087eb 100644
--- a/src/Bundle/ChillPersonBundle/Controller/PersonApiController.php
+++ b/src/Bundle/ChillPersonBundle/Controller/PersonApiController.php
@@ -18,12 +18,15 @@
namespace Chill\PersonBundle\Controller;
use Chill\PersonBundle\Security\Authorization\PersonVoter;
+use Chill\PersonBundle\Entity\Person;
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
use Symfony\Component\Security\Core\Role\Role;
use Chill\MainBundle\CRUD\Controller\ApiController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Chill\MainBundle\Entity\Address;
+use Symfony\Component\Routing\Annotation\Route;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
class PersonApiController extends ApiController
{
@@ -54,4 +57,41 @@ class PersonApiController extends ApiController
return $this->addRemoveSomething('address', $id, $request, $_format, 'address', Address::class, [ 'groups' => [ 'read' ] ]);
}
+ /**
+ * @Route("/api/1.0/person/address/suggest/by-person/{person_id}.{_format}",
+ * name="chill_person_address_suggest_by_person",
+ * requirements={
+ * "_format"="json"
+ * }
+ * )
+ * @ParamConverter("person", options={"id" = "person_id"})
+ */
+ public function suggestAddress(Person $person, Request $request, string $_format): Response
+ {
+ $this->denyAccessUnlessGranted(PersonVoter::SEE, $person);
+
+ $addresses = [];
+ // collect addresses from location in courses
+ foreach ($person->getAccompanyingPeriodParticipations() as $participation) {
+ if (null !== $participation->getAccompanyingPeriod()->getAddressLocation()) {
+ $a = $participation->getAccompanyingPeriod()->getAddressLocation();
+ $addresses[$a->getId()] = $a;
+ }
+ if (null !== $personLocation = $participation
+ ->getAccompanyingPeriod()->getPersonLocation()) {
+ $a = $personLocation->getCurrentHouseholdAddress();
+ if (null !== $a) {
+ $addresses[$a->getId()] = $a;
+ }
+ }
+ }
+
+ // remove the actual address
+ $actual = $person->getCurrentHouseholdAddress();
+ if (null !== $actual) {
+ $addresses = \array_filter($addresses, fn($a) => $a !== $actual);
+ }
+
+ return $this->json(\array_values($addresses), Response::HTTP_OK, [], [ 'groups' => [ 'read' ]]);
+ }
}
diff --git a/src/Bundle/ChillPersonBundle/Controller/SocialIssueApiController.php b/src/Bundle/ChillPersonBundle/Controller/SocialIssueApiController.php
index 40d7068ce..c1d251efb 100644
--- a/src/Bundle/ChillPersonBundle/Controller/SocialIssueApiController.php
+++ b/src/Bundle/ChillPersonBundle/Controller/SocialIssueApiController.php
@@ -3,8 +3,12 @@
namespace Chill\PersonBundle\Controller;
use Chill\MainBundle\CRUD\Controller\ApiController;
+use Chill\MainBundle\Doctrine\ORM\Hydration\FlatHierarchyEntityHydrator;
use Chill\MainBundle\Pagination\PaginatorInterface;
+use DateTimeImmutable;
+use Doctrine\ORM\Query;
use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
class SocialIssueApiController extends ApiController
{
@@ -16,6 +20,25 @@ class SocialIssueApiController extends ApiController
$query->expr()->isNull('e.desactivationDate')
)
);
- $query->setParameter('now', new \DateTimeImmutable());
+ $query->setParameter('now', new DateTimeImmutable());
+ }
+
+ protected function getQueryResult(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, $query)
+ {
+ // In order to work, this hydrator only works with
+ // entities having the field "children" set up.
+ return $query
+ ->getQuery()
+ ->setHint(Query::HINT_INCLUDE_META_COLUMNS, true)
+ ->getResult(FlatHierarchyEntityHydrator::LIST);
+ }
+
+ protected function onPostIndexBuildQuery(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, $query): ?Response
+ {
+ $query
+ ->orderBy("GET_JSON_FIELD_BY_KEY(e.title, :locale)", 'ASC')
+ ->setParameter(':locale', $request->getLocale());
+
+ return null;
}
}
diff --git a/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminEvaluationController.php b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminEvaluationController.php
new file mode 100644
index 000000000..134cedc74
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminEvaluationController.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 AdminEvaluationController extends CRUDController
+{
+}
diff --git a/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminGoalController.php b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminGoalController.php
new file mode 100644
index 000000000..18e1c9f3b
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminGoalController.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 AdminGoalController extends CRUDController
+{
+}
diff --git a/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminResultController.php b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminResultController.php
new file mode 100644
index 000000000..80d552282
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminResultController.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 AdminResultController extends CRUDController
+{
+}
diff --git a/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminSocialActionController.php b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminSocialActionController.php
new file mode 100644
index 000000000..695ec75a1
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Controller/SocialWork/AdminSocialActionController.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 AdminSocialActionController extends CRUDController
+{
+}
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/Controller/SocialWorkEvaluationApiController.php b/src/Bundle/ChillPersonBundle/Controller/SocialWorkEvaluationApiController.php
new file mode 100644
index 000000000..24b919978
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Controller/SocialWorkEvaluationApiController.php
@@ -0,0 +1,46 @@
+paginatorFactory = $paginatorFactory;
+ }
+
+ /**
+ * @Route("/api/1.0/person/social-work/evaluation/by-social-action/{action_id}.json",
+ * name="chill_person_evaluation_index_by_social_action",
+ * requirements={
+ * "_format": "json"
+ * }
+ * )
+ * @ParamConverter("action", options={"id": "action_id"})
+ * @param SocialAction $action
+ * @return Response
+ */
+ public function listEvaluationBySocialAction(SocialAction $action): Response
+ {
+ $pagination = $this->paginatorFactory->create($action->getEvaluations()->count());
+
+ $evaluations = $action->getEvaluations()->slice($pagination->getCurrentPageFirstItemNumber(),
+ $pagination->getItemsPerPage());
+ $collection = new Collection($evaluations, $pagination);
+
+ return $this->json($collection, Response::HTTP_OK, [], [ 'groups' => [ 'read' ]]);
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadAccompanyingPeriodWork.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadAccompanyingPeriodWork.php
new file mode 100644
index 000000000..82e232e8d
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadAccompanyingPeriodWork.php
@@ -0,0 +1,140 @@
+periodRepository = $periodRepository;
+ $this->evaluationRepository = $evaluationRepository;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getDependencies()
+ {
+ return [
+ LoadPeople::class
+ ];
+ }
+
+ private function getRandomAction(SocialIssue $socialIssue): ?SocialAction
+ {
+ $actions = $socialIssue->getRecursiveSocialActions()->toArray();
+
+ if (0 === count($actions)) {
+ return null;
+ }
+
+ return $actions[\array_rand($actions)];
+ }
+
+ private function getRandomEvaluation(): Evaluation
+ {
+ if (0 === count($this->cacheEvaluations)) {
+ $this->cacheEvaluations = $this->evaluationRepository
+ ->findAll();
+ }
+
+ return $this->cacheEvaluations[\array_rand($this->cacheEvaluations)];
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function load(ObjectManager $manager)
+ {
+ // load all the period which are confirmed
+ $periods = $this->periodRepository
+ ->findBy(['step' => AccompanyingPeriod::STEP_CONFIRMED])
+ ;
+
+ $i = 0;
+ while (null !== $period = \array_pop($periods)) {
+ /** @var AccompanyingPeriod $period */
+ $i++;
+ if (0 === $i % 15) {
+ $manager->flush();
+ }
+ if (0 === $period->getSocialIssues()->count()) {
+ continue;
+ }
+ $work = new AccompanyingPeriod\AccompanyingPeriodWork();
+ $action = $this->getRandomAction($period->getSocialIssues()->first());
+
+ if (null !== $action) {
+ $work
+ ->setAccompanyingPeriod($period)
+ ->setSocialAction($action)
+ ->setStartDate(new \DateTimeImmutable('today'))
+ ->addPerson($period->getPersons()->first())
+ ->setCreatedAt(new \DateTimeImmutable())
+ ->setCreatedBy($this->getReference('center a_social'))
+ ->setUpdatedAt(new \DateTimeImmutable())
+ ->setUpdatedBy($this->getReference('center a_social'));
+ $manager->persist($work);
+
+ if ($action->getEvaluations()->count() > 0) {
+ $ev = $action->getEvaluations()->first();
+ $evaluation = new AccompanyingPeriod\AccompanyingPeriodWorkEvaluation();
+ $evaluation->setAccompanyingPeriodWork($work)
+ ->setEvaluation($ev);
+ $manager->persist($evaluation);
+ }
+ }
+
+ // 1 of 10, force an evaluation
+ if (0 === $i % 10) {
+ $evaluation = $this->getRandomEvaluation();
+ $action = $evaluation->getSocialAction();
+ $issue = $action->getIssue();
+
+ $period->addSocialIssue($issue);
+ $work
+ ->setAccompanyingPeriod($period)
+ ->setSocialAction($action)
+ ->setStartDate(new \DateTimeImmutable('today'))
+ ->addPerson($period->getPersons()->first())
+ ->setCreatedAt(new \DateTimeImmutable())
+ ->setCreatedBy($this->getReference('center a_social'))
+ ->setUpdatedAt(new \DateTimeImmutable())
+ ->setUpdatedBy($this->getReference('center a_social'))
+ ;
+ $manager->persist($work);
+ $ev = new AccompanyingPeriod\AccompanyingPeriodWorkEvaluation();
+ $ev->setAccompanyingPeriodWork($work)
+ ->setEvaluation($evaluation);
+ $manager->persist($ev);
+ }
+
+ }
+
+ $manager->flush();
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php
index 556d832c1..474cd1216 100644
--- a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php
+++ b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php
@@ -21,15 +21,25 @@
namespace Chill\PersonBundle\DataFixtures\ORM;
+use Chill\MainBundle\Entity\PostalCode;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
+use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
+use Chill\ThirdPartyBundle\Entity\ThirdParty;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Persistence\ObjectManager;
use Chill\PersonBundle\Entity\Person;
+use Faker\Factory;
+use Faker\Generator;
+use Nelmio\Alice\Loader\NativeLoader;
+use Nelmio\Alice\ObjectSet;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Chill\MainBundle\DataFixtures\ORM\LoadPostalCodes;
use Chill\MainBundle\Entity\Address;
use Chill\MainBundle\Doctrine\Model\Point;
+use Symfony\Component\Workflow\Registry;
+use Symfony\Component\Workflow\Workflow;
+use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository;
/**
* Load people into database
@@ -39,14 +49,21 @@ use Chill\MainBundle\Doctrine\Model\Point;
*/
class LoadPeople extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
{
-
use \Symfony\Component\DependencyInjection\ContainerAwareTrait;
- protected $faker;
+ protected Generator $faker;
- public function __construct()
+ protected Registry $workflowRegistry;
+
+ protected SocialIssueRepository $socialIssueRepository;
+
+ protected array $cacheSocialIssues = array();
+
+ public function __construct(Registry $workflowRegistry, SocialIssueRepository $socialIssueRepository)
{
- $this->faker = \Faker\Factory::create('fr_FR');
+ $this->faker = Factory::create('fr_FR');
+ $this->workflowRegistry = $workflowRegistry;
+ $this->socialIssueRepository = $socialIssueRepository;
}
public function prepare()
@@ -165,7 +182,7 @@ class LoadPeople extends AbstractFixture implements OrderedFixtureInterface, Con
'Birthdate' => "1960-10-12",
'PlaceOfBirth' => "Ottignies Louvain-La-Neuve",
'Gender' => Person::MALE_GENDER,
- 'Email' => "Email d'un ami: roger@tt.com",
+ 'Email' => "roger@yopmail.com",
'CountryOfBirth' => 'BE',
'Nationality' => 'BE',
'CFData' => array(),
@@ -173,6 +190,15 @@ class LoadPeople extends AbstractFixture implements OrderedFixtureInterface, Con
), $specific);
}
+ private function getRandomSocialIssue(): SocialIssue
+ {
+ if (0 === count($this->cacheSocialIssues)) {
+ $this->cacheSocialIssues = $this->socialIssueRepository->findAll();
+ }
+
+ return $this->cacheSocialIssues[\array_rand($this->cacheSocialIssues)];
+ }
+
/**
* create a new person from array data
*
@@ -183,14 +209,21 @@ class LoadPeople extends AbstractFixture implements OrderedFixtureInterface, Con
private function addAPerson(array $person, ObjectManager $manager)
{
$p = new Person();
- $p->addAccompanyingPeriod(
- new AccompanyingPeriod(
- (new \DateTime())
- ->sub(
- new \DateInterval('P'.\random_int(0, 180).'D')
- )
- )
+ $accompanyingPeriod = new AccompanyingPeriod(
+ (new \DateTime())
+ ->sub(
+ new \DateInterval('P' . \random_int(0, 180) . 'D')
+ )
);
+ $p->addAccompanyingPeriod($accompanyingPeriod);
+ $accompanyingPeriod->addSocialIssue($this->getRandomSocialIssue());
+
+ if (\random_int(0, 10) > 3) {
+ $accompanyingPeriod->setAddressLocation($this->createAddress());
+ $manager->persist($accompanyingPeriod->getAddressLocation());
+ $workflow = $this->workflowRegistry->get($accompanyingPeriod);
+ $workflow->apply($accompanyingPeriod, 'confirm');
+ }
foreach ($person as $key => $value) {
switch ($key) {
@@ -235,6 +268,29 @@ class LoadPeople extends AbstractFixture implements OrderedFixtureInterface, Con
echo "add person'".$p->__toString()."'\n";
}
+ private function createAddress(): Address
+ {
+ $loader = new NativeLoader();
+ $objectSet = $loader->loadData([
+ Address::class => [
+ 'address' => [
+ 'street' => '',
+ 'streetNumber' => '',
+ 'validFrom' => '',
+ 'postCode' => $this->getPostalCode()
+ ],
+ ],
+ ]);
+
+ return $objectSet->getObjects()['address'];
+ }
+
+ private function getPostalCode(): PostalCode
+ {
+ $ref = LoadPostalCodes::$refs[\array_rand(LoadPostalCodes::$refs)];
+
+ return $this->getReference($ref);
+ }
/**
* Create a random point
diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialActions.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialActions.php
deleted file mode 100644
index ec47c6e0b..000000000
--- a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialActions.php
+++ /dev/null
@@ -1,82 +0,0 @@
-
- *
- * 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\DataFixtures\ORM;
-
-use Doctrine\Common\DataFixtures\AbstractFixture;
-use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
-use Doctrine\Persistence\ObjectManager;
-
-use Chill\PersonBundle\Entity\SocialWork\SocialAction;
-
-/**
- * Create social actions
- *
- */
-class LoadSocialActions extends AbstractFixture implements OrderedFixtureInterface
-{
- public function getOrder()
- {
- return 10020;
- }
-
- public static $socialActions = [
- 'social_action_info_conseil' => [
- 'title' => [
- 'fr' => 'Informer, conseiller'
- ],
- 'issue' => 'social_issue_prev_prot'
- ],
- 'social_action_instruire' => [
- 'title' => [
- 'fr' => 'Instruire l\'imprime unique pour des impayés'
- ],
- 'issue' => 'social_issue_prev_prot'
- ],
- 'social_action_MASP' => [
- 'title' => [
- 'fr' => 'MASP'
- ],
- 'issue' => 'social_issue_diff_fin'
- ],
- 'social_action_protection_enfant' => [
- 'title' => [
- 'fr' => 'Protection Enfant confié dans le cadre judiciaire'
- ],
- 'issue' => 'social_issue_enfant_protection'
- ],
- ];
-
- public function load(ObjectManager $manager)
- {
- foreach (static::$socialActions as $ref => $new) {
- $socialAction = new SocialAction();
- $socialAction->setTitle($new['title']);
- $socialAction->setIssue($this->getReference($new['issue']));
- $socialAction->setDefaultNotificationDelay(new \DateInterval('P5D'));
-
- $manager->persist($socialAction);
- $this->addReference($ref, $socialAction);
- print("Adding SocialAction '".$new['title']['fr']."'\n");
- }
-
- $manager->flush();
- }
-}
diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialGoals.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialGoals.php
deleted file mode 100644
index a6c2b0ef0..000000000
--- a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialGoals.php
+++ /dev/null
@@ -1,70 +0,0 @@
-
- *
- * 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\DataFixtures\ORM;
-
-use Doctrine\Common\DataFixtures\AbstractFixture;
-use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
-use Doctrine\Persistence\ObjectManager;
-
-use Chill\PersonBundle\Entity\SocialWork\Goal;
-
-
-/**
- * Create social goals
- *
- */
-class LoadSocialGoals extends AbstractFixture implements OrderedFixtureInterface
-{
- public function getOrder()
- {
- return 10030;
- }
-
- public static $socialGoals = [
- 'social_goal_instuire_dossier' => [
- 'title' => [
- 'fr' => 'Instruire le dossier de surendettement'
- ],
- 'action' => 'social_action_MASP'
- ],
- 'social_goal_proteger' => [
- 'title' => [
- 'fr' => 'Protéger via une assistance educative placement'
- ],
- 'action' => 'social_action_protection_enfant'
- ],
- ];
-
- public function load(ObjectManager $manager)
- {
- foreach (static::$socialGoals as $ref => $new) {
- $socialGoal = new Goal();
- $socialGoal->setTitle($new['title']);
- $socialGoal->addSocialAction($this->getReference($new['action']));
-
- $manager->persist($socialGoal);
- $this->addReference($ref, $socialGoal);
- print("Adding SocialGoal '".$new['title']['fr']."'\n");
- }
-
- $manager->flush();
- }
-}
diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialIssues.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialIssues.php
deleted file mode 100644
index eb9c303ed..000000000
--- a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialIssues.php
+++ /dev/null
@@ -1,90 +0,0 @@
-
- *
- * 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\DataFixtures\ORM;
-
-use Doctrine\Common\DataFixtures\AbstractFixture;
-use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
-use Doctrine\Persistence\ObjectManager;
-
-use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
-
-/**
- * Create social issues
- *
- */
-class LoadSocialIssues extends AbstractFixture implements OrderedFixtureInterface
-{
- public function getOrder()
- {
- return 10010;
- }
-
- public static $socialIssues = [
- 'social_issue_diff_fin_or_admin' => [
- 'title' => [
- 'fr' => 'ADULTE - DIFFICULTES FINANCIERES ET/OU ADMINISTRATIVES'
- ]
- ],
- 'social_issue_prev_prot' => [
- 'title' => [
- 'fr' => 'ADULTE PREVENTION/PROTECTION'
- ],
- 'parent' => 'social_issue_diff_fin_or_admin'
- ],
- 'social_issue_diff_fin' => [
- 'title' => [
- 'fr' => 'Difficulté financière'
- ],
- 'parent' => 'social_issue_diff_fin_or_admin'
- ],
- 'social_issue_enfant_famille' => [
- 'title' => [
- 'fr' => 'Enfant / famille'
- ]
- ],
- 'social_issue_enfant_protection' => [
- 'title' => [
- 'fr' => 'enfant - protection'
- ],
- 'parent' => 'social_issue_enfant_famille'
- ],
- ];
-
- public function load(ObjectManager $manager)
- {
- foreach (static::$socialIssues as $ref => $new) {
- $socialIssue = new SocialIssue();
- $socialIssue->setTitle($new['title']);
-
- if ( array_key_exists('parent', $new)) {
- $parentRef = $new['parent'];
- $parent = $this->getReference($parentRef);
- $socialIssue->setParent($parent);
- }
-
- $manager->persist($socialIssue);
- $this->addReference($ref, $socialIssue);
- print("Adding SocialIssue '".$new['title']['fr']."'\n");
- }
-
- $manager->flush();
- }
-}
diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialResults.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialResults.php
deleted file mode 100644
index 573313573..000000000
--- a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialResults.php
+++ /dev/null
@@ -1,94 +0,0 @@
-
- *
- * 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\DataFixtures\ORM;
-
-use Doctrine\Common\DataFixtures\AbstractFixture;
-use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
-use Doctrine\Persistence\ObjectManager;
-
-use Chill\PersonBundle\Entity\SocialWork\Result;
-
-
-/**
- * Create social results
- *
- */
-class LoadSocialResults extends AbstractFixture implements OrderedFixtureInterface
-{
- public function getOrder()
- {
- return 10040;
- }
-
- public static $socialResults = [
- 'social_result_FSL_acces' => [
- 'title' => [
- 'fr' => 'FSL - accès cautionnement'
- ],
- 'action' => 'social_action_instruire'
- ],
- 'social_result_FSL_maintien' => [
- 'title' => [
- 'fr' => 'FSL maintien - impayés de loyer'
- ],
- 'action' => 'social_action_MASP'
- ],
- 'social_result_soutien_parental' => [
- 'title' => [
- 'fr' => 'Soutien parental'
- ],
- // 'action' => 'social_action_protection_enfant', (via le goal)
- 'goal' => 'social_goal_proteger'
- ],
- 'social_result_accompagnement_mineur' => [
- 'title' => [
- 'fr' => 'Accompagnement du mineur'
- ],
- // 'action' => 'social_action_protection_enfant', (via le goal)
- 'goal' => 'social_goal_proteger',
- ],
- ];
-
- public function load(ObjectManager $manager)
- {
- foreach (static::$socialResults as $ref => $new) {
- $socialResult = new Result();
- $socialResult->setTitle($new['title']);
-
- if ( array_key_exists('action', $new)) {
- $action = $this->getReference($new['action']);
- $socialResult->addSocialAction($action);
- }
-
- if ( array_key_exists('goal', $new)) {
- $goal = $this->getReference($new['goal']);
- $socialResult->addGoal($goal);
- }
-
-
- $manager->persist($socialResult);
- $this->addReference($ref, $socialResult);
- print("Adding SocialResult '".$new['title']['fr']."'\n");
- }
-
- $manager->flush();
- }
-}
diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialWorkMetadata.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialWorkMetadata.php
new file mode 100644
index 000000000..f96fb5fc2
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadSocialWorkMetadata.php
@@ -0,0 +1,44 @@
+importer = $importer;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function load(ObjectManager $manager)
+ {
+ try {
+ $csv = Reader::createFromPath(__DIR__.'/data/social_work_metadata.csv');
+ } catch (Throwable $e) {
+ throw new Exception('Error while loading CSV.',0, $e);
+ }
+
+ $csv->setDelimiter(";");
+
+ $this->importer->import($csv);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getOrder()
+ {
+ return 9500;
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/data/social_work_metadata.csv b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/data/social_work_metadata.csv
new file mode 100644
index 000000000..6257b904b
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/data/social_work_metadata.csv
@@ -0,0 +1,420 @@
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;ACCES AUX DROITS;Informer, conseiller;;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;ACCES AUX DROITS;Aider à l'inclusion numérique;;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;ACCES AUX DROITS;Demander une aide juridictionnelle;;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;ACCES AUX DROITS;Aider à l'ouverture aux droits;;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;ACCES AUX DROITS;Demander une aide alimentaire;;;;Demande aide alimentaire
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Informer, conseiller;;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : Centre Communal d’Action Sociale;;Demande aide impayé CCAS
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : CAF/MSA - Secours d’urgence;;Demande aide impayé CAF
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : CAF/MSA - Aide financière;;Demande aide impayé CAF
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : Caisse Primaire d’Assurance Maladie;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : FSL Maintien - Impayés de loyer;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : FSL Maintien - Énergie / Fluides;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : FSL Maintien - Impayés télécommunication;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : FSL Maintien - Impayés aire d'accueil GDV ;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : FSL Maintien - Lié à la COVID;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une aide pour des impayés;;Objectif : Secours exceptionnels;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Instruire le dossier de surendettement;;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une mesure de protection adulte;;Objectif : Sauvegarde de justice;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une mesure de protection adulte;;Objectif : Mesure d'Accompagnement Judiciaire (MAJ);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une mesure de protection adulte;;Objectif : Signalement personne vulnérable;;Formulaire signalement personne vulnérable
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander une mesure de protection adulte;;Objectif : Mesure de protection personne majeure (tutelle, curatelle);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Faire une demande auprès des associations caritatives;;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Instruire des formulaires auprès d'autres organismes (Locapass, Fastt, …);;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Instruire une première demande d'AEB;;;;Demande AEB
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander un renouvellement d'AEB;;Objectif : Dans l'attente d'une mesure de protection ;;Renouvellement AEB
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander un renouvellement d'AEB;;Objectif : Pour poursuivre les objectifs engagés;;Renouvellement AEB
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Instruire une première demande de MASP;;;;Demande MAPS
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander un renouvellement MASP;;Objectif : Dans l'attente d'une mesure de protection ;;Renouvellement MASP
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Demander un renouvellement MASP;;Objectif : Pour poursuivre les objectifs engagés;;Renouvellement MASP
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Soutenir dans les démarches administratives;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Aider au tri, au classement et à l’archivage des documents administratifs;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Soutenir les ménages dans l’apurement des dettes, accompagner les ménages endettées, surendettées;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Accompagner les ménages dans leur gestion budgétaire;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Aider les ménages à se questionner sur leur mode de consommation;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Assurer une fonction de médiation;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Soutenir les ménages dans les démarches liées au logement;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Aider à l'accès aux droits;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Aider à l'inclusion numérique;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Instruire des formulaires d'autres organismes non référencés…;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Instruire le dossier de surendettement ;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Cibler des objectifs avec l'usager;Objectif : Demander ou renouveler la couverture santé (ACS);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide alimentaire;;;Demande aide alimentaire
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : Centre Communal d’Action Sociale;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : CAF/MSA - Secours d’urgence;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : CAF/MSA - Aide financière;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : Caisse Primaire d’Assurance Maladie ;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Cautionnement;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Dépôt de garantie;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - 1er loyer;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Frais d’agence;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Assurances;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Déménagement;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Aide à l’installation;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Facture résiliation énergie (nv logement);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Impayés de loyer;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Énergie / Fluides;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Impayés télécommunication;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Impayés aire d'accueil GDV ;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Lié à la COVID;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : Secours exceptionnels;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une aide pour des impayés ou accès logement;Objectif : Mesure ASLL;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Faire une demande auprès de Association caritative;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une mesure de protection ;Objectif : Sauvegarde de justice;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une mesure de protection ;Objectif : Signalement personne vulnérable;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une mesure de protection ;Objectif : Mesure de protection personne majeure (tutelle, curatelle);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une mesure de protection ;Objectif : Mesure d'Accompagnement Judiciaire (MAJ);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Demander une mesure de protection ;Objectif : Mesure Judiciaire d'Aide à la Gestion du Budget Familial (MJAGBF);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Arrêt à l'initiative du ménage pour déménagement;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Suspension momentanée de l'accompagnement par le ménage ou le professionnel;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Arrêt pour absence d'adhésion;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Arrêt à l'initiative du ménage pour séparation;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Arrêt à l'initiative du professionnel pour absence d'avancée ;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Retour à l'autonomie;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Transmission pour mesure judiciaire d'aide à la gestion du budget familial;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Orientation vers une MASP;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Transmission pour une mesure d'accompagnement judiciaire ;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Renouvellement de l'AEB dans l'attente d'une mesure de protection ;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer un AEB;Conclure l'AEB;;Résultat : Renouvellement de l'AEB pour poursuivre les objectifs engagés;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Soutenir dans les démarches administratives;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Aider au tri, au classement et à l’archivage des documents administratifs;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Soutenir les ménages dans l’apurement des dettes, accompagner les ménages endettées, surendettées;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Accompagner les ménages dans leur gestion budgétaire;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Aider les ménages à se questionner sur leur mode de consommation;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Assurer une fonction de médiation;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Soutenir les ménages dans les démarches liées au logement;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Aider à l'accès aux droits;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Aider à l'inclusion numérique;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Instruire des formulaires d'autres organismes non référencés…;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Instruire le dossier de surendettement ;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Cibler des objectifs avec l'usager;Objectif : Demander ou renouveler la couverture santé (ACS);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide alimentaire;;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : Centre Communal d’Action Sociale;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : CAF/MSA - Secours d’urgence;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : CAF/MSA - Aide financière;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : Caisse Primaire d’Assurance Maladie ;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Cautionnement;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Dépôt de garantie;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - 1er loyer;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Frais d’agence;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Assurances;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Déménagement;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Aide à l’installation;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Accès - Facture résiliation énergie (nv logement);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Impayés de loyer;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Énergie / Fluides;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Impayés télécommunication;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Impayés aire d'accueil GDV ;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : FSL Maintien - Lié à la COVID;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : Secours exceptionnels;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une aide pour des impayés ou accès logement;Objectif : Mesure ASLL;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une mesure de protection adulte;Objectif : Sauvegarde de justice;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une mesure de protection adulte;Objectif : Signalement personne vulnérable;;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une mesure de protection adulte;Objectif : Mesure de protection personne majeure (tutelle, curatelle);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une mesure de protection adulte;Objectif : Mesure d'Accompagnement Judiciaire (MAJ);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Demander une mesure de protection adulte;Objectif : Mesure Judiciaire d'Aide à la Gestion du Budget Familial (MJAGBF);;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Arrêt à l'initiative du ménage pour déménagement;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Suspension momentanée de l'accompagnement par le ménage ou le professionnel;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Arrêt pour absence d'adhésion;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Arrêt à l'initiative du ménage pour séparation;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Arrêt à l'initiative du professionnel pour absence d'avancée ;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Retour à l'autonomie;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Transmission pour mesure judiciaire d'aide à la gestion du budget familial;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Transmission pour une mesure d'accompagnement judiciaire ;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Renouvellement de MASP dans l'attente d'une mesure de protection ;
+AD - PREVENTION, ACCES AUX DROITS, BUDGET;SOUTIEN EQUILIBRE BUDGET;Exercer une MASP;Conclure la MASP;;Résultat : Renouvellement de MASP pour poursuivre les objectifs engagés;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Informer, conseiller;;;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander une aide pour l'accès;;Objectif : FSL Accès - Cautionnement;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander une aide pour l'accès;;Objectif : FSL Accès - Dépôt de garantie;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander une aide pour l'accès;;Objectif : FSL Accès - 1er loyer;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander une aide pour l'accès;;Objectif : FSL Accès - Frais d’agence;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander une aide pour l'accès;;Objectif : FSL Accès - Assurances;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander une aide pour l'accès;;Objectif : FSL Accès - Déménagement;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander une aide pour l'accès;;Objectif : FSL Accès - Aide à l’installation;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander une aide pour l'accès;;Objectif : FSL Accès - Facture résiliation énergie (nv logement);;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander une aide pour l'accès;;Objectif : FSL Accès - Mesure ASLL;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Demander auprès des Bailleurs sociaux, mairies, partenaires;;;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Instruire une demande DALO, DAHO;;;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Instruire une demande SIAO;;;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Instruire une demande ASLL;;;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Instruire une demande au Contingent préfectoral;;;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Instruire une demande au 115;;;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Intervenir au commandement de payer;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Instruire la fiche Assignation;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Répondre au commandement de quitter les lieux;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Répondre au concours de la force publique;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Demander une aide financière FSL pour impayé de loyer;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Déposer un dossier de surendettement;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Demander auprès des Bailleurs sociaux, mairies, partenaires;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Instruire une demande DALO, DAHO;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Instruire une demande SIAO;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Instruire une demande ASLL;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Instruire une demande au Contingent préfectoral;;
+AD - LOGEMENT;ACCES LOGEMENT (RE);Prévenir de l'expulsion;;Objectif : Instruire une demande au 115;;
+AD - LOGEMENT;HABITAT INDIGNE;Informer, conseiller;;;;
+AD - LOGEMENT;HABITAT INDIGNE;Demander une aide pour incurie;;Objectif : FSL maintien - aide incurie;;
+AD - LOGEMENT;HABITAT INDIGNE;Instruire la grille de signalement;;;;
+AD - LOGEMENT;HABITAT INDIGNE;Faire intervenir d'autres partenaires;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Informer, conseiller;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Demander un accompagnement psychologue insertion;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Exercer l'accompagnement psychologue insertion;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Renouveller l'accompagnement psychologue insertion;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Réorienter l'usager vers autres structures pour un accompagnement psychologique;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Demander l'accompagnement global;;Objectif : Axe 2;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Exercer l'accompagnement global;;Objectif : Axe 2;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Renouveller l'accompagnement global;;Objectif : Axe 2;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Demander l'accompagnement global;;Objectif : Axe 3 (agent d'insertion);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Exercer l'accompagnement global;;Objectif : Axe 3 (agent d'insertion);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Renouveller l'accompagnement global;;Objectif : Axe 3 (agent d'insertion);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;ACCOMPAGNEMENT INSERTION;Instruire une demande MOVEA;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Informer, conseiller;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;"Aider à l'ouverture de droits
+";;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renseigner la plateforme INCLUSION@COM pour les chantiers d'insertion;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Soutenir le parcours professionnel (emploi, formation, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Demander l'accompagnement global Axe 2 (orientation Pôle Emploi);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Orienter vers une structure de l'insertion (chantier, AI, ETTI, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Demander la médiation emploi;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Création d'entreprise;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Demander l'accompagnement travailleur non salarié;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Demander l'accompagnement ASR CEIDRE;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Déposer un dossier MDPH;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Déposer un dossier retraite;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Soutenir l'accès au logement;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Accompagner le budget;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Soutenir la mobilité (MOVEA, transport solidaire, PST, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Demander le psychologue insertion;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Etre accompagné dans la parentalité;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Initier ou maintenir un parcours santé (cure, hospitalisation, CMP, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Solliciliter un FAII;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Demander un réorientation Pôle Emploi;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire le 1er Contrat d'Engagement Réciproque;;Objectif : Autre;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Soutenir le parcours professionnel (emploi, formation, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Demander l'accompagnement global Axe 2 (orientation Pôle Emploi);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Orienter vers une structure de l'insertion (chantier, AI, ETTI, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Demander la médiation emploi;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Création d'entreprise;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Demander l'accompagnement travailleur non salarié;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Demander l'accompagnement ASR CEIDRE;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Déposer un dossier MDPH;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Déposer un dossier retraite;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Soutenir l'accès au logement;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Accompagner le budget;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Soutenir la mobilité (MOVEA, transport solidaire, PST, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Demander le psychologue insertion;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Etre accompagné dans la parentalité;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Initier ou maintenir un parcours santé;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Solliciliter un FAII;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Demander un réorientation Pôle Emploi;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Renouveler le Contrat d'Engagement Réciproque;;Objectif : Autre;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Soutenir le parcours professionnel (emploi, formation, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Demander l'accompagnement global Axe 2 (orientation Pôle Emploi);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Orienter vers une structure de l'insertion (chantier, AI, ETTI, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Demander la médiation emploi;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Création d'entreprise;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Demander l'accompagnement travailleur non salarié;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Demander l'accompagnement ASR CEIDRE;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Déposer un dossier MDPH;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Déposer un dossier retraite;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Soutenir l'accès au logement;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Accompagner le budget;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Soutenir la mobilité (MOVEA, transport solidaire, PST, …);;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Demander le psychologue insertion;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Etre accompagné dans la parentalité;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Initié ou maintenir un parcours santé;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Solliciliter un FAII;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Demander un réorientation Pôle Emploi;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;RSA;Faire un avenant au Contrat d'Engagement Réciproque;;Objectif : Autre;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;JEUNES 16/25 AIDE FINANCIERE INSERTION;Informer, conseiller;;;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;JEUNES 16/25 AIDE FINANCIERE INSERTION;Demander une aide FAJ;;Objectif : SU bons alimentaires;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;JEUNES 16/25 AIDE FINANCIERE INSERTION;Demander une aide FAJ;;Objectif : SU bons hygiène;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;JEUNES 16/25 AIDE FINANCIERE INSERTION;Demander une aide FAJ;;Objectif : SU bons carburant;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;JEUNES 16/25 AIDE FINANCIERE INSERTION;Demander une aide FAJ;;Objectif : SU virement;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;JEUNES 16/25 AIDE FINANCIERE INSERTION;Solliciter le comité FAJ;;Objectif : Aide financière;;
+AD - INSERTION SOCIALE PROFESSIONNELLE;JEUNES 16/25 AIDE FINANCIERE INSERTION;Solliciter le comité FAJ;;Objectif : Action d’accompagnement;;
+AD - SANTE;;Informer, conseiller;;;;
+AD - SANTE;;Orienter vers une structure de soins (CMP, psychologue, cure, …);;;;
+AD - SANTE;;Instruire un dossier MDPH;;;;
+AD - SANTE;;Accompagner le dépôt de dossier de pension d'invalidité;;;;
+AD - SANTE;;Instruire le dossier Complémentaire santé ACS;;;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Informer, conseiller;;;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Procéder à une élection de domicile;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Demander une aide financière;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Demander un interprète;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Prendre contact avec le CADA;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Aider à la constitution de dossier auprès de la préfecture;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Faire le lien avec les associations;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Demander une aide médicale d'état;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Demander une carte mobilité;;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Accompagner pour la scolarité des enfants (crèches, collège, péri scolaire, cantine…);;
+AD – ACCOMPAGNEMENT SPECIFIQUE;;Accompagner des publics spécifiques;;Objectif : Aider à la compréhension du français;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Informer, conseiller;;;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Orienter vers une autre structure;;;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Instruire une première demande d'Accompagnement Educatif de Prevention;;;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Demander le renouvellement de l'Accompagnement Educatif de Prévention;;;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Problèmatique : : Conduite à risque / Passage à l'acte isolé de l'enfant/adolescent;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Problèmatique : Comportement de l'enfant/adolescent en difficulté avec les limites, les interdits, les règles sociales;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Problèmatique : Difficultés de l'enfant en milieu scolaire ou extra-scolaire;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Problèmatique : Difficultés liées à la prise d'autonomie;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Problèmatique : Evènement - Traumatisme qui affecte l'équilibre familial;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Problèmatique : Problème de communication intrafamiliale;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Problèmatique : Parents démunis sur le plan éducatif;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Problèmatique : conflits parentaux ayant des résonnances sur l'enfant/l'adolescent;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Objectif : travailler la place de chacun;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Objectif : Conseiller et soutenir le positionnement éducatif;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Objectif : Accompagner la relation parent-enfant;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Objectif : Accompagner les parents en lien avec les lieux de scolarisation et de socialisation de leurs enfants;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Objectif : Accompagner/orienter les parents en lien avec les lieux de soins ;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Objectif : Accompagnement d’un jeune majeur;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Objectif : évaluation / Orientation;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Dispositif : mise en place TISF;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Dispositif : Mise en place AED;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Dispositif : Mise en place CJM;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Dispositif : Mise en place d'un AP;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Dispositif : Transmission judiciaire pour AEMO;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Dispositif : Tramsmission judiciaire pour MJIE;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Excercer un Accompagnement Educatif de Prévention;;Dispositif : Transmission judiciaire pour une mesure de protection;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Conclure un Accompagnement Educatif de Prévention;;;Résultat : Arrêt à l’initiative de la famille;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Conclure un Accompagnement Educatif de Prévention;;;Résultat : Souhait interruption momentanée de l’accompagnement par la famille ;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Conclure un Accompagnement Educatif de Prévention;;;Résultat : Orientation vers un partenaire extérieur;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Conclure un Accompagnement Educatif de Prévention;;;Résultat : Relais avec AS et/ou Puér;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Conclure un Accompagnement Educatif de Prévention;;;Résultat : Arrêt à échéance;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Conclure un Accompagnement Educatif de Prévention;;;Résultat : Transmission à l’ASE pour une mesure administrative;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Conclure un Accompagnement Educatif de Prévention;;;Résultat : Transmission à l’ASE pour une mesure judiciaire;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Conclure un Accompagnement Educatif de Prévention;;;Résultat : Renouvellement de l’AEP dans l’attente d’une mesure ASE;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Conclure un Accompagnement Educatif de Prévention;;;Résultat : Renouvellement de l’AEP pour poursuivre les objectifs engagés;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Réaliser une permanence éducative;;;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Médiatiser les relations familiales;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander le passage en IRCP;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une mise en place TISF;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander le renouvellement TISF;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une mise en place AED;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une mise en place AESF;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une mise en place d'un AP (accueil provisoire);;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une mesure ASMI;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une entrée en centre maternelle;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une entrée en centre parental;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une entrée en Unité Mère Enfant (UME);;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une MJAGBF;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une AED TDC;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander la désignation un TDC;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander un CAP ASE;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une AMAE (allocation mensuelle d'aide éducative);;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une allocation socio-éducatif spécifique;;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander un CAFI (aides fi);;
+ENFANT / FAMILLE;SOUTIEN A LA PARENTALITE;Solliciter les moyens dans le cadre d'un accompagnement à la parentalité ;;Demander une autre aide (associations…);;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter la CRIP;;Motif : arrêt de l'adhésion des parents à l'accompagnement du soutien à la parentalité;;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter la CRIP;;Motif : violence intra-familiale;;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter la CRIP;;Motif : suite à une ISG;;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter la CRIP;;;Faire une FRIP;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter la CRIP;;;Demander une MJIE;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter la CRIP;;;Demander une mesure de protection;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter la CRIP;;;Demander un OPP;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter la CRIP;;;Demander un placement;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter l'ASE (RJA) pour situation connue;;Motif : arrêt de l'adhésion des parents à l'accompagnement du soutien à la parentalité;;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter l'ASE (RJA) pour situation connue;;Motif : violence intra-familiale;;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter l'ASE (RJA) pour situation connue;;Motif : suite à une ISG;;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter l'ASE (RJA) pour situation connue;;;Demander une MJIE;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter l'ASE (RJA) pour situation connue;;;Demander une mesure de protection;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter l'ASE (RJA) pour situation connue;;;Demander un OPP;
+ENFANT / FAMILLE;ENFANT PREVENTION;Alerter l'ASE (RJA) pour situation connue;;;Demander un placement;
+ENFANT / FAMILLE;ENFANT PREVENTION;Répondre à Eléments en votre possession;;;;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation IP pour la CRIP;;;Evaluation sans suite;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation IP pour la CRIP;;;Evaluation demande d'accompagnement médico-sociale;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation IP pour la CRIP;;;Evaluation pur demande de MJIE;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation IP pour la CRIP;;;Evaluation pour demande d'AEMO;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation IP pour la CRIP;;;Evaluation pour demande de placement;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation IP pour la CRIP;;;Evaluation pour demande d'OPP;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation IP pour la CRIP;;;Note complémentaire actualisation;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation pour l'ASE;;;Evaluation sans suite;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation pour l'ASE;;;Evaluation demande d'accompagnement médico-sociale;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation pour l'ASE;;;Evaluation pur demande de MJIE;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation pour l'ASE;;;Evaluation pour demande d'AEMO;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation pour l'ASE;;;Evaluation pour demande de placement;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation pour l'ASE;;;Evaluation pour demande d'OPP;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Réaliser une Evaluation pour l'ASE;;;Note complémentaire actualisation;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Mettre en place un accompagnement médicosocial suite à une IP;;Demander un AEP;;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Mettre en place un accompagnement médicosocial suite à une IP;;Demander une mise en place AED;;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Mettre en place un accompagnement médicosocial suite à une IP;;Demander une mise en place TISF;;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Mettre en place un accompagnement médicosocial suite à une IP;;Demander la mise en place d'un Accueil Provisoire;;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Mettre en place un accompagnement médicosocial suite à une IP;;Demander l'orientation vers d'autres structures (soins, MDA, …);;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Mettre en place un accompagnement médicosocial suite à une IP;;Demander l'entrée en centre maternel ;;
+ENFANT / FAMILLE;INFORMATIONS PREOCCUPANTES;Mettre en place un accompagnement médicosocial suite à une IP;;Demander l'entrée unité mère / enfant;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Informer, conseiller;;;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Protéger des violences intra familiales;;Orienter vers SOS femme;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Protéger des violences intra familiales;;Proposer un conseiller ou une thérapie conjugale;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Protéger des violences intra familiales;;Proposer une médiation familiale;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Protéger des violences intra familiales;;Aider au dépôt de plainte;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Protéger des violences intra familiales;;Signaler un adulte vulnérable au procureur ;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Protéger des violences intra familiales;;Demander une mesure de protection majeur;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Protéger des violences intra familiales;;Faire une FRIP pour enfant en danger;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Protéger des violences intra familiales;;Instruire la fiche VIF;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Conseiller ;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Problématique : VIF;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Problématique : Difficultés éducatives;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Problématique : Protection de l’enfance;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Problématique : Violences sexuelles;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Problématique : Information suite à une séparation;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Orienter vers l'AS de secteur;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Orienter vers SOS femme;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Orienter vers un accompagnement CMP/libéral;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Orienter vers un conseiller ou thérapeute conjugal;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Aider au dépôt de plainte;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Signaler un adulte vulnérable au procureur ;;
+ENFANT / FAMILLE;VIOLENCES INTRA-FAMILIALES;Réaliser l'intervention sociale en gendarmerie;;Demander une mesure de protection majeur;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Accompagner le lieu d'accueil;;;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Mettre en place un soutien parental;;Mise en place TISF;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Mettre en place un soutien parental;;Demande aide financière / SU;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Mettre en place un soutien parental;;Demande SU;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Mettre en place un soutien parental;;Participation à des actions collectives;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Mettre en place un soutien parental;;Mise en place d'un loisir familial ;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Mettre en place un soutien parental;;Mise en place d'une aide transport;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Accompagner le mineur;;Demande mise en place d'un accompagnement psychologique;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Accompagner le mineur;;Construire le PPE;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Accompagner le mineur;;Mise en place CJM;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Accompagner le mineur;;Demande MDPH ;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Accompagner le mineur;;Organiser la mise en place d'un loisir;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Elaborer le lien partenarial;;;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Demander une protection majeur vulnérable;;;;
+ENFANT PROTECTION;ACCUEIL PROVISOIRE;Demande de MJIE (mesure judiciaire d'investigation éducative);;;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT DANS UN LIEU D'ACCUEIL;Accompagner le lieu d'accueil;;;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT DANS UN LIEU D'ACCUEIL;Mettre en place un soutien parental;;Mise en place TISF;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT DANS UN LIEU D'ACCUEIL;Mettre en place un soutien parental;;Demande aide financière;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT DANS UN LIEU D'ACCUEIL;Mettre en place un soutien parental;;Demande SU;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT DANS UN LIEU D'ACCUEIL;Mettre en place un soutien parental;;Demande de protection majeur vulnérable;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT DANS UN LIEU D'ACCUEIL;Accompagner le mineur;;;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT DANS UN LIEU D'ACCUEIL;Elaborer le lien partenarial;;;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT CHEZ LE PARENT;Mettre en place un soutien parental;;;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT CHEZ LE PARENT;Accompagner le mineur;;Construire le PPE;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT CHEZ LE PARENT;Accompagner le mineur;;Mise en place CJM;;
+ENFANT PROTECTION;ASSISTANCE EDUCATIVE DE PLACEMENT CHEZ LE PARENT;Accompagner le mineur;;Organiser la participation à un camp de vacances;;
+ENFANT PROTECTION;DELEGATION D'AUTORITE PARENTALE;Accompagner le lieu d'accueil;;;;
+ENFANT PROTECTION;DELEGATION D'AUTORITE PARENTALE;Accompagner le mineur;;;;
+ENFANT PROTECTION;DELEGATION D'AUTORITE PARENTALE;Elaborer le lien partenarial;;;;
+ENFANT PROTECTION;TUTELLE DEPARTEMENTALE;;;;;
+ENFANT PROTECTION;TUTELLE D'ETAT;Accompagner le lieu d'accueil;;;;
+ENFANT PROTECTION;TUTELLE D'ETAT;Accompagner le mineur;;;;
+ENFANT PROTECTION;TUTELLE D'ETAT;Elaborer le lien partenarial;;;;
+ENFANT PROTECTION;AEMO TDC;Accompagner le lieu d'accueil;;;;
+ENFANT PROTECTION;AEMO TDC;Mettre en place un soutien parental;;;;
+ENFANT PROTECTION;AEMO TDC;Accompagner le mineur;;;;
+ENFANT PROTECTION;AEMO TDC;Elaborer le lien partenarial;;;;
+ENFANT PROTECTION;AEMO FAMILLE;Mettre en place un soutien parental;;;;
+ENFANT PROTECTION;AEMO FAMILLE;Accompagner le mineur;;;;
+ENFANT PROTECTION;AEMO FAMILLE;Elaborer le lien partenarial;;;;
+AGREMENT;ASSISTANT MATERNEL;Instruire une première demande;;;;
+AGREMENT;ASSISTANT MATERNEL;Instruire un renouvellement;;;;
+AGREMENT;ASSISTANT MATERNEL;Instruire une modification;;;;
+AGREMENT;ASSISTANT MATERNEL;Suivre un(e) ASSMAT;;;;
+AGREMENT;ASSISTANT MATERNEL;Contrôler un(e) ASSMAT;;;;
+AGREMENT;ASSISTANT MATERNEL;Accompagner un(e) ASSMAT;;;;
+AGREMENT;ASSISTANT FAMILIAL;Instruire une première demande;;;;
+AGREMENT;ASSISTANT FAMILIAL;Instruire un renouvellement;;;;
+AGREMENT;ASSISTANT FAMILIAL;Instruire une modification;;;;
+AGREMENT;ASSISTANT FAMILIAL;Suivre un(e) ASSFAM;;;;
+AGREMENT;ASSISTANT FAMILIAL;Contrôler un(e) ASSFAM;;;;
+AGREMENT;ASSISTANT FAMILIAL;Accompagner un(e) ASSFAM;;;;
+AGREMENT;FAMILLE D'ACCUEIL PA/PH;Contribuer à l'évaluation si Famille d'Accueil connue;;Première demande;;
+AGREMENT;FAMILLE D'ACCUEIL PA/PH;Contribuer à l'évaluation si Famille d'Accueil connue;;Renouvellement;;
+AGREMENT;FAMILLE D'ACCUEIL PA/PH;Contribuer à l'évaluation si Famille d'Accueil connue;;Modification;;
+AGREMENT;FAMILLE D'ACCUEIL PA/PH;Contribuer à l'évaluation si Famille d'Accueil connue;;Suivi;;
diff --git a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php
index c9ad36319..9cc026909 100644
--- a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php
+++ b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php
@@ -345,6 +345,111 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac
]
]
],
+ [
+ 'class' => \Chill\PersonBundle\Entity\SocialWork\SocialIssue::class,
+ 'name' => 'social_issue',
+ 'base_path' => '/admin/social-work/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/new.html.twig',
+ ],
+ 'edit' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/edit.html.twig',
+ ]
+ ]
+ ],
+ [
+ 'class' => \Chill\PersonBundle\Entity\SocialWork\SocialAction::class,
+ 'name' => 'social_action',
+ 'base_path' => '/admin/social-work/social-action',
+ 'form_class' => \Chill\PersonBundle\Form\SocialWork\SocialActionType::class,
+ 'controller' => \Chill\PersonBundle\Controller\SocialWork\AdminSocialActionController::class,
+ 'actions' => [
+ 'index' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/SocialAction/index.html.twig',
+ ],
+ 'new' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/new.html.twig',
+ ],
+ 'edit' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/edit.html.twig',
+ ]
+ ]
+ ],
+ [
+ 'class' => \Chill\PersonBundle\Entity\SocialWork\Goal::class,
+ 'name' => 'social_goal',
+ 'base_path' => '/admin/social-work/goal',
+ 'form_class' => \Chill\PersonBundle\Form\SocialWork\GoalType::class,
+ 'controller' => \Chill\PersonBundle\Controller\SocialWork\AdminGoalController::class,
+ 'actions' => [
+ 'index' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/Goal/index.html.twig',
+ ],
+ 'new' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/new.html.twig',
+ ],
+ 'edit' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/edit.html.twig',
+ ]
+ ]
+ ],
+ [
+ 'class' => \Chill\PersonBundle\Entity\SocialWork\Result::class,
+ 'name' => 'social_result',
+ 'base_path' => '/admin/social-work/result',
+ 'form_class' => \Chill\PersonBundle\Form\SocialWork\ResultType::class,
+ 'controller' => \Chill\PersonBundle\Controller\SocialWork\AdminResultController::class,
+ 'actions' => [
+ 'index' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/Result/index.html.twig',
+ ],
+ 'new' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/new.html.twig',
+ ],
+ 'edit' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/edit.html.twig',
+ ]
+ ]
+ ],
+ [
+ 'class' => \Chill\PersonBundle\Entity\SocialWork\Evaluation::class,
+ 'name' => 'social_evaluation',
+ 'base_path' => '/admin/social-work/evaluation',
+ 'form_class' => \Chill\PersonBundle\Form\SocialWork\EvaluationType::class,
+ 'controller' => \Chill\PersonBundle\Controller\SocialWork\AdminEvaluationController::class,
+ 'actions' => [
+ 'index' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/Evaluation/index.html.twig',
+ ],
+ 'new' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/new.html.twig',
+ ],
+ 'edit' => [
+ 'role' => 'ROLE_ADMIN',
+ 'template' => '@ChillPerson/SocialWork/edit.html.twig',
+ ]
+ ]
+ ],
],
'apis' => [
[
diff --git a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php
index b2de73651..830a9e48e 100644
--- a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php
+++ b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php
@@ -25,6 +25,7 @@ namespace Chill\PersonBundle\Entity;
use Chill\MainBundle\Doctrine\Model\TrackUpdateInterface;
use Chill\MainBundle\Doctrine\Model\TrackCreationInterface;
use Chill\MainBundle\Entity\Scope;
+use Chill\MainBundle\Entity\Address;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork;
use Chill\PersonBundle\Entity\AccompanyingPeriod\ClosingMotive;
use Chill\PersonBundle\Entity\AccompanyingPeriod\Comment;
@@ -291,6 +292,22 @@ class AccompanyingPeriod implements TrackCreationInterface, TrackUpdateInterface
*/
private Collection $works;
+ /**
+ * @ORM\ManyToOne(
+ * targetEntity=Person::class,
+ * inversedBy="periodLocatedOn"
+ * )
+ */
+ private ?Person $personLocation = null;
+
+
+ /**
+ * @ORM\ManyToOne(
+ * targetEntity=Address::class
+ * )
+ */
+ private ?Address $addressLocation = null;
+
/**
* AccompanyingPeriod constructor.
*
@@ -824,7 +841,9 @@ class AccompanyingPeriod implements TrackCreationInterface, TrackUpdateInterface
public function addSocialIssue(SocialIssue $socialIssue): self
{
- $this->socialIssues[] = $socialIssue;
+ if (!$this->socialIssues->contains($socialIssue)) {
+ $this->socialIssues[] = $socialIssue;
+ }
return $this;
}
@@ -931,4 +950,67 @@ class AccompanyingPeriod implements TrackCreationInterface, TrackUpdateInterface
return $this;
}
+
+ public function getAddressLocation(): ?Address
+ {
+ return $this->addressLocation;
+ }
+
+ /**
+ * @Groups({"write"})
+ */
+ public function setAddressLocation(?Address $addressLocation = null): self
+ {
+ $this->addressLocation = $addressLocation;
+
+ return $this;
+ }
+
+ /**
+ * @Groups({"read"})
+ */
+ public function getPersonLocation(): ?Person
+ {
+ return $this->personLocation;
+ }
+
+ /**
+ * @Groups({"write"})
+ */
+ public function setPersonLocation(?Person $person = null): self
+ {
+ $this->personLocation = $person;
+
+ return $this;
+ }
+
+ /**
+ * Get the location, taking precedence into account
+ *
+ * @Groups({"read"})
+ */
+ public function getLocation(\DateTimeImmutable $at = null): ?Address
+ {
+ if ($this->getPersonLocation() instanceof Person) {
+ return $this->getPersonLocation()->getCurrentHouseholdAddress($at);
+ }
+
+ return $this->getAddressLocation();
+ }
+
+ /**
+ * Get where the location is
+ *
+ * @Groups({"read"})
+ */
+ public function getLocationStatus(): string
+ {
+ if ($this->getPersonLocation() instanceof Person) {
+ return 'person';
+ } elseif ($this->getAddressLocation() instanceof Address) {
+ return 'address';
+ } else {
+ return 'none';
+ }
+ }
}
diff --git a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php
index e80f37364..f97f8a243 100644
--- a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php
+++ b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php
@@ -160,12 +160,26 @@ use Symfony\Component\Validator\Constraints as Assert;
*/
private Collection $persons;
+ /**
+ * @var Collection
+ * @ORM\OneToMany(
+ * targetEntity=AccompanyingPeriodWorkEvaluation::class,
+ * mappedBy="accompanyingPeriodWork",
+ * cascade={"persist"},
+ * orphanRemoval=true
+ * )
+ * @Serializer\Groups({"read"})
+ * @internal /!\ the serialization for read / write evaluations is handled in `AccompanyingPeriodWorkDenormalizer`
+ */
+ private Collection $accompanyingPeriodWorkEvaluations;
+
public function __construct()
{
$this->goals = new ArrayCollection();
$this->results = new ArrayCollection();
$this->thirdParties = new ArrayCollection();
$this->persons = new ArrayCollection();
+ $this->accompanyingPeriodWorkEvaluations = new ArrayCollection();
}
public function getId(): ?int
@@ -388,6 +402,11 @@ use Symfony\Component\Validator\Constraints as Assert;
return $this->thirdParties;
}
+ public function getThirdPartys(): Collection
+ {
+ return $this->getThirdParties();
+ }
+
public function addThirdParty(ThirdParty $thirdParty): self
{
if (!$this->thirdParties->contains($thirdParty)) {
@@ -424,4 +443,31 @@ use Symfony\Component\Validator\Constraints as Assert;
return $this;
}
+
+ /**
+ * @return Collection
+ */
+ public function getAccompanyingPeriodWorkEvaluations()
+ {
+ return $this->accompanyingPeriodWorkEvaluations;
+ }
+
+ public function addAccompanyingPeriodWorkEvaluation(AccompanyingPeriodWorkEvaluation $evaluation): self
+ {
+ if (!$this->accompanyingPeriodWorkEvaluations->contains($evaluation)) {
+ $this->accompanyingPeriodWorkEvaluations[] = $evaluation;
+ $evaluation->setAccompanyingPeriodWork($this);
+ }
+
+ return $this;
+ }
+
+ public function removeAccompanyingPeriodWorkEvaluation(AccompanyingPeriodWorkEvaluation $evaluation): self
+ {
+ $this->accompanyingPeriodWorkEvaluations
+ ->removeElement($evaluation);
+ $evaluation->setAccompanyingPeriodWork(null);
+
+ return $this;
+ }
}
diff --git a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php
new file mode 100644
index 000000000..cd4bb3ac4
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php
@@ -0,0 +1,369 @@
+documents = new ArrayCollection();
+ }
+
+ /**
+ * @return int|null
+ */
+ public function getId(): ?int
+ {
+ return $this->id;
+ }
+
+ /**
+ * @return AccompanyingPeriodWork|null
+ */
+ public function getAccompanyingPeriodWork(): ?AccompanyingPeriodWork
+ {
+ return $this->accompanyingPeriodWork;
+ }
+
+ /**
+ * @param AccompanyingPeriodWork|null $accompanyingPeriodWork
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setAccompanyingPeriodWork(?AccompanyingPeriodWork $accompanyingPeriodWork): AccompanyingPeriodWorkEvaluation
+ {
+ if (
+ $accompanyingPeriodWork instanceof AccompanyingPeriodWork
+ && $this->accompanyingPeriodWork instanceof AccompanyingPeriodWork
+ && $this->accompanyingPeriodWork->getId() !== $accompanyingPeriodWork->getId()) {
+ throw new \RuntimeException("Changing the ".
+ "accompanyingPeriodWork is not allowed");
+ }
+
+ $this->accompanyingPeriodWork = $accompanyingPeriodWork;
+ return $this;
+ }
+
+ /**
+ * @return Evaluation|null
+ */
+ public function getEvaluation(): ?Evaluation
+ {
+ return $this->evaluation;
+ }
+
+ /**
+ * @param Evaluation|null $evaluation
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setEvaluation(?Evaluation $evaluation): AccompanyingPeriodWorkEvaluation
+ {
+ if (
+ ($evaluation instanceof Evaluation
+ && $this->evaluation instanceof Evaluation
+ && $evaluation->getId() !== $this->evaluation->getId())
+ ||
+ ($this->evaluation instanceof Evaluation
+ && null === $evaluation)
+ ) {
+ throw new \LogicException("once set, an ${self::class} cannot
+ change or remove the linked Evaluation::class");
+ }
+
+ $this->evaluation = $evaluation;
+
+ return $this;
+ }
+
+ /**
+ * @return DateTimeImmutable|null
+ */
+ public function getStartDate(): ?DateTimeImmutable
+ {
+ return $this->startDate;
+ }
+
+ /**
+ * @param DateTimeImmutable|null $startDate
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setStartDate(?DateTimeImmutable $startDate): AccompanyingPeriodWorkEvaluation
+ {
+ $this->startDate = $startDate;
+ return $this;
+ }
+
+ /**
+ * @return DateTimeImmutable|null
+ */
+ public function getEndDate(): ?DateTimeImmutable
+ {
+ return $this->endDate;
+ }
+
+ /**
+ * @param DateTimeImmutable|null $endDate
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setEndDate(?DateTimeImmutable $endDate): AccompanyingPeriodWorkEvaluation
+ {
+ $this->endDate = $endDate;
+ return $this;
+ }
+
+ /**
+ * @return DateTimeImmutable|null
+ */
+ public function getMaxDate(): ?DateTimeImmutable
+ {
+ return $this->maxDate;
+ }
+
+ /**
+ * @param DateTimeImmutable|null $maxDate
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setMaxDate(?DateTimeImmutable $maxDate): AccompanyingPeriodWorkEvaluation
+ {
+ $this->maxDate = $maxDate;
+ return $this;
+ }
+
+ /**
+ * @return DateInterval|null
+ */
+ public function getWarningInterval(): ?DateInterval
+ {
+ return $this->warningInterval;
+ }
+
+ /**
+ * @param DateInterval|null $warningInterval
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setWarningInterval(?DateInterval $warningInterval): AccompanyingPeriodWorkEvaluation
+ {
+ $this->warningInterval = $warningInterval;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getComment(): string
+ {
+ return $this->comment;
+ }
+
+ /**
+ * @param string $comment
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setComment(string $comment): AccompanyingPeriodWorkEvaluation
+ {
+ $this->comment = $comment;
+ return $this;
+ }
+
+ /**
+ * @return User|null
+ */
+ public function getCreatedBy(): ?User
+ {
+ return $this->createdBy;
+ }
+
+ /**
+ * @param User|null $createdBy
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setCreatedBy(?User $createdBy): AccompanyingPeriodWorkEvaluation
+ {
+ $this->createdBy = $createdBy;
+ return $this;
+ }
+
+ /**
+ * @return DateTimeImmutable|null
+ */
+ public function getCreatedAt(): ?DateTimeImmutable
+ {
+ return $this->createdAt;
+ }
+
+ /**
+ * @param DateTimeImmutable|null $createdAt
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setCreatedAt(\DateTimeInterface $createdAt): self
+ {
+ $this->createdAt = $createdAt;
+ return $this;
+ }
+
+ /**
+ * @return User|null
+ */
+ public function getUpdatedBy(): ?User
+ {
+ return $this->updatedBy;
+ }
+
+ /**
+ * @param User|null $updatedBy
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setUpdatedBy(?User $updatedBy): AccompanyingPeriodWorkEvaluation
+ {
+ $this->updatedBy = $updatedBy;
+ return $this;
+ }
+
+ /**
+ * @return DateTimeImmutable|null
+ */
+ public function getUpdatedAt(): ?DateTimeImmutable
+ {
+ return $this->updatedAt;
+ }
+
+ /**
+ * @param DateTimeImmutable|null $updatedAt
+ * @return AccompanyingPeriodWorkEvaluation
+ */
+ public function setUpdatedAt(\DateTimeInterface $updatedAt): self
+ {
+ $this->updatedAt = $updatedAt;
+ return $this;
+ }
+
+ /**
+ * @return Collection
+ */
+ public function getDocuments()
+ {
+ return $this->documents;
+ }
+
+
+}
diff --git a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluationDocument.php b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluationDocument.php
new file mode 100644
index 000000000..2c7ca1099
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluationDocument.php
@@ -0,0 +1,175 @@
+accompanyingPeriodWorkEvaluation;
+ }
+
+ /**
+ * @param AccompanyingPeriodWorkEvaluation|null $accompanyingPeriodWorkEvaluation
+ * @return AccompanyingPeriodWorkEvaluationDocument
+ */
+ public function setAccompanyingPeriodWorkEvaluation(?AccompanyingPeriodWorkEvaluation $accompanyingPeriodWorkEvaluation): AccompanyingPeriodWorkEvaluationDocument
+ {
+ $this->accompanyingPeriodWorkEvaluation = $accompanyingPeriodWorkEvaluation;
+ return $this;
+ }
+
+ /**
+ * @return StoredObject|null
+ */
+ public function getStoredObject(): ?StoredObject
+ {
+ return $this->storedObject;
+ }
+
+ /**
+ * @param StoredObject|null $storedObject
+ * @return AccompanyingPeriodWorkEvaluationDocument
+ */
+ public function setStoredObject(?StoredObject $storedObject): AccompanyingPeriodWorkEvaluationDocument
+ {
+ $this->storedObject = $storedObject;
+ return $this;
+ }
+
+ public function setCreatedBy(User $user): \Chill\MainBundle\Doctrine\Model\TrackCreationInterface
+ {
+ $this->createdBy = $user;
+ return $this;
+ }
+
+ public function setCreatedAt(\DateTimeInterface $datetime): \Chill\MainBundle\Doctrine\Model\TrackCreationInterface
+ {
+ $this->createdAt = $datetime;
+ return $this;
+ }
+
+ public function setUpdatedBy(User $user): \Chill\MainBundle\Doctrine\Model\TrackUpdateInterface
+ {
+ $this->updatedBy = $user;
+ return $this;
+ }
+
+ public function setUpdatedAt(\DateTimeInterface $datetime): \Chill\MainBundle\Doctrine\Model\TrackUpdateInterface
+ {
+ $this->updatedAt = $datetime;
+ return $this;
+ }
+
+ /**
+ * @return int|null
+ */
+ public function getId(): ?int
+ {
+ return $this->id;
+ }
+
+ /**
+ * @return User|null
+ */
+ public function getCreatedBy(): ?User
+ {
+ return $this->createdBy;
+ }
+
+ /**
+ * @return \DateTimeImmutable|null
+ */
+ public function getCreatedAt(): ?\DateTimeInterface
+ {
+ return $this->createdAt;
+ }
+
+ /**
+ * @return User|null
+ */
+ public function getUpdatedBy(): ?User
+ {
+ return $this->updatedBy;
+ }
+
+ /**
+ * @return DateTimeImmutable|null
+ */
+ public function getUpdatedAt(): ?DateTimeInterface
+ {
+ return $this->updatedAt;
+ }
+
+}
diff --git a/src/Bundle/ChillPersonBundle/Entity/Person.php b/src/Bundle/ChillPersonBundle/Entity/Person.php
index 695970bfa..cf00eb9f1 100644
--- a/src/Bundle/ChillPersonBundle/Entity/Person.php
+++ b/src/Bundle/ChillPersonBundle/Entity/Person.php
@@ -30,6 +30,7 @@ use Chill\MainBundle\Entity\Country;
use Chill\MainBundle\Entity\User;
use Chill\PersonBundle\Entity\Household\Household;
use Chill\PersonBundle\Entity\MaritalStatus;
+use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Household\HouseholdMember;
use Chill\MainBundle\Entity\HasCenterInterface;
use Chill\MainBundle\Entity\Address;
@@ -379,6 +380,19 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI
*/
private Collection $householdAddresses;
+ /**
+ * @ORM\OneToMany(
+ * targetEntity=AccompanyingPeriod::class,
+ * mappedBy="personLocation"
+ * )
+ */
+ private Collection $periodLocatedOn;
+
+ /**
+ * Person constructor.
+ *
+ * @param \DateTime|null $opening
+ */
public function __construct()
{
$this->accompanyingPeriodParticipations = new ArrayCollection();
diff --git a/src/Bundle/ChillPersonBundle/Entity/SocialWork/Evaluation.php b/src/Bundle/ChillPersonBundle/Entity/SocialWork/Evaluation.php
index e08a6de77..f01b2a4c1 100644
--- a/src/Bundle/ChillPersonBundle/Entity/SocialWork/Evaluation.php
+++ b/src/Bundle/ChillPersonBundle/Entity/SocialWork/Evaluation.php
@@ -3,10 +3,14 @@
namespace Chill\PersonBundle\Entity\SocialWork;
use Doctrine\ORM\Mapping as ORM;
+use Symfony\Component\Serializer\Annotation as Serializer;
/**
* @ORM\Entity
* @ORM\Table(name="chill_person_social_work_evaluation")
+ * @Serializer\DiscriminatorMap(typeProperty="type", mapping={
+ * "social_work_evaluation"=Evaluation::class
+ * })
*/
class Evaluation
{
@@ -14,26 +18,33 @@ class Evaluation
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
+ * @Serializer\Groups({"read"})
*/
private $id;
/**
* @ORM\Column(type="json")
+ * @Serializer\Groups({"read"})
*/
private $title = [];
/**
- * @ORM\Column(type="dateinterval", nullable=true)
+ * @ORM\Column(type="dateinterval", nullable=true, options={"default": null})
+ * @Serializer\Groups({"read"})
*/
private $delay;
/**
- * @ORM\Column(type="dateinterval")
+ * @ORM\Column(type="dateinterval", nullable=true, options={"default": null})
+ * @Serializer\Groups({"read"})
*/
private $notificationDelay;
/**
- * @ORM\ManyToOne(targetEntity=SocialAction::class)
+ * @ORM\ManyToOne(
+ * targetEntity=SocialAction::class,
+ * inversedBy="evaluations"
+ * )
*/
private $socialAction;
diff --git a/src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialAction.php b/src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialAction.php
index 506a736d8..bb05c900e 100644
--- a/src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialAction.php
+++ b/src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialAction.php
@@ -68,6 +68,15 @@ class SocialAction
*/
private $results;
+ /**
+ * @var Collection
+ * @ORM\OneToMany(
+ * targetEntity=Evaluation::class,
+ * mappedBy="socialAction"
+ * )
+ */
+ private Collection $evaluations;
+
public function __construct()
{
$this->children = new ArrayCollection();
@@ -257,4 +266,12 @@ class SocialAction
return $this;
}
+
+ /**
+ * @return Collection
+ */
+ public function getEvaluations(): Collection
+ {
+ return $this->evaluations;
+ }
}
diff --git a/src/Bundle/ChillPersonBundle/Form/SocialWork/EvaluationType.php b/src/Bundle/ChillPersonBundle/Form/SocialWork/EvaluationType.php
new file mode 100644
index 000000000..b45cd327e
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Form/SocialWork/EvaluationType.php
@@ -0,0 +1,71 @@
+
+ *
+ * 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\Evaluation;
+
+/**
+ * Class EvaluationType
+ *
+ * @package Chill\PersonBundle\Form
+ */
+class EvaluationType 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('delay')
+
+ ->add('notificationDelay');
+ }
+
+ /**
+ * @param OptionsResolver $resolver
+ */
+ public function configureOptions(OptionsResolver $resolver)
+ {
+ $resolver
+ ->setDefault('class', Evaluation::class)
+ ;
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/Form/SocialWork/GoalType.php b/src/Bundle/ChillPersonBundle/Form/SocialWork/GoalType.php
new file mode 100644
index 000000000..c86a7d6b9
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Form/SocialWork/GoalType.php
@@ -0,0 +1,85 @@
+
+ *
+ * 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\Goal;
+use Chill\PersonBundle\Entity\SocialWork\SocialAction;
+
+/**
+ * Class GoalType
+ *
+ * @package Chill\PersonBundle\Form
+ */
+class GoalType 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('socialActions', EntityType::class, [
+ 'class' => SocialAction::class,
+ 'required' => false,
+ 'multiple' => true,
+ 'choice_label' => function (SocialAction $issue) {
+ return $this->translatableStringHelper->localize($issue->getTitle());
+ }
+ ])
+
+ ->add('desactivationDate', DateType::class, [
+ 'attr' => array('class' => 'datepicker'),
+ 'widget'=> 'single_text',
+ 'format' => 'dd-MM-yyyy',
+ 'required' => false,
+ ]);
+}
+
+ /**
+ * @param OptionsResolver $resolver
+ */
+ public function configureOptions(OptionsResolver $resolver)
+ {
+ $resolver
+ ->setDefault('class', Goal::class)
+ ;
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/Form/SocialWork/ResultType.php b/src/Bundle/ChillPersonBundle/Form/SocialWork/ResultType.php
new file mode 100644
index 000000000..ee2cefe48
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Form/SocialWork/ResultType.php
@@ -0,0 +1,76 @@
+
+ *
+ * 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\Result;
+
+/**
+ * Class ResultType
+ *
+ * @package Chill\PersonBundle\Form
+ */
+class ResultType 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('accompanyingPeriodWorks')
+ ->add('accompanyingPeriodWorkGoals')
+ ->add('desactivationDate', DateType::class, [
+ 'attr' => array('class' => 'datepicker'),
+ 'widget'=> 'single_text',
+ 'format' => 'dd-MM-yyyy',
+ 'required' => false,
+ ]);
+}
+
+ /**
+ * @param OptionsResolver $resolver
+ */
+ public function configureOptions(OptionsResolver $resolver)
+ {
+ $resolver
+ ->setDefault('class', Result::class)
+ ;
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/Form/SocialWork/SocialActionType.php b/src/Bundle/ChillPersonBundle/Form/SocialWork/SocialActionType.php
new file mode 100644
index 000000000..7613bc2c7
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Form/SocialWork/SocialActionType.php
@@ -0,0 +1,90 @@
+
+ *
+ * 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\SocialAction;
+use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
+
+
+/**
+ * Class SocialActionType
+ *
+ * @package Chill\PersonBundle\Form
+ */
+class SocialActionType 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('issue', EntityType::class, [
+ 'class' => SocialIssue::class,
+ 'choice_label' => function (SocialIssue $issue) {
+ return $this->translatableStringHelper->localize($issue->getTitle());
+ }
+ ])
+ ->add('parent', EntityType::class, [
+ 'class' => SocialAction::class,
+ 'required' => false,
+ 'choice_label' => function (SocialAction $issue) {
+ return $this->translatableStringHelper->localize($issue->getTitle());
+ }
+ ])
+ ->add('defaultNotificationDelay')
+ ->add('desactivationDate', DateType::class, [
+ '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/Form/SocialWork/SocialIssueType.php b/src/Bundle/ChillPersonBundle/Form/SocialWork/SocialIssueType.php
new file mode 100644
index 000000000..1f21defd9
--- /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, [
+ 'attr' => ['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/AccompanyingPeriodRepository.php b/src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodRepository.php
index b0578c994..f9d1b060f 100644
--- a/src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodRepository.php
+++ b/src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodRepository.php
@@ -25,6 +25,7 @@ namespace Chill\PersonBundle\Repository;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;
+use Doctrine\ORM\QueryBuilder;
use Doctrine\Persistence\ObjectRepository;
final class AccompanyingPeriodRepository implements ObjectRepository
@@ -48,7 +49,7 @@ final class AccompanyingPeriodRepository implements ObjectRepository
return $this->repository->findAll();
}
- public function findBy(array $criteria, ?array $orderBy = null, $limit = null, $offset = null): ?AccompanyingPeriod
+ public function findBy(array $criteria, ?array $orderBy = null, $limit = null, $offset = null): array
{
return $this->repository->findBy($criteria, $orderBy, $limit, $offset);
}
@@ -62,5 +63,4 @@ final class AccompanyingPeriodRepository implements ObjectRepository
{
return AccompanyingPeriod::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/Repository/SocialWork/SocialIssueRepository.php b/src/Bundle/ChillPersonBundle/Repository/SocialWork/SocialIssueRepository.php
index b0324ba33..51ced6976 100644
--- a/src/Bundle/ChillPersonBundle/Repository/SocialWork/SocialIssueRepository.php
+++ b/src/Bundle/ChillPersonBundle/Repository/SocialWork/SocialIssueRepository.php
@@ -1,6 +1,25 @@
,
+ *
+ * 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\Repository\SocialWork;
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/chill/chillperson.scss b/src/Bundle/ChillPersonBundle/Resources/public/chill/chillperson.scss
index dace93340..e0a63e982 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/chill/chillperson.scss
+++ b/src/Bundle/ChillPersonBundle/Resources/public/chill/chillperson.scss
@@ -4,29 +4,24 @@
/*
* PERSON CONTEXT
*/
-
-div#header-person-name {
- background: none repeat scroll 0 0 $chill-green-dark;
- color: #FFF;
- padding-top: 1em;
- padding-bottom: 1em;
-}
-
-div#header-person-details {
- background: none repeat scroll 0 0 $chill-green;
- color: #FFF;
- padding-top: 1em;
- padding-bottom: 1em;
- div.contact {
- & > * {
- margin-right: 1em;
- }
- }
-}
-
-div#person_details_container {
- padding-top: 20px;
- padding-bottom: 20px;
+div.banner {
+ div#header-person-name {
+ background: none repeat scroll 0 0 $chill-green-dark;
+ color: $white;
+ padding-top: 1em;
+ padding-bottom: 1em;
+ }
+ div#header-person-details {
+ background: none repeat scroll 0 0 $chill-green;
+ color: $white;
+ padding-top: 1em;
+ padding-bottom: 1em;
+ div.contact {
+ & > * {
+ margin-right: 1em;
+ }
+ }
+ }
}
div.person-view {
@@ -83,80 +78,77 @@ div.person-view {
* ACCOMPANYING_COURSE CONTEXT
* Header custom for Accompanying Course
*/
+$chill-accourse-context: #718596;
-div#header-accompanying_course-name {
- background: none repeat scroll 0 0 #718596;
- color: #FFF;
- h1 {
- margin: 0.4em 0;
- }
- span {
- a {
- color: white;
+div.banner {
+ div#header-accompanying_course-name {
+ background: none repeat scroll 0 0 $chill-accourse-context;
+ color: $white;
+ h1 {
+ margin: 0.4em 0;
+ }
+ span {
+ a {
+ color: $white;
+ }
+ a:hover {
+ text-decoration: underline;
+ }
+ }
}
- a:hover {
- text-decoration: underline;
+ div#header-accompanying_course-details {
+ background: none repeat scroll 0 0 tint-color($chill-accourse-context, 20%);
+ color: $white;
+ padding-top: 1em;
+ padding-bottom: 1em;
}
- }
-}
-div#header-accompanying_course-details {
- background: none repeat scroll 0 0 #718596ab;
- color: #FFF;
- padding-top: 1em;
- padding-bottom: 1em;
}
/*
* HOUSEHOLD CONTEXT
* Header custom for Household
*/
+$chill-household-context: #929d69;
-div#header-household-name {
- background: none repeat scroll 0 0 #929d69; //#b97a7a;
- color: #FFF;
-
- h1 {
- margin: 0.4em 0;
- }
- span {
- a {
- color: white;
- }
- a:hover {
- text-decoration: underline;
- }
- }
+div.banner {
+ div#header-household-name {
+ background: none repeat scroll 0 0 $chill-household-context;
+ color: $white;
+ h1 {
+ margin: 0.4em 0;
+ }
+ span {
+ a {
+ color: $white;
+ }
+ a:hover {
+ text-decoration: underline;
+ }
+ }
+ div.household-members {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ span.badge-member {
+ flex-shrink: 0; flex-grow: 0; flex-basis: auto;
+ color: $white;
+ border: 1px solid #ffffff3b;
+ border-radius: 8px;
+ padding: 0.4em 0.8em;
+ margin-bottom: 0.2em;
+ margin-right: 0.3em;
+ &.holder { order: -1; }
+ &.child { order: 2; }
+ }
+ }
+ }
+ div#header-household-details {
+ background: none repeat scroll 0 0 tint-color($chill-household-context, 15%);
+ color: $white;
+ padding-top: 1em;
+ padding-bottom: 1em;
+ span.current-members-explain {
+ font-weight: bold;
+ }
+ }
}
-div#header-household-details {
- background: none repeat scroll 0 0 #b0b984; //#d29791;
- color: #FFF;
- padding-top: 1em;
- padding-bottom: 1em;
- span.current-members-explain {
- font-weight: bold;
- }
-}
-
-div.household-members {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- //justify-content: flex-end;
- span.badge-member {
- flex-shrink: 0; flex-grow: 0; flex-basis: auto;
- border: 1px solid #ffffff3b;
- color: #ffffff;
- padding: 0.4em 0.8em;
- margin-bottom: 0.2em;
- margin-right: 0.3em;
- border-radius: 8px;
- &.holder {
- order: -1;
- }
- &.child {
- order: 2;
- }
- }
-}
-
-
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/chill/index.js b/src/Bundle/ChillPersonBundle/Resources/public/chill/index.js
index 0e38c7d18..b2329a7f3 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/chill/index.js
+++ b/src/Bundle/ChillPersonBundle/Resources/public/chill/index.js
@@ -8,6 +8,7 @@ require('./scss/household_banner.scss');
require('./scss/accompanying_period_work.scss');
require('./scss/person_by_phonenumber.scss');
require('./scss/render_box.scss');
+require('./scss/flex_table.scss');
require('./scss/address_history.scss');
require('./svg/phone-alt-solid.svg');
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/chill/scss/flex_table.scss b/src/Bundle/ChillPersonBundle/Resources/public/chill/scss/flex_table.scss
new file mode 100644
index 000000000..b2a6a345b
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Resources/public/chill/scss/flex_table.scss
@@ -0,0 +1,31 @@
+/*
+ * flex-table overwrite: precision and exceptions
+ */
+
+///
+div.accompanyingcourse-resume {
+ div.associated-persons {
+ .flex-table .item-row .item-col:first-child {
+ flex-basis: 33%;
+ }
+ }
+}
+
+///
+div.accompanyingcourse-list, div.household-members {
+ .flex-table .item-bloc .item-row {
+ &:nth-child(2) {
+ flex-direction: row;
+ }
+ &:last-child {
+ flex-direction: column;
+ }
+ }
+}
+
+///
+div.list-with-period {
+ div.flex-table div.item-row div.item-col:first-child {
+ flex-basis: 33%;
+ }
+}
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/chill/scss/person_with_period.scss b/src/Bundle/ChillPersonBundle/Resources/public/chill/scss/person_with_period.scss
index 6be613ea3..b2ab06c2c 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/chill/scss/person_with_period.scss
+++ b/src/Bundle/ChillPersonBundle/Resources/public/chill/scss/person_with_period.scss
@@ -1,10 +1,7 @@
-/// complete and overwrite flex-table in chillmain.scss
-div.list-with-period,
-div.list-household-members {
- div.comment {
- // for the comment for household-members
- }
+///
+div.list-with-period, div.list-household-members {
+
div.periods {
div.header,
div.list-content {
@@ -13,7 +10,7 @@ div.list-household-members {
}
div.header {
position: relative;
- a.sc-button {
+ a.btn {
position: absolute;
width: 30px;
height: 30px;
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue
index 47feed87e..cf18dd4f2 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue
+++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue
@@ -1,486 +1,581 @@
-
-
-
-
{{ work.socialAction.text }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Motifs - objectifs - dispositifs
-
Orientations - résultats
+
+
+
+
+
{{ work.socialAction.text }}
-
-
-
- {{ $t('results_without_objective') }}
-
-
-
-
+
+
+
-
-
-
-
-
- {{ g.goal.title.fr }}
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
Motifs, objectifs et dispositifs disponibles pour ajout :
- {% if accompanying_period.requestorPerson is not null or accompanying_period.requestorThirdParty is not null %}
- {% if accompanying_period.requestorPerson is not null %}
-
+ {% if accompanying_period.requestorPerson is not null or accompanying_period.requestorThirdParty is not null %}
+ {% if accompanying_period.requestorPerson is not null %}
+
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Person/list.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Person/list.html.twig
index 2371ded7b..564bff97d 100644
--- a/src/Bundle/ChillPersonBundle/Resources/views/Person/list.html.twig
+++ b/src/Bundle/ChillPersonBundle/Resources/views/Person/list.html.twig
@@ -14,105 +14,107 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
#}
-
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Person/list_by_phonenumber.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Person/list_by_phonenumber.html.twig
index c182047b2..642225571 100644
--- a/src/Bundle/ChillPersonBundle/Resources/views/Person/list_by_phonenumber.html.twig
+++ b/src/Bundle/ChillPersonBundle/Resources/views/Person/list_by_phonenumber.html.twig
@@ -14,94 +14,96 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
#}
-
{{ title|default('Person search results by phonenumber')|trans }}
+
+
{{ title|default('Person search results by phonenumber')|trans }}
{{ thirdparty.getAddress|chill_entity_render_box({
'render': 'list',
@@ -92,7 +94,7 @@
{%- if options['customButtons']['replace'] is not defined and is_granted('CHILL_3PARTY_3PARTY_SHOW', thirdparty) -%}