Рефакторинг ленты событий с фильтрацией по датам

# Рефакторинг ленты событий с фильтрацией по датамЭтот план описывает шаги по добавлению возможности фильтрации событий (новостей) по конкретной дате (год, месяц, день) в соответствии с вашим запросом «Лента событий за / События только за этот день - месяц - год».
06 Май 2026
35 просмотров
Логотип
Главные новости 35 просмотров 2 минуты чтения
Аудиоверсия статьи Слушать текст в один клик
Скорость:

# Рефакторинг ленты событий с фильтрацией по датам

Этот план описывает шаги по добавлению возможности фильтрации событий (новостей) по конкретной дате (год, месяц, день) в соответствии с вашим запросом «Лента событий за / События только за этот день - месяц - год».

## User Review Required

> [!IMPORTANT]
> Подтвердите, как именно вы хотите, чтобы выглядел интерфейс фильтрации:
> 1. Добавить поле выбора даты (Date Picker) в общую панель фильтров (там где поиск, категория, сортировка)?
> 2. Сделать плашки дат (например, "05 Мая 2026") в ленте кликабельными, чтобы при клике открывались события только за этот день?
> 3. Добавить оба варианта?

## Open Questions

> [!TIP]
> В текущем шаблоне события группируются по дате создания (`created_at`), а проверка активности идет по дате публикации (`published_at`). По какому полю правильнее фильтровать события при поиске за день: по `created_at` (когда новость добавили в базу) или по `published_at` (когда она стала доступна на сайте)? 
> По умолчанию я сделаю фильтрацию по `published_at`, так как это логичнее для отображения на сайте.

## Proposed Changes

### Приложение News (`mysite/news/`)

Мы расширим функционал представления `news_list` для поддержки фильтрации по дате, а также обновим шаблон списка новостей.

#### [MODIFY] `views.py` (file:///l:/PYTHON/PROJECTS/dpits-cms/mysite/news/views.py)
- Добавление обработки GET-параметра `date` (в формате `YYYY-MM-DD` или `YYYY-MM` или `YYYY`).
- Изменение QuerySet для фильтрации новостей, если передан параметр даты (фильтрация по `published_at__year`, `published_at__month`, `published_at__day` или `published_at__date`).
- Передача выбранной даты в контекст шаблона (`selected_date`).

#### [MODIFY] `templates/news/list.html` (file:///l:/PYTHON/PROJECTS/dpits-cms/mysite/news/templates/news/list.html)
- Реорганизация панели фильтров для добавления нового поля ввода типа `date` (поиск по конкретному дню) или `month` (поиск за месяц).
- Превращение бейджей с датами (группировка по дням) в кликабельные ссылки: `<a href="?date=YYYY-MM-DD">...</a>`.
- Добавление кнопки "Сбросить дату", если фильтр активен, и изменение заголовка "Актуальные события" на "События за [Дата]", если выбрана дата.

## Verification Plan

### Manual Verification
- Открыть страницу новостей (`/news/`).
- Проверить, что в панели фильтров появилось поле для выбора даты.
- Выбрать конкретную дату и проверить, что отображаются события только за этот день.
- Кликнуть на плашку с датой в списке и убедиться, что происходит фильтрация.
- Сбросить фильтр и убедиться, что отображаются все актуальные события.
 

Как вам статья? Отправьте реакцию!

Обсуждение статьи

0

К этой статье пока нет комментариев. Будьте первым, кто выразит свое мнение!

Оставить комментарий

captcha

Похожие материалы

Наши услуги

Мы делаем для вас лучшее

Комплексный подход к цифровому развитию вашего бизнеса — от создания сайтов до автоматизации и технической поддержки

Создание сайтов

Разрабатываем сайты любой сложности: от лендингов до полноценных маркетплейсов.

  • Лендинги и промо-сайты
  • Интернет-магазины
  • Корпоративные сайты
  • Порталы и каталоги
  • Маркетплейсы

Автоматизация бизнеса

Освобождаем ваше время — автоматизируем рутинные задачи и бизнес-процессы.

  • Автоматизация рутины
  • Документооборот
  • Отчётность и аналитика
  • Email и смс рассылки
  • Уведомления и триггеры

Продвижение сайтов

Приводим целевых посетителей и клиентов через эффективные каналы продвижения.

  • SEO-оптимизация
  • Контекстная реклама
  • SMM и социальные сети
  • Таргетированная реклама
  • Медийная реклама

Техническая поддержка

Обеспечиваем стабильность и безопасность ваших ресурсов в режиме 24/7.

  • Поддержка сайтов
  • Интернет-магазины
  • Обновления и патчи
  • Резервное копирование
  • Мониторинг и безопасность
0+
Завершённых проектов
0+
Лет опыта
0%
Довольных клиентов
0/7
Техническая поддержка