示例#1
0
 public function linkWithParents(Codendi_Request $request, Tracker_Artifact $artifact)
 {
     $user = $request->getCurrentUser();
     $ancestors = $artifact->getAllAncestors($user);
     if (count($ancestors) == 0) {
         $artifact_id = (int) $request->getValidated('link-artifact-id', 'uint', 0);
         $source_artifact = $this->artifact_factory->getArtifactById($artifact_id);
         if ($source_artifact) {
             foreach ($source_artifact->getAllAncestors($user) as $ancestor) {
                 $ancestor->linkArtifact($artifact->getId(), $user);
             }
         }
     }
 }
示例#2
0
 private function linkWithMilestoneArtifact(User $user, Tracker_Artifact $artifact, Tracker_Artifact $source_artifact = null)
 {
     $last_ancestor = $source_artifact;
     if ($source_artifact) {
         foreach ($source_artifact->getAllAncestors($user) as $ancestor) {
             $planning = $this->planning_factory->getPlanningByPlanningTracker($ancestor->getTracker());
             if ($planning && $planning->getBacklogTracker() == $artifact->getTracker()) {
                 $ancestor->linkArtifact($artifact->getId(), $user);
                 $last_ancestor = $ancestor;
             }
         }
     }
     return $last_ancestor;
 }
示例#3
0
 protected function redirectToParentCreationIfNeeded(Tracker_Artifact $artifact, User $current_user, Tracker_Artifact_Redirect $redirect)
 {
     $parent_tracker = $this->tracker->getParent();
     if ($parent_tracker) {
         if (count($artifact->getAllAncestors($current_user)) == 0) {
             $art_link = $this->formelement_factory->getAnArtifactLinkField($current_user, $parent_tracker);
             if ($art_link) {
                 $art_link_key = 'artifact[' . $art_link->getId() . '][new_values]';
                 $redirect_params = array('tracker' => $parent_tracker->getId(), 'func' => 'new-artifact', $art_link_key => $artifact->getId());
                 $redirect->mode = Tracker_Artifact_Redirect::STATE_CREATE_PARENT;
                 $redirect->query_parameters = $redirect_params;
             }
         }
     }
 }