Skip to main content

Create weighted answers or interpretation quizzes with ease!

Project description

Django simple quiz

Create quizzes with ease!

Features

  • Create quizzes!
    • Weighted-answers quizzes (6 questions max, conclusions are in categories by points count, like "you have between 0 and 5 points", single (radio) OR multiple (checkboxes) answers per question!),
    • Interpretation quizzes (4 questions max, conclusions are in categories by max symbols count, like "you have a majority of ◆"),
    • Choose to display random questions and/or answers through admin options! (or not)
    • Display the nb of points (for weighted-answers quizzes) admin options too! (or not)
  • Create django-cms plugins that redirect to your quizzes (quizzes are available through a special url, you cannot add cms plugin to the quizzes by default).
  • (optional) Save quizzes data in your database (started quizzes, finished quizzes, results)
  • (optional) Add general questions to the end of the quiz to gather more data! ((fr) departements, job, age range, [...])
  • (optional) Generate pdf from the saved data.
  • (optional) Export data from saved quizzes.

Warning!

Do not use versions < 3.0.0, they are not production-ready and have a lot of problems.

Install

  1. Install the package:
    python3 -m pip install django-easy-quiz
    
  2. Add those apps to your INSTALLED_APPS:
    "filer",
    "ckeditor",
    "ckeditor_uploader",  # for hosting images in your ckeditor view, see below for a ready-to-use config
    "ckeditor_filebrowser_filer",
    "import_export",
    "django_easy_quiz",
    
  3. Add the sessions middleware in your settings if it's not already here:
    MIDDLEWARE = (
        # [...]
        "django.contrib.sessions.middleware.SessionMiddleware",
        # [...]
    )
    
  4. Add those urls in your urls.py:
    # main app urls
    path("quiz/", include("django_easy_quiz.urls")),
    # ckeditor-related urls
    path("ckeditor/", include("ckeditor_uploader.urls")),
    path("filer/", include("filer.urls")),
    path("filebrowser_filer/", include("ckeditor_filebrowser_filer.urls")),
    path("filebrowser_filer/filer_", include("ckeditor_filebrowser_filer.urls")),  # only add this line if you're using django-ckeditor-filebrowser-filer from the develop branch or our fork on the "various-fixes" branch
    
  5. Migrate
    python3 manage.py migrate
    
  6. That's all folks!

Config

Ckeditor config

You will need to configure django-ckeditor in order to make it work in the quiz descriptions. Here's a ready-to-use config snippet that you can paste on your project's settings:

CKEDITOR_UPLOAD_PATH = "uploads/"
CKEDITOR_IMAGE_BACKEND = "pillow"
CKEDITOR_THUMBNAIL_SIZE = (150, 150)
CKEDITOR_ALLOW_NONIMAGE_FILES = False
CKEDITOR_CONFIGS = {
  "default": {
    "language": "{{ language }}",
    "toolbar": "Simple",
    "toolbar_Simple": [
        ["Undo", "Redo"],
        ["Styles", "Format"],
        ["TextColor", "BGColor"],
        ["Subscript", "Superscript", "-", "RemoveFormat", "PasteText", "PasteFromWord", "FilerImage"],
        ["Link", "Unlink"],
        ["Source"],
    ],
    "autoParagraph": False,
    "colorButton_colors": "01b6ad,00b6ef,a0cd49,ffc01c,9d1a75,fff,000",
    "skin": "moono-lisa",
    "height": "600px",
    "extraPlugins": "filerimage",
    "removePlugins": "image"  # do not use the classic image plugin, use the one from django-ckeditor-filebrowser-filer
  }
}

You can learn more about thoses config values and customize them values by having a look at the django-ckeditor documentation.

Save quizzes in your database

Add DJANGO_EASY_QUIZ_SAVE_QUIZZES_RESULTS=True (default False) in your settings.

Display 'more info' questions

Add DJANGO_EASY_QUIZ_GATHER_STATISTICS=True (default False) in your settings.

By default, the 'more info' question will be displayed on the summary page, after having answered the quiz.

If you want to display the 'more info' questions during the quiz, then set DJANGO_EASY_QUIZ_GATHER_STATISTICS_DURING_QUIZ to True in your settings (default False).

Download pdf with infos on the quiz

Add DJANGO_EASY_QUIZ_SAVE_PDF (default False) in your settings.

Only work if DJANGO_EASY_QUIZ_SAVE_QUIZZES_RESULTS is true. Requires weasyprint. Template to edit is in django_easy_quiz/quiz_pdf.html.

You can update the pdf file name using DJANGO_EASY_QUIZ_PDF_FILE_NAME (default _("quiz_summary.pdf")).

You can also update the logo in the pdf using DJANGO_EASY_QUIZ_PDF_LOGO (default logo.png).

If you want to change more things in the pdf, you can create a file named quiz_pdf.html in templates/django_easy_quiz and update the html file (rendered to a pdf file using weasyprint).

Add button "relaunch the quiz"

Add DJANGO_EASY_QUIZ_RELAUNCH_BUTTON (default False) in your settings.

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_easy_quiz-6.4.3.tar.gz (35.5 kB view details)

Uploaded Source

Built Distribution

django_easy_quiz-6.4.3-py3-none-any.whl (47.8 kB view details)

Uploaded Python 3

File details

Details for the file django_easy_quiz-6.4.3.tar.gz.

File metadata

  • Download URL: django_easy_quiz-6.4.3.tar.gz
  • Upload date:
  • Size: 35.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.11.9 Linux/6.8.0-55-generic

File hashes

Hashes for django_easy_quiz-6.4.3.tar.gz
Algorithm Hash digest
SHA256 1bc69623b412b634267571e6e8042bc2b73965d4689b6b330df99f7a557aa4df
MD5 db3c59f8de51f620286de7426d364f9c
BLAKE2b-256 c992d63515bce7df707433107db7a01210f83ced47e70517b436bacc1a005428

See more details on using hashes here.

File details

Details for the file django_easy_quiz-6.4.3-py3-none-any.whl.

File metadata

  • Download URL: django_easy_quiz-6.4.3-py3-none-any.whl
  • Upload date:
  • Size: 47.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.11.9 Linux/6.8.0-55-generic

File hashes

Hashes for django_easy_quiz-6.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3ca3fad2a7de6cca6f387bb33977cf4acec3df029a3db68c9c518a038d961803
MD5 a0297f1e2ea103df35b3c955d96328dd
BLAKE2b-256 d92d061c3f6469b9d7c2e20bf4c85e027ca4f5b3efb70aee8e932e2dfa23fead

See more details on using hashes here.

Supported by

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