Changeset 2234


Ignore:
Timestamp:
03/08/19 14:31:40 (5 years ago)
Author:
nanardon
Message:

Allow to use functions in queryformat

Location:
trunk/LATMOS-Accounts
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases.pm

    r2233 r2234  
    12511251 
    12521252sub QFunc { 
    1253     my ($self, $sub, @args) = @_; 
     1253    my ($self, $sub, $args) = @_; 
     1254 
     1255    $args ||= ''; 
     1256    my @args = split(',', $args); 
    12541257 
    12551258    for ($sub) { 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Objects.pm

    r2227 r2234  
    320320            my $res = ''; 
    321321 
    322             if (!$op) { 
     322            if ($op) { 
     323                if ($op eq '?') { 
     324                    $res = $val ? $3 : ''; 
     325                } elsif ($op eq '?!') { 
     326                    $res = $val ? '' : $3; 
     327                } 
     328                if ($res =~ /^(\w+)\((.*)\)$/) { 
     329                    $res = $self->base->QFunc($1, $2); 
     330                } 
     331            } else { 
    323332                for ($modifier) { 
    324333                    /upper/ and do { 
     
    332341                    $res = sprintf('%' . ($3 || 's'), ref $val ? join(',', @$val) : (defined($val) ? $val : '')) 
    333342                } 
    334             } elsif ($op eq '?') { 
    335                 $res = $val ? $3 : ''; 
    336             } elsif ($op eq '?!') { 
    337                 $res = $val ? '' : $3; 
    338343            } 
    339344            $res 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql.pm

    r2233 r2234  
    11841184} 
    11851185 
    1186 sub QFunc { 
    1187     my ($self, $sub, @args) = @_; 
    1188  
    1189     $self->SUPER::QFunc($sub, @args); 
    1190 } 
    1191  
    1192  
    119311861; 
    11941187 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm

    r2233 r2234  
    10131013 
    10141014        if (my ($func, $args) = $val =~ /^(\w+)\((.*)\)$/) { 
    1015             $args ||= ''; 
    1016             my @args = split(',', $args); 
    1017  
    1018             $val = $base->QFunc( $func, @args ); 
     1015            $val = $base->QFunc( $func, $args ); 
    10191016        } 
    10201017 
  • trunk/LATMOS-Accounts/t/10_bases.t

    r2232 r2234  
    1818ok(eq_set( 
    1919    [ $dummyb->list_canonical_fields('user') ], 
    20     [qw(username homeDirectory) ], 
     20    [qw( username homeDirectory shell gecos uidNumber gidNumber ) ], 
    2121), "Can get canonicals fields"); 
    2222is( $dummyb->attribute('user', 'homeDirectory')->iname, "home", "can call get_fields_name"); 
Note: See TracChangeset for help on using the changeset viewer.