Skip to content
This repository has been archived by the owner on Apr 23, 2024. It is now read-only.

Latest commit

 

History

History
42 lines (28 loc) · 4.75 KB

README.md

File metadata and controls

42 lines (28 loc) · 4.75 KB

Для исследования возможностей фреймворка Django 2.x, создано приложение «Опросы» со следующем функционалом:

  1. Администраторы могут создавать, а пользователи проходить опросы.
  2. Каждый опрос может быть опубликован или не опубликован.
  3. Опрос включает в себя один и более вопросов, порядок вопросов внутри опроса можно задавать и менять в админке.
  4. Каждый вопрос имеет два и более вариантов ответа, порядок вариантов можно задавать и менять в админке.

Пример структуры опроса:

Мобильные телефоны - опрос

  • Сколько вам лет? - вопрос 1

    • <20 - вариант ответа 1.1
    • 20-30 - вариант ответа 1.2
    • >30 - вариант ответа 1.3
  • Кто производитель вашего телефона? - вопрос 2

    • Apple - вариант ответа 2.1
    • Samsung - вариант ответа 2.2
    • Другой - вариант ответа 2.3
  1. Проходя опрос, пользователь может и должен выбрать только один вариант ответа на каждый из вопросов. Ответы пользователя сохраняются в БД.

  2. Пользователь, это User из django.contrib.auth.models.

  3. Опросы создаются и публикуются в админке Django. Вопросы и варианты ответа на них создаются прямо на странице создания самого опроса.

  4. На веб - интерфейсе отображен список опросов. Опубликованные опросы, упорядоченные по дате создания, в виде списка дат и заголовков. Со списка можно попасть в опрос.

  5. Страница опроса. Вверху название опроса. Дальше вариант отображения зависит от того, пройден опрос текущим авторизованным пользователем или нет.

    • Если опрос пройден, то показываются вопросы в порядке заданном в админке, под каждым варианты ответа, в порядке заданном в админке, справа от каждого варианта ответа % пользователей, которые выбрали этот вариант. В сумме по каждому вопросу получится 100%.
    • Если опрос еще не пройден, то показываются все вопросы, под каждым варианты ответа, и слева от варианта ответа radio button, позволяющий его выбрать. Под вопросами кнопка «отправить». Пользователь должен выбрать один и только один ответ на каждый вопрос и тогда он может отправить форму. Ответы пользователя записываются. После этого опрос пройден и пользователю показывается страница с процентами (см выше). Дважды пройти один опрос пользователь не может.
  6. Если пользователь не авторизован, любая страница требующая авторизованного пользователя для своей работы, перебрасывает его на страницу авторизации, где он должен ввести свой логин и пароль. Страница авторизации это стандартный LoginView из django.contrib.auth.views

  7. Регистрации новых пользователей нет (но они могут создаваться в админке штатными средствами).

  8. Ответы пользователей можно просматривать в списке в админке.

  9. Верстка на веб - интерфейсе - bootstrap.

  10. Бонус: View на морде унаследованы от Class-based generic views.

  11. Бонус: Проект покрыт unit-тестами.