[Rt-commit] r4867 - in rt/branches/3.7-EXPERIMENTAL: .
alexmv at bestpractical.com
alexmv at bestpractical.com
Wed Mar 29 13:39:31 EST 2006
Author: alexmv
Date: Wed Mar 29 13:39:29 2006
New Revision: 4867
Modified:
rt/branches/3.7-EXPERIMENTAL/ (props changed)
rt/branches/3.7-EXPERIMENTAL/sbin/rt-setup-database.in
Log:
r11940 at zoq-fot-pik: chmrr | 2006-03-29 13:39:12 -0500
* Allow CFs on multiple queues
Modified: rt/branches/3.7-EXPERIMENTAL/sbin/rt-setup-database.in
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/sbin/rt-setup-database.in (original)
+++ rt/branches/3.7-EXPERIMENTAL/sbin/rt-setup-database.in Wed Mar 29 13:39:29 2006
@@ -490,29 +490,38 @@
my $new_entry = new RT::CustomField($CurrentUser);
my $values = $item->{'Values'};
delete $item->{'Values'};
- my $q = $item->{'Queue'};
- my $q_obj = RT::Queue->new($CurrentUser);
- $q_obj->Load($q);
- if ( $q_obj->Id ) {
- $item->{'Queue'} = $q_obj->Id;
- }
- elsif ( $q == 0 ) {
- $item->{'Queue'} = 0;
- }
- else {
- print "(Error: Could not find queue " . $q . ")\n"
- unless ( $q_obj->Id );
- next;
+
+ my @queues;
+ if ($item->{'Queue'}) {
+ my $queue_ref = delete $item->{'Queue'};
+ @queues = ref $queue_ref ? @{$queue_ref} : ($queue_ref);
+ $item->{'LookupType'} = 'RT::Queue-RT::Ticket';
}
+
my ( $return, $msg ) = $new_entry->Create(%$item);
+ print "(Error: $msg)\n" and next unless ($return);
foreach my $value ( @{$values} ) {
- my ( $eval, $emsg ) = $new_entry->AddValue(%$value);
- print "(Error: $emsg)\n" unless ($eval);
+ ( $return, $msg ) = $new_entry->AddValue(%$value);
+ print "(Error: $msg)\n" unless ($return);
}
- print "(Error: $msg)\n" unless ($return);
- print $return. ".";
+ for my $q (@queues) {
+ my $q_obj = RT::Queue->new($CurrentUser);
+ $q_obj->Load($q);
+ unless ( $q_obj->Id ) {
+ print "(Error: Could not find queue " . $q . ")\n";
+ next;
+ }
+ my $OCF = RT::ObjectCustomField->new($CurrentUser);
+ ( $return, $msg ) = $OCF->Create(
+ CustomField => $new_entry->Id,
+ ObjectId => $q_obj->Id,
+ );
+ print "(Error: $msg)\n" unless ($return) and $OCF->Id;
+ }
+
+ print $new_entry->Id. ".";
}
print "done.\n";
@@ -526,7 +535,9 @@
# Global rights or Queue rights?
if ($item->{'CF'}) {
$object = RT::CustomField->new($CurrentUser);
- $object->LoadByName( Name => $item->{'CF'}, Queue => $item->{'Queue'} );
+ my @columns = ( Name => $item->{'CF'} );
+ push @columns, Queue => $item->{'Queue'} if $item->{'Queue'} and not ref $item->{'Queue'};
+ $object->LoadByName( @columns );
} elsif ($item->{'Queue'}) {
$object = RT::Queue->new($CurrentUser);
$object->Load( $item->{'Queue'} );
@@ -534,6 +545,8 @@
$object = $RT::System;
}
+ print "Couldn't load object" and next unless $object and $object->Id;
+
# Group rights or user rights?
if ($item->{'GroupDomain'}) {
$princ = RT::Group->new($CurrentUser);
More information about the Rt-commit
mailing list