from django.shortcuts import render from django.views.generic import ListView, DetailView, UpdateView from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import PermissionRequiredMixin from .models import Service 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']