sideabar fixed in dhjanog
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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']
|
||||
|
||||
Reference in New Issue
Block a user