Exemple #1
0
 function fetch($annee = NULL)
 {
     if (!$this->activite) {
         return array('activites' => $this->unite->findActivites($annee));
     } else {
         $this->controller->assert(null, $this->activite, 'envoyer-photo', "Vous n'avez pas le droit d'envoyer de photo de " . $this->activite->getIntituleComplet() . ".");
     }
     $m = new Wtk_Form_Model('envoyer');
     $i = $m->addString('titre', 'Titre');
     $m->addConstraintRequired($i);
     $m->addFile('photo', "Photo");
     $m->addString('commentaire', 'Votre commentaire');
     $m->addBool('envoyer', "J'ai d'autres photos à envoyer", true);
     $m->addNewSubmission('envoyer', "Envoyer");
     $t = new Photos();
     if ($m->validate()) {
         $p = new Photo();
         $p->titre = $m->titre;
         $p->slug = $t->createSlug(wtk_strtoid($m->titre));
         $p->activite = $this->activite->id;
         $action = $m->envoyer ? 'envoyer' : 'consulter';
         $c = new Commentaire();
         $c->auteur = Zend_Registry::get('individu')->id;
         $c->message = $m->commentaire;
         $db = $t->getAdapter();
         $db->beginTransaction();
         try {
             $c->save();
             $p->commentaires = $c->id;
             $p->save();
             $i = $m->getInstance('photo');
             if ($i->isUploaded()) {
                 $tmp = $i->getTempFilename();
                 $p->storeFile($tmp);
             }
             $url = $this->controller->_helper->Url('voir', 'photos', null, array('photo' => $p->slug), true);
             $this->controller->logger->info("Photo envoyée", $url);
             foreach ($this->activite->findUnitesParticipantesExplicites() as $u) {
                 $ident = new Identification();
                 $ident->photo = $p->id;
                 $ident->unite = $u->id;
                 $ident->save();
                 $this->controller->logger->info("Unité identifiée sur une photo", $url);
             }
             $db->commit();
         } catch (Exception $e) {
             $db->rollBack();
             throw $e;
         }
         $this->controller->_helper->Flash->info("Photo envoyée");
         $this->controller->redirectSimple($action, null, null, array('album' => $this->activite->slug));
     }
     $photos = $this->activite->findPhotos($t->select()->order('date'));
     return array('unite' => $this->unite, 'annee' => $annee, 'model' => $m, 'activite' => $this->activite, 'photos' => $photos);
 }
Exemple #2
0
 function fetch($annee = NULL)
 {
     $ta = new Activites();
     $as = $ta->findByAnnee($annee);
     $activite = null;
     if ($as->count() == 1) {
         $activite = $as->current();
         $this->controller->_helper->Album->setBranche($activite);
     }
     $m = new Wtk_Form_Model('editer');
     $i = $m->addString('titre', 'Titre', $this->photo->titre);
     $m->addConstraintRequired($i);
     $enum = array();
     foreach ($as as $a) {
         if ($this->controller->assert(null, $a, 'editer-photo')) {
             $enum[$a->id] = $a->getIntituleComplet();
         }
     }
     if ($enum) {
         $m->addEnum('activite', "Activité", $this->photo->activite, $enum);
     }
     $m->addFile('photo', "Photo");
     $m->addBool('promouvoir', "Promouvoir en page d'accueil", $this->photo->promotion);
     $m->addNewSubmission('enregistrer', "Enregistrer");
     if ($m->validate()) {
         $t = $this->photo->getTable();
         $db = $t->getAdapter();
         $db->beginTransaction();
         try {
             $i = $m->getInstance('photo');
             if ($i->isUploaded()) {
                 $tmp = $i->getTempFilename();
                 $this->photo->storeFile($tmp);
             }
             try {
                 $this->photo->activite = $m->activite;
             } catch (Exception $e) {
             }
             $this->photo->titre = $m->titre;
             $this->photo->slug = $t->createSlug($m->titre, $this->photo->slug);
             $this->photo->promotion = (int) $m->promouvoir;
             $this->photo->save();
             $this->controller->_helper->Flash->info("Photo éditée");
             $this->controller->logger->info("Photo éditée", $this->controller->_helper->Url('voir', null, null, array('photo' => $this->photo->slug)));
             $db->commit();
         } catch (Exception $e) {
             $db->rollBack();
             throw $e;
         }
         $this->controller->redirectSimple('voir', null, null, array('photo' => $this->photo->slug));
     }
     return array('unite' => $this->unite, 'annee' => $annee, 'form_model' => $m, 'activite' => $activite, 'photo' => $this->photo);
 }
Exemple #3
0
 function editerAction()
 {
     $this->view->unite = $u = $this->_helper->Unite();
     $this->assert(null, $u, null, "Vous n'avez pas le droit de modifier cette unité");
     $this->metas(array('DC.Title' => 'Éditer ' . $u->getFullname()));
     $this->view->model = $m = new Wtk_Form_Model('editer');
     $enum = array(null => 'Orpheline');
     foreach ($u->findParenteCandidates() as $c) {
         $enum[$c->id] = $c->getFullname();
     }
     $m->addEnum('parente', "Unité parente", $u->parent, $enum);
     $m->addString('nom', "Nom", $u->nom);
     $m->addString('extra', $u->findParentTypesUnite()->extra, $u->extra);
     $m->addFile('image', "Nouvelle");
     $m->addBool('supprimer_image', "Supprimer l'image");
     $m->addNewSubmission('enregistrer', "Enregistrer");
     if ($m->validate()) {
         $t = $u->getTable();
         $db = $t->getAdapter();
         $db->beginTransaction();
         try {
             $u->parent = $m->parente ? $m->parente : null;
             $u->nom = $m->nom;
             $u->slug = $t->createSlug(wtk_strtoid($u->getFullname()), $u->slug);
             $u->extra = $m->extra;
             $u->save();
             $i = $m->getInstance('image');
             if ($i->isUploaded()) {
                 $u->storeImage($i->getTempFilename());
             } elseif ($m->supprimer_image) {
                 $u->supprimerImage();
             }
             $this->logger->info("Édition de " . $u->getFullname(), array('controller' => 'unites', 'action' => 'index', 'unite' => $u->slug));
             $db->commit();
         } catch (Exception $e) {
             $db->rollBack();
             throw $e;
         }
         $this->redirectSimple('index', 'unites', null, array('unite' => $u->slug));
     }
 }
 function editerAction()
 {
     $this->view->individu = $individu = $this->_helper->Individu();
     $this->assert(null, $individu, 'editer', "Vous n'avez pas le droit d'éditer la fiche de cet individu.");
     $this->metas(array('DC.Title' => 'Éditer ' . $individu->getFullname()));
     $this->view->model = $m = new Wtk_Form_Model('editer');
     if ($this->assert(null, $individu, 'editer-id')) {
         $m->addConstraintRequired($m->addString('prenom', 'Prénom', $individu->prenom));
         $m->addConstraintRequired($m->addString('nom', 'Nom', $individu->nom));
         $m->addDate('naissance', 'Date de naissance', $individu->naissance);
         $m->addEnum('sexe', 'Sexe', $individu->sexe, array('h' => 'Masculin', 'f' => 'Féminin'));
     }
     $m->addFile('image', 'Photo');
     $sachem = $this->assert(null, $individu, 'totem');
     if ($sachem) {
         $m->addString('totem', 'Totem', $individu->totem);
     }
     $m->addString('notes', "Notes", $individu->notes);
     $p = $individu->findParentEtapes();
     $i = $m->addEnum('etape', "Progression", $p ? $p->id : null, array(null => 'Aucune'));
     foreach ($individu->findEtapesCanditates() as $e) {
         $i->addItem($e->id, $e->titre);
     }
     // contacts;
     if (!$individu->isMember()) {
         $m->addString('adelec', "Adélec", $individu->adelec);
     }
     $m->addString('portable', "Téléphone portable", $individu->portable);
     $m->addString('fixe', "Téléphone fixe", $individu->fixe);
     $m->addString('adresse', "Adresse", $individu->adresse);
     $m->addNewSubmission('valider', 'Valider');
     if ($m->validate()) {
         $t = $individu->getTable();
         $db = $t->getAdapter();
         $db->beginTransaction();
         try {
             // contacts
             $champs = array('nom', 'prenom', 'naissance', 'portable', 'sexe', 'fixe', 'adresse', 'notes', 'etape');
             try {
                 $m->getInstance('adelec');
                 array_push($champs, 'adelec');
             } catch (Exception $e) {
             }
             if ($sachem) {
                 $champs[] = 'totem';
             }
             if ($this->assert(null, $individu, 'progression')) {
                 $champs[] = 'numero';
             }
             foreach ($champs as $champ) {
                 try {
                     $m->getInstance($champ);
                     $individu->{$champ} = trim($m->{$champ});
                 } catch (Exception $e) {
                 }
             }
             $individu->fixe = $this->_helper->Telephone($individu->fixe);
             $individu->portable = $this->_helper->Telephone($individu->portable);
             $individu->slug = $t->createSlug($individu->getFullname(false, false), $individu->slug);
             $individu->save();
             $image = $m->getInstance('image');
             if ($image->isUploaded()) {
                 $tmp = $image->getTempFilename();
                 try {
                     $individu->storeImage($tmp);
                 } catch (ImagickException $e) {
                     throw new Wtk_Form_Model_Exception($e->getMessage(), $image);
                 }
             }
             $this->logger->info("Fiche individu mis-à-jour", $this->_helper->Url('fiche', 'individus', null, array('individu' => $individu->slug)));
             $db->commit();
             $this->redirectSimple('fiche', 'individus', null, array('individu' => $individu->slug));
         } catch (Wtk_Form_Model_Exception $e) {
             $db->rollBack();
             $m->errors[] = $e;
             return;
         } catch (Exception $e) {
             $db->rollBack();
             throw $e;
         }
     }
     $this->actions->append("Inscription", array('controller' => 'individus', 'action' => 'inscrire'), array(null, $individu, 'inscrire'));
     $this->actions->append("Paramètres utilisateur", array('controller' => 'membres', 'action' => 'parametres'), array(null, $individu, 'admin'));
 }