public function updateEvent(Event $event, Reservation $reservation)
 {
     $event->setStart($reservation->getStartInTimestamp());
     $event->setEnd($reservation->getEndInTimestamp());
     $event->setTitle($this->translator->trans('reservation', [], 'reservation') . ' - ' . $reservation->getResource()->getName());
     $event->setIsEditable(false);
     return $event;
 }
Example #2
0
 /**
  * Set the event date.
  * Only use this method for events created or updated through AgendaType.
  *
  * @param Event $event
  */
 private function setEventDate(Event $event)
 {
     if ($event->isAllDay()) {
         // If it's a task we set the start date at the beginning of the day
         if ($event->isTask()) {
             $event->setStart(strtotime($event->getEndInDateTime()->format('Y-m-d') . ' 00:00:00'));
         } else {
             $event->setStart(strtotime($event->getStartInDateTime()->format('Y-m-d') . ' 00:00:00'));
         }
         $event->setEnd(strtotime($event->getEndInDateTime()->format('Y-m-d') . ' 24:00:00'));
     } else {
         // If it's a task, we subtract 30 min so that the event is not a simple line on the calendar
         if ($event->isTask()) {
             $event->setStart($event->getEndInTimestamp() - 30 * 60);
         } else {
             $event->setStart($event->getStartInTimestamp());
         }
         $event->setEnd($event->getEndInTimestamp());
     }
 }
 private function createAgendaEventDrop(DateTime $startDate, DateTime $endDate, $user, Dropzone $dropzone, $type = "drop")
 {
     /*
     $dateTS = new DateTime();
     $dateTS = $startDate;
     echo "TS : " . $dateTS;
     echo "TS = " . $dateTS->getTimestamp();
     */
     $event = new Event();
     $event->setStart($startDate);
     $event->setEnd($endDate);
     $event->setUser($user);
     $dropzoneName = $dropzone->getResourceNode()->getName();
     if ($type == 'drop') {
         $title = $this->get('translator')->trans('Deposit phase of the %dropzonename% evaluation', array('%dropzonename%' => $dropzoneName), 'innova_collecticiel');
         $desc = $this->get('translator')->trans('Evaluation %dropzonename% opening', array('%dropzonename%' => $dropzoneName), 'innova_collecticiel');
         $event->setTitle($title);
         $event->setDescription($desc);
     } else {
         $title = $this->get('translator')->trans('Peer Review is starting in %dropzonename% evaluation', array('%dropzonename%' => $dropzoneName), 'innova_collecticiel');
         $desc = $this->get('translator')->trans('Peer Review is starting in %dropzonename% evaluation', array('%dropzonename%' => $dropzoneName), 'innova_collecticiel');
         $event->setTitle($title);
         $event->setDescription($desc);
     }
     $em = $this->getDoctrine()->getManager();
     $em->persist($event);
     $em->flush();
     return $event;
 }
 /**
  * @EXT\Route(
  *     "/{event}/update",
  *     name="claro_workspace_agenda_update"
  * )
  * @EXT\Method("POST")
  * @EXT\Template("ClarolineAgendaBundle:Agenda:updateEventModalForm.html.twig")
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function updateAction(Event $event)
 {
     $this->agendaManager->checkEditAccess($event->getWorkspace());
     $formType = $this->get('claroline.form.agenda');
     $form = $this->createForm($formType, $event);
     $form->handleRequest($this->request);
     if ($form->isValid()) {
         $users = $form->get('users')->getData();
         $event = $this->agendaManager->updateEvent($event, $users);
         return new JsonResponse($event, 200);
     }
     return array('form' => $form->createView(), 'action' => $this->router->generate('claro_workspace_agenda_update', array('event' => $event->getId())), 'event' => $event);
 }
 private function createAgendaEventDrop($startDate, $endDate, $user, Dropzone $dropzone, $type = 'drop')
 {
     $event = new Event();
     $event->setStart($startDate->getTimeStamp());
     $event->setEnd($endDate->getTimeStamp());
     $event->setUser($user);
     $dropzoneName = $dropzone->getResourceNode()->getName();
     if ($type == 'drop') {
         $title = $this->get('translator')->trans('Deposit phase of the %dropzonename% evaluation', array('%dropzonename%' => $dropzoneName), 'icap_dropzone');
         $desc = $this->get('translator')->trans('Evaluation %dropzonename% opening', array('%dropzonename%' => $dropzoneName), 'icap_dropzone');
         $event->setTitle($title);
         $event->setDescription($desc);
     } else {
         $title = $this->get('translator')->trans('Peer Review is starting in %dropzonename% evaluation', array('%dropzonename%' => $dropzoneName), 'icap_dropzone');
         $desc = $this->get('translator')->trans('Peer Review is starting in %dropzonename% evaluation', array('%dropzonename%' => $dropzoneName), 'icap_dropzone');
         $event->setTitle($title);
         $event->setDescription($desc);
     }
     $em = $this->getDoctrine()->getManager();
     $em->persist($event);
     $em->flush();
     return $event;
 }
 private function checkPermission(Event $event)
 {
     if ($event->isEditable() === false) {
         throw new AccessDeniedException('You cannot edit this event');
     }
     if ($event->getWorkspace()) {
         if (!$this->authorization->isGranted(array('agenda_', 'edit'), $event->getWorkspace())) {
             throw new AccessDeniedException('You cannot edit the agenda');
         }
         return;
     }
     if ($this->tokenStorage->getToken()->getUser() != $event->getUser()) {
         throw new AccessDeniedException('You cannot edit the agenda');
     }
 }
 private function createAgendaEventDrop(User $user, Dropzone $dropzone)
 {
     $translator = $this->container->get('translator');
     $em = $this->container->get('doctrine')->getEntityManager();
     $event = new Event();
     $event->setStart($dropzone->getStartAllowDrop());
     $event->setEnd($dropzone->getEndAllowDrop());
     $event->setUser($user);
     $dropzoneName = $dropzone->getResourceNode()->getName();
     $title = $translator->trans('Deposit phase of the %dropzonename% evaluation', array('%dropzonename%' => $dropzoneName), 'innova_collecticiel');
     $desc = $translator->trans('Evaluation %dropzonename% opening', array('%dropzonename%' => $dropzoneName), 'innova_collecticiel');
     $event->setTitle($title);
     $event->setDescription($desc);
     $em->persist($event);
     $em->flush();
     return $event;
 }