From b2d42a631ab7f815229bd8677410ce56d363fd3d Mon Sep 17 00:00:00 2001 From: lekss361 Date: Sat, 4 Jul 2026 18:41:21 +0000 Subject: [PATCH] =?UTF-8?q?feat(tradein/pdf):=20=D1=80=D0=B5=D0=B4=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D0=B9=D0=BD=20=D0=BE=D1=82=D1=87=D1=91=D1=82=D0=B0?= =?UTF-8?q?=20=D0=B2=20=D1=80=D0=B5=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=BC=20?= =?UTF-8?q?=D1=8F=D0=B7=D1=8B=D0=BA=D0=B5=20=D0=9C=D0=95=D0=A0=D0=90=20(v2?= =?UTF-8?q?=20HUD)=20(#2434)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exporters/fonts/IBMPlexMono-Medium.ttf | Bin 0 -> 136704 bytes .../exporters/fonts/IBMPlexMono-Regular.ttf | Bin 0 -> 135580 bytes .../services/exporters/fonts/Manrope-Bold.ttf | Bin 0 -> 96588 bytes .../exporters/fonts/Manrope-Regular.ttf | Bin 0 -> 96604 bytes .../exporters/fonts/OFL_IBMPlexMono.txt | 93 ++ .../services/exporters/fonts/OFL_Manrope.txt | 93 ++ .../app/services/exporters/trade_in_pdf.py | 949 ++++++++++++++---- .../backend/tests/test_pdf_security.py | 2 +- 8 files changed, 945 insertions(+), 192 deletions(-) create mode 100644 tradein-mvp/backend/app/services/exporters/fonts/IBMPlexMono-Medium.ttf create mode 100644 tradein-mvp/backend/app/services/exporters/fonts/IBMPlexMono-Regular.ttf create mode 100644 tradein-mvp/backend/app/services/exporters/fonts/Manrope-Bold.ttf create mode 100644 tradein-mvp/backend/app/services/exporters/fonts/Manrope-Regular.ttf create mode 100644 tradein-mvp/backend/app/services/exporters/fonts/OFL_IBMPlexMono.txt create mode 100644 tradein-mvp/backend/app/services/exporters/fonts/OFL_Manrope.txt diff --git a/tradein-mvp/backend/app/services/exporters/fonts/IBMPlexMono-Medium.ttf b/tradein-mvp/backend/app/services/exporters/fonts/IBMPlexMono-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..33c546f68b6007a45a3f10e845523abb2db25399 GIT binary patch literal 136704 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 K5Q|D9=l=lr4cw*x literal 0 HcmV?d00001 diff --git a/tradein-mvp/backend/app/services/exporters/fonts/Manrope-Bold.ttf b/tradein-mvp/backend/app/services/exporters/fonts/Manrope-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dfd95290c05c18f3e0e973d557d0deb2ab87a4c2 GIT binary patch literal 96588 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 Nk$wz;72L93{{zud(@X#W literal 0 HcmV?d00001 diff --git a/tradein-mvp/backend/app/services/exporters/fonts/Manrope-Regular.ttf b/tradein-mvp/backend/app/services/exporters/fonts/Manrope-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..39c228c6baa6f8c6b5db116496e5f786eba9ddf7 GIT binary patch literal 96604 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 Ype9rkfZ_l|o=k}bh=RBD6^PGPQ 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 St4C4#QGMv~4!%IJD$;*j!4ZxC literal 0 HcmV?d00001 diff --git a/tradein-mvp/backend/app/services/exporters/fonts/OFL_IBMPlexMono.txt b/tradein-mvp/backend/app/services/exporters/fonts/OFL_IBMPlexMono.txt new file mode 100644 index 00000000..670c6c04 --- /dev/null +++ b/tradein-mvp/backend/app/services/exporters/fonts/OFL_IBMPlexMono.txt @@ -0,0 +1,93 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/tradein-mvp/backend/app/services/exporters/fonts/OFL_Manrope.txt b/tradein-mvp/backend/app/services/exporters/fonts/OFL_Manrope.txt new file mode 100644 index 00000000..b13cba53 --- /dev/null +++ b/tradein-mvp/backend/app/services/exporters/fonts/OFL_Manrope.txt @@ -0,0 +1,93 @@ +Copyright 2018 The Manrope Project Authors (https://github.com/sharanda/manrope) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/tradein-mvp/backend/app/services/exporters/trade_in_pdf.py b/tradein-mvp/backend/app/services/exporters/trade_in_pdf.py index cb5db27a..b0428d84 100644 --- a/tradein-mvp/backend/app/services/exporters/trade_in_pdf.py +++ b/tradein-mvp/backend/app/services/exporters/trade_in_pdf.py @@ -1,13 +1,21 @@ """PDF-генератор для Trade-In Estimator — собственная визуальная система GenDesign/Mera. -Дизайн опирается на живой веб-продукт (tradein-mvp/frontend/.../trade-in.css): -цветовая палитра сконвертирована из OKLCH-токенов веб-приложения в hex через -точную OKLab→sRGB матрицу (Ottosson), типографика — PT Serif (заголовки страниц, -только жирное начертание), PT Sans (текст/таблицы) — оба встроены в PDF как -base64 @font-face (SIL OFL 1.1, см. app/services/exporters/fonts/), с DejaVu -Serif/Sans как fallback-цепочкой; DejaVu Sans Mono (все числовые значения, -tabular-nums) остаётся системным — из пакета fonts-dejavu-core, гарантированно -установленного в Docker-образе. Диапазоны цен (_price_range_chart_svg) — реальный +Дизайн-токены (цвет / HUD-хром: header/footer/CSS) портированы из РЕАЛЬНОЙ Mera v2 +HUD/blueprint-идентичности — canonical source: +tradein-mvp/frontend/src/components/trade-in/v2/tokens.ts (+ Footer.tsx/HeroBar.tsx/ +ObjectSummary.tsx для composition-паттернов). Два предыдущих раунда редизайна +(PR #2327, #2427) ошибочно опирались на trade-in.css/tradein.html — старую +"PRINZIP"-брендированную внутреннюю демку, НЕ настоящую Mera-идентичность; этот +модуль на неё больше не ссылается (см. _PAGE_BG и соседние константы ниже). +Типографика — PT Serif (заголовки страниц тела отчёта, только жирное начертание), +PT Sans (текст/таблицы тела отчёта) — оба встроены в PDF как base64 @font-face +(SIL OFL 1.1, см. app/services/exporters/fonts/), с DejaVu Serif/Sans как +fallback-цепочкой; DejaVu Sans Mono (числовые значения тела отчёта, tabular-nums) +остаётся системным — из пакета fonts-dejavu-core, гарантированно установленного в +Docker-образе. Manrope/IBM Plex Mono (тоже base64 @font-face) — Mera v2 шрифтовая +пара, используется в HUD-хроме (_page_header/_page_footer); тело отчёта +(_build_cover/_build_listings_page/_build_deals_page/_build_offer_page) на них пока +не переключено — следующий этап. Диапазоны цен (_price_range_chart_svg) — реальный matplotlib-график (Agg, SVG), не декоративный CSS-div. Документ — деловой/утилитарный отчёт (ближе к банковской оценке, чем к маркетинговому лендингу), НЕ 1:1 копия конкурентного референса. @@ -172,24 +180,61 @@ def _make_safe_url_fetcher(): # type: ignore[no-untyped-def] return fetcher -# ── Design tokens (design system) ──────────────────────────────────────────── -# Цвета сконвертированы из OKLCH-токенов живого веб-продукта -# (tradein-mvp/frontend/src/components/trade-in/trade-in.css) точной OKLab→sRGB -# матрицей (Ottosson reference), а не приблизительно на глаз. --muted/--success -# в исходнике веба уже hex — взяты как есть, без конверсии. -_FG = "#0e1217" # --fg: oklch(18% 0.012 250) — основной текст/чернила -_BG = "#fbfcfd" # --bg: oklch(99% 0.002 240) — чуть холодный near-white, не чистый #fff -_MUTED = "#5f6570" # --muted (web, уже hex) — вторичный текст/лейблы -_ACCENT = "#1b6ad4" # --accent: oklch(54% 0.18 258) — базовый синий (non-white-label) -_ACCENT_SOFT = "#e6f3ff" # oklch(96% 0.03 258) -_ACCENT_2 = "#da6600" # --accent-2: oklch(64% 0.17 50) — тёплый вторичный (был generic amber) -_ACCENT_2_SOFT = "#ffedce" # oklch(96% 0.05 70) -_DANGER = "#d02b31" # --danger: oklch(56% 0.20 25) — был generic bootstrap-red #dc2626 -_DANGER_SOFT = "#ffe8e4" # oklch(96% 0.04 25) -_SUCCESS = "#197038" # --success (web, уже hex) — «бесплатно» / экономия -_BORDER = "#e2e5e8" # --border: oklch(92% 0.005 250) — hairline (был произвольный #e6e8ec) -_BORDER_STRONG = "#babec3" # --border-strong: oklch(80% 0.008 250) -_CARD_BG = "#f4f7f9" # --surface-2: oklch(97.5% 0.004 240) — карточка (был #f9fafb) +# ── Design tokens (Mera v2 HUD design system) ─────────────────────────────── +# Портировано 1:1 из канонического токен-контракта /trade-in/v2: +# tradein-mvp/frontend/src/components/trade-in/v2/tokens.ts +# Предыдущие раунды (PR #2327/#2427) ошибочно брали этот блок из trade-in.css / +# tradein.html — несвязанной "PRINZIP"-брендированной внутренней демки, НЕ +# настоящей Mera-идентичности продукта. Это исправленный источник. +# +# Константы, помеченные "legacy alias", НЕ часть контракта tokens.ts — они +# существуют только потому, что тело отчёта (_build_cover/_build_listings_page/ +# _build_deals_page/_build_offer_page — не тронуто в этом этапе, следующий этап) +# по-прежнему ссылается на старые имена; их ЗНАЧЕНИЯ указывают на ближайший +# Mera-эквивалент, чтобы весь документ (старое тело + новый HUD-хром) читался +# как одна согласованная палитра, а не два конфликтующих во время переходного +# многоэтапного редизайна. +_PAGE_BG = "#dde6ef" # tokens.pageBg — фон страницы +_INK = "#1c2c40" # tokens.ink — заголовки / основной текст +_INK_2 = "#17263a" # tokens.ink2 — вторичный ink +_BODY = "#39506a" # tokens.body — текст тела +_BODY_2 = "#46586c" # tokens.body2 — текст тела, более выразительный (wordmark футера) +_MUTED = "#586777" # tokens.muted — самый выразительный приглушённый (лейблы/подписи) +_MUTED_2 = "#5c6672" # tokens.muted2 — заголовки карточек / meta-лейблы (header/footer) +_LINE = "#c2d3e3" # tokens.line — базовый hairline/бордер +_LINE_2 = "#c8d7e6" # tokens.line2 — бордер карточки +_LINE_SOFT = "#d3dfeb" # tokens.lineSoft — вертикальные hairline (meta-cell разделители) +_LINE_DOTTED = "#cbd7e3" # tokens.lineGradient — пунктирные row-разделители / центр футера +_ACCENT = "#2e8bff" # tokens.accent +_ACCENT_DEEP = "#0d6fd6" # tokens.accentDeep +_ACCENT_LITE = "#46a8ff" # tokens.accentLite +_SUCCESS = "#1baa6b" # tokens.success +_SUCCESS_BORDER = "#b6e0cc" # tokens.successBorder +_WARN = "#b58a3e" # tokens.warn +_DANGER = "#cd6868" # tokens.danger +_BADGE_TINT = "#eaf1f8" # tokens.badgeTint — непрозрачная бледно-синяя заливка чипа +_CARD_BG = "#eef3f7" # flattened tokens.surface.w50 поверх _PAGE_BG — у WeasyPrint нет +# backdrop-filter/blur, поэтому «стеклянная» карточка — заранее посчитанная плоская +# заливка вместо rgba(255,255,255,.5) + blur (см. фон карточки в ObjectSummary.tsx). +_BRACKET = "#9bbce0" # tokens.bracket — акцент HUD corner-bracket +_TRACK = "#dbe6f1" # tokens.track — «range track + donut track» (дословно из tokens.ts, +# один токен на оба применения: подложка _price_range_chart_svg И трек-круг +# _data_quality_gauge_svg — этот этап добавляет второе использование). + +# Legacy aliases — см. комментарий блока выше; убрать при редизайне тела отчёта. +_FG = _INK +_ACCENT_SOFT = _BADGE_TINT +_ACCENT_2 = _WARN # у Mera нет отдельного тёплого "accent-2" — ближайший аналог +_ACCENT_2_SOFT = "#f6f1e8" # мягкий тёплый тон (12% _WARN на белом) — иконки Offer-страницы +_DANGER_SOFT = "#f9eded" # мягкий тон (12% _DANGER на белом) — фон warning-плашек +_BORDER = _LINE +_BORDER_STRONG = "#b8c8d8" # tokens.line3 — edge карточки/фото, оси графика (сильнее hairline) + +# Декоративная версия «движка отчёта» в футере (см. _page_footer) — зеркалит +# tradein-mvp/frontend/src/components/trade-in/v2/fixtures.ts::version. Не +# brand-данные (одинаковая для всех white-label брендов) — косметическая деталь +# HUD, а не версия PDF-модуля/API. +_REPORT_ENGINE_VERSION = "v2.0.6" # Type scale — консолидировано с ~11 разрозненных значений (7/7.5/8/8.5/9/10/ # 11/12/13/14/18pt) до 6 шагов, применяется единообразно на всех 4 страницах. @@ -220,11 +265,29 @@ _PT_SANS_REGULAR_URL = _font_data_url("PTSans-Regular.ttf") _PT_SANS_BOLD_URL = _font_data_url("PTSans-Bold.ttf") _PT_SERIF_BOLD_URL = _font_data_url("PTSerif-Bold.ttf") -# Регистрируем те же файлы в matplotlib (chart endpoint-labels используют тот же -# PT Sans, что и остальной документ — единая типографика, tabular-figure цифры). +# Manrope (UI-текст) и IBM Plex Mono (числа/лейблы) — та же пара шрифтов, что +# зарегистрирована в живом /trade-in/v2 (см. frontend/src/app/v2/layout.tsx, +# next/font/google, subsets latin+cyrillic). Variable-font Manrope[wght].ttf +# инстанцирован в статические Regular/Bold через fonttools varLib.instancer +# (варьируемые шрифты не поддерживаются как @font-face src в WeasyPrint) — +# исходный variable-файл НЕ коммитится, только полученные статические веса. +# IBM Plex Mono подключён только 400/500 (см. @font-face ниже) — bold mono +# не понадобился нигде в текущей вёрстке. +_MANROPE_REGULAR_URL = _font_data_url("Manrope-Regular.ttf") +_MANROPE_BOLD_URL = _font_data_url("Manrope-Bold.ttf") +_IBM_PLEX_MONO_REGULAR_URL = _font_data_url("IBMPlexMono-Regular.ttf") +_IBM_PLEX_MONO_MEDIUM_URL = _font_data_url("IBMPlexMono-Medium.ttf") + +# Регистрируем файлы в matplotlib. С этого этапа chart endpoint-labels (см. +# _price_range_chart_svg) рендерятся Manrope — той же гарнитурой, что и весь +# HUD-хром (_page_header/_page_footer) и (следующий шаг) тело отчёта; PT Sans +# по-прежнему зарегистрирован (нужен для @font-face тела документа, ещё не +# переключённого на Manrope в этом этапе). _font_manager.fontManager.addfont(str(_FONTS_DIR / "PTSans-Regular.ttf")) _font_manager.fontManager.addfont(str(_FONTS_DIR / "PTSans-Bold.ttf")) -matplotlib.rcParams["font.family"] = "PT Sans" +_font_manager.fontManager.addfont(str(_FONTS_DIR / "Manrope-Regular.ttf")) +_font_manager.fontManager.addfont(str(_FONTS_DIR / "Manrope-Bold.ttf")) +matplotlib.rcParams["font.family"] = "Manrope" # ── Source pseudo-logos (текстовые pill-badges с брендовыми цветами источников) ─ @@ -253,13 +316,21 @@ _SOURCE_DISPLAY_NAMES: dict[str, str] = { def _source_logo_pill(source: str) -> str: - """Pill-badge с цветом источника.""" - bg, fg = _SOURCE_LOGO_COLORS.get(source, (_MUTED, "#fff")) + """Source pill — мягкий HUD-чип (.source-pill, ObjectSummary.tsx dot-идиома): + акцентная точка цвета источника + название на светлой заливке. Раньше — сплошной + непрозрачный цветной чип; теперь единая с остальным документом мягкая палитра + (Mera v2), бренд-цвет остаётся только акцентной точкой. Название — из + _SOURCE_DISPLAY_NAMES (короткий bounded набор, max ~18 символов) — + overflow-wrap на всякий случай, если source незнаком и попадёт .title() + произвольной длины (см. fallback ниже).""" + dot = _SOURCE_LOGO_COLORS.get(source, (_MUTED, "#fff"))[0] name = _SOURCE_DISPLAY_NAMES.get(source, source.title()) return ( - f"{_html.escape(name)}" + "" + f"{_html.escape(name)}" ) @@ -312,6 +383,16 @@ def _report_number(estimate_id: UUID) -> str: return f"EKБ-{short:04d}-{long:010d}" +def _expires_date(estimate: AggregatedEstimate) -> dt.date: + """Срок действия данных отчёта — estimate.expires_at, fallback +30 дней. + + Та же логика, что в _build_cover; вынесена сюда, чтобы _page_footer могла + показать «ДЕЙСТВИТЕЛЕН ДО» одинаково на всех страницах отчёта.""" + if estimate.expires_at is not None: + return estimate.expires_at.date() + return dt.date.today() + dt.timedelta(days=30) + + def _qr_code_data_url(text: str, size: int = 4) -> str: """QR-код как SVG data URL.""" qr = segno.make(text, error="m") @@ -324,35 +405,149 @@ def _conf_label(confidence: str) -> str: return {"high": "Высокая", "medium": "Средняя", "low": "Низкая"}.get(confidence, confidence) -# ── Unified page header (cover + pages 2-4 использовали визуально разные -# паттерны — сплошная цветная плашка vs текстовая полоска; теперь один блок) ── +# ── Unified page header/footer — HUD idiom, портировано из /trade-in/v2 +# (HeroBar.tsx meta-cells + Footer.tsx wordmark composition). Раньше — плашка с +# логотипом + текстовая полоска (cover) / голая footer-строка (pages 2-4); теперь +# единый персистентный masthead + единый footer на ВСЕХ 4 страницах отчёта. ──── -def _page_header(brand) -> str: # type: ignore[no-untyped-def] - """Логотип/имя бренда + акцентная линия снизу — единый паттерн для всех 4 страниц. - - brand.primary_color по-прежнему управляет цветом линии/плашки (white-label - механизм не тронут) — только markup унифицирован. - """ +def _page_header(brand, report_num: str, report_date: dt.date) -> str: # type: ignore[no-untyped-def] + """Masthead: слева — wordmark бренда (точка + tracked-uppercase имя, трактовка + Footer.tsx, но цвет по-прежнему driven brand.primary_color — white-label не + тронут), справа — компактные mono meta-cells (№ отчёта / дата), разделённые + тонкими вертикальными hairline (см. meta-row HeroBar.tsx).""" logo_url = _safe_logo_url(brand.logo_url) - mark_html = ( - f"{_html.escape(brand.name)}" - if logo_url - else f"{_html.escape(brand.name).upper()}" + if logo_url: + # уже жёстко ограничен max-height/max-width — переполнение исключено + # само по себе; brand.name виден только в alt (не рендерится как текст). + mark_html = ( + f"" + f"{_html.escape(brand.name)}" + ) + else: + # #overflow-hardening: brand.name — white-label произвольная строка, может + # быть длиннее «Trade-In»/«Практика» — min-width:0 + overflow-wrap:anywhere + # позволяет ей перенестись, а не наехать на meta-cell справа (flex-row). + mark_html = ( + f"" + f"" + f"{_html.escape(brand.name).upper()}" + f"" + ) + + def _meta_cell(label: str, value: str) -> str: + # label/value — короткие гарантированно-ограниченные значения (лейбл ≤6 + # символов, № отчёта/дата — фиксированный формат) — nowrap оправдан здесь. + return ( + f"" + f"{_html.escape(label)}" + f'" + f"{_html.escape(value)}" + ) + + meta_html = _meta_cell("ОТЧЁТ", report_num) + _meta_cell( + "ДАТА", report_date.strftime("%d.%m.%Y") ) + return ( f'
' + f"flex-wrap:wrap;gap:6pt;border-bottom:2pt solid {brand.primary_color};" + f'padding-bottom:6pt;margin-bottom:9pt;">' f"{mark_html}" - f'Trade-In отчёт' + f'{meta_html}' f"
" ) +def _page_footer( + brand, # type: ignore[no-untyped-def] + report_num: str, + report_date: dt.date, + page_note: str | None = None, + *, + valid_until: dt.date | None = None, +) -> str: + """Единый footer — порт 3-частной композиции Footer.tsx (/trade-in/v2), но + развёрнутый в 2 явных строки, а не 3 flex-item'а с fallback-переносом в одну + (см. ниже #overflow-hardening про причину): + + строка 1 — mono meta (№ отчёта / дата / срок действия); тонкая градиентная + линия-разделитель; строка 2 — точка акцента + wordmark (brand.name — НЕ + хардкод «МЕРА», white-label остаётся рабочим) + версия движка отчёта. + + page_note — старый текст footer'а (бренд/подзаголовок/№ страницы/дисклеймер + на офер-странице), которого нет в веб-референсе (там нет пагинации). Не + удалён — вынесен приглушённой строкой НАД HUD-баром, чтобы не терять + полезную для печатного многостраничного отчёта информацию. + """ + note_html = "" + if page_note: + note_html = ( + f'
{page_note}
' + ) + valid_until_html = "" + if valid_until is not None: + valid_until_html = ( + f'ДЕЙСТВИТЕЛЕН ДО ' + f'{valid_until.strftime("%d.%m.%Y")}' + ) + mono_family = "'IBM Plex Mono','DejaVu Sans Mono',monospace" + # #overflow-hardening: изначально meta / декоративная линия-коннектор / wordmark + # были 3 flex-child'а ОДНОЙ строки с `flex-wrap:wrap` как fallback на случай + # нехватки места. На практике meta (особенно со СРОК ДЕЙСТВИЯ на Cover) почти + # всегда заполняет строку целиком, так что wordmark systematically уезжал на + # свою отдельную строку — но даже НА ОТДЕЛЬНОЙ, целиком его строке, WeasyPrint + # заметно занижал доступную ширину wordmark-item (воспроизводится детерминированно + # и не зависело от max-width/margin декоративной линии или flex-shrink на самом + # wordmark — похоже на ограничение реализации multi-line flex-wrap в WeasyPrint, + # а не на конкуренцию за ширину), из-за чего даже короткий generic бренд + # «Trade-In» рвался ПОСРЕДИ слова («TRADE-» / «IN») на КАЖДОЙ странице с footer'ом. + # Фикс — не патчить flex-veights, а убрать саму двусмысленность: 2 явные + # block-строки (meta / wordmark) вместо одной строки с fallback-переносом. + # Декоративный коннектор (2 точки+градиент с каждой стороны) как самостоятельный + # flex-item убран — он дублировал функцию border-top (уже отделяет footer от + # тела страницы) и был источником сложности; заменён на простую тонкую + # градиентную линию-разделитель между строками meta/wordmark. + return f""" +
+ {note_html} +
+
+ ОТЧЁТ {_html.escape(report_num)} + ДАТА + {report_date.strftime("%d.%m.%Y")} + {valid_until_html} +
+
+
+ + + {_html.escape(brand.name).upper()} + + {_REPORT_ENGINE_VERSION} +
+
+
+""" + + # ── Price range chart — matplotlib SVG bullet/range chart (real chart, не div) ── # Раньше рендерилась одним div с фиксированной 64%-заливкой/14%-отступом — числа # НЕ определяли позицию заливки (чисто декоративный "прогресс-бар", не привязанный @@ -421,7 +616,7 @@ def _price_range_chart_svg( (lo_m - pad, track_bottom), (hi_m - lo_m) + 2 * pad, track_h, - facecolor=_BORDER, + facecolor=_TRACK, edgecolor="none", zorder=1, ) @@ -457,7 +652,7 @@ def _price_range_chart_svg( xycoords="data", xytext=(0, -4), textcoords="offset points", - color=_FG, + color=_INK, fontsize=10.5, ha=ha, va="top", @@ -536,13 +731,20 @@ def _price_figure_cell( Каждое под-поле (диапазон / ₽/м²) рендерится только при валидном значении — как web (guard на typeof number). delta_pct — опциональный chip «−N%». - Все числовые значения — DejaVu Sans Mono (tabular-nums), как на web (.mono).""" + Все числовые значения — DejaVu Sans Mono (tabular-nums), как на web (.mono). + + HUD-карточка (card-glass + bracket-tr, corner-bracket accent из tokens.ts) — + вложенный
внутри (НЕ position:relative на самом — надёжность + absolute-позиционированного ::before внутри table cell в разных движках + рендеринга непредсказуема). padding-right на label-строке — clearance от + delta_chip (короткий bounded chip, но всё равно на одной строке с label).""" delta_chip = "" if delta_pct is not None: delta_chip = ( f"{_mono(f'−{delta_pct}%')}" + f"border-radius:8pt;vertical-align:middle;white-space:nowrap;'>" + f"{_mono(f'−{delta_pct}%')}" ) range_html = "" if range_low is not None and range_high is not None and range_high > range_low: @@ -550,24 +752,25 @@ def _price_figure_cell( f"{_html.escape(_fmt_rub_m(range_low))} – {_html.escape(_fmt_rub_m(range_high))}" ) range_html = ( - f"
" - f"{_mono(range_text)}
" + f"
{_mono(range_text)}
" ) perm2_html = "" if per_m2 is not None and per_m2 > 0: perm2_html = ( - f"
" - f"{_mono(f'{_fmt_ppm2(per_m2)} ₽/м²')}
" + f"
{_mono(f'{_fmt_ppm2(per_m2)} ₽/м²')}
" ) return ( - f"" + f"" + f"
" f"
{_html.escape(label)}{delta_chip}
" - f"
" - f"{_mono(_html.escape(_fmt_rub_m(value_rub)))}
" + f"letter-spacing:0.03em;padding-right:16pt;'>{_html.escape(label)}{delta_chip}
" + f"
{_mono(_html.escape(_fmt_rub_m(value_rub)))}
" f"{range_html}{perm2_html}" - f"" + f"
" ) @@ -623,6 +826,169 @@ def _dual_price_block(estimate: AggregatedEstimate, brand) -> str: # type: igno ) +# ── Shared HUD chrome for page bodies (Mera v2 — section-badge/status-pill/ +# card-glass+bracket) — used by all 4 page-builders below. ────────────────── + + +def _section_heading(number: str, text: str, *, tag: str = "h2", extra_right: str = "") -> str: + """Заголовок страницы (h1 Cover / h2 Listings-Deals-Offer) с моно-нумерацией + секции — HUD-идиома ObjectSummary.tsx («03 СВОДКА ОБЪЕКТА»), теперь общая для + всех 4 страниц отчёта (раньше — только у cover не было border-bottom, у + остальных был раздельный inline-стиль на каждой странице). + + extra_right — опциональный элемент справа (напр. status-pill); свой flex-item + с flex-shrink:0, заголовок — flex:1 1 auto с min-width:0, чтобы длинный текст + (в этом модуле текст заголовков статический, но структура остаётся safe by + construction для любого будущего динамического текста) переносился, а не + наезжал на правый элемент.""" + size = _FS_XL if tag == "h1" else _FS_LG + right_html = f'{extra_right}' if extra_right else "" + return ( + '
' + '
' + f'{number}' + f"<{tag} style=\"font-family:'PT Serif','DejaVu Serif',serif;font-size:{size};" + "font-weight:700;text-transform:uppercase;letter-spacing:0.02em;line-height:1.25;" + f'margin:0;">{text}' + "
" + f"{right_html}" + "
" + ) + + +def _freshness_status_pill(freshness_minutes: int | None) -> str: + """Status-pill (.status-pill — ObjectSummary.tsx «АКТУАЛЬНО» идиома) — честная + метка свежести данных из estimate.data_freshness_minutes (реальное поле, НЕ + fabricated метрика). Пусто, если поле не заполнено (graceful — старые записи + без этого поля/пустой рехайдрат) — по аналогии с остальными optional-полями + оценки в этом модуле (см. _dual_price_block).""" + if freshness_minutes is None: + return "" + hours = freshness_minutes / 60 + if hours <= 24: + label, color, border = "АКТУАЛЬНО", _SUCCESS, _SUCCESS_BORDER + elif hours <= 24 * 7: + label, color, border = "ОБНОВЛЕНО НА ЭТОЙ НЕДЕЛЕ", _WARN, "#e3d4b3" + else: + label, color, border = "ТРЕБУЕТ ОБНОВЛЕНИЯ", _DANGER, "#e8c9c9" + # Три фиксированных RU-строки из закрытого набора (не free-form данные) — + # nowrap оправдан тем же порядком, что и у web-референса (ObjectSummary.tsx + # ставит whiteSpace:"nowrap" на идентичный pill). + return ( + f"{label}" + ) + + +# Слоты источников для «Качество данных» — портировано 1:1 из mappers.ts +# SOURCE_SLOTS/TOTAL_SOURCES (см. buildSources/activeSourceCount): 5 живых +# источников; N1/Restate намеренно исключены там же (#2081/#2204 — мёртвые). +_QUALITY_SOURCE_SLOTS: tuple[tuple[str, ...], ...] = ( + ("cian",), + ("yandex",), + ("rosreestr",), + ("avito", "avito_imv"), + ("domklik", "domclick"), +) +_TOTAL_SOURCES = len(_QUALITY_SOURCE_SLOTS) + +# Web-референс (ObjectSummary.tsx, статичная demo-fixture): confidence="средняя" +# → strokeDasharray=126/strokeDashoffset=72 → дуга заполнена ~43%. low/high — +# пропорциональная экстраполяция. Это категориальное визуальное кодирование ТОГО +# ЖЕ поля confidence, что уже показано текстом рядом (см. _conf_label) — НЕ +# отдельная выдуманная точная метрика (в AggregatedEstimate нет отдельного +# числового quality-score). +_QUALITY_TIER_PCT: dict[str, float] = {"high": 0.78, "medium": 0.43, "low": 0.22} + + +def _coeff_var_pct(values: list[float]) -> int | None: + """Коэффициент вариации (%, округлён до целого) — портировано 1:1 из + mappers.ts coeffVar/cvStr (population stddev / mean × 100). None при <2 + валидных (>0) значениях — как на web рендерится «—».""" + clean = [v for v in values if v and v > 0] + if len(clean) < 2: + return None + mean = sum(clean) / len(clean) + if mean == 0: + return None + variance = sum((v - mean) ** 2 for v in clean) / len(clean) + return round((variance**0.5) / mean * 100) + + +def _active_source_count(estimate: AggregatedEstimate) -> int: + """Портировано 1:1 из mappers.ts activeSourceCount/buildSources — слот + активен, если он в sources_used ИЛИ реально дал лоты (analogs+actual_deals).""" + counts: dict[str, int] = {} + for lot in (*estimate.analogs, *estimate.actual_deals): + s = (lot.source or "").lower() + if s: + counts[s] = counts.get(s, 0) + 1 + used = {s.lower() for s in (estimate.sources_used or [])} + active = 0 + for slot in _QUALITY_SOURCE_SLOTS: + count = sum(counts.get(k, 0) for k in slot) + if count > 0 or any(k in used for k in slot): + active += 1 + return active + + +def _data_quality_gauge_svg(confidence: str, *, size: int = 46) -> str: + """Кольцевой SVG-индикатор — техника ObjectSummary.tsx (2 концентрических + , stroke-dasharray/stroke-dashoffset), инлайн в HTML (WeasyPrint + поддерживает inline — см. существующие adv-ic иконки Offer-страницы), + НЕ matplotlib и НЕ внешний файл.""" + r = 20.0 + circumference = 2 * 3.14159265358979 * r + pct = _QUALITY_TIER_PCT.get(confidence, 0.5) + dashoffset = circumference * (1 - pct) + color = {"high": _SUCCESS, "medium": _WARN, "low": _DANGER}.get(confidence, _MUTED) + return ( + f'' + f'' + f'' + f'' + f'' + f"" + ) + + +def _quality_card_html(estimate: AggregatedEstimate) -> str: + """«КАЧЕСТВО ДАННЫХ» карточка (Cover) — донат-индикатор + 3 честные метрики + (источников / достоверность / разброс цен), см. ObjectSummary.tsx. Все числа — + реальные вычисленные значения (не fabricated), см. _active_source_count/ + _coeff_var_pct/_conf_label. flex-wrap + min-width:0 + overflow-wrap:anywhere — + метки короткие и bounded, но структура остаётся safe by construction.""" + n_active = _active_source_count(estimate) + cv = _coeff_var_pct([lot.price_per_m2 for lot in estimate.analogs]) + cv_str = f"{cv}%" if cv is not None else "—" + gauge = _data_quality_gauge_svg(estimate.confidence) + return f""" +
+ {gauge} +
+
Качество данных
+
+ Источников + {n_active} / {_TOTAL_SOURCES} + Достоверность + {_conf_label(estimate.confidence)} + Разброс цен + {cv_str} +
+
+
+""" + + # ── Page 1: Cover ──────────────────────────────────────────────────────────── @@ -701,49 +1067,68 @@ def _build_cover(estimate: AggregatedEstimate, input_snapshot: dict, brand) -> s if brand.pdf_disclaimer: disclaimer_html = ( f"

" + f"border-top:1pt solid {_LINE};padding-top:6pt;overflow-wrap:anywhere;'>" f"{_html.escape(brand.pdf_disclaimer)}

" ) + footer_html = _page_footer(brand, report_num, today, valid_until=expires) + + heading_html = _section_heading( + "01", + "АНАЛИЗ РЫНКА И РАСЧЕТ ВЫКУПНОЙ СТОИМОСТИ КВАРТИРЫ", + tag="h1", + extra_right=_freshness_status_pill(estimate.data_freshness_minutes), + ) return f"""
- {_page_header(brand)} + {_page_header(brand, report_num, today)} -

- АНАЛИЗ РЫНКА И РАСЧЕТ ВЫКУПНОЙ СТОИМОСТИ КВАРТИРЫ -

+ {heading_html} - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
№ отчета{_mono(report_num)}
Дата отчета{_mono(today.strftime("%d.%m.%Y"))}
Срок действия данныхдо {_mono(expires.strftime("%d.%m.%Y"))}
Адрес{address}
Год постройки{_mono(str(year_built))}
Тип дома{house_label}
Этаж / этажность{_mono(f"{floor} / {total_floors}")}
Площадь{_mono(f"{area} м²")}
Планировка{rooms_label}
Состояние ремонта{repair_label}
№ отчета{_mono(report_num)}
Дата отчета{_mono(today.strftime("%d.%m.%Y"))}
Срок действия данныхдо {_mono(expires.strftime("%d.%m.%Y"))}
Адрес{address}
Год постройки{_mono(str(year_built))}
Тип дома{house_label}
Этаж / этажность{_mono(f"{floor} / {total_floors}")}
Площадь{_mono(f"{area} м²")}
Планировка{rooms_label}
Состояние ремонта{repair_label}
Балкон / лоджия{balcony_label}
+ + {_quality_card_html(estimate)} + {_dual_price_block(estimate, brand)} -

- Диапазон цен в объявлениях - (без учета ремонта) -

- {listings_bar} +
+

+ Диапазон цен в объявлениях + (без учета ремонта) +

+ {listings_bar} +
-

- Диапазон цен по фактическим сделкам -

- {deals_bar} +
+

+ Диапазон цен по фактическим сделкам +

+ {deals_bar} +

@@ -767,11 +1152,12 @@ def _build_cover(estimate: AggregatedEstimate, input_snapshot: dict, brand) -> s -

+

Этот отчёт онлайн: {settings.public_url}?id={estimate.estimate_id}

{disclaimer_html} + {footer_html}

""" @@ -854,18 +1240,26 @@ def _build_listings_page(estimate: AggregatedEstimate, input_snapshot: dict, bra top5 = sorted(estimate.analogs, key=lambda x: x.distance_m or 9999)[:5] examples_rows = _examples_rows(top5) + report_num = _report_number(estimate.estimate_id) + today = dt.date.today() + footer_html = _page_footer( + brand, + report_num, + today, + f"{_html.escape(brand.name)} · Анализ рынка вторичной недвижимости · стр. 2", + valid_until=_expires_date(estimate), + ) + + heading_html = _section_heading("02", "РЫНОК КВАРТИР – АНАЛОГОВ ПО ОБЪЯВЛЕНИЯМ") + return f"""
- {_page_header(brand)} + {_page_header(brand, report_num, today)} -

- РЫНОК КВАРТИР – АНАЛОГОВ ПО ОБЪЯВЛЕНИЯМ -

+ {heading_html} - +
@@ -873,20 +1267,27 @@ def _build_listings_page(estimate: AggregatedEstimate, input_snapshot: dict, bra
Количество объявлений по аналогичным объектам {_mono(f"{n_total} шт.")}
-
Источники данных
-
{sources_html}
+
+ Источники данных
+
{sources_html}
- - - - - - - - - -
Расположение± 1 км от локации дома
Тип дома{house_label}
Год постройки{_mono(year_range)}
Диапазон площади{_mono(f"{area_min} - {area_max} м²")}
Планировка{rooms_label}
Состояние ремонта{repair_label}
+ +
+ + + + + + + + + + + + +
Расположение± 1 км от локации дома
Тип дома{house_label}
Год постройки{_mono(year_range)}
Диапазон площади{_mono(f"{area_min} - {area_max} м²")}
Планировка{rooms_label}
Состояние ремонта{repair_label}
+
@@ -899,7 +1300,31 @@ def _build_listings_page(estimate: AggregatedEstimate, input_snapshot: dict, bra

Примеры аналогичных объектов с учётом ремонта

- +
+ {_examples_table_head()} + {examples_rows} +
+ + {footer_html} + +
+""" + + +# colgroup общий для examples-table (Listings/Deals) — table-layout:fixed + +# явные проценты вместо auto-layout, который на длинных адресах мог раздувать +# таблицу шире полосы набора (переполнение страницы читается как «наложение»). +_EXAMPLES_COLGROUP = ( + '' + '' +) + + +def _examples_table_head() -> str: + """+ общий для _build_listings_page/_build_deals_page — + одна и та же структура таблицы примеров на обеих страницах.""" + return f"""{_EXAMPLES_COLGROUP} Срок экспозиции, дней - - {examples_rows} - - - - - -""" + """ def _examples_rows(lots: list[AnalogLot]) -> str: @@ -939,7 +1354,8 @@ def _examples_rows(lots: list[AnalogLot]) -> str: if safe: addr_cell = ( f"
{addr} ↗" + f"style='color:{_ACCENT};text-decoration:none;overflow-wrap:anywhere;'>" + f"{addr} ↗" ) else: addr_cell = addr @@ -947,17 +1363,21 @@ def _examples_rows(lots: list[AnalogLot]) -> str: price_cell = _fmt_ppm2(lot.price_rub) if lot.price_rub is not None else "—" # #1533: 0 — валидное значение (лот размещён сегодня), `0 or '—'` теряло бы его. days_cell = lot.days_on_market if lot.days_on_market is not None else "—" + # Адрес/источник — data-derived, БЕЗ white-space:nowrap, с overflow-wrap:anywhere + # (длинный адрес/название ЖК без пробелов не должен раздвигать колонку — + # см. _EXAMPLES_COLGROUP). ₽/м²/цена/срок — числовые/bounded, nowrap уместен. rows.append( "" - f"{addr_cell}" - f"" - f"{_source_badge_inline(lot.source)}" - f"" - f"{_mono(str(ppm2_cell))}" - f"" - f"{_mono(str(price_cell))}" - f"" - f"{_mono(str(days_cell))}" + f"{addr_cell}" + f"{_source_badge_inline(lot.source)}" + f"{_mono(str(ppm2_cell))}" + f"{_mono(str(price_cell))}" + f"{_mono(str(days_cell))}" "" ) return "".join(rows) @@ -1018,16 +1438,23 @@ def _build_deals_page(estimate: AggregatedEstimate, input_snapshot: dict, brand) top5 = estimate.actual_deals[:5] examples_rows = _examples_rows(top5) + report_num = _report_number(estimate.estimate_id) + footer_html = _page_footer( + brand, + report_num, + today, + f"{_html.escape(brand.name)} · Анализ рынка вторичной недвижимости · стр. 3", + valid_until=_expires_date(estimate), + ) + + heading_html = _section_heading("03", "ФАКТИЧЕСКИЕ СДЕЛКИ ПО КВАРТИРАМ — АНАЛОГАМ") + return f"""
- {_page_header(brand)} + {_page_header(brand, report_num, today)} -

- ФАКТИЧЕСКИЕ СДЕЛКИ ПО КВАРТИРАМ — АНАЛОГАМ -

+ {heading_html} @@ -1039,19 +1466,25 @@ def _build_deals_page(estimate: AggregatedEstimate, input_snapshot: dict, brand)
{_mono(f"{period_start.strftime('%m.%Y')} – {today.strftime('%m.%Y')}")}
-
Источники данных
-
{sources_html}
+
+ Источники данных
+
{sources_html}
- - - - - - - - -
Расположение± 1 км от локации дома
Тип дома{house_label}
Год постройки{_mono(year_range)}
Диапазон площади{_mono(f"{area_min} - {area_max} м²")}
Планировка{rooms_label}
+ +
+ + + + + + + + + + +
Расположение± 1 км от локации дома
Тип дома{house_label}
Год постройки{_mono(year_range)}
Диапазон площади{_mono(f"{area_min} - {area_max} м²")}
Планировка{rooms_label}
+
@@ -1069,28 +1502,13 @@ def _build_deals_page(estimate: AggregatedEstimate, input_snapshot: dict, brand)

Примеры аналогичных объектов

- - - - - - - - - - +
Адрес квартирыИсточникСтоимость 1 м², руб.Стоимость объекта, руб.Срок экспозиции, дней
+ {_examples_table_head()} {examples_rows}
- + {footer_html}
""" @@ -1140,16 +1558,23 @@ def _build_offer_page(estimate: AggregatedEstimate, brand) -> str: # type: igno brand_short = _html.escape(brand.name) trade_in_label = f"{brand_short}.Обмен" if brand.slug != "generic" else "Trade-In" + report_num = _report_number(estimate.estimate_id) + today = dt.date.today() + footer_html = _page_footer( + brand, + report_num, + today, + f"{brand_short} · Анализ рынка вторичной недвижимости · стр. 4 · " + "Расчёт носит ориентировочный характер и не является офертой.", + valid_until=_expires_date(estimate), + ) + return f"""
- {_page_header(brand)} + {_page_header(brand, report_num, today)} -

- ФОРМИРОВАНИЕ ВЫКУПНОЙ СТОИМОСТИ -

+ {_section_heading("04", "ФОРМИРОВАНИЕ ВЫКУПНОЙ СТОИМОСТИ")}

Структура стоимости сделки

@@ -1161,7 +1586,7 @@ def _build_offer_page(estimate: AggregatedEstimate, brand) -> str: # type: igno + font-weight:700;overflow-wrap:anywhere;"> {trade_in_label} Преимущества +
@@ -1301,11 +1738,7 @@ def _build_offer_page(estimate: AggregatedEstimate, brand) -> str: # type: igno
- + {footer_html}
""" @@ -1335,6 +1768,30 @@ def _build_css(brand=None) -> str: # type: ignore[no-untyped-def] font-weight: 700; font-style: normal; }} +@font-face {{ + font-family: 'Manrope'; + src: url({_MANROPE_REGULAR_URL}) format('truetype'); + font-weight: 400; + font-style: normal; +}} +@font-face {{ + font-family: 'Manrope'; + src: url({_MANROPE_BOLD_URL}) format('truetype'); + font-weight: 700; + font-style: normal; +}} +@font-face {{ + font-family: 'IBM Plex Mono'; + src: url({_IBM_PLEX_MONO_REGULAR_URL}) format('truetype'); + font-weight: 400; + font-style: normal; +}} +@font-face {{ + font-family: 'IBM Plex Mono'; + src: url({_IBM_PLEX_MONO_MEDIUM_URL}) format('truetype'); + font-weight: 500; + font-style: normal; +}} @page {{ size: A4; margin: 20mm 18mm 20mm 18mm; @@ -1343,8 +1800,8 @@ def _build_css(brand=None) -> str: # type: ignore[no-untyped-def] body {{ font-family: 'PT Sans', 'DejaVu Sans', sans-serif; font-size: {_FS_MD}; - color: {_FG}; - background: {_BG}; + color: {_INK}; + background: {_PAGE_BG}; margin: 0; padding: 0; line-height: 1.35; @@ -1360,11 +1817,14 @@ h1, h2 {{ font-family: 'PT Serif', 'DejaVu Serif', serif; }} font-variant-numeric: tabular-nums; }} -/* Params table (Cover) */ +/* Params table (Cover) — border-bottom пришёл из .dotted-row (см. HUD-блок ниже), + применяется точечно per- в разметке (последняя строка — без разделителя, + ObjectSummary.tsx идиома). overflow-wrap — значения ячейки (адрес и т.п.) + data-derived, НЕ nowrap. */ .params-table td {{ padding: 2pt 4pt; - border-bottom: 1px solid {_BORDER}; font-size: {_FS_SM}; + overflow-wrap: anywhere; }} .params-table td:first-child {{ color: {_MUTED}; @@ -1378,6 +1838,7 @@ h1, h2 {{ font-family: 'PT Serif', 'DejaVu Serif', serif; }} .search-params td {{ padding: 4pt 0; font-size: {_FS_SM}; + overflow-wrap: anywhere; }} .search-params td:first-child {{ color: {_MUTED}; @@ -1403,12 +1864,22 @@ h1, h2 {{ font-family: 'PT Serif', 'DejaVu Serif', serif; }} color: {_MUTED}; }} +/* Examples table (Listings/Deals) — не разрывать между страницами: длинный + адрес без break-inside:avoid оставляет badge/цену на одной странице, а адрес + на следующей (см. verify-фикс, #1531/#1532 таблица). */ +.examples-table tr {{ + break-inside: avoid; + page-break-inside: avoid; +}} + /* Advantages (Offer) — тёплый accent-2 вместо generic red-tinted кругов */ .advantage-item {{ border: 1px solid {_BORDER}; border-radius: 4pt; padding: 8pt; text-align: left; + break-inside: avoid; + page-break-inside: avoid; }} .advantage-item .adv-ic {{ display: block; @@ -1434,6 +1905,102 @@ h1, h2 {{ font-family: 'PT Serif', 'DejaVu Serif', serif; }} font-size: {_FS_XS}; color: {_MUTED}; line-height: 1.3; + overflow-wrap: anywhere; +}} + +/* ── Mera v2 HUD chrome (tokens.ts / ObjectSummary.tsx / HeroBar.tsx) ───────── + Wired into all 4 page-builders this stage (_build_cover/_build_listings_page/ + _build_deals_page/_build_offer_page + shared _section_heading/_quality_card_html/ + _source_logo_pill/_price_figure_cell) — card-glass+bracket-tr on price/summary + cards, section-badge on every page heading, status-pill (freshness, Cover), + source-pill (Listings/Deals), dotted-row (params-table/search-params rows), + bullet-dot (source list label). */ + +/* Glass card (flattened — no backdrop-filter/blur, see _CARD_BG comment). */ +.card-glass {{ + position: relative; + background: {_CARD_BG}; + border: 1pt solid {_LINE_2}; + border-radius: 6pt; +}} + +/* Corner-bracket accent — small absolutely-positioned marks, NOT clip-path + (WeasyPrint clip-path support is unreliable). Apply to a `position:relative` + ancestor; one or more corners per card, see HeroBar.tsx (4 corners) vs + ObjectSummary.tsx (single top-right corner). */ +.bracket-tl::before, .bracket-tr::before, .bracket-bl::before, .bracket-br::before {{ + content: ""; + position: absolute; + width: 11pt; + height: 11pt; +}} +.bracket-tl::before {{ top: -1pt; left: -1pt; + border-top: 1.5pt solid {_BRACKET}; border-left: 1.5pt solid {_BRACKET}; }} +.bracket-tr::before {{ top: -1pt; right: -1pt; + border-top: 1.5pt solid {_BRACKET}; border-right: 1.5pt solid {_BRACKET}; }} +.bracket-bl::before {{ bottom: -1pt; left: -1pt; + border-bottom: 1.5pt solid {_BRACKET}; border-left: 1.5pt solid {_BRACKET}; }} +.bracket-br::before {{ bottom: -1pt; right: -1pt; + border-bottom: 1.5pt solid {_BRACKET}; border-right: 1.5pt solid {_BRACKET}; }} + +/* Numbered mono section badge — "03" next to a tracked-uppercase heading + (ObjectSummary.tsx). */ +.section-badge {{ + font-family: 'IBM Plex Mono', 'DejaVu Sans Mono', monospace; + font-size: {_FS_MD}; + color: {_ACCENT}; +}} + +/* Status pill — dot + uppercase text, soft border, fully rounded + (ObjectSummary.tsx "АКТУАЛЬНО"). Default tint is success; override color/ + border-color inline for warn/danger variants. */ +.status-pill {{ + display: inline-flex; + align-items: center; + gap: 4pt; + font-size: {_FS_XS}; + letter-spacing: 0.05em; + text-transform: uppercase; + color: {_SUCCESS}; + border: 1pt solid {_SUCCESS_BORDER}; + border-radius: 20pt; + padding: 2pt 7pt; +}} +.status-pill::before {{ + content: ""; + display: inline-block; + width: 5pt; + height: 5pt; + border-radius: 50%; + background: currentColor; +}} + +/* Source pill — soft-tinted geometry, replacing today's solid-colour chips + (_source_logo_pill/_source_badge_inline still emit the old solid style this + stage — the per-source soft background/text colour is computed there, not + here; this class only supplies the shared shape/typography). */ +.source-pill {{ + display: inline-block; + padding: 2pt 8pt; + border-radius: 10pt; + font-size: {_FS_XS}; + font-weight: 600; + border: 1pt solid {_LINE_2}; +}} + +/* Dotted row separator (ObjectSummary.tsx summary rows). */ +.dotted-row {{ + border-bottom: 1pt dotted {_LINE_DOTTED}; +}} + +/* Small colored bullet dot before row labels (ObjectSummary.tsx). */ +.bullet-dot {{ + display: inline-block; + width: 5pt; + height: 5pt; + border-radius: 50%; + background: {_ACCENT}; + vertical-align: middle; }} """ @@ -1452,7 +2019,7 @@ def _build_insufficient_data_page(estimate: AggregatedEstimate, input_snapshot: today = dt.date.today() return f"""
- {_page_header(brand)} + {_page_header(brand, report_num, today)}

№ {_mono(report_num)} · {_mono(today.strftime("%d.%m.%Y"))} · {address}

diff --git a/tradein-mvp/backend/tests/test_pdf_security.py b/tradein-mvp/backend/tests/test_pdf_security.py index aa3aba52..0f04bfe7 100644 --- a/tradein-mvp/backend/tests/test_pdf_security.py +++ b/tradein-mvp/backend/tests/test_pdf_security.py @@ -210,7 +210,7 @@ def test_cover_falls_back_to_name_when_logo_none() -> None: # Logo-specific check via _page_header directly — не проверяем отсутствие во # всей cover-странице, т.к. с #2327-follow-up диапазоны цен рендерятся как # matplotlib SVG (см. _price_range_chart_svg), не связанные с логотипом бренда. - header_html = mod._page_header(_GENERIC) + header_html = mod._page_header(_GENERIC, "EKБ-0001-0000000001", datetime.now(UTC).date()) assert "