from django.contrib import admin from ..models import BankTransaction, Rentmeister, StiftungsKonto, Verwaltungskosten @admin.register(Rentmeister) class RentmeisterAdmin(admin.ModelAdmin): list_display = [ "__str__", "email", "telefon", "seit_datum", "bis_datum", "aktiv", "monatliche_verguetung", ] list_filter = ["aktiv", "seit_datum", "anrede"] search_fields = ["vorname", "nachname", "email", "telefon", "ort"] ordering = ["nachname", "vorname"] readonly_fields = ["id", "erstellt_am", "aktualisiert_am"] fieldsets = ( ("Persönliche Daten", {"fields": ("anrede", "vorname", "nachname", "titel")}), ( "Kontaktdaten", {"fields": ("email", "telefon", "mobil", "strasse", "plz", "ort")}, ), ( "Bankdaten", {"fields": ("iban", "bic", "bank_name"), "classes": ["collapse"]}, ), ( "Stiftungsdaten", { "fields": ( "seit_datum", "bis_datum", "aktiv", "monatliche_verguetung", "km_pauschale", ) }, ), ( "Zusätzliche Informationen", {"fields": ("notizen",), "classes": ["collapse"]}, ), ( "System", { "fields": ("id", "erstellt_am", "aktualisiert_am"), "classes": ["collapse"], }, ), ) @admin.register(StiftungsKonto) class StiftungsKontoAdmin(admin.ModelAdmin): list_display = [ "kontoname", "bank_name", "konto_typ", "saldo", "saldo_datum", "aktiv", ] list_filter = ["konto_typ", "aktiv", "bank_name"] search_fields = ["kontoname", "bank_name", "iban"] ordering = ["bank_name", "kontoname"] readonly_fields = ["id", "erstellt_am", "aktualisiert_am"] fieldsets = ( ( "Kontodaten", {"fields": ("kontoname", "bank_name", "iban", "bic", "konto_typ")}, ), ( "Finanzdaten", {"fields": ("saldo", "saldo_datum", "zinssatz", "laufzeit_bis")}, ), ("Status", {"fields": ("aktiv", "notizen")}), ( "System", { "fields": ("id", "erstellt_am", "aktualisiert_am"), "classes": ["collapse"], }, ), ) @admin.register(Verwaltungskosten) class VerwaltungskostenAdmin(admin.ModelAdmin): list_display = [ "bezeichnung", "kategorie", "betrag", "datum", "status", "rentmeister", "konto", ] list_filter = ["kategorie", "status", "datum", "rentmeister", "konto"] search_fields = [ "bezeichnung", "lieferant_firma", "rechnungsnummer", "beschreibung", ] ordering = ["-datum", "-erstellt_am"] readonly_fields = ["id", "erstellt_am", "aktualisiert_am"] date_hierarchy = "datum" fieldsets = ( ( "Grunddaten", {"fields": ("bezeichnung", "kategorie", "betrag", "datum", "status")}, ), ("Zuordnung", {"fields": ("rentmeister", "konto")}), ( "Lieferant/Rechnung", {"fields": ("lieferant_firma", "rechnungsnummer"), "classes": ["collapse"]}, ), ( "Fahrtkosten", { "fields": ("km_anzahl", "km_satz", "von_ort", "nach_ort", "zweck"), "classes": ["collapse"], "description": 'Nur für Kategorie "Fahrtkosten" relevant', }, ), ( "Zusätzliche Informationen", {"fields": ("beschreibung", "notizen"), "classes": ["collapse"]}, ), ( "System", { "fields": ("id", "erstellt_am", "aktualisiert_am"), "classes": ["collapse"], }, ), ) @admin.register(BankTransaction) class BankTransactionAdmin(admin.ModelAdmin): list_display = [ "datum", "konto", "betrag", "empfaenger_zahlungspflichtiger", "transaction_type", "status", "verwaltungskosten", ] list_filter = ["konto", "transaction_type", "status", "datum", "importiert_am"] search_fields = ["verwendungszweck", "empfaenger_zahlungspflichtiger", "referenz"] readonly_fields = ["importiert_am", "import_datei"] ordering = ["-datum", "-importiert_am"] fieldsets = ( ("Basisdaten", {"fields": ("konto", "datum", "valuta", "betrag", "waehrung")}), ( "Transaktionsdetails", { "fields": ( "verwendungszweck", "empfaenger_zahlungspflichtiger", "iban_gegenpartei", "bic_gegenpartei", "referenz", "transaction_type", ) }, ), ("Verwaltung", {"fields": ("status", "kommentare", "verwaltungskosten")}), ( "Import-Information", { "fields": ("import_datei", "importiert_am", "saldo_nach_buchung"), "classes": ("collapse",), }, ), ) def get_queryset(self, request): return ( super().get_queryset(request).select_related("konto", "verwaltungskosten") )