Changeset 2688


Ignore:
Timestamp:
May 13, 2012, 8:00:21 PM (8 years ago)
Author:
teymour
Message:

Optimisation des requetes parlementaires dans sections (nb d'interventions pour un dossier)

Location:
cpc/trunk/project/apps/frontend/modules
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/apps/frontend/modules/parlementaire/actions/components.class.php

    r2665 r2688  
    44  public function executeList()
    55  {
    6     $this->parlementaires = $this->parlementairequery
     6    $this->parlementaires = array();
     7    if (!isset($this->interventions) || !count($this->interventions))
     8      return ;
     9    $this->parlementaires = Doctrine::getTable('Intervention')->createQuery('i')
     10      ->leftJoin('i.Parlementaire p')
     11      ->whereIn('i.id', $this->interventions)
     12      ->andWhere('((i.fonction != ? AND i.fonction != ? ) OR i.fonction IS NULL)', array('président', 'présidente'))
     13      ->andWhere('i.parlementaire_id IS NOT NULL')
    714      ->select('p.nom, p.slug, i.id, count(i.id) as nb')
    815      ->groupBy('p.id')
  • cpc/trunk/project/apps/frontend/modules/section/actions/actions.class.php

    r2668 r2688  
    108108    $this->ptag = Doctrine_Query::create()
    109109      ->from('Intervention i')
    110       ->leftJoin('i.Parlementaire p')
    111       ->where('p.id IS NOT NULL')
     110      ->where('i.parlementaire_id IS NOT NULL')
    112111      ->andWhere('((i.fonction != ? AND i.fonction != ? ) OR i.fonction IS NULL)', array('président', 'présidente'))
    113       ->groupBy('p.id')
    114       ->limit(30);
    115     if (count($interventions))
     112      ;
     113    $this->interventions = array();
     114    if (count($interventions)) {
    116115      $this->ptag->whereIn('i.id', $interventions);
    117     else
     116      $this->interventions = $interventions;
     117    }else{
    118118      $this->ptag->where('false');
     119    }
    119120   
    120121    $request->setParameter('rss', array(array('link' => '@section_rss_commentaires?id='.$this->section->id, 'title'=>'Les commentaires sur '.$this->section->titre)));
  • cpc/trunk/project/apps/frontend/modules/section/templates/showSuccess.php

    r2480 r2688  
    111111<div class="orateurs_dossier">
    112112<h2>Les principaux orateurs sur ce dossier :</h2>
    113 <?php echo include_component('parlementaire', 'list', array('parlementairequery' => $ptag, 'route'=>'@parlementaire_texte?id='.$section->id.'&slug=')); ?>
     113<?php echo include_component('parlementaire', 'list', array('interventions' => $interventions, 'route'=>'@parlementaire_texte?id='.$section->id.'&slug=')); ?>
    114114</div>
    115115</div>
Note: See TracChangeset for help on using the changeset viewer.