60 lines
1.9 KiB
Python
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"]
|