/**
  * Add new club
  * @Route("/admin/club/add", name="_edit_club_add")
  * @Template("ICupPublicSiteBundle:Edit:editclub.html.twig")
  */
 public function addAction(Request $request)
 {
     $returnUrl = $this->get('util')->getReferer();
     $country = $request->get('country');
     if ($country == null) {
         $country = $this->get('util')->getCountryByLocale($request->getLocale());
     }
     $club = new Club();
     // If country is a part of the request parameters - use it
     $club->setCountry($country);
     $form = $this->makeClubForm($club, 'add');
     $form->handleRequest($request);
     if ($form->get('cancel')->isClicked()) {
         return $this->redirect($returnUrl);
     }
     if ($this->checkForm($form, $club)) {
         $otherclub = $this->get('logic')->getClubByName($club->getName(), $club->getCountry());
         if ($otherclub != null) {
             $form->addError(new FormError($this->get('translator')->trans('FORM.CLUB.NAMEEXIST', array(), 'admin')));
         } else {
             $em = $this->getDoctrine()->getManager();
             $em->persist($club);
             $em->flush();
             return $this->redirect($returnUrl);
         }
     }
     return array('form' => $form->createView(), 'action' => 'add', 'club' => $club);
 }
 private function listEnrolled(Tournament $tmnt, Club $club)
 {
     $host = $tmnt->getHost();
     $enrolled = $this->get('logic')->listEnrolledByClub($tmnt->getId(), $club->getId());
     $enrolledList = array();
     /* @var $enroll Enrollment */
     foreach ($enrolled as $enroll) {
         $enrolledList[$enroll->getCategory()->getId()][] = $enroll;
     }
     $classMap = array();
     $categoryMap = array();
     /* @var $category Category */
     foreach ($tmnt->getCategories() as $category) {
         $classification = $category->getClassification() . $category->getAge();
         $classMap[$classification] = $classification;
         $cls = $category->getGender() . $classification;
         $categoryMap[$cls][] = $category;
     }
     return array('host' => $host, 'tournament' => $tmnt, 'club' => $club, 'classifications' => $classMap, 'enrolled' => $enrolledList, 'categories' => $categoryMap);
 }
 private function mergeClubs(Club $source_club, Club $target_club)
 {
     $em = $this->getDoctrine()->getManager();
     $teams = $source_club->getTeams();
     /* @var $category Category */
     foreach ($teams as $team) {
         try {
             $category = $this->get('logic')->getEnrolledCategory($team->getId());
         } catch (ValidationException $ex) {
             $category = $this->get('logic')->getAssignedCategory($team->getId());
         }
         $enrolledteams = $this->get('logic')->listEnrolledTeamsByCategory($category->getId(), $target_club->getId());
         $noTeams = count($enrolledteams);
         if ($noTeams >= 26) {
             // Can not add more than 26 teams to same category - Team A -> Team Z - make an exception here...
             $division = 'm' . $team->getDivision();
         } else {
             if ($noTeams == 0) {
                 $division = '';
             } else {
                 if ($noTeams == 1) {
                     $division = 'B';
                     $firstteam = array_shift($enrolledteams);
                     $firstteam->setDivision('A');
                 } else {
                     $division = chr($noTeams + 65);
                 }
             }
         }
         $team->setClub($target_club);
         $team->setName($target_club->getName());
         $team->setDivision($division);
         $em->flush();
     }
     $em->remove($source_club);
     $em->flush();
 }
 /**
  * Add new club for for selected tournament
  * - Editor version only -
  * @Route("/edit/club/new/{tournamentid}", name="_host_club_new")
  * @Template("ICupPublicSiteBundle:Host:new_club.html.twig")
  */
 public function hostNewClubAction($tournamentid, Request $request)
 {
     /* @var $utilService Util */
     $utilService = $this->get('util');
     /* @var $user User */
     $user = $utilService->getCurrentUser();
     /* @var $tournament Tournament */
     $tournament = $this->get('entity')->getTournamentById($tournamentid);
     $host = $tournament->getHost();
     $utilService->validateEditorAdminUser($user, $host);
     // Prepare default data for form
     $clubFormData = $this->getClubDefaults($request);
     $form = $this->makeClubForm($clubFormData);
     $form->handleRequest($request);
     if ($form->get('cancel')->isClicked()) {
         return $this->redirect($this->generateUrl('_host_list_clubs', array('tournamentid' => $tournamentid)));
     }
     if ($this->checkForm($form, $clubFormData)) {
         $club = $this->get('logic')->getClubByName($clubFormData->getName(), $clubFormData->getCountry());
         if ($club == null) {
             $club = new Club();
             $club->setName($clubFormData->getName());
             $club->setCountry($clubFormData->getCountry());
             $em = $this->getDoctrine()->getManager();
             $em->persist($club);
             $em->flush();
         }
         return $this->redirect($this->generateUrl('_club_enroll_list_admin', array('tournament' => $tournamentid, 'club' => $club->getId())));
     }
     return array('form' => $form->createView(), 'action' => 'add', 'user' => $user, 'tournament' => $tournament);
 }
Example #5
0
 private function addTeam(Category $category, Group $group, Club $club, $division, User $user)
 {
     $team = new Team();
     $team->setName($club->getName());
     $team->setColor($category->getName() . $group->getName() . ($group->getGroupOrder()->count() + 1));
     $team->setDivision($division);
     $team->setVacant(false);
     $team->setClub($club);
     $club->getTeams()->add($team);
     $this->em->persist($team);
     $grouporder = new GroupOrder();
     $grouporder->setGroup($group);
     $grouporder->setTeam($team);
     $team->getGroupOrder()->add($grouporder);
     $group->getGroupOrder()->add($grouporder);
     $this->em->persist($grouporder);
     $enrollment = new Enrollment();
     $enrollment->setTeam($team);
     $enrollment->setCategory($category);
     $enrollment->setDate(Date::getDate(new DateTime()));
     $enrollment->setUser($user);
     $team->getEnrollments()->add($enrollment);
     $category->getEnrollments()->add($enrollment);
     $user->getEnrollments()->add($enrollment);
     $this->em->persist($enrollment);
 }
 public function assignVacant($groupid, User $user)
 {
     /* @var $group Group */
     $group = $this->entity->getGroupById($groupid);
     $club = $this->getClubByName(BusinessLogic::$VACANT_CLUB_NAME, BusinessLogic::$VACANT_CLUB_COUNTRYCODE);
     if ($club == null) {
         $club = new Club();
         $club->setName(BusinessLogic::$VACANT_CLUB_NAME);
         $club->setCountry(BusinessLogic::$VACANT_CLUB_COUNTRYCODE);
         $this->em->persist($club);
         $this->em->flush();
     }
     $enrolled = $this->addEnrolled($group->getCategory(), $club, $user, true);
     $groupOrder = new GroupOrder();
     $groupOrder->setTeam($enrolled->getTeam());
     $groupOrder->setGroup($group);
     $this->em->persist($groupOrder);
     $this->em->flush();
     return $groupOrder;
 }
Example #7
0
 /**
  * Verify that user is admin or a club user allowed to administer the club specified by clubid
  * This function does not ensure that user->cid is referring to a valid club - if user is an admin.
  * @param User $user
  * @param Club $club
  * @throws ValidationException
  */
 public function validateClubAdminUser(User $user, Club $club)
 {
     // If user is admin anything is allowed...
     if (!$this->isAdminUser($user)) {
         // Since this is not the admin - validate for club admin
         if (!$user->isClub()) {
             // Controller is called by club user user
             throw new ValidationException("NOTCLUBADMIN", "user="******"NOTCLUBADMIN", "user="******", clubid=" . $club->getId());
         }
     }
 }
 private function commitImport($parseObj, User $user)
 {
     $em = $this->getDoctrine()->getManager();
     $category = $parseObj['category'];
     $team = $parseObj['teamA'];
     $name = $parseObj['team']['name'];
     $division = $parseObj['team']['division'];
     $country = $parseObj['team']['country'];
     if (!$team) {
         $club = $this->get('logic')->getClubByName($name, $country);
         if ($club == null) {
             $club = new Club();
             $club->setName($name);
             $club->setCountry($country);
             $em->persist($club);
             $em->flush();
         }
         $enroll = $this->get('logic')->enrollTeam($category, $user, $club, $name, $division);
         $team = $enroll->getTeam();
     }
     if (!$this->get('logic')->isTeamAssigned($category->getId(), $team->getId())) {
         $group = $parseObj['group'];
         $this->get('logic')->assignEnrolled($team->getId(), $group->getId());
     }
 }