NAME

RT::Extension::MandatoryFields - Enforce users to fill standard fields when creating a ticket

DESCRIPTION

This RT Extension enforces users to fill standard fields defined in RT site configuration file when creating a ticket via the web interface. Filling can be enforced on tickets created in specified queues only.

Note: This extension does not take effect on custom fields. RT has already a built-in feature to mark custom fields as mandatory.

INSTALLATION

This extension requires RT >= 4.0.0. To install this extension, run the following commands:

perl Makefile.PL
make
make test
make install

CONFIGURATION

RT SITE CONFIGURATION

To enable this extension edit the RT site configuration located in $RT_HOME/etc/RT_SiteConfig.pm (where $RT_HOME is the path to your RT installation):

Set(@Plugins,qw(RT::Extension::MandatoryFields));

To enforce users to fill the standard fields add them to %MandatoryFields:

Set(%MandatoryFields, (
    'Requestors' => 'true',
    'Cc' => 'true',
    'AdminCc' => 'true',
    'Subject' => 'true',
    'Content' => 'true',
    'Attach' => 'true',
    'Status' => 'true',
    'Queue' => 'true',
    'Owner' => 'true',
    'Priority' => 'true',
    'InitialPriority' => 'true',
    'FinalPriority' => 'true',
    'TimeEstimated' => 'true',
    'TimeWorked' => 'true',
    'TimeLeft' => 'true',
    'Starts' => 'true',
    'Due' => 'true',
    'new-DependsOn' => 'true',
    'DependsOn-new' => 'true',
    'new-MemberOf' => 'true',
    'MemberOf-new' => 'true',
    'new-RefersTo' => 'true',
    'RefersTo-new' => 'true'
));

Mark a mandatory field with true, otherwise false.

To specify the queues where fields are mandatory, list their identifiers in %MandatoryFields. The keyword all has the same effect as true:

Set(%MandatoryFields, (
    'Requestors' => 'all',
    'Cc' => [1],
    'AdminCc' => [1, 2, 3]
));

Note: There are more than one way to create a new ticket. The default way is Create, but there are QuickCreate on the home page and SelfService for unpreviledged users, too. This extension handles them all. If a formular doesn't include one of the fields marked as mandatory (set to true in the configuration) it will be ignored. Don't get confused if you set a mandatory field that won't show up on the web interface. The table below gives you a short summarize which formular supports which mandatory field.

Field             Create        QuickCreate     SelfService
----------------  ----------    --------------  --------------
Requestors        included      included        included
Cc                included      not included    included
AdminCc           included      not included    not included
Subject           included      included        included
Content           included      included        included
Attach            included      not included    included
Queue             not editable  included        not editable
Status            included      not included    not included
Owner             included      included        not included
Priority          included      not included    not included
InitialPriority   included      not included    not included
FinalPriority     included      not included    not included
TimeEstimated     included      not included    not included
TimeWorked        included      not included    not included
TimeLeft          included      not included    not included
Starts            included      not included    not included
Due               included      not included    not included
new-DependsOn     included      not included    not included
(depends on)
DependsOn-new     included      not included    not included
(depended on by)
new-MemberOf      included      not included    not included
(parents)
MemberOf-new      included      not included    not included
(children)
new-RefersTo      included      not included    not included
(refers to)
RefersTo-new      included      not included    not included
(referred to by)

After all your new configuration will take effect after restarting your RT environment:

rm -rf $RT_HOME/var/mason_data/obj/* && service apache2 restart

This is an example for deleting the mason cache and restarting the Apache HTTP web server on a Debian GNU/Linux based operating system.

AUTHOR

Benjamin Heisig, <bheisig@synetics.de>

SUPPORT AND DOCUMENTATION

You can find documentation for this module with the perldoc command.

perldoc RT::Extension::MandatoryFields

You can also look for information at:

BUGS

Please report any bugs or feature requests to the author.

ACKNOWLEDGEMENTS

This extension is a fork of RT::Extension::MandatorySubject written by Emmanuel Lacour.

Thanks to Davide Imbeni, <davide.imbeni@gmail.com<gt> for his great contribution!

COPYRIGHT AND LICENSE

Copyright 2011 synetics GmbH, <http://i-doit.org/>

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Request Tracker (RT) is Copyright Best Practical Solutions, LLC.

SEE ALSO

RT
RT::Extension::MandatorySubject