Files
2022_oknardia/ROADMAP.md

6.2 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.