from django.contrib import admin from picampaign.organization.models import (Organization, Group, GroupType, FeedbackCategory) class OrganizationAdmin(admin.ModelAdmin): def get_queryset(self, request): qs = super(OrganizationAdmin, self).get_queryset(request) if request.user.is_superuser: return qs user_orgs = [x.id for x in request.user.organizations.all()] return qs.filter(id__in=user_orgs) class GroupTypeAdmin(admin.ModelAdmin): def get_queryset(self, request): qs = super(GroupTypeAdmin, self).get_queryset(request) if request.user.is_superuser: return qs user_orgs = [x.id for x in request.user.organizations.all()] return qs.filter(organization__in=user_orgs) class GroupAdmin(admin.ModelAdmin): def get_queryset(self, request): qs = super(GroupAdmin, self).get_queryset(request) if request.user.is_superuser: return qs user_orgs = [x.id for x in request.user.organizations.all()] return qs.filter(organization__in=user_orgs) class CategoryAdmin(admin.ModelAdmin): def get_queryset(self, request): qs = super(CategoryAdmin, self).get_queryset(request) if request.user.is_superuser: return qs user_orgs = [x.id for x in request.user.organizations.all()] return qs.filter(organization__in=user_orgs) admin.site.register(Organization, OrganizationAdmin) admin.site.register(GroupType, GroupTypeAdmin) admin.site.register(Group, GroupAdmin) admin.site.register(FeedbackCategory, CategoryAdmin)