Edgewall Software

Version 11 (modified by Alec Thomas, 18 years ago) ( diff )

Workflow Discussion

The original proposal is at NewWorkflow. The workflow sandbox is an attempt to implement an API for making the ticket system more generic.

Tasks

  • Add a disabled attribute to fields so that workflow hooks can disable fields but still leave them visible.
  • Add a hidden attribute for the same reason. I've actually already done this, simply by renaming the skip attribute to hidden. Did this to be more consistent with HTML.
  • Add a fullrow attribute which signifies that the form element will span both columns of the ticket property fieldset. eg. summary, type, description and reporter would all be fullrow=1 (done, but code in the templates is not implemented). [2833]
  • Remove code specific to individual fields from ticket.cs/newticket.cs. The summary, type, description and reporter would be converted to use the the same generic code as the rest of the fields. [2833]
  • Remove large if/elif statement from ticket.cs/newticket.cs. Currently there is a large if/then/else style block which is used to display all fields other than the four described above. This could be removed and replaced with a call to form_control(). [2833]
  • In order to specify the order the generic field display code would use, the above changes would probably require the ticket.fields.* HDF branch to be changed to an array (currently it is a dict). This change would be in api.py (return fields in the correct display order) and the .cs files, possibly elsewhere. [2832].
  • If possible I would also like to factor out the ticket field display/edit code from both ticket.cs and newticket.cs into ticket_fields.cs, as the template code is basically functionally identical. [2833]
  • Add a .onchange option for javascript field validation.
  • Add a .title option, or maybe .tooltip, though I think for the sake of consisteny it should be .title.
  • Add a checkboxes field type. This differs from the checkbox type in that it is a set of related checkboxes. It would store the data in the field value as check1|check2|check4. I'm not sure about this one, or how it would be presented in the query module, but I figured that people might find it useful. Similarly, a multi_select type could be useful.
  • Remove ticket_custom_props() macro? It does not appear to be referenced.
  • Need a clean way to differentiate between fields that should not be displayed in the summary and those that should not be displayed at all. eg. summary should be hidden in the ticket summary (as it is used for the title), and should only be editable by users with TICKET_ADMIN privileges. Perhaps the logic should be that if a field is hidden it is not displayed anywhere, unless it is also editable, in which case it is only displayed in the ticket properties. [2837]
  • There are a number of locations in the ticket code where permissions are hard coded. As an example, the TICKET_CREATE permission is required to create a new ticket. Should this be overridable by ITicketWorkflow implementors?

Available Field Types and Options

Common options:

  • label: Descriptive label.
  • value: Default value.
  • order: Sort order placement. (Determines relative placement in forms.)
  • hidden: Field is not displayed. Useful for storing extra ticket attributes programmatically (false by default).
  • fullrow: Field spans a full row when displayed in the ticket properties.
  • editable: Field is editable (true by default). If a field is hidden but editable, it will not display in the ticket summary but will be displayed and editable in the ticket properties.

Types and type-specific options:

  • text: A simple (one line) text field.
    • size: Size of text field.
  • checkbox: A boolean value check box.
    • value: Default value (0 or 1).
  • select: Drop-down select box. Uses a list of values.
    • options: List of values, separated by | (vertical pipe).
    • value: Default value (Item #, starting at 0).
  • radio: Radio buttons. Essentially the same as select.
    • options: List of values, separated by | (vertical pipe).
    • value: Default value (Item #, starting at 0).
  • textarea: Multi-line text area.
    • cols: Width in columns.
    • rows: Height in lines.

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.