Exemplo n.º 1
0
 private function newEntity($params)
 {
     // Create project
     $entity = new Project();
     $entity->setName($params['name']);
     $entity->setDescription($params['description']);
     $entity->setSprintStartDay($params['sprint_start_day']);
     $entity->setSprintDuration($params['sprint_duration']);
     $this->manager->persist($entity);
     // Create default release
     $releaseStatus = $this->manager->getRepository('NeblionScrumBundle:ProcessStatus')->find(3);
     $release = new ProjectRelease();
     $release->setProject($entity);
     $release->setName('Default');
     $release->setDescription('Default release');
     $release->setStart(new \DateTime('2012-09-01'));
     $release->setEnd(new \DateTime('2012-10-02'));
     $release->setStatus($releaseStatus);
     $this->manager->persist($release);
     // Create default feature
     $feature = new Feature();
     $feature->setProject($entity);
     $feature->setName('Default');
     $feature->setDescription('Default feature');
     $feature->setColor('#ffffff');
     $this->manager->persist($feature);
 }
Exemplo n.º 2
0
 private function newEntity($params)
 {
     $feature = new Feature();
     $feature->setProject($params['project']);
     $feature->setName($params['name']);
     $feature->setDescription($params['description']);
     $feature->setColor($params['color']);
     $this->manager->persist($feature);
 }
Exemplo n.º 3
0
 /**
  * Creates a new Feature entity.
  *
  * @Route("/{id}/create", name="feature_create")
  * @Method("post")
  * @Template("NeblionScrumBundle:Feature:new.html.twig")
  */
 public function createAction($id)
 {
     // Check if user is authorized
     if (!$this->get('security.context')->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
         throw new AccessDeniedException();
     }
     $user = $this->get('security.context')->getToken()->getUser();
     $em = $this->getDoctrine()->getManager();
     // Load current project
     $project = $em->getRepository('NeblionScrumBundle:Project')->find($id);
     if (!$project) {
         throw $this->createNotFoundException('Unable to find Project entity.');
     }
     // Check if user is really a member of this project
     $member = $em->getRepository('NeblionScrumBundle:Member')->isMemberOfProject($user->getId(), $project->getId());
     if (!$member or !in_array($member->getRole()->getId(), array(1, 2))) {
         if (!$member->getAdmin()) {
             throw new AccessDeniedException();
         }
     }
     $success = false;
     $feature = new Feature();
     $feature->setProject($project);
     $request = $this->getRequest();
     $form = $this->createForm(new FeatureType(), $feature);
     $form->bindRequest($request);
     if ($form->isValid()) {
         $em = $this->getDoctrine()->getManager();
         $em->persist($feature);
         // store activity
         $this->get('scrum_activity')->add($project, $user, 'create feature ' . $feature->getName(), $this->generateUrl('feature_list', array('id' => $project->getId())), 'Project #' . $project->getId() . '  features');
         $em->flush();
         $success = true;
         if (!$this->getRequest()->isXmlHttpRequest()) {
             // Set flash message
             $this->get('session')->getFlashBag()->add('success', 'Feature was created with success!');
             return $this->redirect($this->generateUrl('feature_list', array('id' => $project->getId())));
         }
     }
     return array('project' => $project, 'feature' => $feature, 'form' => $form->createView(), 'success' => $success);
 }