Changeset 1333


Ignore:
Timestamp:
Sep 8, 2010, 10:15:27 AM (10 years ago)
Author:
roux
Message:

premier morceau de l'intégrationd es rapports/pjl

Location:
cpc/trunk/project
Files:
16 added
23 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/apps/frontend/modules/circonscription/templates/listSuccess.php

    r937 r1333  
    1 <h1>Toutes les circonscriptions électorales</h1><?php
     1<h1 class="list_inter">Toutes les circonscriptions électorales</h1><?php
    22$sf_response->setTitle('Toutes les circonscriptions électorales'); ?>
    33<h2>Carte des circonscriptions</h2>
  • cpc/trunk/project/apps/frontend/modules/circonscription/templates/showSuccess.php

    r1275 r1333  
    1 <h1>Les députés par circonscriptions</h1>
     1<h1 class="list_inter">Les députés par circonscriptions</h1>
    22<h2><?php echo $circo.' ('.$departement_num.')'; ?></h2>
    33<?php $sf_response->setTitle($circo.' ('.$departement_num.') : Les députés par circonscriptions'); ?>
  • cpc/trunk/project/apps/frontend/modules/citoyen/templates/indexSuccess.php

    r1275 r1333  
    11<?php use_helper('Text') ?>
    2 <h1><?php echo $title; ?></h1>
     2<h1 class="list_com"><?php echo $title; ?></h1>
    33<?php $total = $pager->getNbResults();
    44      $ct = 0;
  • cpc/trunk/project/apps/frontend/modules/parlementaire/templates/_list.php

    r253 r1333  
    55?>
    66<ul><?php foreach($parlementaires as $inter) : ?>
    7 <li><?php echo link_to($inter['Parlementaire']['nom'], $route.$inter['Parlementaire']['slug'])." (".$inter['nb']." intervention"; if ($inter['nb'] > 1) echo "s"; ?>)
     7<li><?php echo link_to($inter['Parlementaire']['nom'], $route.$inter['Parlementaire']['slug']).' (<span class="list_inter">'.$inter['nb']." intervention"; if ($inter['nb'] > 1) echo "s"; ?></span>)
    88<?php endforeach; ?>
    99</ul>
  • cpc/trunk/project/apps/frontend/modules/parlementaire/templates/listSuccess.php

    r1275 r1333  
    11<?php if (!preg_match('/^([A-ZÉ]|all)$/', $search)) { ?>
    2   <h1>Recherche de députés</h1>
     2  <h1 class="list_inter">Recherche de députés</h1>
    33  <?php $sf_response->setTitle('Recherche de députés "'.$search.'"'); ?>
    44  <p><?php $nResults = count($parlementaires); echo $nResults; ?> parlementaire<?php if ($nResults > 1) echo 's'; ?> trouvé<?php if ($nResults > 1) echo 's'; ?> pour <em>"<?php echo $search; ?>"</em></p>
    55<?php } else { ?>
    6   <h1>La liste de tous les députés par ordre alphabétique</h1>
     6  <h1 class="list_inter">La liste de tous les députés par ordre alphabétique</h1>
    77  <?php $sf_response->setTitle('La liste de tous les députés'); ?>
    88  <p>Les <?php echo $total; ?> députés de la législature (<?php echo $actifs; ?> en cours de mandat)&nbsp;:</p>
  • cpc/trunk/project/apps/frontend/modules/parlementaire/templates/showSuccess.php

    r1255 r1333  
    102102      <?php echo include_component('section', 'parlementaire', array('parlementaire' => $parlementaire, 'limit' => 5, 'order' => 'date')); ?>
    103103      <p class="suivant"><?php echo link_to('Tous ses dossiers', '@parlementaire_textes?slug='.$parlementaire->slug); ?></p>
    104       <h3><?php echo link_to('Travaux en commissions','@parlementaire_interventions?slug='.$parlementaire->getSlug().'&type=commission'); ?></h3>
    105       <h3><?php echo link_to('Travaux en hémicycle','@parlementaire_interventions?slug='.$parlementaire->getSlug().'&type=loi'); ?></h3>
    106       <h3><?php echo link_to('Toutes ses interventions','@parlementaire_interventions?slug='.$parlementaire->getSlug().'&type=all'); ?></h3>
     104      <h3 class="list_inter"><?php echo link_to('Travaux en commissions','@parlementaire_interventions?slug='.$parlementaire->getSlug().'&type=commission'); ?></h3>
     105      <h3 class="list_inter"><?php echo link_to('Travaux en hémicycle','@parlementaire_interventions?slug='.$parlementaire->getSlug().'&type=loi'); ?></h3>
     106      <h3 class="list_inter"><?php echo link_to('Toutes ses interventions','@parlementaire_interventions?slug='.$parlementaire->getSlug().'&type=all'); ?></h3>
    107107      <h3><?php echo link_to('Tous ses amendements','@parlementaire_amendements?slug='.$parlementaire->getSlug()); ?></h3>
    108108      </div>
     
    115115
    116116  <div class="bas_depute">
    117       <h2>Derniers commentaires concernant <?php echo $parlementaire->nom; ?> <span class="rss"><a href="<?php echo url_for('@parlementaire_rss_commentaires?slug='.$parlementaire->slug); ?>"><?php echo image_tag('xneth/rss.png', 'alt="Flux rss"'); ?></a></span></h2>
     117      <h2 class="list_com">Derniers commentaires concernant <?php echo $parlementaire->nom; ?> <span class="rss"><a href="<?php echo url_for('@parlementaire_rss_commentaires?slug='.$parlementaire->slug); ?>"><?php echo image_tag('xneth/rss.png', 'alt="Flux rss"'); ?></a></span></h2>
    118118      <?php if ($parlementaire->nb_commentaires == 0) echo '<p>Le travail de ce député n\'a pas encore inspiré de commentaire aux utilisateurs.</p>';
    119119        else {
  • cpc/trunk/project/apps/frontend/modules/parlementaire/templates/tagSuccess.php

    r728 r1333  
    1212<?php $sf_response->setTitle('Les députés spécialistes de "'.$tag.'"');
    1313foreach($parlementaires as $inter) {
    14   echo '<li>'.link_to($inter['Parlementaire']['nom'], '@tag_parlementaire_interventions?parlementaire='.$inter['Parlementaire']['slug'].'&tags='.$tag).' ('.$inter['nb'].' interventions)</li>';
     14  echo '<li>'.link_to($inter['Parlementaire']['nom'], '@tag_parlementaire_interventions?parlementaire='.$inter['Parlementaire']['slug'].'&tags='.$tag).' (<span class="list_inter">'.$inter['nb'].' interventions</span>)</li>';
    1515}
    1616?></ul>
  • cpc/trunk/project/apps/frontend/modules/section/actions/actions.class.php

    r1274 r1333  
    4141  public function executeShow(sfWebRequest $request)
    4242  {
    43     $this->section = Doctrine::getTable('Section')->find($request->getParameter('id'));
     43    $secid = $request->getParameter('id');
     44    $this->forward404Unless($secid);
     45    if ($option = Doctrine::getTable('VariableGlobale')->findOneByChamp('linkdossiers')) {
     46      $links = unserialize($option->getValue());
     47      if (isset($links[$secid]))
     48        $secid = $links[$secid];
     49    }
     50    $this->section = Doctrine::getTable('Section')->find($secid);
    4451    $this->forward404Unless($this->section);
    4552
    46     $this->lois = $this->section->getTags(array('is_triple' => true,
    47                                                 'namespace' => 'loi',
    48                                                 'key' => 'numero',
    49                                                 'return' => 'value'));
    50     $amdmts_lois = Doctrine_Query::create()->select('distinct(a.texteloi_id)')->from('Amendement a')->whereIn('a.texteloi_id', $this->lois)->fetchArray();
     53    $lois = $this->section->getTags(array('is_triple' => true,
     54                                          'namespace' => 'loi',
     55                                          'key' => 'numero',
     56                                          'return' => 'value'));
     57    $qtextes = Doctrine_Query::create()
     58      ->select('t.id, t.type, t.type_details, t.titre')
     59      ->from('Texteloi t')
     60      ->whereIn('t.numero', $lois);
     61    if ($this->section->url_an)
     62      $qtextes->orWhere('t.url_an = ?', $this->section->url_an);
     63    $qtextes->orderBy('t.numero, t.annexe');
     64    $textes = $qtextes->fetchArray();
     65
     66    $textes_loi = Doctrine_Query::create()
     67      ->select('t.texteloi_id, t.titre')
     68      ->from('TitreLoi t')
     69      ->whereIn('t.texteloi_id', $lois)
     70      ->andWhere('t.chapitre IS NULL')
     71      ->andWhere('t.section is NULL')
     72      ->orderBy('t.texteloi_id')
     73      ->fetchArray();
     74   
     75    $this->docs = array();
     76    foreach ($textes_loi as $doc)
     77      $this->docs[$doc['texteloi_id']] = $doc;
     78    foreach ($textes as $texte)
     79      $this->docs[$texte['id']] = $texte;
     80    foreach ($lois as $loi) {
     81      $loi = sprintf("%04d", $loi);
     82      if (!isset($this->docs["$loi"]))
     83        $this->docs["$loi"] = null;
     84    }
     85   
     86    $amdmts_lois = Doctrine_Query::create()->select('distinct(a.texteloi_id)')->from('Amendement a')->whereIn('a.texteloi_id', $lois)->fetchArray();
    5187    $this->lois_amendees = array();
    5288    foreach($amdmts_lois as $loi)
    5389      array_push($this->lois_amendees, $loi['distinct']);
    5490    sort($this->lois_amendees);
    55    
    56     $this->textes_loi = Doctrine_Query::create()->select('t.texteloi_id, t.titre')->from('TitreLoi t')->whereIn('t.texteloi_id', $this->lois)->andWhere('t.chapitre IS NULL')->andWhere('t.section is NULL')->orderBy('t.texteloi_id')->fetchArray();
    57     sort($this->lois);
    58     sort($this->textes_loi);
    5991   
    6092    $inters = Doctrine_Query::create()
     
    86118      ->andWhere('((i.fonction != ? AND i.fonction != ? ) OR i.fonction IS NULL)', array('président', 'présidente'))
    87119      ->groupBy('p.id')
    88       ;
     120      ->limit(30);
    89121    if (count($interventions))
    90122      $this->ptag->whereIn('i.id', $interventions);
     
    103135      ->andWhere('s.nb_interventions > 5');
    104136    if ($this->order == 'date') {
    105       $query->orderBy('s.min_date DESC');
     137      $query->orderBy('s.max_date DESC');
    106138      $this->titre = 'Les derniers dossiers à l\'Assemblée';
    107139    } else if ($this->order == 'plus') {
    108140      $query->orderBy('s.nb_interventions DESC');
    109141      $this->titre = 'Les dossiers les plus discutés à l\'Assemblée';
    110     }
    111     else forward404();
    112     $this->getResponse()->setTitle($this->titre);
     142    } else if ($this->order == 'coms') {
     143      $query->orderBy('s.nb_commentaires DESC');
     144      $this->titre = 'Les dossiers de l\'Assemblée les plus commentés par les citoyens';
     145    } else $this->forward404();
     146    $this->getResponse()->setTitle(str_replace('Assemblée', 'Assemblée nationale', $this->titre)." - NosDéputés.fr");
    113147    $this->sections = $query->execute();
    114148
  • cpc/trunk/project/apps/frontend/modules/section/templates/_simplifions.php

    r1295 r1333  
    33<ul>
    44<?php foreach($lois as $l) : ?>
    5 <li><?php echo link_to(strip_tags($l['titre']), "@loi?loi=".$l['texteloi_id']); if ($l['nb_commentaires'] > 0) { echo ' ('.$l['nb_commentaires'].' commentaire'; if ($l['nb_commentaires'] > 1) echo 's'; echo ')'; } ?></li>
     5<li><?php echo link_to(strip_tags($l['titre']), "@loi?loi=".$l['texteloi_id']); if ($l['nb_commentaires'] > 0) { echo ' (<span class="list_com">'.$l['nb_commentaires'].' commentaire'; if ($l['nb_commentaires'] > 1) echo 's'; echo '</span>)'; } ?></li>
    66<?php endforeach; ?>
    77</ul>
    88</div>
     9
  • cpc/trunk/project/apps/frontend/modules/section/templates/listSuccess.php

    r1275 r1333  
    11<div class="travaux_parlementaires">
    2 <h1>Les dossiers parlementaires</h1>
     2<h1 class="orange">Les dossiers parlementaires</h1>
    33<?php include_component('section', 'simplifions', array()); ?>
    44<h2><?php echo $titre; ?></h2>
     
    77foreach($sections as $s) if ($s->titre) {
    88  if (preg_match('/(questions?\s|ordre\sdu\sjour|nomination|suspension\sde\séance|rappels?\sau\srèglement)/i', $s->titre)) continue;
    9   $moisactuel = myTools::displayDateMoisAnnee($s->min_date);
     9  $moisactuel = myTools::displayDateMoisAnnee($s->max_date);
    1010  if ($order == 'date' && $mois != $moisactuel) {
    1111    if ($mois != "") echo '</ul></li><li>';
     
    1414  }
    1515  echo '<li>'.link_to(ucfirst($s->titre), '@section?id='.$s->id);
    16   echo ' ('.$s->nb_interventions.' intervention';
     16  echo ' (<span class="list_inter">'.$s->nb_interventions.'&nbsp;intervention';
    1717  if ($s->nb_interventions > 1) echo 's';
    18   if ($s->nb_commentaires > 0) echo ', <span class="list_com">'.$s->nb_commentaires.' commentaire';
     18  echo '</span>';
     19  if ($s->nb_commentaires > 0) echo ', <span class="list_com">'.$s->nb_commentaires.'&nbsp;commentaire';
    1920  if ($s->nb_commentaires > 1) echo 's';
    2021  if ($s->nb_commentaires > 0) echo '</span>';
    2122  if ($order == 'plus') echo ', '.$moisactuel;
     23  if ($s->url_an) echo myTools::getLinkDossier($s->url_an);
     24if (!$s->url_an && !preg_match('/dé(bat|claration) /i', $s->titre)) echo '<strong style="color: #FF0000;">! ! ! !</strong>';
    2225  echo ')</li>';
    2326 }
  • cpc/trunk/project/apps/frontend/modules/section/templates/showSuccess.php

    r1275 r1333  
    1    <h1><?php
     1<h1 class="orange"><?php
    22   $titre = '';
    33if ($section->getSection()) {
     
    1111else echo '</h1>';
    1212?>
     13<?php if ($section->url_an) echo '<span class="source">'.myTools::getLinkDossier($section->url_an)."</span>"; ?>
    1314<div class="numeros_textes">
    1415<?php if ($section->nb_commentaires) { ?>
    1516<div class="source"><span class="list_com"><a href="#commentaires">Voir le<?php if ($section->nb_commentaires > 1) echo 's '.$section->nb_commentaires; ?> commentaire<?php if ($section->nb_commentaires > 1) echo 's'; ?></a></span></div>
    16 <?php }
    17   if ($lois && ! preg_match('/(questions?\s|ordre\sdu\sjour|nomination|suspension\sde\séance|rappels?\sau\srèglement)/i', $section->titre)) { ?>
    18 <span><?php if (count($textes_loi)) foreach ($textes_loi as $texte) echo link_to(strip_tags($texte['titre']), '@loi?loi='.$texte['texteloi_id']); else { echo 'Texte'; if (count($lois) > 1) echo 's'; echo ' N°'; foreach ($lois as $loi) echo myTools::getLinkLoi($loi).' '; echo '('.link_to('tous les amendements à ce dossier',  '@find_amendements_by_loi_and_numero?loi='.urlencode(implode(',',$lois_amendees)).'&numero=all').')'; } ?></span>
    1917<?php } ?>
     18<p>
     19<?php $curid = 0;
     20  if ($docs) foreach ($docs as $id => $doc) {
     21    $shortid = preg_replace('/^(\d{4}).*$/', '\\1', $id);
     22    if ($curid != $shortid) {
     23      $curid = $shortid;
     24      if (isset($doc['texteloi_id']))
     25        echo link_to(strip_tags($doc['titre']), '@loi?loi='.$doc['id']);
     26      else if (isset($doc['id']))
     27        echo $doc['type']." ".$doc['type_details']." ".$doc['titre']." (".$doc['id'].")";
     28      else
     29        echo 'Texte N°&nbsp;'.myTools::getLinkLoi($doc);
     30      echo "<br/>";
     31    }
     32  }
     33  echo link_to('Tous les amendements à ce dossier',  '@find_amendements_by_loi_and_numero?loi='.urlencode(implode(',',$lois_amendees)).'&numero=all')."</p>";
     34?>
    2035</div>
    2136<div class="resume">
     
    3247</div>
    3348</div>
    34 
     49<div class="clear"/>
    3550<?php $sommaire = $section->getSubSections();
    3651if (count($sommaire)) { ?>
     
    6782</div>
    6883<div class="orateurs_dossier">
    69 <h2>Tous les orateurs sur ce dossier :</h2>
     84<h2>Les principaux orateurs sur ce dossier :</h2>
    7085<?php echo include_component('parlementaire', 'list', array('parlementairequery' => $ptag, 'route'=>'@parlementaire_texte?id='.$section->id.'&slug=')); ?>
    7186</div>
     
    7489  <div class="stopfloat"></div>
    7590  <div class="commentaires" id="commentaires">
    76     <h2>Derniers commentaires sur <?php echo $section->titre; ?> <span class="rss"><a href="<?php echo url_for('@section_rss_commentaires?id='.$section->id); ?>"><?php echo image_tag('xneth/rss.png', 'alt="Flux rss"'); ?></a></span></h2>
     91    <h2 class="list_com">Derniers commentaires sur <?php echo $section->titre; ?> <span class="rss"><a href="<?php echo url_for('@section_rss_commentaires?id='.$section->id); ?>"><?php echo image_tag('xneth/rss.png', 'alt="Flux rss"'); ?></a></span></h2>
    7792<?php echo include_component('commentaire', 'lastObject', array('object' => $section, 'presentation' => 'nodossier'));
    7893    if ($section->nb_commentaires > 4)
  • cpc/trunk/project/apps/frontend/templates/layout.php

    r1329 r1333  
    109109          <ul>
    110110            <li><a href="<?php echo url_for('@sections?order=date'); ?>">Les derniers dossiers</a> <strong>|</strong></li>
    111             <li><a href="<?php echo url_for('@sections?order=plus'); ?>">Les dossiers les plus discutés</a></li>
     111            <li><a href="<?php echo url_for('@sections?order=plus'); ?>">Les dossiers les plus discutés</a> <strong>|</strong></li>
     112            <li><a href="<?php echo url_for('@sections?order=coms'); ?>">Les dossiers les plus commentés</a></li>
    112113          </ul>
    113114        </div>
  • cpc/trunk/project/bin/loadupdate

    r1252 r1333  
    8282  cd -
    8383fi
     84echo Rapports et Textes de lois
     85echo ==========================
     86cd batch/documents ; bash compute_latest.sh ; cd -
    8487
    8588
     
    129132  done;
    130133fi
     134echo Load Documents
     135echo =======================
     136while ls batch/documents/out | grep [a-z] > /dev/null ; do
     137        php symfony cc --env=test  --app=frontend > /dev/null
     138        php symfony load:Documents
     139done;
     140
    131141
    132142
  • cpc/trunk/project/config/doctrine/schema.yml

    r1328 r1333  
    163163    section_id: integer
    164164    min_date: string(15)
     165    max_date: date
    165166    timestamp: integer
    166167    nb_interventions: integer
     168    url_an: string(255)
    167169  inheritance:
    168170    extends: ObjectCommentable
     
    235237      type: string(255)
    236238    legislature: integer
    237     texteloi_id: string(8)
     239    texteloi_id: string(12)
    238240    numero: string(8)
    239241    rectif: integer
     
    254256      refClass: ParlementaireAmendement
    255257      foreignAlias: Amendements
     258    Texteloi:
     259      foreignAlias: Texteloi
    256260  inheritance:
    257261    extends: ObjectCommentable
     
    484488      unique: false
    485489  columns:
    486     texteloi_id: string(8)
     490    texteloi_id: string(12)
    487491    titre: string(16)
    488492    ordre: integer
     
    496500      class: TitreLoi
    497501      foreignAlias: Articles
     502    Texteloi:
     503      foreignAlias: Texteloi
    498504  inheritance:
    499505    extends: ObjectCommentable
     
    510516    Timestampable:
    511517  columns:
    512     texteloi_id: string(8)
     518    texteloi_id: string(12)
    513519    article_loi_id: integer
    514520    numero: integer
     
    520526      class: ArticleLoi
    521527      foreignAlias: Alineas
     528    Texteloi:
     529      foreignAlias: Texteloi
    522530  inheritance:
    523531    extends: ObjectCommentable
     
    532540    Timestampable:
    533541  columns:
    534     texteloi_id: string(8)
     542    texteloi_id: string(12)
    535543    chapitre: string(8)
    536544    section: string(8)
     
    554562    TitreLoi:
    555563      foreignAlias: SousSections
     564    Texteloi:
     565      foreignAlias: Texteloi
     566
     567Texteloi:
     568  actAs:
     569    Timestampable:
     570  columns:
     571    id:
     572      type: string(12)
     573      unique: true
     574    legislature: integer
     575    numero: integer
     576    annexe: string(12)
     577    type:
     578      type: enum
     579      values: ['Proposition de loi', 'Proposition de résolution', 'Projet de loi', 'Texte de la commission', 'Lettre', 'Rapport', "Rapport d'information", 'Avis']
     580    type_details: string(512)
     581    categorie: string(128)
     582    url_an: string(255)
     583    titre: string(512)
     584    date: date
     585    source:
     586      type: string(128)
     587      unique: true
     588    organisme_id: integer
     589    signataires: string
     590  relations:
     591    Parlementaires:
     592      class: Parlementaire
     593      refClass: ParlementaireTexteloi
     594      foreignAlias: Textelois
     595    Organisme:
     596      foreignAlias: Textelois
     597  inheritance:
     598    extends: ObjectCommentable
     599    type: concrete
     600
     601ParlementaireTexteloi:
     602  actAs:
     603    Timestampable:
     604  columns:
     605    parlementaire_id: integer
     606    texteloi_id: string(12)
     607    importance: integer
     608    fonction: string(255)
     609  relations:
     610    Parlementaire:
     611      foreignAlias: ParlementaireTextelois
     612    Texteloi:
     613      foreignAlias: ParlementaireTextelois
    556614
    557615Alerte:
     
    575633      foreignAlias: Alertes
    576634   
    577    
  • cpc/trunk/project/lib/model/doctrine/Intervention.class.php

    r1327 r1333  
    106106  }
    107107
    108   public function setContexte($context, $date = null, $timestamp = null) {
    109     return $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt($context, $date, $timestamp));
     108  public function setContexte($contexte, $date = null, $timestamp = null, $tlois = null, $debug = 0) {
     109    $tlois = preg_replace('/[^,\d]+/', '', $tlois);
     110    $tlois = preg_replace('/\s+,/', ',', $tlois);
     111    $tlois = preg_replace('/,\s+/', ',', $tlois);
     112    $lois = explode(',', $tlois);
     113    $loisstring = "";
     114    foreach($lois as $loi) if ($loi) {
     115      $tag = 'loi:numero='.$loi;
     116      $this->addTag($tag);
     117      if ($loisstring == "") $loisstring = "t.numero = $loi";
     118      else $loisstring .= " OR t.numero = $loi";
     119    }
     120    if ($lois[0]) {
     121      $urls = Doctrine_Query::create()
     122        ->select('distinct(t.url_an)')
     123        ->from('Texteloi t')
     124        ->where('t.type = ? OR t.type = ? OR t.type = ? OR t.type = ?', array("Proposition de loi", "Proposition de résolution", "Projet de loi", "Texte de la commission"))
     125        ->andWhere($loisstring)
     126        ->fetchArray();
     127      $ct = count($urls);
     128      if ($ct == 0) $urls = Doctrine_Query::create()
     129        ->select('distinct(t.url_an)')
     130        ->from('Texteloi t')
     131        ->where($loisstring)
     132        ->fetchArray();
     133      $ct = count($urls);
     134      if ($ct > 1) {
     135        $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt($contexte, $date, $timestamp));
     136        if ($debug) {
     137          print "WARNING : Intervention $this->id has tags lois corresponding to multiple url_ans : ";
     138          foreach ($urls as $url)
     139            print $url['distinct']." ; ";
     140          print " => Saving to section $this->Section->id\n";
     141          $debug = 0;
     142        }
     143        return $debug;
     144      }
     145      if ($ct == 0) $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt($contexte, $date, $timestamp));
     146      else if ($ct == 1) {
     147        $section1 = Doctrine::getTable('Section')->findOneByContexte($contexte);
     148        $section2 = Doctrine::getTable('Section')->findOneByUrlAn($urls[0]['distinct']);
     149        if ($section2) {
     150          if (!$section1)
     151            $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt(str_replace(trim(preg_replace('/^([^>])(>.*)?$/', '\\1', $contexte)), $section2->titre, $contexte), $date, $timestamp));
     152          else if ($section1->section_id == $section2->id)
     153            $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt($section1->titre_complet, $date, $timestamp));
     154          else {
     155            $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt($contexte, $date, $timestamp));
     156            if ($debug) {
     157              print "WARNING : Intervention $this->id has tags lois corresponding to another section $section2->id";
     158              print " => Saving to section $this->Section->id\n";
     159              $debug = 0;
     160            }
     161            return $debug;
     162          }
     163        }
     164        else {
     165          $section1 = Doctrine::getTable('Section')->findOneByContexteOrCreateIt($contexte, $date, $timestamp);
     166          $this->setSection($section1);
     167          $section1->setUrlAn($urls[0]['distinct']);
     168          $section1->save();
     169        }
     170      }
     171      if ($this->section_id != 1) {
     172        $titre = $this->Section->Section->getTitre();
     173        if (!(preg_match('/(cloture|ouverture|question|ordre du jour|calendrier|élection.*nouveau|démission|cessation.*mandat|proclamation|souhaits)/i', $titre))) {
     174          foreach($lois as $loi) {
     175            $tag = 'loi:numero='.$loi;
     176            $this->Section->addTag($tag);
     177            if ($this->Section->section_id && $this->Section->Section->id && $this->Section->section_id != $this->section_id)
     178              $this->Section->Section->addTag($tag);
     179          }
     180        }
     181      }
     182      return $debug;
     183    } else {
     184      $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt($contexte, $date, $timestamp));
     185      return $debug;
     186    }
    110187  }
    111188
     
    116193      $tag = 'loi:amendement='.$amend;
    117194      $this->addTag($tag);
    118       if ($this->Section->section_id && $this->Section->Section->id) {
    119         $this->Section->Section->addTag($tag);
    120       }
    121     }
    122   }
    123   public function setLois($tlois) {
    124     $tlois = preg_replace('/[^,\d]+/', '', $tlois);
    125     $lois = preg_split('/\s*,\s*/', $tlois);
    126     foreach($lois as $loi) {
    127       $tag = 'loi:numero='.$loi;
    128       $this->addTag($tag);
    129       $this->Section->addTag($tag);
    130       if ($this->Section->section_id && $this->Section->Section->id) {
    131         $this->Section->Section->addTag($tag);
    132       }
    133     }
    134   }
     195    }
     196  }
     197 
    135198  public function setIntervention($s) {
    136199    $this->_set('nb_mots', str_word_count($s));
  • cpc/trunk/project/lib/model/doctrine/OrganismeTable.class.php

    r1274 r1333  
    55class OrganismeTable extends Doctrine_Table
    66{
    7   public function findOneByNomOrCreateIt($nom, $type) {
     7  public function findOneByNomType($nom, $type) {
    88    $nom = strtolower($nom);
    99    $nom = preg_replace('/(&#8217;|\')/', '’', $nom);
     
    5555    if ($org)
    5656      return $org;
    57 
     57    return null;
     58  }
     59 
     60  public function findOneByNomOrCreateIt($nom, $type) {
     61    $org = $this->findOneByNomType($nom, $type);
     62    if ($org)
     63      return $org;
    5864    $org = new Organisme();
    5965    $org->type = $type;
  • cpc/trunk/project/lib/model/doctrine/ParlementaireTable.class.php

    r906 r1333  
    55class ParlementaireTable extends PersonnaliteTable
    66{
    7   public function findOneByNomSexeGroupeCirco($nom, $sexe = null, $groupe = null, $circo = null, $amendement = null) {
     7  public function findOneByNomSexeGroupeCirco($nom, $sexe = null, $groupe = null, $circo = null, $document = null) {
    88    $depute = null;
    99    $memeNom = $this->findByNom($nom);
     
    2626      $query = $this->createQuery('p')
    2727        ->where('p.nom_de_famille = ?' , $nom);
    28       if ($amendement) $query->andWhere('p.fin_mandat is null or p.fin_mandat > ?', $amendement->getDate());
     28      if ($document) $query->andWhere('p.fin_mandat is null or p.fin_mandat > ?', $document->getDate());
    2929      $memeNom = $query->execute();
    3030    }
  • cpc/trunk/project/lib/model/doctrine/Section.class.php

    r1274 r1333  
    7474  }
    7575
     76  public function getOrigTitre() {
     77    return $this->_get('titre');
     78  }
     79
     80  public function setMaxDate($date) {
     81    if ($this->max_date && $date <= $this->max_date)
     82      return;
     83    $this->_set('max_date', $date);
     84    $this->save();
     85  }
     86
    7687}
     88?>
  • cpc/trunk/project/lib/model/doctrine/SectionTable.class.php

    r233 r1333  
    66{
    77  public function findOneByContexteOrCreateIt($contexte, $date = '', $timestamp = '') {
    8     $contexte = preg_replace('/[\/\|\)\(«]/', '', strtolower($contexte));
    9     $contexte = preg_replace('/\&\#8217\;/', '\'', $contexte);
    10     $contexte = preg_replace('/\&\#\d+\;/', '', $contexte);
    11     $contexte = preg_replace('/\,/', ' ', $contexte); 
    12     $contexte = preg_replace('/\s+/', ' ', $contexte);
    13     $contexte = preg_replace('/\s+$/', '', preg_replace('/^\s+/', '', $contexte));
     8    $contexte = self::cleanContexte($contexte);
    149    $section = $this->findOneByMd5(md5($contexte));
    1510    if (!$section) {
     
    1813    }
    1914    if ($date && (! $section->min_date || $section->min_date > $date))
    20       $section->min_date = $date; 
     15      $section->min_date = $date;
    2116    if ($timestamp && (! $section->timestamp || $section->timestamp > $timestamp))
    2217      $section->timestamp = $timestamp;
     18    if ($date && $shortdate = preg_replace('/\d{2}:\d{2}/', '', $date))
     19      $section->setMaxDate($shortdate);
    2320    $section->save();
    2421    return $section;
    2522  }
     23
     24  public function findOneByContexte($contexte) {
     25    $contexte = self::cleanContexte($contexte);
     26    return $this->findOneByMd5(md5($contexte));
     27  }
     28 
     29  private static function cleanContexte($contexte) {
     30    $contexte = preg_replace('/[\/\|\)\(«]/', '', strtolower($contexte));
     31    $contexte = preg_replace('/\&\#8217\;/', '\'', $contexte);
     32    $contexte = preg_replace('/\&\#\d+\;/', '', $contexte);
     33    $contexte = preg_replace('/\,/', ' ', $contexte);
     34    $contexte = preg_replace('/\s+/', ' ', $contexte);
     35    $contexte = preg_replace('/\s+$/', '', preg_replace('/^\s+/', '', $contexte));
     36    return $contexte;
     37  }
     38
    2639}
  • cpc/trunk/project/lib/model/doctrine/myTools.class.php

    r1265 r1333  
    7474  }     
    7575
     76  public static function getLinkDossier($urlan) {
     77    return link_to('Dossier sur le site de l\'Assemblée', "http://www.assemblee-nationale.fr/13/dossiers/".$urlan.".asp");
     78  }
     79
    7680  public static function getLinkLoi($id) {
    7781    return link_to($id, "http://recherche2.assemblee-nationale.fr/resultats-avancee.jsp?11AUTPropositions=&11AUTRap-enq=&11AUTRap-info=&11AUTRapports=&12AUTPropositions=&12AUTRap-enq=&12AUTRap-info=&12AUTRap-infoLoi=&12AUTRapports=&13AUTComptesRendusReunions=&13AUTComptesRendusReunionsDeleg=&13AUTPropositions=&13AUTRap-info=&13AUTRap-infoLoi=&13AUTRapports=&legislature=13&legisnum=&num_init_11=&num_init_12=&num_init_13=".$id."&searchadvanced=Rechercher&searchtype=&texterecherche=&type=13ProjetsLoi");
  • cpc/trunk/project/lib/task/fuseDossiersTask.class.php

    r1112 r1333  
    2929    }
    3030
    31     print " - Gère les sous-sections\n";
     31    #print " - Gère les sous-sections\n";
    3232    $n_itv = 0;
    3333    foreach ($bad->SubSections as $sub) {
    3434      if ($sub->id == $bad->id) continue;
    35       print "   + ".$sub->titre_complet."\n";
    36       $exist = Doctrine::getTable('Section')->createQuery('s')->where('s.section_id = ?', $good->id)->andWhere('s.titre = ?', $sub->titre)->fetchOne();
     35      print "\n + $sub->titre_complet";
     36      $exist = Doctrine::getTable('Section')->createQuery('s')->where('s.section_id = ?', $good->id)->andWhere('s.titre = ?', $sub->getOrigTitre())->fetchOne();
    3737      if (isset($exist->section_id)) {
    38         print "      existe déjà pour la section d'accueil, met-à-jour\n";
     38        #print " existe déjà pour la section d'accueil, met-à-jour\n";
    3939
    4040        $this->updateTags($sub, $exist);
     
    4747          ->where('s.id = ?', $sub->id);
    4848        if (! $query->execute()) {
    49           print 'Suppression impossible de la sous-section '.$sub->id."\n";
     49          print "\n  -> Suppression impossible de la sous-section $sub->id\n";
    5050          return;
    51         } else print "      Ancienne sous-section fusionnée et supprimée\n";
     51        } #else print " fusionnée et supprimée\n";
    5252
    5353      } else {
    54         print "      change le titre et le numéro de section mère\n";
    55         $sub->setTitreComplet(str_replace($sub->titre, $good->titre, $sub->titre_complet));
     54        $sub->setTitreComplet(str_replace($bad->getOrigTitre(), $good->getOrigTitre(), $sub->titre_complet));
    5655        $sub->section_id = $good->id;
     56        print " -> $sub->titre_complet";
    5757        $sub->save();
    5858        $n_itv += $sub->nb_interventions;
     
    6666    $this->updateMinDate($bad, $good);
    6767 
    68     $corresp = array(strtolower($bad->titre) => strtolower($good->titre));
    69     print "Enregistre la correspondance en base :\n";
     68    $corresp = array(strtolower($bad->getOrigTitre()) => strtolower($good->getOrigTitre()));
     69    print "\nEnregistre la correspondance en base :\n";
    7070    $option = Doctrine::getTable('VariableGlobale')->findOneByChamp('dossiers');
    7171    if (!$option) {
     
    7575    } else $option->setValue(serialize(array_merge(unserialize($option->getValue()), $corresp)));
    7676    $option->save();
    77     print_r(unserialize($option->getValue()));
    78     print "\n";
     77    print_r($corresp);
     78    print "  ";
     79    $option = Doctrine::getTable('VariableGlobale')->findOneByChamp('linkdossiers');
     80    if (!$option) {
     81      $option = new VariableGlobale();
     82      $option->setChamp('linkdossiers');
     83      $option->setValue(serialize(array("$bad->id" => "$good->id")));
     84    } else {
     85      $value = unserialize($option->getValue());
     86      $value["$bad->id"] = "$good->id";
     87      $option->setValue(serialize($value));
     88    }
     89    $option->save();
     90    print "$bad->id => $good->id\n";
    7991
    8092    $query = Doctrine_Query::create()
     
    8395    if (! $query->execute()) {
    8496      print 'Suppression impossible de la section '.$bad->id."\n";
    85     } else print "Done\n";
     97    }
    8698  }
    8799
    88100  private static function updateTags($b, $g) {
    89     print "      Gère les tags\n";
     101    #print "      Gère les tags\n";
    90102    foreach(Doctrine::getTable('Tagging')->createQuery('t')->where('t.taggable_model = ?', 'Section')->andWhere('t.taggable_id = ?', $b->id)->execute() as $tag) {
    91       print $tag->tag_id." ";
    92       if (Doctrine::getTable('Tagging')->createQuery('t')->where('t.taggable_model = ?', 'Section')->andWhere('t.taggable_id = ?', $g->id)->andWhere('t.tag_id = ?', $tag->tag_id)) {
     103      #print $tag->tag_id." ";
     104      if (count(Doctrine::getTable('Tagging')->createQuery('t')->where('t.taggable_model = ?', 'Section')->andWhere('t.taggable_id = ?', $g->id)->andWhere('t.tag_id = ?', $tag->tag_id)->execute()) > 0) {
    93105         $query = Doctrine_Query::create()
    94106           ->delete('Tagging t')
     
    102114      }
    103115    }
    104     print "\n";
    105116  }
    106117
    107118  private static function updateInterv($b, $g, $base = 0) {
    108     print "      Gère les interventions\n";
     119    #print "      Gère les interventions\n";
    109120    $ct = 0;
    110121    foreach(Doctrine::getTable('Intervention')->createQuery('i')->where('i.section_id = ?', $b->id)->execute() as $itv) {
    111       print $itv->id." ";
     122      #print $itv->id." ";
    112123      $itv->section_id = $g->id;
    113124      $itv->save();
     
    121132        ->execute();
    122133    }
    123     print " / total : ".$ct."\n";
     134    #print " / total : ".$ct."\n";
    124135    return $ct;
    125136  }
    126137
    127138  private static function updateComments($b, $g) {
    128     print "      Gère les commentaires\n";
     139    #print "      Gère les commentaires\n";
    129140    $ct = 0;
    130141    foreach(Doctrine::getTable('CommentaireObject')->createQuery('c')->where('c.object_type = ?', 'Section')->andWhere('c.object_id = ?', $b->id)->execute() as $com) {
    131       print $com->id." ";
     142      #print $com->id." ";
    132143      $com->object_id = $g->id;
    133144      $com->save();
     
    142153        ->execute();
    143154    }
    144     print "\n";
     155    #print "\n";
    145156  }
    146157
  • cpc/trunk/project/lib/task/loadHemicycleTask.class.php

    r1274 r1333  
    2525            continue;
    2626          echo "$dir$file\n";
     27          $debug = 1;
    2728          foreach(file($dir.$file) as $line) {
    2829            $json = json_decode($line);
     
    3334              continue;
    3435            }
    35             $id = md5($json->intervention.$json->date.$json->heure.'hemicyle'.$json->context.$json->timestamp);
     36            $date = $json->date;
     37            $id = md5($json->intervention.$json->date.$json->heure.'hemicyle'.$json->timestamp);
    3638            $intervention = Doctrine::getTable('Intervention')->findOneByMd5($id);
    3739            if(!$intervention) {
     
    4749              $intervention->setSource($json->source);
    4850              $intervention->setTimestamp($json->timestamp);
    49           if ($json->timestamp)
    50             $intervention->setContexte($json->contexte, $json->date.$json->heure, $json->timestamp);
    5151            }
    52             if ($json->numeros_loi)
    53               $intervention->setLois($json->numeros_loi);
     52            if ($json->timestamp)
     53              $debug = $intervention->setContexte($json->contexte, $json->date.$json->heure, $json->timestamp, $json->numeros_loi, $debug);
    5454            if ($json->amendements)
    5555              $intervention->setAmendements($json->amendements);
     
    5757              $p = null;
    5858              if ($json->intervenant_url) {
    59             $p = Doctrine::getTable('Parlementaire')
     59                $p = Doctrine::getTable('Parlementaire')
    6060                  ->findOneByUrlAn($json->intervenant_url);
    61             if ($p) {
    62               $intervention->setParlementaire($p);
    63               $intervention->setFonction($json->fonction);
    64             }
     61                if ($p) {
     62                  $intervention->setParlementaire($p);
     63                  $intervention->setFonction($json->fonction);
     64                }
    6565              }
    6666              if (!$p) {
    67             $intervention->setPersonnaliteByNom($json->intervenant, $json->fonction);
     67                $intervention->setPersonnaliteByNom($json->intervenant, $json->fonction);
    6868              } else $p->free();
    6969            }
     
    7373            $intervention->free();
    7474          }
    75           foreach(array_values($sections) as $section)
     75          foreach(array_values($sections) as $section) {
    7676            $section->updateNbInterventions();
    77           if ($section) {
     77            $section->setMaxDate($date);
     78          }
     79          if ($section) {
    7880            $section->free();
    7981          }
  • cpc/trunk/project/web/css/xneth/style.css

    r1317 r1333  
    271271
    272272/* Tags */
    273 .internal_tag_cloud a:link {color:#6F6F6F;}
     273.internal_tag_cloud a:link {color:#D4963E;}
    274274.tag_level_0 {font-size: 0.8em;}
    275275.tag_level_1 {font-size: 0.9em;}
     
    277277.tag_level_3 {font-size: 1.5em;}
    278278.tag_level_4 {font-size: 1.7em;}
    279 .tag_level_4 a {color: #FFF;}
    280279/**/
    281280
     
    587586}
    588587#sous_menu_2 .elements_sous_menu {
    589   padding-left: 260px;
     588  padding-left: 134px;
    590589}
    591590#sous_menu_3 .elements_sous_menu {
     
    617616  padding:0;
    618617  margin:0;
    619   margin-left:4px;
     618  margin-left:2px;
    620619  }
    621620 
     
    15681567  color: #158EAF;
    15691568}
     1569.list_inter {
     1570  color: #7AA925;
     1571}
    15701572
    15711573.solr .facets
Note: See TracChangeset for help on using the changeset viewer.