skip to content

Department of Genetics


Using Catalyst and Request Tracker to make an electronic version of the requisition and ordering system



Index listing all requisitions done by a group at -- this index also allows users to mark stuff delivered... In theory.

Attempted to modify template to include original info in notifications. Doesn't work. Resorted to adding link to self service info.


Disabled the "automatic mark delivered" on correspondence as it seems to be triggered at random.


Planned work

All subject to Ian having time/it actually being possible...

Easier access to list of chemicals with existing risk assessments

Include more order info in PO number notification email -- experimental code in place.

Allow orderers to mark stuff delivered -- experimental code in place

Synchronise some status between RT and Catalyst, e.g. note if stuff has been marked delivered and hide it?

User info


This is an optional field to give a brief description of the requisition, e.g. "Glassware" or "A desk." If provided it will have information appended to it, to give something like:

Yet another test: by Ian C. Clark for genadmin from Stuff & Nonsense


The first line of the is treated as the supplier name and is displayed in ticket summary info. The rest is for contact info or clarification.

Unit of Measure

This is a field to describe how this line item is measured. Each is usually fine, but for example it could be "6 pack."

Grant Code

The system will copy the grant code from the previous line, obviously you can choose to change the code for different lines

Acknowledgement mails

Users should receive an acknowledgement mail with the information about their requisition when it's entered into the workflow. There will be updates as the request works through the system (see tech info below)

Tech info

Based on RT4.

Lifecycle flowchart. When an user just wants a PO skip the "orderer sends request to supplier" stage and go straight to "Sent"

Lifecycle RT conf:

Set(%Lifecycles, requisition => {
initial =>[ 'pending','incomplete'],
active => ['open','sent','stalled','delivered'],
inactive => ['received','declined', 'deleted'],
defaults => {
on_create => 'pending',
transitions => {
'' => [qw(pending incomplete declined open deleted)],
'pending' => [qw(declined open sent stalled deleted incomplete)],
'incomplete' => [qw(pending deleted)],
'open' => [qw(declined stalled sent deleted)],
'sent' => [qw(delivered declined deleted received)],
'delivered' => [qw(sent received)],
'deleted' => [qw(pending incomplete open sent stalled delivered declined)],
rights => {
'* -> deleted' => 'DeleteTicket',
'* -> *' => 'ModifyTicket',
actions => [
'pending -> open'=> {
'open -> sent'=> {
label=>'Order Sent',
'sent -> delivered'=> {
'delivered -> received'=> {
'sent -> received'=> {
'pending -> declined'=>{
'pending -> deleted'=> {
'requisitions -> default' => {
'pending' => 'new',
'incomplete' => 'new',
'open' => 'open',
'sent' => 'open',
'stalled' => 'stalled',