43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
# backend/modules/invoicing/admin.py
|
|
|
|
from django.contrib import admin
|
|
from .models import InvoiceTransaction
|
|
|
|
@admin.register(InvoiceTransaction)
|
|
class InvoiceTransactionEntryAdmin(admin.ModelAdmin):
|
|
"""
|
|
Konfiguracija prikaza financijskih zapisa u Admin panelu.
|
|
"""
|
|
# Prikaz stupaca u listi
|
|
list_display = ('invoice_number', 'work_order_ref', 'amount', 'created_at', 'is_active')
|
|
|
|
# Omogućuje brzo filtriranje
|
|
list_filter = ('created_at', 'is_active', 'work_order')
|
|
list_select_related = ('work_order__vehicle',)
|
|
|
|
# Omogućuje pretragu
|
|
search_fields = ('invoice_number', 'work_order__id', 'work_order__vehicle__registration_number')
|
|
|
|
# Polja koja se ne smiju mijenjati u adminu
|
|
readonly_fields = ('id', 'created_at', 'updated_at')
|
|
|
|
# Grupiranje polja za lakši pregled
|
|
fieldsets = (
|
|
(None, {
|
|
'fields': ('invoice_number', 'work_order', 'amount', 'payment_date', 'is_active')
|
|
}),
|
|
('Sustavni podaci', {
|
|
'fields': ('id', 'created_at', 'updated_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|
|
|
|
@admin.display(description="Povezani putni nalog")
|
|
def work_order_ref(self, obj):
|
|
if not obj.work_order_id:
|
|
return "—"
|
|
short_id = str(obj.work_order_id).split('-')[0].upper()
|
|
registration = getattr(obj.work_order.vehicle, 'registration_number', '')
|
|
if registration:
|
|
return f"WO-{short_id} ({registration})"
|
|
return f"WO-{short_id}" |