Пример #1
0
 public function runUpdateMilestoneIssues(TBGRequest $request)
 {
     if ($request['milestone_id']) {
         $milestone = new TBGMilestone($request['milestone_id']);
     } else {
         $milestone = new TBGMilestone();
         $milestone->setName(TBGContext::getI18n()->__('Unassigned issues / backlog'));
         $milestone->setId(0);
         $milestone->setProject($this->selected_project);
     }
     foreach ($request['issue_id'] as $issue_id) {
         $issue = new TBGIssue($issue_id);
         if (isset($request['estimated_hours'][$issue_id])) {
             $issue->setEstimatedHours($request['estimated_hours'][$issue_id]);
         }
         if (isset($request['estimated_points'][$issue_id])) {
             $issue->setEstimatedPoints($request['estimated_points'][$issue_id]);
         }
         if (isset($request['spent_hours'][$issue_id])) {
             $issue->setSpentHours($request['spent_hours'][$issue_id]);
         }
         if (isset($request['spent_points'][$issue_id])) {
             $issue->setSpentPoints($request['spent_points'][$issue_id]);
         }
         if (isset($request['priority'][$issue_id])) {
             $issue->setPriority($request['priority'][$issue_id]);
         }
         if (isset($request['percent_complete'][$issue_id])) {
             $issue->setPercentCompleted($request['percent_complete'][$issue_id]);
         }
         if (isset($request['severity'][$issue_id])) {
             $issue->setSeverity($request['severity'][$issue_id]);
         }
         if (isset($request['reproducability'][$issue_id])) {
             $issue->setReproducability($request['reproducability'][$issue_id]);
         }
         if (isset($request['category'][$issue_id])) {
             $issue->setCategory($request['category'][$issue_id]);
         }
         if (isset($request['customfield'])) {
             foreach ($request['customfield'] as $fieldkey => $data) {
                 if (isset($data[$issue_id])) {
                     $issue->setCustomField($fieldkey, $data[$issue_id]);
                 }
             }
         }
         $issue->save();
     }
     return $this->renderJSON(array('estimated_hours' => $milestone->getHoursEstimated(), 'estimated_points' => $milestone->getPointsEstimated(), 'message' => TBGContext::getI18n()->__('%num issue(s) updated', array('%num' => count($request['issue_id'])))));
 }
Пример #2
0
 protected function _postIssue()
 {
     $fields_array = $this->selected_project->getReportableFieldsArray($this->issuetype_id);
     $issue = new TBGIssue();
     $issue->setTitle($this->title);
     $issue->setIssuetype($this->issuetype_id);
     $issue->setProject($this->selected_project);
     if (isset($fields_array['description'])) {
         $issue->setDescription($this->selected_description);
     }
     if (isset($fields_array['description_syntax'])) {
         $issue->setDescriptionSyntax($this->selected_description_syntax);
     }
     if (isset($fields_array['reproduction_steps'])) {
         $issue->setReproductionSteps($this->selected_reproduction_steps);
     }
     if (isset($fields_array['reproduction_steps_syntax'])) {
         $issue->setReproductionStepsSyntax($this->selected_reproduction_steps_syntax);
     }
     if (isset($fields_array['category']) && $this->selected_category instanceof TBGDatatype) {
         $issue->setCategory($this->selected_category->getID());
     }
     if (isset($fields_array['status']) && $this->selected_status instanceof TBGDatatype) {
         $issue->setStatus($this->selected_status->getID());
     }
     if (isset($fields_array['reproducability']) && $this->selected_reproducability instanceof TBGDatatype) {
         $issue->setReproducability($this->selected_reproducability->getID());
     }
     if (isset($fields_array['resolution']) && $this->selected_resolution instanceof TBGDatatype) {
         $issue->setResolution($this->selected_resolution->getID());
     }
     if (isset($fields_array['severity']) && $this->selected_severity instanceof TBGDatatype) {
         $issue->setSeverity($this->selected_severity->getID());
     }
     if (isset($fields_array['priority']) && $this->selected_priority instanceof TBGDatatype) {
         $issue->setPriority($this->selected_priority->getID());
     }
     if (isset($fields_array['estimated_time'])) {
         $issue->setEstimatedTime($this->selected_estimated_time);
     }
     if (isset($fields_array['spent_time'])) {
         $issue->setSpentTime($this->selected_spent_time);
     }
     if (isset($fields_array['milestone']) || isset($this->selected_milestone)) {
         $issue->setMilestone($this->selected_milestone);
     }
     if (isset($fields_array['percent_complete'])) {
         $issue->setPercentCompleted($this->selected_percent_complete);
     }
     if (isset($fields_array['pain_bug_type'])) {
         $issue->setPainBugType($this->selected_pain_bug_type);
     }
     if (isset($fields_array['pain_likelihood'])) {
         $issue->setPainLikelihood($this->selected_pain_likelihood);
     }
     if (isset($fields_array['pain_effect'])) {
         $issue->setPainEffect($this->selected_pain_effect);
     }
     foreach (TBGCustomDatatype::getAll() as $customdatatype) {
         if (!isset($fields_array[$customdatatype->getKey()])) {
             continue;
         }
         if ($customdatatype->hasCustomOptions()) {
             if (isset($fields_array[$customdatatype->getKey()]) && $this->selected_customdatatype[$customdatatype->getKey()] instanceof TBGCustomDatatypeOption) {
                 $selected_option = $this->selected_customdatatype[$customdatatype->getKey()];
                 $issue->setCustomField($customdatatype->getKey(), $selected_option->getID());
             }
         } else {
             $issue->setCustomField($customdatatype->getKey(), $this->selected_customdatatype[$customdatatype->getKey()]);
         }
     }
     // FIXME: If we set the issue assignee during report issue, this needs to be set INSTEAD of this
     if ($this->selected_project->canAutoassign()) {
         if (isset($fields_array['component']) && $this->selected_component instanceof TBGComponent && $this->selected_component->hasLeader()) {
             $issue->setAssignee($this->selected_component->getLeader());
         } elseif (isset($fields_array['edition']) && $this->selected_edition instanceof TBGEdition && $this->selected_edition->hasLeader()) {
             $issue->setAssignee($this->selected_edition->getLeader());
         } elseif ($this->selected_project->hasLeader()) {
             $issue->setAssignee($this->selected_project->getLeader());
         }
     }
     $issue->save();
     if (isset($this->parent_issue)) {
         $issue->addParentIssue($this->parent_issue);
     }
     if (isset($fields_array['edition']) && $this->selected_edition instanceof TBGEdition) {
         $issue->addAffectedEdition($this->selected_edition);
     }
     if (isset($fields_array['build']) && $this->selected_build instanceof TBGBuild) {
         $issue->addAffectedBuild($this->selected_build);
     }
     if (isset($fields_array['component']) && $this->selected_component instanceof TBGComponent) {
         $issue->addAffectedComponent($this->selected_component);
     }
     return $issue;
 }