Skip to content

chingachguk1977/NewsPaper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

News_Portal

SF Django News Portal Tutorial

As of D13 final task:

  • В консоль должны выводиться все сообщения уровня 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, но без стэка ошибок.

Отправляются.

drawing


drawing


As of D7 final task:

  • Установить Redis.

Установлено.


  • Установить Celery.

Установлено.


  • Произвести необходимые конфигурации Django для соединения всех компонент системы.

Произведено. Внесены соответствующие изменения в settings.py, добавлено celery.py


  • Реализовать рассылку уведомлений подписчикам после создания новости.

Сделано. Сигналы из начала модуля Д7 были в итоге отключены, и рассылка идет исключительно силами Celery. Задействован асинхронный запуск задач. Задача по рассылке уведомления о новом посте перенесена в соответствующий View, задача по рассылке недельного дайджеста идёт через планировщик внутри celery.py

Для проверки запустить в одном терминале команду:

python3 manage.py runserver

Создать ещё один терминал и запустить в нём команду:

celery -A NewsPaper worker -l INFO -B


  • Реализовать еженедельную рассылку с последними новостями (каждый понедельник в 8:00 утра)

Реализовано.

drawing

При необходимости заменить настройки в файле celery.py


As of D6 final task:

  • В категории должна быть возможность пользователей подписываться на рассылку новых статей.

Реализована подписка на категории (при выборе категории в списке постов) и, отдельно, на автора (при выборе автора в списке постов). Если пользователь уже подписан на данного автора и категорию, он об этом извещается и кнопка подписки меняется на кнопку отписки.


  • Если пользователь подписан на какую-либо категорию, то, как только в неё добавляется новая статья, её краткое содержание приходит пользователю на электронную почту, которую он указал при регистрации. В письме обязательно должна быть гиперссылка на саму статью, чтобы он мог по клику перейти и прочитать её.

Письма приходят всем пользователям с емэйлом (отдельное письмо по каждой категории, даже если это один и тот же пост). При оформлении подписки на автора, пользователь с емэйлом тоже получает соответствующее письмо. Рассылка о выходе новых постов автора не реализована, но это нетрудно и тупо вопрос времени -- я катастрофически не успевал. Гиперссылки в письме и вотэтовотвсё реализовано (единственное - ссылка в письме идёт не на localhost, а на "реальный" веб-адрес, но это просто на будущее сделано, когда сей шедевр будет покорять тру-интернеты.


  • Если пользователь подписан на какую-либо категорию, то каждую неделю ему приходит на почту список новых статей, появившийся за неделю с гиперссылкой на них, чтобы пользователь мог перейти и прочесть любую из статей.

Приходит... с божьей помощью и такой-то матери...


  • Добавьте приветственное письмо пользователю при регистрации в приложении.

Сделано.

З.Ы. Запускать отдельно планировщик через манаге.пу НЕ НАДО!


As of D4 final task:

  • поиск с использованием виджета календаря реализован.
  • В части разделения урлов на "новость" и "статья" -- я не вижу в этом никакой необходимости -- все посты это просто посты, нельзя сказать, что "новость" это не "статья" и что "статья" это не "новость".
  • Выполнена фильтрация и пагинация: и на странице с постами, и на странице с поиском.
  • Добавлено еще несколько дополнительных "плюшек", типа открытия отдельного поста кликом на заголовок (и на общей странице, и на странице с поиском).
  • На странице с поиском указывается, сколько постов найдено по заданным критериям.

About

SF Django News Portal Tutorial

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published