2.9 KiB
2.9 KiB
План задач (TODO)
Дата и время обновления: 03.08.2026 22:24
Проект: LPON.RU (Django 6.0+, Python 3.12)
1. Архитектура и База данных (Бэкенд)
- Реализовать модель алиасов слагов
TbArticleAlias(для HTTP 301 редиректов при переименовании слагов)- Описание: Для SQLite вариант с отдельной моделью и B-Tree индексом (
s_old_slug->ForeignKey(TbArticle)) работает значительно быстрее поиска по JSON-полю (O(1)вместо сканирования таблицы). - Детали:
- Создать модель
TbArticleAlias(s_old_slug = SlugField(unique=True, db_index=True),k_article = ForeignKey(TbArticle)). - При изменении
s_article_slugв админке автоматически сохранять предыдущий слаг вTbArticleAlias. - В
UniversalSlugViewдобавить двухэтапный поиск:- Поиск по
TbArticle.s_article_slug-> если найден, рендерим (или 301 на канонический URL). - Если не найден, поиск по
TbArticleAlias.s_old_slug-> если найден, рендеримHTTP 301 Permanent Redirectна актуальный URL статьи. - Если не найден нигде ->
HTTP 404(с блоком-подсказкой дляrequest.user.is_staff).
- Поиск по
- Создать модель
- Приоритет: Полезная архитектурная фича на будущее (низкий / плановый приоритет).
- Описание: Для SQLite вариант с отдельной моделью и B-Tree индексом (
2. DSL-парсер Страниц-Хабов и Динамических Модулей
- Реализовать DSL-парсер Страниц-Хабов (
j_article_metadata['hub'])- Поддержка позиционных кортежей
["slug", "view_mode", limit, "sort", extra]. - Поддержка динамических модулей по префиксу
!(["!cart-app"],["!promo-mandarin"]). - Защита от рекурсии (
visited_slugs,MAX_RECURSION_DEPTH = 2). - Приоритет: Высокий
- Поддержка позиционных кортежей
3. Анонимные Заказы и Бесконтактная Корзина (Stateless Orders)
- Бесконтактная Корзина и Заказы (Stateless Orders)
- Реализация модуля
!cart-appна клиенте (Cookies/LocalStorage) без записи ПДн клиентов в БД сайта. - Интеграция с виджетом СДЭК и сохранение только трек-номеров.
- Приоритет: Средний (для MVP можно временно использовать email-переписку).
- Реализация модуля