/** * Configuration import page * * @param TBGRequest $request */ public function runImport(TBGRequest $request) { if ($request->isMethod(TBGRequest::POST)) { if ($request->getParameter('import_sample_data')) { $users = array(); $user1 = new TBGUser(); $user1->setUsername('john'); $user1->setPassword('john'); $user1->setBuddyname('John'); $user1->setRealname('John'); $user1->setActivated(); $user1->setEnabled(); $user1->save(); $users[] = $user1; $user2 = new TBGUser(); $user2->setUsername('jane'); $user2->setPassword('jane'); $user2->setBuddyname('Jane'); $user2->setRealname('Jane'); $user2->setActivated(); $user2->setEnabled(); $user2->save(); $users[] = $user2; $user3 = new TBGUser(); $user3->setUsername('jackdaniels'); $user3->setPassword('jackdaniels'); $user3->setBuddyname('Jack'); $user3->setRealname('Jack Daniels'); $user3->setActivated(); $user3->setEnabled(); $user3->save(); $users[] = $user3; $project1 = new TBGProject(); $project1->setName('Sample project 1'); $project1->setOwner($users[rand(0, 2)]); $project1->setLeader($users[rand(0, 2)]); $project1->setQaResponsible($users[rand(0, 2)]); $project1->setDescription('This is a sample project that is awesome. Try it out!'); $project1->setHomepage('http://www.google.com'); $project1->save(); $project2 = new TBGProject(); $project2->setName('Sample project 2'); $project2->setOwner($users[rand(0, 2)]); $project2->setLeader($users[rand(0, 2)]); $project2->setQaResponsible($users[rand(0, 2)]); $project2->setDescription('This is the second sample project. Not as awesome as the first one, but still worth a try!'); $project2->setHomepage('http://www.bing.com'); $project2->save(); foreach (array($project1, $project2) as $project) { for ($cc = 1; $cc <= 5; $cc++) { $milestone = new TBGMilestone(); $milestone->setName("Milestone {$cc}"); $milestone->setProject($project); $milestone->setType(TBGMilestone::TYPE_REGULAR); if ((bool) rand(0, 1)) { $milestone->setScheduledDate(NOW + 100000 * (20 * $cc)); } $milestone->save(); } } $p1_milestones = $project1->getMilestones(); $p2_milestones = $project2->getMilestones(); $issues = array(); $priorities = TBGPriority::getAll(); $categories = TBGCategory::getAll(); $severities = TBGSeverity::getAll(); $statuses = TBGStatus::getAll(); $reproducabilities = TBGReproducability::getAll(); $lorem_ipsum = TBGArticlesTable::getTable()->getArticleByName('LoremIpsum'); $lorem_ipsum = PublishFactory::article($lorem_ipsum->get(TBGArticlesTable::ID), $lorem_ipsum); $lorem_words = explode(' ', $lorem_ipsum->getContent()); foreach (array('bugreport', 'featurerequest', 'enhancement', 'idea') as $issuetype) { $issuetype = TBGIssuetype::getIssuetypeByKeyish($issuetype); for ($cc = 1; $cc <= 10; $cc++) { $issue1 = new TBGIssue(); $issue1->setProject($project1); $issue1->setPostedBy($users[rand(0, 2)]); $issue1->setPosted(NOW - 86400 * rand(1, 30)); $title_string = ''; $description_string = ''; $rand_length = rand(4, 15); $ucnext = true; for ($ll = 1; $ll <= $rand_length; $ll++) { $word = str_replace(array(',', '.', "\r", "\n"), array('', '', '', ''), $lorem_words[array_rand($lorem_words)]); $word = $ucnext || rand(1, 40) == 19 ? ucfirst($word) : strtolower($word); $title_string .= $word; $ucnext = false; if ($ll == $rand_length || rand(1, 15) == 5) { $title_string .= '.'; $ucnext = true; } $title_string .= ' '; } $rand_length = rand(40, 500); $ucnext = true; for ($ll = 1; $ll <= $rand_length; $ll++) { $word = str_replace(array(',', '.', "\r", "\n"), array('', '', '', ''), $lorem_words[array_rand($lorem_words)]); $word = $ucnext || rand(1, 40) == 19 ? ucfirst($word) : strtolower($word); $description_string .= $word; $ucnext = false; if ($ll == $rand_length || rand(1, 15) == 5) { $description_string .= '.'; $ucnext = true; $description_string .= $ll != $rand_length && rand(1, 15) == 8 ? "\n\n" : ' '; } else { $description_string .= ' '; } } $issue1->setTitle(ucfirst($title_string)); $issue1->setDescription($description_string); $issue1->setIssuetype($issuetype); $issue1->setMilestone($p1_milestones[array_rand($p1_milestones)]); $issue1->setPriority($priorities[array_rand($priorities)]); $issue1->setCategory($categories[array_rand($categories)]); $issue1->setSeverity($severities[array_rand($severities)]); $issue1->setReproducability($reproducabilities[array_rand($reproducabilities)]); $issue1->setPercentCompleted(rand(0, 100)); $issue1->save(); $issue1->setStatus($statuses[array_rand($statuses)]); if (rand(0, 1)) { $issue1->setAssignee($users[array_rand($users)]); } $issue1->save(); $issues[] = $issue1; $issue2 = new TBGIssue(); $issue2->setProject($project2); $issue2->setPostedBy($users[rand(0, 2)]); $issue2->setPosted(NOW - 86400 * rand(1, 30)); $title_string = ''; $description_string = ''; $rand_length = rand(4, 15); $ucnext = true; for ($ll = 1; $ll <= $rand_length; $ll++) { $word = str_replace(array(',', '.', "\r", "\n"), array('', '', '', ''), $lorem_words[array_rand($lorem_words)]); $word = $ucnext || rand(1, 40) == 19 ? ucfirst($word) : strtolower($word); $title_string .= $word; $ucnext = false; if ($ll == $rand_length || rand(1, 15) == 5) { $title_string .= '.'; $ucnext = true; } $title_string .= ' '; } $rand_length = rand(40, 500); $ucnext = true; for ($ll = 1; $ll <= $rand_length; $ll++) { $word = str_replace(array(',', '.', "\r", "\n"), array('', '', '', ''), $lorem_words[array_rand($lorem_words)]); $word = $ucnext || rand(1, 40) == 19 ? ucfirst($word) : strtolower($word); $description_string .= $word; $ucnext = false; if ($ll == $rand_length || rand(1, 15) == 5) { $description_string .= '.'; $ucnext = true; $description_string .= $ll != $rand_length && rand(1, 15) == 8 ? "\n\n" : ' '; } else { $description_string .= ' '; } } $issue2->setTitle(ucfirst($title_string)); $issue2->setDescription($description_string); $issue2->setIssuetype($issuetype); $issue2->setMilestone($p2_milestones[array_rand($p2_milestones)]); $issue2->setPriority($priorities[array_rand($priorities)]); $issue2->setCategory($categories[array_rand($categories)]); $issue2->setSeverity($severities[array_rand($severities)]); $issue2->setReproducability($reproducabilities[array_rand($reproducabilities)]); $issue2->setPercentCompleted(rand(0, 100)); if (rand(0, 1)) { $issue1->setAssignee($users[array_rand($users)]); } $issue2->save(); $issue2->setStatus($statuses[array_rand($statuses)]); $issue2->save(); $issues[] = $issue2; } } $rand_issues_to_close = rand(8, 40); $resolutions = TBGResolution::getAll(); for ($cc = 1; $cc <= $rand_issues_to_close; $cc++) { $issue = array_slice($issues, array_rand($issues), 1); $issue = $issue[0]; $issue->setResolution($resolutions[array_rand($resolutions)]); $issue->close(); $issue->save(); } $this->imported_data = true; $developer = TBGProjectAssigneesTable::getByType(TBGProjectAssigneesTable::TYPE_DEVELOPER); foreach (array($project1, $project2) as $project) { foreach ($users as $user) { $project->addAssignee($user, $developer->getID()); } } } } $project1 = TBGProject::getByKey('sampleproject1'); $project2 = TBGProject::getByKey('sampleproject2'); $this->canimport = !$project1 instanceof TBGProject && !$project2 instanceof TBGProject; }
protected function _populateAssignees() { if ($this->_assignees === null) { $this->_assignees = TBGProjectAssigneesTable::getTable()->getByProjectID($this->getID()); } }
public static function getProjectAssigneeDefaultPermissionSet($ownable, $type) { $return_values = array(); if ($ownable instanceof TBGProject) { $return_values[] = 'page_project_allpages_access'; $return_values[] = 'canseeproject'; $return_values[] = 'canseeprojecthierarchy'; $return_values[] = 'cancreateandeditissues'; $return_values[] = 'canpostandeditcomments'; } elseif ($ownable instanceof TBGEdition) { $return_values[] = 'canseeedition'; } elseif ($ownable instanceof TBGComponent) { $return_values[] = 'canseecomponent'; } if (is_numeric($type)) { $role = TBGProjectAssigneesTable::getTypeName($type); $type = $role->getItemdata(); } switch ($type) { case '_leader': $return_values[] = 'canmanageproject'; $return_values[] = 'candoscrumplanning'; break; case '_owner': $return_values[] = 'canmanageproject'; $return_values[] = 'candoscrumplanning'; break; case '_qa_responsible': $return_values[] = 'candoscrumplanning'; $return_values[] = 'caneditissue'; $return_values[] = 'caneditissuecustomfields'; $return_values[] = 'canaddextrainformationtoissues'; break; case TBGProjectAssigneesTable::TYPE_DEVELOPER: $return_values[] = 'candoscrumplanning'; $return_values[] = 'caneditissue'; $return_values[] = 'caneditissuecustomfields'; $return_values[] = 'canaddextrainformationtoissues'; break; case TBGProjectAssigneesTable::TYPE_PROJECTMANAGER: $return_values[] = 'candoscrumplanning'; $return_values[] = 'caneditissue'; $return_values[] = 'caneditissuecustomfields'; $return_values[] = 'canaddextrainformationtoissues'; break; case TBGProjectAssigneesTable::TYPE_TESTER: $return_values[] = 'caneditissue'; $return_values[] = 'caneditissuecustomfields'; $return_values[] = 'canaddextrainformationtoissues'; break; case TBGProjectAssigneesTable::TYPE_DOCUMENTOR: $return_values[] = 'caneditissue'; $return_values[] = 'caneditissuecustomfields'; $return_values[] = 'canaddextrainformationtoissues'; break; } return $return_values; }
echo $user->getID(); ?> "> <label for="role_<?php echo $user->getID(); ?> "><?php echo $user->getNameWithUsername(); ?> :</label> <select name="role" id="role_<?php echo $user->getID(); ?> "> <?php foreach (TBGProjectAssigneesTable::getTypes() as $type_id => $type_desc) { ?> <option value="<?php echo $type_id; ?> "><?php echo $type_desc; ?> </option> <?php } ?> </select> <?php /* <label for="target"><?php echo __('%role% for %item%', array('%role%' => '', '%item%' => '')); ?></label>
?> <?php $types_array = array(); ?> <?php $theComponent = TBGContext::factory()->TBGComponent($cp_id); ?> <b><?php echo $theComponent->getName(); ?> </b>: <?php foreach ($types as $type => $bool) { ?> <?php $types_array[] = TBGProjectAssigneesTable::getTypeName($type); ?> <?php } ?> <?php echo join(', ', $types_array); ?> <br> <?php } ?> <?php } ?> </td>