== Extension Point : ''ITicketActionController'' == ||'''Interface'''||''ITicketActionController''||'''Since'''||[wiki:TracDev/ApiChanges/0.11#ITicketActionController 0.11]|| ||'''Module'''||''trac.ticket.api''||'''Source'''||[source:trunk/trac/ticket/api.py#/ITicketActionController api.py]|| The ''ITicketActionController'' allows components to add their own actions and operations to the ticket workflow. == Purpose == TracWorkflow provides a configurable workflow for the ticket system. The main purpose for this interface is to allow plugins to implement new actions and operations for the workflow. == Usage == Implementing the interface follows the standard guidelines found in [wiki:TracDev/ComponentArchitecture] and of course [wiki:TracDev/PluginDevelopment]. Implementations have to be added to the the `workflow` option in the `[ticket]` section in [TracIni#ticket-section TracIni]. Trac automatically calls the following methods to let users perform actions on tickets: * `get_ticket_actions` returns possible actions. * `get_all_status` returns possible values for the ticket ''status'' field. * `render_ticket_action_control` renders an HTML UI control for selecting a particular action. * `get_ticket_changes` returns the ticket field changes a particular action would make. * `apply_action_side_effects` performs additional side effects. == Examples == * [source:trunk/sample-plugins/workflow/CodeReview.py CodeReview sample plugin] * [source:trunk/sample-plugins/workflow/DeleteTicket.py DeleteTicket sample plugin] * [source:trunk/sample-plugins/workflow/MilestoneOperation.py MilestoneOperation sample plugin] * [source:trunk/sample-plugins/workflow/StatusFixer.py StatusFixer sample plugin] * [source:trunk/sample-plugins/workflow/VoteOperation.py VoteOperation sample plugin] == Available Implementations == * `trac.ticket.default_workflow.ConfigurableTicketWorkflow`: Provides the default configurable workflow and operations. * th:AdvancedTicketWorkflowPlugin: Provides various experimental operations == Additional Information and References == * [apiref:trac.ticket.api.ITicketActionController-class epydoc] * [apidoc:api/trac_ticket_api#trac.ticket.api.ITicketActionController API Reference] * TracWorkflow * TracIdeas/TracWorkflow * The [wiki:WikiMacros#Workflow-macro Workflow macro] can visualize workflow configurations. === API History * [wiki:TracDev/ApiChanges/0.11#ITicketActionController 0.11] introduced the interface