Exemplo n.º 1
0
def bookings(request):
    user = request.user
    artist = Artist.objects.get(user=user)
    bookings = Booking.objects.select_related().filter(artist=artist)

    if request.method == 'POST':
        sn = request.POST.get('sn', None)
        sn_approve = request.POST.get('sn_approve', None)

        if sn:
            b = Booking.objects.get(id=int(sn))
            if b.status == 0:
                decline_booking_request, cancel_booking_request(
                    artist.user, b.client.user, b.listing)
            else:
                cancel_booking_request(artist.user, b.client.user, b.listing)
            b.status = 2
            b.cancelled_by = 1
            b.save()
            void_authorization(b.id)

        elif sn_approve:
            b = Booking.objects.get(id=int(sn_approve))
            accept_booking_request(artist.user, b.client.user, b.listing)
            b.status = 1
            b.cancelled_by = 1
            b.save()

        return redirect(reverse("artists_bookings"))

    bookings = paginator(request, bookings, 10)
    return render(request, 'artists/bookings.html', {"bookings": bookings})
Exemplo n.º 2
0
def bookings(request):
    user = request.user
    artist = Artist.objects.get(user=user)
    bookings = Booking.objects.select_related().filter(artist=artist)

    if request.method == 'POST':
        sn = request.POST.get('sn', None)
        sn_approve = request.POST.get('sn_approve', None)

        if sn:
            b = Booking.objects.get(id=int(sn))
            if b.status == 0:
                decline_booking_request, cancel_booking_request(artist.user, b.client.user, b.listing)
            else:
                cancel_booking_request(artist.user, b.client.user, b.listing)
            b.status = 2
            b.cancelled_by = 1
            b.save()
            void_authorization(b.id)

        elif sn_approve:
            b = Booking.objects.get(id=int(sn_approve))
            accept_booking_request(artist.user, b.client.user, b.listing)
            b.status = 1
            b.cancelled_by = 1
            b.save()

        return redirect(reverse("artists_bookings"))

    bookings = paginator(request, bookings, 10)
    return render(request, 'artists/bookings.html', {"bookings": bookings})
Exemplo n.º 3
0
def bookings(request):
    user = request.user
    if request.method == 'POST':
        sn = request.POST.get('sn', None)
        is_sanction = request.POST.get('cancellation_policy', None)
        b = Booking.objects.get(id=int(sn))
        if sn and not is_sanction:
            cancel_booking_request(user, b.artist.user, b.listing)
            void_authorization(b.id)
        elif sn and is_sanction:
            partially_capture(b.id)
            cancel_booking_request(user, b.artist.user, b.listing)

        b.status = 2
        b.cancelled_by = 2
        b.save()

        return redirect(reverse("profiles_bookings"))

    profile = Profile.objects.select_related().get(user_id=user.id)
    temp_bookings = Booking.objects.select_related().filter(client=profile).order_by('-start_time')
    bookings = []
    for t in temp_bookings:
        booking = {}
        booking["id"] = t.id
        booking["title"] = t.title
        booking["listing_id"] = t.listing_id
        booking["artist_id"] = t.artist_id
        booking["artist_avatar"] = t.artist.get_avatar()
        booking["artist_name"] = t.artist.user.first_name
        booking["price"] = t.price
        booking["currency"] = t.artist.currency
        booking["status"] = t.get_status_display()
        booking["start_time"] = t.start_time
        booking["listing"] = t.listing.get_picture()
        booking["days_before"] = t.cancellation_policy.days_before
        booking["percent"] = t.cancellation_policy.percent
        booking["dialog"] = 1 if t.status == 1 else 0
        bookings.append(booking)

    bookings = paginator(request, bookings, 10)
    return render(request, 'user/bookings.html', {"bookings": bookings})