/** * Action permettant de créer un data set. * * @param sfWebRequest $request */ public function execute($request) { $this->setLayout(false); // On détermine le type de contenu retourné. $this->getResponse()->setContentType('application/json'); // On authentifie l'utilisateur. $this->getUser()->signIn($this->user, true); // On déclare le résultat à retourner. $resultat = array("not_found" => true); /** @var EiExcelRequestsTable $table */ $table = EiExcelRequestsTable::getInstance(); // TODO: Amélioration de l'appel EI_EXCEL_REQUESTS NATIVE REQUEST. // Mise à jour des états des demandes qui ont plus de 1 jour. $sqlUpdate = "UPDATE ei_excel_requests SET state = 1 WHERE created_at <= DATE_ADD(NOW(), INTERVAL -3 MINUTE);"; // Exécution. Doctrine_Manager::connection()->execute($sqlUpdate); /** @var EiExcelRequests $requete */ $requete = $table->getLastUserRequest($this->user->getEiUser()->getRefId(), $this->user->getEiUser()->getUserId()); if ($requete != null && $requete->getProfil() != null && $requete->getScenario() != null) { $resultat = array("id" => $requete->getId(), "project_id" => $requete->getProjectId(), "project_ref" => $requete->getProjectRef(), "project_name" => $requete->getScenario()->getEiProjet()->getName(), "profile_id" => $requete->getProfileId(), "profile_ref" => $requete->getProfileRef(), "profile_name" => $requete->getProfil()->getName(), "scenario_id" => $requete->getScenario()->getId(), "scenario_name" => $requete->getScenario()->getNomScenario(), "scenario_url" => $this->generateUrl("projet_new_eiversion", array("action" => "editVersionWithoutId", "project_id" => $requete->getProjectId(), "project_ref" => $requete->getProjectRef(), "profile_name" => $requete->getProfil()->getName(), "profile_id" => $requete->getProfileId(), "profile_ref" => $requete->getProfileRef(), "ei_scenario_id" => $requete->getScenario()->getId()), true), "ei_data_set_id" => $requete->getEiDataSetId(), "ei_data_set_name" => $requete->getEiDataSetId() != "" ? $requete->getEiDataSet()->getName() : "", "ei_data_set_desc" => $requete->getEiDataSetId() != "" ? $requete->getEiDataSet()->getDescription() : "", "ei_test_set_id" => $requete->getEiTestSetId(), "state" => $requete->getState()); if ($requete->getEiTestSetId() == "") { $requete->setEiTestSet(null); } if ($requete->getEiDataSetId() == "") { $requete->setEiDataSet(null); $requete->setEiDataSetTemplate(null); } $requete->setState(true); $requete->save(); } return $this->renderText(json_encode($resultat)); }
/** * Action permettant de créer un data set. * * @param sfWebRequest $request */ public function execute($request) { $this->ei_scenario = Doctrine_Core::getTable('EiScenario')->find($this->scenario->getId()); $this->forward404Unless($this->ei_scenario); $this->forward404Unless(Doctrine_Core::getTable("EiProjectUser")->getEiProjet($this->ei_scenario->getProjectId(), $this->ei_scenario->getProjectRef(), $this->user->getEiUser())); /** @var EiDataSetStructure $ei_root_node */ $ei_root_node = Doctrine_Core::getTable("EiDataSetStructure")->getRoot($this->ei_scenario->getId()); $this->forward404Unless($ei_root_node); /** @var DOMDocument $xsd */ $xsd = EiDataSetStructure::createXSD($ei_root_node); $xsd->formatOutput = true; $xsd = $xsd->saveXML(); $response = $this->getResponse(); $response->setContentType('text/xml'); $response->setHttpHeader('Content-Disposition', 'attachment; filename="' . $this->ei_scenario->getNomScenario() . '-XSD.xsd'); $response->setContent($xsd); return sfView::NONE; }
/** * Action permettant de retourner la description et les notices d'une fonction. * En POST, le matching est directement réalisé. * * @param sfWebRequest $request */ public function execute($request) { $this->setLayout(false); // On détermine le type de contenu retourné. $this->getResponse()->setContentType('application/json'); $this->getUser()->signIn($this->user, true); // Récupération du JDT. $test_set_id = $request->getParameter("ei_test_set_id"); $testSet = Doctrine_Core::getTable('EiTestSet')->find($test_set_id); // Récupération de la fonction. $function_id = $request->getParameter("function_id"); $function_ref = $request->getParameter("function_ref"); // Récupération du projet. $project_id = $request->getParameter("project_id"); $project_ref = $request->getParameter("project_ref"); $project = Doctrine_Core::getTable('EiProjet')->findOneByProjectIdAndRefId($project_id, $project_ref); // Récupération du profil. $profile_id = $request->getParameter("profile_id"); $profile_ref = $request->getParameter("profile_ref"); /** @var EiProfil $profile */ $profile = Doctrine_Core::getTable('EiProfil')->findOneByProfileIdAndProfileRefAndProjectIdAndProjectRef($profile_id, $profile_ref, $project_id, $project_ref); //Recherche des paramètres de profil à utiliser pour interpreter des éventuels paramètres variables $profileParams = $profile->getParamsWithName($this->user->getEiUser()); //Récupération de l'oracle du jeu de test ( notice du jeu de test) $oracle = $testSet->getTestSetOracle($project, $project->getDefaultNoticeLang(), $function_id, $function_ref, false); $oracle = isset($oracle[0]) ? $oracle[0] : $oracle; // Récupération des paramètres d'entrée. $params = Doctrine_Core::getTable('EiTestSetParam')->getParamForTestSetAndEiTestFunction($test_set_id, $oracle['ei_test_set_function_id']); $paramsOut = Doctrine_Core::getTable('EiFunctionHasParam')->findByFunctionRefAndFunctionIdAndParamType($function_ref, $function_id, 'OUT'); // Transformation de la notice $noticeDesc = MyFunction::parseAndExtractParamsValue($oracle["description"], $params, $profileParams); $noticeExp = MyFunction::parseAndExtractParamsValue($oracle["expected"], $params, $profileParams); if ($paramsOut != null && $paramsOut->count() > 0) { $tmpParams = array(); /** @var EiFunctionHasParam $param */ foreach ($paramsOut as $param) { $tmpParams[] = array("name" => $param->getName(), "value" => $param->getDefaultValue()); } $paramsOut = $tmpParams; } else { $paramsOut = array(); } return $this->renderText(json_encode(array("func_desc" => $oracle["func_desc"], "notice_desc" => $noticeDesc, "notice_expected" => $noticeExp, "in_params" => $params, 'out_params' => $paramsOut))); }
/** * Action permettant de créer un data set. * * @param sfWebRequest $request */ public function execute($request) { $this->logger = sfContext::getInstance()->getLogger(); $this->logger->info("----------------------------------------------------------"); $this->logger->info("--- DEBUT SAUVEGARDE DATA SET"); $this->setLayout(false); $this->getResponse()->setContentType('application/json'); $this->getUser()->signIn($this->user, true); // On récupère le noeud parent du scénario. $noeud_id = $this->scenario->getEiNode()->getId(); $noeud_parent = Doctrine_Core::getTable("EiNode")->findOneByRootIdAndType($noeud_id, "EiDataSetFolder"); $noeud_parent_id = $noeud_parent->getId(); // Récupération du nom & description. $nom = $request->getPostParameter("name"); $desc = $request->getPostParameter("description"); // On récupère le data set source (si enregistrement). $dataSetSourceId = $request->getPostParameter("jddSource"); // On récupère le data set template source (si enregistrement). $dataSetTemplateSourceId = $request->getPostParameter("jddTemplateSource"); // On récupère le dossier où enregistrer le JDD. $dataSetDirId = $request->getPostParameter("jddDir"); // On décode le fichier. $request->setParameter("file", str_replace("%3E", ">", str_replace("%3C", "<", $request->getParameter("file")))); // LOGS $this->logger->info("-- NOM : " . $nom); $this->logger->info("-- DESCRIPTION : " . $desc); $this->logger->info("-- JDD SOURCE ID : " . $dataSetSourceId); $this->logger->info("-- JDD TEMPLATE SOURCE ID : " . $dataSetTemplateSourceId); $this->logger->info("-- NOEUD ID PARENT : " . $noeud_parent_id); $this->logger->info("----------------------------------------------------------"); $this->logger->info("--- FIN SAUVEGARDE DATA SET"); $this->logger->info("----------------------------------------------------------"); $request->setParameter("ei_user", $this->user->getEiUser()); $request->setParameter("name", $nom); $request->setParameter("description", $desc); $request->setParameter("ei_node_parent_id", $noeud_parent_id); if ($dataSetSourceId != null && $dataSetSourceId != -1) { $request->setParameter("dataSetSource", $dataSetSourceId); } if ($dataSetTemplateSourceId != null && $dataSetTemplateSourceId != -1) { $request->setParameter("dataSetTemplateSource", $dataSetTemplateSourceId); } if ($dataSetDirId != null && $dataSetDirId != -1) { $oJddDir = Doctrine_Core::getTable("EiNode")->find($dataSetDirId); if ($oJddDir != null && $oJddDir->getObjId() != "") { $request->setParameter("dataSetDir", $dataSetDirId); $request->setParameter("ei_node_parent_id", $dataSetDirId); } } $this->logger->info("----------------------------------------------------------"); $chronometre = new Chronometre(); $chronometre->lancerChrono("PERFORMANCE CREATION JDD"); try { $content = $this->getController()->getPresentationFor("eidataset", "lightCreateFromXml"); } catch (Exception $exc) { $this->logger->info("--- ERREUR : " . $exc->getMessage() . " ---"); } // Fin mesure $chronometre->arreterEtAfficherChrono(); $this->logger->info("----------------------------------------------------------"); return $this->renderText($content); }