views.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. from .forms import ServiceForm
  7. class ServiceMixin(PermissionRequiredMixin):
  8. model = Service
  9. permission_required = 'services.change_service'
  10. class ServiceList(ServiceMixin, ListView):
  11. pass
  12. class ServiceCreate(ServiceMixin, CreateView):
  13. #fields = ('adhesion', 'service_type', 'label', 'notes', 'active',)
  14. form_class = ServiceForm
  15. class ServiceDetail(LoginRequiredMixin, DetailView):
  16. def get_queryset(self):
  17. if self.request.user.is_superuser:
  18. return Service.objects.all()
  19. else:
  20. return Service.objects.filter(adhesion__pk__in=self.request.user.profile.adhesions.values_list('pk')) \
  21. .order_by('-created')
  22. class ServiceUpdate(ServiceMixin, UpdateView):
  23. fields = ('label', 'notes', 'active',)
  24. class ServiceTypeMixin(PermissionRequiredMixin):
  25. model = ServiceType
  26. permission_required = 'services.change_servicetype'
  27. class ServiceTypeList(ServiceTypeMixin, ListView):
  28. pass
  29. class ServiceTypeCreate(ServiceTypeMixin, CreateView):
  30. fields = ('name',)
  31. class ServiceTypeDetail(ServiceTypeMixin, DetailView):
  32. pass
  33. class ServiceTypeUpdate(ServiceTypeMixin, UpdateView):
  34. fields = ('name',)
  35. class IPResourceMixin(PermissionRequiredMixin):
  36. model = IPResource
  37. permission_required = 'services.change_ipresource'
  38. class IPResourceList(IPResourceMixin, ListView):
  39. pass
  40. class IPResourceDetail(IPResourceMixin, DetailView):
  41. pass