|
All checks were successful
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 8s
CI Trade-In / changes (pull_request) Successful in 9s
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 59s
CI / frontend-tests (pull_request) Has been skipped
Header/footer сидели В ПОТОКЕ каждой секции (~110pt/стр.) → cover переполнялся (advice-таблица уезжала на почти-пустую стр. 2), footer listings-секции сиротел на полностью пустую стр. 4 → отчёт 6 страниц вместо 4. Fix: header+footer вынесены в running @page margin-boxes (position:running() + @top-center/@bottom-center) — рендерятся в полях каждой страницы, не занимая поток. Chrome строится ОДИН раз в generate_trade_in_pdf (else-ветка, не insufficient_data) и оборачивается в .running-header/.running-footer; из 4 билдеров inline-вызовы header/footer убраны + очищены осиротевшие переменные. Top-margin 20→25mm под running-header. Дисклеймер offer-страницы перенесён из footer page_note в inline <p> (сохранён). Убрана дубль-строка advice на cover («до 15% при самопродаже» — детально расписана на стр. 04). Верифицировано рендером реального WeasyPrint 69 в прод-образе: ровно 4 чистые страницы, бренд МЕРА в шапке/футере всех страниц, «Год постройки —», дисклеймер на месте. ruff clean; test_pdf_security 32/32; test_trade_in_pdf_dual_price 25/25. |
||
|---|---|---|
| .. | ||
| exporters | ||
| matching | ||
| __init__.py | ||
| account_quota.py | ||
| brand.py | ||
| buildings_query.py | ||
| cache.py | ||
| cian_price_history.py | ||
| cian_session.py | ||
| dadata.py | ||
| domclick_session.py | ||
| domrf_kapremont_loader.py | ||
| estimator.py | ||
| gar_flats_loader.py | ||
| geocoder.py | ||
| house_dedup_merge.py | ||
| house_imv_backfill.py | ||
| house_metadata.py | ||
| image_sanitizer.py | ||
| location_coef.py | ||
| product_handlers.py | ||
| proxy_pool.py | ||
| rosreestr_poll.py | ||
| sber_index.py | ||
| scheduler.py | ||
| scrape_runs.py | ||
| scraper_adapters.py | ||
| scraper_settings.py | ||
| search_query.py | ||
| yandex_address_backfill.py | ||
| yandex_price_history.py | ||
| zhkh_flats_loader.py | ||