Была использована база данных db.sqlite3
Используется Python 3.10.6
Установим все библиотеки для работы приложения pip install -r requirements.txt
Запускаем приложение: python manage.py runserver
✅ На портале выводятся все статьи и новости, в виде: заголовка, даты публикации и первых 20 символов текста.
✅ Новости выводяться в порядке от более свежей к самой старой. Добавлен постраничный вывод на /news/, чтобы на одной странице было не больше 10 новостей и видны номера ближайших страниц, а также возможность перехода к первой или последней странице.
✅ Сделана отдельная страница для полной информации о новости и статье /news/<id новости>. На этой странице показана вся информация о статье. Название, текст и дата загрузки в формате день.месяц.год.
✅ Есть собственный фильтр censor, который заменяет буквы нежелательных слов в заголовках и текстах статей на символ «*»
✅ На странице /news/search реализована возможность искать новости по определённым критериям.
✅ Реализована возможность регистрации пользователей через почту или через Google-аккаунт.
✅Реализовано автоматическое добавление новых пользователей в группу common. Создана возможность стать автором (быть добавленным в группу authors). Для группы authors предоставлены права создания и редактирования, удаления объектов модели Post (новостей и статей).
✅ В классах-представлениях добавления и редактирования новостей и статей добавлена проверку прав доступа
✅ Добавлена возможность авторизованным пользователям подписываться на рассылку новых статей/новостей
✅ Рассылка уведомлений подписчикам после создания статей/новостей
✅ Еженедельная рассылка с последними новостями с гипперссылкой на них
✅ Приветственное письмо пользователю при регистрации в приложении.
✅ Добавлен перевод заголовков в приложении с русского на английский язык
✅ Добавлено переключение языка в шапке сайта
✅ В шаблонах кэшируется все навигационные элементы (меню, сайдбары и т. д.).
✅ Добавлено кэширование для статей.
✅ В консоль выводиться все сообщения уровня DEBUG и выше, включающие время, уровень сообщения, сообщения. Для сообщений WARNING и выше дополнительно выводиться путь к источнику события (используется аргумент pathname в форматировании). А для сообщений ERROR и CRITICAL еще выводить стэк ошибки (аргумент exc_info). Сюда попадают все сообщения с основного логгера django.
✅ В файл general.log выводиться сообщения уровня INFO и выше только с указанием времени, уровня логирования, модуля, в котором возникло сообщение (аргумент module) и само сообщение. Сюда также попадают сообщения с регистратора django.
✅ В файл errors.log выводиться сообщения только уровня ERROR и CRITICAL. В сообщении указывается время, уровень логирования, само сообщение, путь к источнику сообщения и стэк ошибки. В этот файл попадают сообщения только из логгеров django.request, django.server, django.template, django.db.backends.
✅ В файл security.log попадают только сообщения, связанные с безопасностью, а значит только из логгера django.security. Формат вывода предполагает время, уровень логирования, модуль и сообщение.
✅ На почту отправляются сообщения уровней ERROR и выше из django.request и django.server по формату, как в errors.log, но без стэка ошибок. Более того, при помощи фильтров указано, что в консоль сообщения отправляются только при DEBUG = True, а на почту и в файл general.log — только при DEBUG = False.
для входа в суперпользователь логин admin Пароль admin
sign — приложение регистрации, аутентификации и авторизации; protect — приложение, в котором создается лишь одно представление для аутентифицированных пользователей
http://127.0.0.1:8000/admin/login/ # страница для админа
Базовая страница Инднтификации, с возможностью регистрации через Google-аккаунт http://127.0.0.1:8000/ или http://127.0.0.1:8000/accounts/login/
http://127.0.0.1:8000/accounts/signup/ # Страница Регистрации
http://127.0.0.1:8000/news/ # Страница вывода всех новостей и статей
http://127.0.0.1:8000/news/create/ # Страница создания новости
http://127.0.0.1:8000/article/create/ # Страница создания статьи
http://127.0.0.1:8000/news/search/ # Страница поиска
http://127.0.0.1:8000/subscribe/post/ # Страница подписки на категории
http://127.0.0.1:8000/sign/logout/ # Страница после вызода из системы
http://127.0.0.1:8000/news/1/ # Страница с полной информацией о статье или новости
http://127.0.0.1:8000/news/int:pk/edit/ # Страница редактирования статьи/новости
http://127.0.0.1:8000/news/int:pk/delete/ # Страница удаления статьи/новости
Все шаблоны лежат в папке \templates
базовый шаблон, который расширяет все остальные шаблоны лежит по адресу: templates/flatpages/default.html
В по адресу /static/css лежит готовые шаблоны с CSS-файлами для упрощения работы с HTML- и CSS-кодом
та самая страница, которая будет показываться только авторизованному пользователю protect/index.html.
В папке templates/sign можно найти три шаблона. signup.html, login.html и logout.html - для регистрации, входа и выхода соответсвенно.