[rt-devel] Mandatory Fields

Matt Disney disney at ece.utk.edu
Mon Oct 20 09:55:09 EDT 2003


Koos Pol wrote:
> FAFIC MF's are "bugs" in the work policy.  You should educate your 
> managers/end users for a proper work policy. If you must use MF's limit it's 
> use to the fields which are part of the logic of the data structures. E.g. 
> there is not much point in selecting an item if you haven't entered it's id)

Though I agree in general with Koos' statements and specifically with 
the ideal scenario being to properly educate your supported users to 
enter appropriate information, I don't think that's always a realistic 
goal. For example, educating a very large number of users (maybe a 
quantity of five digits) to follow appropriate policy without enforcing 
the policy through some kind of technical device is often just not 
possible. I believe there are at least a couple of other common 
support-ticket-input scenarios where policy enforcement is much more 
practical than user education.

There is also a school of thought where policy is meaningless without 
enforcement, be it through human or technical (computerized) processes. 
That doesn't exactly hold up in court, of course. :-)

To address the original inquiry about mandatory fields...

At a previous site where I implemented RT2, they wanted mandatory fields 
for Name, Email, and a few other text fields that were pre-pended to the 
ticket Content (e.g. Employee Number). I ended up with a system where we 
had custom form pages for creating tickets and each of those pages had 
an array containing which fields were mandatory.

It required modifying both the Create.html and Display.html pages (or 
actually copying them for specific purposes and modifying them). 
Create.html passed the mandatory fields list as an argument to 
Display.html (in the hopes that such a design would be at least slightly 
more easily extensible). If a mandatory field was missing, Display.html 
kicked all the args back to Create.html, which would display the 
originally input data in their forms along with an error message at the 
top of the page explaining which fields had been left out. I had to pull 
a trick concerning field names to make them more understandable to the 
reader. I did this by specifying a "readable label" of the field, if you 
will, along with the field name in the array I used for specifying which 
fields were mandatory. It got the job done, but I really felt like the 
whole thing was kludgy. Something like this could also do the job for you.

At my current site (RT3), I'm not using the aforementioned 
implementation. However, we are currently creating some extensions to RT 
that allow it to be used for accepting job applications. We decided to 
go with RT, at least for the time-being, instead of rolling our own 
database/web app because RT already had the framework to do a lot of 
what we want... especially in the realm of ACLs.

The applicant processing extension we're writing relies heavily on 
CustomFields and some of them are mandatory (per the specification of 
the selection committee). So we have created a couple of ways to 
leverage the Descriptions of CustomFields. The first thing is that we 
include a grouping within the CustomField Description. Accordingly, we 
have a component that will display input forms for all CustomFields 
matching some pattern, where that pattern could be found in the CF 
Description. For example, we have a forms page with sections dedicated 
to collecting "Personnel Info" or "References" information, where each 
of those is a grouping of CFs. Similarly, we determine if a CF is 
"Required" by searching for that string in the CF Description. Because 
we're using loose pattern matching, we have a lot of flexibility for 
using the CF Description as an auxiliary data field... but we'll need to 
be careful about group names (can't have "Required" in a group name or 
everything gets screwy). And/or we could easily tighten up the RE 
matching later.

We're in the middle of development right now and still wrangling with a 
couple of issues. But all in all, I think our extensions will be a quick 
way to get a nice applicant processing system online.

I have a student assistant working on this with me. If/when we have 
something presentable, we'll be glad to share the result. I'm also 
interested in hearing about other implementations of mandatory fields 
(or applicant processing!) with RT.

Matt Disney
IT Administrator
Electrical and Computer Engineering
University of Tennessee




More information about the Rt-devel mailing list