本文整理汇总了Python中trac.web.chrome.Chrome.populate_data方法的典型用法代码示例。如果您正苦于以下问题:Python Chrome.populate_data方法的具体用法?Python Chrome.populate_data怎么用?Python Chrome.populate_data使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类trac.web.chrome.Chrome
的用法示例。
在下文中一共展示了Chrome.populate_data方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_diffs
# 需要导入模块: from trac.web.chrome import Chrome [as 别名]
# 或者: from trac.web.chrome.Chrome import populate_data [as 别名]
def get_diffs(self, req, title, old_text, new_text):
diff_style, diff_options, diff_data = get_diff_options(req)
diff_context = 3
for option in diff_options:
if option.startswith('-U'):
diff_context = int(option[2:])
break
if diff_context < 0:
diff_context = None
diffs = diff_blocks(old_text.splitlines(), new_text.splitlines(), context=diff_context,
tabwidth=2,
ignore_blank_lines=True,
ignore_case=True,
ignore_space_changes=True)
chrome = Chrome(self.env)
loader = TemplateLoader(chrome.get_all_templates_dirs())
tmpl = loader.load('diff_div.html')
changes=[{'diffs': diffs, 'props': [],
'title': title,
'new': {'path':"", 'rev':'', 'shortrev': '', 'href':''},
'old': {'path':"", 'rev':'', 'shortrev': '', 'href': ''}}]
data = chrome.populate_data(req,
{ 'changes':changes , 'no_id':True, 'diff':diff_data,
'longcol': '', 'shortcol': ''})
diff_data['style']='sidebyside';
data.update({ 'changes':changes , 'no_id':True, 'diff':diff_data,
'longcol': '', 'shortcol': ''})
stream = tmpl.generate(**data)
return stream.render()
示例2: get_stream
# 需要导入模块: from trac.web.chrome import Chrome [as 别名]
# 或者: from trac.web.chrome.Chrome import populate_data [as 别名]
def get_stream(self, req, method, filename, stream, original_data):
chrome = Chrome(self.env)
data = original_data
data['components'] = [component.name for component in trac.ticket.model.Component.select(self.env)]
data['logs'] = WorkLogTable.getByTicketId(self.env, data['ticket'].id)
template = chrome.load_template('work_log.html')
content_stream = template.generate(**(chrome.populate_data(req, data)))
chrome.add_jquery_ui(req)
add_stylesheet(req, 'trac/css/work-log.css')
return Transformer('//div[@id="ticket"]').after(content_stream)
示例3: get_stream
# 需要导入模块: from trac.web.chrome import Chrome [as 别名]
# 或者: from trac.web.chrome.Chrome import populate_data [as 别名]
def get_stream(self,req, method, filename, stream, original_data):
chrome = Chrome(self.env)
ticket_id = original_data['ticket'].id
data = original_data
data['objectlinks'] = self.get_links_for('ticket', ticket_id)
data['link_types'] = get_link_types()
data['components'] = [component.name for component in trac.ticket.model.Component.select(self.env)]
data['return_url'] = req.href.ticket(ticket_id)
template = chrome.load_template('ticket-links.html')
content_stream = template.generate(**(chrome.populate_data(req, data)))
chrome.add_jquery_ui(req)
add_script(req,'objectlinking/jquery-ui-autocomplete.js')
add_script(req,'objectlinking/search-links.js')
add_stylesheet(req, 'objectlinking/style.css')
add_stylesheet(req, 'objectlinking/jquery-ui-custom.css')
return Transformer('//div[@id="ticket"]').after(content_stream)
示例4: filter_stream
# 需要导入模块: from trac.web.chrome import Chrome [as 别名]
# 或者: from trac.web.chrome.Chrome import populate_data [as 别名]
def filter_stream(self, req, method, filename, stream, data):
if req.authname == 'anonymous':
return stream
if not self.c_name or not self.c_version:
return stream
user_dis_obj = UserDisclaimerModel(self.env)
valid = user_dis_obj.validate(req.authname, self.c_name, self.c_version)
if valid:
return stream
obj = DisclaimerModel(self.env)
disclaimer = obj.get_by_name_version(self.c_name,self.c_version)
if not disclaimer:
return stream
(id, author, body) = disclaimer
add_stylesheet(req, 'disclaimer/css/disclaimer.css')
add_javascript(req, 'disclaimer/js/disclaimer.js')
chrome = Chrome(self.env)
template = chrome.load_template("disclaimer.html")
data = dict(name=self.c_name, version=self.c_version, body=body)
data = chrome.populate_data(req, data)
stream |= Transformer('//div[@id="footer"]').append(template.generate(**data))
return stream
示例5: expand_macro
# 需要导入模块: from trac.web.chrome import Chrome [as 别名]
# 或者: from trac.web.chrome.Chrome import populate_data [as 别名]
def expand_macro(self, formatter, name, text, args):
template = MarkupTemplate(text)
chrome = Chrome(self.env)
return template.generate(**chrome.populate_data(formatter.req, {}))
示例6: expand_macro
# 需要导入模块: from trac.web.chrome import Chrome [as 别名]
# 或者: from trac.web.chrome.Chrome import populate_data [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')