本文整理汇总了Python中trac.web.chrome.add_link函数的典型用法代码示例。如果您正苦于以下问题:Python add_link函数的具体用法?Python add_link怎么用?Python add_link使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了add_link函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_add_link_advanced
def test_add_link_advanced(self):
req = Mock(hdf=HDFWrapper(), href=Href('/trac.cgi'))
add_link(req, 'start', '/trac/wiki', 'Start page', 'text/html', 'home')
self.assertEqual('/trac/wiki', req.hdf['chrome.links.start.0.href'])
self.assertEqual('Start page', req.hdf['chrome.links.start.0.title'])
self.assertEqual('text/html', req.hdf['chrome.links.start.0.type'])
self.assertEqual('home', req.hdf['chrome.links.start.0.class'])
开发者ID:cyphactor,项目名称:lifecyclemanager,代码行数:7,代码来源:chrome.py
示例2: _render_ui
def _render_ui(self, req):
#add_stylesheet(req, 'itteco/css/colorbox/colorbox.css')
add_stylesheet(req, 'itteco/css/common.css')
add_stylesheet(req, 'itteco/css/calendar.css')
add_jscript(
req,
[
'stuff/ui/ui.core.js',
'stuff/ui/ui.draggable.js',
'stuff/ui/ui.droppable.js',
'stuff/ui/ui.resizable.js',
'stuff/ui/ui.datepicker.js',
'stuff/ui/ui.slider.js',
'stuff/ui/plugins/fullcalendar.js',
'stuff/ui/plugins/jquery.colorbox.js',
'stuff/ui/plugins/timepicker.js',
'stuff/plugins/jquery.rpc.js',
'calendar.js'
],
IttecoEvnSetup(self.env).debug
)
icshref = req.href.calendar(format='ics')
add_link(req, 'alternate', icshref, _('iCalendar'), 'text/calendar', 'ics')
return 'itteco_calendar_view.html', {}, None
开发者ID:esogs,项目名称:IttecoTracPlugin,代码行数:27,代码来源:web_ui.py
示例3: post_process_request
def post_process_request(self, req, template, data, content_type):
if self.isfilter:
path = req.base_path + self.path
add_link(req, 'shortcut icon', path, None, self.mimetype)
add_link(req, 'icon', path, None, self.mimetype)
return (template, data, content_type)
开发者ID:nyuhuhuu,项目名称:trachacks,代码行数:7,代码来源:plugin.py
示例4: pre_process_request
def pre_process_request(self, req, handler):
"""
Pre-process the request by adding 'Zip Archive' link into alternative format links
The link is constructed from first and latest revision number, taken from the default
repository.
:param Request req: Trac request
:param object handler: existing handler
:returns: Handler, modified or not
"""
# Add link only in /browser or /browser/?rev= pages
if (self.browser_regx.match(req.path_info)
and 'BROWSER_VIEW' in req.perm and 'FILE_VIEW' in req.perm):
# Get default repository and its type
rm = RepositoryManager(self.env)
repo = rm.get_repository('')
repo_type = rm.repository_type
# Construct the export urls for each format and based on revision info
latest_rev = plaintext(str(req.args.get('rev', repo.get_youngest_rev())))
# Use Trac's internal implementation
if repo_type == 'svn':
return handler
# For other types, iterate supported formats
for format, info in self.formats.items():
add_link(req, 'alternate', req.href('export/archive', rev=latest_rev, format=format), _(info['desc']),
info['mime'], info['ext'])
return handler
开发者ID:juhamust,项目名称:multiproject,代码行数:31,代码来源:archive.py
示例5: _alt_css
def _alt_css(req, filename, title):
href = req.href
if not filename.startswith("/"):
href = href.chrome
mt = "text/css"
rel = "alternate stylesheet"
add_link(req, rel, href(filename), title=title, mimetype=mt)
开发者ID:heimojuh,项目名称:trac-irclogs-plugin,代码行数:7,代码来源:web_ui.py
示例6: _render_monitoring_panel
def _render_monitoring_panel(self, req, cat, page):
req.perm.assert_permission('SPAM_MONITOR')
try:
pagenum = int(req.args.get('page', 1)) - 1
except ValueError:
pagenum = 1
total = LogEntry.count(self.env)
offset = pagenum * self.MAX_PER_PAGE
entries = list(LogEntry.select(self.env, limit=self.MAX_PER_PAGE,
offset=offset))
if pagenum > 0:
add_link(req, 'prev', req.href.admin(cat, page, page=pagenum),
'Previous Page')
if offset + self.MAX_PER_PAGE < total:
add_link(req, 'next', req.href.admin(cat, page, page=pagenum+2),
'Next Page')
return {
'enabled': FilterSystem(self.env).logging_enabled,
'entries': entries,
'offset': offset + 1,
'page': pagenum + 1,
'total': total
}
开发者ID:lamby,项目名称:pkg-trac-spamfilter,代码行数:26,代码来源:admin.py
示例7: get_paginator
def get_paginator(self):
def href_with_page(page):
args = copy.copy(self.req.args)
args['page'] = page
return self.req.href(self.href, args)
comment_count = Comments(self.req, self.env).count(self.args)
paginator = Paginator(self.data['comments'], self.page - 1,
self.per_page, comment_count)
if paginator.has_next_page:
add_link(self.req, 'next', href_with_page(self.page + 1),
'Next Page')
if paginator.has_previous_page:
add_link(self.req, 'prev', href_with_page(self.page - 1),
'Previous Page')
shown_pages = paginator.get_shown_pages(page_index_count=11)
links = [{
'href': href_with_page(page),
'class': None,
'string': str(page),
'title': 'Page %d' % page
} for page in shown_pages]
paginator.shown_pages = links
paginator.current_page = {
'href': None,
'class': 'current',
'string': str(paginator.page + 1),
'title': None
}
return paginator
开发者ID:Automattic,项目名称:trac-code-comments-plugin,代码行数:29,代码来源:web.py
示例8: page_paginator
def page_paginator(self,req,iids,page):
results = Paginator(iids,
int(page) - 1,
self.items_per_page)
apath = args_path(req.args)
if req:
if results.has_next_page:
next_href = req.href(req.path_info, max=self.items_per_page,
page=page + 1)+apath
add_link(req, 'next', next_href, 'Next Page')
if results.has_previous_page:
prev_href = req.href(req.path_info, max=self.items_per_page,
page=page - 1)+apath
add_link(req, 'prev', prev_href, 'Previous Page')
else:
results.show_index = False
pagedata = []
shown_pages = results.get_shown_pages(21)
for p in shown_pages:
pagedata.append([req.href(req.path_info, page=p)+apath, None,
str(p), 'Page ' + str(p) + 'd'])
results.shown_pages = [dict(zip(['href', 'class', 'string', 'title'],
p)) for p in pagedata]
results.current_page = {'href': None, 'class': 'current',
'string': str(results.page + 1),
'title':None}
return results
开发者ID:nyuhuhuu,项目名称:trachacks,代码行数:31,代码来源:web_ui.py
示例9: _prepare_attrs
def _prepare_attrs(self, req, attr):
page = int(req.args.get('page', '1'))
# Paginator can't deal with dict, so convert to list.
attr_lst = [(k,v) for k,v in attr.iteritems()]
max_per_page = as_int(req.args.get('max_per_page'), None)
if max_per_page is None:
max_per_page = self.ACCTS_PER_PAGE
attr = Paginator(attr_lst, page - 1, max_per_page)
pagedata = []
shown_pages = attr.get_shown_pages(21)
for shown_page in shown_pages:
page_href = req.href.admin('accounts', 'users', page=shown_page,
max_per_page=max_per_page)
pagedata.append([page_href, None, str(shown_page),
_("page %(num)s", num=str(shown_page))])
fields = ['href', 'class', 'string', 'title']
attr.shown_pages = [dict(zip(fields, p)) for p in pagedata]
attr.current_page = {'href': None, 'class': 'current',
'string': str(attr.page + 1), 'title':None}
if attr.has_next_page:
next_href = req.href.admin('accounts', 'users', page=page + 1,
max_per_page=max_per_page)
add_link(req, 'next', next_href, _('Next Page'))
if attr.has_previous_page:
prev_href = req.href.admin('accounts', 'users', page=page - 1,
max_per_page=max_per_page)
add_link(req, 'prev', prev_href, _('Previous Page'))
page_href = req.href.admin('accounts', 'cleanup')
return {'attr': attr, 'page_href': page_href}
开发者ID:scanterog,项目名称:acct_mgr-0.4.4,代码行数:34,代码来源:admin.py
示例10: process_request
def process_request(self, req):
milestone_id = req.args.get('id')
req.perm('milestone', milestone_id).require('MILESTONE_VIEW')
add_link(req, 'up', req.href.roadmap(), _('Roadmap'))
db = self.env.get_db_cnx() # TODO: db can be removed
milestone = Milestone(self.env, milestone_id, db)
action = req.args.get('action', 'view')
if req.method == 'POST':
if req.args.has_key('cancel'):
if milestone.exists:
req.redirect(req.href.milestone(milestone.name))
else:
req.redirect(req.href.roadmap())
elif action == 'edit':
return self._do_save(req, db, milestone)
elif action == 'delete':
self._do_delete(req, db, milestone)
elif action in ('new', 'edit'):
return self._render_editor(req, db, milestone)
elif action == 'delete':
return self._render_confirm(req, db, milestone)
if not milestone.name:
req.redirect(req.href.roadmap())
return self._render_view(req, db, milestone)
开发者ID:gdgkyoto,项目名称:kyoto-gtug,代码行数:29,代码来源:roadmap.py
示例11: process_request
def process_request(self, req):
"""Process the request."""
id = int(req.args.get('id'))
req.perm('ticket', id).require('TICKET_VIEW')
if 'TICKET_REMINDER_MODIFY' not in req.perm and \
'TICKET_ADMIN' not in req.perm:
raise PermissionError('TICKET_REMINDER_MODIFY',
req.perm._resource, self.env)
ticket = Ticket(self.env, id)
if 'cancel' in req.args:
req.redirect(get_resource_url(self.env, ticket.resource, req.href))
ticket_name = get_resource_name(self.env, ticket.resource)
ticket_url = get_resource_url(self.env, ticket.resource, req.href)
add_link(req, 'up', ticket_url, ticket_name)
add_ctxtnav(req, _('Back to %(ticket)s', ticket=ticket_name),
ticket_url)
add_stylesheet(req, 'ticketreminder/css/ticketreminder.css')
if req.args['action'] == "addreminder":
return self._process_add(req, ticket)
elif req.args['action'] == "deletereminder":
return self._process_delete(req, ticket)
else:
raise ValueError('Unknown action "%s"' % (req.args['action'],))
开发者ID:trac-hacks,项目名称:trac-ticketreminder,代码行数:31,代码来源:api.py
示例12: _paginate
def _paginate(self, req, results):
self.query = req.args.get('q', None)
current_page = as_int(req.args.get('listtagged_page'), 1)
items_per_page = as_int(req.args.get('listtagged_per_page'), None)
if items_per_page is None:
items_per_page = self.items_per_page
result = Paginator(results, current_page - 1, items_per_page)
pagedata = []
shown_pages = result.get_shown_pages(21)
for page in shown_pages:
page_href = self.get_href(req, items_per_page, page)
pagedata.append([page_href, None, str(page),
_("Page %(num)d", num=page)])
attributes = ['href', 'class', 'string', 'title']
result.shown_pages = [dict(zip(attributes, p)) for p in pagedata]
result.current_page = {'href': None, 'class': 'current',
'string': str(result.page + 1), 'title': None}
if result.has_next_page:
next_href = self.get_href(req, items_per_page, current_page + 1)
add_link(req, 'next', next_href, _('Next Page'))
if result.has_previous_page:
prev_href = self.get_href(req, items_per_page, current_page - 1)
add_link(req, 'prev', prev_href, _('Previous Page'))
return result
开发者ID:nyuhuhuu,项目名称:trachacks,代码行数:29,代码来源:macros.py
示例13: process_request
def process_request(self, req):
req.perm.assert_permission('TICKET_VIEW')
action = req.args.get('action', 'view')
if not req.args.has_key('id'):
req.redirect(self.env.href.wiki())
db = self.env.get_db_cnx()
id = int(req.args.get('id'))
ticket = Ticket(self.env, id, db=db)
reporter_id = util.get_reporter_id(req)
if req.method == 'POST':
if not req.args.has_key('preview'):
self._do_save(req, db, ticket)
else:
# Use user supplied values
ticket.populate(req.args)
req.hdf['ticket.action'] = action
req.hdf['ticket.ts'] = req.args.get('ts')
req.hdf['ticket.reassign_owner'] = req.args.get('reassign_owner') \
or req.authname
req.hdf['ticket.resolve_resolution'] = req.args.get('resolve_resolution')
reporter_id = req.args.get('author')
comment = req.args.get('comment')
if comment:
req.hdf['ticket.comment'] = comment
# Wiki format a preview of comment
req.hdf['ticket.comment_preview'] = wiki_to_html(comment,
self.env,
req, db)
else:
req.hdf['ticket.reassign_owner'] = req.authname
# Store a timestamp in order to detect "mid air collisions"
req.hdf['ticket.ts'] = ticket.time_changed
self._insert_ticket_data(req, db, ticket, reporter_id)
# If the ticket is being shown in the context of a query, add
# links to help navigate in the query result set
if 'query_tickets' in req.session:
tickets = req.session['query_tickets'].split()
if str(id) in tickets:
idx = tickets.index(str(ticket.id))
if idx > 0:
add_link(req, 'first', self.env.href.ticket(tickets[0]),
'Ticket #%s' % tickets[0])
add_link(req, 'prev', self.env.href.ticket(tickets[idx - 1]),
'Ticket #%s' % tickets[idx - 1])
if idx < len(tickets) - 1:
add_link(req, 'next', self.env.href.ticket(tickets[idx + 1]),
'Ticket #%s' % tickets[idx + 1])
add_link(req, 'last', self.env.href.ticket(tickets[-1]),
'Ticket #%s' % tickets[-1])
add_link(req, 'up', req.session['query_href'])
add_stylesheet(req, 'common/css/ticket.css')
return 'ticket.cs', None
开发者ID:lkraav,项目名称:trachacks,代码行数:60,代码来源:web_ui.py
示例14: post_process_request
def post_process_request(self, req, template, data, content_type):
# Add Google Map API key using a link tag:
if self.api_key:
add_link (req, rel='google-key', href='', title=self.api_key, classname='google-key')
add_stylesheet (req, 'googlemap/tracgooglemap.css')
add_script (req, 'googlemap/tracgooglemap.js')
return (template, data, content_type)
开发者ID:nyuhuhuu,项目名称:trachacks,代码行数:7,代码来源:macro.py
示例15: _prepare_results
def _prepare_results(self, result_docs, hits):
ui_docs = [self._process_doc(doc) for doc in result_docs]
results = Paginator(
ui_docs,
self.page - 1,
self.pagelen,
hits)
self._prepare_shown_pages(results)
results.current_page = {'href': None,
'class': 'current',
'string': str(results.page + 1),
'title': None}
parameters = self.parameters
if results.has_next_page:
next_href = parameters.create_href(page=parameters.page + 1)
add_link(self.req, 'next', next_href, _('Next Page'))
if results.has_previous_page:
prev_href = parameters.create_href(page=parameters.page - 1)
add_link(self.req, 'prev', prev_href, _('Previous Page'))
self.data[self.DATA_RESULTS] = results
prevnext_nav(self.req, _('Previous'), _('Next'))
开发者ID:Stackato-Apps,项目名称:bloodhound,代码行数:26,代码来源:web_ui.py
示例16: process_request
def process_request(self, req):
milestone_id = req.args.get('id')
req.perm('milestone', milestone_id).require('MILESTONE_VIEW')
add_link(req, 'up', req.href.roadmap(), _('Roadmap'))
action = req.args.get('action', 'view')
try:
milestone = Milestone(self.env, milestone_id)
except ResourceNotFound:
if 'MILESTONE_CREATE' not in req.perm('milestone', milestone_id):
raise
milestone = Milestone(self.env, None)
milestone.name = milestone_id
action = 'edit' # rather than 'new' so that it works for POST/save
if req.method == 'POST':
if req.args.has_key('cancel'):
if milestone.exists:
req.redirect(req.href.milestone(milestone.name))
else:
req.redirect(req.href.roadmap())
elif action == 'edit':
return self._do_save(req, milestone)
elif action == 'delete':
self._do_delete(req, milestone)
elif action in ('new', 'edit'):
return self._render_editor(req, milestone)
elif action == 'delete':
return self._render_confirm(req, milestone)
if not milestone.name:
req.redirect(req.href.roadmap())
return self._render_view(req, milestone)
开发者ID:nextview,项目名称:medicticket,代码行数:35,代码来源:roadmap.py
示例17: post_process_request
def post_process_request(self, req, template, data, content_type):
get = self.env.config.get
for link in self.links:
rel = get(self.section, link + '.rel' )
href = get(self.section, link + '.href' )
title = get(self.section, link + '.title' )
mimetype = get(self.section, link + '.type' )
classname = get(self.section, link + '.class' )
if rel and href:
add_link(req, rel, href, title or None, mimetype or None, classname or None)
for stylesheet in self.stylesheets:
filename = get(self.section, stylesheet + '.filename', unicode(self.default_style_base) + stylesheet + '.css' )
mimetype = get(self.section, stylesheet + '.mimetype', 'text/css')
if filename:
add_stylesheet(req, filename, mimetype)
for script in self.scripts:
filename = get(self.section, script + '.filename', unicode(self.default_script_base) + script + '.js' )
mimetype = get(self.section, script + '.mimetype', 'text/javascript')
if filename:
add_script(req, filename, mimetype)
return (template, data, content_type)
开发者ID:lkraav,项目名称:trachacks,代码行数:31,代码来源:plugin.py
示例18: process_request
def process_request(self, req):
milestone_id = req.args.get('id')
req.perm.assert_permission('MILESTONE_VIEW')
add_link(req, 'up', req.href.roadmap(), 'Roadmap')
db = self.env.get_db_cnx()
milestone = Milestone(self.env, milestone_id, db)
action = req.args.get('action', 'view')
if req.method == 'POST':
if req.args.has_key('cancel'):
if milestone.exists:
req.redirect(req.href.milestone(milestone.name))
else:
req.redirect(req.href.roadmap())
elif action == 'edit':
self._do_save(req, db, milestone)
elif action == 'delete':
self._do_delete(req, db, milestone)
elif action in ('new', 'edit'):
self._render_editor(req, db, milestone)
elif action == 'delete':
self._render_confirm(req, db, milestone)
else:
self._render_view(req, db, milestone)
if not milestone_id and action != 'new':
req.redirect(req.href.roadmap())
add_stylesheet(req, 'common/css/roadmap.css')
return 'milestone.cs', None
开发者ID:nyuhuhuu,项目名称:trachacks,代码行数:33,代码来源:roadmap.py
示例19: process_translations_request
def process_translations_request(self, req):
match = re.match(r'^/translations'
r'(?:/([0-9]+)?)?' # catalog id
r'(?:/([A-Za-z\-_]+)?)?' # locale name
r'(?:/([0-9]+)?)?', # page
req.path_info)
if not match:
raise ResourceNotFound("Bad URL")
catalog_id, locale_name, page = match.groups()
Session = session(self.env)
if not catalog_id:
# List available catalogs
data = {'projects': Session.query(Project).all()}
return 'l10n_catalogs_list.html', data, None
if not locale_name:
# List available locales
catalog = Session.query(Catalog).get(int(catalog_id))
if not catalog:
req.redirect(req.href.translations())
data = {'catalog': catalog}
return 'l10n_locales_list.html', data, None
# List messages of specified locale
catalog_id, page = int(catalog_id), int(page or 1)
locale = Session.query(Locale).filter_by(locale=locale_name,
catalog_id=catalog_id).first()
if not locale:
req.redirect(req.href.translations(catalog_id))
data = {'locale': locale, 'catalog_id': catalog_id}
paginator = Paginator(list(locale.catalog.messages), page-1, 5)
data['messages'] = paginator
shown_pages = paginator.get_shown_pages(25)
pagedata = []
for show_page in shown_pages:
page_href = req.href.translations(catalog_id, locale_name,
show_page)
pagedata.append([page_href, None, str(show_page),
'page %s' % show_page])
fields = ['href', 'class', 'string', 'title']
paginator.shown_pages = [dict(zip(fields, p)) for p in pagedata]
paginator.current_page = {'href': None, 'class': 'current',
'string': str(paginator.page + 1),
'title':None}
if paginator.has_next_page:
add_link(req, 'next', req.href.translations(catalog_id,
locale_name, page+1),
_('Next Page'))
if paginator.has_previous_page:
add_link(req, 'prev', req.href.translations(catalog_id,
locale_name, page-1),
_('Previous Page'))
return 'l10n_messages.html', data, None
开发者ID:UfSoft,项目名称:trac-l10n-manager,代码行数:59,代码来源:web_ui.py
示例20: process_request
def process_request(self, req):
# did the user ask for any special report?
id = int(req.args.get('id', -1))
if id != -1:
req.perm('report', id).require('REPORT_VIEW')
else:
req.perm.require('REPORT_VIEW')
data = {}
action = req.args.get('action', 'view')
if req.method == 'POST':
if action == 'new':
self._do_create(req)
elif action == 'delete':
self._do_delete(req, id)
elif action == 'edit':
self._do_save(req, id)
elif action in ('copy', 'edit', 'new'):
template = 'report_edit.html'
data = self._render_editor(req, id, action == 'copy')
Chrome(self.env).add_wiki_toolbars(req)
elif action == 'delete':
template = 'report_delete.html'
data = self._render_confirm_delete(req, id)
elif id == -1:
template, data, content_type = self._render_list(req)
if content_type: # i.e. alternate format
return template, data, content_type
if action == 'clear':
if 'query_href' in req.session:
del req.session['query_href']
if 'query_tickets' in req.session:
del req.session['query_tickets']
else:
template, data, content_type = self._render_view(req, id)
if content_type: # i.e. alternate format
return template, data, content_type
from trac.ticket.query import QueryModule
show_query_link = 'TICKET_VIEW' in req.perm and \
self.env.is_component_enabled(QueryModule)
if id != -1 or action == 'new':
add_ctxtnav(req, _('Available Reports'), href=req.href.report())
add_link(req, 'up', req.href.report(), _('Available Reports'))
elif show_query_link:
add_ctxtnav(req, _('Available Reports'))
# Kludge: only show link to custom query if the query module
# is actually enabled
if show_query_link:
add_ctxtnav(req, _('Custom Query'), href=req.href.query())
data['query_href'] = req.href.query()
data['saved_query_href'] = req.session.get('query_href')
else:
data['query_href'] = None
add_stylesheet(req, 'common/css/report.css')
return template, data, None
开发者ID:exocad,项目名称:exotrac,代码行数:59,代码来源:report.py
注:本文中的trac.web.chrome.add_link函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论