Files
eparafia/backend/admin.py
2025-06-26 15:57:42 +02:00

60 lines
1.9 KiB
Python

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"]