예제 #1
0
파일: chooser.py 프로젝트: xus/wagtail
def choose(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)
    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    items = model.objects.all()

    p = request.GET.get("p", 1)
    paginator = Paginator(items, 25)

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

    return render_modal_workflow(
        request, 'wagtailsnippets/chooser/choose.html',
        'wagtailsnippets/chooser/choose.js', {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'items': paginated_items,
        })
예제 #2
0
def choose(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)
    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    items = model.objects.all()

    p = request.GET.get("p", 1)
    paginator = Paginator(items, 25)

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

    return render_modal_workflow(
        request,
        'wagtailsnippets/chooser/choose.html', 'wagtailsnippets/chooser/choose.js',
        {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'items': paginated_items,
        }
    )
예제 #3
0
def choose(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)
    model = content_type.model_class()
    snippet_type_name, snippet_type_name_plural = get_snippet_type_name(
        content_type)

    items = model.objects.all()

    # Search
    is_searchable = class_is_indexed(model)
    is_searching = False
    search_query = None
    if is_searchable and 'q' in request.GET:
        search_form = SearchForm(
            request.GET,
            placeholder=_("Search %(snippet_type_name)s") %
            {'snippet_type_name': snippet_type_name_plural})

        if search_form.is_valid():
            search_query = search_form.cleaned_data['q']

            search_backend = get_search_backend()
            items = search_backend.search(search_query, items)
            is_searching = True

    else:
        search_form = SearchForm(
            placeholder=_("Search %(snippet_type_name)s") %
            {'snippet_type_name': snippet_type_name_plural})

    # Pagination
    paginator, paginated_items = paginate(request, items, per_page=25)

    # If paginating or searching, render "results.html"
    if request.GET.get('results', None) == 'true':
        return render(
            request, "wagtailsnippets/chooser/results.html", {
                'content_type': content_type,
                'snippet_type_name': snippet_type_name,
                'items': paginated_items,
                'query_string': search_query,
                'is_searching': is_searching,
            })

    return render_modal_workflow(
        request, 'wagtailsnippets/chooser/choose.html',
        'wagtailsnippets/chooser/choose.js', {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'items': paginated_items,
            'is_searchable': is_searchable,
            'search_form': search_form,
            'query_string': search_query,
            'is_searching': is_searching,
        })
예제 #4
0
파일: chooser.py 프로젝트: Tivix/wagtail
def choose(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)
    model = content_type.model_class()
    snippet_type_name, snippet_type_name_plural = get_snippet_type_name(content_type)

    items = model.objects.all()

    # Search
    is_searchable = class_is_indexed(model)
    is_searching = False
    search_query = None
    if is_searchable and 'q' in request.GET:
        search_form = SearchForm(request.GET, placeholder=_("Search %(snippet_type_name)s") % {
            'snippet_type_name': snippet_type_name_plural
        })

        if search_form.is_valid():
            search_query = search_form.cleaned_data['q']

            search_backend = get_search_backend()
            items = search_backend.search(search_query, items)
            is_searching = True

    else:
        search_form = SearchForm(placeholder=_("Search %(snippet_type_name)s") % {
            'snippet_type_name': snippet_type_name_plural
        })

    # Pagination
    paginator, paginated_items = paginate(request, items, per_page=25)

    # If paginating or searching, render "results.html"
    if request.GET.get('results', None) == 'true':
        return render(request, "wagtailsnippets/chooser/results.html", {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'items': paginated_items,
            'query_string': search_query,
            'is_searching': is_searching,
        })

    return render_modal_workflow(
        request,
        'wagtailsnippets/chooser/choose.html', 'wagtailsnippets/chooser/choose.js',
        {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'items': paginated_items,
            'is_searchable': is_searchable,
            'search_form': search_form,
            'query_string': search_query,
            'is_searching': is_searching,
        }
    )
예제 #5
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,
                                 })
예제 #6
0
def choose(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)
    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    items = model.objects.all()

    return render_modal_workflow(
        request, 'wagtailsnippets/chooser/choose.html',
        'wagtailsnippets/chooser/choose.js', {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'items': items,
        })
예제 #7
0
def wagtail_search_snippet(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)
    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]
    desired_class = content_type.model_class()
    is_searching = False
    items = model.objects.all()

    if 'q' in request.GET:
        search_form = SearchForm(request.GET)
        if search_form.is_valid() and search_form.cleaned_data['q']:
            items = desired_class.objects.all().filter(content__icontains=search_form.cleaned_data['q'])
            total_items = items.count()
            is_searching = True

    p = request.GET.get("p", 1)
    paginator = Paginator(items, 25)

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

    if not is_searching:
        search_form = SearchForm()

    if is_searching:
        return render(request, 'wagtail_extras/snippet_search/_search_results.html', {
            'querystring': get_querystring(request),
            'searchform': search_form,
            'snippets': paginated_items,
            'snippet_type_name': snippet_type_name,
            'snippet_type': desired_class,
            'app_name': content_type_app_name,
            'model_name': content_type_model_name,
            'total_results': total_items
        })
    return render_modal_workflow(request, 'wagtail_extras/snippet_search/browse.html', 'wagtail_extras/snippet_search/browse.js', {
        'querystring': get_querystring(request),
        'search_form': search_form,
        'snippets': paginated_items,
        'snippet_type_name': snippet_type_name,
        'snippet_type': desired_class,
        'app_name': content_type_app_name,
        'model_name': content_type_model_name
    })
예제 #8
0
파일: chooser.py 프로젝트: dvska/wagtail
def choose(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)
    model = content_type.model_class()
    snippet_type_name = get_snippet_type_name(content_type)[0]

    items = model.objects.all()

    return render_modal_workflow(
        request,
        'wagtailsnippets/chooser/choose.html', 'wagtailsnippets/chooser/choose.js',
        {
            'content_type': content_type,
            'snippet_type_name': snippet_type_name,
            'items': items,
        }
    )
예제 #9
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,
        }
    )
예제 #10
0
def index_objects(request, content_type_app_name, content_type_model_name):
    snippet_types = get_snippet_content_types()
    for content_type in snippet_types:
        if content_type.model.lower().replace(" ",
                                              "") == content_type_model_name:
            model = content_type.model_class()
            items = model.objects.all()
            snippet_type_name, snippet_type_name_plural = get_snippet_type_name(
                content_type)

            return render_modal_workflow(
                request, 'wagtailembedder/snippets/type_index.html',
                'wagtailembedder/snippets/type_index.js', {
                    'content_type': content_type,
                    'snippet_type_name': snippet_type_name,
                    'snippet_type_name_plural': snippet_type_name_plural,
                    'items': items,
                })

    raise ObjectDoesNotExist
예제 #11
0
def index_objects(request, content_type_app_name, content_type_model_name):
    snippet_types = get_snippet_content_types()
    for content_type in snippet_types:
        if content_type.model.lower().replace(" ", "") == content_type_model_name:
            model = content_type.model_class()
            items = model.objects.all()
            snippet_type_name, snippet_type_name_plural = get_snippet_type_name(content_type)

            return render_modal_workflow(
                request,
                'wagtailembedder/snippets/type_index.html',
                'wagtailembedder/snippets/type_index.js',
                {
                    'content_type': content_type,
                    'snippet_type_name': snippet_type_name,
                    'snippet_type_name_plural': snippet_type_name_plural,
                    'items': items,
                }
            )

    raise ObjectDoesNotExist