PDF-отчёт клиента печатает реальные названия площадок — привести к норме publicLabel («Источник N») #3341

Closed
opened 2026-09-03 06:48:51 +00:00 by lekss361 · 1 comment
Owner

Веб-отчёт и лендинг с решения владельца продукта от 31.08.2026 не называют площадки-источники (канон: publicLabel / sourcePublicLabel() в tradein-mvp/frontend/src/lib/source-registry.ts, «Источник 1…5», Росреестр под своим именем). Клиентский PDF (GET /estimate/{id}/pdf, tradein-mvp/backend/app/services/exporters/trade_in_pdf.py) остался как был — тот же клиент получает два документа с разной нормой, и юр-риск, ради которого всё делалось, в PDF не закрыт.

Найдено ревью PR по лендингу (fix/mera-public-copy-legal-deplatforming), в тот PR не входит — отдельная backend-задача.

Где в trade_in_pdf.py:

  • _SOURCE_DISPLAY_NAMES (~306-313): Avito / Циан / «Домклик · Сбер» / Я.Недвижимость / Этажи → _source_logo_pill (~325) и _source_badge_inline (~340); fallback source.title() отдаёт сырой id («Avito_Imv»). Рендер на ~1361 и ~1605.
  • advice_discount_text (~1167-1176): «…подтверждают Росреестр, ДомКлик и продажи агентств…» в обеих ветках, уходит в таблицу советов на ~1242.
  • Строка тарифов (~1850): «Ежемесячное базовое продвижение объекта на Циан, Авито, Я.Недвижимости» — веб-двойник offer-rates.ts уже переведён на sourcePublicLabel.
  • Цвета пилюль (~298-303) можно оставить: цвет — опознаватель источника, как и на вебе.

Что сделать:

  1. Завести в экспортёре мапу публичных лейблов 1:1 с source-registry.ts (avito/avito_imv → Источник 1, cian/cian_valuation → 2, yandex/yandex_valuation → 3, domklik/domclick → 4, etazhi → 5, rosreestr → Росреестр, неизвестный → «Другой источник»); реальные названия — только в комментариях.
  2. Переписать три текстовых места выше нейтрально (как на вебе).
  3. Тест-гейт: рендер PDF-HTML для фикстурной оценки не содержит названий площадок (список как в frontend/src/app/mera-public/__tests__/public-copy-no-platform-names.test.ts).

Не трогать: ссылки на объявления (avito.ru / domclick.ru) — отдельное, не принятое решение.

Веб-отчёт и лендинг с решения владельца продукта от 31.08.2026 не называют площадки-источники (канон: `publicLabel` / `sourcePublicLabel()` в `tradein-mvp/frontend/src/lib/source-registry.ts`, «Источник 1…5», Росреестр под своим именем). Клиентский PDF (`GET /estimate/{id}/pdf`, `tradein-mvp/backend/app/services/exporters/trade_in_pdf.py`) остался как был — тот же клиент получает два документа с разной нормой, и юр-риск, ради которого всё делалось, в PDF не закрыт. Найдено ревью PR по лендингу (fix/mera-public-copy-legal-deplatforming), в тот PR не входит — отдельная backend-задача. **Где в `trade_in_pdf.py`:** - `_SOURCE_DISPLAY_NAMES` (~306-313): Avito / Циан / «Домклик · Сбер» / Я.Недвижимость / Этажи → `_source_logo_pill` (~325) и `_source_badge_inline` (~340); fallback `source.title()` отдаёт сырой id («Avito_Imv»). Рендер на ~1361 и ~1605. - `advice_discount_text` (~1167-1176): «…подтверждают Росреестр, ДомКлик и продажи агентств…» в обеих ветках, уходит в таблицу советов на ~1242. - Строка тарифов (~1850): «Ежемесячное базовое продвижение объекта на Циан, Авито, Я.Недвижимости» — веб-двойник `offer-rates.ts` уже переведён на `sourcePublicLabel`. - Цвета пилюль (`~298-303`) можно оставить: цвет — опознаватель источника, как и на вебе. **Что сделать:** 1. Завести в экспортёре мапу публичных лейблов 1:1 с `source-registry.ts` (avito/avito_imv → Источник 1, cian/cian_valuation → 2, yandex/yandex_valuation → 3, domklik/domclick → 4, etazhi → 5, rosreestr → Росреестр, неизвестный → «Другой источник»); реальные названия — только в комментариях. 2. Переписать три текстовых места выше нейтрально (как на вебе). 3. Тест-гейт: рендер PDF-HTML для фикстурной оценки не содержит названий площадок (список как в `frontend/src/app/mera-public/__tests__/public-copy-no-platform-names.test.ts`). Не трогать: ссылки на объявления (avito.ru / domclick.ru) — отдельное, не принятое решение.
Author
Owner

Закрыто PR #3344 (merge 9cb5bf3f, деплой 03.09 09:10 UTC).

Замер на проде по той же оценке (4 страницы) до и после:

  • до: «Домклик» ×5, «Авито», «Циан», «ДомКлик», «Я.Недвижимость»
  • после: ни одного названия площадки и сырого id; «Источник 3» ×2, «Источник 4» ×5, «Росреестр» ×7, «на основных площадках объявлений», «сделки площадок».

Гейт tests/test_pdf_public_source_labels.py держит норму. Не тронуто: ссылки на объявления на домены площадок — отдельное решение.

Закрыто PR #3344 (merge 9cb5bf3f, деплой 03.09 09:10 UTC). Замер на проде по той же оценке (4 страницы) до и после: - до: «Домклик» ×5, «Авито», «Циан», «ДомКлик», «Я.Недвижимость» - после: ни одного названия площадки и сырого id; «Источник 3» ×2, «Источник 4» ×5, «Росреестр» ×7, «на основных площадках объявлений», «сделки площадок». Гейт `tests/test_pdf_public_source_labels.py` держит норму. Не тронуто: ссылки на объявления на домены площадок — отдельное решение.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#3341
No description provided.