Browse Source

Refactor color management in admin panels by removing global color definitions from base settings and implementing specific color palettes for Formula and Dovoodi admin sites.

master
mortezaei 5 months ago
parent
commit
a57d6b5f9d
  1. 52
      config/settings/base.py
  2. 123
      utils/admin.py

52
config/settings/base.py

@ -342,55 +342,9 @@ UNFOLD = {
"LOGIN": {
"image": lambda request: static("images/image1.jpg"),
},
"COLORS": {
"base": {
"50": "249 250 251",
"100": "243 244 246",
"200": "229 231 235",
"300": "209 213 219",
"400": "156 163 175",
"500": "107 114 128",
"600": "75 85 99",
"700": "55 65 81",
"800": "31 41 55",
"900": "17 24 39",
"950": "3 7 18",
},
"primary": {
"50": "234 253 243",
"100": "208 251 232",
"200": "167 247 216",
"300": "110 240 189",
"400": "37 213 152",
"500": "37 208 118", # #25D076 - رنگ دکمه اصلی
"600": "29 166 94",
"700": "25 136 80",
"800": "22 108 66",
"900": "20 89 57",
"950": "10 53 34",
},
"secondary": {
"50": "240 253 250",
"100": "204 251 241",
"200": "153 246 228",
"300": "94 234 212",
"400": "45 212 191",
"500": "1 53 59", # #01353B - رنگ پس‌زمینه
"600": "1 43 48",
"700": "1 36 40",
"800": "1 30 34",
"900": "0 26 29",
"950": "0 13 15",
},
"font": {
"subtle-light": "var(--color-base-500)",
"subtle-dark": "var(--color-base-400)",
"default-light": "var(--color-secondary-500)", # استفاده از رنگ ثانویه برای متن
"default-dark": "var(--color-base-300)",
"important-light": "var(--color-base-900)",
"important-dark": "255 255 255", # #FFFFFF - برای متن سفید در دکمه‌ها
},
},
# ✅ COLORS حذف شد - هر AdminSite رنگ‌های خودش را در utils/admin.py تعریف می‌کند
# - FormulaAdminSite: پالت سبز برای امام جواد
# - DovoodiAdminSite: پالت آبی-تیره برای داوودی (مطابق فرانت)
"STYLES": [
# lambda request: static("css/styles.css"),
],

123
utils/admin.py

@ -95,6 +95,66 @@ class FormulaAdminSite(UnfoldAdminSite):
super().__init__(*args, **kwargs)
# Set login form after initialization to avoid circular import
self.login_form = LoginForm.get_form()
def _get_colors(self, key, *args):
"""Override colors for Imam Javad admin panel with green theme"""
from unfold.utils import hex_to_rgb
if key != "COLORS":
return super()._get_colors(key, *args)
# پالت رنگی سبز برای امام جواد
imam_javad_colors = {
"base": {
"50": "249 250 251",
"100": "243 244 246",
"200": "229 231 235",
"300": "209 213 219",
"400": "156 163 175",
"500": "107 114 128",
"600": "75 85 99",
"700": "55 65 81",
"800": "31 41 55",
"900": "17 24 39",
"950": "3 7 18",
},
"primary": {
"50": "234 253 243",
"100": "208 251 232",
"200": "167 247 216",
"300": "110 240 189",
"400": "37 213 152",
"500": "37 208 118", # #25D076 - سبز اصلی
"600": "29 166 94",
"700": "25 136 80",
"800": "22 108 66",
"900": "20 89 57",
"950": "10 53 34",
},
"secondary": {
"50": "240 253 250",
"100": "204 251 241",
"200": "153 246 228",
"300": "94 234 212",
"400": "45 212 191",
"500": "1 53 59", # #01353B - پس‌زمینه تیره
"600": "1 43 48",
"700": "1 36 40",
"800": "1 30 34",
"900": "0 26 29",
"950": "0 13 15",
},
"font": {
"subtle-light": "var(--color-base-500)",
"subtle-dark": "var(--color-base-400)",
"default-light": "var(--color-secondary-500)",
"default-dark": "var(--color-base-300)",
"important-light": "var(--color-base-900)",
"important-dark": "255 255 255",
},
}
return imam_javad_colors
class DovoodiAdminSite(UnfoldAdminSite):
"""Secondary Admin for Dovoodi"""
@ -107,6 +167,69 @@ class DovoodiAdminSite(UnfoldAdminSite):
super().__init__(*args, **kwargs)
# Set login form after initialization to avoid circular import
self.login_form = LoginForm.get_form()
def _get_colors(self, key, *args):
"""Override colors for Dovoodi admin panel with blue/teal theme matching frontend"""
from unfold.utils import hex_to_rgb
if key != "COLORS":
return super()._get_colors(key, *args)
# پالت رنگی آبی-تیره برای داوودی (مطابق با فرانت)
dovoodi_colors = {
"base": {
# استفاده از Wormy scale برای base
"50": "252 251 250", # #FCFBFA
"100": "246 245 244", # #F6F5F4
"200": "240 236 233", # #F0ECE9
"300": "229 220 211", # #E5DCD3
"400": "191 174 157", # #BFAE9D
"500": "107 114 128",
"600": "75 85 99",
"700": "55 65 81",
"800": "31 41 55",
"900": "17 24 39", # #111827
"950": "3 7 18",
},
"primary": {
# استفاده از رنگ آبی اصلی فرانت
"50": "240 244 255", # #F0F4FF
"100": "224 231 255", # #E0E7FF
"200": "199 210 254", # #C7D2FE
"300": "165 180 252", # #A5B4FC
"400": "129 140 248", # #818CF8
"500": "99 102 241", # #6366F1
"600": "81 114 225", # #5172E1 - رنگ اصلی فرانت
"700": "59 89 196", # #3B59C4
"800": "45 68 145", # #2D4491
"900": "30 41 91",
"950": "15 20 45",
},
"secondary": {
# استفاده از Second scale فرانت (تیره سبز-آبی)
"50": "210 215 215", # #D2D7D7
"100": "151 163 164", # #97A3A4
"200": "108 125 127", # #6C7D7F
"300": "44 69 72", # #2C4548
"400": "1 31 34", # #011F22
"500": "1 22 24", # #011618 - پس‌زمینه اصلی
"600": "1 19 21", # #011315
"700": "0 15 17",
"800": "0 12 14",
"900": "0 8 10",
"950": "0 4 5",
},
"font": {
"subtle-light": "var(--color-base-500)",
"subtle-dark": "var(--color-base-400)",
"default-light": "var(--color-secondary-400)",
"default-dark": "var(--color-base-200)",
"important-light": "var(--color-base-900)",
"important-dark": "255 255 255",
},
}
return dovoodi_colors
# Simple admin site placeholders that will be replaced after Django setup
class AdminSitePlaceholder(UnfoldAdminSite):

Loading…
Cancel
Save