public function run()
 {
     $controller = $this->getController();
     $params = array();
     $params["countries"] = OpenData::getCountriesList();
     if (Yii::app()->request->isAjaxRequest) {
         echo $controller->renderPartial("projectSV", $params, true);
     }
 }
 public function actionOpenQuestions()
 {
     $openQuestions = OpenQuestion::model()->findAll();
     if (isset($_GET['question_id'])) {
         $question_id = $_GET['question_id'];
         Yii::trace("SR.openQuestions called for '{$question_id}'", 'application.controllers.SurveyReportsController');
         if (preg_match('/^\\d+$/', $question_id)) {
             $crit = array('question_id' => $question_id);
         } elseif ('' == $question_id) {
             $questions = OpenQuestion::model()->findAllByAttributes(array('type' => 'yesno'));
             $qids = array();
             foreach ($questions as $qn) {
                 array_push($qids, $qn->id);
             }
             $crit = array('question_id' => $qids);
         } else {
             return;
         }
         $openDist = OpenData::model()->findAllByAttributes($crit, array('select' => 'question_id, value, count(id) val_count', 'group' => 'question_id, value'));
         $this->renderPartial('questions_report', array('openDist' => $openDist, 'openQuestions' => $openQuestions));
         return;
     }
     $this->render('openQuestions', array('openQuestions' => $openQuestions));
 }
 public function actionSurvey($id)
 {
     $model = $this->loadModel($id);
     if (isset($_POST['SatisfactionData'])) {
         foreach ($_POST['SatisfactionData'] as $sid => $value) {
             $sd = SatisfactionData::model()->findByAttributes(array('family_id' => $id, 'satisfaction_item_id' => $sid));
             if (!$sd) {
                 $sd = new SatisfactionData();
             }
             $sd->attributes = $value;
             $sd->family_id = $id;
             $sd->satisfaction_item_id = $sid;
             $sd->save();
         }
     }
     if (isset($_POST['NeedData'])) {
         foreach ($_POST['NeedData'] as $nid => $value) {
             $nd = NeedData::model()->findByAttributes(array('family_id' => $id, 'need_id' => $nid));
             if (!$nd) {
                 $nd = new NeedData();
             }
             $nd->attributes = $value;
             $nd->family_id = $id;
             $nd->need_id = $nid;
             $nd->save();
         }
     }
     if (isset($_POST['AwarenessData'])) {
         Yii::trace("FC.survey awareness reached", 'application.controllers.FamilyController');
         $awarenessItems = AwarenessItem::model()->findAll();
         foreach ($awarenessItems as $aRow) {
             $aid = $aRow->id;
             $value = isset($_POST['AwarenessData'][$aid]) ? $_POST['AwarenessData'][$aid] : 1;
             $ad = AwarenessData::model()->findByAttributes(array('family_id' => $id, 'awareness_id' => $aid));
             if (!$ad) {
                 $ad = new AwarenessData();
             }
             $ad->value = $value;
             $ad->family_id = $id;
             $ad->awareness_id = $aid;
             $ad->save();
         }
     }
     if (isset($_POST['OpenData'])) {
         foreach ($_POST['OpenData'] as $qid => $value) {
             $od = OpenData::model()->findByAttributes(array('family_id' => $id, 'question_id' => $qid));
             if (!$od) {
                 $od = new OpenData();
             }
             $od->attributes = $value;
             $od->family_id = $id;
             $od->question_id = $qid;
             $od->save();
         }
     }
     $satisfactionItems = SatisfactionItem::model()->findAll();
     $needItems = NeedItem::model()->findAll();
     $openQuestions = OpenQuestion::model()->findAll(array('order' => 'seq'));
     $awarenessItems = AwarenessItem::model()->findAll();
     $this->render('survey', array('model' => $model, 'satisfactionItems' => $satisfactionItems, 'satisfactionData' => Families::satisfactionData($id), 'needItems' => $needItems, 'needData' => Families::needData($id), 'awarenessItems' => $awarenessItems, 'awarenessData' => Families::awarenessData($id), 'openQuestions' => $openQuestions));
 }
 /**
  * Dashboard Organization
  */
 public function run($id)
 {
     $controller = $this->getController();
     if (empty($id)) {
         throw new CTKException(Yii::t("organisation", "The organization id is mandatory to retrieve the organization !"));
     }
     $organization = Organization::getPublicData($id);
     $events = Organization::listEventsPublicAgenda($id);
     $controller->title = isset($organization["name"]) ? $organization["name"] : "";
     $controller->subTitle = isset($organization["shortDescripion"]) ? $organization["shortDescripion"] : "";
     $controller->pageTitle = $controller->title . " - " . $controller->subTitle;
     $params = array("organization" => $organization);
     $params["events"] = $events;
     //Same content Key base as the dashboard
     $contentKeyBase = Yii::app()->controller->id . ".dashboard";
     $params["contentKeyBase"] = $contentKeyBase;
     $limit = array(Document::IMG_PROFIL => 1, Document::IMG_MEDIA => 5);
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE, $limit);
     $params["images"] = $images;
     $documents = Document::getWhere(array("type" => Organization::COLLECTION, "id" => $id));
     $params["documents"] = $documents;
     $contextMap = array();
     $contextMap["organization"] = $organization;
     $contextMap["events"] = array();
     $contextMap["organizations"] = array();
     $contextMap["people"] = array();
     $organizations = Organization::getMembersByOrganizationId($id, Organization::COLLECTION);
     $people = Organization::getMembersByOrganizationId($id, Person::COLLECTION);
     foreach ($organizations as $key => $value) {
         $newOrga = Organization::getById($key);
         array_push($contextMap["organizations"], $newOrga);
     }
     if (isset($organization["links"]) && isset($organization["links"]["members"])) {
         $equipe = array();
         $ca = array();
         $bureau = array();
         foreach ($organization["links"]["members"] as $key => $value) {
             if ($value["type"] == PHType::TYPE_CITOYEN && isset($value["roles"])) {
                 $person = Person::getById($key);
                 if (!empty($person)) {
                     if (in_array("Bureau", $value["roles"])) {
                         $bureau[$key] = $person;
                     }
                     if (in_array("Conseil d'administration", $value["roles"])) {
                         $ca[$key] = $person;
                     }
                     if (in_array("Equipe", $value["roles"])) {
                         $equipe[$key] = $person;
                     }
                 }
             }
         }
         if (count($equipe) > 0) {
             $params["equipe"] = $equipe;
         }
         if (count($ca) > 0) {
             $params["ca"] = $ca;
         }
         if (count($bureau) > 0) {
             $params["bureau"] = $bureau;
         }
     }
     foreach ($events as $key => $value) {
         $newEvent = Event::getById($key);
         array_push($contextMap["events"], $newEvent);
     }
     foreach ($people as $key => $value) {
         $newCitoyen = Person::getById($key);
         array_push($contextMap["people"], $newCitoyen);
     }
     $params["contextMap"] = $contextMap;
     $params["countries"] = OpenData::getCountriesList();
     $lists = Lists::get(array("organisationTypes"));
     $params["organizationTypes"] = $lists["organisationTypes"];
     $controller->title = isset($organization["name"]) ? $organization["name"] : "";
     $controller->render("dashboard1", $params);
 }
 /**
  * Dashboard Organization
  */
 public function run($id)
 {
     $controller = $this->getController();
     if (empty($id)) {
         throw new CTKException(Yii::t("organisation", "The organization id is mandatory to retrieve the organization !"));
     }
     $organization = Organization::getPublicData($id);
     $events = Organization::listEventsPublicAgenda($id);
     $members = array("citoyens" => array(), "organizations" => array());
     $controller->title = isset($organization["name"]) ? $organization["name"] : "";
     $controller->subTitle = isset($organization["shortDescripion"]) ? $organization["shortDescripion"] : "";
     $controller->pageTitle = "Organization " . $controller->title . " - " . $controller->subTitle;
     if (isset($organization["_id"]) && isset(Yii::app()->session["userId"]) && Link::isLinked((string) $organization["_id"], Organization::COLLECTION, Yii::app()->session["userId"])) {
         $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='removeMemberBtn text-red tooltips' data-name='" . $organization["name"] . "' data-memberof-id='" . $organization["_id"] . "' data-member-type='" . Person::COLLECTION . "' data-member-id='" . Yii::app()->session["userId"] . "' data-placement='top' data-original-title='Remove from my Organizations' ><i class='disconnectBtnIcon fa fa-unlink'></i>NOT MEMBER</a></li>");
     } else {
         $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='connectBtn tooltips ' id='addMeAsMemberInfo' data-placement='top' data-original-title='I'm member of this organization' ><i class=' connectBtnIcon fa fa-link '></i>I'M MEMBER</a></li>");
     }
     $contentKeyBase = Yii::app()->controller->id . "." . Yii::app()->controller->action->id;
     $limit = array(Document::IMG_PROFIL => 1, Document::IMG_MEDIA => 5);
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE, $limit);
     $params = array("organization" => $organization);
     $params["contentKeyBase"] = $contentKeyBase;
     $params["images"] = $images;
     $params["events"] = $events;
     $contextMap = array();
     $contextMap["organization"] = $organization;
     $contextMap["events"] = array();
     $contextMap["organizations"] = array();
     $contextMap["people"] = array();
     $organizations = Organization::getMembersByOrganizationId($id, Organization::COLLECTION);
     $people = Organization::getMembersByOrganizationId($id, Person::COLLECTION);
     foreach ($organizations as $key => $value) {
         $newOrga = Organization::getById($key);
         array_push($contextMap["organizations"], $newOrga);
         array_push($members["organizations"], $newOrga);
     }
     foreach ($events as $key => $value) {
         $newEvent = Event::getById($key);
         array_push($contextMap["events"], $newEvent);
     }
     foreach ($people as $key => $value) {
         $newCitoyen = Person::getById($key);
         $profil = Document::getLastImageByKey($key, Person::COLLECTION, Document::IMG_PROFIL);
         if ($profil != "") {
             $newCitoyen["imagePath"] = $profil;
         }
         array_push($contextMap["people"], $newCitoyen);
         array_push($members["citoyens"], $newCitoyen);
     }
     $params["members"] = $members;
     $params["contextMap"] = $contextMap;
     //list
     $params["tags"] = Tags::getActiveTags();
     $lists = Lists::get(array("public", "typeIntervention", "organisationTypes"));
     $params["public"] = $lists["public"];
     $params["organizationTypes"] = $lists["organisationTypes"];
     $params["typeIntervention"] = $lists["typeIntervention"];
     $params["countries"] = OpenData::getCountriesList();
     //Plaquette de présentation
     $listPlaquette = Document::listDocumentByCategory($id, Organization::COLLECTION, Document::CATEGORY_PLAQUETTE, array('created' => 1));
     $params["plaquette"] = reset($listPlaquette);
     $controller->title = isset($organization["name"]) ? $organization["name"] : "";
     $controller->render("dashboard", $params);
 }
 public function run($id)
 {
     $controller = $this->getController();
     $project = Project::getPublicData($id);
     $controller->sidebar1 = array(array('label' => "ACCUEIL", "key" => "home", "iconClass" => "fa fa-home", "href" => "communecter/project/dashboard/id/" . $id));
     $controller->title = isset($project["name"]) ? $project["name"] : "";
     if (isset($project["_id"]) && isset(Yii::app()->session["userId"]) && Link::isLinked($project["_id"], Project::COLLECTION, Yii::app()->session['userId'])) {
         $htmlFollowBtn = "<li id='linkBtns'><a href='javascript:;' class='disconnectBtn text-red tooltips' data-name='" . $project["name"] . "' data-id='" . $project["_id"] . "' data-type='" . Project::COLLECTION . "' data-member-id='" . Yii::app()->session["userId"] . "' data-ownerlink='" . Link::person2projects . "' data-targetlink='" . Link::project2person . "' data-placement='top' data-original-title='No more Attendee' ><i class='disconnectBtnIcon fa fa-unlink'></i>UNCONTRIBUTE</a></li>";
     } else {
         $htmlFollowBtn = "<li id='linkBtns'><a href='javascript:;' class='connectBtn tooltips ' id='addKnowsRelation' data-placement='top' data-ownerlink='" . Link::person2projects . "' data-targetlink='" . Link::project2person . "' data-original-title='I know this person' ><i class=' connectBtnIcon fa fa-link '></i>CONTRIBUTE</a></li>";
     }
     $controller->toolbarMBZ = array("<a href='" . Yii::app()->createUrl("/" . $controller->module->id . "/news/index/type/projects/id/" . $id) . "'><i class='fa fa-rss fa-2x'></i>TIMELINE</a>", "<a href='" . Yii::app()->createUrl("/" . $controller->module->id . "/discuss/index/type/projects/id/" . $id) . "'><i class='fa fa-comments-o fa-2x'></i>DISCUSS</a>", $htmlFollowBtn);
     $controller->subTitle = isset($project["description"]) ? $project["description"] : "";
     $controller->pageTitle = "Communecter - Informations sur le projet " . $controller->title;
     $organizations = array();
     $people = array();
     //$admins = array();
     $contributors = array();
     $properties = array();
     $contentKeyBase = $controller->id . "." . $controller->action->id;
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE);
     if (!empty($project)) {
         $params = array();
         if (isset($project["links"])) {
             foreach ($project["links"]["contributors"] as $id => $e) {
                 if ($e["type"] == Organization::COLLECTION) {
                     $organization = Organization::getPublicData($id);
                     if (!empty($organization)) {
                         array_push($organizations, $organization);
                         $organization["type"] = "organization";
                         array_push($contributors, $organization);
                     }
                 } else {
                     if ($e["type"] == PHType::TYPE_CITOYEN) {
                         $citoyen = Person::getPublicData($id);
                         if (!empty($citoyen)) {
                             array_push($people, $citoyen);
                             $citoyen["type"] = "citoyen";
                             array_push($contributors, $citoyen);
                         }
                     }
                 }
                 /*if(isset($e["isAdmin"]) && $e["isAdmin"]==true){
                 			array_push($admins, $e);
                 		}*/
             }
         }
         if (isset($project["properties"])) {
             $properties = $project["properties"];
         }
     }
     $lists = Lists::get(array("organisationTypes"));
     $params["countries"] = OpenData::getCountriesList();
     $params["tags"] = Tags::getActiveTags();
     $params["organizationTypes"] = $lists["organisationTypes"];
     $params["images"] = $images;
     $params["contentKeyBase"] = $contentKeyBase;
     $params["contributors"] = $contributors;
     $params["project"] = $project;
     $params["organizations"] = $organizations;
     $params["people"] = $people;
     $params["properties"] = $properties;
     //$params["admins"] = $admins;
     $controller->render("dashboard", $params);
 }
 public function run()
 {
     $countries = OpenData::getCountriesList();
     Rest::json($countries);
     Yii::app()->end();
 }
 public function run($id = null)
 {
     $controller = $this->getController();
     //get The person Id
     if (empty($id)) {
         if (empty(Yii::app()->session["userId"])) {
             $controller->redirect(Yii::app()->homeUrl);
         } else {
             $id = Yii::app()->session["userId"];
         }
     }
     $person = Person::getPublicData($id);
     $contentKeyBase = Yii::app()->controller->id . "." . Yii::app()->controller->action->id;
     $limit = array(Document::IMG_PROFIL => 1, Document::IMG_MEDIA => 5);
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE, $limit);
     $params = array("person" => $person);
     $params['images'] = $images;
     $params["contentKeyBase"] = $contentKeyBase;
     $controller->sidebar1 = array(array('label' => "ACCUEIL", "key" => "home", "iconClass" => "fa fa-home", "href" => "communecter/person/dashboard/id/" . $id));
     $controller->title = (isset($person["name"]) ? $person["name"] : "") . "'s Dashboard";
     $controller->subTitle = isset($person["description"]) ? $person["description"] : "";
     $controller->pageTitle = ucfirst($controller->module->id) . " - Informations publiques de " . $controller->title;
     //$controller->pageTitle = "Citoyens ".$controller->title." - ".$controller->subTitle;
     if (isset($person["_id"]) && isset(Yii::app()->session["userId"]) && $person["_id"] != Yii::app()->session["userId"]) {
         if (isset($person["_id"]) && isset(Yii::app()->session["userId"]) && Link::isConnected(Yii::app()->session['userId'], PHType::TYPE_CITOYEN, (string) $person["_id"], PHType::TYPE_CITOYEN)) {
             $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='disconnectBtn text-red tooltips' data-name='" . $person["name"] . "' data-id='" . $person["_id"] . "' data-type='" . Person::COLLECTION . "' data-ownerlink='" . link::person2person . "' data-placement='top' data-original-title='Remove from my contact' ><i class='disconnectBtnIcon fa fa-unlink'></i>UNFOLLOW</a></li>");
         } else {
             $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='connectBtn tooltips ' id='addKnowsRelation' data-ownerlink='" . link::person2person . "' data-placement='top' data-original-title='I know this person' ><i class=' connectBtnIcon fa fa-link '></i>FOLLOW</a></li>");
         }
     }
     //Get Projects
     $projects = array();
     if (isset($person["links"]["projects"])) {
         foreach ($person["links"]["projects"] as $key => $value) {
             $project = Project::getPublicData($key);
             array_push($projects, $project);
         }
     }
     //Get the Events
     $events = Authorisation::listEventsIamAdminOf($id);
     $eventsAttending = Event::listEventAttending($id);
     foreach ($eventsAttending as $key => $value) {
         $eventId = (string) $value["_id"];
         if (!isset($events[$eventId])) {
             $events[$eventId] = $value;
         }
     }
     //TODO - SBAR : Pour le dashboard person, affiche t-on les événements des associations dont je suis memebre ?
     //Get the organization where i am member of;
     $organizations = array();
     if (isset($person["links"]) && isset($person["links"]["memberOf"])) {
         foreach ($person["links"]["memberOf"] as $key => $member) {
             $organization;
             if ($member['type'] == Organization::COLLECTION) {
                 $organization = Organization::getPublicData($key);
                 $profil = Document::getLastImageByKey($key, Organization::COLLECTION, Document::IMG_PROFIL);
                 if ($profil != "") {
                     $organization["imagePath"] = $profil;
                 }
                 array_push($organizations, $organization);
             }
             if (isset($organization["links"]["events"])) {
                 foreach ($organization["links"]["events"] as $keyEv => $valueEv) {
                     $event = Event::getPublicData($keyEv);
                     $events[$keyEv] = $event;
                 }
             }
         }
         //$randomOrganizationId = array_rand($subOrganizationIds);
         //$randomOrganization = Organization::getById( $subOrganizationIds[$randomOrganizationId] );
         //$params["randomOrganization"] = $randomOrganization;
     }
     $people = array();
     if (isset($person["links"]) && isset($person["links"]["knows"])) {
         foreach ($person["links"]["knows"] as $key => $member) {
             $citoyen;
             if ($member['type'] == PHType::TYPE_CITOYEN) {
                 $citoyen = Person::getPublicData($key);
                 $profil = Document::getLastImageByKey($key, Person::COLLECTION, Document::IMG_PROFIL);
                 if ($profil != "") {
                     $citoyen["imagePath"] = $profil;
                 }
                 array_push($people, $citoyen);
             }
         }
     }
     $params["countries"] = OpenData::getCountriesList();
     $params["listCodeOrga"] = Lists::get(array("organisationTypes"));
     $params["tags"] = Tags::getActiveTags();
     $params["organizations"] = $organizations;
     $params["projects"] = $projects;
     $params["events"] = $events;
     $params["people"] = $people;
     $controller->render("dashboard", $params);
 }
 public function run($id)
 {
     $controller = $this->getController();
     $event = Event::getPublicData($id);
     $controller->sidebar1 = array(array('label' => "ACCUEIL", "key" => "home", "iconClass" => "fa fa-home", "href" => $controller->module->id . "/event/dashboard/id/" . $id));
     $controller->title = isset($event["name"]) ? $event["name"] : "";
     $controller->subTitle = isset($event["description"]) ? $event["description"] : "";
     $controller->pageTitle = ucfirst($controller->module->id) . " - " . Yii::t("event", "Event's informations") . " " . $controller->title;
     $contentKeyBase = $controller->id . "." . $controller->action->id;
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE);
     $organizer = array();
     $people = array();
     //$admins = array();
     $attending = array();
     if (!empty($event)) {
         $params = array();
         if (isset($event["links"])) {
             foreach ($event["links"]["attendees"] as $id => $e) {
                 $citoyen = Person::getPublicData($id);
                 if (!empty($citoyen)) {
                     array_push($people, $citoyen);
                     array_push($attending, $citoyen);
                 }
                 /*if(isset($e["isAdmin"]) && $e["isAdmin"]==true){
                     array_push($admins, $e);
                   }*/
             }
             if (isset($event["links"]["organizer"])) {
                 foreach ($event["links"]["organizer"] as $id => $e) {
                     $organization = Organization::getBYId($id);
                     $organizer["id"] = $id;
                     $organizer["type"] = "organization";
                     $organizer["name"] = $organization["name"];
                 }
             } else {
                 if (isset($event["links"]["creator"])) {
                     foreach ($event["links"]["creator"] as $id => $e) {
                         $citoyen = Person::getBYId($id);
                         $organizer["id"] = $id;
                         $organizer["type"] = "person";
                         $organizer["name"] = $citoyen["name"];
                     }
                 }
             }
         }
     }
     if (isset($event["_id"]) && isset(Yii::app()->session["userId"]) && Link::isLinked($event["_id"], Event::COLLECTION, Yii::app()->session['userId'])) {
         $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='disconnectBtn text-red tooltips' data-name='" . $event["name"] . "' data-id='" . $event["_id"] . "' data-type='" . Event::COLLECTION . "' data-member-id='" . Yii::app()->session["userId"] . "' data-ownerlink='" . Link::person2events . "' data-targetlink='" . Link::event2person . "' data-placement='top' data-original-title='No more Attendee' ><i class='disconnectBtnIcon fa fa-unlink'></i>NO ATTENDING</a></li>");
     } else {
         $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='connectBtn tooltips ' id='addKnowsRelation' data-placement='top' data-ownerlink='" . Link::person2events . "' data-targetlink='" . Link::event2person . "' data-original-title='I know this person' ><i class=' connectBtnIcon fa fa-link '></i>ATTENDING</a></li>");
     }
     $params["images"] = $images;
     $params["contentKeyBase"] = $contentKeyBase;
     $params["attending"] = $attending;
     $params["event"] = $event;
     $params["organizer"] = $organizer;
     $params["people"] = $people;
     $params["countries"] = OpenData::getCountriesList();
     $params["eventTypes"] = Lists::get(array("eventTypes"))["eventTypes"];
     //$params["admins"] = $admins;
     $controller->render("dashboard", $params);
 }
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return OpenData the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = OpenData::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }