7.7 KiB
7.7 KiB
Дорожная карта переделки 2026 для проекта Oknardia
Готово:
- Изменена база данных используемая в проекте (SQLite вместо MariaDB).
- Окружение проекта теперь настраивается через
poetryвместоpipиrequirements.txt. - Проект получает настройки и секреты через переменные окружения (
.env) вместоmy_secret*.py. - Рефакторинг создания
sitemap.xml: raw ⟶ ORM, создание через Django-командуgenerate_sitemapsв медиа-файлы. - Рефакторинг URL
/catalog/profil/: raw SQL ⟶ ORM, убранlast_update, измененs SEOdescriptionиkeywords. - Распилен
oknardia/web/catalog.pyна тематические модули (catalog_companies.py,catalog_profiles.py,catalog_series.py,catalog_openings.py) с вынесением общей логики вcatalog_utils.py; маршруты обновлены без изменения внешних URL. Улучшены SEO-атрибуты, и добавлена разметка shema.org. - Рефакторинг
catalog_profile_model(/catalog/profile/...): raw SQL ⟶ ORM, упрощена логика, вынесены helper-функции, сокращено дублирование расчёта цветов рейтинга, нормализована подготовкаLIST_OTHER/MERCHANTS/PROFILES/PROFILE_DETAIL, сохранена совместимость шаблонов. Улучшены SEO-атрибуты, и добавлена разметка shema.org. - Рефакторинг
catalog_profile_manufacture(/catalog/profile/<id>-<manufacturer>): упрощена валидация URL, убран дублирующий код маппинга дляPROFILESиMERCHANTSчерез общие хелперы, стандартизирован хвост контекста (LAST_VISIT,LOG_VISIT,ticks) через_append_visit_context. Улучшены SEO-атрибуты, и добавлена разметка shema.org. - Рефакторинг
catalog_seria(/catalog/seria/): raw SQL ⟶ ORM для списка корневых серий, подготовка данных упрощена, хвост контекста с визитами иticksвынесен в общий helper внутриcatalog_series.py. Улучшены SEO-атрибуты, и добавлена разметка shema.org. - Рефакторинг
catalog_seria_infoи связанных функций вcatalog_series.py: raw SQL ⟶ ORM (catalog_seria_info,seria_nav,seria_info_year,seria_info_geo_code), снижена нагрузка на БД за счёт предвыборки и переиспользования агрегатов (quantities_by_pair,offers_by_window), добавлены безопасные fallback-значения для пустых выборок, включена потоковая обработкаiterator(chunk_size=500)для гео-данных, обновлены комментарии и docstring под фактическую логику (таблица окон, pre-render light/heavy шаблонов, гео+статистика серии). Улучшены SEO-атрибуты, и добавлена разметка shema.org. - Добавлена management-команда
regenerate_seria_prerenderдля оффлайн-пересборки pre-render шаблоновcatalog_seria_info(все или выбранные root-серии), с режимами--dry-runи--force; серверный reload (Gunicon? uWSGI или что там еще будет) должен быть вынесен из кода приложения в оркестрацию (cron/systemd/deploy step). - Рефакторинг
standard_opening: raw SQL -> ORM, упрощена дедублекация, убраны лишние запросы и переменные контекста, добавлены комментарии, SEO-описание и keywords, стандартизирован хвост контекста с визитами иticksчерез общий helper внутриcatalog_openings.py. Улучшены SEO-атрибуты и добавлена разметка shema.org. - Рефакторинг
catalog_companyиcatalog_company_detail(/catalog/company): raw SQL → ORM для получения списка компаний и их наборов, вынесены вспомогательные функции (_get_company_statistics,_get_company_sets_detail,_format_company_for_template,_format_set_for_template,_clean_text_field,_lowercase_first_char), упрощена логика форматирования данных, добавлены подробные комментарии и docstring для каждой функции, использованыselect_relatedиannotateдля оптимизации запросов, добавлена защита отHttp404при неправильных slugs. Улучшены SEO-атрибуты, и добавлена разметка shema.org. - Рефакторирнг главной страницы каталога (
/catalog/): Улучшены SEO-атрибуты, и добавлена разметка shema.org. - Рефакторинг страницы цен одного окна: введён новый канонический SEO-роут внутри
/catalog/standard_opening/, старый URL сохранён как legacy и переведён на постоянный 301-редирект; вprices.pyдля ветки одного окна raw SQL заменён на ORM; в шаблонахprice_offers_for_one_window.htmlиprice_offers_for_one_window_frame.htmlулучшены SEO-атрибуты и добавлена JSON-LD разметкаschema.org(BreadcrumbList,Product,ItemList,Offer) с размером окна, ценами и ключевыми характеристиками предложений; добавлены тестыweb.test_prices. - Рефакторинг страницы ценовых предложений: в
prices.pyдля ветки ценовых предложений raw SQL заменён на ORM, добавлены комментарии и docstring, оптимизированы запросы с помощьюselect_relatedиannotate, добавлена обработка случая с отсутствующими предложениями; в шаблонеprice_offers.htmlулучшены SEO-атрибуты и добавлена JSON-LD разметкаschema.org(BreadcrumbList,Product,ItemList,Offer) с размером окна, ценами и ключевыми характеристиками предложений; добавлены тестыweb.test_prices. Добавлены хлебные крошки в шаблон. - Замена рутинга для ценовых предложений: старый URL
(?P<build_id>/<apart_id>)/<build_slug>заменен на/price/seriaID<sriea_id>--<seria_slug>/appartID<apart_id>/addressID<build_idD>--<build_slug>что, прредположительно поможет SEO т.к. соответвует новым хлебным крошкам. Сделал редирект со старого URL на новый внутриprices.pyи обновил ссылки в шаблонах, где были прямые ссылки на старый URL.