Go to file
aaverbitskiy 6816ba90f4 managers: normalize name word-order at read time, canonical "Фамилия Имя"
Planfix has emitted manager names in two word orders over time ("Имя Фамилия"
from the 26 Jul 2026 n8n backfill, "Фамилия Имя" from the ongoing etl_rw feed),
so one person appeared as two distinct filter options (e.g. "Александра Столбова"
vs "Столбова Александра"), splitting their tasks across two facet values.

Fix without touching stored data:
- MANAGER_KEY_ARR: SQL expression building a word-order- and case-independent
  key (lowercase, split, arraySort, rejoin) per manager array element.
- MANAGER_COND / MAP_MANAGER_COND now match on that key, so a selected manager
  catches rows stored under either order.
- parse_filters normalizes incoming manager values with the same key (_mkey).
- /api/meta returns canonical "Фамилия Имя" names (CANONICAL_MANAGERS),
  deduplicated; unknown names pass through unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 18:50:01 +00:00
frontend filters: add faceted Status (task_status) filter — meta.statuses, boards/bookings/map filtering (map marker visibility), UI dropdown under Size in filter grid 2026-07-27 19:40:26 +00:00
.gitignore db creds: move ClickHouse user/password to gitignored .env via compose env_file; drop hardcoded default from main.py 2026-07-23 05:19:13 +00:00
docker-compose.yml db creds: move ClickHouse user/password to gitignored .env via compose env_file; drop hardcoded default from main.py 2026-07-23 05:19:13 +00:00
Dockerfile Import mapdash (FastAPI + vis-timeline) + docker-compose with static volume 2026-07-17 15:13:27 +00:00
main.py managers: normalize name word-order at read time, canonical "Фамилия Имя" 2026-08-05 18:50:01 +00:00
requirements.txt Import mapdash (FastAPI + vis-timeline) + docker-compose with static volume 2026-07-17 15:13:27 +00:00