many fixes
This commit is contained in:
@@ -3,7 +3,7 @@ Billing Module Admin
|
||||
"""
|
||||
from django.contrib import admin
|
||||
from igny8_core.admin.base import AccountAdminMixin
|
||||
from .models import CreditTransaction, CreditUsageLog
|
||||
from .models import CreditTransaction, CreditUsageLog, AccountPaymentMethod
|
||||
|
||||
|
||||
@admin.register(CreditTransaction)
|
||||
@@ -41,3 +41,32 @@ class CreditUsageLogAdmin(AccountAdminMixin, admin.ModelAdmin):
|
||||
return '-'
|
||||
get_account_display.short_description = 'Account'
|
||||
|
||||
|
||||
@admin.register(AccountPaymentMethod)
|
||||
class AccountPaymentMethodAdmin(AccountAdminMixin, admin.ModelAdmin):
|
||||
list_display = [
|
||||
'display_name',
|
||||
'type',
|
||||
'account',
|
||||
'is_default',
|
||||
'is_enabled',
|
||||
'is_verified',
|
||||
'country_code',
|
||||
'updated_at',
|
||||
]
|
||||
list_filter = ['type', 'is_default', 'is_enabled', 'is_verified', 'country_code']
|
||||
search_fields = ['display_name', 'account__name', 'account__id']
|
||||
readonly_fields = ['created_at', 'updated_at']
|
||||
fieldsets = (
|
||||
('Payment Method', {
|
||||
'fields': ('account', 'type', 'display_name', 'is_default', 'is_enabled', 'is_verified', 'country_code')
|
||||
}),
|
||||
('Instructions / Metadata', {
|
||||
'fields': ('instructions', 'metadata')
|
||||
}),
|
||||
('Timestamps', {
|
||||
'fields': ('created_at', 'updated_at'),
|
||||
'classes': ('collapse',)
|
||||
}),
|
||||
)
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# Generated by Django 5.2.8 on 2025-12-05 17:19
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('billing', '0005_credittransaction_reference_id_invoice_billing_email_and_more'),
|
||||
('igny8_core_auth', '0004_add_invoice_payment_models'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='AccountPaymentMethod',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('type', models.CharField(choices=[('stripe', 'Stripe'), ('paypal', 'PayPal'), ('bank_transfer', 'Bank Transfer'), ('local_wallet', 'Local Wallet')], db_index=True, max_length=50)),
|
||||
('display_name', models.CharField(default='', help_text='User-visible label', max_length=100)),
|
||||
('is_default', models.BooleanField(db_index=True, default=False)),
|
||||
('is_enabled', models.BooleanField(db_index=True, default=True)),
|
||||
('is_verified', models.BooleanField(db_index=True, default=False)),
|
||||
('country_code', models.CharField(blank=True, default='', help_text='ISO-2 country code (optional)', max_length=2)),
|
||||
('instructions', models.TextField(blank=True, default='')),
|
||||
('metadata', models.JSONField(blank=True, default=dict, help_text='Provider references or display metadata')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('account', models.ForeignKey(db_column='tenant_id', on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_set', to='igny8_core_auth.account')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'igny8_account_payment_methods',
|
||||
'ordering': ['-is_default', 'display_name', 'id'],
|
||||
'indexes': [models.Index(fields=['account', 'is_default'], name='igny8_accou_tenant__30d459_idx'), models.Index(fields=['account', 'type'], name='igny8_accou_tenant__4cc9c7_idx')],
|
||||
'unique_together': {('account', 'display_name')},
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -1,4 +1,4 @@
|
||||
# Backward compatibility aliases - models moved to business/billing/
|
||||
from igny8_core.business.billing.models import CreditTransaction, CreditUsageLog, CreditCostConfig
|
||||
from igny8_core.business.billing.models import CreditTransaction, CreditUsageLog, CreditCostConfig, AccountPaymentMethod
|
||||
|
||||
__all__ = ['CreditTransaction', 'CreditUsageLog', 'CreditCostConfig']
|
||||
__all__ = ['CreditTransaction', 'CreditUsageLog', 'CreditCostConfig', 'AccountPaymentMethod']
|
||||
|
||||
@@ -1610,7 +1610,8 @@ class ContentTaxonomyViewSet(SiteSectorModelViewSet):
|
||||
ordering = ['taxonomy_type', 'name']
|
||||
|
||||
# Filter configuration
|
||||
filterset_fields = ['taxonomy_type', 'sync_status', 'parent', 'external_id', 'external_taxonomy']
|
||||
# Removed "parent" to avoid non-model field in filterset (breaks drf-spectacular)
|
||||
filterset_fields = ['taxonomy_type', 'sync_status', 'external_id', 'external_taxonomy']
|
||||
|
||||
def perform_create(self, serializer):
|
||||
"""Create taxonomy with site/sector context"""
|
||||
|
||||
@@ -1498,7 +1498,7 @@ class ContentTaxonomyViewSet(SiteSectorModelViewSet):
|
||||
ordering = ['taxonomy_type', 'name']
|
||||
|
||||
# Filter configuration
|
||||
filterset_fields = ['taxonomy_type', 'sync_status', 'parent', 'external_id', 'external_taxonomy']
|
||||
filterset_fields = ['taxonomy_type', 'sync_status', 'external_id', 'external_taxonomy']
|
||||
|
||||
def perform_create(self, serializer):
|
||||
"""Create taxonomy with site/sector context"""
|
||||
|
||||
Reference in New Issue
Block a user