wizyta oraz widok księdza
This commit is contained in:
59
backend/admin.py
Normal file
59
backend/admin.py
Normal file
@ -0,0 +1,59 @@
|
||||
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"]
|
Reference in New Issue
Block a user