from django.shortcuts import render from django.views.generic import ListView, CreateView, DetailView, UpdateView from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import PermissionRequiredMixin from .models import Service, ServiceType, IPResource class ServiceMixin(PermissionRequiredMixin): model = Service permission_required = 'services.change_service' class ServiceList(ServiceMixin, ListView): pass class ServiceDetail(LoginRequiredMixin, DetailView): def get_queryset(self): if self.request.user.is_superuser: return Service.objects.all() else: return Service.objects.filter(adhesion__pk__in=self.request.user.profile.adhesions.values_list('pk')) \ .order_by('-created') class ServiceUpdate(ServiceMixin, UpdateView): fields = ['label', 'notes', 'active'] class ServiceTypeMixin(PermissionRequiredMixin): model = ServiceType permission_required = 'services.change_servicetype' class ServiceTypeList(ServiceTypeMixin, ListView): pass class ServiceTypeCreate(ServiceTypeMixin, CreateView): fields = ('name',) class ServiceTypeDetail(ServiceTypeMixin, DetailView): pass class ServiceTypeUpdate(ServiceTypeMixin, UpdateView): fields = ('name',) class IPResourceMixin(PermissionRequiredMixin): model = IPResource permission_required = 'services.change_ipresource' class IPResourceList(IPResourceMixin, ListView): pass class IPResourceDetail(IPResourceMixin, DetailView): pass