Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 protected function _populateAssignees()
 {
     if ($this->_assignees === null) {
         $this->_assignees = TBGProjectAssigneesTable::getTable()->getByProjectID($this->getID());
     }
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
            echo $user->getID();
            ?>
">
					<label for="role_<?php 
            echo $user->getID();
            ?>
"><?php 
            echo $user->getNameWithUsername();
            ?>
:</label>&nbsp;
					<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 
            /*
            					&nbsp;<label for="target"><?php echo __('%role% for %item%', array('%role%' => '', '%item%' => '')); ?></label>&nbsp;
Ejemplo n.º 5
0
                ?>
												<?php 
                $types_array = array();
                ?>
												<?php 
                $theComponent = TBGContext::factory()->TBGComponent($cp_id);
                ?>
												<b><?php 
                echo $theComponent->getName();
                ?>
</b>:&nbsp;
												<?php 
                foreach ($types as $type => $bool) {
                    ?>
													<?php 
                    $types_array[] = TBGProjectAssigneesTable::getTypeName($type);
                    ?>
												<?php 
                }
                ?>
												<?php 
                echo join(', ', $types_array);
                ?>
<br>
											<?php 
            }
            ?>
										<?php 
        }
        ?>
									</td>