Beispiel #1
0
def results(request, template_name="search/results.html"):
    # get current search phrase
    q = request.GET.get('q', '')
    slug = request.GET.get('slug', '')
    print(slug)
    # get current page number. Set to 1 is missing or invalid
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page = 1
    # retrieve the matching products
    matching = search.products(q).get('products')
    if len(slug) > 0:
        cat_id = Category.objects.get(slug=slug).id
        matching = search.products2(q, cat_id).get('products')
    print(matching)
    # generate the pagintor object
    paginator = Paginator(matching, settings.PRODUCTS_PER_PAGE)
    try:
        results = paginator.page(page).object_list
    except (InvalidPage, EmptyPage):
        results = paginator.page(1).object_list
    # store the search
    search.store(request, q)
    # the usual...
    page_title = 'Search Results for: ' + q
    return render(request, template_name, locals(), RequestContext(request))
Beispiel #2
0
def thesis_list(request, id, slug):
    conference = get_object_or_404(Conference, pk=id)
    theses = conference.thesis_set.all()
    form = ThesisFilterForm()
    search_form = SearchForm(search_text='Прізвище автора або назва статті')
    sort_param = None
    q = request.GET.get('q', '')
    thesis_message = ''
    if q:
        search_params = ('title', 'author__participant__user__lastname')
        theses = search_objects(q, theses, search_params, sort_param)
        store(request, q)
    section = request.GET.get('section', '')
    if section:
        form = ThesisFilterForm(request.GET)
        if form.is_valid():
            if request.GET.get('section') != 'all':
                theses = theses.filter(section=request.GET.get('section'))
    number_of_search_result = str(len(theses))

    if len(number_of_search_result) == 2 and number_of_search_result.startswith('1'):
        thesis_message = 'доповідей'
    else:
        for i in thesis_message_dict.keys():
            if number_of_search_result[-1] in i:
                thesis_message = thesis_message_dict[i]
    context = paginate(theses, 4, request, {'theses': theses}, var_name='theses')
    context['conference'] = conference
    context['form'] = form
    context['search_form'] = search_form
    context['q'] = q
    context['section'] = section
    context['number_of_search_results'] = number_of_search_result
    context['thesis_message'] = thesis_message
    return render(request, 'conference_app/thesis_list.html', context)
Beispiel #3
0
def results(request, template_name="search/results.html"):
    # get current search phrase
    q = request.GET.get("q", "")
    # get current page number. Set to 1 is missing or invalid
    try:
        page = int(request.GET.get("page", 1))
    except ValueError:
        page = 1
    # retrieve the matching products
    matching = search.products(q).get("products")
    # generate the pagintor object
    paginator = Paginator(matching, settings.PRODUCTS_PER_PAGE)
    try:
        results = paginator.page(page).object_list
    except (InvalidPage, EmptyPage):
        results = paginator.page(1).object_list
    # store the search
    search.store(request, q)
    # the usual...
    page_title = "Search Results for: " + q
    return render(request, template_name, locals())
Beispiel #4
0
def results(request, template_name="search/results.html"):
    # get current search phrase
    q = request.GET.get('q', '')
    # get current page number. Set to 1 is missing or invalid
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page = 1
    # retrieve the matching products
    matching = search.products(q).get('products')
    # generate the pagintor object
    paginator = Paginator(matching, settings.PRODUCTS_PER_PAGE)
    try:
        results = paginator.page(page).object_list
    except (InvalidPage, EmptyPage):
        results = paginator.page(1).object_list
    # store the search
    search.store(request, q)
    # the usual...
    page_title = 'Search Results for: ' + q
    return render(request, template_name, locals())
Beispiel #5
0
def results(request):
    q = request.GET.get('q', '')
    # get current page number. Set to 1 is missing or invalid
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page=1
    
    matching = search.products(q).get('products')
    # generate the pagintor object
    paginator = Paginator(matching,settings.PRODUCTS_PER_PAGE)
    
    try:
        results = paginator.page(page).object_list #list of matching products
    except (InvalidPage, EmptyPage):
        results = paginator.page(1).object_list
        
    search.store(request, q)

    page_title = 'Search Results for: ' + q
    return render_to_response("search/results.html", locals(),context_instance=RequestContext(request))
Beispiel #6
0
def products_search_results(request):
    products = Product.objects.all()
    q = request.GET.get('q', '')
    sort = request.GET.get('sort', '')
    sort_param = sort_dict.get(sort, None)
    search_params = ('name', 'category__name')
    matches = search.search_objects(q, products, search_params, sort_param)
    matches_len = len(matches)
    message = ''
    if len(str(matches_len)) == 2 and str(matches_len).startswith('1'):
        message = 'товарів'
    else:
        for i in dict_message.keys():
            if str(matches_len)[-1] in i:
                message = dict_message[i]

    context = paginate(matches, 12, request, {'matches': matches}, var_name='matches')
    context['q'] = q
    context['sort'] = sort
    context['matches_len'] = matches_len
    context['message'] = message
    search.store(request, q)
    return render(request, 'shop/product_search.html', context)
Beispiel #7
0
def results(request, template_name="results.html"):
    """ template for displaying settings.PRODUCTS_PER_PAGE paginated product results """
    # get current search phrase
    q = request.GET.get('q', '')
    matching = search.products(q).get('books', [])

    #---------------------pagination------------------------------------------------#

    try:
        page = int(request.GET.get('page', 1))  ## page number goes here
    except ValueError:
        page = 1
    paginator = Paginator(matching, settings.BOOKS_PER_PAGE)
    try:
        results = paginator.page(page).object_list
    except (InvalidPage, EmptyPage):
        results = paginator.page(1).object_list
#-----------------------------------------------------------------------------#

    search.store(request, q)
    page_title = 'Search Results for: ' + q
    context = locals()
    return render(request, template_name, context)
Beispiel #8
0
def results(request, template_name = "search/results.html"):

    q = request.GET.get('q', '')

    try:
        page = int(request.GET.get('page', 1))

    except ValueError:
        page = 1

    matching = search.products(q).get('products')
    json_products = serializers.serialize('json', matching)
    paginator = Paginator(matching, 9)

    try:
        results = paginator.page(page).object_list

    except (InvalidPage, EmptyPage):
        results = paginator.page(1).object_list

    search.store(request, q)
    page_title = 'Search Results for: '+ q

    return render_to_response(template_name, locals(), context_instance = RequestContext(request))
Beispiel #9
0
def results(request):
    # get current search phrase
    q = request.GET.get('q', '')
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page = 1

    # retrieve the matching products
    # matching = search.products(q).get('products', [])
    # print(matching)

    # retrieve the matching products
    matching = search.products(q).get('products')
    print(matching)

    # generate the pagintor object
    paginator = Paginator(matching, 12)
    try:
        results = paginator.page(page).object_list
    except (InvalidPage, EmptyPage):
        results = paginator.page(1).object_list

    # store the search
    search.store(request, q)

    page_title = 'Search Results for: ' + q
    return render(request, "search/results.html", {'q': q})


# def results(request):
#     """ template for displaying settings.PRODUCTS_PER_PAGE paginated product results """
#     # get current search phrase
#     q = request.GET.get('q', '')
#     # get current page number. Set to 1 is missing or invalid
#     try:
#         page = int(request.GET.get('page', 1))
#     except ValueError:
#         page = 1

#     matching = search.products(q).get('products', [])
#     # generate the pagintor object
#     paginator = Paginator(matching,
#                           settings.PRODUCTS_PER_PAGE)
#     try:
#         results = paginator.page(page).object_list
#     except (InvalidPage, EmptyPage):
#         results = paginator.page(1).object_list

#     search.store(request, q)

#     page_title = 'Search Results for: ' + q
#     return render_to_response(template_name, locals(), context_instance=RequestContext(request))

# from django.core.paginator import Paginator
# PAGE_SIZE = 20

# def all_babysitters(request):
#     p = request.query_params.get("page", 1)
#     babysitters = Babysitter.objects.all()
#     paginator = Paginator(babysitters, PAGE_SIZE)
#     # page = paginator.page(p) # ~ Django 1.11
#     # The following line was added, see comments below for why
#     page = paginator.get_page(p) # Django 2.0 +
#     nextpage = page.next_page_number() if page.has_next() else None
#     data = BabySitterSerializer([i for i in page.object_list], many=True)
#     pages = {
#         "current": p,
#         "next": nextpage,
#         "total_pages": paginator.num_pages
#         "total_results": paginator.count
#     }
#     return {
#          "page_data": pages
#          "data": data
#     }