[Rt-commit] r18640 - rt/3.999/branches/on-tisql/lib/RT/Model
ruz at bestpractical.com
ruz at bestpractical.com
Tue Mar 3 14:21:15 EST 2009
Author: ruz
Date: Tue Mar 3 14:21:14 2009
New Revision: 18640
Modified:
rt/3.999/branches/on-tisql/lib/RT/Model/Ticket.pm
rt/3.999/branches/on-tisql/lib/RT/Model/User.pm
Log:
* switch to tisql expressions based on callbacks to add
'recursive' argument for watchers, groups_watching and
member_of
Modified: rt/3.999/branches/on-tisql/lib/RT/Model/Ticket.pm
==============================================================================
--- rt/3.999/branches/on-tisql/lib/RT/Model/Ticket.pm (original)
+++ rt/3.999/branches/on-tisql/lib/RT/Model/Ticket.pm Tue Mar 3 14:21:14 2009
@@ -182,23 +182,29 @@
references RT::Model::GroupCollection
by tisql => 'role_groups.instance = .id'
.' AND role_groups.domain = "RT::Model::Ticket-Role"'
- .' AND role_groups.type = %1';
+ .' AND role_groups.type = %type';
column watchers =>
references RT::Model::UserCollection
- by tisql => 'watchers.id = .role_groups{%1}.gm.member_id';
-
- column recursive_watchers =>
- references RT::Model::UserCollection
- by tisql => 'recursive_watchers.id = .role_groups{%1}.cgm.member_id';
+ by tisql => sub {
+ my %args = (@_);
+ my $phs = $args{'placeholders'};
+ return query =>
+ (!exists $phs->{'recursive'} || exists $phs->{'recursive'})
+ ? 'watchers.id = .role_groups{type => %role}.cgm.member_id'
+ : 'watchers.id = .role_groups{type => %role}.gm.member_id';
+ };
column groups_watching =>
references RT::Model::GroupCollection
- by tisql => 'groups_watching.id = .role_groups{%1}.gm.member_id';
-
- column recursive_groups_watching =>
- references RT::Model::GroupCollection
- by tisql => 'recursive_groups_watching.id = .role_groups{%1}.cgm.member_id';
+ by tisql => sub {
+ my %args = (@_);
+ my $phs = $args{'placeholders'};
+ return query =>
+ (!exists $phs->{'recursive'} || exists $phs->{'recursive'})
+ ? 'groups_watching.id = .role_groups{type => %role}.cgm.member_id'
+ ? 'groups_watching.id = .role_groups{type => %role}.gm.member_id';
+ };
column links =>
references RT::Model::LinkCollection
Modified: rt/3.999/branches/on-tisql/lib/RT/Model/User.pm
==============================================================================
--- rt/3.999/branches/on-tisql/lib/RT/Model/User.pm (original)
+++ rt/3.999/branches/on-tisql/lib/RT/Model/User.pm Tue Mar 3 14:21:14 2009
@@ -125,6 +125,17 @@
column timezone => max_length is 50, type is 'varchar(50)', default is '';
column pgp_key => type is 'text';
+ column member_of =>
+ references RT::Model::Group
+ by tisql => sub {
+ my %args = (@_);
+ my $phs = $args{'placeholders'};
+ return query =>
+ (!exists $phs->{'recursive'} || exists $phs->{'recursive'})
+ ? 'member_of.cgm.user_id = .id'
+ : 'member_of.gm.user_id = .id';
+ };
+
};
use Jifty::Plugin::User::Mixin::Model::User; # name, email, email_confirmed
More information about the Rt-commit
mailing list