/** * Function processing to Todos * @param Project $project * @return mixed */ protected function processProjectCreationTodos(Project $project) { $returnValues['slot_name'] = 'Todos'; try { // Define PM manual Todos if ($project->isPmManaged()) { $todo[] = $this->addTodo("<b>Redmine - Manage scm account - repo path: </b> /var/www/html/redmine/git_repositories/" . $project->getCanonicalName() . ".git"); $todo[] = $this->addTodo("<b>Redmine - Manage scm account - repo url: </b> " . $project->getGitLabSshUrlToRepo()); } // Define CI manual Todos if ($project->isCiDevManaged()) { $todo[] = $this->addTodo("<b>Jenkins - Redmine website: </b>" . $project->getName()); $teamString = ""; foreach ($project->getTeamMembers() as $user) { $teamString .= " - " . $user->getUsername(); } $todo[] = $this->addTodo("<b>Jenkins - Define security (follow \$user credentials): </b>" . $teamString); $todo[] = $this->addTodo("<b>Jenkins - Define gitlab repo name: </b>" . $project->getGitLabNamespace()); $todo[] = $this->addTodo("<b>Jenkins - Define Display Name (Advanced options)</b>"); $todo[] = $this->addTodo("<b>Jenkins - Configure Git SCM: </b>" . $project->getGitLabSshUrlToRepo()); $todo[] = $this->addTodo("<b>Jenkins - Configure Git SCM: </b>Specify branch to use (dev)"); $todo[] = $this->addTodo("<b>Jenkins - Manage SCM trigger: </b>Specify branch to use (dev)"); $todo[] = $this->addTodo("<b>Jenkins - MultiJob Phase - QA: </b> Change the following values: SONAR_PROJECT_KEY, SONAR_PROJECT_NAME, SONAR_LANGUAGE, SONAR_SOURCES, SONAR_DOXYGEN_PATH"); } // Define QA Manual todos if ($project->isQaDevManaged()) { $todo[] = $this->addTodo("<b>Sonar - Configure project Redmine: </b>Project Key: " . $project->getRedmineProjectId()); $todo[] = $this->addTodo("<b>Sonar - Configure project Redmine: </b>Tracker: Qa Tracker"); } // Push a separator between multiple todos $todo[] = $this->addTodo("<hr style='border-color: #9d9d9d;'>"); $returnValues['data'][] = $this->setRetVal('Manual todos', 'todo', $todo); } catch (\Exception $e) { $returnValues['data'][] = $this->setRetVal('Manual todos', 'todo', null); } return $returnValues; }
/** * Extract available user to add to project * @param EntityManager $em * @param Project $project * @return array */ private function getAvailableUsers(EntityManager $em, Project $project) { $users = $em->getRepository('SpiritDevDBoxUserBundle:User')->getUsableUsers()->getQuery()->getResult(); $returnedUsers = array(); foreach ($users as $user) { $userIsMember = false; foreach ($project->getTeamMembers() as $member) { if ($user == $member) { $userIsMember = true; } } if (!$userIsMember) { $returnedUsers[] = $user; } } return $returnedUsers; }
/** * Send mail to project memebers to apply a project deletion * To project team * @param Project $project * @return mixed */ public function processProjectDeletionSendMail(Project $project) { // Define necessary vars $template = "SpiritDevDBoxPortalBundle:Mailer/Project:projectDeletion.html.twig"; // Template $subject = $this->getSubject('Project deletion - ' . $project->getName()); // Subject $renderingDatas = array('project' => $project); // Template rendering datas // Send mail(s) effectively foreach ($project->getTeamMembers() as $user) { $renderingDatas['firstname'] = $user->getFirstname(); $renderingDatas['lastname'] = $user->getLastname(); $rendered = $this->templating->render($template, $renderingDatas); // Template rendering $this->sendEmailMessage($rendered, $subject, $user->getEmail()); } }
/** * Setting demand content * @param Project $project * @return array */ private function setContentData(Project $project) { $owner = $project->getOwner()->getCommonName(); $teamMembersArray = ""; $teamMembers = $project->getTeamMembers(); $tml = count($teamMembers); $tmc = 1; foreach ($teamMembers as $member) { $teamMembersArray .= $member->getCommonName(); if ($tmc < $tml) { $teamMembersArray .= ", "; } $tmc++; } return ["name" => $project->getName(), "description" => $project->getDescription(), "owner" => $owner, "team_members" => $teamMembersArray, "git_issues" => $project->isGitLabIssueEnabled(), "git_wiki" => $project->isGitLabWikiEnabled(), "git_snippets" => $project->isGitLabSnippetsEnabled(), "id" => $project->getId()]; }