将新票证分配给登录用户

时间:2014-07-10 11:14:33

标签: trac

在Trac中可以设置"所有者"获取登录用户的新票证? 我在[{1}} default_owner trac.ini尝试了不同的值,但没有运气

2 个答案:

答案 0 :(得分:2)

来自Trac tickets(wiki)中的trac.edgewall.org权威文档:

  

default_owner:默认所有者的名称。如果设置为文字“< default>” (默认值),使用组件所有者。

所以这对你肯定无济于事。还有一些方法,取决于你Genshi模板知识,Python技能等。你的要求不难实现,但你不能用股票Trac得到它。您需要修改(新)故障单模板或添加一个相对较小的插件(使用Trac-1.1.1测试):

import re
from trac.core import Component, implements
from trac.ticket.api import ITicketManipulator

class DefaultTicketOwnerManipulator(Component):
"""Set ticket owner to logged in user, if available."""

    implements(ITicketManipulator)

    def prepare_ticket(self, req, ticket, fields, actions):
        pass

    def validate_ticket(self, req, ticket):
        if not ticket['owner'] and req.authname:
            ticket['owner'] = req.authname
            # Optionally report-back manipulation, so require a second POST.
            # return [(None, "Owner set to self (%s)" % req.authname)]
        return []

提示:在前一行中使用已注释掉的'return',以便在保存时不会默默地更改所有者,也适合测试。

答案 1 :(得分:0)

以下内容适用于计划于2015年1月1日发布的Trac 1.1.3或更高版本。它在Trac主干上实现,我们在保持稳定方面做得非常好。默认的创建工作流操作包括:

create = <none> -> new
create.default = 1
create_and_assign = <none> -> assigned
create_and_assign.label = assign
create_and_assign.operations = may_set_owner
create_and_assign.permissions = TICKET_MODIFY

要将create操作分配给当前用户,只需添加:

create.operations = set_owner_to_self

重命名操作可能是合适的,将票证置于assignedaccepted状态:

create_and_accept = <none> -> accepted
create_and_accept.label = accept
create_and_accept.default = 1
create_and_accept.operations = set_owner_to_self