1
1
Files
financeplanner/core/admin.py

44 lines
1.3 KiB
Python

from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
from core.models import Subject, Transaction
User = get_user_model()
class CustomAdminSite(admin.AdminSite):
pass
admin_site = CustomAdminSite()
admin_site.register(User, UserAdmin)
@admin.register(Subject, site=admin_site)
class SubjectAdmin(admin.ModelAdmin):
list_display = ("name",)
search_fields = ("name",)
exclude = ("user",)
def save_model(self, request, obj, form, change):
if not change:
obj.user = request.user
return super().save_model(request, obj, form, change)
def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super().get_search_results(request, queryset, search_term)
return queryset.filter(user=request.user), use_distinct
@admin.register(Transaction, site=admin_site)
class TransactionAdmin(admin.ModelAdmin):
list_display = ("subject", "amount", "booking_date",)
ordering = ("-booking_date",)
search_fields = ("subject__name",)
autocomplete_fields = ("subject",)
def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super().get_search_results(request, queryset, search_term)
return queryset.filter(subject__user=request.user), use_distinct