[rt-users] Solution to displaying tickets requested by user's groups

Joby Walker joby at u.washington.edu
Wed Oct 19 15:43:43 EDT 2005


You should add this to the wiki (wiki.bestpractical.com) under
Contributions.

Joby Walker
ITI SSG, University of Washington


Weqaar Janjua wrote:
> I have the following code in file
> '/Elements/GrpRequests'. It displays the ticket's
> requested by Logged-In user's groups. It displays all
> the tickets rqeuested by all the groups the user has
> membership to.
> 
> #-------------START------------------------------
> % my $j = 0;
> 
> % while ( $j < @ids ) { 
> 
> <&|/Elements/TitleBox,
>         title => ("Group $idsName[$j] ticket
> requests"),
> 	title_href => "Search/Results.html".$QStrings[$j] &>
> <& /Elements/TicketList, 
>         Format => "'<a
> href=\"$RT::WebPath/Ticket/Display.html?id=__id__\">__id__</a>/TITLE:#',
> 
> 	'<a
> href=\"$RT::WebPath/Ticket/Display.html?id=__id__\">__Subject__</a>/TITLE:Subject',
> 
> 	QueueName, ExtendedStatus, CreatedRelative, ' ",
>         Query => $Queries[$j],
>         OrderBy => 'Created',
>         Order => 'DESC',
>         ShowNavigation => 0,
>         Rows => $rows
>         &>
> </&>
> 
> <BR>
> 
> % $j = $j + 1;	
> 
> % }
> 
> <%init>
> my $Groups = RT::Groups->new($session{'CurrentUser'});
> $Groups->LimitToUserDefinedGroups();
> $Groups->WithMember(PrincipalId =>
> $session{'CurrentUser'}->Id);
> 
> my $rows = 10;
> 
> my $Queues = RT::Queues->new($session{'CurrentUser'});
> $Queues->UnLimit();
> 
> my $QueuesListing = '';
> 
> my @ids;
> my @idsName;
> my $Group;
> 
> while ( $Group = $Groups->Next ) {
> 		push @ids, $Group->Id;
> 		push @idsName, $Group->Name;
> }
> 
> while (my $queue = $Queues->Next) {
>    next unless
> ($queue->CurrentUserHasRight('ShowTicket'));
>    if ($QueuesListing ne '') {
>      $QueuesListing .= " OR Queue = ";
>    } else {
>      $QueuesListing = "Queue = ";
>    }
>    $QueuesListing .= "'".$queue->Name."'";
> }
> 
> my @Queries;
> my @QStrings;
> my $i = 0;
> my $size = @ids;
> 
> while ( $i < $size) {
> my $Query = "
>    Requestor != '".$session{'CurrentUser'}->Id."'
>    AND ( Status = 'new' OR Status = 'open' OR Status =
> 'stalled' )
>    AND ( RequestorGroup = '$ids[$i]' )
>    AND ( " . $QueuesListing . " )
>    ";
> 	push @Queries, $Query;
> 
> my $QueryString = '?' .
> $m->comp('/Elements/QueryString',
>              Query => $Query,
>              Order => 'DESC',
>              OrderBy => 'Priority') if ($Query);
> 
> 	push @QStrings, $QueryString;
> 	
> 	$i = $i + 1;
> }
> 
> </%init>
> 
> #-------------END------------------------------
> 
> 
> 
> 	
> 		
> __________________________________ 
> Yahoo! Mail - PC Magazine Editors' Choice 2005 
> http://mail.yahoo.com
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
> 
> Be sure to check out the RT Wiki at http://wiki.bestpractical.com
> 
> Buy your copy of our new book, RT Essentials, today! 
> 
> Download a free sample chapter from http://rtbook.bestpractical.com



More information about the rt-users mailing list