Changeset 460 for web


Ignore:
Timestamp:
07/30/12 01:04:22 (12 years ago)
Author:
nanardon
Message:
  • various DBIx::Class fixes
Location:
web
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • web/lib/Sophie/Base/Result/Paths.pm

    r443 r460  
    1414__PACKAGE__->belongs_to('MetaPaths' => 'Sophie::Base::Result::MetaPaths', 'meta_path'); 
    1515__PACKAGE__->has_many(MediasPaths => 'Sophie::Base::Result::MediasPaths', 'd_path'); 
    16 __PACKAGE__->has_many(Rpmfiles => 'Sophie::Base::Result::RpmFile', 'd_path'); 
     16__PACKAGE__->has_many(Rpmfile => 'Sophie::Base::Result::RpmFile', 'd_path'); 
    1717 
    1818 
  • web/lib/Sophie/Base/Result/RpmFile.pm

    r356 r460  
    88__PACKAGE__->add_columns(qw/d_path filename pkgid added mtime size/); 
    99__PACKAGE__->set_primary_key(qw/d_path filename/); 
    10 __PACKAGE__->belongs_to(Path => 'Sophie::Base::Result::Paths', 'd_path'); 
     10__PACKAGE__->belongs_to(Paths => 'Sophie::Base::Result::Paths', 'd_path'); 
    1111__PACKAGE__->belongs_to(Rpms => 'Sophie::Base::Result::Rpms', 'pkgid'); 
    1212 
  • web/lib/Sophie/Controller/Login.pm

    r415 r460  
    4141            if ($c->req->xmlrpc->is_xmlrpc_request) { 
    4242                $c->error('invalid login / password'); 
     43            } else { 
     44                $c->stash->{error} = 'Invalid login / password'; 
    4345            } 
    4446        } 
     
    5153} 
    5254 
    53 sub logout :Local { 
    54     my ($self, $c) = @_; 
     55sub create_request : Private { 
     56    my ($self, $c, $mail) = @_; 
    5557 
    56     $c->logout; 
     58    my $valid_code = join('', map { printf("%02x", rand(256)) } (0 .. 15)); 
     59 
     60    $c->model('Base::AccountRequest')->create({ 
     61            mail => $mail, 
     62            valid_code => $valid_code, 
     63    }); 
    5764} 
    5865 
     
    8188    $c->stash->{valid} = "$aa + $bb"; 
    8289    $c->session->{valid_create_user} = $aa + $bb; 
    83  
    8490} 
    8591 
  • web/lib/Sophie/Controller/Rpms.pm

    r403 r460  
    249249            {  
    250250                order_by => [ 'count' ], 
    251                 select => [ 'rpmsenseflag("flags")', qw(depname flags evr) ], 
     251                select => [ \[ 'rpmsenseflag("flags")' ], qw(depname flags evr) ], 
    252252                as => [ qw'sense depname flags evr' ], 
    253253 
     
    411411            {  
    412412                order_by => [ 'count' ], 
    413                 select => [ 'rpmsenseflag("flags")', 
    414                     qw(depname flags evr deptype) ], 
     413                select => [ 
     414                    \[ 'rpmsenseflag("flags")' ], 
     415                    qw(depname flags evr deptype) 
     416                ], 
    415417                as => [ qw'sense depname flags evr deptype' ], 
    416418 
     
    457459            }, 
    458460            {  
    459                 'select' => [ 'contents is NOT NULL as has_content', 'rpmfilesmode(mode) as perm', @col, '"group"', 
    460                     '"user"' ], 
     461                'select' => [  
     462                    \[ 'contents is NOT NULL as has_content' ], 
     463                    \[ 'rpmfilesmode(mode) as perm' ], 
     464                    @col, '"group"', '"user"' 
     465                ], 
    461466                as => [ qw(has_content perm), @col, 'group', 'user' ], 
    462467                order_by => [ 'dirname', 'basename' ], 
     
    530535            {  
    531536                select => [  
    532                     qq{rpmquery("header", ?)}, 
    533                     qq{rpmquery("header", ?)}, 
     537                    \[ qq{rpmquery("header", ?)} ], 
     538                    \[ qq{rpmquery("header", ?)} ], 
    534539                ], 
    535540                as => [ qw(script prog) ], 
     
    546551            {  
    547552                select => [  
    548                     qq{rpmquery("header", ?)}, 
    549                     qq{rpmquery("header", ?)}, 
    550                     qq{rpmquery("header", ?)}, 
    551                     qq{rpmsenseflag(rpmquery("header", ?)::int)}, 
    552                     qq{rpmquery("header", ?)}, 
     553                    \[ qq{rpmquery("header", ?)} ], 
     554                    \[ qq{rpmquery("header", ?)} ], 
     555                    \[ qq{rpmquery("header", ?)} ], 
     556                    \[ qq{rpmsenseflag(rpmquery("header", ?)::int)} ], 
     557                    \[ qq{rpmquery("header", ?)} ], 
    553558                ], 
    554559                as => [ qw(script prog name sense version) ], 
     
    580585        map { 
    581586        { 
    582             distribution => $_->get_column('name'), 
    583             dist => $_->get_column('shortname'), 
    584             release => $_->get_column('version'), 
    585             arch => $_->get_column('arch'),  
    586             media => $_->get_column('label'), 
    587             media_group => $_->get_column('group_label'), 
    588         } 
    589         } 
    590         $c->forward('/distrib/distrib_rs', [ {} ]) 
     587            distribution => ($_->Arch->Release->Distribution->name || undef), 
     588            dist => ($_->Arch->Release->Distribution->shortname || undef), 
     589            release => ($_->Arch->Release->version || undef), 
     590            arch => ($_->Arch->arch || undef), 
     591            media => ($_->label || undef), 
     592            media_group => ($_->group_label || undef), 
     593        } 
     594        } $c->model('Base')->resultset('RpmFile')->search( 
     595            { pkgid => $pkgid }, 
     596        )->search_related('Paths') 
    591597         ->search_related('MediasPaths') 
    592                  ->search_related('Paths') 
    593         ->search_related('Rpmfiles', 
    594             { pkgid => $pkgid }, 
    595             { 
    596                 select => [ qw(shortname name version arch label group_label) ], 
    597                 order_by => [ qw(name version arch label) ], 
    598             } 
    599         )->all ] 
     598         ->search_related('Medias', {}, 
     599             { 
     600                 select => [ qw() ], 
     601                 prefetch => { 
     602                     Arch => { Release => 'Distribution' } 
     603                 } 
     604             } 
     605         )->all ] 
     606 
    600607} 
    601608 
  • web/lib/Sophie/Controller/Search.pm

    r351 r460  
    105105            ->search_related('MediasPaths') 
    106106            ->search_related('Paths') 
    107             ->search_related('Rpmfiles'); 
     107            ->search_related('Rpmfile'); 
    108108        } else { 
    109109            return; 
     
    197197            { depname => $depname }, 
    198198            ($depsense 
    199                 ? ({-nest => \[ 
     199                ? (\[ 
    200200                    'rpmdepmatch(flags, me.evr, rpmsenseflag(?), ?)', 
    201201                    [ plain_text => $depsense], 
    202202                    [ plain_text => $depevr ] 
    203                 ]}) 
     203                ]) 
    204204            : ()), 
    205205            ($searchspec->{pkgid} 
  • web/lib/Sophie/Controller/Search/Rpm.pm

    r351 r460  
    227227    $c->stash->{rs} = $c->model('Base')->resultset('Rpms')->search( 
    228228        { 
    229             -nest => \[ 
    230                     "to_tsvector('english', description) @@ to_tsquery(?)", 
    231                     [ plain_text => $tsquery], 
    232                 ], 
     229            -and => [ 
     230                \[ "to_tsvector('english', description) @@ to_tsquery(?)", 
     231                    [ plain_text => $tsquery ] ], 
    233232                (exists($searchspec->{src}) 
    234233                    ? (issrc => $searchspec->{src} ? 1 : 0) 
     
    237236                    ? (pkgid => { IN => $distrs->get_column('pkgid')->as_query, },) 
    238237                    : ()), 
     238            ] 
    239239        }, 
    240240        { 
    241241            select => [  
    242                 "ts_rank_cd(to_tsvector('english', description),to_tsquery(?)) as rank", 
    243                 'pkgid' 
     242                \[ "ts_rank_cd(to_tsvector('english', description),to_tsquery(?)) as rank" ], 
     243               'pkgid' 
    244244            ], 
    245245            bind => [ $tsquery ],  
  • web/lib/Sophie/Controller/Search/Rpms.pm

    r449 r460  
    3535        ->search_related('MediasPaths') 
    3636        ->search_related('Paths') 
    37         ->search_related('Rpmfiles', 
     37        ->search_related('Rpmfile', 
    3838            { 
    3939                pkgid => { 
     
    5656                as => [qw(filename pkgid distribution dist release arch media) ], 
    5757                rows => $searchspec->{rows} || 30000, 
    58                 order_by => [ 'Rpmfiles.added desc' ], 
     58                order_by => [ 'Rpmfile.added desc' ], 
    5959            }, 
    6060        ); 
     
    147147 
    148148    $c->stash->{rs} = $c->forward('rpms_rs')->search( 
    149         \[ "Rpmfiles.added > '1970-01-01'::date + ?::interval", 
     149        \[ "Rpmfile.added > '1970-01-01'::date + ?::interval", 
    150150            [ plain_text => "$date seconds" ], 
    151151        ] 
  • web/lib/Sophie/Controller/Sources.pm

    r101 r460  
    5656        } 
    5757         
    58         $c->model('Base::Rpms') 
     58        $c->model('Base::SrcFiles') 
    5959        ->search( 
    6060            {  
     
    6666            }, 
    6767            { 
    68                 select => [ 'evr' ], 
    69             } 
    70         )->search_related('SrcFiles')->search( 
    71             { 
    72                 #has_content => 1, 
    73             }, 
    74             { 
    75                     select => [ 'basename', 'evr', 'SrcFiles.pkgid' ], 
    76                     group_by => [ 'basename', 'evr', 'SrcFiles.pkgid' ], 
     68                    select => [ 'basename', 'Rpms.evr', 'pkgid' ], 
     69                    group_by => [ 'basename', 'evr', 'me.pkgid' ], 
    7770                    order_by => [ 'evr using >>', 'basename' ], 
     71                    join => [ 'Rpms' ], 
    7872            } 
    7973        )->all ]; 
  • web/t/controller_Rpms.t

    r229 r460  
    1616ok( request("/rpms/$pkgid/changelog")->is_success, 'Request a pkgid/changelog should succeed' ); 
    1717ok( request("/rpms/$pkgid/location")->is_success, 'Request a pkgid/location should succeed' ); 
     18ok( request("/rpms/$pkgid/scriptlet")->is_success, 'Request a pkgid/scriptlet should succeed' ); 
    1819 
    1920ok( xmlrequest_ok('rpms.basicinfo', $pkgid), 'XMLRPC rpms.basicinfo' ); 
Note: See TracChangeset for help on using the changeset viewer.