views.py 859 B

12345678910111213141516171819202122232425262728
  1. from django.shortcuts import render
  2. from django.views.generic import ListView, DetailView, UpdateView
  3. from django.contrib.auth.mixins import LoginRequiredMixin
  4. from django.contrib.auth.mixins import PermissionRequiredMixin
  5. from .models import Service
  6. class ServiceMixin(PermissionRequiredMixin):
  7. model = Service
  8. permission_required = 'services.change_service'
  9. class ServiceList(ServiceMixin, ListView):
  10. pass
  11. class ServiceDetail(LoginRequiredMixin, DetailView):
  12. def get_queryset(self):
  13. if self.request.user.is_superuser:
  14. return Service.objects.all()
  15. else:
  16. return Service.objects.filter(adhesion__pk__in=self.request.user.profile.adhesions.values_list('pk')) \
  17. .order_by('-created')
  18. class ServiceUpdate(ServiceMixin, UpdateView):
  19. fields = ['label', 'notes', 'active']