Exemplo n.º 1
0
def index(request):
    snippet_types = [
        (get_snippet_type_name(content_type)[1], get_snippet_type_description(content_type), content_type)
        for content_type in get_snippet_content_types()
        if user_can_edit_snippet_type(request.user, content_type)
    ]
    return render(request, "wagtailsnippets/snippets/index.html", {"snippet_types": snippet_types})
Exemplo n.º 2
0
def index(request):
    snippet_model_opts = [
        model._meta for model in get_snippet_models()
        if user_can_edit_snippet_type(request.user, model)]
    return render(request, 'wagtailsnippets/snippets/index.html', {
        'snippet_model_opts': sorted(
            snippet_model_opts, key=lambda x: x.verbose_name.lower())})
Exemplo n.º 3
0
def delete(request, content_type_app_name, content_type_model_name, id):
    content_type = get_content_type_from_url_params(content_type_app_name,
                                                    content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    instance = get_object_or_404(model, id=id)

    if request.POST:
        instance.delete()
        messages.success(
            request,
            _("{snippet_type} '{instance}' deleted.").format(
                snippet_type=capfirst(snippet_type_name), instance=instance))
        return redirect('wagtailsnippets_list', content_type.app_label,
                        content_type.model)

    return render(
        request, 'wagtailsnippets/snippets/confirm_delete.html', {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'instance': instance,
        })
Exemplo n.º 4
0
def create(request, content_type_app_name, content_type_model_name):
    content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    instance = model()
    edit_handler_class = get_snippet_edit_handler(model)
    form_class = edit_handler_class.get_form_class(model)

    if request.POST:
        form = form_class(request.POST, request.FILES, instance=instance)

        if form.is_valid():
            form.save()

            messages.success(
                request,
                "%s '%s' created." % (capfirst(get_snippet_type_name(content_type)[0]), instance)
            )
            return redirect('wagtailsnippets_list', content_type.app_label, content_type.model)
        else:
            messages.error(request, "The snippet could not be created due to errors.")
            edit_handler = edit_handler_class(instance=instance, form=form)
    else:
        form = form_class(instance=instance)
        edit_handler = edit_handler_class(instance=instance, form=form)

    return render(request, 'wagtailsnippets/snippets/create.html', {
        'content_type': content_type,
        'snippet_type_name': snippet_type_name,
        'edit_handler': edit_handler,
    })
Exemplo n.º 5
0
def list(request, content_type_app_name, content_type_model_name):
    content_type = get_content_type_from_url_params(content_type_app_name,
                                                    content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name, snippet_type_name_plural = get_snippet_type_name(
        content_type)

    items = model.objects.all()

    # Pagination
    p = request.GET.get('p', 1)
    paginator = Paginator(items, 20)

    try:
        paginated_items = paginator.page(p)
    except PageNotAnInteger:
        paginated_items = paginator.page(1)
    except EmptyPage:
        paginated_items = paginator.page(paginator.num_pages)

    return render(
        request, 'wagtailsnippets/snippets/type_index.html', {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'snippet_type_name_plural': snippet_type_name_plural,
            'items': paginated_items,
        })
Exemplo n.º 6
0
def choose_snippet(request, id, content_type_app_name, content_type_model_name):
    """
    Choose snippet and display its representation in the Hallo.js richtext field.
    """

    model = get_snippet_model_from_url_params(content_type_app_name, content_type_model_name)
    if not user_can_edit_snippet_type(request.user, model):
        raise PermissionDenied
    try:
        model.objects.get(id=id)
    except ObjectDoesNotExist:
        return render_modal_workflow(
            request,
            None,
            None,
            {'error': 'Sorry, an error occurred. Contact support or try again later.'}
        )
    embed_html = embed_to_editor_html(id, content_type_app_name, content_type_model_name)

    return render_modal_workflow(
        request,
        None,
        'wagtailembedder/editor/snippet_chosen.js',
        {'embed_html': embed_html}
    )
Exemplo n.º 7
0
def list(request, content_type_app_name, content_type_model_name):
    content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name, snippet_type_name_plural = get_snippet_type_name(content_type)

    items = model.objects.all()

    # Pagination
    p = request.GET.get('p', 1)
    paginator = Paginator(items, 20)

    try:
        paginated_items = paginator.page(p)
    except PageNotAnInteger:
        paginated_items = paginator.page(1)
    except EmptyPage:
        paginated_items = paginator.page(paginator.num_pages)

    return render(request, 'wagtailsnippets/snippets/type_index.html', {
        'content_type': content_type,
        'snippet_type_name': snippet_type_name,
        'snippet_type_name_plural': snippet_type_name_plural,
        'items': paginated_items,
    })
Exemplo n.º 8
0
def delete(request, content_type_app_name, content_type_model_name, id):
    content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    instance = get_object_or_404(model, id=id)

    if request.POST:
        instance.delete()
        messages.success(
            request,
            _("{snippet_type} '{instance}' deleted.").format(
                snippet_type=capfirst(snippet_type_name),
                instance=instance
            )
        )
        return redirect('wagtailsnippets_list', content_type.app_label, content_type.model)

    return render(request, 'wagtailsnippets/snippets/confirm_delete.html', {
        'content_type': content_type,
        'snippet_type_name': snippet_type_name,
        'instance': instance,
    })
Exemplo n.º 9
0
def index(request):
    snippet_types = [(get_snippet_type_name(content_type)[1],
                      get_snippet_type_description(content_type), content_type)
                     for content_type in get_snippet_content_types()
                     if user_can_edit_snippet_type(request.user, content_type)]
    return render(request, 'wagtailsnippets/snippets/index.html', {
        'snippet_types': snippet_types,
    })
Exemplo n.º 10
0
def index(request):
    snippet_types = [(get_snippet_type_name(content_type)[1], content_type)
                     for content_type in get_snippet_content_types()
                     if user_can_edit_snippet_type(request.user, content_type)]
    return render(
        request, 'wagtailsnippets/snippets/index.html', {
            'snippet_types': sorted(snippet_types, key=lambda x: x[0].lower()),
        })
Exemplo n.º 11
0
def index(request):
    snippet_types = [
        (get_snippet_type_name(content_type)[1], content_type)
        for content_type in get_snippet_content_types()
        if user_can_edit_snippet_type(request.user, content_type)
    ]
    return render(
        request,
        "wagtailsnippets/snippets/index.html",
        {"snippet_types": sorted(snippet_types, key=lambda x: x[0].lower())},
    )
Exemplo n.º 12
0
def index(request):
    snippet_types = [
        (
            get_snippet_type_name(content_type)[1],
            get_snippet_type_description(content_type),
            content_type
        )
        for content_type in get_snippet_content_types()
        if user_can_edit_snippet_type(request.user, content_type)
    ]
    return render(request, 'wagtailsnippets/snippets/index.html', {
        'snippet_types': sorted(snippet_types, key=lambda x: x[0].lower()),
    })
Exemplo n.º 13
0
def index(request):
    snippet_types = [
        (get_snippet_type_name(content_type)[1], '', content_type)
        for content_type in get_snippet_content_types()
        if user_can_edit_snippet_type(request.user, content_type)
        and hasattr(content_type.model_class()._meta, 'embedder_snippet')
        and content_type.model_class()._meta.embedder_snippet
    ]
    return render_modal_workflow(request,
                                 'wagtailembedder/snippets/types_list.html',
                                 'wagtailembedder/snippets/types_list.js', {
                                     'snippet_types': snippet_types,
                                 })
Exemplo n.º 14
0
def index(request, template='wagtailsnippets/snippets/index.html'):
    snippet_types = [
        (
            get_snippet_type_name(content_type)[1],
            get_snippet_type_description(content_type),
            content_type
        )
        for content_type in get_snippet_content_types()
        if user_can_edit_snippet_type(request.user, content_type)
    ]
    return render(request, template, {
        'snippet_types': snippet_types,
    })
Exemplo n.º 15
0
def edit(request, content_type_app_name, content_type_model_name, id):
    content_type = get_content_type_from_url_params(content_type_app_name,
                                                    content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    instance = get_object_or_404(model, id=id)
    edit_handler_class = get_snippet_edit_handler(model)
    form_class = edit_handler_class.get_form_class(model)

    if request.POST:
        form = form_class(request.POST, request.FILES, instance=instance)

        if form.is_valid():
            form.save()

            messages.success(request,
                             _("{snippet_type} '{instance}' updated.").format(
                                 snippet_type=capfirst(snippet_type_name),
                                 instance=instance),
                             buttons=[
                                 messages.button(
                                     reverse('wagtailsnippets_edit',
                                             args=(
                                                 content_type_app_name,
                                                 content_type_model_name,
                                                 instance.id,
                                             )), _('Edit'))
                             ])
            return redirect('wagtailsnippets_list', content_type.app_label,
                            content_type.model)
        else:
            messages.error(request,
                           _("The snippet could not be saved due to errors."))
            edit_handler = edit_handler_class(instance=instance, form=form)
    else:
        form = form_class(instance=instance)
        edit_handler = edit_handler_class(instance=instance, form=form)

    return render(
        request, 'wagtailsnippets/snippets/edit.html', {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'instance': instance,
            'edit_handler': edit_handler
        })
Exemplo n.º 16
0
def list(request, content_type_app_name, content_type_model_name):
    content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name, snippet_type_name_plural = get_snippet_type_name(content_type)

    items = model.objects.all()

    return render(request, 'wagtailsnippets/snippets/type_index.html', {
        'content_type': content_type,
        'snippet_type_name': snippet_type_name,
        'snippet_type_name_plural': snippet_type_name_plural,
        'items': items,
    })
Exemplo n.º 17
0
def list(request, content_type_app_name, content_type_model_name):
    content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name, snippet_type_name_plural = get_snippet_type_name(content_type)

    items = model.objects.all()

    return render(request, 'wagtailsnippets/snippets/type_index.html', {
        'content_type': content_type,
        'snippet_type_name': snippet_type_name,
        'snippet_type_name_plural': snippet_type_name_plural,
        'items': items,
    })
Exemplo n.º 18
0
def index(request):
    snippet_types = [(
        get_snippet_type_name(content_type)[1],
        '',
        content_type)
        for content_type in get_snippet_content_types()
        if user_can_edit_snippet_type(request.user, content_type) and hasattr(content_type.model_class()._meta, 'embedder_snippet') and content_type.model_class()._meta.embedder_snippet


    ]
    return render_modal_workflow(
        request,
        'wagtailembedder/snippets/types_list.html',
        'wagtailembedder/snippets/types_list.js',
        {
            'snippet_types': snippet_types,
        }
    )
Exemplo n.º 19
0
def edit(request, content_type_app_name, content_type_model_name, id):
    content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    instance = get_object_or_404(model, id=id)
    edit_handler_class = get_snippet_edit_handler(model)
    form_class = edit_handler_class.get_form_class(model)

    if request.POST:
        form = form_class(request.POST, request.FILES, instance=instance)

        if form.is_valid():
            form.save()

            messages.success(
                request,
                _("{snippet_type} '{instance}' updated.").format(
                    snippet_type=capfirst(snippet_type_name),
                    instance=instance
                ),
                buttons=[
                    messages.button(reverse('wagtailsnippets_edit', args=(content_type_app_name, content_type_model_name, instance.id)), _('Edit'))
                ]
            )
            return redirect('wagtailsnippets_list', content_type.app_label, content_type.model)
        else:
            messages.error(request, _("The snippet could not be saved due to errors."))
            edit_handler = edit_handler_class(instance=instance, form=form)
    else:
        form = form_class(instance=instance)
        edit_handler = edit_handler_class(instance=instance, form=form)

    return render(request, 'wagtailsnippets/snippets/edit.html', {
        'content_type': content_type,
        'snippet_type_name': snippet_type_name,
        'instance': instance,
        'edit_handler': edit_handler
    })
Exemplo n.º 20
0
def edit(request, content_type_app_name, content_type_model_name, id):
    content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    instance = get_object_or_404(model, id=id)
    edit_handler_class = get_snippet_edit_handler(model)
    form_class = edit_handler_class.get_form_class(model)

    if request.POST:
        form = form_class(request.POST, request.FILES, instance=instance)

        if form.is_valid():
            form.save()

            messages.success(
                request,
                _("{snippet_type} '{instance}' updated.").format(
                    snippet_type=capfirst(snippet_type_name), instance=instance
                ),
            )
            return redirect("wagtailsnippets_list", content_type.app_label, content_type.model)
        else:
            messages.error(request, _("The snippet could not be saved due to errors."))
            edit_handler = edit_handler_class(instance=instance, form=form)
    else:
        form = form_class(instance=instance)
        edit_handler = edit_handler_class(instance=instance, form=form)

    return render(
        request,
        "wagtailsnippets/snippets/edit.html",
        {
            "content_type": content_type,
            "snippet_type_name": snippet_type_name,
            "instance": instance,
            "edit_handler": edit_handler,
        },
    )
Exemplo n.º 21
0
def create(request, content_type_app_name, content_type_model_name):
    content_type = get_content_type_from_url_params(content_type_app_name,
                                                    content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied

    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    instance = model()
    edit_handler_class = get_snippet_edit_handler(model)
    form_class = edit_handler_class.get_form_class(model)

    if request.POST:
        form = form_class(request.POST, request.FILES, instance=instance)

        if form.is_valid():
            form.save()

            messages.success(
                request,
                _("{snippet_type} '{instance}' created.").format(
                    snippet_type=capfirst(
                        get_snippet_type_name(content_type)[0]),
                    instance=instance))
            return redirect('wagtailsnippets_list', content_type.app_label,
                            content_type.model)
        else:
            messages.error(
                request, _("The snippet could not be created due to errors."))
            edit_handler = edit_handler_class(instance=instance, form=form)
    else:
        form = form_class(instance=instance)
        edit_handler = edit_handler_class(instance=instance, form=form)

    return render(
        request, 'wagtailsnippets/snippets/create.html', {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'edit_handler': edit_handler,
        })
Exemplo n.º 22
0
def choose_snippet(request, id, content_type_app_name,
                   content_type_model_name):
    content_type = get_content_type_from_url_params(content_type_app_name,
                                                    content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied
    model = content_type.model_class()
    try:
        model.objects.get(id=id)
    except ObjectDoesNotExist:
        return render_modal_workflow(
            request, None, None, {
                'error':
                'Sorry, an error occurred. Contact support or try again later.'
            })
    embed_html = embed_to_editor_html(id, content_type_app_name,
                                      content_type_model_name)

    return render_modal_workflow(request, None,
                                 'wagtailembedder/editor/snippet_chosen.js',
                                 {'embed_html': embed_html})
Exemplo n.º 23
0
def choose_snippet(request, id, content_type_app_name, content_type_model_name):
    content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
    if not user_can_edit_snippet_type(request.user, content_type):
        raise PermissionDenied
    model = content_type.model_class()
    try:
        model.objects.get(id=id)
    except ObjectDoesNotExist:
        return render_modal_workflow(
            request,
            None,
            None,
            {'error': 'Sorry, an error occurred. Contact support or try again later.'}
        )
    embed_html = embed_to_editor_html(id, content_type_app_name, content_type_model_name)

    return render_modal_workflow(
        request,
        None,
        'wagtailembedder/editor/snippet_chosen.js',
        {'embed_html': embed_html}
    )
Exemplo n.º 24
0
def index(request):
    """
    Fetches all human-readabe names of all snippet classes and presents them
    in a list.
    """
    snippet_types = [
        (
            content_type._meta.app_label,
            content_type._meta.model.__name__,
            content_type._meta.verbose_name,
            getattr(content_type._meta, 'description', ''),
        )
        for content_type in get_snippet_models()
        if user_can_edit_snippet_type(request.user, content_type)
    ]
    return render_modal_workflow(
        request,
        'wagtailembedder/snippets/types_list.html',
        'wagtailembedder/snippets/types_list.js',
        {
            'snippet_types': snippet_types,
        }
    )
Exemplo n.º 25
0
 def is_shown(self, request):
     return user_can_edit_snippet_type(request.user, Person)
Exemplo n.º 26
0
 def is_shown(self, request):
     return user_can_edit_snippet_type(request.user, Person)