[Enhancement] Вынести перевод статусов (STATUS_TRANSLATION) из кода в конфигурацию #65

Closed
opened 2026-07-16 18:25:04 +07:00 by artem.kokos · 0 comments
Owner

Проблема

Словарь перевода статусов (redmine_reporter/report_builder.py:8-22) захардкожен под воркфлоу конкретного Redmine-инстанса:

STATUS_TRANSLATION = {
    "New": "В работе",
    ...
    "Frozen": "Ожидание",
}

Набор статусов — настройка конкретного Redmine, у другого инстанса он может отличаться. Сейчас неизвестные статусы проходят в отчёт как есть (на английском), а изменить перевод можно только правкой кода и выпуском новой версии.

Рекомендации

  1. Поддержать опциональную секцию в YAML-конфиге, например:
report:
  status_translation:
    "New": "Новая"
    "Wait Release": "Ожидает релиза"

Пользовательские значения переопределяют/дополняют встроенный словарь; без секции поведение не меняется.

  1. Задокументировать в docs/CONFIG.md, добавить закомментированный пример в шаблон --init-config.
  2. Тесты: переопределение одного статуса, добавление нового статуса, отсутствие секции (дефолты неизменны).

Связанные места

  • redmine_reporter/report_builder.py:8-22 (STATUS_TRANSLATION)
  • redmine_reporter/config.py (секция report)
  • Задача #29 — спор о переводе «Wait Release»: конфигурация снимает подобные споры без правок кода

Критерии приёмки

  • Перевод статусов можно переопределить через YAML-конфиг.
  • Без секции в конфиге используется текущий встроенный словарь.
  • Документация и шаблон --init-config обновлены, тесты добавлены.
## Проблема Словарь перевода статусов (`redmine_reporter/report_builder.py:8-22`) захардкожен под воркфлоу конкретного Redmine-инстанса: ```python STATUS_TRANSLATION = { "New": "В работе", ... "Frozen": "Ожидание", } ``` Набор статусов — настройка конкретного Redmine, у другого инстанса он может отличаться. Сейчас неизвестные статусы проходят в отчёт как есть (на английском), а изменить перевод можно только правкой кода и выпуском новой версии. ## Рекомендации 1. Поддержать опциональную секцию в YAML-конфиге, например: ```yaml report: status_translation: "New": "Новая" "Wait Release": "Ожидает релиза" ``` Пользовательские значения переопределяют/дополняют встроенный словарь; без секции поведение не меняется. 2. Задокументировать в `docs/CONFIG.md`, добавить закомментированный пример в шаблон `--init-config`. 3. Тесты: переопределение одного статуса, добавление нового статуса, отсутствие секции (дефолты неизменны). ## Связанные места - `redmine_reporter/report_builder.py:8-22` (`STATUS_TRANSLATION`) - `redmine_reporter/config.py` (секция `report`) - Задача #29 — спор о переводе «Wait Release»: конфигурация снимает подобные споры без правок кода ## Критерии приёмки - [ ] Перевод статусов можно переопределить через YAML-конфиг. - [ ] Без секции в конфиге используется текущий встроенный словарь. - [ ] Документация и шаблон `--init-config` обновлены, тесты добавлены.
artem.kokos added the enhancementreport labels 2026-07-16 18:25:04 +07:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: artem.kokos/redmine-reporter#65