44 lines
1.3 KiB
Python
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
|