Ejemplo n.º 1
0
    def get(self, request, *args, **kwargs):
        """Filtering the results based on price, site choice etc."""
        result_error = ""
        # storing the search results in 'results' and applying filters to it'
        result = cache.get('product_result')
        if request.is_ajax():
            form2 = DashboardFilterForm(request.GET)
            if form2.is_valid():
                filter_data = form2.cleaned_data
                if result:

                    # sorting price of the result in ascending order
                    if filter_data['price_sort'] == 'LH':
                        result = result.order_by('price')
                    # sorting price of the result in descending order
                    elif filter_data['price_sort'] == 'HL':
                        result = result.order_by('-price')

                    # filtering the results for both amazon and flipkart,
                    # i.e when user check both flipkart and amzon
                    if filter_data['amazon'] and filter_data['flipkart']:
                        pass
                    # filtering the results which are only from amazon
                    elif filter_data['amazon']:
                        result = result.filter(
                            Q(site_reference__icontains='amazon'))
                    # filtering the results which are only from flipkart
                    elif filter_data['flipkart']:
                        result = result.filter(
                            Q(site_reference__icontains='flipkart'))

                # when no results are found, display the error message,
                # set the result error flag to true
                else:

                    # make result to none.
                    result = None
                    result_error = True

            else:
                logger = logging.getLogger(constants.LOGGER)
                logger.error("Wrong data")

            # create the context
            ctx = {'result': result, 'dashboard_result_error': result_error}
            html = render_to_string(
                'home/result.html', ctx,
                context_instance=RequestContext(request))
            # encoding it to json
            json_data = {'result': html}
            # sending the json response
            return HttpResponse(
                json.dumps(json_data), content_type='application/json')

        # Contexts to send in html.
        ctx = {
            'title': 'Dashboard page', 'dashboard': 'active',
            'form2': form2}
        return render(request, self.template_name, ctx)
Ejemplo n.º 2
0
def dashboard_filter(request):
    """View for dashboard filter."""
    # Creating form object.
    form = DashboardSearchForm()
    form2 = DashboardFilterForm()

    # If method is ajax
    if request.is_ajax():
        # Getting the searched results from cache.
        result = cache.get('result_product')

        # Creating form object.
        form2 = DashboardFilterForm(request.GET)

        feedback = None

        if form2.is_valid():

            filter_data = form2.cleaned_data

            if result:
                # Filtering with respect to price.
                if filter_data['price_sort'] == 'LH':
                    result = result.order_by('price')
                elif filter_data['price_sort'] == 'HL':
                    result = result.order_by('-price')

                # Filtering with respect to site preferrence.
                if filter_data['amazon'] and filter_data['flipkart']:
                    pass
                elif filter_data['amazon']:
                    result = result.filter(
                        Q(site_reference__icontains='amazon'))
                elif filter_data['flipkart']:
                    result = result.filter(
                        Q(site_reference__icontains='flipkart'))

            else:
                # Make result to none.
                result = None

                # Send feedback.
                feedback = "Search in Scrap page "

        # Context to send in html.
        ctx = {'result': result, 'dashboard_feedback': feedback}

        # Passing the context to html and rendering to string.
        # Store it in result variable.
        result_html = render_to_string(
            'dashboard/result.html', ctx,
            context_instance=RequestContext(request))

        # dictionary to pass in json.dumps.
        json_data = {'result': result_html}

        # Send HttpResponse using json.dumps.
        return HttpResponse(
            json.dumps(json_data), content_type='application/json')

    # Contexts to send in html.
    ctx = {'title': 'Dashboard page', 'dashboard': 'active',
           'form': form, 'form2': form2}
    return render(request, "dashboard/dashboard.html", ctx)
Ejemplo n.º 3
0
    def get(self, request, *args, **kwargs):
        """Filtering the results based on price, site choice etc."""
        result_error = ""
        # storing the search results in 'results' and applying filters to it'
        result = cache.get('product_result')
        if request.is_ajax():
            form2 = DashboardFilterForm(request.GET)
            if form2.is_valid():
                filter_data = form2.cleaned_data
                if result:

                    # sorting price of the result in ascending order
                    if filter_data['price_sort'] == 'LH':
                        result = result.order_by('price')
                    # sorting price of the result in descending order
                    elif filter_data['price_sort'] == 'HL':
                        result = result.order_by('-price')

                    # filtering the results for both amazon and flipkart,
                    # i.e when user check both flipkart and amzon
                    if filter_data['amazon'] and filter_data['flipkart']:
                        pass
                    # filtering the results which are only from amazon
                    elif filter_data['amazon']:
                        result = result.filter(
                            Q(site_reference__icontains='amazon'))
                    # filtering the results which are only from flipkart
                    elif filter_data['flipkart']:
                        result = result.filter(
                            Q(site_reference__icontains='flipkart'))

                # when no results are found, display the error message,
                # set the result error flag to true
                else:

                    # make result to none.
                    result = None
                    result_error = True

            else:
                logger = logging.getLogger(constants.LOGGER)
                logger.error("Wrong data")

            # create the context
            ctx = {'result': result, 'dashboard_result_error': result_error}
            html = render_to_string('home/result.html',
                                    ctx,
                                    context_instance=RequestContext(request))
            # encoding it to json
            json_data = {'result': html}
            # sending the json response
            return HttpResponse(json.dumps(json_data),
                                content_type='application/json')

        # Contexts to send in html.
        ctx = {
            'title': 'Dashboard page',
            'dashboard': 'active',
            'form2': form2
        }
        return render(request, self.template_name, ctx)