= Trac Batch Modification Proposal = ''Proposal to add batch ticket modification functionality to Trac. See #525 for the original ticket.'' == The Context == Currently Trac does not support modifying a batch of tickets at once. This is only supported through the use of the !BatchModifyPlugin found at http://trac-hacks.org/wiki/BatchModifyPlugin. Moving this into Trac has been a commonly requested feature for years. == Requirements == === UI === The current plugin UI does not fit at all with Trac. What about something similar to the custom query filter UI? Users would select the items they want to modify on each ticket, similar to how filters are added now. This is currently being implemented in the 0.12 version of the plugin in a branch. See TH:source:/batchmodifyplugin/0.12/branches/ui_sandbox and #TH7303. === Notifications === The current plugin does not integrate with email notifications. This could be done the "normal" way via the ITicketChangeListener once #7758 is done (or the planned new IResourceChangeListener (#8834) and the Announcer support). That would be a first step. A specific interface (or extra method to the IResourceChangeListener interface) may be more appropriate though, like it would be for other cases of batch modifications, such as #4582 and #5658, or the batch WikiRename feature, see ticket:4412#comment:8. We definitely should try to send 100s mails to the same user. A mail summarizing the changes should be enough. (cboos) === Timeline === Should each batch modification add one entry to the timeline, or a separate entry for each ticket that was modified? Here as well we could have one summarizing event. See also #9205. (cboos) === Permissions === The plugin adds a separate permission for batch modification. This seems to be preferred by users of the plugin who do not want every ticket editor to necessarily be able to batch modify them. === Workflows === The plugin as currently written allows for tickets to be put into an inconsistent state, such as with a resolution of 'closed', but with a status of 'accepted'. This needs to be addressed.