本文整理汇总了Python中repoze.bfg.url.model_url函数的典型用法代码示例。如果您正苦于以下问题:Python model_url函数的具体用法?Python model_url怎么用?Python model_url使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了model_url函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: calendar_setup_view
def calendar_setup_view(context, request):
default_category_name = ICalendarCategory.getTaggedValue('default_name')
categories = filter(lambda x: x.__name__ != default_category_name,
_get_calendar_categories(context))
default_layer_name = ICalendarLayer.getTaggedValue('default_name')
layers = filter(lambda x: x.__name__ != default_layer_name,
_get_calendar_layers(context))
fielderrors = {}
fielderrors_target = None
page_title = 'Calendar Setup'
api = TemplateAPI(context, request, page_title)
return render_template_to_response(
'templates/calendar_setup.pt',
back_to_calendar_url=model_url(context, request),
categories_url=model_url(context, request, 'categories.html'),
layers_url=model_url(context, request, 'layers.html'),
formfields=api.formfields,
fielderrors=fielderrors,
fielderrors_target = fielderrors_target,
api=api,
editable_categories = categories,
editable_layers = layers,
all_categories = _get_all_calendar_categories(context, request),
colors = _COLORS,
)
开发者ID:reebalazs,项目名称:karl,代码行数:29,代码来源:calendar_events.py
示例2: _add_existing_users
def _add_existing_users(context, community, profiles, text, request, status=None):
users = find_users(community)
for profile in profiles:
group_name = community.members_group_name
user_name = profile.__name__
users.add_group(user_name, group_name)
# Generate HTML and text mail messages and send a mail for
# each user added to the community.
community_href = model_url(community, request)
_send_aeu_emails(community, community_href, profiles, text)
# We delivered invitation messages to each user. Redirect to
# Manage Members with a status message.
n = len(profiles)
if n == 1:
msg = 'One member added and email sent.'
else:
fmt = '%s members added and emails sent.'
msg = fmt % len(profiles)
if status:
msg = msg + ' ' + status
if request.POST.get('return_to') is not None:
location = request.POST['return_to']
return render_template_to_response('templates/javascript_redirect.pt',
url=location)
else:
location = model_url(context, request, 'manage.html',
query={'status_message': msg})
return HTTPFound(location=location)
开发者ID:amarandon,项目名称:opencore,代码行数:31,代码来源:members.py
示例3: add_referencemanual_view
def add_referencemanual_view(context, request):
tags_list=request.POST.getall('tags')
form = AddReferenceManualForm(tags_list=tags_list)
if 'form.cancel' in request.POST:
return HTTPFound(location=model_url(context, request))
if 'form.submitted' in request.POST:
try:
converted = form.validate(request.POST)
# Create the reference manual and store it
creator = authenticated_userid(request)
reference_manual = create_content(IReferenceManual,
converted['title'],
converted['description'],
creator,
)
name = make_unique_name(context, converted['title'])
context[name] = reference_manual
# Save the tags on it.
set_tags(reference_manual, request, converted['tags'])
location = model_url(reference_manual, request)
return HTTPFound(location=location)
except Invalid, e:
fielderrors = e.error_dict
fill_values = form.convert(request.POST)
tags_field = dict(
records = [dict(tag=t) for t in request.POST.getall('tags')]
)
开发者ID:boothead,项目名称:karl,代码行数:32,代码来源:references.py
示例4: edit_referencesection_view
def edit_referencesection_view(context, request):
tags_list = request.POST.getall('tags')
form = EditReferenceSectionForm(tags_list=tags_list)
if 'form.cancel' in request.POST:
return HTTPFound(location=model_url(context, request))
if 'form.submitted' in request.POST:
try:
converted = form.validate(request.POST)
# *will be* modified event
objectEventNotify(ObjectWillBeModifiedEvent(context))
context.title = converted['title']
context.description = converted['description']
# Save the tags on it
set_tags(context, request, converted['tags'])
# Modified
context.modified_by = authenticated_userid(request)
objectEventNotify(ObjectModifiedEvent(context))
location = model_url(context, request)
msg = "?status_message=Reference%20section%20edited"
return HTTPFound(location=location+msg)
except Invalid, e:
fielderrors = e.error_dict
fill_values = form.convert(request.POST)
开发者ID:boothead,项目名称:karl,代码行数:31,代码来源:references.py
示例5: __init__
def __init__(self, context, request, page_title=None):
self.context = context
self.request = request
self.snippets = get_template("templates/snippets.pt")
self.snippets.doctype = xhtml
self.userid = authenticated_userid(request)
self.app_url = app_url = request.application_url
self.profile_url = app_url + "/profiles/%s" % self.userid
self.here_url = self.context_url = model_url(context, request)
self.view_url = model_url(context, request, request.view_name)
settings = queryUtility(ISettings)
self.js_devel_mode = settings and getattr(settings, "js_devel_mode", None)
self.static_url = "%s/static/%s" % (app_url, _get_static_rev())
# Provide a setting in the INI to fully control the entire URL
# to the static. This is when the proxy runs a different port
# number, or to "pipeline" resources on a different URL path.
full_static_path = getattr(settings, "full_static_path", False)
if full_static_path:
if "%d" in full_static_path:
full_static_path = full_static_path % _start_time
self.static_url = full_static_path
self.page_title = page_title
self.system_name = get_setting(context, "system_name", "KARL")
self.user_is_admin = "group.KarlAdmin" in effective_principals(request)
site = find_site(context)
self.admin_url = model_url(site, request, "admin.html")
self.site_announcement = getattr(site, "site_announcement", "")
开发者ID:boothead,项目名称:karl,代码行数:28,代码来源:api.py
示例6: _send_signup_email
def _send_signup_email(request, invitation):
site = find_site(request.context)
mailer = getUtility(IMailDelivery)
info = {}
info['system_name'] = get_setting(site, 'system_name', 'OpenCore')
info['system_email_domain'] = get_setting(site, 'system_email_domain')
info['from_name'] = '%s invitation' % info['system_name']
info['from_email'] = '[email protected]%s' % info['system_email_domain']
info['c_title'] = info['system_name']
info['c_description'] = ""
info['c_href'] = model_url(site, request)
info['mfrom'] = '%s <%s>' % (info['from_name'], info['from_email'])
info['subject'] = 'Please join the %s community' % info['system_name']
body_template = get_template('templates/email_signup.pt')
msg = Message()
msg['From'] = info['mfrom']
msg['To'] = invitation.email
msg['Subject'] = info['subject']
body = body_template(
system_name=info['system_name'],
personal_message=invitation.message,
invitation_url=model_url(site, request, 'signup', invitation.__name__)
)
if isinstance(body, unicode):
body = body.encode("UTF-8")
msg.set_payload(body, "UTF-8")
msg.set_type('text/html')
mailer.send(info['mfrom'], [invitation.email,], msg)
开发者ID:amarandon,项目名称:opencore,代码行数:33,代码来源:members.py
示例7: report_view
def report_view(context, request):
client_json_data = {
'grid_data': get_grid_data(context, request),
}
api = TemplateAPI(context, request, context.title)
peopledir = find_peopledirectory(context)
section = context.__parent__
peopledir_tabs = get_tabs(peopledir, request, section.__name__)
mgr = ILetterManager(context)
letter_info = mgr.get_info(request)
kw, qualifiers = get_search_qualifiers(request)
descriptions = get_report_descriptions(context)
print_url = model_url(context, request, 'print.html', **kw)
csv_url = model_url(context, request, 'csv', **kw)
pictures_url = model_url(context, request, 'picture_view.html', **kw)
opensearch_url = model_url(context, request, 'opensearch.xml')
return render_template_to_response(
'templates/people_report.pt',
api=api,
peopledir=peopledir,
peopledir_tabs=peopledir_tabs,
head_data=convert_to_script(client_json_data),
descriptions=descriptions,
letters=letter_info,
print_url=print_url,
csv_url=csv_url,
pictures_url=pictures_url,
qualifiers=qualifiers,
opensearch_url=opensearch_url,
actions=get_actions(context, request),
)
开发者ID:boothead,项目名称:karl,代码行数:34,代码来源:peopledirectory.py
示例8: get_previous_next
def get_previous_next(context, request):
# Reference Manual sections have inter-item navigation, which
# means (sigh) that files and pages do as well.
# Only works on resources whose parents are orderable
parent = context.__parent__
ordering = getattr(parent, 'ordering', None)
if ordering is None:
return None, None
# Be a chicken and sync
ordering.sync(parent.keys())
# Find the prev/next names, then flatten some info about them for
# the ZPT
current_name = context.__name__
previous = parent.get(ordering.previous_name(current_name))
next = parent.get(ordering.next_name(current_name))
if previous:
previous = {'title': previous.title,
'href': model_url(previous, request)}
if next:
next = {'title': next.title,
'href': model_url(next, request)}
return previous, next
开发者ID:boothead,项目名称:karl,代码行数:28,代码来源:utils.py
示例9: forbidden
def forbidden(context, request):
site = find_site(context)
environ = request.environ
referrer = environ.get('HTTP_REFERER', '')
if 'repoze.who.identity' in environ:
# the user is authenticated but he is not allowed to access this
# resource
api = TemplateAPI(context, request, 'Forbidden')
response = render_template_to_response(
'templates/forbidden.pt',
api=api,
login_form_url = model_url(site, request, 'login.html'),
homepage_url = model_url(site, request),
)
response.status = '403 Forbidden'
return response
elif '/login.html' in referrer:
url = request.url
# this request came from a user submitting the login form
login_url = model_url(site, request, 'login.html',
query={'reason':'Bad username or password',
'came_from':url})
return HTTPFound(location=login_url)
else:
# the user is not authenticated and did not come in as a result of
# submitting the login form
url = request.url
query = {'came_from':url}
while url.endswith('/'):
url = url[:-1]
if url != request.application_url: # if request isnt for homepage
query['reason'] = 'Not logged in'
login_url = model_url(site, request, 'login.html', query=query)
return HTTPFound(location=login_url)
开发者ID:boothead,项目名称:karl,代码行数:34,代码来源:forbidden.py
示例10: lock_info_for_view
def lock_info_for_view(context, request, from_time=None):
"""return a structure suitable for displaying in a template"""
if is_locked(context, from_time):
lock = lock_info(context)
userid = lock['userid']
profiles = find_profiles(context)
profile = profiles.get(userid, None)
if profile is not None:
return dict(
is_locked = True,
url = model_url(profile, request),
name = '%s %s' % (profile.firstname,
profile.lastname),
email = profile.email,
)
else:
return dict(
is_locked = True,
url = model_url(profiles, request),
name = 'Unknown',
email = '',
)
else:
return dict(
is_locked = False,
url = None,
name = None,
email = None,
)
开发者ID:cguardia,项目名称:karl,代码行数:30,代码来源:lock.py
示例11: pages_view
def pages_view(context, request):
page_urls = [(context[p].dublincore['title'],
model_url(context, request, p))
for p in request.context.keys()]
return {'project': PROJECT,
'page_urls': page_urls,
'page_add_url': model_url(context, request, "@@page_add")
}
开发者ID:shentonfreude,项目名称:DubCore,代码行数:8,代码来源:views.py
示例12: edit_page
def edit_page(context, request):
if 'form.submitted' in request.params:
context.data = request.params['body']
return HTTPFound(location = model_url(context, request))
logged_in = authenticated_userid(request)
return dict(page = context, logged_in=logged_in,
save_url = model_url(context, request, 'edit_page'))
开发者ID:tolukemi,项目名称:repoze-wiki,代码行数:8,代码来源:views.py
示例13: calendar_setup_layers_view
def calendar_setup_layers_view(context, request):
form = CalendarLayersForm()
default_layer_name = ICalendarLayer.getTaggedValue('default_name')
layers = filter(lambda x: x.__name__ != default_layer_name,
_get_calendar_layers(context))
layer_titles = [ x.title for x in layers]
layer_names = [ x.__name__ for x in layers ]
default_category_name = ICalendarCategory.getTaggedValue('default_name')
categories = filter(lambda x: x.__name__ != default_category_name,
_get_calendar_categories(context))
if 'form.delete' in request.POST:
layer_name = request.POST['form.delete']
if layer_name == default_layer_name:
message = 'Cannot delete default layer'
elif layer_name and layer_name in layer_names:
title = context[layer_name].title
del context[layer_name]
message = '%s layer removed' % title
else:
message = 'Layer is invalid'
location = model_url(context, request, 'layers.html',
query={'status_message': message})
return HTTPFound(location=location)
fielderrors_target = None
fielderrors = {}
if 'form.submitted' in request.POST:
try:
converted = form.validate(request.POST)
category_paths = list(set(request.POST.getall('category_paths')))
layer_name = generate_name(context)
layer_title = converted['layer_title']
layer_color = converted['layer_color']
if layer_title in layer_titles:
msg = "Name is already used"
raise Invalid(value=layer_title, state=None,
msg=msg, error_list=None,
error_dict={'layer_title': msg})
layer = create_content(ICalendarLayer,
layer_title, layer_color, category_paths)
context[layer_name] = layer
location = model_url(
context, request,
'layers.html',
query={'status_message':'Calendar layer added'})
return HTTPFound(location=location)
except Invalid, e:
fielderrors_target = '__add_layer__'
fielderrors = e.error_dict
开发者ID:boothead,项目名称:karl,代码行数:58,代码来源:calendar_events.py
示例14: jquery_livesearch_view
def jquery_livesearch_view(context, request):
# Prefix search is with a wildcard at the end
searchterm = request.params.get("val", None)
if searchterm is None:
# The request forgot to send the key we use to do a search, so
# make a friendly error message. Important for the unit test.
msg = "Client failed to send a 'val' parameter as the searchterm"
return HTTPBadRequest(msg)
else:
searchterm = searchterm + "*"
records = LivesearchResults()
principals = effective_principals(request)
site_path = model_path(context)
records.set_header("", pre='<div class="header"></div>')
records.append_to(
rowclass="showall",
title="Show All",
href=model_url(context, request, "searchresults.html", query={"body": searchterm}),
)
for listitem in get_listitems(IGroupSearchFactory):
utility = listitem["component"]
factory = utility(context, request, searchterm)
if factory is None:
continue
try:
num, docids, resolver = factory()
except ParseError:
continue
groupname = listitem["title"]
records.set_header(groupname, pre='<div class="header">%s</div>' % (groupname,))
results = filter(None, map(resolver, docids))
qs = {"body": searchterm, "kind": groupname}
sr_href = model_url(context, request, "searchresults.html", query=qs)
for result in results:
records.append_to(
rowclass="result", title=getattr(result, "title", "<No Title>"), href=model_url(result, request)
)
if results:
records.append_to(rowclass="showall", title="Show All", href=sr_href)
else:
records.append_to(rowclass="noresult", title="No Result", href=sr_href)
result = JSONEncoder().encode(list(records))
return Response(result, content_type="application/x-json")
开发者ID:boothead,项目名称:karl,代码行数:58,代码来源:search.py
示例15: redirector_view
def redirector_view(context, request):
where = context.target_url
if not where.startswith('http'):
if where.startswith('/'):
where = basejoin(model_url(context, request), where)
else:
elements = where.split('/')
where = model_url(context.__parent__, request, *elements)
return HTTPFound(location=where)
开发者ID:cguardia,项目名称:karl,代码行数:9,代码来源:peopledirectory.py
示例16: application_view
def application_view(context, request):
user = authenticated_user(request)
if user:
if ITeacher.providedBy(user):
return HTTPFound(location=model_url(context, request, "dashboard.html"))
return HTTPFound(location=model_url(user, request))
return HTTPFound(location=model_url(context, request, "login.html"))
开发者ID:seantis,项目名称:cobal.eportfolio,代码行数:9,代码来源:application.py
示例17: __call__
def __call__(self):
context, request = self.context, self.request
api = AdminTemplateAPI(context, request, "Admin UI: Send Email")
admin_email = get_setting(context, "admin_email")
system_name = get_setting(context, "system_name")
profiles = find_profiles(context)
admin = profiles[authenticated_userid(request)]
from_emails = [
("self", "%s <%s>" % (admin.title, admin.email)),
("admin", "%s Administrator <%s>" % (system_name, admin_email)),
]
if "send_email" in request.params:
mailer = getUtility(IMailDelivery)
group = request.params["to_group"]
users = find_users(context)
search = ICatalogSearch(context)
count, docids, resolver = search(interfaces=[IProfile])
n = 0
for docid in docids:
profile = resolver(docid)
if getattr(profile, "security_state", None) == "inactive":
continue
userid = profile.__name__
if group and not users.member_of_group(userid, group):
continue
message = Message()
if request.params["from_email"] == "self":
message["From"] = from_emails[0][1]
message_from = admin.email
else:
message["From"] = from_emails[1][1]
message_from = admin_email
message["To"] = "%s <%s>" % (profile.title, profile.email)
message["Subject"] = request.params["subject"]
body = u"<html><body>%s</body></html>" % (request.params["text"])
message.set_payload(body.encode("UTF-8"), "UTF-8")
message.set_type("text/html")
mailer.send([profile.email], message)
n += 1
status_message = "Sent message to %d users." % n
if has_permission(ADMINISTER, context, request):
redirect_to = model_url(context, request, "admin.html", query=dict(status_message=status_message))
else:
redirect_to = model_url(
find_communities(context),
request,
"all_communities.html",
query=dict(status_message=status_message),
)
return HTTPFound(location=redirect_to)
return dict(api=api, menu=_menu_macro(), to_groups=self.to_groups, from_emails=from_emails)
开发者ID:reebalazs,项目名称:karl,代码行数:57,代码来源:admin.py
示例18: change_password_view
def change_password_view(context, request):
min_pw_length = get_setting(context, 'min_pw_length')
form = ChangePasswordForm(min_pw_length=min_pw_length)
if 'form.cancel' in request.POST:
return HTTPFound(location=model_url(context, request))
if 'form.submitted' in request.POST:
try:
converted = form.validate(request.POST)
users = find_users(context)
userid = context.__name__
user = users.get_by_id(userid)
# check the old password
# XXX: repoze.who.plugins.zodb.interfaces.IUsers
# really should have a check_password(id, password)
# method. We shouldn't have to use get_sha_password
# directly.
enc = get_sha_password(converted['old_password'])
if enc != user['password']:
raise CustomInvalid({'old_password': 'Incorrect password'})
users.change_password(userid, converted['password'])
# send email
system_name = get_setting(context, 'system_name', 'KARL')
mail = karl.mail.Message()
admin_email = get_setting(context, 'admin_email')
mail["From"] = "%s Administrator <%s>" % (system_name, admin_email)
mail["To"] = "%s <%s>" % (context.title, context.email)
mail["Subject"] = "%s Password Change Notification" % system_name
system_name = get_setting(context, 'system_name', 'KARL')
body = render_template(
"templates/email_change_password.pt",
login=user['login'],
password=converted['password'],
system_name=system_name,
)
if isinstance(body, unicode):
body = body.encode("UTF-8")
mail.set_payload(body, "UTF-8")
mail.set_type("text/html")
recipients = [context.email]
mailer = getUtility(IMailDelivery)
mailer.send(admin_email, recipients, mail)
path = model_url(context, request)
msg = '?status_message=Password%20changed'
return HTTPFound(location=path+msg)
except Invalid, e:
fielderrors = e.error_dict
fill_values = form.convert(request.POST)
开发者ID:boothead,项目名称:karl,代码行数:56,代码来源:people.py
示例19: status_response
def status_response(self, msg):
location = model_url(self.parent, self.request)
if IComment.providedBy(self.context):
# for comment replies we need the location of the real container
# like forum topic or profile or community
log.debug('commenting status_response: reply context=%s, grandparent=%s' % (self.context, self.parent.__parent__))
location = model_url(self.parent.__parent__, self.request)
location = '%s?status_message=%s' % (location, urllib.quote(msg))
return HTTPFound(location=location)
开发者ID:amarandon,项目名称:opencore,代码行数:10,代码来源:commenting.py
示例20: page_view
def page_view(context, request):
dc_schema = DublinCoreSchema()
dc_form = Form(dc_schema)
dc_form['subject'].widget.category = None # HACK: display sequence label
return {'project': PROJECT,
'page': context,
'dc_form': dc_form.render(context.dublincore, readonly=True),
'page_edit_url': model_url(context, request, "@@page_edit"),
'page_edit_dc_url': model_url(context, request, "@@page_edit_dc")
}
开发者ID:shentonfreude,项目名称:DubCore,代码行数:10,代码来源:views.py
注:本文中的repoze.bfg.url.model_url函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论