/**
  * @EXT\Route(
  *     "/announcements/widget/configure/config/{config}",
  *     name="claro_announcements_widget_configure",
  *     options={"expose"=true}
  * )
  * @EXT\ParamConverter("user", converter="current_user")
  * @EXT\Template("ClarolineAnnouncementBundle::announcementsWidgetConfigureForm.html.twig")
  */
 public function announcementsWidgetConfigureAction(AnnouncementsWidgetConfig $config)
 {
     $form = $this->formFactory->create(new AnnouncementsWidgetConfigurationType());
     $form->handleRequest($this->request);
     if ($form->isValid()) {
         $resource = $form->get('resource')->getData();
         if ($resource) {
             $config->clearAnnouncements();
             $config->addAnnouncement($resource->getId());
         }
         $this->announcementManager->persistAnnouncementsWidgetConfig($config);
         return new JsonResponse('success', 204);
     } else {
         return ['form' => $form->createView(), 'config' => $config];
     }
 }
 public function getAnnouncementsWidgetConfig(WidgetInstance $widgetInstance)
 {
     $config = $this->announcementsWidgetConfigRepo->findOneBy(['widgetInstance' => $widgetInstance]);
     if (is_null($config)) {
         $config = new AnnouncementsWidgetConfig();
         $config->setWidgetInstance($widgetInstance);
         $this->om->persist($config);
         $this->om->flush();
     }
     return $config;
 }