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})
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})
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})