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,
 | 
			
		||||
                               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):
 | 
			
		||||
        start_date = self.cleaned_data.get('start_date')
 | 
			
		||||
        if not start_date:
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +98,6 @@ class BookingDateForm(forms.Form):
 | 
			
		|||
        return end_date
 | 
			
		||||
 | 
			
		||||
    def clean(self):
 | 
			
		||||
 | 
			
		||||
        start_date = self.cleaned_data.get('start_date')
 | 
			
		||||
        end_date = self.cleaned_data.get('end_date')
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -104,8 +107,10 @@ class BookingDateForm(forms.Form):
 | 
			
		|||
        if start_date > end_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)
 | 
			
		||||
        q2 = Q(start_date__gt=start_date, start_date__lte=end_date)
 | 
			
		||||
        q1 = Q(bookingorder__customer__user=self.user,
 | 
			
		||||
               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():
 | 
			
		||||
            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')
 | 
			
		||||
    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):
 | 
			
		||||
        user = self.request.user
 | 
			
		||||
        start_date = form.cleaned_data.get('start_date')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue