@@ -44,9 +44,9 @@ class Igny8AdminSite(admin.AdminSite):
|
||||
app_dict = self._build_app_dict(request)
|
||||
|
||||
# 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 = {
|
||||
'<i class="fas fa-dollar-sign"></i> BILLING & ACCOUNTS': {
|
||||
'💰 Billing & Accounts': {
|
||||
'models': [
|
||||
('igny8_core_auth', 'Plan'),
|
||||
('billing', 'PlanLimitUsage'),
|
||||
@@ -62,7 +62,7 @@ class Igny8AdminSite(admin.AdminSite):
|
||||
('billing', 'CreditCostConfig'),
|
||||
],
|
||||
},
|
||||
'<i class="fas fa-users"></i> SITES & USERS': {
|
||||
'👥 Sites & Users': {
|
||||
'models': [
|
||||
('igny8_core_auth', 'Site'),
|
||||
('igny8_core_auth', 'Sector'),
|
||||
@@ -71,7 +71,7 @@ class Igny8AdminSite(admin.AdminSite):
|
||||
('igny8_core_auth', 'PasswordResetToken'),
|
||||
],
|
||||
},
|
||||
'<i class="fas fa-file-alt"></i> CONTENT MANAGEMENT': {
|
||||
'📚 Content Management': {
|
||||
'models': [
|
||||
('writer', 'Content'),
|
||||
('writer', 'Tasks'),
|
||||
@@ -82,7 +82,7 @@ class Igny8AdminSite(admin.AdminSite):
|
||||
('writer', 'ContentClusterMap'),
|
||||
],
|
||||
},
|
||||
'<i class="fas fa-lightbulb"></i> PLANNING & STRATEGY': {
|
||||
'🎯 Planning & Strategy': {
|
||||
'models': [
|
||||
('planner', 'Clusters'),
|
||||
('planner', 'Keywords'),
|
||||
@@ -90,7 +90,7 @@ class Igny8AdminSite(admin.AdminSite):
|
||||
('system', 'Strategy'),
|
||||
],
|
||||
},
|
||||
'<i class="fas fa-plug"></i> INTEGRATIONS & PUBLISHING': {
|
||||
'🔗 Integrations & Publishing': {
|
||||
'models': [
|
||||
('integration', 'SiteIntegration'),
|
||||
('integration', 'SyncEvent'),
|
||||
@@ -98,7 +98,7 @@ class Igny8AdminSite(admin.AdminSite):
|
||||
('publishing', 'DeploymentRecord'),
|
||||
],
|
||||
},
|
||||
'<i class="fas fa-robot"></i> AI & AUTOMATION': {
|
||||
'🤖 AI & Automation': {
|
||||
'models': [
|
||||
('ai', 'AITaskLog'),
|
||||
('system', 'AIPrompt'),
|
||||
@@ -107,14 +107,14 @@ class Igny8AdminSite(admin.AdminSite):
|
||||
('optimization', 'OptimizationTask'),
|
||||
],
|
||||
},
|
||||
'<i class="fas fa-globe"></i> GLOBAL REFERENCE DATA': {
|
||||
'🌍 Global Reference Data': {
|
||||
'models': [
|
||||
('igny8_core_auth', 'Industry'),
|
||||
('igny8_core_auth', 'IndustrySector'),
|
||||
('igny8_core_auth', 'SeedKeyword'),
|
||||
],
|
||||
},
|
||||
'<i class="fas fa-cog"></i> SYSTEM CONFIGURATION': {
|
||||
'⚙️ System Configuration': {
|
||||
'models': [
|
||||
('system', 'IntegrationSettings'),
|
||||
('system', 'AuthorProfile'),
|
||||
@@ -128,13 +128,13 @@ class Igny8AdminSite(admin.AdminSite):
|
||||
('system', 'SystemStatus'),
|
||||
],
|
||||
},
|
||||
'<i class="fas fa-tasks"></i> MONITORING & TASKS': {
|
||||
'<EFBFBD> Monitoring & Tasks': {
|
||||
'models': [
|
||||
('django_celery_results', 'TaskResult'),
|
||||
('django_celery_results', 'GroupResult'),
|
||||
],
|
||||
},
|
||||
'<i class="fas fa-server"></i> DJANGO SYSTEM': {
|
||||
'<EFBFBD>🔧 Django System': {
|
||||
'models': [
|
||||
('admin', 'LogEntry'),
|
||||
('auth', 'Group'),
|
||||
@@ -173,16 +173,15 @@ class Igny8AdminSite(admin.AdminSite):
|
||||
|
||||
# Sort the app list by our custom order
|
||||
order = [
|
||||
'<i class="fas fa-dollar-sign"></i> BILLING & ACCOUNTS',
|
||||
'<i class="fas fa-users"></i> SITES & USERS',
|
||||
'<i class="fas fa-file-alt"></i> CONTENT MANAGEMENT',
|
||||
'<i class="fas fa-lightbulb"></i> PLANNING & STRATEGY',
|
||||
'<i class="fas fa-plug"></i> INTEGRATIONS & PUBLISHING',
|
||||
'<i class="fas fa-robot"></i> AI & AUTOMATION',
|
||||
'<i class="fas fa-globe"></i> GLOBAL REFERENCE DATA',
|
||||
'<i class="fas fa-cog"></i> SYSTEM CONFIGURATION',
|
||||
'<i class="fas fa-tasks"></i> MONITORING & TASKS',
|
||||
'<i class="fas fa-server"></i> DJANGO SYSTEM',
|
||||
'💰 Billing & Accounts',
|
||||
'👥 Sites & Users',
|
||||
'📚 Content Management',
|
||||
'🎯 Planning & Strategy',
|
||||
'🔗 Integrations & Publishing',
|
||||
'🤖 AI & Automation',
|
||||
'🌍 Global Reference Data',
|
||||
'⚙️ System Configuration',
|
||||
'🔧 Django System',
|
||||
]
|
||||
|
||||
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-header">
|
||||
<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>
|
||||
</div>
|
||||
<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>
|
||||
|
||||
{% if alerts %}
|
||||
<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 %}
|
||||
<div class="alert-card {{ alert.level }}">
|
||||
<div class="alert-content">
|
||||
@@ -288,9 +288,9 @@
|
||||
{% else %}
|
||||
<div class="alerts-section">
|
||||
<div class="no-alerts">
|
||||
<div class="icon"><i class="fas fa-check-circle"></i></div>
|
||||
<h3>All Systems Operational</h3>
|
||||
<p>No active alerts or issues detected</p>
|
||||
<div class="icon">✅</div>
|
||||
<h3 style="margin: 0 0 8px 0; color: #0bbf87;">All Systems Operational</h3>
|
||||
<p style="margin: 0;">No active alerts or issues detected</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -298,7 +298,7 @@
|
||||
<div class="metrics-grid">
|
||||
<!-- Accounts 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">
|
||||
<span class="metric-label">Total Accounts</span>
|
||||
<span class="metric-value info">{{ accounts.total }}</span>
|
||||
@@ -315,7 +315,7 @@
|
||||
|
||||
<!-- Content 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">
|
||||
<span class="metric-label">Created This Week</span>
|
||||
<span class="metric-value info">{{ content.this_week }}</span>
|
||||
@@ -336,7 +336,7 @@
|
||||
|
||||
<!-- Billing 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">
|
||||
<span class="metric-label">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 -->
|
||||
<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">
|
||||
<span class="metric-label">Automations Running</span>
|
||||
<span class="metric-value info">{{ automation.running }}</span>
|
||||
@@ -370,7 +370,7 @@
|
||||
|
||||
<!-- Celery Tasks 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">
|
||||
<span class="metric-label">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 class="quick-actions">
|
||||
<h3><i class="fas fa-bolt"></i> Quick Actions</h3>
|
||||
<h3>⚡ Quick Actions</h3>
|
||||
<div class="action-grid">
|
||||
<a href="/admin/" class="action-button action-button-neutral">
|
||||
<i class="fas fa-home"></i>
|
||||
<a href="/admin/" class="action-button" style="background: linear-gradient(135deg, #0d1b2a 0%, #1a2e44 100%);">
|
||||
<span class="icon">🏠</span>
|
||||
<span class="label">Admin Home</span>
|
||||
</a>
|
||||
<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>
|
||||
</a>
|
||||
<a href="/admin/writer/content/" class="action-button">
|
||||
<i class="fas fa-edit"></i>
|
||||
<span class="icon">📝</span>
|
||||
<span class="label">View Content</span>
|
||||
</a>
|
||||
<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>
|
||||
</a>
|
||||
<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>
|
||||
</a>
|
||||
<a href="/admin/automation/automationrun/" class="action-button">
|
||||
<i class="fas fa-robot"></i>
|
||||
<span class="icon">🤖</span>
|
||||
<span class="label">View Automations</span>
|
||||
</a>
|
||||
<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>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user