from django.contrib import admin from .models import Parish, Submission, Priest from authtools.models import User # Register your models here. @admin.register(Priest) class PriestAdmin(admin.ModelAdmin): list_display = ["priest", "parish"] def get_form(self, request, obj=None, **kwargs): form = super(PriestAdmin, self).get_form(request, obj, **kwargs) form.base_fields["priest"].queryset = User.objects.filter(is_staff=True) return form @admin.register(Submission) class SubmissionAdmin(admin.ModelAdmin): list_display = ["id", "parish", "user", "name", "phone", "adres"] def get_exclude(self, request, obj=None): if not request.user.is_superuser: return ["parish", "user"] return [] def get_queryset(self, request): qs = super().get_queryset(request) if not request.user.is_superuser: p = request.user.priest_rel.parish if request.user.priest_rel else None return qs.filter(parish=p) return qs def get_changeform_initial_data(self, request): initial = super(SubmissionAdmin, self).get_changeform_initial_data(request) if not request.user.is_superuser: p = request.user.priest_rel.parish if request.user.priest_rel else None return {"parish": p, **initial} return initial def get_form(self, request, obj=None, **kwargs): form = super(SubmissionAdmin, self).get_form(request, obj, **kwargs) return form def save_model(self, request, obj, form, change): if not request.user.is_superuser: p = request.user.priest_rel.parish if request.user.priest_rel else None obj.parish = p super().save_model(request, obj, form, change) @admin.register(Parish) class ParishAdmin(admin.ModelAdmin): list_display = ["slug", "name", "visible", "submissions"]