Пример #1
0
def home(request):
    new_services = Service.objects.all().order_by('-id')[0:5]

    new_solds = []
    for srv in new_services:
        new_solds.append(sold_count(srv.sold_number))


    if request.user.is_authenticated():
        try:
            if request.user.site_user is not None:
                if request.user.site_user.get_fields()['super_type'] == 'tourist':
                    recomended_services = send_recommended_mail(request.user.id)

                    recomended_solds = []
                    for srv in recomended_services:
                        recomended_solds.append(sold_count(srv.sold_number))

                    return render(request, 'base/home.html',{
                    'new_services': zip(new_services, new_solds),
                    'recomended_services': zip(recomended_services, recomended_solds)
                    })
        except:
            pass
    return render(request, 'base/home.html',{
        'new_services': zip(new_services, new_solds),
        'pics': AdvertiseBox.load()
    })
Пример #2
0
def show_type_service_list_view(request, type):
    max_price = 0
    max_price = Tour.objects.all().latest('price')
    max_price = Flight.objects.all().latest('price') if (Flight.objects.all().latest('price').price > max_price.price) else max_price
    max_price = Room.objects.all().latest('price') if (Room.objects.all().latest('price').price > max_price.price) else max_price
    if request.method == 'POST':
        form = SearchServiceListForm(request.POST)
        if form.is_valid():
            str = form.cleaned_data['price_range']
            rng = [int(s) for s in str.split() if s.isdigit()]
            origin = form.cleaned_data['origin']
            destination = form.cleaned_data['destination']
            start_date = form.cleaned_data['start_date']
            end_date = form.cleaned_data['end_date']



            if type == 'tour':
                service = Tour.objects.filter(price__lte=rng[0], price__gte=rng[1])
                if origin != None:
                    # print('origin')
                    service = service.filter(origin__name=origin.name)
                if destination != None:
                    # print('destination')
                    service = service.filter(destination__name=destination.name)
                if start_date != None:
                    # print(start_date)
                    service = service.filter(going_date__gte=start_date)
                if end_date != None:
                    # print(end_date)
                    service = service.filter(return_date__lte=end_date)

            elif type == 'flight':
                service = Flight.objects.filter(price__lte=rng[0], price__gte=rng[1])

                if origin != None:
                    # print('origin')
                    service = service.filter(origin__name=origin.name)
                if destination != None:
                    # print('destination')
                    service = service.filter(destination__name=destination.name)
                if start_date != None:
                    # print(start_date)
                    service = service.filter(date__gte=start_date)
                if end_date != None:
                    # print(end_date)
                    service = service.filter(date__lte=end_date)

            elif type == 'room':
                service = Room.objects.filter(price__lte=rng[0], price__gte=rng[1])

                if origin != None:
                    # print('origin')
                    service = service.filter(origin=origin)
                if destination != None:
                    # print('destination')
                    service = service.filter(destination__name=destination.name)
                if start_date != None:
                    # print(start_date)
                    service = service.filter(start_date__gte=start_date)
                if end_date != None:
                    # print(end_date)
                    service = service.filter(end_date__lte=end_date)
        else:
            return HttpResponse(form.errors)

        solds = []

        for srv in service:
            solds.append(sold_count(srv.sold_number));

        return render(request, 'type_service_list.html', {
            'service_sold': zip(service, solds),
            'type': type,
            'form': form,
            'max_price': max_price
        })
    elif request.method == 'GET':
        form = SearchServiceListForm

        if type == 'tour':
            service = Tour.objects.all()
            max_price = Tour.objects.all().latest('price')

        elif type == 'flight':
            service = Flight.objects.all()
            max_price = Flight.objects.all().latest('price')

        elif type == 'room':
            service = Room.objects.all()
            max_price = Room.objects.all().latest('price')

        solds = []

        for srv in service:
            solds.append(sold_count(srv.sold_number));

        return render(request, 'type_service_list.html', {
            'service_sold': zip(service, solds),
            'max_price': max_price,
            'type': type,
            'form': form


        })