[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