Пример #1
0
from django.views.decorators.vary import vary_on_headers

from wagtail.admin import messages
from wagtail.admin.auth import PermissionPolicyChecker, permission_denied
from wagtail.admin.forms.search import SearchForm
from wagtail.admin.models import popular_tags_for_model
from wagtail.core.models import Collection, Site
from wagtail.images import get_image_model
from wagtail.images.exceptions import InvalidFilterSpecError
from wagtail.images.forms import URLGeneratorForm, get_image_form
from wagtail.images.models import Filter, SourceImageIOError
from wagtail.images.permissions import permission_policy
from wagtail.images.views.serve import generate_signature
from wagtail.search import index as search_index

permission_checker = PermissionPolicyChecker(permission_policy)


@permission_checker.require_any('add', 'change', 'delete')
@vary_on_headers('X-Requested-With')
def index(request):
    Image = get_image_model()

    # Get images (filtered by user permission)
    images = permission_policy.instances_user_has_any_permission_for(
        request.user, ['change', 'delete']).order_by('-created_at')

    # Search
    query_string = None
    if 'q' in request.GET:
        form = SearchForm(request.GET, placeholder=_("Search images"))
Пример #2
0
)
from wagtail.admin.modal_workflow import render_modal_workflow
from wagtail.admin.views.generic import CreateView, DeleteView, EditView, IndexView
from wagtail.coreutils import resolve_model_string
from wagtail.models import (
    Page,
    Task,
    TaskState,
    UserPagePermissionsProxy,
    Workflow,
    WorkflowState,
)
from wagtail.permissions import task_permission_policy, workflow_permission_policy
from wagtail.workflows import get_task_types

task_permission_checker = PermissionPolicyChecker(task_permission_policy)


class Index(IndexView):
    permission_policy = workflow_permission_policy
    model = Workflow
    context_object_name = "workflows"
    template_name = "wagtailadmin/workflows/index.html"
    add_url_name = "wagtailadmin_workflows:add"
    edit_url_name = "wagtailadmin_workflows:edit"
    index_url_name = "wagtailadmin_workflows:index"
    page_title = _("Workflows")
    add_item_label = _("Add a workflow")
    header_icon = "tasks"

    def show_disabled(self):
Пример #3
0
from django.utils.translation import gettext_lazy

from wagtail.admin import messages
from wagtail.admin.auth import PermissionPolicyChecker
from wagtail.documents import get_document_model
from wagtail.documents.permissions import permission_policy as document_permission_policy
from wagtail.documents.views.documents import delete as document_delete_view
from wagtail.images import get_image_model
from wagtail.images.permissions import permission_policy as image_permission_policy
from wagtail.images.views.images import delete as image_delete_view
from wagtailmedia.models import get_media_model
from wagtailmedia.permissions import permission_policy as media_permission_policy
from wagtailmedia.views.media import delete as media_delete_view


document_permission_checker = PermissionPolicyChecker(document_permission_policy)
image_permission_checker = PermissionPolicyChecker(image_permission_policy)
media_permission_checker = PermissionPolicyChecker(media_permission_policy)

MESSAGE = gettext_lazy('Cannot delete object if used by any page')


@image_permission_checker.require('delete')
def image_safe_delete(request, image_id):
    image = get_object_or_404(get_image_model(), pk=image_id)
    if image.get_usage().exists():
        messages.error(request, MESSAGE)
        return redirect('wagtailimages:edit', image_id=image_id)
    return image_delete_view(request, image_id)