Example #1
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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()];
 }