Ejemplo n.º 1
0
 /**
  * @Route("/add", name="icap_badge_workspace_tool_badges_add")
  * @ParamConverter(
  *     "workspace",
  *     class="ClarolineCoreBundle:Workspace\Workspace",
  *     options={"id" = "workspaceId"}
  * )
  * @Template()
  */
 public function addAction(Request $request, Workspace $workspace)
 {
     $this->checkUserIsAllowed($workspace);
     $badge = new Badge();
     $badge->setWorkspace($workspace);
     $locales = $this->get('claroline.manager.locale_manager')->getAvailableLocales();
     foreach ($locales as $locale) {
         $translation = new BadgeTranslation();
         $translation->setLocale($locale);
         $badge->addTranslation($translation);
     }
     /** @var \Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface $sessionFlashBag */
     $sessionFlashBag = $this->get('session')->getFlashBag();
     /** @var \Symfony\Component\Translation\TranslatorInterface $translator */
     $translator = $this->get('translator');
     try {
         if ($this->get('icap_badge.form_handler.badge.workspace')->handleAdd($badge)) {
             $sessionFlashBag->add('success', $translator->trans('badge_add_success_message', array(), 'icap_badge'));
             return $this->redirect($this->generateUrl('icap_badge_workspace_tool_badges', array('workspaceId' => $workspace->getId())));
         }
     } catch (\Exception $exception) {
         $sessionFlashBag->add('error', $translator->trans('badge_add_error_message', array(), 'icap_badge'));
         return $this->redirect($this->generateUrl('icap_badge_workspace_tool_badges', array('workspaceId' => $workspace->getId())));
     }
     return array('workspace' => $workspace, 'form' => $this->get('icap_badge.form.badge.workspace')->createView(), 'badge' => $badge);
 }