[Rt-commit] rt branch, 4.0/correct-createtickets-docs, created. rt-4.0.8-196-g70520aa

Jim Brandt jbrandt at bestpractical.com
Tue Dec 4 10:50:30 EST 2012


The branch, 4.0/correct-createtickets-docs has been created
        at  70520aaf4645d35de05ebc89c6235022508e07b3 (commit)

- Log -----------------------------------------------------------------
commit a68c2d28b3d416be84146904c661de8ab2565858
Author: Jim Brandt <jbrandt at bestpractical.com>
Date:   Tue Dec 4 10:36:43 2012 -0500

    Change our to my in create ticket template sample.
    
    Update the create ticket template example to use 'our' and
    explain the scoping for variables in perl blocks.

diff --git a/lib/RT/Action/CreateTickets.pm b/lib/RT/Action/CreateTickets.pm
index 29fef5e..fff875e 100644
--- a/lib/RT/Action/CreateTickets.pm
+++ b/lib/RT/Action/CreateTickets.pm
@@ -145,10 +145,10 @@ A convoluted example
 	IncludeSuperusers => 0,
 	IncludeSubgroupMembers => 0,
     );
- 
-     my @admins;
+
+     our @admins;
      while (my $admin = $adminccs->Next) {
-         push (@admins, $admin->EmailAddress); 
+         push (@admins, $admin->EmailAddress);
      }
  }
  Queue: ___Approvals
@@ -176,7 +176,12 @@ A convoluted example
  
 =head2 Acceptable fields
 
-A complete list of acceptable fields for this beastie:
+As shown above, you can include a block with perl code to set up some
+values for the new tickets. If you want to access a variable in the
+template section after the block, you must scope it with C<our> rather
+than C<my>. Just as with other RT templates, you can also include
+perl code in the template sections using C<{}>.
+
 
 
     *  Queue           => Name or id# of a queue

commit c54842db16b6d3112c15cf3326e684d4e55fcf6c
Author: Jim Brandt <jbrandt at bestpractical.com>
Date:   Tue Dec 4 10:43:49 2012 -0500

    Clarify documentation for Content line in create ticket templates
    
    Clarify description of param/value syntax in templates,
    specifically that values must come right after the param even
    for the Content: param. Fix example to follow this rule.

diff --git a/lib/RT/Action/CreateTickets.pm b/lib/RT/Action/CreateTickets.pm
index fff875e..eb2b4c1 100644
--- a/lib/RT/Action/CreateTickets.pm
+++ b/lib/RT/Action/CreateTickets.pm
@@ -98,19 +98,24 @@ to create. The basic format is as follows:
  Content: Blah
  ENDOFCONTENT
 
-
-Each ===Create-Ticket: section is evaluated as its own 
-Text::Template object, which means that you can embed snippets
-of perl inside the Text::Template using {} delimiters, but that 
-such sections absolutely can not span a ===Create-Ticket boundary.
-
-After each ticket is created, it's stuffed into a hash called %Tickets
-so as to be available during the creation of other tickets during the
-same ScripAction, using the key 'create-identifier', where
-C<identifier> is the id you put after C<===Create-Ticket:>.  The hash
+As shown, you can put one or more C<===Create-Ticket:> sections in
+a template. Each C<===Create-Ticket:> section is evaluated as its own
+L<Text::Template> object, which means that you can embed snippets
+of perl inside the L<Text::Template> using C<{}> delimiters, but that
+such sections absolutely can not span a C<===Create-Ticket> boundary.
+
+Note that each C<Value> must come right after the C<Param> on the same
+line. The C<Content:> param can extend over multiple lines, but the text
+of the first line must start right after C<Content:>. Don't try to start
+your C<Content:> section with a newline.
+
+After each ticket is created, it's stuffed into a hash called C<%Tickets>
+making it available during the creation of other tickets during the
+same ScripAction. The hash key for each ticket is C<create-[identifier]>,
+where C<identifier> is the value you put after C<===Create-Ticket:>.  The hash
 is prepopulated with the ticket which triggered the ScripAction as
-$Tickets{'TOP'}; you can also access that ticket using the shorthand
-TOP.
+C<$Tickets{'TOP'}>. You can also access that ticket using the shorthand
+C<TOP>.
 
 A simple example:
 
@@ -170,8 +175,7 @@ A convoluted example
  Refers-To: {$Tickets{"create-approval"}->Id}
  Queue: ___Approvals
  Content-Type: text/plain
- Content: 
- Your approval is requred for this ticket, too.
+ Content: Your approval is requred for this ticket, too.
  ENDOFCONTENT
  
 =head2 Acceptable fields

commit 70520aaf4645d35de05ebc89c6235022508e07b3
Author: Jim Brandt <jbrandt at bestpractical.com>
Date:   Tue Dec 4 10:47:08 2012 -0500

    Clean up create tickets documentation

diff --git a/lib/RT/Action/CreateTickets.pm b/lib/RT/Action/CreateTickets.pm
index eb2b4c1..010450a 100644
--- a/lib/RT/Action/CreateTickets.pm
+++ b/lib/RT/Action/CreateTickets.pm
@@ -56,11 +56,10 @@ use MIME::Entity;
 
 =head1 NAME
 
- RT::Action::CreateTickets
+RT::Action::CreateTickets
 
 Create one or more tickets according to an externally supplied template.
 
-
 =head1 SYNOPSIS
 
  ===Create-Ticket codereview
@@ -72,18 +71,14 @@ Create one or more tickets according to an externally supplied template.
 
 =head1 DESCRIPTION
 
+The CreateTickets ScripAction allows you to create automated workflows in RT,
+creating new tickets in response to actions and conditions from other
+tickets.
 
-Using the "CreateTickets" ScripAction and mandatory dependencies, RT now has 
-the ability to model complex workflow. When a ticket is created in a queue
-that has a "CreateTickets" scripaction, that ScripAction parses its "Template"
-
-
-
-=head2 FORMAT
-
-CreateTickets uses the template as a template for an ordered set of tickets 
-to create. The basic format is as follows:
+=head2 Format
 
+CreateTickets uses the RT template configured in the scrip as a template
+for an ordered set of tickets to create. The basic format is as follows:
 
  ===Create-Ticket: identifier
  Param: Value
@@ -126,22 +121,20 @@ A simple example:
  so they can finish their work
  ENDOFCONTENT
 
-
-
-A convoluted example
+A convoluted example:
 
  ===Create-Ticket: approval
  { # Find out who the administrators of the group called "HR" 
    # of which the creator of this ticket is a member
     my $name = "HR";
-   
+
     my $groups = RT::Groups->new(RT->SystemUser);
     $groups->LimitToUserDefinedGroups();
     $groups->Limit(FIELD => "Name", OPERATOR => "=", VALUE => "$name");
     $groups->WithMember($TransactionObj->CreatorObj->Id);
- 
+
     my $groupid = $groups->First->Id;
- 
+
     my $adminccs = RT::Users->new(RT->SystemUser);
     $adminccs->WhoHaveRight(
 	Right => "AdminGroup",
@@ -177,8 +170,6 @@ A convoluted example
  Content-Type: text/plain
  Content: Your approval is requred for this ticket, too.
  ENDOFCONTENT
- 
-=head2 Acceptable fields
 
 As shown above, you can include a block with perl code to set up some
 values for the new tickets. If you want to access a variable in the
@@ -186,43 +177,43 @@ template section after the block, you must scope it with C<our> rather
 than C<my>. Just as with other RT templates, you can also include
 perl code in the template sections using C<{}>.
 
+=head2 Acceptable Fields
+
+A complete list of acceptable fields:
 
 
     *  Queue           => Name or id# of a queue
        Subject         => A text string
-     ! Status          => A valid status. defaults to 'new'
+     ! Status          => A valid status. Defaults to 'new'
        Due             => Dates can be specified in seconds since the epoch
                           to be handled literally or in a semi-free textual
                           format which RT will attempt to parse.
-                        
-                          
-                          
-       Starts          => 
-       Started         => 
-       Resolved        => 
-       Owner           => Username or id of an RT user who can and should own 
+       Starts          =>
+       Started         =>
+       Resolved        =>
+       Owner           => Username or id of an RT user who can and should own
                           this ticket; forces the owner if necessary
    +   Requestor       => Email address
-   +   Cc              => Email address 
-   +   AdminCc         => Email address 
+   +   Cc              => Email address
+   +   AdminCc         => Email address
    +   RequestorGroup  => Group name
    +   CcGroup         => Group name
    +   AdminCcGroup    => Group name
-       TimeWorked      => 
-       TimeEstimated   => 
-       TimeLeft        => 
-       InitialPriority => 
-       FinalPriority   => 
-       Type            => 
-    +! DependsOn       => 
+       TimeWorked      =>
+       TimeEstimated   =>
+       TimeLeft        =>
+       InitialPriority =>
+       FinalPriority   =>
+       Type            =>
+    +! DependsOn       =>
     +! DependedOnBy    =>
     +! RefersTo        =>
-    +! ReferredToBy    => 
+    +! ReferredToBy    =>
     +! Members         =>
-    +! MemberOf        => 
-       Content         => content. Can extend to multiple lines. Everything
+    +! MemberOf        =>
+       Content         => Content. Can extend to multiple lines. Everything
                           within a template after a Content: header is treated
-                          as content until we hit a line containing only 
+                          as content until we hit a line containing only
                           ENDOFCONTENT
        ContentType     => the content-type of the Content field.  Defaults to
                           'text/plain'
@@ -239,26 +230,17 @@ Fields marked with an * are required.
 Fields marked with a + may have multiple values, simply
 by repeating the fieldname on a new line with an additional value.
 
-Fields marked with a ! are postponed to be processed after all
-tickets in the same actions are created.  Except for 'Status', those
-field can also take a ticket name within the same action (i.e.
-the identifiers after ===Create-Ticket), instead of raw Ticket ID
+Fields marked with a ! have processing postponed until after all
+tickets in the same actions are created.  Except for C<Status>, those
+fields can also take a ticket name within the same action (i.e.
+the identifiers after C<===Create-Ticket:>), instead of raw ticket ID
 numbers.
 
 When parsed, field names are converted to lowercase and have -s stripped.
-Refers-To, RefersTo, refersto, refers-to and r-e-f-er-s-tO will all 
+Refers-To, RefersTo, refersto, refers-to and r-e-f-er-s-tO will all
 be treated as the same thing.
 
-
-
-
-=head1 AUTHOR
-
-Jesse Vincent <jesse at bestpractical.com> 
-
-=head1 SEE ALSO
-
-perl(1).
+=head1 METHODS
 
 =cut
 
@@ -548,10 +530,10 @@ sub UpdateByTemplate {
 
 =head2 Parse  TEMPLATE_CONTENT, DEFAULT_QUEUE, DEFAULT_REQEUESTOR ACTIVE
 
-Parse a template from TEMPLATE_CONTENT
+Parse a template from C<TEMPLATE_CONTENT>.
 
-If $active is set to true, then we'll use Text::Template to parse the templates,
-allowing you to embed active perl in your templates.
+If C<$active> is set to true, then we'll use L<Text::Template> to parse the
+templates, allowing you to embed active perl in your templates.
 
 =cut
 
@@ -585,9 +567,9 @@ sub Parse {
 
 Parses mulitline templates. Things like:
 
- ===Create-Ticket ... 
+ ===Create-Ticket ...
 
-Takes the same arguments as Parse
+Takes the same arguments as C<Parse>.
 
 =cut
 
@@ -842,9 +824,10 @@ sub ParseLines {
 }
 
 
-=head2 _ParseXSVTemplate 
+=head2 _ParseXSVTemplate
 
-Parses a tab or comma delimited template. Should only ever be called by Parse
+Parses a tab or comma delimited template. Should only ever be called by
+C<Parse>.
 
 =cut
 
@@ -1285,5 +1268,15 @@ sub PostProcess {
 
 RT::Base->_ImportOverlays();
 
+=head1 AUTHOR
+
+Jesse Vincent <jesse at bestpractical.com>
+
+=head1 SEE ALSO
+
+perl(1).
+
+=cut
+
 1;
 

-----------------------------------------------------------------------


More information about the Rt-commit mailing list