[Rt-commit] r19111 - in rt/3.999/branches/FTS/lib/RT: Model
ruz at bestpractical.com
ruz at bestpractical.com
Thu Apr 9 10:12:37 EDT 2009
Author: ruz
Date: Thu Apr 9 10:12:35 2009
New Revision: 19111
Modified:
rt/3.999/branches/FTS/lib/RT/Model/AttachmentCollection.pm
rt/3.999/branches/FTS/lib/RT/ScripAction/SendEmail.pm
Log:
* it's very unlikly that attachments will have own transactions ever,
so make join_transactions method (every collection has it now) join
transactions these attachments belong to
Modified: rt/3.999/branches/FTS/lib/RT/Model/AttachmentCollection.pm
==============================================================================
--- rt/3.999/branches/FTS/lib/RT/Model/AttachmentCollection.pm (original)
+++ rt/3.999/branches/FTS/lib/RT/Model/AttachmentCollection.pm Thu Apr 9 10:12:35 2009
@@ -85,35 +85,6 @@
return $self->SUPER::_init(@_);
}
-sub clean_slate {
- my $self = shift;
- delete $self->{_sql_transaction_alias};
- return $self->SUPER::clean_slate(@_);
-}
-
-=head2 transaction_alias
-
-Returns alias for transactions table with applied join condition.
-Always return the same alias, so if you want to build some complex
-or recursive joining then you have to create new alias youself.
-
-=cut
-
-sub transaction_alias {
- my $self = shift;
- return $self->{'_sql_transaction_alias'}
- if $self->{'_sql_transaction_alias'};
-
- my $res = $self->new_alias('Transactions');
- $self->limit(
- entry_aggregator => 'AND',
- column => 'transaction_id',
- value => $res . '.id',
- quote_value => 0,
- );
- return $self->{'_sql_transaction_alias'} = $res;
-}
-
=head2 content_type (value => 'text/plain', entry_aggregator => 'OR', operator => '=' )
Limit result set to attachments of content_type 'TYPE'...
@@ -185,7 +156,7 @@
my $self = shift;
my $tid = shift;
- my $transactions = $self->transaction_alias;
+ my $transactions = $self->join_transactions;
$self->limit(
entry_aggregator => 'AND',
alias => $transactions,
@@ -234,5 +205,32 @@
return $self->next;
}
+=head2 join_transactions
+
+Returns alias for transactions table with applied join condition.
+Always return the same alias, so if you want to build some complex
+or recursive joining then you have to create new alias youself.
+
+=cut
+
+sub join_transactions {
+ my $self = shift;
+ my %args = ( new => 0, @_ );
+
+ return $self->{'_sql_aliases'}{'transactions'}
+ if !$args{'new'} && $self->{'_sql_aliases'}{'transactions'};
+
+ my $alias = $self->join(
+ alias1 => 'main',
+ column1 => 'transaction_id',
+ table2 => RT::Model::TransactionCollection->new,
+ column2 => 'id',
+ );
+ $self->{'_sql_aliases'}{'transactions'} = $alias
+ unless $args{'new'};
+
+ return $alias;
+}
+
1;
Modified: rt/3.999/branches/FTS/lib/RT/ScripAction/SendEmail.pm
==============================================================================
--- rt/3.999/branches/FTS/lib/RT/ScripAction/SendEmail.pm (original)
+++ rt/3.999/branches/FTS/lib/RT/ScripAction/SendEmail.pm Thu Apr 9 10:12:35 2009
@@ -480,7 +480,7 @@
# XXX: we need a current user here, but who is current user?
my $attachs = RT::Model::AttachmentCollection->new( current_user => RT->system_user );
- my $txn_alias = $attachs->transaction_alias;
+ my $txn_alias = $attachs->join_transactions;
$attachs->limit(
alias => $txn_alias,
column => 'type',
More information about the Rt-commit
mailing list