diff --git a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php index d8f69035d..d46136173 100644 --- a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php +++ b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php @@ -201,12 +201,36 @@ final class ActivityController extends AbstractController 'role' => new Role('CHILL_ACTIVITY_UPDATE'), 'activityType' => $entity->getActivityType(), 'accompanyingPeriod' => $accompanyingPeriod, - ])->handleRequest($request); + ]); + + if ($form->has('documents')) { + $form->add('gendocTemplateId', HiddenType::class, [ + 'mapped' => false, + 'data' => null, + 'attr' => [ + // required for js + 'data-template-id' => 'data-template-id', + ], + ]); + } + + $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $this->entityManager->persist($entity); $this->entityManager->flush(); + if ($form->has('gendocTemplateId') && '' !== $form['gendocTemplateId']) { + return $this->redirectToRoute( + 'chill_docgenerator_generate_from_template', + [ + 'template' => $form->get('gendocTemplateId')->getData(), + 'entityClassName' => Activity::class, + 'entityId' => $entity->getId(), + ] + ); + } + $this->addFlash('success', $this->get('translator')->trans('Success : activity updated!')); $params = $this->buildParamsToUrl($person, $accompanyingPeriod); @@ -410,12 +434,20 @@ final class ActivityController extends AbstractController $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - if ($form->has('gendocTemplateId')) { - dd($form->get('gendocTemplateId')->getData()); - } $this->entityManager->persist($entity); $this->entityManager->flush(); + if ($form->has('gendocTemplateId') && '' !== $form['gendocTemplateId']) { + return $this->redirectToRoute( + 'chill_docgenerator_generate_from_template', + [ + 'template' => $form->get('gendocTemplateId')->getData(), + 'entityClassName' => Activity::class, + 'entityId' => $entity->getId(), + ] + ); + } + $this->addFlash('success', $this->get('translator')->trans('Success : activity created!')); $params = $this->buildParamsToUrl($person, $accompanyingPeriod); diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/index.js b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/index.js index 7bd6ae03d..0c209e69a 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/index.js +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/index.js @@ -2,7 +2,7 @@ import { createApp } from 'vue'; import { _createI18n } from 'ChillMainAssets/vuejs/_js/i18n' import { activityMessages } from './i18n' import store from './store' -import PickTemplate from 'ChillDocGeneratorAssets/vuejs/_components/PickTemplate.vue'; +import PickTemplate from 'ChillDocGeneratorAssets/vuejs/_components/PickTemplatePreventMoving.vue'; import {fetchTemplates} from 'ChillDocGeneratorAssets/api/pickTemplate.js'; import App from './App.vue'; @@ -41,48 +41,45 @@ const i18nGendoc = _createI18n({}); document.querySelectorAll('div[data-docgen-template-picker]').forEach(el => { fetchTemplates(el.dataset.entityClass).then(templates => { - let - picker = { - template: '', - components: { - PickTemplate, - }, - data() { - return { - templates: templates, - entityId: el.dataset.entityId, + const picker = { + template: + '', + components: { + PickTemplate, + }, + data() { + return { + templates: templates, + entityId: el.dataset.entityId, + } + }, + methods: { + generateDoc({event, link, template}) { + console.log('generateDoc'); + console.log('link', link); + console.log('template', template); + + let hiddenInput = document.querySelector("input[data-template-id]"); + + if (hiddenInput === null) { + console.error('hidden input not found'); + return; } - }, - methods: { - generateDoc({event, link, template}) { - console.log('generateDoc'); - console.log('link', link); - console.log('template', template); - event.preventDefault(); - let hiddenInput = document.querySelector("input[data-template-id]"); + hiddenInput.value = template; - if (hiddenInput === null) { - console.error('hidden input not found'); - return; - } + let form = document.querySelector('form[name="chill_activitybundle_activity"'); - hiddenInput.value = template; - - let form = document.querySelect('form[name="chill_activitybundle_activity"'); - - if (form === null) { - console.error('form not found'); - return; - } - - console.log('subbmitting formt'); - - form.submit(); + if (form === null) { + console.error('form not found'); + return; } + + form.submit(); } } - ; + }; createApp(picker).use(i18nGendoc).mount(el); }) diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/editAccompanyingCourse.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/editAccompanyingCourse.html.twig index 09ff16fec..b278c0300 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/editAccompanyingCourse.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/editAccompanyingCourse.html.twig @@ -24,12 +24,10 @@ window.activity = {{ activity_json|json_encode|raw }}; {{ encore_entry_script_tags('vue_activity') }} - {{ encore_entry_script_tags('mod_docgen_picktemplate') }} {% endblock %} {% block css %} {{ parent() }} {{ encore_entry_link_tags('mod_async_upload') }} {{ encore_entry_link_tags('vue_activity') }} - {{ encore_entry_link_tags('mod_docgen_picktemplate') }} {% endblock %} diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/editPerson.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/editPerson.html.twig index 72c74c68e..82c7403c6 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/editPerson.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/editPerson.html.twig @@ -39,11 +39,9 @@ window.activity = {{ activity_json|json_encode|raw }}; {{ encore_entry_script_tags('vue_activity') }} - {{ encore_entry_script_tags('mod_docgen_picktemplate') }} {% endblock %} {% block css %} {{ encore_entry_link_tags('mod_async_upload') }} {{ encore_entry_link_tags('vue_activity') }} - {{ encore_entry_link_tags('mod_docgen_picktemplate') }} {% endblock %} diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/newAccompanyingCourse.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/newAccompanyingCourse.html.twig index e491a34d5..47a61bd86 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/newAccompanyingCourse.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/newAccompanyingCourse.html.twig @@ -21,12 +21,10 @@ {% if default_location is not null %}window.default_location_id = {{ default_location.id }}{% endif %}; {{ encore_entry_script_tags('vue_activity') }} - {{ encore_entry_script_tags('mod_docgen_picktemplate') }} {% endblock %} {% block css %} {{ parent() }} {{ encore_entry_link_tags('mod_async_upload') }} {{ encore_entry_link_tags('vue_activity') }} - {{ encore_entry_link_tags('mod_docgen_picktemplate') }} {% endblock %} diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/newPerson.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/newPerson.html.twig index 712b996bd..962aee806 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/newPerson.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/newPerson.html.twig @@ -23,11 +23,9 @@ window.activity = {{ activity_json|json_encode|raw }}; {{ encore_entry_script_tags('vue_activity') }} - {{ encore_entry_script_tags('mod_docgen_picktemplate') }} {% endblock %} {% block css %} {{ encore_entry_link_tags('mod_async_upload') }} {{ encore_entry_link_tags('vue_activity') }} - {{ encore_entry_link_tags('mod_docgen_picktemplate') }} {% endblock %} diff --git a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php index 9a8e6b3b8..5c4f7f501 100644 --- a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php +++ b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php @@ -210,11 +210,8 @@ class ActivityContext implements */ public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void { - $doc = new StoredObject(); - // TODO push document to remote + $entity->addDocument($storedObject); - $this->em->persist($doc); - - $entity->addDocument($doc); + $this->em->persist($storedObject); } } diff --git a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php index 9a80fde3d..6cf029ed1 100644 --- a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php +++ b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php @@ -45,6 +45,7 @@ class AccompanyingPeriodWork implements AccompanyingPeriodLinkedWithSocialIssues /** * @ORM\ManyToOne(targetEntity=AccompanyingPeriod::class) * @Serializer\Groups({"read","read:accompanyingPeriodWork:light"}) + * @Serializer\Context(normalizationContext={"groups"={"read"}}, groups={"read:accompanyingPeriodWork:light"}) */ private ?AccompanyingPeriod $accompanyingPeriod = null;