Changeset 1134


Ignore:
Timestamp:
Feb 28, 2010, 2:27:47 AM (11 years ago)
Author:
roux
Message:

gestion versionnement des amendements rectifiés

Location:
cpc/trunk/project
Files:
5 added
7 edited

Legend:

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

    r1125 r1134  
    1010      ->where('a.texteloi_id = ?', $request->getParameter('loi'))
    1111      ->andWhere('a.numero = ?', $request->getParameter('numero'))
     12      ->andWhere('a.sort <> ?', 'Rectifié')
    1213      ->leftJoin('a.ParlementaireAmendement pa')
    1314      ->leftJoin('pa.Parlementaire p');
     
    4041       ->from('Amendement a, Tagging tg, tg.Tag t')
    4142       ->where('a.texteloi_id = ?', $this->amendement->texteloi_id)
     43       ->andWhere('a.sort <> ?', 'Rectifié')
    4244       ->andWhere('a.id = tg.taggable_id')
    4345       ->andWhere('t.name LIKE ?', 'loi:sous_amendement_de=%')
     
    5759      ->leftJoin('a.ParlementaireAmendement pa')
    5860      ->where('pa.parlementaire_id = ?', $this->parlementaire->id)
     61      ->andWhere('a.sort <> ?', 'Rectifié')
    5962    //  ->andWhere('pa.numero_signataire <= ?', self::$seuil_amdmts)
    6063      ->orderBy('a.date DESC, a.texteloi_id DESC, a.numero DESC');
     
    7881      ->leftJoin('a.ParlementaireAmendement pa')
    7982      ->where('pa.parlementaire_id = ?', $this->parlementaire->id)
     83      ->andWhere('a.sort <> ?', 'Rectifié')
    8084      ->andWhereIn('a.texteloi_id', $lois)
    8185      ->orderBy('a.texteloi_id DESC, a.date DESC, a.numero DESC');
     
    146150      $this->amendements_query = doctrine::getTable('Amendement')
    147151        ->createQuery('a')
    148         ->whereIn('a.texteloi_id', $this->lois);
     152        ->whereIn('a.texteloi_id', $this->lois)
     153        ->andWhere('a.sort <> ?', 'Rectifié');
    149154      if ($amdt == 'new')
    150155        $this->amendements_query->orderBy('a.texteloi_id DESC, a.created_at DESC, a.source');
     
    170175    foreach($this->lois as $loi) foreach($numeros as $numero) {
    171176      $query = PluginTagTable::getObjectTaggedWithQuery('Amendement', array('loi:amendement='.$numero));
    172       $query->andWhere('texteloi_id = ?', $loi);
     177      $query->andWhere('texteloi_id = ?', $loi)
     178        ->andWhere('sort <> ?', 'Rectifié');
    173179      $res = $query->execute();
    174180      if (count($res)) foreach ($res as $amd) {
     
    187193    $id = $request->getParameter('id');
    188194    $a = Doctrine::getTable('Amendement')->find($id);
     195    $this->forward404Unless($a);
    189196    $this->redirect('@amendement?loi='.$a->texteloi_id.'&numero='.$a->numero);
    190197  }
  • cpc/trunk/project/apps/frontend/modules/loi/actions/actions.class.php

    r1113 r1134  
    1616    $admts = doctrine::getTable('Amendement')->createquery('a')
    1717      ->where('a.texteloi_id = ?', $loi)
     18      ->andWhere('a.sort <> ?', 'Rectifié')
    1819      ->orderBy('a.numero');
    1920    if ($articles != 'all') {
     
    5152      ->execute();
    5253    $this->articles = doctrine::getTable('ArticleLoi')->createquery('a')
    53         ->where('a.texteloi_id = ?', $loi_id)
    54         ->orderBy('a.ordre')
    55         ->fetchArray();
     54      ->where('a.texteloi_id = ?', $loi_id)
     55      ->orderBy('a.ordre')
     56      ->fetchArray();
    5657    $this->amendements = count(doctrine::getTable('Amendement')->createquery('a')
    57         ->where('a.texteloi_id = ?', $loi_id)->execute());
     58      ->where('a.texteloi_id = ?', $loi_id)
     59      ->andWhere('a.sort <> ?', 'Rectifié')
     60      ->execute());
    5861   
    5962    $this->response->setTitle(strip_tags($this->loi->titre).' - NosDéputés.fr');
  • cpc/trunk/project/apps/frontend/modules/parlementaire/actions/actions.class.php

    r1123 r1134  
    361361      foreach(Doctrine::getTable('Amendement')->createQuery('a')
    362362              ->leftJoin('a.ParlementaireAmendement pa')
    363               ->where('pa.parlementaire_id = ?', $this->parlementaire->id)->orderBy('date DESC')->limit($this->limit)->execute()
     363              ->where('pa.parlementaire_id = ?', $this->parlementaire->id)
     364              ->andWhere('a.sort <> ?', 'Rectifié')
     365              ->orderBy('date DESC')->limit($this->limit)->execute()
    364366              as $n)
    365367        $news[] = $n;
  • cpc/trunk/project/config/doctrine/schema.yml

    r1131 r1134  
    220220    source:
    221221      type: string(255)
    222       unique: true
    223222    legislature: integer
    224223    texteloi_id: string(8)
     
    228227    sort:
    229228      type: enum
    230       values: ['Indéfini', 'Adopté', 'Irrecevable', 'Rejeté', 'Retiré', 'Tombe', 'Non soutenu', 'Retiré avant séance']
     229      values: ['Indéfini', 'Adopté', 'Irrecevable', 'Rejeté', 'Retiré', 'Tombe', 'Non soutenu', 'Retiré avant séance', 'Rectifié']
    231230    date: date
    232231    signataires: string
     
    249248      type: fulltext
    250249    uniq_loi_num:
    251       fields: [texteloi_id, numero]
     250      fields: [legislature, texteloi_id, numero, rectif]
    252251      type: unique
    253252
  • cpc/trunk/project/lib/model/doctrine/AmendementTable.class.php

    r96 r1134  
    66{
    77
     8  public function findOneByLegisLoiNumRect($legis, $loi, $numero, $rect) {
     9    $query = $this->createQuery('a')
     10      ->where('a.legislature = ?', $legis)
     11      ->andWhere('a.texteloi_id = ?', $loi)
     12      ->andWhere('a.numero = ?', $numero)
     13      ->andWhere('a.rectif = ?', $rect);
     14    return $query->fetchOne();
     15  }
     16
     17
    818}
  • cpc/trunk/project/lib/task/correctLoiAmendementsTask.class.php

    r1127 r1134  
    2828          $a->texteloi_id = $match[2]+0;
    2929          $a->numero = ($match[4] + 0).$match[3];
    30           echo $a->texteloi_id.' '.$a->numero."\n";
     30          echo $a->texteloi_id.' '.$a->numero." | ";
     31          $a->addTag('loi:amendement='.$a->numero);
    3132          $a->save();
    3233        }
     
    5657        break;
    5758    }
     59    echo "\n";
    5860  }
    5961}
  • cpc/trunk/project/lib/task/loadAmdmtsTask.class.php

    r907 r1134  
    2525            $ct_lines++;
    2626            $json = json_decode($line);
    27             if (!$json || !$json->source || !$json->legislature || !$json->numero || !$json->loi || !$json->sujet || !$json->texte) {
     27            if (!$json || !$json->source || !$json->legislature || !$json->numero || !$json->loi || !$json->sujet || !$json->texte || !$json->date || !isset($json->rectif)) {
    2828              echo "ERROR json : $line\n";
    2929              continue;
     
    3131            $ct_lus++;
    3232            $modif = true;
    33             $amdmt = Doctrine::getTable('Amendement')->findOneBySource($json->source);
     33            $amdmt = Doctrine::getTable('Amendement')->findOneByLegisLoiNumRect($json->legislature, $json->loi, $json->numero, $json->rectif);
     34            if ($json->rectif > 0) foreach(Doctrine::getTable('Amendement')->findBySource($json->source) as $rect) {
     35             if ($rect->rectif < $json->rectif) {
     36              $rect->sort = "Rectifié";
     37              $rect->save();
     38             }
     39            }
     40           
    3441            if (!$amdmt) {
    3542              $ct_crees++;
     
    4047              $amdmt->addTag('loi:numero='.$amdmt->texteloi_id);
    4148              $amdmt->numero = $json->numero;
    42             } elseif ($amdmt->rectif == $json->rectif && $amdmt->date == $json->date) {
     49              $amdmt->rectif = $json->rectif;
     50            } elseif ($amdmt->signataires == $json->auteurs && $amdmt->date == $json->date) {
    4351              $modif = false;
    4452            }
    4553            if ($modif) {
    46               $amdmt->rectif = $json->rectif;
    47               if ($json->date)
    48                 $amdmt->date = $json->date;
     54              $amdmt->date = $json->date;
     55              $lettre = $amdmt->getLettreLoi();
    4956              if ($json->serie) {
    5057                if (preg_match('/,/', $json->serie)) {
     
    5360                    $gap = preg_split('/-/', $gap_stri);
    5461                    for ($n = $gap[0]; $n <= $gap[1]; $n++)
    55                       $amdmt->addTag('loi:amendement='.$n);
     62                      $amdmt->addTag('loi:amendement='.$n.$lettre);
    5663                  }
    5764                } else {
    5865                  $gap = preg_split('/-/', $json->serie);
    5966                  for ($n = $gap[0]; $n <= $gap[1]; $n++)
    60                     $amdmt->addTag('loi:amendement='.$n);
     67                    $amdmt->addTag('loi:amendement='.$n.$lettre);
    6168                }
    6269              } else $amdmt->addTag('loi:amendement='.$amdmt->numero);
    6370              if ($json->parent)
    64                 $amdmt->addTag('loi:sous_amendement_de='.$json->parent);
     71                $amdmt->addTag('loi:sous_amendement_de='.$json->parent.$lettre);
    6572              $amdmt->sujet = $json->sujet;
    6673              $amdmt->texte = $json->texte;
     
    6875                $amdmt->expose = $json->expose;
    6976              $amdmt->content_md5 = md5($json->legislature.$json->loi.$json->sujet.$json->texte);
    70             }
    71             if ($json->sort)
    72               $amdmt->sort = $json->sort;
    73             elseif (!$amdmt->sort)
    74                 $amdmt->sort = "Indéfini";
    75             if ($json->auteurs) { /// remettre dans modif?
    76               $amdmt->signataires = $json->auteurs;
    77               $amdmt->setAuteurs($json->auteurs);
    78             } else {
    79               if (!$json->sort || !preg_match('/(irrecevable|retir)/i', $json->sort)) {
     77              if ($json->auteurs) {
     78                $amdmt->signataires = $json->auteurs;
     79                $amdmt->setAuteurs($json->auteurs);
     80              } else if (!$json->sort || !preg_match('/(irrecevable|retir)/i', $json->sort)) {
    8081                echo "ERROR json auteurs missing : $line\n";
    8182                $amdmt->free();
     
    8384              }
    8485            }
     86            if ($json->sort)
     87              $amdmt->sort = $json->sort;
     88            elseif (!$amdmt->sort)
     89              $amdmt->sort = "Indéfini";
    8590            $amdmt->save();
    8691            $amdmt->free();
Note: See TracChangeset for help on using the changeset viewer.