from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin from django.views.generic import ListView from booking.models import Booking class BookingListView(LoginRequiredMixin, UserPassesTestMixin, ListView): template_name = 'employee/booking-list.html' model = Booking context_object_name = 'objects' paginate_by = 20 def test_func(self): user = self.request.user return self.request.user.user_type == 'EMP' or user.is_superuser def get_queryset(self): queryset = super().get_queryset() data_filter = self.request.GET.get('filter') if data_filter != 'all': queryset = queryset.filter(status='active') queryset = queryset.order_by('-created_on') return queryset