Files
WYGIWYH/app/apps/transactions/admin.py
Herculino Trotta 8db885f47d feat: add quick transactions to django admin and properly name it
+ fix some wrongly assigned admin instances
2025-07-27 23:18:42 -03:00

82 lines
1.9 KiB
Python

from django.contrib import admin
from apps.transactions.models import (
Transaction,
TransactionCategory,
TransactionTag,
InstallmentPlan,
RecurringTransaction,
TransactionEntity,
QuickTransaction,
)
from apps.common.admin import SharedObjectModelAdmin
@admin.register(Transaction)
class TransactionModelAdmin(admin.ModelAdmin):
def get_queryset(self, request):
# Use the all_objects manager to show all transactions, including deleted ones
return self.model.userless_all_objects.all()
list_filter = ["deleted", "type", "is_paid", "date", "account"]
list_display = [
"date",
"description",
"type",
"account__name",
"amount",
"account__currency__code",
"reference_date",
"deleted",
]
readonly_fields = ["deleted_at"]
actions = ["hard_delete_selected"]
def hard_delete_selected(self, request, queryset):
for obj in queryset:
obj.hard_delete()
self.message_user(
request, f"Successfully hard deleted {queryset.count()} transactions."
)
hard_delete_selected.short_description = "Hard delete selected transactions"
class TransactionInline(admin.TabularInline):
model = Transaction
extra = 0
@admin.register(InstallmentPlan)
class InstallmentPlanAdmin(admin.ModelAdmin):
inlines = [
TransactionInline,
]
@admin.register(RecurringTransaction)
class RecurringTransactionAdmin(admin.ModelAdmin):
inlines = [
TransactionInline,
]
admin.site.register(QuickTransaction)
@admin.register(TransactionCategory)
class TransactionCategoryModelAdmin(SharedObjectModelAdmin):
pass
@admin.register(TransactionTag)
class TransactionTagModelAdmin(SharedObjectModelAdmin):
pass
@admin.register(TransactionEntity)
class TransactionEntityModelAdmin(SharedObjectModelAdmin):
pass