DJANGO Phase 1
This commit is contained in:
@@ -3,6 +3,7 @@ Billing Module Admin
|
||||
"""
|
||||
from django.contrib import admin
|
||||
from django.utils.html import format_html
|
||||
from django.contrib import messages
|
||||
from igny8_core.admin.base import AccountAdminMixin
|
||||
from igny8_core.business.billing.models import (
|
||||
CreditCostConfig,
|
||||
@@ -12,12 +13,28 @@ from igny8_core.business.billing.models import (
|
||||
PaymentMethodConfig,
|
||||
)
|
||||
from .models import CreditTransaction, CreditUsageLog, AccountPaymentMethod
|
||||
from import_export.admin import ExportMixin
|
||||
from import_export import resources
|
||||
from rangefilter.filters import DateRangeFilter
|
||||
|
||||
|
||||
from rangefilter.filters import DateRangeFilter
|
||||
|
||||
|
||||
class CreditTransactionResource(resources.ModelResource):
|
||||
"""Resource class for exporting Credit Transactions"""
|
||||
class Meta:
|
||||
model = CreditTransaction
|
||||
fields = ('id', 'account__name', 'transaction_type', 'amount', 'balance_after',
|
||||
'description', 'reference_id', 'created_at')
|
||||
export_order = fields
|
||||
|
||||
|
||||
@admin.register(CreditTransaction)
|
||||
class CreditTransactionAdmin(AccountAdminMixin, admin.ModelAdmin):
|
||||
class CreditTransactionAdmin(ExportMixin, AccountAdminMixin, admin.ModelAdmin):
|
||||
resource_class = CreditTransactionResource
|
||||
list_display = ['id', 'account', 'transaction_type', 'amount', 'balance_after', 'description', 'created_at']
|
||||
list_filter = ['transaction_type', 'created_at', 'account']
|
||||
list_filter = ['transaction_type', ('created_at', DateRangeFilter), 'account']
|
||||
search_fields = ['description', 'account__name']
|
||||
readonly_fields = ['created_at']
|
||||
date_hierarchy = 'created_at'
|
||||
@@ -66,8 +83,18 @@ class InvoiceAdmin(AccountAdminMixin, admin.ModelAdmin):
|
||||
readonly_fields = ['created_at', 'updated_at']
|
||||
|
||||
|
||||
class PaymentResource(resources.ModelResource):
|
||||
"""Resource class for exporting Payments"""
|
||||
class Meta:
|
||||
model = Payment
|
||||
fields = ('id', 'invoice__invoice_number', 'account__name', 'payment_method',
|
||||
'status', 'amount', 'currency', 'manual_reference', 'approved_by__email',
|
||||
'processed_at', 'created_at')
|
||||
export_order = fields
|
||||
|
||||
|
||||
@admin.register(Payment)
|
||||
class PaymentAdmin(AccountAdminMixin, admin.ModelAdmin):
|
||||
class PaymentAdmin(ExportMixin, AccountAdminMixin, admin.ModelAdmin):
|
||||
"""
|
||||
Main Payment Admin with approval workflow.
|
||||
When you change status to 'succeeded', it automatically:
|
||||
@@ -76,6 +103,7 @@ class PaymentAdmin(AccountAdminMixin, admin.ModelAdmin):
|
||||
- Activates account
|
||||
- Adds credits
|
||||
"""
|
||||
resource_class = PaymentResource
|
||||
list_display = [
|
||||
'id',
|
||||
'invoice',
|
||||
@@ -88,7 +116,7 @@ class PaymentAdmin(AccountAdminMixin, admin.ModelAdmin):
|
||||
'approved_by',
|
||||
'processed_at',
|
||||
]
|
||||
list_filter = ['status', 'payment_method', 'currency', 'created_at', 'processed_at']
|
||||
list_filter = ['status', 'payment_method', 'currency', ('created_at', DateRangeFilter), ('processed_at', DateRangeFilter)]
|
||||
search_fields = [
|
||||
'invoice__invoice_number',
|
||||
'account__name',
|
||||
|
||||
Reference in New Issue
Block a user