本文整理汇总了Python中trac.web.chrome.Chrome.cc_list方法的典型用法代码示例。如果您正苦于以下问题:Python Chrome.cc_list方法的具体用法?Python Chrome.cc_list怎么用?Python Chrome.cc_list使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类trac.web.chrome.Chrome
的用法示例。
在下文中一共展示了Chrome.cc_list方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: render_property_diff
# 需要导入模块: from trac.web.chrome import Chrome [as 别名]
# 或者: from trac.web.chrome.Chrome import cc_list [as 别名]
def render_property_diff(self, req, ticket, field, old, new,
resource_new=None):
"Version for Trac 0.11"
rendered = None
# per type special rendering of diffs
type_ = None
for f in ticket.fields:
if f['name'] == field:
type_ = f['type']
break
if type_ == 'checkbox':
rendered = new == '1' and "set" or "unset"
elif type_ == 'textarea':
if not resource_new:
rendered = _('modified')
else:
href = get_resource_url(self.env, resource_new, req.href,
action='diff')
rendered = tag('modified (', tag.a('diff', href=href), ')')
# per name special rendering of diffs
old_list, new_list = None, None
render_elt = lambda x: x
sep = ', '
if field == 'cc':
chrome = Chrome(self.env)
old_list, new_list = chrome.cc_list(old), chrome.cc_list(new)
if not (Chrome(self.env).show_email_addresses or
'EMAIL_VIEW' in req.perm(resource_new or ticket.resource)):
render_elt = obfuscate_email_address
elif field == 'keywords':
old_list, new_list = (old or '').split(), new.split()
sep = ' '
if (old_list, new_list) != (None, None):
added = [tag.em(render_elt(x)) for x in new_list
if x not in old_list]
remvd = [tag.em(render_elt(x)) for x in old_list
if x not in new_list]
added = added and tag(separated(added, sep), " added")
remvd = remvd and tag(separated(remvd, sep), " removed")
if added or remvd:
rendered = tag(added, added and remvd and '; ', remvd)
return rendered
if field in ('reporter', 'owner'):
if not (Chrome(self.env).show_email_addresses or
'EMAIL_VIEW' in req.perm(resource_new or ticket.resource)):
old = obfuscate_email_address(old)
new = obfuscate_email_address(new)
# Added by MS
if field == 'attachment':
rendered = tag(tag.em(new), " added")
# changed 'if' to 'elif':
elif old and not new:
rendered = tag(tag.em(old), " deleted")
elif new and not old:
rendered = tag("set to ", tag.em(new))
elif old and new:
rendered = tag("changed from ", tag.em(old),
" to ", tag.em(new))
return rendered
示例2: matches
# 需要导入模块: from trac.web.chrome import Chrome [as 别名]
# 或者: from trac.web.chrome.Chrome import cc_list [as 别名]
def matches(self, event):
if event.realm != 'ticket':
return
if event.category not in ('created', 'changed', 'attachment added',
'attachment deleted'):
return
# CC field is stored as comma-separated string. Parse to set.
chrome = Chrome(self.env)
to_set = lambda cc: set(chrome.cc_list(cc))
cc_set = to_set(event.target['cc'] or '')
# Harvest previous CC field
if 'fields' in event.changes and 'cc' in event.changes['fields']:
cc_set.update(to_set(event.changes['fields']['cc']['old']))
matcher = RecipientMatcher(self.env)
klass = self.__class__.__name__
sids = set()
for cc in cc_set:
recipient = matcher.match_recipient(cc)
if not recipient:
continue
sid, auth, addr = recipient
# Default subscription
for s in self.default_subscriptions():
yield (s[0], s[1], sid, auth, addr, s[2], s[3], s[4])
if sid:
sids.add((sid,auth))
for s in Subscription.find_by_sids_and_class(self.env, sids, klass):
yield s.subscription_tuple()
示例3: diff_cc
# 需要导入模块: from trac.web.chrome import Chrome [as 别名]
# 或者: from trac.web.chrome.Chrome import cc_list [as 别名]
def diff_cc(self, old, new):
chrome = Chrome(self.env)
oldcc = chrome.cc_list(old)
newcc = chrome.cc_list(new)
added = [self.format_author(x)
for x in newcc if x and x not in oldcc]
rmved = [self.format_author(x)
for x in oldcc if x and x not in newcc]
return added, rmved