Changeset 1361


Ignore:
Timestamp:
Sep 12, 2010, 12:52:00 AM (10 years ago)
Author:
roux
Message:

ajouts fonctios sur documents + correction parsing id documents

Location:
cpc/trunk/project
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/batch/documents/parse_metas.pl

    r1351 r1361  
    88$id = $source;
    99$id =~ s/^http\:\/\/.*(\d{4})(-[at].*)?\.asp$/\1\2/i;
     10$id =~ s/^0+//;
    1011$num = $annexe = $id;
    11 $num =~ s/^0*(\d+)(-[at].*)?$/\1/i;
    12 $annexe =~ s/^0*\d+(-[at])?(.*)?$/\2/i;
     12$num =~ s/^(\d+)(-[at].*)?$/\1/i;
     13$annexe =~ s/^\d+(-[at])?(.*)?$/\2/i;
    1314
    1415open(FILE, $file) ;
  • cpc/trunk/project/lib/model/doctrine/Intervention.class.php

    r1355 r1361  
    148148        $section2 = Doctrine::getTable('Section')->findOneByUrlAn($urls[0]['distinct']);
    149149        if ($section2) {
    150           if (!$section1)
    151             $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt(str_replace(trim(preg_replace('/^([^>])(>.*)?$/', '\\1', $contexte)), $section2->titre, $contexte), $date, $timestamp));
     150          if (!$section1) 
     151            $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt(str_replace(trim(preg_replace('/^([^>]+)(>.*)?$/', '\\1', $contexte)), $section2->titre, $contexte), $date, $timestamp));
    152152          else if ($section1->section_id == $section2->id)
    153153            $this->setSection(Doctrine::getTable('Section')->findOneByContexteOrCreateIt($section1->titre_complet, $date, $timestamp));
     
    156156            if ($debug) {
    157157              print "WARNING : Intervention $this->id has tags lois corresponding to another section $section2->id";
    158               print " => Saving to section $this->Section->id\n";
     158              print " => Saving to section ".$this->Section->id."\n";
    159159              $debug = 0;
    160160            }
  • cpc/trunk/project/lib/model/doctrine/Texteloi.class.php

    r1356 r1361  
    1414{
    1515
     16  public function getAmendements() {
     17    if (!preg_match('/(Projet de loi|Proposition de loi|Proposition de résolution|Texte de la commission)/', $this->type))
     18      return 0;
     19    $res = count(Doctrine::getTable('Amendement')->createQuery('a')
     20      ->where('texteloi_id = ?', $this->numero)
     21      ->fetchArray());
     22    return $res;
     23  }
     24
     25  public function getDossier() {
     26    $section = Doctrine::getTable('Section')->findOneByUrlAn($this->url_an);
     27    if (!$section) $section = Doctrine_Query::create()
     28      ->select('s.id')
     29      ->from('Section s, Tagging ta, Tag t')
     30      ->where('s.section_id = s.id')
     31      ->andWhere('ta.taggable_id = s.id')
     32      ->andWhere('ta.tag_id = t.id')
     33      ->andWhere('ta.taggable_model = ?', "Section")
     34      ->andWhere('t.name = ?', "loi:numero=".$this->numero)
     35      ->fetchOne();
     36    return $section;
     37  }
     38
    1639  public function setDossier($urldossier) {
    1740    $this->url_an = $urldossier;
    18    //find by url_an if not find by tag_loi if Projet de loi, Proposition de loi, TA, => save url_an
    1941    $section = Doctrine::getTable('Section')->findOneByUrlAn($urldossier);
    2042    if ($section) {
     
    109131
    110132  public function addParlementaire($depute, $fonction, $organisme = 0) {
    111     //foreach(Doctrine::getTable('ParlementaireTexteloi')->createQuery('pa')->select('parlementaire_id')->where('texteloi_id = ?', $this->id)->fetchArray() as $parldt) if ($parldt['parlementaire_id'] == $depute->id) return true;
     133    foreach(Doctrine::getTable('ParlementaireTexteloi')->createQuery('pa')->select('parlementaire_id')->where('texteloi_id = ?', $this->id)->fetchArray() as $parldt) if ($parldt['parlementaire_id'] == $depute->id) return true;
    112134
    113135    $pd = new ParlementaireTexteloi();
     
    138160  }
    139161
    140 
     162  public function getTypeString() {
     163    $str = "ce";
     164    if (preg_match('/(propos|lettre)/', $this->type))
     165      $str .= "tte";
     166    $str .= " ".strtolower($this->type);
     167    return $str;
     168  }
     169
     170  public function getAuteursString() {
     171    if ($this->type === "Texte de la commission")
     172      return $this->signataires;
     173    return $this->signataires;
     174  }
     175
     176  public function getCommission() {
     177    if ($this->type === "Texte de la commission") {
     178      $rap = Doctrine::getTable('Texteloi')->find("$this->numero");
     179      return $rap->getOrganisme();
     180    }
     181    return $this->getOrganisme();
     182  }
     183
     184  public function getTitreComplet() {
     185    $str = "";
     186    if ($this->annexe && preg_match('/a/', $this->id)) {
     187      $str .= "Annexe N° ".$annexe." ";
     188      if ($this->type === "Avis")
     189        $str .= "à l'";
     190      else $str .=  "au ";
     191    }
     192    $str .= $this->type;
     193    if (!preg_match('/^,/', $this->type_details))
     194      $str .= " ";
     195    $str .= $this->type_details;
     196    if (!preg_match('/^,/', $this->titre))
     197      $str .=  " ";
     198    $str .= $this->titre;
     199    if ($this->annexe && preg_match('/t/', $this->id))
     200      $str .= " (Tome $annexe)";
     201    return $str;
     202  }
    141203}
  • cpc/trunk/project/lib/model/doctrine/TexteloiTable.class.php

    r1333 r1361  
    22
    33
    4 class TexteLoiTable extends ObjectCommentableTable
    5 {
    6    
    7     public static function getInstance()
    8     {
    9         return Doctrine_Core::getTable('TexteLoi');
    10     }
     4class TexteLoiTable extends ObjectCommentableTable { 
     5
     6  public static function getInstance() {
     7    return Doctrine_Core::getTable('TexteLoi');
     8  }
     9
     10  public function findLoi($num) {
     11    $doc = $this->createQuery('t')
     12      ->where('id in ? or id like ?', array(array($num, $num."-a0"), $num."-t%"))
     13      ->andWhere('type in ?', array('Projet de loi', 'Proposition de loi', 'Proposition de résolution', 'Texte de la commission'))
     14      ->orderBy('numero, annexe')
     15      ->fetchOne();
     16    if (!$doc) return null;
     17    return $doc;
     18  }
     19
     20
    1121}
Note: See TracChangeset for help on using the changeset viewer.