Skip to main content

Мощное Django приложение для создания и управления опросами, анкетами и тестами с поддержкой различных типов вопросов, категорий и аналитики

Project description

Django Survey

Мощное Django приложение для создания и управления опросами, анкетами и тестами с поддержкой различных типов вопросов, категорий и аналитики.

Возможности

  • Создание опросов с различными типами вопросов
  • Поддержка категорий вопросов
  • Аналитика и статистика ответов
  • Многоязычность (русский/английский)
  • Интеграция с Django Admin
  • REST API
  • Новое: Выделение правильных ответов в формах с использованием Crispy Forms

Новые возможности

Выделение правильных ответов

Приложение теперь поддерживает отображение правильных ответов в формах с использованием Crispy Forms. Когда пользователь отвечает на вопрос с заданным правильным ответом, система:

  1. Показывает правильный ответ в красивом alert-блоке
  2. Отображает ответ пользователя для сравнения
  3. Использует анимации для плавного появления результатов
  4. Поддерживает различные типы вопросов (radio, select, multiple choice, text)

Как это работает

  1. Настройка вопроса: Добавьте правильный ответ в поле correct_answer модели Question
  2. Отображение: После отправки формы система автоматически покажет правильный ответ
  3. Стилизация: Используются Bootstrap 5 классы и Font Awesome иконки

Пример использования

# Создание вопроса с правильным ответом
question = Question.objects.create(
    text="Столица России?",
    type=Question.RADIO,
    choices="Москва, Санкт-Петербург, Новосибирск",
    correct_answer="Москва",
    order=1,
)

Настройка

Для работы с правильными ответами убедитесь, что у вас установлены:

[tool.poetry.dependencies]
django-crispy-forms = ">=2.4"
crispy-bootstrap5 = "^2024.2"

И добавьте в настройки Django:

INSTALLED_APPS = [
    # ...
    "crispy_forms",
    "crispy_bootstrap5",
    # ...
]

CRISPY_TEMPLATE_PACK = "bootstrap5"
CRISPY_ALLOWED_TEMPLATE_PACKS = ("bootstrap5",)

Установка

pip install django-survey-axsapronov

Быстрый старт

  1. Добавьте survey в INSTALLED_APPS
  2. Выполните миграции: python manage.py migrate
  3. Создайте суперпользователя: python manage.py createsuperuser
  4. Запустите сервер: python manage.py runserver

Настройка миграций

Для корректной работы миграций убедитесь, что в вашем проекте настроены следующие параметры:

Обязательные настройки

# settings.py

# Настройка для миграции 0011_survey_publish_duration
DEFAULT_SURVEY_PUBLISHING_DURATION = 7

# Рекомендуемая настройка для избежания предупреждений
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"

Проверка миграций

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

python manage.py showmigrations survey

Для применения миграций:

python manage.py migrate survey

Устранение проблем

Если миграции не находятся при установке пакета в другом проекте:

  1. Убедитесь, что используется последняя версия пакета
  2. Проверьте, что в INSTALLED_APPS указано "survey"
  3. Убедитесь, что все обязательные настройки добавлены в settings.py

Документация

Подробная документация доступна в документации проекта.

Лицензия

AGPL-3.0

CSS Classes for Forms

The QuestionAnswerForm now supports custom CSS classes through crispy forms integration:

Available CSS Classes

  • .question-field - Base class for all question fields
  • .readonly-field - Applied when the form is in read-only mode
  • .validation-field - Applied when showing correct answers for validation

Usage Example

from survey.forms import QuestionAnswerForm

# Create a form with validation
form = QuestionAnswerForm(
    question=question,
    response=response,
    show_correct_answer=True,
    correct_answer="Correct answer here",
)

# The form will automatically apply CSS classes:
# - question-field (always applied)
# - validation-field (when show_correct_answer=True)
# - readonly-field (when read_only=True or show_correct_answer=True)

Custom Styling

You can customize the appearance by adding CSS rules:

.question-field {
    margin-bottom: 1.5rem;
    padding: 1rem;
    border-radius: 8px;
    background-color: #f8f9fa;
}

.validation-field {
    border-left: 4px solid #007bff;
    background-color: #f0f8ff;
}

.readonly-field {
    opacity: 0.8;
    pointer-events: none;
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_survey_axsapronov-2.0.1.tar.gz (64.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_survey_axsapronov-2.0.1-py3-none-any.whl (89.7 kB view details)

Uploaded Python 3

File details

Details for the file django_survey_axsapronov-2.0.1.tar.gz.

File metadata

File hashes

Hashes for django_survey_axsapronov-2.0.1.tar.gz
Algorithm Hash digest
SHA256 0852dc832826896ca6409918c570c091ed9527bd059b7df096158aab871256cf
MD5 8bd3ff10618c329ac24470bbd74ef7a6
BLAKE2b-256 892fd5970d4bcac2fac0bcf479711f2e6e1e27d56f7dbc1c21b821a8e63fec19

See more details on using hashes here.

File details

Details for the file django_survey_axsapronov-2.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_survey_axsapronov-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cb08eae352c2bd1c8ca1492e00b2a4a081fae10607c8bd7d47c0f187a506f2cd
MD5 4fe8762e034b2afbe73347acaeda0b40
BLAKE2b-256 29a3b055bf476008b3719d90fd9127afb409d7e8b04f3fed5d024ac23cb6fccf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page