views.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from django.shortcuts import render
  2. from django.views.generic import ListView, CreateView, DetailView, UpdateView
  3. from django.contrib.auth.mixins import LoginRequiredMixin
  4. from django.contrib.auth.mixins import PermissionRequiredMixin
  5. from .models import Service, ServiceType, IPResource
  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']
  20. class ServiceTypeMixin(PermissionRequiredMixin):
  21. model = ServiceType
  22. permission_required = 'services.change_servicetype'
  23. class ServiceTypeList(ServiceTypeMixin, ListView):
  24. pass
  25. class ServiceTypeCreate(ServiceTypeMixin, CreateView):
  26. pass
  27. class ServiceTypeDetail(ServiceTypeMixin, DetailView):
  28. pass
  29. class ServiceTypeUpdate(ServiceTypeMixin, UpdateView):
  30. pass
  31. class IPResourceMixin(PermissionRequiredMixin):
  32. model = IPResource
  33. permission_required = 'services.change_ipresource'
  34. class IPResourceList(IPResourceMixin, ListView):
  35. pass
  36. class IPResourceDetail(IPResourceMixin, DetailView):
  37. pass