8000
Skip to content

DRY: dashboard.py log seviyesi → renk/CSS eşlemesini tek yerden yönet #6

Description

@zntkr

This was generated by AI during triage.

Sorun

ui/dashboard.py içinde log seviyelerinin renk ve CSS class eşlemesi iki ayrı yerde tanımlı:

Blok A — set_status() (satır 359–368): dict literal, seviye → palet rengi

level_colors = {
    "OK": p["CLR_OK"], "ERR": p["CLR_ERR"],
    "WARN": p["CLR_WARN"], "WRN": p["CLR_WARN"],
    "IDLE": p["CLR_IDLE"], "...": p["CLR_IDLE"],
    "INFO": p["CLR_INFO"], "↓": p["CLR_INFO"],
}

Blok B — _make_log_html_line() (satır 288–308): if/elif zinciri + CSS class isimleri

if lvl_clean == "OK": lvl_class = "lvl-ok"
elif lvl_clean == "ERR": lvl_class = "lvl-err"
elif lvl_clean in ("WARN", "WRN"): lvl_class = "lvl-wrn"
...
.lvl-ok { color: CLR_OK }
.lvl-err { color: CLR_ERR }

Yeni bir log seviyesi (örn. "FATAL") eklendiğinde her iki blok da güncellenmeli; birinin atlanması sessiz hatayla sonuçlanır.

Agent Brief

Hedef: İki bloğu tek bir veri kaynağından türet.

Önerilen yaklaşım:

  1. set_status() üstünde modül düzeyinde sabit tanımla:
    _LEVEL_PALETTE_KEY: dict[str, str] = {
        "OK": "CLR_OK", "ERR": "CLR_ERR",
        "WARN": "CLR_WARN", "WRN": "CLR_WARN",
        "IDLE": "CLR_IDLE", "...": "CLR_IDLE",
        "INFO": "CLR_INFO", "↓": "CLR_INFO",
    }
  2. set_status() içinde level_colors = {k: p[v] for k, v in _LEVEL_PALETTE_KEY.items()} kullan.
  3. _make_log_html_line() içindeki if/elif zincirini _LEVEL_PALETTE_KEY üzerinden türet; CSS class ismi "lvl-" + level.lower() kuralına uy (varolan class isimleriyle uyumlu).

Test: python -m pytest geçmeli; log kutusundaki renkler değişmemeli.

Kapsam dışı: Başka dosyal 71AE ardaki renk erişim kalıpları bu PR'a dahil edilmemeli.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    0