101 lines
2.9 KiB
Python
101 lines
2.9 KiB
Python
from django.contrib import admin
|
|
|
|
from .forms import RentalAdminForm, RentalItemAdminForm
|
|
from .models import Rental, RentalItem
|
|
|
|
|
|
@admin.register(Rental)
|
|
class RentalAdmin(admin.ModelAdmin):
|
|
form = RentalAdminForm
|
|
model = Rental
|
|
|
|
list_display = [
|
|
"id",
|
|
"firstname",
|
|
"surname",
|
|
"status",
|
|
"total_disposit",
|
|
"date_start",
|
|
"date_end",
|
|
]
|
|
ordering = ["-id"]
|
|
|
|
readonly_fields = ["total_disposit"]
|
|
|
|
fieldsets = (
|
|
(
|
|
"Persönliche Daten",
|
|
{
|
|
"fields": (
|
|
("firstname", "surname"),
|
|
("organization", "matriculation_number"),
|
|
("email", "phone"),
|
|
),
|
|
},
|
|
),
|
|
(
|
|
"Verleih",
|
|
{
|
|
"fields": (
|
|
("date_start", "date_end"),
|
|
"reason",
|
|
"rentalitems",
|
|
"total_disposit",
|
|
),
|
|
},
|
|
),
|
|
(
|
|
"Sonstiges",
|
|
{
|
|
"fields": (
|
|
"comment",
|
|
"status",
|
|
),
|
|
},
|
|
),
|
|
)
|
|
|
|
def add_view(self, request, form_url="", extra_context=None):
|
|
extra_context = extra_context or {}
|
|
extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
|
|
return super().add_view(request, form_url, extra_context=extra_context)
|
|
|
|
def change_view(self, request, object_id, form_url="", extra_context=None):
|
|
extra_context = extra_context or {}
|
|
extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
|
|
return super().change_view(request, object_id, form_url, extra_context=extra_context)
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
obj.author = request.user
|
|
super().save_model(request, obj, form, change)
|
|
|
|
@admin.display(description="Kaution (EUR)")
|
|
def total_disposit(self, obj):
|
|
total_disposit = 0
|
|
for elem in obj.rentalitems.all():
|
|
total_disposit += elem.deposit
|
|
|
|
return f"{total_disposit}"
|
|
|
|
|
|
@admin.register(RentalItem)
|
|
class RentalItemAdmin(admin.ModelAdmin):
|
|
form = RentalItemAdminForm
|
|
model = RentalItem
|
|
|
|
ordering = ["name"]
|
|
|
|
def add_view(self, request, form_url="", extra_context=None):
|
|
extra_context = extra_context or {}
|
|
extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
|
|
return super().add_view(request, form_url, extra_context=extra_context)
|
|
|
|
def change_view(self, request, object_id, form_url="", extra_context=None):
|
|
extra_context = extra_context or {}
|
|
extra_context["help_text"] = "Fette Schriften sind Pflichtfelder."
|
|
return super().change_view(request, object_id, form_url, extra_context=extra_context)
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
obj.author = request.user
|
|
super().save_model(request, obj, form, change)
|