Example #1
0
 /**
  * Add a related issue
  *
  * @param \thebuggenie\core\entities\Issue $related_issue
  *
  * @return boolean
  */
 public function addChildIssue(\thebuggenie\core\entities\Issue $related_issue, $epic = false)
 {
     if (!($row = tables\IssueRelations::getTable()->getIssueRelation($this->getID(), $related_issue->getID()))) {
         if (!$epic && !$this->getMilestone() instanceof Milestone && $related_issue->getMilestone() instanceof Milestone) {
             $related_issue->removeMilestone();
             $related_issue->save();
         } else {
             if ($this->getMilestone() instanceof Milestone) {
                 $related_issue->setMilestone($this->getMilestone()->getID());
                 $related_issue->save();
             }
         }
         $res = tables\IssueRelations::getTable()->addChildIssue($this->getID(), $related_issue->getID());
         $this->_child_issues = null;
         $related_issue->addLogEntry(tables\Log::LOG_ISSUE_DEPENDS, framework\Context::getI18n()->__('%issuetype %issue_no now depends on the solution of this %this_issuetype', array('%this_issuetype' => $related_issue->getIssueType()->getName(), '%issuetype' => $this->getIssueType()->getName(), '%issue_no' => $this->getFormattedIssueNo())));
         $this->addLogEntry(tables\Log::LOG_ISSUE_DEPENDS, framework\Context::getI18n()->__('This %this_issuetype now depends on the solution of %issuetype %issue_no', array('%this_issuetype' => $this->getIssueType()->getName(), '%issuetype' => $related_issue->getIssueType()->getName(), '%issue_no' => $related_issue->getFormattedIssueNo())));
         $this->calculateTime();
         $this->save();
         $last_updated = time();
         $this->touch($last_updated);
         $related_issue->touch($last_updated);
         return true;
     }
     return false;
 }
Example #2
0
 static function resultGrouping(entities\Issue $issue, $groupby, $cc, $prevgroup_id)
 {
     $i18n = framework\Context::getI18n();
     $showtablestart = false;
     $showheader = false;
     $groupby_id = 0;
     $groupby_description = '';
     if ($cc == 1) {
         $showtablestart = true;
     }
     if ($groupby != '') {
         switch ($groupby) {
             case 'category':
                 if ($issue->getCategory() instanceof entities\Category) {
                     $groupby_id = $issue->getCategory()->getID();
                     $groupby_description = $issue->getCategory()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('Unknown');
                 }
                 break;
             case 'status':
                 if ($issue->getStatus() instanceof entities\Status) {
                     $groupby_id = $issue->getStatus()->getID();
                     $groupby_description = $issue->getStatus()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('Unknown');
                 }
                 break;
             case 'severity':
                 if ($issue->getSeverity() instanceof entities\Severity) {
                     $groupby_id = $issue->getSeverity()->getID();
                     $groupby_description = $issue->getSeverity()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('Unknown');
                 }
                 break;
             case 'resolution':
                 if ($issue->getResolution() instanceof entities\Resolution) {
                     $groupby_id = $issue->getResolution()->getID();
                     $groupby_description = $issue->getResolution()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('Unknown');
                 }
                 break;
             case 'edition':
                 if ($issue->getEditions()) {
                     $groupby_id = $issue->getFirstAffectedEdition()->getID();
                     $groupby_description = $issue->getFirstAffectedEdition()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('None');
                 }
                 break;
             case 'build':
                 if ($issue->getBuilds()) {
                     $groupby_id = $issue->getFirstAffectedBuild()->getID();
                     $groupby_description = $issue->getFirstAffectedBuild()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('None');
                 }
                 break;
             case 'component':
                 if ($issue->getComponents()) {
                     $groupby_id = $issue->getFirstAffectedComponent()->getID();
                     $groupby_description = $issue->getFirstAffectedComponent()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('None');
                 }
                 break;
             case 'priority':
                 if ($issue->getPriority() instanceof entities\Priority) {
                     $groupby_id = $issue->getPriority()->getID();
                     $groupby_description = $issue->getPriority()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('Unknown');
                 }
                 break;
             case 'issuetype':
                 if ($issue->getIssueType() instanceof entities\Issuetype) {
                     $groupby_id = $issue->getIssueType()->getID();
                     $groupby_description = $issue->getIssueType()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('Unknown');
                 }
                 break;
             case 'milestone':
                 if ($issue->getMilestone() instanceof entities\Milestone) {
                     $groupby_id = $issue->getMilestone()->getID();
                     $groupby_description = $issue->getMilestone()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('Not targetted');
                 }
                 break;
             case 'assignee':
                 if ($issue->getAssignee() instanceof entities\common\Identifiable) {
                     $groupby_id = $issue->getAssignee()->getID();
                     $groupby_description = $issue->getAssignee()->getName();
                 } else {
                     $groupby_id = 0;
                     $groupby_description = $i18n->__('Not assigned');
                 }
                 break;
             case 'state':
                 if ($issue->isClosed()) {
                     $groupby_id = entities\Issue::STATE_CLOSED;
                     $groupby_description = $i18n->__('Closed');
                 } else {
                     $groupby_id = entities\Issue::STATE_OPEN;
                     $groupby_description = $i18n->__('Open');
                 }
                 break;
         }
         if ($groupby_id !== $prevgroup_id) {
             $showtablestart = true;
             $showheader = true;
         }
         $prevgroup_id = $groupby_id;
     }
     return array($showtablestart, $showheader, $prevgroup_id, $groupby_description);
 }