/exam_8

Primary LanguageHTML

Контрольная работа #8

Напишите приложение "Отзовик", где пользователи могут находить разные товары и услуги и оставлять отзывы к ним.

Этап 1

Напишите модели Товара (Product) и Отзыва (Review).

Товар (он же - услуга) содержит поля: Название - обязательное, короткий текст Категория - обязательное, choice из нескольких любых категорий Описание - необязательное, длинный текст Картинка - необязательное

Отзыв содержит поля: Автор - внешний ключ к пользователю Товар - внешний ключ к товару Текст отзыва - обязательное, длинный текст Оценка - число от 1 до 5, обязательное

Зарегистрируйте модели в админ-панели, добавьте тестовые данные и создайте фикстуру.

Этап 2

Напишите CRUD для товаров: Список товаров (главная) Просмотр товара Создание товара Редактирование товара Удаление товара

При просмотре товара, если у него нет фотографии, должна выводиться картинка-заглушка. При удалении товара - он удаляется полностью, вместе с отзывами.

Этап 3

Напишите CRUD для отзывов: Список отзывов на странице товара. Создание отзыва к товару. Редактирование отзыва. Удаление отзыва.

При создании отзыва привязывайте его к текущему пользователю. Для каждого отзыва выводите имя автора, email, текст и оценку. На главной и на странице товара выводите среднюю оценку. Если отзывов нет, считайте среднюю оценку = 0.

Бонус (+2 балла): Выведите оценки у отзыва и товара в виде звёздочек.

Этап 4

Подключите приложение аутентификации пользователей.

На сайте должны быть доступны: Вход Выход Регистрация - можно без подтверждения по email Страница пользователя Личный кабинет (редактирование личных данных) Смена пароля.

В форме регистрации должно быть обязательное поле email. На странице пользователя выводите все его данные: логин, имя, email. На странице пользователя выводите список его отзывов, как на главной. Сделайте имена авторов отзывов ссылками на страницы пользователей. В личном кабинете пользователь может поменять свои имя и email.

Этап 5

Создайте группу "Модераторы" и дайте им права на: Создание, редактирование и удаление товара; Редактирование и удаление отзыва.

Настройте соответствующие проверки на страницах сайта.

Кроме модераторов редактировать и удалять отзывы могут их авторы.

Доступ к остальным страницам: Просмотр товаров и отзывов - доступно всем; Создание отзывов - только аутентифицированные пользователи; Просмотр страниц пользователей - доступно всем; Редактирование личных данных и смена пароля - только владелец учётной записи.

Обновите фикстуры. Бонус (+5 баллов) Добавьте в отзыв поле "статус", показывающее модерирован отзыв или нет. На страницах сайта выводятся только модерированные отзывы. Для пользователей с правами модератора - все отзывы. Автор может видеть все свои отзывы на своей странице. При создании все отзывы не модерированы. Поле "статус" в форме отзыва могут видеть и менять только модераторы. Средняя оценка товара считается только по модерированным отзывам.