sideabar fixed in dhjanog

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-14 23:43:10 +00:00
parent 78f71558ed
commit aa48a55504
21 changed files with 703 additions and 71 deletions

View File

@@ -5,7 +5,7 @@ from django.contrib import admin
from django.utils.html import format_html
from django.contrib import messages
from unfold.admin import ModelAdmin
from igny8_core.admin.base import AccountAdminMixin
from igny8_core.admin.base import AccountAdminMixin, Igny8ModelAdmin
from igny8_core.business.billing.models import (
CreditCostConfig,
Invoice,
@@ -30,7 +30,7 @@ class CreditTransactionResource(resources.ModelResource):
@admin.register(CreditTransaction)
class CreditTransactionAdmin(ExportMixin, AccountAdminMixin, ModelAdmin):
class CreditTransactionAdmin(ExportMixin, AccountAdminMixin, Igny8ModelAdmin):
resource_class = CreditTransactionResource
list_display = ['id', 'account', 'transaction_type', 'amount', 'balance_after', 'description', 'created_at']
list_filter = ['transaction_type', ('created_at', DateRangeFilter), 'account']
@@ -49,7 +49,7 @@ class CreditTransactionAdmin(ExportMixin, AccountAdminMixin, ModelAdmin):
@admin.register(CreditUsageLog)
class CreditUsageLogAdmin(AccountAdminMixin, ModelAdmin):
class CreditUsageLogAdmin(AccountAdminMixin, Igny8ModelAdmin):
list_display = ['id', 'account', 'operation_type', 'credits_used', 'cost_usd', 'model_used', 'created_at']
list_filter = ['operation_type', 'created_at', 'account', 'model_used']
search_fields = ['account__name', 'model_used']
@@ -67,7 +67,7 @@ class CreditUsageLogAdmin(AccountAdminMixin, ModelAdmin):
@admin.register(Invoice)
class InvoiceAdmin(AccountAdminMixin, ModelAdmin):
class InvoiceAdmin(AccountAdminMixin, Igny8ModelAdmin):
list_display = [
'invoice_number',
'account',
@@ -93,7 +93,7 @@ class PaymentResource(resources.ModelResource):
@admin.register(Payment)
class PaymentAdmin(ExportMixin, AccountAdminMixin, ModelAdmin):
class PaymentAdmin(ExportMixin, AccountAdminMixin, Igny8ModelAdmin):
"""
Main Payment Admin with approval workflow.
When you change status to 'succeeded', it automatically:
@@ -375,7 +375,7 @@ class PaymentAdmin(ExportMixin, AccountAdminMixin, ModelAdmin):
@admin.register(CreditPackage)
class CreditPackageAdmin(ModelAdmin):
class CreditPackageAdmin(Igny8ModelAdmin):
list_display = ['name', 'slug', 'credits', 'price', 'discount_percentage', 'is_active', 'is_featured', 'sort_order']
list_filter = ['is_active', 'is_featured']
search_fields = ['name', 'slug']
@@ -383,7 +383,7 @@ class CreditPackageAdmin(ModelAdmin):
@admin.register(PaymentMethodConfig)
class PaymentMethodConfigAdmin(ModelAdmin):
class PaymentMethodConfigAdmin(Igny8ModelAdmin):
list_display = ['country_code', 'payment_method', 'display_name', 'is_enabled', 'sort_order', 'updated_at']
list_filter = ['payment_method', 'is_enabled', 'country_code']
search_fields = ['country_code', 'display_name', 'payment_method']
@@ -392,7 +392,7 @@ class PaymentMethodConfigAdmin(ModelAdmin):
@admin.register(AccountPaymentMethod)
class AccountPaymentMethodAdmin(AccountAdminMixin, ModelAdmin):
class AccountPaymentMethodAdmin(AccountAdminMixin, Igny8ModelAdmin):
list_display = [
'display_name',
'type',
@@ -421,7 +421,7 @@ class AccountPaymentMethodAdmin(AccountAdminMixin, ModelAdmin):
@admin.register(CreditCostConfig)
class CreditCostConfigAdmin(ModelAdmin):
class CreditCostConfigAdmin(Igny8ModelAdmin):
list_display = [
'operation_type',
'display_name',
@@ -496,7 +496,7 @@ class CreditCostConfigAdmin(ModelAdmin):
@admin.register(PlanLimitUsage)
class PlanLimitUsageAdmin(AccountAdminMixin, ModelAdmin):
class PlanLimitUsageAdmin(AccountAdminMixin, Igny8ModelAdmin):
"""Admin for tracking plan limit usage across billing periods"""
list_display = [
'account',

View File

@@ -7,7 +7,7 @@ from unfold.contrib.filters.admin import (
RelatedDropdownFilter,
ChoicesDropdownFilter,
)
from igny8_core.admin.base import SiteSectorAdminMixin
from igny8_core.admin.base import SiteSectorAdminMixin, Igny8ModelAdmin
from .models import Keywords, Clusters, ContentIdeas
from import_export.admin import ExportMixin
from import_export import resources
@@ -23,7 +23,7 @@ class KeywordsResource(resources.ModelResource):
@admin.register(Clusters)
class ClustersAdmin(SiteSectorAdminMixin, ModelAdmin):
class ClustersAdmin(SiteSectorAdminMixin, Igny8ModelAdmin):
list_display = ['name', 'site', 'sector', 'keywords_count', 'volume', 'status', 'created_at']
list_filter = [
('status', ChoicesDropdownFilter),
@@ -53,7 +53,7 @@ class ClustersAdmin(SiteSectorAdminMixin, ModelAdmin):
@admin.register(Keywords)
class KeywordsAdmin(ExportMixin, SiteSectorAdminMixin, ModelAdmin):
class KeywordsAdmin(ExportMixin, SiteSectorAdminMixin, Igny8ModelAdmin):
resource_class = KeywordsResource
list_display = ['keyword', 'seed_keyword', 'site', 'sector', 'cluster', 'volume', 'difficulty', 'intent', 'status', 'created_at']
list_filter = [
@@ -152,7 +152,7 @@ class KeywordsAdmin(ExportMixin, SiteSectorAdminMixin, ModelAdmin):
@admin.register(ContentIdeas)
class ContentIdeasAdmin(SiteSectorAdminMixin, ModelAdmin):
class ContentIdeasAdmin(SiteSectorAdminMixin, Igny8ModelAdmin):
list_display = ['idea_title', 'site', 'sector', 'description_preview', 'content_type', 'content_structure', 'status', 'keyword_cluster', 'estimated_word_count', 'created_at']
list_filter = [
('status', ChoicesDropdownFilter),

View File

@@ -3,7 +3,7 @@ System Module Admin
"""
from django.contrib import admin
from unfold.admin import ModelAdmin
from igny8_core.admin.base import AccountAdminMixin
from igny8_core.admin.base import AccountAdminMixin, Igny8ModelAdmin
from .models import AIPrompt, IntegrationSettings, AuthorProfile, Strategy
# Import settings admin
@@ -16,7 +16,7 @@ try:
from .models import SystemLog, SystemStatus
@admin.register(SystemLog)
class SystemLogAdmin(AccountAdminMixin, ModelAdmin):
class SystemLogAdmin(AccountAdminMixin, Igny8ModelAdmin):
list_display = ['id', 'account', 'module', 'level', 'action', 'message', 'created_at']
list_filter = ['module', 'level', 'created_at', 'account']
search_fields = ['message', 'action']
@@ -25,7 +25,7 @@ try:
@admin.register(SystemStatus)
class SystemStatusAdmin(AccountAdminMixin, ModelAdmin):
class SystemStatusAdmin(AccountAdminMixin, Igny8ModelAdmin):
list_display = ['component', 'account', 'status', 'message', 'last_check']
list_filter = ['status', 'component', 'account']
search_fields = ['component', 'message']
@@ -35,7 +35,7 @@ except ImportError:
@admin.register(AIPrompt)
class AIPromptAdmin(AccountAdminMixin, ModelAdmin):
class AIPromptAdmin(AccountAdminMixin, Igny8ModelAdmin):
list_display = ['id', 'prompt_type', 'account', 'is_active', 'updated_at']
list_filter = ['prompt_type', 'is_active', 'account']
search_fields = ['prompt_type']
@@ -64,7 +64,7 @@ class AIPromptAdmin(AccountAdminMixin, ModelAdmin):
@admin.register(IntegrationSettings)
class IntegrationSettingsAdmin(AccountAdminMixin, ModelAdmin):
class IntegrationSettingsAdmin(AccountAdminMixin, Igny8ModelAdmin):
list_display = ['id', 'integration_type', 'account', 'is_active', 'updated_at']
list_filter = ['integration_type', 'is_active', 'account']
search_fields = ['integration_type']
@@ -100,7 +100,7 @@ class IntegrationSettingsAdmin(AccountAdminMixin, ModelAdmin):
@admin.register(AuthorProfile)
class AuthorProfileAdmin(AccountAdminMixin, ModelAdmin):
class AuthorProfileAdmin(AccountAdminMixin, Igny8ModelAdmin):
list_display = ['name', 'account', 'tone', 'language', 'is_active', 'created_at']
list_filter = ['is_active', 'tone', 'language', 'account']
search_fields = ['name', 'description', 'tone']
@@ -129,7 +129,7 @@ class AuthorProfileAdmin(AccountAdminMixin, ModelAdmin):
@admin.register(Strategy)
class StrategyAdmin(AccountAdminMixin, ModelAdmin):
class StrategyAdmin(AccountAdminMixin, Igny8ModelAdmin):
list_display = ['name', 'account', 'sector', 'is_active', 'created_at']
list_filter = ['is_active', 'account']
search_fields = ['name', 'description']

View File

@@ -7,7 +7,7 @@ from unfold.contrib.filters.admin import (
RelatedDropdownFilter,
ChoicesDropdownFilter,
)
from igny8_core.admin.base import SiteSectorAdminMixin
from igny8_core.admin.base import SiteSectorAdminMixin, Igny8ModelAdmin
from .models import Tasks, Images, Content
from igny8_core.business.content.models import ContentTaxonomy, ContentAttribute, ContentTaxonomyRelation, ContentClusterMap
from import_export.admin import ExportMixin
@@ -33,7 +33,7 @@ class TaskResource(resources.ModelResource):
@admin.register(Tasks)
class TasksAdmin(ExportMixin, SiteSectorAdminMixin, ModelAdmin):
class TasksAdmin(ExportMixin, SiteSectorAdminMixin, Igny8ModelAdmin):
resource_class = TaskResource
list_display = ['title', 'content_type', 'content_structure', 'site', 'sector', 'status', 'cluster', 'created_at']
list_filter = [
@@ -156,7 +156,7 @@ class TasksAdmin(ExportMixin, SiteSectorAdminMixin, ModelAdmin):
@admin.register(Images)
class ImagesAdmin(SiteSectorAdminMixin, ModelAdmin):
class ImagesAdmin(SiteSectorAdminMixin, Igny8ModelAdmin):
list_display = ['get_content_title', 'site', 'sector', 'image_type', 'status', 'position', 'created_at']
list_filter = ['image_type', 'status', 'site', 'sector']
search_fields = ['content__title']
@@ -198,7 +198,7 @@ class ContentResource(resources.ModelResource):
@admin.register(Content)
class ContentAdmin(ExportMixin, SiteSectorAdminMixin, ModelAdmin):
class ContentAdmin(ExportMixin, SiteSectorAdminMixin, Igny8ModelAdmin):
resource_class = ContentResource
list_display = ['title', 'content_type', 'content_structure', 'site', 'sector', 'source', 'status', 'word_count', 'get_taxonomy_count', 'created_at']
list_filter = [
@@ -351,7 +351,7 @@ class ContentAdmin(ExportMixin, SiteSectorAdminMixin, ModelAdmin):
@admin.register(ContentTaxonomy)
class ContentTaxonomyAdmin(SiteSectorAdminMixin, ModelAdmin):
class ContentTaxonomyAdmin(SiteSectorAdminMixin, Igny8ModelAdmin):
list_display = ['name', 'taxonomy_type', 'slug', 'count', 'external_id', 'external_taxonomy', 'site', 'sector']
list_filter = ['taxonomy_type', 'site', 'sector']
search_fields = ['name', 'slug', 'external_taxonomy']
@@ -382,7 +382,7 @@ class ContentTaxonomyAdmin(SiteSectorAdminMixin, ModelAdmin):
@admin.register(ContentAttribute)
class ContentAttributeAdmin(SiteSectorAdminMixin, ModelAdmin):
class ContentAttributeAdmin(SiteSectorAdminMixin, Igny8ModelAdmin):
list_display = ['name', 'value', 'attribute_type', 'content', 'cluster', 'external_id', 'source', 'site', 'sector']
list_filter = ['attribute_type', 'source', 'site', 'sector']
search_fields = ['name', 'value', 'external_attribute_name', 'content__title']
@@ -407,14 +407,14 @@ class ContentAttributeAdmin(SiteSectorAdminMixin, ModelAdmin):
@admin.register(ContentTaxonomyRelation)
class ContentTaxonomyRelationAdmin(ModelAdmin):
class ContentTaxonomyRelationAdmin(Igny8ModelAdmin):
list_display = ['content', 'taxonomy', 'created_at']
search_fields = ['content__title', 'taxonomy__name']
readonly_fields = ['created_at', 'updated_at']
@admin.register(ContentClusterMap)
class ContentClusterMapAdmin(SiteSectorAdminMixin, ModelAdmin):
class ContentClusterMapAdmin(SiteSectorAdminMixin, Igny8ModelAdmin):
list_display = ['content', 'task', 'cluster', 'role', 'source', 'site', 'sector', 'created_at']
list_filter = ['role', 'source', 'site', 'sector']
search_fields = ['content__title', 'task__title', 'cluster__name']