Commit 673e739a authored by Raph El's avatar Raph El
Browse files

Modif answers views

parent cfa003d6
......@@ -625,7 +625,150 @@ class Form {
return $res;
}
public static function getDataForAnswer($params){
if(isset(Yii::app()->session["costum"]["contextType"]) && isset(Yii::app()->session["costum"]["contextId"]))
$params["el"] = Element::getByTypeAndId(Yii::app()->session["costum"]["contextType"], Yii::app()->session["costum"]["contextId"] );
if(isset(Yii::app()->session['costum']["hasOpenForm"])){
if(isset(Yii::app()->session['costum']["isMultiForms"])){
$params["formList"] = Yii::app()->session["costum"]["form"]["ids"];
$params["formId"] = implode("|", $params["formList"]);
//when inputs are interdependant on other inputs
$budgetInputList = [];
$allforms = [];
$stockBudgetInputs = false;
foreach ($params["formList"] as $i => $formId)
{
$f = PHDB::findOne(Form::COLLECTION, ["id"=>$formId]);
$allforms[$formId] = $f;
foreach ($f["inputs"] as $key => $inp)
{
if( in_array($inp["type"], ["tpls.forms.cplx.budget"] ) )
$budgetInputList[$formId.".".$key] = $formId.".".$key;
if( in_array($inp["type"], [
"tpls.forms.cplx.tpls.forms.cplx.financementFromBudget",
"tpls.forms.cplx.tpls.forms.cplx.suiviFromBudget",
"tpls.forms.cplx.tpls.forms.cplx.decideFromBudget"] ) )
$stockBudgetInputs = true;
}
}
if(count($budgetInputList))
Yii::app()->session["budgetInputList"] = $budgetInputList;
//use the cache
Yii::app()->session["forms"] = $allforms;
} else {
if(isset($_GET["form"]))
$params["formId"] = $_GET["form"];
else
$params["formId"] = (isset(Yii::app()->session["costum"]["form"]["id"])) ? Yii::app()->session["costum"]["form"]["id"] : Form::generateOpenForm( $el["slug"] );
}
// $answer = ( isset(Yii::app()->session["costum"]["form"]["canModifyAnswer"]) && isset($_GET['answer'])) ? PHDB::findOne( Form::ANSWER_COLLECTION,[ "_id" => new MongoId($_GET['answer']) ] ) : null;
$answer = ( isset($_GET['answer'])) ? PHDB::findOne( Form::ANSWER_COLLECTION,[ "_id" => new MongoId($_GET['answer']) ] ) : null;
$showForm = true;
$generateAnswer = false;
$myAnswers = PHDB::find( Form::ANSWER_COLLECTION,[
"formId" => $params["formId"],
"parentSlug" => $params["el"]["slug"],
"user" => Yii::app()->session["userId"] ] );
if(
!isset(Yii::app()->session["costum"]["form"]["oneAnswerPerPerson"]) ||
count($myAnswers) == 0
)
{
//si ya qu'une réponse et on la charge directe
if(count($myAnswers) == 1 )
$answer = $myAnswers[ array_keys($myAnswers)[0] ];
else {
//sinon on cherche la reponse incomplete
foreach ($myAnswers as $id => $ans)
{
//chercher les reponse incomplete
//var_dump(isset( $ans["answers"] ) );
if(!isset( $ans["answers"]) && $answer == null )
$answer = $ans;
}
}
if( $answer == null && count( $myAnswers ) > 1 && !$canEdit )
$showForm = false;
//si aucune reponse existe
//et qu'on a des input complexe alors on génere une answer
if( !isset($_GET['answer']) && $answer == null )
{
if(isset($params["formList"])){
$generateAnswer = true;
}
else if(isset($form["inputs"])){
foreach ($form["inputs"] as $key => $inp)
{
if( stripos( $inp["type"] , "tpls.forms.cplx" ) !== false )
$generateAnswer = true;
}
}
}
if( isset($_GET['answer']) && $_GET['answer'] == "new" )
$generateAnswer = true;
//on pré genere un anwser que quand il n'y en pas
//pour permettre le save onBlur , ou s'il y a des cplx forms
//il ne peut y avoir qu'un seul answer en cours simultanement
///TODO purger ANSwers via CRON
if( $generateAnswer )
{
//var_dump("create new" );
$ans = [
"formId" => $params["formId"],
"user" => Yii::app()->session["userId"],
"parentSlug" => $params["el"]["slug"],
"created" => time()
];
if(isset($params["formList"]))
$ans["formList"] = count($params["formList"]);
PHDB::insert(Form::ANSWER_COLLECTION, $ans);
$answer = PHDB::findOne( Form::ANSWER_COLLECTION, [ "_id" => new MongoId($ans["_id"]) ] );
}
// var_dump($params["el"]["slug"] );
// var_dump($params["formId"] );
// var_dump($answer );
// var_dump(Yii::app()->getRequest()->getQuery('answer'));
// exit;
$params["answer"] = $answer;
$params["showForm"] = $showForm;
$params["allAnswers"] = PHDB::find( Form::ANSWER_COLLECTION,[
"formId" => $params["formId"],
"parentSlug" => $params["el"]["slug"] ] );
//var_dump($params["el"]["slug"]);exit;
//var_dump($params["allAnswers"]);exit;
} else {
echo "<h4 class='text-center text-red'><i class='fa fa-warning'></i> Une seul réponse n'est possible.</h4>";
echo "<a class='btn btn-primary' href='/costum/co/index/slug/".$el["slug"]."/answer/".$myAnswers[0]."'>Votre réponse</a>";
}
}
return $params;
}
}
?>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment