from django.contrib import admin from .models import Chain, Credebtor, Expense, Reimbursement, Revenue ### chains and credebtors @admin.register(Chain) class ChainAdmin(admin.ModelAdmin): list_filter = ['name'] list_display = ['name', 'notes'] search_fields = ['name', 'notes'] @admin.register(Credebtor) class ChainAdmin(admin.ModelAdmin): list_filter = ['chain', 'name'] list_display = ['chain', 'name', 'notes'] search_fields = ['chain', 'name', 'notes'] ### expenses def approve_expenses(modeladmin, request, queryset): for expense in queryset.all(): expense.approve(request) approve_expenses.short_description = "Approve Expenses" def reject_expenses(modeladmin, request, queryset): for expense in queryset.all(): expense.reject(request) reject_expenses.short_description = "Reject Expenses" @admin.register(Expense) class ExpenseAdmin(admin.ModelAdmin): list_filter = ['camp', 'creditor__chain', 'creditor', 'responsible_team', 'approved', 'user'] list_display = ['user', 'description', 'invoice_date', 'amount', 'camp', 'creditor', 'responsible_team', 'approved', 'reimbursement'] search_fields = ['description', 'amount', 'uuid'] actions = [approve_expenses, reject_expenses] ### revenues def approve_revenues(modeladmin, request, queryset): for revenue in queryset.all(): revenue.approve(request) approve_revenues.short_description = "Approve Revenues" def reject_revenues(modeladmin, request, queryset): for revenue in queryset.all(): revenue.reject(request) reject_revenues.short_description = "Reject Revenues" @admin.register(Revenue) class RevenueAdmin(admin.ModelAdmin): list_filter = ['camp', 'responsible_team', 'approved', 'user'] list_display = ['user', 'description', 'invoice_date', 'amount', 'camp', 'responsible_team', 'approved'] search_fields = ['description', 'amount', 'user'] actions = [approve_revenues, reject_revenues] ### reimbursements @admin.register(Reimbursement) class ReimbursementAdmin(admin.ModelAdmin): def get_amount(self, obj): return obj.amount list_filter = ['camp', 'user', 'reimbursement_user', 'paid'] list_display = ['camp', 'user', 'reimbursement_user', 'paid', 'notes', 'get_amount'] search_fields = ['user__username', 'reimbursement_user__username', 'notes']