private function redirectOrAppend(Codendi_Request $request, Tracker_Artifact $artifact, Tracker_Artifact_Redirect $redirect, $requested_planning, Tracker_Artifact $last_milestone_artifact = null)
 {
     $planning = PlanningFactory::build()->getPlanning($requested_planning['planning_id']);
     if ($planning && !$redirect->stayInTracker()) {
         $this->redirectToPlanning($artifact, $requested_planning, $planning, $redirect);
     } elseif (!$redirect->stayInTracker()) {
         $this->redirectToTopPlanning($artifact, $requested_planning, $redirect);
     } else {
         $this->setQueryParametersFromRequest($request, $redirect);
         // Pass the right parameters so parent can be created in the right milestone (see updateBacklogs)
         if ($planning && $last_milestone_artifact && $redirect->mode == Tracker_Artifact_Redirect::STATE_CREATE_PARENT) {
             $redirect->query_parameters['child_milestone'] = $last_milestone_artifact->getId();
         }
     }
 }