Server : Apache System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64 User : dh_edsupp ( 6597262) PHP Version : 8.2.26 Disable Function : NONE Directory : /lib/python3/dist-packages/trac/upgrades/ |
Upload File : |
# -*- coding: utf-8 -*- # # Copyright (C) 2014-2021 Edgewall Software # All rights reserved. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://trac.edgewall.org/wiki/TracLicense. # # This software consists of voluntary contributions made by many # individuals. For the exact contribution history, see the revision # history and logs, available at https://trac.edgewall.org/. from trac.ticket.default_workflow import get_workflow_config from trac.util import backup_config_file new_actions = { 'create': { '': '<none> -> new', 'default': 1, }, 'create_and_assign': { '': '<none> -> assigned', 'label': 'assign', 'permissions': 'TICKET_MODIFY', 'operations': 'may_set_owner' } } def do_upgrade(env, version, cursor): """Add 'create' actions to ticket-workflow (ticket #2045). """ save = False all_actions = get_workflow_config(env.config) all_states = list( {state for action in all_actions.values() for state in action['oldstates']} | {action['newstate'] for action in all_actions.values()}) for action, attributes in new_actions.items(): if action == 'create_and_assign' and 'assigned' not in all_states: continue if action not in env.config['ticket-workflow']: for attr, value in attributes.items(): key = action + ('.' + attr if attr else '') env.config.set('ticket-workflow', key, value) save = True else: env.log.info("Couldn't add ticket action '%s' because it " "already exists.", action) if save: backup_config_file(env, '.db33.bak') env.config.save()