本文整理汇总了Python中trac.ticket.api.TicketSystem.get_ticket_field_labels方法的典型用法代码示例。如果您正苦于以下问题:Python TicketSystem.get_ticket_field_labels方法的具体用法?Python TicketSystem.get_ticket_field_labels怎么用?Python TicketSystem.get_ticket_field_labels使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类trac.ticket.api.TicketSystem
的用法示例。
在下文中一共展示了TicketSystem.get_ticket_field_labels方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: expand_macro
# 需要导入模块: from trac.ticket.api import TicketSystem [as 别名]
# 或者: from trac.ticket.api.TicketSystem import get_ticket_field_labels [as 别名]
def expand_macro(self, formatter, name, content, args=[]):
try:
cols = [] # Sentinel
group = '' # Sentinel
groups = {}
lines = content.split('\r\n')
for line in lines:
if line.startswith('||= href =||= '):
cols = line[14:].split(' =||= ')
elif line.startswith('|| group: '):
group = line[10:]
if group in [u'', u'None']:
group = None
groups[group] = [] # initialize for the group
elif line.startswith('|| '):
values = iter(line[3:].split(' || '))
ticket = {'href': values.next()}
for col in cols:
ticket[col] = values.next()
groups[group].append(ticket)
else:
pass
ticketsystem = TicketSystem(self.env)
#
labels = ticketsystem.get_ticket_field_labels()
headers = [{'name': col, 'label': labels.get(col, _('Ticket'))} for col in cols]
#
fields = {}
ticket_fields = ticketsystem.get_ticket_fields()
for field in ticket_fields:
fields[field['name']] = {'label': field['label']} # transform list to expected dict
# fail safe
fields[None] = 'NONE'
for group in groups.keys():
if not 'group' in fields:
fields[group] = group
#
group_name = 'group' in args and args['group'] or None
if group_name not in fields:
group_name = None
query = {'group': group_name}
#
groups = [(name, groups[name]) for name in groups] # transform dict to expected tuple
#
data = {
'paginator': None,
'headers': headers,
'query': query,
'fields': fields,
'groups': groups,
}
add_stylesheet(formatter.req, 'common/css/report.css')
chrome = Chrome(self.env)
data = chrome.populate_data(formatter.req, data)
template = chrome.load_template('query_results.html')
content = template.generate(**data)
# ticket id list as static
tickets = ''
if 'id' in cols:
ticket_id_list = [ticket.get('id') for group in groups for ticket in group[1]]
if len(ticket_id_list) > 0:
tickets = '([ticket:' + ','.join(ticket_id_list) + ' query by ticket id])'
return tag.div(content, format_to_html(self.env, formatter.context, tickets))
except StopIteration:
errorinfo = _('Not Enough fields in ticket: %s') % line
except Exception:
errorinfo = sys.exc_info()
return tag.div(tag.div(errorinfo, class_='message'), class_='error', id='content')