/**
  * @Route("/add-from-category/{id}")
  * @Method({"GET, POST"})
  */
 public function addFromCategoryAction($id)
 {
     $breadcrumbs = array(array('name' => get_lang('Curriculum'), 'url' => array('route' => 'curriculum_user.controller:indexAction', 'routeParameters' => array('course' => $this->getCourse()->getCode()))), array('name' => get_lang('Categories'), 'url' => array('route' => 'curriculum_category.controller:indexAction', 'routeParameters' => array('course' => $this->getCourse()->getCode()))), array('name' => get_lang('AddItems')));
     $this->setBreadcrumb($breadcrumbs);
     $request = $this->getRequest();
     $formType = $this->getFormType();
     $entity = new Entity\CurriculumItem();
     $category = $this->get('orm.em')->getRepository('Entity\\CurriculumCategory')->find($id);
     $entity->setCategory($category);
     $form = $this->get('form.factory')->create($formType, $entity);
     if ($request->getMethod() == 'POST') {
         $form->bind($request);
         if ($form->isValid()) {
             /** @var Entity\CurriculumCategory $item */
             $item = $form->getData();
             $em = $this->getManager();
             $em->persist($item);
             $em->flush();
             $this->get('session')->getFlashBag()->add('success', "Added");
             $url = $this->createUrl('list_link');
             return $this->redirect($url);
         }
     }
     $template = $this->get('template');
     $template->assign('links', $this->generateLinks());
     $template->assign('form', $form->createView());
     $template->assign('parent_id', $id);
     $response = $template->render_template($this->getTemplatePath() . 'add_from_category.tpl');
     return new Response($response, 200, array());
 }
 /**
  * Get all users that are registered in the course. No matter the status
  *
  * @param \Entity\CurriculumItem $course
  * @return bool
  */
 public function isAllowToInsert(\Entity\CurriculumItem $item, \Entity\User $user)
 {
     $max = $item->getMaxRepeat();
     $count = $this->createQueryBuilder('a')->select('COUNT(a)')->where('a.itemId = :itemId')->andWhere('a.userId = :userId')->setParameters(array('itemId' => $item->getId(), 'userId' => $user->getUserId()))->getQuery()->getSingleScalarResult();
     return $count <= $max ? true : false;
 }