コード例 #1
0
ファイル: components.class.php プロジェクト: TheoJD/portail
 public function executeListeSalles()
 {
     if ($this->getUser()->isAuthenticated()) {
         //BDE toujours dans les poles de l'utilisateur
         $this->polesUser = array("1");
         $this->assosUser = AssoTable::getInstance()->getMyAssos($this->getUser()->getGuardUser()->getId())->execute();
         if ($this->assosUser) {
             foreach ($this->assosUser as $asso) {
                 //si c'est une asso normale
                 if ($asso->getPoleId()) {
                     $pole = PoleTable::getInstance()->getOneById($asso->getPoleId());
                 } else {
                     $pole = PoleTable::getInstance()->getOneByAsso($asso);
                 }
                 if ($pole && !in_array($pole->getId(), $this->polesUser)) {
                     array_push($this->polesUser, $pole->getId());
                 }
             }
         }
         $this->sallesUser = array();
         foreach ($this->polesUser as $pole) {
             $salles = SalleTable::getInstance()->getSalleByPole($pole)->execute();
             foreach ($salles as $salle) {
                 array_push($this->sallesUser, $salle);
             }
         }
         if ($this->idSalle != -1) {
             $this->salle = SalleTable::getInstance()->getSalleById($this->idSalle)->fetchOne();
         } else {
             $this->salle = NULL;
         }
     }
 }
コード例 #2
0
ファイル: components.class.php プロジェクト: TheoJD/portail
 public function executeMenu(sfWebRequest $request)
 {
     if ($login = $request->getParameter('login', null)) {
         $this->asso = AssoTable::getInstance()->getOneByLogin($login)->select('q.id, q.login')->fetchOne();
     } else {
         if ($login = $request->getParameter('asso', null)) {
             $this->asso = AssoTable::getInstance()->getOneByLogin($login)->select('q.id, q.login')->fetchOne();
         } else {
             $this->asso = AssoTable::getInstance()->getOneById(1)->select('q.id, q.login')->fetchOne();
         }
     }
     // BDE
     if ($this->asso) {
         if ($this->asso->isPole()) {
             $this->couleur = PoleTable::getInstance()->findOneBy('asso_id', $this->asso->getId())->getCouleur();
         } else {
             $this->couleur = $this->asso->getPole()->getCouleur();
         }
     }
     /*
      * Si l'utilisateur est membre
      * et que l'association n'a pas de président,
      * on lui propose de suivre la procédure de signature de charte.
      */
     if ($this->getUser()->isAuthenticated() && $this->asso && $this->getUser()->getGuardUser()->isMember($this->asso->getLogin())) {
         $pres = AssoMemberTable::getInstance()->getPresident($this->asso)->fetchOne();
         $this->charte = !$pres ? true : false;
     } else {
         $this->charte = false;
     }
 }
コード例 #3
0
ファイル: AssoForm.class.php プロジェクト: TheoJD/portail
 public function configure()
 {
     sfProjectConfiguration::getActive()->loadHelpers(array('Asset', 'Thumb'));
     unset($this->widgetSchema['created_at'], $this->widgetSchema['updated_at'], $this->validatorSchema['created_at'], $this->validatorSchema['updated_at']);
     $this->widgetSchema['logo'] = new sfWidgetFormInputFileEditable(array('file_src' => doThumb($this->getObject()->getLogo(), 'assos', array('width' => 150, 'height' => 150), 'scale'), 'is_image' => true, 'edit_mode' => !$this->isNew() && $this->getObject()->getLogo(), 'with_delete' => true, 'delete_label' => "Supprimer ce logo"));
     $this->validatorSchema['logo'] = new sfValidatorFileImage(array('required' => false, 'path' => sfConfig::get('sf_upload_dir') . '/assos/source', 'mime_types' => 'web_images', 'max_width' => 1000, 'max_height' => 1000));
     $this->validatorSchema['logo_delete'] = new sfValidatorBoolean();
     $this->widgetSchema->setLabel('name', 'Nom');
     $this->widgetSchema->setLabel('pole_id', 'Pôle');
     $this->widgetSchema->setLabel('type_id', 'Structure');
     $this->widgetSchema->setLabel('summary', "L'asso en une ligne");
     $this->widgetSchema->setLabel('salle', 'Local');
     $this->widgetSchema->setLabel('phone', 'Téléphone');
     $this->widgetSchema->setLabel('facebook', 'Page Facebook');
     $this->widgetSchema->setLabel('joignable', 'Joignable');
     $this->getWidget('pole_id')->setOption('query', PoleTable::getInstance()->getAllWithInfos());
 }
コード例 #4
0
ファイル: actions.class.php プロジェクト: TheoJD/portail
 public function executeList(sfWebRequest $request)
 {
     $this->user = $this->getUser()->getGuardUser();
     $idSalle = $request->getUrlParameter('id', -1);
     if ($idSalle == -1) {
         //BDE toujours dans les poles de l'utilisateur
         $this->polesUser = array("1");
         $this->assosUser = AssoTable::getInstance()->getMyAssos($this->getUser()->getGuardUser()->getId())->execute();
         if ($this->assosUser) {
             foreach ($this->assosUser as $asso) {
                 //si c'est une asso normale
                 if ($asso->getPoleId()) {
                     $pole = PoleTable::getInstance()->getOneById($asso->getPoleId());
                 } else {
                     $pole = PoleTable::getInstance()->getOneByAsso($asso);
                 }
                 if ($pole && !in_array($pole->getId(), $this->polesUser)) {
                     array_push($this->polesUser, $pole->getId());
                 }
             }
         }
         $this->sallesUser = array();
         foreach ($this->polesUser as $pole) {
             $salles = SalleTable::getInstance()->getSalleByPole($pole)->execute();
             foreach ($salles as $salle) {
                 array_push($this->sallesUser, $salle->getId());
             }
         }
         $this->reservations = array();
         foreach ($this->sallesUser as $salle) {
             $resa = ReservationTable::getInstance()->getReservationBySalle($salle)->execute();
             foreach ($resa as $res) {
                 array_push($this->reservations, $res);
             }
         }
     } else {
         $this->user = $this->getUser()->getGuardUser();
         $this->reservations = ReservationTable::getInstance()->getReservationBySalle($idSalle)->execute();
     }
 }
コード例 #5
0
ファイル: actions.class.php プロジェクト: TheoJD/portail
 /**
  * 
  * 
  * @param sfRequest $request A request object
  */
 public function executeShow(sfWebRequest $request)
 {
     $this->asso = $this->getRoute()->getObject();
     $this->redirectUnless($this->asso, 'assos_list');
     if ($this->asso->isPole()) {
         $pole = PoleTable::getInstance()->findOneBy('asso_id', $this->asso->getId());
         $this->assos = AssoTable::getInstance()->getAssosList($pole->getId())->execute();
     }
     /*
      * Si par le passé l'utilisateur a été membre de l'association,
      * mais que ce n'est plus le cas actuellement,
      * il faut afficher une alerte l'invitant à se réinscrire.
      */
     if ($this->asso->getJoignable() && $this->getUser()->isAuthenticated() && !$this->getUser()->getGuardUser()->isMember($this->asso->getLogin())) {
         $r = AssoMemberTable::getInstance()->getAssoMember($this->asso->getId(), $this->getUser()->getGuardUser()->getId())->execute();
         if ($r->count() > 0) {
             $this->flashwarn = 'Vous avez été membre de cette association par le passé.<br /> Pour la rejoindre à nouveau <a href="' . $this->generateUrl('asso_join', $this->asso) . '">cliquez ici</a>.';
         }
     }
     /*
      * Si l'utilisateur est l'ancien président et que l'association n'a pas de président  
      *
      */
     $pres = AssoMemberTable::getInstance()->getPresident($this->asso)->fetchOne();
     if ($this->getUser()->isAuthenticated() && !$pres && ($asso_member = AssoMemberTable::getInstance()->wasPresident($this->asso->getId(), $this->getUser()->getGuardUser()->getId()) || $this->getUser()->getGuardUser()->hasPermission('chartes_valider')) && ($c = CharteInfoTable::getInstance()->getByAssoAndSemestre($this->asso->getId())->andWhere('q.confirmation = ?', false)->execute())) {
         if ($c->count() > 0) {
             $msg = 'En tant qu\'ancien président de cette association, vous devez valider les demandes de passation.<br />
       Les demandes suivantes ont été effectuées :<br /><ul>';
             foreach ($c as $charte) {
                 $msg .= '<li><b>' . $charte->getResponsable()->getName() . '</b> le <em>' . $charte->getDate() . '</em> - <a href="' . $this->generateUrl('asso_charte_confirm', $charte) . '">Confirmer</a> / <a href="' . $this->generateUrl('asso_charte_refuse', $charte) . '">Refuser</a></li>';
             }
             $msg .= '</ul>';
             $this->flashinfo = $msg;
         }
     }
     /*
      * Demande de validation de charte locaux à l'actuel président
      *
      */
     if ($this->getUser()->isAuthenticated() && ($hasdroit = AssoMemberTable::getInstance()->isPresident($this->asso->getId(), $this->getUser()->getGuardUser()->getId()) && ($cl = CharteLocauxTable::getInstance()->getByAssoAndSemestre($this->asso->getId())->andWhere('q.statut = ?', 1)->execute()))) {
         if ($cl->count() > 0) {
             $msg = 'En tant qu\'actuel président de cette association vous devez valider les demandes d\'accès étendu aux locaux.<br />
          Les demandes suivantes ont été effectuées :<br /><br /><ul>';
             foreach ($cl as $locaux) {
                 $msg .= '<li><b>' . $locaux->getResponsable()->getName() . '</b> le <em>' . $locaux->getDate() . '</em><br />Accès demandé:<ul>';
                 if ($locaux->getPorteMde()) {
                     $msg .= '<li>Porte de la MDE</li>';
                 }
                 if ($locaux->getBatA()) {
                     $msg .= '<li>Batiment A</li>';
                 }
                 if ($locaux->getLocauxPic()) {
                     $msg .= '<li>Locaux du Pic</li>';
                 }
                 if ($locaux->getMdeComplete()) {
                     $msg .= '<li>MDE complète</li>';
                 }
                 if ($locaux->getBureauPolar()) {
                     $msg .= '<li>Bureau du Polar</li>';
                 }
                 if ($locaux->getPermPolar()) {
                     $msg .= '<li>Permanence du Polar</li>';
                 }
                 if ($locaux->getSallesMusique()) {
                     $msg .= '<li>Salles de musique</li>';
                 }
                 $msg .= '</ul><br />';
                 $msg .= 'Motif: <br />' . $locaux->getMotif() . '<br />';
                 $msg .= '<a href="' . $this->generateUrl('locaux_accept', $locaux) . '">Accepter</a> / <a href="' . $this->generateUrl('locaux_refuse', $locaux) . '">Refuser</a></li>';
             }
             $msg .= '</ul><br />';
             $this->flashinfo = $msg;
         }
     }
 }
コード例 #6
0
ファイル: actions.class.php プロジェクト: TheoJD/portail
 public function executeStatPole(sfWebRequest $request)
 {
     $this->poles = PoleTable::getInstance()->getPolesList()->execute();
     $this->statPoles = PoleTable::getInstance()->getStatPole()->execute();
 }