[Bps-public-commit] RT-Extension-MandatoryOnTransition branch, master, updated. 0.03-3-g02e2ad2

Thomas Sibley trs at bestpractical.com
Tue Mar 26 17:45:50 EDT 2013


The branch, master has been updated
       via  02e2ad23dd48527bd918bb1104e254a8569160a0 (commit)
       via  ff4edfd62dfff811201ee637704ab7617b864b9f (commit)
      from  d2bb36fecf634556b322fffcc477c765b4443165 (commit)

Summary of changes:
 .gitignore                                |   1 -
 META.yml                                  |   2 +-
 README                                    | 213 ++++++++++++++++++++++++++++++
 lib/RT/Extension/MandatoryOnTransition.pm |   2 +-
 4 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 README

- Log -----------------------------------------------------------------
commit ff4edfd62dfff811201ee637704ab7617b864b9f
Author: Thomas Sibley <trs at bestpractical.com>
Date:   Tue Mar 26 14:44:40 2013 -0700

    Add the README to git for github

diff --git a/.gitignore b/.gitignore
index 574f57b..1105d1f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,7 +7,6 @@ pm_to_blib*
 cover_db
 pod2htm*.tmp
 /RT-Extension-MandatoryOnTransition*
-README
 *.bak
 *.swp
 /MYMETA.*
diff --git a/README b/README
new file mode 100644
index 0000000..f3234ec
--- /dev/null
+++ b/README
@@ -0,0 +1,213 @@
+NAME
+    RT-Extension-MandatoryOnTransition - Require core fields and ticket
+    custom fields on status transitions
+
+DESCRIPTION
+    This RT extension enforces that certain fields have values before
+    tickets are explicitly moved to or from specified statuses. If you list
+    custom fields which must have a value before a ticket is resolved, those
+    custom fields will automatically show up on the "Resolve" page. The
+    reply/comment won't be allowed until a value is provided.
+
+    See the configuration example under "INSTALLATION".
+
+  Supported fields
+    This extension only enforces mandatory-ness on defined status
+    transitions.
+
+   Basics
+    Currently the following are supported:
+
+    Content
+        Requires an update message (reply/comment text) before the
+        transition.
+
+    TimeWorked
+        Requires the ticket has a non-zero amount of Time Worked recorded
+        already or that time worked will be recorded with the current
+        reply/comment in the Worked field on the update page.
+
+    TimeTaken
+        Requires that the Worked field on the update page is non-zero.
+
+    A larger set of basic fields may be supported in future releases. If
+    you'd like to see additional fields added, please email your request to
+    the bug address at the bottom of this documentation.
+
+   Custom fields
+    Ticket custom fields of all types are supported.
+
+CAVEATS
+  Custom field validation (*Input must match [Mandatory]*)
+    The custom fields enforced by this extension are validated by the
+    standard RT rules. If you've set Validation patterns for your custom
+    fields, those will be checked before mandatory-ness is checked. Setting
+    a CFs Validation to "(?#Mandatory)." will not magically make it enforced
+    by this extension.
+
+  Actions menu
+    This extension does not affect "quick actions" (those without an update
+    type) configured in your lifecycle (and appearing in the ticket Actions
+    menu). If you're requiring fields on resolve, for example, and don't
+    want folks to have a "Quick Resolve" button that skips the required
+    fields, adjust your lifecycle config to provide an update type (i.e make
+    it a non-quick action). Quick actions may be supported in a future
+    release.
+
+  Not all pages where you can change status are supported
+    The ticket Basics page, for example. See "TODO" for others.
+
+INSTALLATION
+    perl Makefile.PL
+    make
+    make install
+        May need root permissions
+
+    patch -p1 < 4.0.8-additional-mobile-callbacks-plus-style.diff
+        Run the above in your /opt/rt4 directory to patch RT if on version
+        4.0.8 or older.
+
+    Enable and configure this extension
+        Add this line to </opt/rt4/etc/RT_SiteConfig.pm>:
+
+            Set(@Plugins, qw(RT::Extension::MandatoryOnTransition));
+
+        or add "RT::Extension::MandatoryOnTransition" to your existing
+        @Plugins line.
+
+        Then configure which fields should be mandatory on certain status
+        changes (either globally or in a specific queue) using the
+        %MandatoryOnTransition config option. This option takes the generic
+        form of:
+
+            Set( %MandatoryOnTransition,
+                'QueueName' => {
+                    'from -> to' => [ 'BasicField', 'CF.MyField', ],
+                },
+            );
+
+        "from" and "to" are expected to be valid status names. "from" may
+        also be "*" which will apply to any status and also tickets about to
+        be created with status "to".
+
+        The fallback for queues without specific rules is specified with '*'
+        where the queue name would normally be.
+
+        Below is an example which requires 1) time worked and filling in a
+        custom field named Resolution before resolving tickets in the
+        Helpdesk queue and 2) a Category selection before resolving tickets
+        in every other queue.
+
+            Set( %MandatoryOnTransition,
+                Helpdesk => {
+                    '* -> resolved' => ['TimeWorked', 'CF.Resolution'],
+                },
+                '*' => {
+                    '* -> resolved' => 'CF.Category',
+                },
+            );
+
+        The transition syntax is similar to that found in RT's Lifecycles.
+        See "perldoc /opt/rt4/etc/RT_Config.pm".
+
+    Clear your mason cache
+            rm -rf /opt/rt4/var/mason_data/obj
+
+    Restart your webserver
+
+IMPLEMENTATION DETAILS
+    If you're just using this module on your own RT instance, you should
+    stop reading now. You don't need to know about the implementation
+    details unless you're writing a patch against this extension.
+
+  Package variables
+    @CORE_SUPPORTED
+        The core (basic) fields supported by the extension. Anything else
+        configured but not in this list is stripped.
+
+    @CORE_TICKET
+        The core (basic) fields which should be called as methods on ticket
+        objects to check for current values.
+
+    %CORE_FOR_UPDATE
+        A mapping which translates core fields into their form input names.
+        For example, Content is submitted as UpdateContent. All fields must
+        be mapped, even if they are named exactly as listed in
+        @CORE_SUPPORTED. A supported field which doesn't appear in the
+        mapping is skipped, the implication being that it isn't available
+        during update.
+
+    %CORE_FOR_CREATE
+        A mapping similar to %CORE_FOR_UPDATE but consulted during ticket
+        creation. The same rules and restrictions apply.
+
+    If you're looking to add support for other core fields, you'll need to
+    push into @CORE_SUPPORTED and possibly @CORE_TICKET. You'll also need to
+    add a pair to %CORE_FOR_UPDATE and/or %CORE_FOR_CREATE.
+
+  Methods
+   RequiredFields
+    Returns two array refs of required fields for the described status
+    transition. The first is core fields, the second is CF names. Returns
+    empty array refs on error or if nothing is required.
+
+    Takes a paramhash with the keys Ticket, Queue, From, and To. Ticket
+    should be an object. Queue should be a name. From and To should be
+    statuses. If you specify Ticket, only To is otherwise necessary. If you
+    omit Ticket, From, To, and Queue are all necessary.
+
+    The first transition found in the order below is used:
+
+        from -> to
+        *    -> to
+        from -> *
+
+   CheckMandatoryFields
+    Pulls core and custom mandatory fields from the configuration and checks
+    that they have a value set before transitioning to the requested status.
+
+    Accepts a paramhash of values: ARGSRef => Reference to Mason ARGS Ticket
+    => ticket object being updated Queue => Queue object for the queue in
+    which a new ticket is being created From => Ticket status transitioning
+    from To => Ticket status transitioning to
+
+    Works for both create, where no ticket exists yet, and update on an
+    existing ticket. ARGSRef is required for both.
+
+    For create, you must also pass Queue, From, and To.
+
+    Update requires only Ticket and To since From can be fetched from the
+    ticket object.
+
+   Config
+    Takes a queue name. Returns a hashref for the given queue (possibly
+    using the fallback rules) which contains keys of transitions and values
+    of arrayrefs of fields.
+
+    You shouldn't need to use this directly.
+
+TODO
+    Enforcement on Create
+            index.html / QuickCreate    - Not yet implemented.
+            SelfService                 - Not yet implemented.
+
+    Enforcement on other update pages
+            SelfService - can't do it without patches to <form> POST + additional callbacks
+            Basics      - need to patch callback for skipping (at least)
+            Jumbo       - need to patch callback for skipping (at least)
+
+BUGS
+    All bugs should be reported via
+    <http://rt.cpan.org/Public/Dist/Display.html?Name=RT-Extension-Mandatory
+    OnTransition> or bug-RT-Extension-MandatoryOnTransition at rt.cpan.org.
+
+AUTHOR
+    Thomas Sibley <trs at bestpractical.com>
+
+LICENSE AND COPYRIGHT
+    This software is Copyright (c) 2012 by Best Practical Solutions
+
+    This is free software, licensed under:
+
+      The GNU General Public License, Version 2, June 1991
+

commit 02e2ad23dd48527bd918bb1104e254a8569160a0
Author: Thomas Sibley <trs at bestpractical.com>
Date:   Tue Mar 26 14:44:57 2013 -0700

    Releng for 0.04

diff --git a/META.yml b/META.yml
index 342400c..9161a8c 100644
--- a/META.yml
+++ b/META.yml
@@ -21,4 +21,4 @@ no_index:
     - xt
 resources:
   license: http://opensource.org/licenses/gpl-license.php
-version: 0.03
+version: 0.04
diff --git a/lib/RT/Extension/MandatoryOnTransition.pm b/lib/RT/Extension/MandatoryOnTransition.pm
index 8a43c43..7e36f68 100644
--- a/lib/RT/Extension/MandatoryOnTransition.pm
+++ b/lib/RT/Extension/MandatoryOnTransition.pm
@@ -2,7 +2,7 @@ use strict;
 use warnings;
 package RT::Extension::MandatoryOnTransition;
 
-our $VERSION = '0.03';
+our $VERSION = '0.04';
 
 =head1 NAME
 

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



More information about the Bps-public-commit mailing list