@@ -44,9 +44,9 @@ class Igny8AdminSite(admin.AdminSite):
|
|||||||
app_dict = self._build_app_dict(request)
|
app_dict = self._build_app_dict(request)
|
||||||
|
|
||||||
# Define our custom groups with their models (using object_name)
|
# Define our custom groups with their models (using object_name)
|
||||||
# Organized by business function
|
# Organized by business function with emoji icons for visual recognition
|
||||||
custom_groups = {
|
custom_groups = {
|
||||||
'<i class="fas fa-dollar-sign"></i> BILLING & ACCOUNTS': {
|
'💰 Billing & Accounts': {
|
||||||
'models': [
|
'models': [
|
||||||
('igny8_core_auth', 'Plan'),
|
('igny8_core_auth', 'Plan'),
|
||||||
('billing', 'PlanLimitUsage'),
|
('billing', 'PlanLimitUsage'),
|
||||||
@@ -62,7 +62,7 @@ class Igny8AdminSite(admin.AdminSite):
|
|||||||
('billing', 'CreditCostConfig'),
|
('billing', 'CreditCostConfig'),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'<i class="fas fa-users"></i> SITES & USERS': {
|
'👥 Sites & Users': {
|
||||||
'models': [
|
'models': [
|
||||||
('igny8_core_auth', 'Site'),
|
('igny8_core_auth', 'Site'),
|
||||||
('igny8_core_auth', 'Sector'),
|
('igny8_core_auth', 'Sector'),
|
||||||
@@ -71,7 +71,7 @@ class Igny8AdminSite(admin.AdminSite):
|
|||||||
('igny8_core_auth', 'PasswordResetToken'),
|
('igny8_core_auth', 'PasswordResetToken'),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'<i class="fas fa-file-alt"></i> CONTENT MANAGEMENT': {
|
'📚 Content Management': {
|
||||||
'models': [
|
'models': [
|
||||||
('writer', 'Content'),
|
('writer', 'Content'),
|
||||||
('writer', 'Tasks'),
|
('writer', 'Tasks'),
|
||||||
@@ -82,7 +82,7 @@ class Igny8AdminSite(admin.AdminSite):
|
|||||||
('writer', 'ContentClusterMap'),
|
('writer', 'ContentClusterMap'),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'<i class="fas fa-lightbulb"></i> PLANNING & STRATEGY': {
|
'🎯 Planning & Strategy': {
|
||||||
'models': [
|
'models': [
|
||||||
('planner', 'Clusters'),
|
('planner', 'Clusters'),
|
||||||
('planner', 'Keywords'),
|
('planner', 'Keywords'),
|
||||||
@@ -90,7 +90,7 @@ class Igny8AdminSite(admin.AdminSite):
|
|||||||
('system', 'Strategy'),
|
('system', 'Strategy'),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'<i class="fas fa-plug"></i> INTEGRATIONS & PUBLISHING': {
|
'🔗 Integrations & Publishing': {
|
||||||
'models': [
|
'models': [
|
||||||
('integration', 'SiteIntegration'),
|
('integration', 'SiteIntegration'),
|
||||||
('integration', 'SyncEvent'),
|
('integration', 'SyncEvent'),
|
||||||
@@ -98,7 +98,7 @@ class Igny8AdminSite(admin.AdminSite):
|
|||||||
('publishing', 'DeploymentRecord'),
|
('publishing', 'DeploymentRecord'),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'<i class="fas fa-robot"></i> AI & AUTOMATION': {
|
'🤖 AI & Automation': {
|
||||||
'models': [
|
'models': [
|
||||||
('ai', 'AITaskLog'),
|
('ai', 'AITaskLog'),
|
||||||
('system', 'AIPrompt'),
|
('system', 'AIPrompt'),
|
||||||
@@ -107,14 +107,14 @@ class Igny8AdminSite(admin.AdminSite):
|
|||||||
('optimization', 'OptimizationTask'),
|
('optimization', 'OptimizationTask'),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'<i class="fas fa-globe"></i> GLOBAL REFERENCE DATA': {
|
'🌍 Global Reference Data': {
|
||||||
'models': [
|
'models': [
|
||||||
('igny8_core_auth', 'Industry'),
|
('igny8_core_auth', 'Industry'),
|
||||||
('igny8_core_auth', 'IndustrySector'),
|
('igny8_core_auth', 'IndustrySector'),
|
||||||
('igny8_core_auth', 'SeedKeyword'),
|
('igny8_core_auth', 'SeedKeyword'),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'<i class="fas fa-cog"></i> SYSTEM CONFIGURATION': {
|
'⚙️ System Configuration': {
|
||||||
'models': [
|
'models': [
|
||||||
('system', 'IntegrationSettings'),
|
('system', 'IntegrationSettings'),
|
||||||
('system', 'AuthorProfile'),
|
('system', 'AuthorProfile'),
|
||||||
@@ -128,13 +128,13 @@ class Igny8AdminSite(admin.AdminSite):
|
|||||||
('system', 'SystemStatus'),
|
('system', 'SystemStatus'),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'<i class="fas fa-tasks"></i> MONITORING & TASKS': {
|
'<EFBFBD> Monitoring & Tasks': {
|
||||||
'models': [
|
'models': [
|
||||||
('django_celery_results', 'TaskResult'),
|
('django_celery_results', 'TaskResult'),
|
||||||
('django_celery_results', 'GroupResult'),
|
('django_celery_results', 'GroupResult'),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'<i class="fas fa-server"></i> DJANGO SYSTEM': {
|
'<EFBFBD>🔧 Django System': {
|
||||||
'models': [
|
'models': [
|
||||||
('admin', 'LogEntry'),
|
('admin', 'LogEntry'),
|
||||||
('auth', 'Group'),
|
('auth', 'Group'),
|
||||||
@@ -173,16 +173,15 @@ class Igny8AdminSite(admin.AdminSite):
|
|||||||
|
|
||||||
# Sort the app list by our custom order
|
# Sort the app list by our custom order
|
||||||
order = [
|
order = [
|
||||||
'<i class="fas fa-dollar-sign"></i> BILLING & ACCOUNTS',
|
'💰 Billing & Accounts',
|
||||||
'<i class="fas fa-users"></i> SITES & USERS',
|
'👥 Sites & Users',
|
||||||
'<i class="fas fa-file-alt"></i> CONTENT MANAGEMENT',
|
'📚 Content Management',
|
||||||
'<i class="fas fa-lightbulb"></i> PLANNING & STRATEGY',
|
'🎯 Planning & Strategy',
|
||||||
'<i class="fas fa-plug"></i> INTEGRATIONS & PUBLISHING',
|
'🔗 Integrations & Publishing',
|
||||||
'<i class="fas fa-robot"></i> AI & AUTOMATION',
|
'🤖 AI & Automation',
|
||||||
'<i class="fas fa-globe"></i> GLOBAL REFERENCE DATA',
|
'🌍 Global Reference Data',
|
||||||
'<i class="fas fa-cog"></i> SYSTEM CONFIGURATION',
|
'⚙️ System Configuration',
|
||||||
'<i class="fas fa-tasks"></i> MONITORING & TASKS',
|
'🔧 Django System',
|
||||||
'<i class="fas fa-server"></i> DJANGO SYSTEM',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
app_list.sort(key=lambda x: order.index(x['name']) if x['name'] in order else 999)
|
app_list.sort(key=lambda x: order.index(x['name']) if x['name'] in order else 999)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -264,17 +264,17 @@
|
|||||||
<div class="dashboard-container">
|
<div class="dashboard-container">
|
||||||
<div class="dashboard-header">
|
<div class="dashboard-header">
|
||||||
<div class="dashboard-header-content">
|
<div class="dashboard-header-content">
|
||||||
<h1><i class="fas fa-rocket"></i> IGNY8 Admin Dashboard</h1>
|
<h1>🚀 IGNY8 Admin Dashboard</h1>
|
||||||
<p>Real-time operational metrics and system health monitoring</p>
|
<p>Real-time operational metrics and system health monitoring</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="dashboard-nav">
|
<div class="dashboard-nav">
|
||||||
<a href="/admin/"><i class="fas fa-arrow-left"></i> Back to Admin</a>
|
<a href="/admin/">← Back to Admin</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if alerts %}
|
{% if alerts %}
|
||||||
<div class="alerts-section">
|
<div class="alerts-section">
|
||||||
<h2><i class="fas fa-bullhorn"></i> Active Alerts</h2>
|
<h2 style="margin: 0 0 16px 0; font-size: 20px; font-weight: 600;">📢 Active Alerts</h2>
|
||||||
{% for alert in alerts %}
|
{% for alert in alerts %}
|
||||||
<div class="alert-card {{ alert.level }}">
|
<div class="alert-card {{ alert.level }}">
|
||||||
<div class="alert-content">
|
<div class="alert-content">
|
||||||
@@ -288,9 +288,9 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
<div class="alerts-section">
|
<div class="alerts-section">
|
||||||
<div class="no-alerts">
|
<div class="no-alerts">
|
||||||
<div class="icon"><i class="fas fa-check-circle"></i></div>
|
<div class="icon">✅</div>
|
||||||
<h3>All Systems Operational</h3>
|
<h3 style="margin: 0 0 8px 0; color: #0bbf87;">All Systems Operational</h3>
|
||||||
<p>No active alerts or issues detected</p>
|
<p style="margin: 0;">No active alerts or issues detected</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
<div class="metrics-grid">
|
<div class="metrics-grid">
|
||||||
<!-- Accounts Card -->
|
<!-- Accounts Card -->
|
||||||
<div class="metric-card">
|
<div class="metric-card">
|
||||||
<h3><i class="fas fa-users"></i> Accounts</h3>
|
<h3><span class="icon">👥</span> Accounts</h3>
|
||||||
<div class="metric-row">
|
<div class="metric-row">
|
||||||
<span class="metric-label">Total Accounts</span>
|
<span class="metric-label">Total Accounts</span>
|
||||||
<span class="metric-value info">{{ accounts.total }}</span>
|
<span class="metric-value info">{{ accounts.total }}</span>
|
||||||
@@ -315,7 +315,7 @@
|
|||||||
|
|
||||||
<!-- Content Card -->
|
<!-- Content Card -->
|
||||||
<div class="metric-card">
|
<div class="metric-card">
|
||||||
<h3><i class="fas fa-file-alt"></i> Content</h3>
|
<h3><span class="icon">📚</span> Content</h3>
|
||||||
<div class="metric-row">
|
<div class="metric-row">
|
||||||
<span class="metric-label">Created This Week</span>
|
<span class="metric-label">Created This Week</span>
|
||||||
<span class="metric-value info">{{ content.this_week }}</span>
|
<span class="metric-value info">{{ content.this_week }}</span>
|
||||||
@@ -336,7 +336,7 @@
|
|||||||
|
|
||||||
<!-- Billing Card -->
|
<!-- Billing Card -->
|
||||||
<div class="metric-card">
|
<div class="metric-card">
|
||||||
<h3><i class="fas fa-dollar-sign"></i> Billing</h3>
|
<h3><span class="icon">💰</span> Billing</h3>
|
||||||
<div class="metric-row">
|
<div class="metric-row">
|
||||||
<span class="metric-label">Pending Payments</span>
|
<span class="metric-label">Pending Payments</span>
|
||||||
<span class="metric-value {% if billing.pending_payments > 0 %}warning{% else %}success{% endif %}">{{ billing.pending_payments }}</span>
|
<span class="metric-value {% if billing.pending_payments > 0 %}warning{% else %}success{% endif %}">{{ billing.pending_payments }}</span>
|
||||||
@@ -353,7 +353,7 @@
|
|||||||
|
|
||||||
<!-- Automation & Integration Card -->
|
<!-- Automation & Integration Card -->
|
||||||
<div class="metric-card">
|
<div class="metric-card">
|
||||||
<h3><i class="fas fa-robot"></i> Automation & Sync</h3>
|
<h3><span class="icon">🤖</span> Automation & Sync</h3>
|
||||||
<div class="metric-row">
|
<div class="metric-row">
|
||||||
<span class="metric-label">Automations Running</span>
|
<span class="metric-label">Automations Running</span>
|
||||||
<span class="metric-value info">{{ automation.running }}</span>
|
<span class="metric-value info">{{ automation.running }}</span>
|
||||||
@@ -370,7 +370,7 @@
|
|||||||
|
|
||||||
<!-- Celery Tasks Card -->
|
<!-- Celery Tasks Card -->
|
||||||
<div class="metric-card">
|
<div class="metric-card">
|
||||||
<h3><i class="fas fa-cog"></i> Celery Tasks</h3>
|
<h3><span class="icon">⚙️</span> Celery Tasks</h3>
|
||||||
<div class="metric-row">
|
<div class="metric-row">
|
||||||
<span class="metric-label">Failed Today</span>
|
<span class="metric-label">Failed Today</span>
|
||||||
<span class="metric-value {% if celery.failed_today > 0 %}error{% else %}success{% endif %}">{{ celery.failed_today }}</span>
|
<span class="metric-value {% if celery.failed_today > 0 %}error{% else %}success{% endif %}">{{ celery.failed_today }}</span>
|
||||||
@@ -383,34 +383,34 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="quick-actions">
|
<div class="quick-actions">
|
||||||
<h3><i class="fas fa-bolt"></i> Quick Actions</h3>
|
<h3>⚡ Quick Actions</h3>
|
||||||
<div class="action-grid">
|
<div class="action-grid">
|
||||||
<a href="/admin/" class="action-button action-button-neutral">
|
<a href="/admin/" class="action-button" style="background: linear-gradient(135deg, #0d1b2a 0%, #1a2e44 100%);">
|
||||||
<i class="fas fa-home"></i>
|
<span class="icon">🏠</span>
|
||||||
<span class="label">Admin Home</span>
|
<span class="label">Admin Home</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="/admin/igny8_core_auth/account/" class="action-button">
|
<a href="/admin/igny8_core_auth/account/" class="action-button">
|
||||||
<i class="fas fa-users"></i>
|
<span class="icon">👥</span>
|
||||||
<span class="label">Manage Accounts</span>
|
<span class="label">Manage Accounts</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="/admin/writer/content/" class="action-button">
|
<a href="/admin/writer/content/" class="action-button">
|
||||||
<i class="fas fa-edit"></i>
|
<span class="icon">📝</span>
|
||||||
<span class="label">View Content</span>
|
<span class="label">View Content</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="/admin/writer/tasks/" class="action-button">
|
<a href="/admin/writer/tasks/" class="action-button">
|
||||||
<i class="fas fa-check-square"></i>
|
<span class="icon">✅</span>
|
||||||
<span class="label">Manage Tasks</span>
|
<span class="label">Manage Tasks</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="/admin/billing/payment/" class="action-button">
|
<a href="/admin/billing/payment/" class="action-button">
|
||||||
<i class="fas fa-credit-card"></i>
|
<span class="icon">💳</span>
|
||||||
<span class="label">Review Payments</span>
|
<span class="label">Review Payments</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="/admin/automation/automationrun/" class="action-button">
|
<a href="/admin/automation/automationrun/" class="action-button">
|
||||||
<i class="fas fa-robot"></i>
|
<span class="icon">🤖</span>
|
||||||
<span class="label">View Automations</span>
|
<span class="label">View Automations</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="/admin/django_celery_results/taskresult/" class="action-button">
|
<a href="/admin/django_celery_results/taskresult/" class="action-button">
|
||||||
<i class="fas fa-cog"></i>
|
<span class="icon">⚙️</span>
|
||||||
<span class="label">Celery Monitor</span>
|
<span class="label">Celery Monitor</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user