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, 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: * Search CPAN * RT: CPAN's request tracker * AnnoCPAN: Annotated CPAN documentation * CPAN Ratings 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, for his great contribution! COPYRIGHT AND LICENSE Copyright 2011 synetics GmbH, 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