本文整理汇总了Python中wagtail.core.models.UserPagePermissionsProxy.for_page方法的典型用法代码示例。如果您正苦于以下问题:Python UserPagePermissionsProxy.for_page方法的具体用法?Python UserPagePermissionsProxy.for_page怎么用?Python UserPagePermissionsProxy.for_page使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wagtail.core.models.UserPagePermissionsProxy
的用法示例。
在下文中一共展示了UserPagePermissionsProxy.for_page方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: unpublish
# 需要导入模块: from wagtail.core.models import UserPagePermissionsProxy [as 别名]
# 或者: from wagtail.core.models.UserPagePermissionsProxy import for_page [as 别名]
def unpublish(request, page_id):
page = get_object_or_404(Page, id=page_id).specific
user_perms = UserPagePermissionsProxy(request.user)
if not user_perms.for_page(page).can_unpublish():
raise PermissionDenied
next_url = get_valid_next_url_from_request(request)
if request.method == 'POST':
include_descendants = request.POST.get("include_descendants", False)
page.unpublish()
if include_descendants:
live_descendant_pages = page.get_descendants().live().specific()
for live_descendant_page in live_descendant_pages:
if user_perms.for_page(live_descendant_page).can_unpublish():
live_descendant_page.unpublish()
messages.success(request, _("Page '{0}' unpublished.").format(page.get_admin_display_title()), buttons=[
messages.button(reverse('wagtailadmin_pages:edit', args=(page.id,)), _('Edit'))
])
if next_url:
return redirect(next_url)
return redirect('wagtailadmin_explore', page.get_parent().id)
return render(request, 'wagtailadmin/pages/confirm_unpublish.html', {
'page': page,
'next': next_url,
'live_descendant_count': page.get_descendants().live().count(),
})
示例2: publish
# 需要导入模块: from wagtail.core.models import UserPagePermissionsProxy [as 别名]
# 或者: from wagtail.core.models.UserPagePermissionsProxy import for_page [as 别名]
def publish(request, page_id):
page = get_object_or_404(Page, id=page_id).specific
user_perms = UserPagePermissionsProxy(request.user)
if not user_perms.for_page(page).can_publish():
raise PermissionDenied
next_url = get_valid_next_url_from_request(request)
if request.method == 'POST':
include_descendants = request.POST.get("include_descendants", False)
page.save_revision().publish()
if include_descendants:
not_live_descendant_pages = (
page.get_descendants().not_live().specific())
for not_live_descendant_page in not_live_descendant_pages:
if user_perms.for_page(not_live_descendant_page).can_publish():
not_live_descendant_page.save_revision().publish()
if next_url:
return redirect(next_url)
return redirect('wagtailadmin_explore', page.get_parent().id)
return render(request, 'wagtailadmin/pages/confirm_publish.html', {
'page': page,
'next': next_url,
'not_live_descendant_count': page.get_descendants().not_live().count()
})
示例3: revisions_unschedule
# 需要导入模块: from wagtail.core.models import UserPagePermissionsProxy [as 别名]
# 或者: from wagtail.core.models.UserPagePermissionsProxy import for_page [as 别名]
def revisions_unschedule(request, page_id, revision_id):
page = get_object_or_404(Page, id=page_id).specific
user_perms = UserPagePermissionsProxy(request.user)
if not user_perms.for_page(page).can_unschedule():
raise PermissionDenied
revision = get_object_or_404(page.revisions, id=revision_id)
next_url = get_valid_next_url_from_request(request)
subtitle = _('revision {0} of "{1}"').format(revision.id, page.get_admin_display_title())
if request.method == 'POST':
revision.approved_go_live_at = None
revision.save(update_fields=['approved_go_live_at'])
messages.success(request, _('Revision {0} of "{1}" unscheduled.').format(revision.id, page.get_admin_display_title()), buttons=[
messages.button(reverse('wagtailadmin_pages:edit', args=(page.id,)), _('Edit'))
])
if next_url:
return redirect(next_url)
return redirect('wagtailadmin_pages:revisions_index', page.id)
return render(request, 'wagtailadmin/pages/revisions/confirm_unschedule.html', {
'page': page,
'revision': revision,
'next': next_url,
'subtitle': subtitle
})