source: cpc/trunk/project/apps/frontend/modules/alerte/actions/actions.class.php @ 1437

Last change on this file since 1437 was 1437, checked in by teymour, 11 years ago

Ajout des titres pour les alertes + qq correction

File size: 3.4 KB
Line 
1<?php
2
3/**
4 * alerte actions.
5 *
6 * @package    cpc
7 * @subpackage alerte
8 * @author     Your name here
9 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
10 */
11class alerteActions extends sfActions
12{
13  public function executeParlementaire(sfWebRequest $request)
14  {
15    $slug = $request->getParameter('slug');
16    $this->forward404Unless($slug);
17    $parlementaire = doctrine::getTable('Parlementaire')->findOneBySlug($slug);
18    $this->forward404Unless($parlementaire);
19    $alerte = new Alerte();
20    $alerte->query = 'Parlemenaire='.urlencode($parlementaire);
21    $alerte->no_human_query = 1;
22    $alerte->titre = 'Recherche relative aux travaux de '.$parlementaire->nom;
23    $this->submit = 'Créer';
24    $this->form = $this->processForm($request, $alerte);
25    $this->setTemplate('form');
26  }
27
28  public function executeList(sfWebRequest $request) {
29    $citoyen_id = $this->getUser()->getAttribute('user_id');
30    $this->forward404Unless($citoyen_id);
31    $citoyen = doctrine::getTable('Citoyen')->find($citoyen_id);
32    $this->forward404Unless($citoyen);
33    $sql = doctrine::getTable('Alerte')->createQuery('a')->where('a.citoyen_id = ?', $citoyen_id)->orWhere('a.email = ?', $citoyen->getEmail());
34    $this->alertes = $sql->execute();
35  }
36
37
38  public function executeCreate(sfWebRequest $request) 
39  {
40    $alerte = new Alerte();
41    $alerte->query = $request->getParameter('query');
42    $alerte->filter = $request->getParameter('filter');
43    $this->submit = 'Créer';
44    $this->form = $this->processForm($request, $alerte);
45    $this->setTemplate('form');
46  }
47  public function executeDelete(sfWebRequest $request) 
48  {
49    $this->forward404Unless($this->alerte = Doctrine::getTable('Alerte')->createQuery('a')->where('verif = ?', $request->getParameter('verif'))->fetchOne());
50    if ($request->isMethod('post')) {
51      if ($request->getParameter('confirmed')) {
52        $this->alerte->delete();
53        $this->getUser()->setFlash('notice', 'Votre alerte email a bien été supprimée');
54      }else
55        $this->getUser()->setFlash('error', 'Votre alerte email n\'a pas été supprimée');
56      return $this->redirectPostSave();
57    }
58  }
59
60  public function executeEdit(sfWebRequest $request) 
61  {
62    $this->forward404Unless($alerte = Doctrine::getTable('Alerte')->createQuery('a')->where('verif = ?', $request->getParameter('verif'))->fetchOne());
63    $this->form =  $this->processForm($request, $alerte);
64    $this->submit = 'Éditer';
65    $this->setTemplate('form');
66  }
67
68  private function redirectPostSave($alerte = null) {
69    if ($citoyen_id = $this->getUser()->getAttribute('user_id'))
70      return $this->redirect('alerte/list');
71    else if ($alerte_id)
72      return $this->redirect('alerte/edit?id='.$alerte_id);
73    else
74      return $this->redirect('@homepage');
75  }
76
77  private function processForm($request, $alerte) {
78    if ($citoyen_id = $this->getUser()->getAttribute('user_id')) {
79      $alerte->citoyen_id = $citoyen_id;
80    }
81    $form = new AlerteForm($alerte);
82    if ($request->isMethod('post')) {
83      $form->bind($request->getParameter($form->getName()));
84      if ($form->isValid()) {
85        $form->save();
86        if ($this->submit == 'Créer') {
87          $this->getUser()->setFlash('notice', 'Votre alerte email a été créée');
88        }else {
89          $this->getUser()->setFlash('notice', 'Votre alerte email a été modifiée');
90        }
91        return $this->redirectPostSave($form->getObject()->id);
92      }
93    }
94    return $form;
95  }
96}
Note: See TracBrowser for help on using the repository browser.