Files
2022_oknardia/ROADMAP.md

7.7 KiB
Raw Blame History

Дорожная карта переделки 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 SEO description и 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.