Repository navigation
Функциональные изменения:
-
Список чатов:
- Добавлен список чатов на
index.html. - Список включает друзей и пользователей, которым отправлен запрос в друзья.
- Отображается последнее сообщение из каждого чата.
- При клике на чат происходит переход на страницу диалога
/im/<username>.
- Добавлен список чатов на
-
Страница диалога (
im.html):- Создана страница диалога для общения между пользователями.
- Отображаются сообщения в чате (отправленные и полученные).
- Есть поле для ввода и кнопка отправки сообщений.
- Сообщения от отправителя отображаются справа, от получателя - слева.
- Отображается время отправки сообщения.
- Добавлена галочка "прочитано" (✓), которая меняет цвет с серого на #0084b2 после прочтения сообщения получателем.
-
Пометка сообщений как прочитанных:
- При открытии диалога сообщения от собеседника помечаются как прочитанные.
-
Ограничение доступа к чату:
- Общаться можно только с друзьями или пользователями, с которыми уже есть переписка.
-
Запросы в друзья:
- На
index.htmlотображаются запросы в друзья. - Добавлены ссылки для принятия или отклонения запросов.
- На
Изменения в шаблонах:
-
index.html:- Добавлены блоки для списка чатов и запросов в друзья.
- Добавлены ссылки на страницу диалога (
/im/<username>). - Используется
current_user.friends + current_user.friended_by.all()для объединения списков друзей и запросов в друзья.
-
feed.html:- Создан новый шаблон для страницы ленты новостей.
-
im.html:- Создан новый шаблон для страницы диалога.
- Добавлены элементы для отображения сообщений, поля ввода и кнопки отправки.
- Используется
message.timestamp.strftime('%H:%M')для форматирования времени отправки сообщения. - Добавлены классы
sentиreceivedдля стилизации сообщений. - Добавлена галочка "прочитано" (
read-mark).
Изменения в стилях:
-
im.css:- Добавлены стили для страницы диалога (контейнер сообщений, стили сообщений, штамп времени, галочка "прочитано").
-
default.css:- Добавлены стили для списка чатов (аватар, имя пользователя, последнее сообщение).
Изменения в app.py:
-
Новые маршруты:
/im/<username>для страницы диалога./send_message/<username>для отправки сообщений.
-
Новые функции:
im(username): обрабатывает страницу диалога.send_message(username): обрабатывает отправку сообщений.
-
Изменения в функции
profile:- Добавлены переменные
is_friendиfriend_request_sentдля передачи в шаблон.
- Добавлены переменные
-
Изменения в модели
Message:- Добавлено поле
read(логическое) для пометки сообщений как прочитанных.
- Добавлено поле
Изменения в models.py:
-
Новая таблица:
friends: ассоциативная таблица для связи "друзья".
-
Новые методы в модели
User:is_friend(user): проверяет, является ли указанный пользователь другом.send_friend_request(user): отправляет запрос в друзья указанному пользователю.accept_friend_request(user): принимает запрос в друзья от указанного пользователя.reject_friend_request(user): отклоняет запрос в друзья от указанного пользователя.
-
Изменения в
is_friend:- Исправлена ошибка, теперь используется
self.friended_by.filter().
- Исправлена ошибка, теперь используется
Общие изменения:
-
Добавлены новые статические файлы:
im.cssдля стилей страницы диалога.feed.cssдля стилей страницы ленты новостей.
-
Обновлены шаблоны
index.htmlиprofile.html:- Добавлены новые элементы и ссылки.
-
Обновлен код Python (
app.pyиmodels.py):- Добавлены новые маршруты, функции и методы модели.
- Исправлены ошибки.
-
Обновлена база данных:
- Добавлена таблица
friendsи полеreadв таблицуmessage.
И т.д.
- Добавлена таблица
