css django

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-14 15:41:42 +00:00
parent eb88a0e12d
commit 90aa99b2c1
4 changed files with 2685 additions and 2348 deletions

View File

@@ -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 with emoji icons for visual recognition # Organized by business function
custom_groups = { custom_groups = {
'💰 Billing & Accounts': { '<i class="fas fa-dollar-sign"></i> 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'),
], ],
}, },
'👥 Sites & Users': { '<i class="fas fa-users"></i> 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'),
], ],
}, },
'📚 Content Management': { '<i class="fas fa-file-alt"></i> CONTENT MANAGEMENT': {
'models': [ 'models': [
('writer', 'Content'), ('writer', 'Content'),
('writer', 'Tasks'), ('writer', 'Tasks'),
@@ -82,7 +82,7 @@ class Igny8AdminSite(admin.AdminSite):
('writer', 'ContentClusterMap'), ('writer', 'ContentClusterMap'),
], ],
}, },
'🎯 Planning & Strategy': { '<i class="fas fa-lightbulb"></i> PLANNING & STRATEGY': {
'models': [ 'models': [
('planner', 'Clusters'), ('planner', 'Clusters'),
('planner', 'Keywords'), ('planner', 'Keywords'),
@@ -90,7 +90,7 @@ class Igny8AdminSite(admin.AdminSite):
('system', 'Strategy'), ('system', 'Strategy'),
], ],
}, },
'🔗 Integrations & Publishing': { '<i class="fas fa-plug"></i> INTEGRATIONS & PUBLISHING': {
'models': [ 'models': [
('integration', 'SiteIntegration'), ('integration', 'SiteIntegration'),
('integration', 'SyncEvent'), ('integration', 'SyncEvent'),
@@ -98,7 +98,7 @@ class Igny8AdminSite(admin.AdminSite):
('publishing', 'DeploymentRecord'), ('publishing', 'DeploymentRecord'),
], ],
}, },
'🤖 AI & Automation': { '<i class="fas fa-robot"></i> AI & AUTOMATION': {
'models': [ 'models': [
('ai', 'AITaskLog'), ('ai', 'AITaskLog'),
('system', 'AIPrompt'), ('system', 'AIPrompt'),
@@ -107,14 +107,14 @@ class Igny8AdminSite(admin.AdminSite):
('optimization', 'OptimizationTask'), ('optimization', 'OptimizationTask'),
], ],
}, },
'🌍 Global Reference Data': { '<i class="fas fa-globe"></i> 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'),
], ],
}, },
'⚙️ System Configuration': { '<i class="fas fa-cog"></i> SYSTEM CONFIGURATION': {
'models': [ 'models': [
('system', 'IntegrationSettings'), ('system', 'IntegrationSettings'),
('system', 'AuthorProfile'), ('system', 'AuthorProfile'),
@@ -128,13 +128,13 @@ class Igny8AdminSite(admin.AdminSite):
('system', 'SystemStatus'), ('system', 'SystemStatus'),
], ],
}, },
'<EFBFBD> Monitoring & Tasks': { '<i class="fas fa-tasks"></i> MONITORING & TASKS': {
'models': [ 'models': [
('django_celery_results', 'TaskResult'), ('django_celery_results', 'TaskResult'),
('django_celery_results', 'GroupResult'), ('django_celery_results', 'GroupResult'),
], ],
}, },
'<EFBFBD>🔧 Django System': { '<i class="fas fa-server"></i> DJANGO SYSTEM': {
'models': [ 'models': [
('admin', 'LogEntry'), ('admin', 'LogEntry'),
('auth', 'Group'), ('auth', 'Group'),
@@ -173,15 +173,16 @@ class Igny8AdminSite(admin.AdminSite):
# Sort the app list by our custom order # Sort the app list by our custom order
order = [ order = [
'💰 Billing & Accounts', '<i class="fas fa-dollar-sign"></i> BILLING & ACCOUNTS',
'👥 Sites & Users', '<i class="fas fa-users"></i> SITES & USERS',
'📚 Content Management', '<i class="fas fa-file-alt"></i> CONTENT MANAGEMENT',
'🎯 Planning & Strategy', '<i class="fas fa-lightbulb"></i> PLANNING & STRATEGY',
'🔗 Integrations & Publishing', '<i class="fas fa-plug"></i> INTEGRATIONS & PUBLISHING',
'🤖 AI & Automation', '<i class="fas fa-robot"></i> AI & AUTOMATION',
'🌍 Global Reference Data', '<i class="fas fa-globe"></i> GLOBAL REFERENCE DATA',
'⚙️ System Configuration', '<i class="fas fa-cog"></i> SYSTEM CONFIGURATION',
'🔧 Django System', '<i class="fas fa-tasks"></i> MONITORING & TASKS',
'<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

View File

@@ -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>🚀 IGNY8 Admin Dashboard</h1> <h1><i class="fas fa-rocket"></i> 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/"> Back to Admin</a> <a href="/admin/"><i class="fas fa-arrow-left"></i> Back to Admin</a>
</div> </div>
</div> </div>
{% if alerts %} {% if alerts %}
<div class="alerts-section"> <div class="alerts-section">
<h2 style="margin: 0 0 16px 0; font-size: 20px; font-weight: 600;">📢 Active Alerts</h2> <h2><i class="fas fa-bullhorn"></i> 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"></div> <div class="icon"><i class="fas fa-check-circle"></i></div>
<h3 style="margin: 0 0 8px 0; color: #0bbf87;">All Systems Operational</h3> <h3>All Systems Operational</h3>
<p style="margin: 0;">No active alerts or issues detected</p> <p>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><span class="icon">👥</span> Accounts</h3> <h3><i class="fas fa-users"></i> 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><span class="icon">📚</span> Content</h3> <h3><i class="fas fa-file-alt"></i> 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><span class="icon">💰</span> Billing</h3> <h3><i class="fas fa-dollar-sign"></i> 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><span class="icon">🤖</span> Automation & Sync</h3> <h3><i class="fas fa-robot"></i> 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><span class="icon">⚙️</span> Celery Tasks</h3> <h3><i class="fas fa-cog"></i> 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> Quick Actions</h3> <h3><i class="fas fa-bolt"></i> Quick Actions</h3>
<div class="action-grid"> <div class="action-grid">
<a href="/admin/" class="action-button" style="background: linear-gradient(135deg, #0d1b2a 0%, #1a2e44 100%);"> <a href="/admin/" class="action-button action-button-neutral">
<span class="icon">🏠</span> <i class="fas fa-home"></i>
<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">
<span class="icon">👥</span> <i class="fas fa-users"></i>
<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">
<span class="icon">📝</span> <i class="fas fa-edit"></i>
<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">
<span class="icon"></span> <i class="fas fa-check-square"></i>
<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">
<span class="icon">💳</span> <i class="fas fa-credit-card"></i>
<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">
<span class="icon">🤖</span> <i class="fas fa-robot"></i>
<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">
<span class="icon">⚙️</span> <i class="fas fa-cog"></i>
<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