Fixed Error on Allowed booking days by user
This commit is contained in:
parent
e1a43f1d29
commit
a44e4f4733
2 changed files with 13 additions and 3 deletions
|
@ -81,6 +81,10 @@ class BookingDateForm(forms.Form):
|
||||||
end_date = forms.DateField(required=False,
|
end_date = forms.DateField(required=False,
|
||||||
widget=forms.TextInput(attrs={'id': 'booking-date-2'}))
|
widget=forms.TextInput(attrs={'id': 'booking-date-2'}))
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self.user = kwargs.pop('user')
|
||||||
|
super(BookingDateForm, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
def clean_start_date(self):
|
def clean_start_date(self):
|
||||||
start_date = self.cleaned_data.get('start_date')
|
start_date = self.cleaned_data.get('start_date')
|
||||||
if not start_date:
|
if not start_date:
|
||||||
|
@ -94,7 +98,6 @@ class BookingDateForm(forms.Form):
|
||||||
return end_date
|
return end_date
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
|
|
||||||
start_date = self.cleaned_data.get('start_date')
|
start_date = self.cleaned_data.get('start_date')
|
||||||
end_date = self.cleaned_data.get('end_date')
|
end_date = self.cleaned_data.get('end_date')
|
||||||
|
|
||||||
|
@ -104,8 +107,10 @@ class BookingDateForm(forms.Form):
|
||||||
if start_date > end_date:
|
if start_date > end_date:
|
||||||
raise forms.ValidationError("Your end date must be greather than your start date.")
|
raise forms.ValidationError("Your end date must be greather than your start date.")
|
||||||
|
|
||||||
q1 = Q(start_date__lte=start_date, end_date__gte=start_date)
|
q1 = Q(bookingorder__customer__user=self.user,
|
||||||
q2 = Q(start_date__gt=start_date, start_date__lte=end_date)
|
start_date__lte=start_date, end_date__gte=start_date)
|
||||||
|
q2 = Q(bookingorder__customer__user=self.user,
|
||||||
|
start_date__gt=start_date, start_date__lte=end_date)
|
||||||
if Booking.objects.filter(q1 | q2).exists():
|
if Booking.objects.filter(q1 | q2).exists():
|
||||||
raise forms.ValidationError("You already have a booking in these dates.")
|
raise forms.ValidationError("You already have a booking in these dates.")
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,11 @@ class BookingSelectDatesView(LoginRequiredMixin, MembershipRequiredMixin, FormVi
|
||||||
login_url = reverse_lazy('digitalglarus:login')
|
login_url = reverse_lazy('digitalglarus:login')
|
||||||
success_url = reverse_lazy('digitalglarus:booking_payment')
|
success_url = reverse_lazy('digitalglarus:booking_payment')
|
||||||
|
|
||||||
|
def get_form_kwargs(self):
|
||||||
|
kwargs = super(BookingSelectDatesView, self).get_form_kwargs()
|
||||||
|
kwargs.update({'user': self.request.user})
|
||||||
|
return kwargs
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
start_date = form.cleaned_data.get('start_date')
|
start_date = form.cleaned_data.get('start_date')
|
||||||
|
|
Loading…
Reference in a new issue