from django.contrib import admin from picampaign.campaign.models import (Campaign, CampaignContact, Argumentary) class InlineContact(admin.TabularInline): model = CampaignContact class CampaignAdmin(admin.ModelAdmin): inlines = [InlineContact] def get_queryset(self, request): qs = super(CampaignAdmin, 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 CampaignContactAdmin(admin.ModelAdmin): def get_queryset(self, request): qs = super(CampaignContactAdmin, 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(campaign__organization__in=user_orgs) class ArgumentaryAdmin(admin.ModelAdmin): def get_queryset(self, request): qs = super(ArgumentaryAdmin, 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(campaign__organization__in=user_orgs) admin.site.register(Campaign, CampaignAdmin) admin.site.register(CampaignContact, CampaignContactAdmin) admin.site.register(Argumentary, ArgumentaryAdmin)