mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
rdv->activity: create event for storing the linked activity to a calendar
This commit is contained in:
parent
99f2692684
commit
1a6c37e5a6
@ -229,6 +229,7 @@ class CalendarController extends AbstractController
|
|||||||
$durationTimeInMinutes = $durationTime->days*1440 + $durationTime->h*60 + $durationTime->i;
|
$durationTimeInMinutes = $durationTime->days*1440 + $durationTime->h*60 + $durationTime->i;
|
||||||
|
|
||||||
$activityData = [
|
$activityData = [
|
||||||
|
'calendarId' => $id,
|
||||||
'personsId' => $personsId,
|
'personsId' => $personsId,
|
||||||
'professionalsId' => $professionalsId,
|
'professionalsId' => $professionalsId,
|
||||||
'date' => $entity->getStartDate()->format('Y-m-d'),
|
'date' => $entity->getStartDate()->format('Y-m-d'),
|
||||||
|
@ -29,6 +29,7 @@ class ChillCalendarExtension extends Extension implements PrependExtensionInterf
|
|||||||
$loader->load('services/controller.yml');
|
$loader->load('services/controller.yml');
|
||||||
$loader->load('services/fixtures.yml');
|
$loader->load('services/fixtures.yml');
|
||||||
$loader->load('services/form.yml');
|
$loader->load('services/form.yml');
|
||||||
|
$loader->load('services/event.yml');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function prepend(ContainerBuilder $container)
|
public function prepend(ContainerBuilder $container)
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Chill\CalendarBundle\Event;
|
||||||
|
|
||||||
|
use Chill\ActivityBundle\Entity\Activity;
|
||||||
|
use Doctrine\Persistence\Event\LifecycleEventArgs;
|
||||||
|
use Symfony\Component\HttpFoundation\RequestStack;
|
||||||
|
|
||||||
|
class ListenToActivityCreate
|
||||||
|
{
|
||||||
|
|
||||||
|
private RequestStack $requestStack;
|
||||||
|
|
||||||
|
public function __construct(RequestStack $requestStack)
|
||||||
|
{
|
||||||
|
$this->requestStack = $requestStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postPersist(Activity $activity, LifecycleEventArgs $event): void
|
||||||
|
{
|
||||||
|
// Get the calendarId from the request
|
||||||
|
$request = $this->requestStack->getCurrentRequest();
|
||||||
|
if ($request->query->has('activityData')) {
|
||||||
|
$activityData = $request->query->get('activityData');
|
||||||
|
if (array_key_exists('calendarId', $activityData)) {
|
||||||
|
$calendarId = $activityData['calendarId'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attach the activity to the calendar
|
||||||
|
$em = $event->getObjectManager();
|
||||||
|
|
||||||
|
$calendar = $em->getRepository(\Chill\CalendarBundle\Entity\Calendar::class)->find($calendarId);
|
||||||
|
$calendar->setActivity($activity);
|
||||||
|
|
||||||
|
$em->persist($calendar);
|
||||||
|
$em->flush();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
services:
|
||||||
|
Chill\CalendarBundle\Event\ListenToActivityCreate:
|
||||||
|
autowire: true
|
||||||
|
autoconfigure: true
|
||||||
|
tags:
|
||||||
|
-
|
||||||
|
name: 'doctrine.orm.entity_listener'
|
||||||
|
event: 'postPersist'
|
||||||
|
entity: 'Chill\ActivityBundle\Entity\Activity'
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user