Changeset 349


Ignore:
Timestamp:
01/25/11 23:46:51 (13 years ago)
Author:
nanardon
Message:
  • factorize and optimize code
Location:
server/trunk/web
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • server/trunk/web/lib/Sophie/Base/Result/Deps.pm

    r6 r349  
    1010__PACKAGE__->belongs_to(Rpms => 'Sophie::Base::Result::Rpms', 'pkgid'); 
    1111 
    12  
     12__PACKAGE__->add_relationship( RpmFile => 'Sophie::Base::Result::RpmFile', 
     13                             { pkgid => 'pkgid' }); 
    13141; 
  • server/trunk/web/lib/Sophie/Base/Result/MediasPaths.pm

    r12 r349  
    1010__PACKAGE__->belongs_to(Medias => 'Sophie::Base::Result::Medias', 'd_media'); 
    1111__PACKAGE__->belongs_to(Paths => 'Sophie::Base::Result::Paths', 'd_path'); 
     12__PACKAGE__->add_relationship( RpmFiles => 'Sophie::Base::Result::RpmFile', 
     13                             { 'foreign.d_path' => 'self.d_path' }); 
    1214 
    1315 
  • server/trunk/web/lib/Sophie/Base/Result/RpmFile.pm

    r2 r349  
    1010__PACKAGE__->belongs_to(Path => 'Sophie::Base::Result::Paths', 'd_path'); 
    1111__PACKAGE__->belongs_to(Rpms => 'Sophie::Base::Result::Rpms', 'pkgid'); 
    12 #__PACKAGE__->has_many(mediaspaths => 'Sophie::Base::Result::MediasPaths', 'path'); 
    1312 
     13__PACKAGE__->add_relationship(  MediasPaths => 'Sophie::Base::Result::MediasPaths', 
     14                              { 'foreign.d_path' => 'self.d_path' }); 
     15 
     16__PACKAGE__->add_relationship(  Deps => 'Sophie::Base::Result::Deps', 
     17                              { 'foreign.pkgid' => 'self.pkgid' }); 
     18__PACKAGE__->add_relationship(  Files => 'Sophie::Base::Result::Files', 
     19                              { 'foreign.pkgid' => 'self.pkgid' }); 
     20__PACKAGE__->add_relationship(  BinFiles => 'Sophie::Base::Result::BinFiles', 
     21                              { 'foreign.pkgid' => 'self.pkgid' }); 
     22__PACKAGE__->add_relationship(  SrcFiles => 'Sophie::Base::Result::SrcFiles', 
     23                              { 'foreign.pkgid' => 'self.pkgid' }); 
     24__PACKAGE__->add_relationship(  Tags => 'Sophie::Base::Result::Tags', 
     25                              { 'foreign.pkgid' => 'self.pkgid' }); 
    1426 
    15271; 
  • server/trunk/web/lib/Sophie/Base/Result/Rpms.pm

    r333 r349  
    1111__PACKAGE__->has_many(Deps => 'Sophie::Base::Result::Deps', 'pkgid'); 
    1212__PACKAGE__->has_many(Files => 'Sophie::Base::Result::Files', 'pkgid'); 
     13__PACKAGE__->has_many(BinFiles => 'Sophie::Base::Result::BinFiles', 'pkgid'); 
    1314__PACKAGE__->has_many(SrcFiles => 'Sophie::Base::Result::SrcFiles', 'pkgid'); 
    1415__PACKAGE__->has_many(Tags => 'Sophie::Base::Result::Tags', 'pkgid'); 
  • server/trunk/web/lib/Sophie/Controller/Distrib.pm

    r275 r349  
    104104                $distrib->{distribution} 
    105105                    ? (-or => [ 
    106                             { name =>      $distrib->{distribution} }, 
     106                            { 'me.name' =>      $distrib->{distribution} }, 
    107107                            { shortname => $distrib->{distribution} }, 
    108108                        ], 
     
    125125            { 
    126126                $distrib->{arch} 
    127                     ? (arch => $distrib->{arch}) 
     127                    ? ('Arch.arch' => $distrib->{arch}) 
    128128                    : () 
    129129            }, 
  • server/trunk/web/lib/Sophie/Controller/Search.pm

    r330 r349  
    191191    my ($self, $c, $searchspec, $deptype, $depname, $depsense, $depevr ) = @_; 
    192192 
    193     my $distrs = $c->forward('distrib_search', [ $searchspec, 1 ]); 
    194  
    195     return $c->model('Base::Deps')->search( 
     193        $c->model('BaseSearch')->best_rpm_filter($searchspec) 
     194        ->search({}, { join => [ 'Deps' ]})->search( 
    196195        { 
    197196            -and => [ 
     
    200199            ($depsense 
    201200                ? ({-nest => \[ 
    202                     'rpmdepmatch(flags, evr, rpmsenseflag(?), ?)', 
     201                    'rpmdepmatch(Deps.flags, Deps.evr, rpmsenseflag(?), ?)', 
    203202                    [ plain_text => $depsense], 
    204203                    [ plain_text => $depevr ] 
    205204                ]}) 
    206205            : ()), 
    207             ($distrs  
    208                 ? ({ pkgid => { IN => $distrs->get_column('pkgid')->as_query, 
    209                         },}) 
    210                 : ()), 
    211             (exists($searchspec->{src}) 
    212                 ? { pkgid => { IN => $c->model('Base::Rpms')->search( 
    213                             { issrc => $searchspec->{src} ? 1 : 0 } 
    214                         )->get_column('pkgid')->as_query, }, } 
    215                 : ()), 
    216206            ($searchspec->{pkgid} 
    217                 ? { pkgid => $searchspec->{pkgid} } 
     207                ? { 'Deps.pkgid' => $searchspec->{pkgid} } 
    218208                : ()), 
    219209            ] 
    220210        }, 
    221211        { 
    222             '+select' => [ { rpmsenseflag => 'flags' }, 'depname', ], 
     212            '+select' => [ { rpmsenseflag => 'Deps.flags' }, 'Deps.depname', ], 
    223213            '+as'     => [ qw(sense name) ], 
    224214 
  • server/trunk/web/lib/Sophie/Controller/Search/Rpm.pm

    r330 r349  
    9797    $searchspec ||= {}; 
    9898 
    99     my $distrs = $c->forward('/search/distrib_search', [ $searchspec, 1 ]); 
     99    #my $distrs = $c->forward('/search/distrib_search', [ $searchspec, 1 ]); 
    100100 
    101101    my $deprs = $c->forward( 
     
    113113            order_by => [ 'name', 'evr using >>', 'issrc', 'arch' ], 
    114114            rows => $searchspec->{rows}, 
     115            select => [ 'pkgid' ], 
     116            as => [ 'pkgid' ], 
    115117        } 
    116118    ); 
Note: See TracChangeset for help on using the changeset viewer.