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. fields = ('name',)
  27. class ServiceTypeDetail(ServiceTypeMixin, DetailView):
  28. pass
  29. class ServiceTypeUpdate(ServiceTypeMixin, UpdateView):
  30. fields = ('name',)
  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