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

An example of implementing a poll application on a Django 2 web framework

Notifications You must be signed in to change notification settings

raptor72/poll

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Для исследования возможностей фреймворка 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-тестами.

About

An example of implementing a poll application on a Django 2 web framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published