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; } } }
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; } }
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()); }
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(); } }
/** * * * @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; } } }
public function executeStatPole(sfWebRequest $request) { $this->poles = PoleTable::getInstance()->getPolesList()->execute(); $this->statPoles = PoleTable::getInstance()->getStatPole()->execute(); }