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;