class SiteGeneralContentAdmin(admin.ModelAdmin): fields = public_fields(SiteGeneralContent) def get_form(self, request, obj=None, **kwargs): form = super().get_form(request, obj, **kwargs) form.base_fields['hero_content'].widget = CKEditorWidget() form.base_fields['action_list_lead_content'].widget = CKEditorWidget() form.base_fields[ 'indicator_list_lead_content'].widget = CKEditorWidget() form.base_fields['dashboard_lead_content'].widget = CKEditorWidget() return form def get_queryset(self, request): qs = super().get_queryset(request) plan = request.user.get_active_admin_plan() return qs.filter(plan=plan) def has_add_permission(self, request, obj=None): plan = request.user.get_active_admin_plan() if SiteGeneralContent.objects.filter(plan=plan).exists(): return False return request.user.is_general_admin_for_plan(plan) def has_delete_permission(self, request, obj=None): return False def save_model(self, request, obj, form, change): obj.plan = request.user.get_active_admin_plan() super().save_model(request, obj, form, change)
class Meta: model = Plan fields = public_fields( Plan, add_fields=['url'], remove_fields=[ 'static_pages', 'general_content', 'blog_posts', 'indicator_levels', 'monitoring_quality_points' ] ) filterset_fields = { 'identifier': ('exact',), }
class Meta: model = ImpactGroup fields = public_fields(ImpactGroup, remove_fields=['actions'])
class Meta: model = Action fields = public_fields(Action, remove_fields=[ 'responsible_parties', 'contact_persons', 'impact', 'status_updates', 'monitoring_quality_points' ])
class Meta: model = SiteGeneralContent only_fields = public_fields(SiteGeneralContent)
class Meta: model = IndicatorGoal only_fields = public_fields(IndicatorGoal)
class Meta: model = ImpactGroup only_fields = public_fields(ImpactGroup, remove_fields=['name'])
class Meta: model = Scenario only_fields = public_fields(Scenario)
class Meta: model = Plan only_fields = public_fields(Plan, remove_fields=['image_url'])