-
Thomas Sibley authored
A new transaction type, SetWatcher, is now created by single member role groups when the assigned member changes. SetWatcher is more useful than a pair of Add/DelWatcher transactions since the old and new members are on the same transaction object. Such role groups which are also denormalized into a column still record a Set <Column> transaction on the record (i.e. tickets record a SetWatcher Owner and Set Owner transaction for each Owner change). While redundant on the surface, the SetWatcher and Set transactions are distinct because they mark, respectively, the group membership change and the record column change. Add/DelWatcher is still used for all other role groups but is more consistently set from deeper in the API: RT::Group->_Add/DeleteMember creates the transactions instead of Add/DeleteRoleMember in the Roles role. Aside from greater consistency no matter which API method is called, the move keeps all transaction creation alongside that of SetWatcher and Set which must be in RT::Group. Display of SetWatcher transactions is supported by core RT but not currently used. Without backdating new transactions to fill in existing ticket history, it's impossible to solely use SetWatcher for ticket owner history display. Instead, displaying SetWatcher is skipped when it applies to the Owner role on a ticket. All other objects and roles, such as those provided by extensions, will display SetWatcher transactions.
f2f00cf1