push clean refacto

This commit is contained in:
Grégory Lebreton 2024-04-03 22:04:11 +02:00
commit 2f61efd30f
189 changed files with 7427 additions and 0 deletions

12
.gitignore vendored Normal file
View File

@ -0,0 +1,12 @@
db.sqlite3
Pipfile
Pipfile.lock
essay/__pycache__
essay/__init__.py
testenv_django_quiz/__pycache__
testenv_django_quiz/__init__.py
true_false/__pycache__
true_false/__init__.py
multichoice/__pycache__
multichoice/__init__.py
venv

16
Dockerfile Normal file
View File

@ -0,0 +1,16 @@
FROM python:3.11-slim-bookworm
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
RUN apt-get update && apt-get install -y \
gcc \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir /code
WORKDIR /code
COPY quiz-app/requirements.txt /code/
RUN pip install -r requirements.txt
COPY quiz-app/. /code/
CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"]

69
README.md Normal file
View File

@ -0,0 +1,69 @@
# DJANGO QUIZZ
### Ce projet est une version fonctionnelle actualisée de Tom Walker (https://github.com/tomwalker/django_quiz).
les prérequis sont :
- python 3.6
- pip3
- les librairies contenus dans le requirements.txt
Les modifications apportées concernent la librairy pour la lectures des classes codées en python2 :
- Utilisation de la librairy six et utilisation de Django 2.2.9 (la 3.0 ne prends plus en charge python 2).
- Modification du requirements.txt en conséquence.
## INSTALLATION
git clone
cd djangoquizz
python3 manage.py runserver
## VISITER localhost:8000/admin et ce connecter avec les identifiants administrateur par défaut :
user : Greg
mot de passe : Juliette21
## Changer l'administrateur en créant un nouveaux utilisateur avec tous les droits, puis supprimer l'utilisateur "Greg"
## CREER SON QUIZZ !
### Creer son quizz en choisissant le type (multiplechoice) :
### Créer des questions :
### Créer des utilisateurs :
### Customiser le logo :
## Avec Docker :
### INSTALLATION
git clone
cd djangoquizz
docker build -t djangoquizz .
docker run -d -p 8000:8000 djangoquizz
### VISITER 0.0.0.0:8000/admin
admin : Greg / mdp: Juliette21
--> Pour modifier les acréditations de l'admin, éffectuer :
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
### Personnaliser :
- Modifier la dernière ligne pour spécifier une IP (ex: 192.168.1.1:8000)
- --> répercuter l'adresse dans /testenv_django_quiz/settings.py dans ALLOWED_HOSTS = ['192.168.1.1']

10
docker-compose.yml Normal file
View File

@ -0,0 +1,10 @@
version: '3'
services:
djangoquiz:
build: .
container_name: djangoquiz
restart: unless-stopped
ports:
- "8000:8000"

Binary file not shown.

Binary file not shown.

Binary file not shown.

145
quiz-app/app/settings.py Normal file
View File

@ -0,0 +1,145 @@
from environs import Env
import os
# pour utilisation des variables d'environnement pour les données sensibles
envi = Env()
Env.read_env()
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'cgx%r24k2zk(+1*1g)y=+60^2x$)_qj4tdkn(yk19z$v!^yo=_'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# valide en local et pour docker
ALLOWED_HOSTS = ['*']
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# django_quiz apps
'quiz',
'multichoice',
'true_false',
'essay',
'registration'
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'app.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'app.wsgi.application'
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# Password validation
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/2.2/topics/i18n/
LANGUAGE_CODE = 'fr'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_URL = '/static/'
# pour envoyer des mail dans un dossier local
# EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# pour envoyer via GMAIL
#EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
#EMAIL_HOST = 'smtp.gmail.com'
#EMAIL_HOST_USER = envi('EMAIL_HOST_USER')
#EMAIL_HOST_PASSWORD = envi('EMAIL_HOST_PASSWORD')
#EMAIL_PORT = 587
#EMAIL_USE_TLS = True
#LOGIN_REDIRECT_URL = '/'
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
#DEFAULT_FROM_EMAIL = 'quizz du garage numerique'
## PRODUCTION CONFIG
#SENDGRID_API_KEY = os.getenv('SENDGRID_API_KEY')
#EMAIL_HOST = 'smtp.sendgrid.net'
#EMAIL_HOST_USER = 'apikey' # this is exactly the value 'apikey'
#EMAIL_HOST_PASSWORD = SENDGRID_API_KEY
#EMAIL_PORT = 587
#EMAIL_USE_TLS = True

View File

@ -0,0 +1,17 @@
@import url('https://fonts.googleapis.com/css2?family=Play&display=swap');
/* Appliquer les polices aux éléments du document */
body {
font-family: 'Play'; /* Aladin pour le corps du document */
/* font-size: 1.5em; */
}
.button-link {
background: none;
border: none;
color: #497AA1;
text-decoration: underline;
cursor: pointer;
padding: 0;
font: inherit;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

8
quiz-app/app/urls.py Normal file
View File

@ -0,0 +1,8 @@
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('django.contrib.auth.urls')),
path('', include('quiz.urls')),
]

7
quiz-app/app/wsgi.py Normal file
View File

@ -0,0 +1,7 @@
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
application = get_wsgi_application()

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-31 22:44+0000\n"
"PO-Revision-Date: 2019-03-07 21:13+0100\n"
"Last-Translator: Reiner Mayers\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.6\n"
"Language-Team: \n"
"X-Generator: Poedit 2.0.6\n"
#: apps/essay/models.py:26
msgid "Essay style question"
msgstr "Aufsatzartige Frage"
#: apps/essay/models.py:27
msgid "Essay style questions"
msgstr "Aufsatzartige Frage"

Binary file not shown.

View File

@ -0,0 +1,26 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# , 2014.
msgid ""
msgstr ""
"Project-Id-Version: django-quiz-essay\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-02 16:32+0000\n"
"PO-Revision-Date: 2016-03-24 15:57-0500\n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.4\n"
"Last-Translator: \n"
"Language: es_CO\n"
#: models.py:23
msgid "Essay style question"
msgstr "Pregunta estilo ensayo"
#: models.py:24
msgid "Essay style questions"
msgstr "Preguntas estilo ensayo"

Binary file not shown.

View File

@ -0,0 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-31 22:44+0000\n"
"PO-Revision-Date: 2015-10-31 22:15+0000\n"
"Last-Translator: b' <>'\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.6\n"
#: apps/essay/models.py:26
msgid "Essay style question"
msgstr "Tipo di domanda per la prova "
#: apps/essay/models.py:27
msgid "Essay style questions"
msgstr "Tipo di domande per la prova "

Binary file not shown.

View File

@ -0,0 +1,27 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# , 2014.
msgid ""
msgstr ""
"Project-Id-Version: django-quiz-essay\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-02 16:32+0000\n"
"PO-Revision-Date: 2015-08-21 19:40+0500\n"
"Last-Translator: \n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 1.5.4\n"
#: models.py:23
msgid "Essay style question"
msgstr "Эссе"
#: models.py:24
msgid "Essay style questions"
msgstr "Эссе"

Binary file not shown.

View File

@ -0,0 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-31 22:44+0000\n"
"PO-Revision-Date: 2015-10-31 22:15+0000\n"
"Last-Translator: b' <>'\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.6\n"
#: apps/essay/models.py:26
msgid "Essay style question"
msgstr "论述题"
#: apps/essay/models.py:27
msgid "Essay style questions"
msgstr "论述题"

View File

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2017-06-22 11:20
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('quiz', '__first__'),
]
operations = [
migrations.CreateModel(
name='Essay_Question',
fields=[
('question_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='quiz.Question')),
],
options={
'verbose_name': 'Essay style question',
'verbose_name_plural': 'Essay style questions',
},
bases=('quiz.question',),
),
]

View File

29
quiz-app/essay/models.py Normal file
View File

@ -0,0 +1,29 @@
from __future__ import unicode_literals
# from django.utils.encoding import python_2_unicode_compatible
from six import python_2_unicode_compatible
from django.utils.translation import gettext_lazy as _
from quiz.models import Question
@python_2_unicode_compatible
class Essay_Question(Question):
def check_if_correct(self, guess):
return False
def get_answers(self):
return False
def get_answers_list(self):
return False
def answer_choice_to_string(self, guess):
return str(guess)
def __str__(self):
return self.content
class Meta:
verbose_name = _("Essay style question")
verbose_name_plural = _("Essay style questions")

22
quiz-app/essay/tests.py Normal file
View File

@ -0,0 +1,22 @@
from django.test import TestCase
from .models import Essay_Question
class TestEssayQuestionModel(TestCase):
def setUp(self):
self.essay = Essay_Question.objects.create(content="Tell me stuff",
explanation="Wow!")
def test_always_false(self):
self.assertEqual(self.essay.check_if_correct('spam'), False)
self.assertEqual(self.essay.get_answers(), False)
self.assertEqual(self.essay.get_answers_list(), False)
def test_returns_guess(self):
guess = "To be or not to be"
self.assertEqual(self.essay.answer_choice_to_string(guess), guess)
def test_answer_to_string(self):
self.assertEqual('To be...',
self.essay.answer_choice_to_string('To be...'))

14
quiz-app/manage.py Executable file
View File

@ -0,0 +1,14 @@
import os
import sys
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)

Binary file not shown.

View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-31 22:44+0000\n"
"PO-Revision-Date: 2019-03-07 21:13+0100\n"
"Last-Translator: Reiner Mayers\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.6\n"
"Language-Team: \n"
"X-Generator: Poedit 2.0.6\n"
#: apps/multichoice/models.py:9 apps/multichoice/models.py:65
msgid "Content"
msgstr "Inhalt"
#: apps/multichoice/models.py:10
msgid "Random"
msgstr "Zufällig"
#: apps/multichoice/models.py:11
msgid "None"
msgstr "Kein"
#: apps/multichoice/models.py:20
msgid "The order in which multichoice answer options are displayed to the user"
msgstr "Reihenfolge in der Multichoice Antworten dem Benutzer angezeigt werden"
#: apps/multichoice/models.py:23
msgid "Answer Order"
msgstr "Antwort Reihenfolge"
#: apps/multichoice/models.py:53
msgid "Multiple Choice Question"
msgstr "Multiple Choice Frage"
#: apps/multichoice/models.py:54
msgid "Multiple Choice Questions"
msgstr "Multiple Choice Frage"
#: apps/multichoice/models.py:59
msgid "Question"
msgstr "Frage"
#: apps/multichoice/models.py:63
msgid "Enter the answer text that you want displayed"
msgstr "Geben Sie den Antworttext ein der angezeigt werden soll"
#: apps/multichoice/models.py:69
msgid "Is this a correct answer?"
msgstr "Ist diese Antwort richtig?"
#: apps/multichoice/models.py:70
msgid "Correct"
msgstr "Korrekt"
#: apps/multichoice/models.py:76
msgid "Answer"
msgstr "Antwort"
#: apps/multichoice/models.py:77
msgid "Answers"
msgstr "Antworten"

View File

@ -0,0 +1,70 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# , 2014.
msgid ""
msgstr ""
"Project-Id-Version: django-quiz-multichoice\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-02 16:35+0000\n"
"PO-Revision-Date: 2016-03-24 16:00-0500\n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.4\n"
"Last-Translator: \n"
"Language: es_CO\n"
#: models.py:7 models.py:61
msgid "Content"
msgstr "Contenido"
#: models.py:8
msgid "Random"
msgstr "Aleatorio"
#: models.py:9
msgid "None"
msgstr "Ninguna"
#: models.py:17
msgid "The order in which multichoice answer options are displayed to the user"
msgstr "El orden en que las opciones de respuesta de elección múltiple se muestran al usuario"
#: models.py:20
msgid "Answer Order"
msgstr "Orden de las Respuestas"
#: models.py:50
msgid "Multiple Choice Question"
msgstr "Pregunta de opción múltiple"
#: models.py:51
msgid "Multiple Choice Questions"
msgstr "Preguntas de opción múltiple"
#: models.py:55
msgid "Question"
msgstr "Pregunta"
#: models.py:59
msgid "Enter the answer text that you want displayed"
msgstr "Ingrese el texto de la respuesta que desea mostrar"
#: models.py:65
msgid "Is this a correct answer?"
msgstr "¿Es esta una respuesta correcta?"
#: models.py:66
msgid "Correct"
msgstr "Correcto"
#: models.py:72
msgid "Answer"
msgstr "Respuesta"
#: models.py:73
msgid "Answers"
msgstr "Respuestas"

Binary file not shown.

View File

@ -0,0 +1,74 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-31 22:44+0000\n"
"PO-Revision-Date: 2015-10-31 22:19+0000\n"
"Last-Translator: b' <>'\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.6\n"
#: apps/multichoice/models.py:9 apps/multichoice/models.py:65
msgid "Content"
msgstr "Contenuto"
#: apps/multichoice/models.py:10
msgid "Random"
msgstr "Casuale"
#: apps/multichoice/models.py:11
msgid "None"
msgstr "Nessuno"
#: apps/multichoice/models.py:20
msgid "The order in which multichoice answer options are displayed to the user"
msgstr ""
"Ordine in cui le risposte multiple disponibili vengono visualizzate "
"all'utente"
#: apps/multichoice/models.py:23
msgid "Answer Order"
msgstr "Ordine Risposte"
#: apps/multichoice/models.py:53
msgid "Multiple Choice Question"
msgstr "Domanda a risposta multipla"
#: apps/multichoice/models.py:54
msgid "Multiple Choice Questions"
msgstr "Domande a risposta multipla"
#: apps/multichoice/models.py:59
msgid "Question"
msgstr "Domanda"
#: apps/multichoice/models.py:63
msgid "Enter the answer text that you want displayed"
msgstr "Inserisci il testo della risposta che vuoi visualizzare"
#: apps/multichoice/models.py:69
msgid "Is this a correct answer?"
msgstr "Questa è la risposta corretta?"
#: apps/multichoice/models.py:70
msgid "Correct"
msgstr "Corretto"
#: apps/multichoice/models.py:76
msgid "Answer"
msgstr "Risposta"
#: apps/multichoice/models.py:77
msgid "Answers"
msgstr "Risposte"

Binary file not shown.

View File

@ -0,0 +1,71 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# , 2014.
msgid ""
msgstr ""
"Project-Id-Version: django-quiz-multichoice\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-02 16:35+0000\n"
"PO-Revision-Date: 2015-08-21 19:39+0500\n"
"Last-Translator: Eugena Mihailikova <eugena.mihailikova@gmail.com>\n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 1.5.4\n"
#: models.py:7 models.py:61
msgid "Content"
msgstr "Содержание"
#: models.py:8
msgid "Random"
msgstr "Случайно"
#: models.py:9
msgid "None"
msgstr "Ничего"
#: models.py:17
msgid "The order in which multichoice answer options are displayed to the user"
msgstr "Порядок отображения вопросов"
#: models.py:20
msgid "Answer Order"
msgstr "Порядок вопросов"
#: models.py:50
msgid "Multiple Choice Question"
msgstr "Вопрос с несколькими вариантами ответов"
#: models.py:51
msgid "Multiple Choice Questions"
msgstr "Вопросы с несколькими вариантами ответов"
#: models.py:55
msgid "Question"
msgstr "Вопрос"
#: models.py:59
msgid "Enter the answer text that you want displayed"
msgstr "Введите текст ответа"
#: models.py:65
msgid "Is this a correct answer?"
msgstr "Это правильный ответ?"
#: models.py:66
msgid "Correct"
msgstr "Правильно"
#: models.py:72
msgid "Answer"
msgstr "Вопрос"
#: models.py:73
msgid "Answers"
msgstr "Вопросы"

View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-31 22:44+0000\n"
"PO-Revision-Date: 2015-10-31 22:19+0000\n"
"Last-Translator: b' <>'\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.6\n"
#: apps/multichoice/models.py:9 apps/multichoice/models.py:65
msgid "Content"
msgstr "内容"
#: apps/multichoice/models.py:10
msgid "Random"
msgstr "随机"
#: apps/multichoice/models.py:11
msgid "None"
msgstr "无"
#: apps/multichoice/models.py:20
msgid "The order in which multichoice answer options are displayed to the user"
msgstr "向用户显示多选答案选项时的次序"
#: apps/multichoice/models.py:23
msgid "Answer Order"
msgstr "答案次序"
#: apps/multichoice/models.py:53
msgid "Multiple Choice Question"
msgstr "多选题"
#: apps/multichoice/models.py:54
msgid "Multiple Choice Questions"
msgstr "多选题"
#: apps/multichoice/models.py:59
msgid "Question"
msgstr "问题"
#: apps/multichoice/models.py:63
msgid "Enter the answer text that you want displayed"
msgstr "输入你想显示的答案文本"
#: apps/multichoice/models.py:69
msgid "Is this a correct answer?"
msgstr "这个答案正确吗?"
#: apps/multichoice/models.py:70
msgid "Correct"
msgstr "正确"
#: apps/multichoice/models.py:76
msgid "Answer"
msgstr "答案"
#: apps/multichoice/models.py:77
msgid "Answers"
msgstr "答案"

View File

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2017-06-22 11:20
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('quiz', '__first__'),
]
operations = [
migrations.CreateModel(
name='Answer',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('content', models.CharField(help_text='Enter the answer text that you want displayed', max_length=1000, verbose_name='Content')),
('correct', models.BooleanField(default=False, help_text='Is this a correct answer?', verbose_name='Correct')),
],
options={
'verbose_name': 'Answer',
'verbose_name_plural': 'Answers',
},
),
migrations.CreateModel(
name='MCQuestion',
fields=[
('question_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='quiz.Question')),
('answer_order', models.CharField(blank=True, choices=[('content', 'Content'), ('random', 'Random'), ('none', 'None')], help_text='The order in which multichoice answer options are displayed to the user', max_length=30, null=True, verbose_name='Answer Order')),
],
options={
'verbose_name': 'Multiple Choice Question',
'verbose_name_plural': 'Multiple Choice Questions',
},
bases=('quiz.question',),
),
migrations.AddField(
model_name='answer',
name='question',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='multichoice.MCQuestion', verbose_name='Question'),
),
]

View File

@ -0,0 +1,78 @@
from __future__ import unicode_literals
# from django.utils.encoding import python_2_unicode_compatible
from six import python_2_unicode_compatible
from django.utils.translation import gettext_lazy as _
from django.db import models
from quiz.models import Question
ANSWER_ORDER_OPTIONS = (
('content', _('Content')),
('random', _('Random')),
('none', _('None'))
)
class MCQuestion(Question):
answer_order = models.CharField(
max_length=30, null=True, blank=True,
choices=ANSWER_ORDER_OPTIONS,
help_text=_("The order in which multichoice "
"answer options are displayed "
"to the user"),
verbose_name=_("Answer Order"))
def check_if_correct(self, guess):
answer = Answer.objects.get(id=guess)
if answer.correct is True:
return True
else:
return False
def order_answers(self, queryset):
if self.answer_order == 'content':
return queryset.order_by('content')
if self.answer_order == 'random':
return queryset.order_by('?')
if self.answer_order == 'none':
return queryset.order_by()
return queryset
def get_answers(self):
return self.order_answers(Answer.objects.filter(question=self))
def get_answers_list(self):
return [(answer.id, answer.content) for answer in
self.order_answers(Answer.objects.filter(question=self))]
def answer_choice_to_string(self, guess):
return Answer.objects.get(id=guess).content
class Meta:
verbose_name = _("Multiple Choice Question")
verbose_name_plural = _("Multiple Choice Questions")
@python_2_unicode_compatible
class Answer(models.Model):
question = models.ForeignKey(MCQuestion, verbose_name=_("Question"), on_delete=models.CASCADE)
content = models.CharField(max_length=1000,
blank=False,
help_text=_("Enter the answer text that "
"you want displayed"),
verbose_name=_("Content"))
correct = models.BooleanField(blank=False,
default=False,
help_text=_("Is this a correct answer?"),
verbose_name=_("Correct"))
def __str__(self):
return self.content
class Meta:
verbose_name = _("Answer")
verbose_name_plural = _("Answers")

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,52 @@
from django.core.files.base import ContentFile
from django.db.models.fields.files import ImageFieldFile
from django.test import TestCase
from django.utils.six import StringIO
from .models import MCQuestion, Answer
class TestMCQuestionModel(TestCase):
def setUp(self):
self.q = MCQuestion.objects.create(id=1,
content=("WHAT is the airspeed" +
"velocity of an unladen" +
"swallow?"),
explanation="I, I don't know that!")
self.answer1 = Answer.objects.create(id=123,
question=self.q,
content="African",
correct=False)
self.answer2 = Answer.objects.create(id=456,
question=self.q,
content="European",
correct=True)
def test_answers(self):
answers = Answer.objects.filter(question=self.q)
correct_a = Answer.objects.get(question=self.q,
correct=True)
answers_by_method = self.q.get_answers()
self.assertEqual(answers.count(), 2)
self.assertEqual(correct_a.content, "European")
self.assertEqual(self.q.check_if_correct(123), False)
self.assertEqual(self.q.check_if_correct(456), True)
self.assertEqual(answers_by_method.count(), 2)
self.assertEqual(self.q.answer_choice_to_string(123),
self.answer1.content)
def test_figure(self):
# http://stackoverflow.com/a/2473445/1694979
imgfile = StringIO(
'GIF87a\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00ccc,'
'\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;')
imgfile.name = 'test_img_file.gif'
self.q.figure.save('image', ContentFile(imgfile.read()))
self.assertIsInstance(self.q.figure, ImageFieldFile)
def test_answer_to_string(self):
self.assertEqual('African', self.q.answer_choice_to_string(123))

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

112
quiz-app/quiz/admin.py Normal file
View File

@ -0,0 +1,112 @@
from django import forms
from django.contrib import admin
from django.contrib.admin.widgets import FilteredSelectMultiple
from django.utils.translation import gettext_lazy as _
from .models import Quiz, Category, SubCategory, Progress, Question
from multichoice.models import MCQuestion, Answer
from true_false.models import TF_Question
from essay.models import Essay_Question
class AnswerInline(admin.TabularInline):
model = Answer
class QuizAdminForm(forms.ModelForm):
"""
below is from
http://stackoverflow.com/questions/11657682/
django-admin-interface-using-horizontal-filter-with-
inline-manytomany-field
"""
class Meta:
model = Quiz
exclude = []
questions = forms.ModelMultipleChoiceField(
queryset=Question.objects.all().select_subclasses(),
required=False,
label=_("Questions"),
widget=FilteredSelectMultiple(
verbose_name=_("Questions"),
is_stacked=False))
def __init__(self, *args, **kwargs):
super(QuizAdminForm, self).__init__(*args, **kwargs)
if self.instance.pk:
self.fields['questions'].initial =\
self.instance.question_set.all().select_subclasses()
def save(self, commit=True):
quiz = super(QuizAdminForm, self).save(commit=False)
quiz.save()
quiz.question_set.set(self.cleaned_data['questions'])
self.save_m2m()
return quiz
class QuizAdmin(admin.ModelAdmin):
form = QuizAdminForm
list_display = ('title', 'category', )
list_filter = ('category',)
search_fields = ('description', 'category', )
class CategoryAdmin(admin.ModelAdmin):
search_fields = ('category', )
class SubCategoryAdmin(admin.ModelAdmin):
search_fields = ('sub_category', )
list_display = ('sub_category', 'category',)
list_filter = ('category',)
class MCQuestionAdmin(admin.ModelAdmin):
list_display = ('content', 'category', 'sub_category')
list_filter = ('category', 'sub_category')
fields = ('content', 'category', 'sub_category',
'figure', 'quiz', 'explanation', 'answer_order')
search_fields = ('content', 'explanation')
filter_horizontal = ('quiz',)
inlines = [AnswerInline]
class ProgressAdmin(admin.ModelAdmin):
"""
to do:
create a user section
"""
#search_fields = ('user', 'score', )
#fields = ('user_answers',)
class TFQuestionAdmin(admin.ModelAdmin):
list_display = ('content', 'category', )
list_filter = ('category',)
fields = ('content', 'category', 'sub_category',
'figure', 'quiz', 'explanation', 'correct',)
search_fields = ('content', 'explanation')
filter_horizontal = ('quiz',)
class EssayQuestionAdmin(admin.ModelAdmin):
list_display = ('content', 'category', )
list_filter = ('category',)
fields = ('content', 'category', 'sub_category', 'quiz', 'explanation', )
search_fields = ('content', 'explanation')
filter_horizontal = ('quiz',)
admin.site.register(Quiz, QuizAdmin)
admin.site.register(Category, CategoryAdmin)
admin.site.register(SubCategory, SubCategoryAdmin)
admin.site.register(MCQuestion, MCQuestionAdmin)
admin.site.register(Progress, ProgressAdmin)
admin.site.register(TF_Question, TFQuestionAdmin)
admin.site.register(Essay_Question, EssayQuestionAdmin)

17
quiz-app/quiz/forms.py Normal file
View File

@ -0,0 +1,17 @@
from django import forms
from django.forms.widgets import RadioSelect, Textarea
class QuestionForm(forms.Form):
def __init__(self, question, *args, **kwargs):
super(QuestionForm, self).__init__(*args, **kwargs)
choice_list = [x for x in question.get_answers_list()]
self.fields["answers"] = forms.ChoiceField(choices=choice_list,
widget=RadioSelect)
class EssayForm(forms.Form):
def __init__(self, question, *args, **kwargs):
super(EssayForm, self).__init__(*args, **kwargs)
self.fields["answers"] = forms.CharField(
widget=Textarea(attrs={'style': 'width:100%'}))

Binary file not shown.

View File

@ -0,0 +1,476 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-31 22:44+0000\n"
"PO-Revision-Date: 2019-03-07 21:14+0100\n"
"Last-Translator: Reiner Mayers\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.6\n"
"Language-Team: \n"
"X-Generator: Poedit 2.0.6\n"
#: apps/quiz/models.py:30 apps/quiz/models.py:37 apps/quiz/models.py:53
#: apps/quiz/models.py:83 apps/quiz/models.py:545
#: apps/quiz/templates/progress.html:19
#: apps/quiz/templates/quiz/quiz_detail.html:9
#: apps/quiz/templates/quiz/quiz_list.html:13
#: apps/quiz/templates/quiz/sitting_detail.html:10
msgid "Category"
msgstr "Kategorie"
#: apps/quiz/models.py:38
msgid "Categories"
msgstr "Kategorien"
#: apps/quiz/models.py:48 apps/quiz/models.py:58 apps/quiz/models.py:550
msgid "Sub-Category"
msgstr "Unterkategorie"
#: apps/quiz/models.py:59
msgid "Sub-Categories"
msgstr "Unterkategorien"
#: apps/quiz/models.py:69 apps/quiz/templates/quiz/quiz_list.html:12
msgid "Title"
msgstr "Titel"
#: apps/quiz/models.py:73
msgid "Description"
msgstr "Beschreibung"
#: apps/quiz/models.py:74
msgid "a description of the quiz"
msgstr "Eine Beschreibung des Quiz"
#: apps/quiz/models.py:78
msgid "a user friendly url"
msgstr "Eine benutzerfreundliche url"
#: apps/quiz/models.py:79
msgid "user friendly url"
msgstr "benutzerfreundliche url"
#: apps/quiz/models.py:87
msgid "Random Order"
msgstr "Zufällige Reihenfolge"
#: apps/quiz/models.py:88
msgid "Display the questions in a random order or as they are set?"
msgstr "Fragen zufällig anzeigen oder in der Eingabereihenfolge?"
#: apps/quiz/models.py:93
msgid "Max Questions"
msgstr "Maximale Anzahl der Fragen"
#: apps/quiz/models.py:94
msgid "Number of questions to be answered on each attempt."
msgstr "Anzahl der Fragen die bei jedem Versuch gestellt werden."
#: apps/quiz/models.py:98
msgid ""
"Correct answer is NOT shown after question. Answers displayed at the end."
msgstr ""
"Die Richtige Antwort wird nicht nach der Frage angezeigt sondern am Ende."
#: apps/quiz/models.py:100
msgid "Answers at end"
msgstr "Antworten am Ende"
#: apps/quiz/models.py:104
msgid ""
"If yes, the result of each attempt by a user will be stored. Necessary for "
"marking."
msgstr ""
"Wenn ja, wird das Ergebnis jeden Versuchs gespeichert. Zum markieren ist die "
"notwendig."
#: apps/quiz/models.py:107
msgid "Exam Paper"
msgstr "Prüfungsarbeit"
#: apps/quiz/models.py:111
msgid ""
"If yes, only one attempt by a user will be permitted. Non users cannot sit "
"this exam."
msgstr ""
"Wenn ja wird nur ein Versuch pro Anwender zugelassen. Nur angemeldete "
"Anwender können diese Prüfung machen."
#: apps/quiz/models.py:114
msgid "Single Attempt"
msgstr "Nur ein Versuch"
#: apps/quiz/models.py:118
msgid "Percentage required to pass exam."
msgstr "Prozent zum bestehen der Prüfung."
#: apps/quiz/models.py:122
msgid "Displayed if user passes."
msgstr "Angezeigt wenn der Anwender besteht."
#: apps/quiz/models.py:123
msgid "Success Text"
msgstr "Text für den Erfolg"
#: apps/quiz/models.py:126
msgid "Fail Text"
msgstr "Text für den Misserfolg"
#: apps/quiz/models.py:127
msgid "Displayed if user fails."
msgstr "Wird angezeigt wenn der Anwender durchfällt."
#: apps/quiz/models.py:131
msgid "Draft"
msgstr "Entwurf"
#: apps/quiz/models.py:132
msgid ""
"If yes, the quiz is not displayed in the quiz list and can only be taken by "
"users who can edit quizzes."
msgstr ""
"Wenn ja wird die Prüfung nicht in der Prüfungsliste angezeigt und kann nur "
"von Anwendern ausgeführt werden welche Prüfungen bearbeiten können."
#: apps/quiz/models.py:152 apps/quiz/models.py:372 apps/quiz/models.py:541
#: apps/quiz/templates/quiz/sitting_list.html:14
msgid "Quiz"
msgstr "Quiz"
#: apps/quiz/models.py:153
msgid "Quizzes"
msgstr "Quizze"
#: apps/quiz/models.py:192 apps/quiz/models.py:370
#: apps/quiz/templates/quiz/sitting_detail.html:13
#: apps/quiz/templates/quiz/sitting_list.html:13
msgid "User"
msgstr "Anwender"
#: apps/quiz/models.py:195 apps/quiz/templates/progress.html:60
#: apps/quiz/templates/quiz/sitting_detail.html:15
#: apps/quiz/templates/quiz/sitting_list.html:16
msgid "Score"
msgstr "Punkte"
#: apps/quiz/models.py:200
msgid "User Progress"
msgstr "Anwender Fortschritt"
#: apps/quiz/models.py:201
msgid "User progress records"
msgstr "Fortschrittsaufzeichnung des Anwenders"
#: apps/quiz/models.py:261
msgid "error"
msgstr "Fehler"
#: apps/quiz/models.py:261
msgid "category does not exist or invalid score"
msgstr "Diese Kategorie existiert nicht oder das Ergebnis ist ungültig"
#: apps/quiz/models.py:375
msgid "Question Order"
msgstr "Reihenfolge der Fragen"
#: apps/quiz/models.py:378
msgid "Question List"
msgstr "Liste der Fragen"
#: apps/quiz/models.py:381
msgid "Incorrect questions"
msgstr "Falsche Antworten"
#: apps/quiz/models.py:383
msgid "Current Score"
msgstr "Aktueller Punktestand"
#: apps/quiz/models.py:386
msgid "Complete"
msgstr "Vollständig"
#: apps/quiz/models.py:389
msgid "User Answers"
msgstr "Antworten des Anwenders"
#: apps/quiz/models.py:392
msgid "Start"
msgstr "Anfang"
#: apps/quiz/models.py:394
msgid "End"
msgstr "Ende"
#: apps/quiz/models.py:399
msgid "Can see completed exams."
msgstr "Kann abgelegte Prüfungen sehen."
#: apps/quiz/models.py:557
msgid "Figure"
msgstr "Abbildung"
#: apps/quiz/models.py:561
msgid "Enter the question text that you want displayed"
msgstr "Geben Sie die Frage ein welche angezeigt werden soll"
#: apps/quiz/models.py:563 apps/quiz/models.py:575
#: apps/quiz/templates/question.html:47
#: apps/quiz/templates/quiz/sitting_detail.html:21
msgid "Question"
msgstr "Frage"
#: apps/quiz/models.py:567
msgid "Explanation to be shown after the question has been answered."
msgstr "Erklärung welche nach der Antwort angezeigt wird."
#: apps/quiz/models.py:570 apps/quiz/templates/question.html:32
#: apps/quiz/templates/result.html:21 apps/quiz/templates/result.html.py:87
msgid "Explanation"
msgstr "Erklärung"
#: apps/quiz/models.py:576
msgid "Questions"
msgstr "Fragen"
#: apps/quiz/templates/base.html:7
msgid "Example Quiz Website"
msgstr "Beispiel Quiz Webseite"
#: apps/quiz/templates/correct_answer.html:6
msgid "You answered the above question incorrectly"
msgstr "Sie haben die obenstehende Frage falsch beantwortet"
#: apps/quiz/templates/correct_answer.html:16
msgid "This is the correct answer"
msgstr "Dies ist die richtige Antwort"
#: apps/quiz/templates/correct_answer.html:23
msgid "This was your answer."
msgstr "Dies war Ihre Antwort."
#: apps/quiz/templates/progress.html:6
msgid "Progress Page"
msgstr "Fortschrittsseite"
#: apps/quiz/templates/progress.html:7
msgid "User Progress Page"
msgstr "Fortschrittsseite des Anwenders"
#: apps/quiz/templates/progress.html:13
msgid "Question Category Scores"
msgstr "Punkte in dieser Fragenkategorie"
#: apps/quiz/templates/progress.html:20
msgid "Correctly answererd"
msgstr "Die Antwort ist richtig"
#: apps/quiz/templates/progress.html:21
msgid "Incorrect"
msgstr "Falsch"
#: apps/quiz/templates/progress.html:50
msgid "Previous exam papers"
msgstr "Vorhergehende Prüfung"
#: apps/quiz/templates/progress.html:52
msgid "Below are the results of exams that you have sat."
msgstr "Im Folgenden sehen Sie die Ergebnisse Ihrer Prüfungen."
#: apps/quiz/templates/progress.html:59
msgid "Quiz Title"
msgstr "Titel des Quiz"
#: apps/quiz/templates/progress.html:61
msgid "Possible Score"
msgstr "Mögliche Punkte"
#: apps/quiz/templates/question.html:13 apps/quiz/templates/result.html:13
msgid "The previous question"
msgstr "Die vorherige Frage"
#: apps/quiz/templates/question.html:22
msgid "Your answer was"
msgstr "Ihre Antwort war"
#: apps/quiz/templates/question.html:47
msgid "of"
msgstr "von"
#: apps/quiz/templates/question.html:52
msgid "Question category"
msgstr "Fragenkategorie"
#: apps/quiz/templates/question.html:74
msgid "Check"
msgstr "Überprüfung"
#: apps/quiz/templates/quiz/category_list.html:3
#: apps/quiz/templates/quiz/quiz_list.html:3
#: apps/quiz/templates/quiz/sitting_list.html:3
msgid "All Quizzes"
msgstr "Alle Quizze"
#: apps/quiz/templates/quiz/category_list.html:6
msgid "Category list"
msgstr "Liste der Kategorien"
#: apps/quiz/templates/quiz/quiz_detail.html:11
msgid "You will only get one attempt at this quiz"
msgstr "Sie haben nur einen Versuch bei dieser Prüfung"
#: apps/quiz/templates/quiz/quiz_detail.html:16
msgid "Start quiz"
msgstr "Quiz beginnen"
#: apps/quiz/templates/quiz/quiz_list.html:6
msgid "List of quizzes"
msgstr "Liste der Quizze"
#: apps/quiz/templates/quiz/quiz_list.html:14
msgid "Exam"
msgstr "Prüfung"
#: apps/quiz/templates/quiz/quiz_list.html:15
msgid "Single attempt"
msgstr "Einzelversuch"
#: apps/quiz/templates/quiz/quiz_list.html:31
#: apps/quiz/templates/quiz/sitting_list.html:42
msgid "View details"
msgstr "Details ansehen"
#: apps/quiz/templates/quiz/quiz_list.html:41
msgid "There are no available quizzes"
msgstr "Es sind keine Prüfungen verfügbar"
#: apps/quiz/templates/quiz/sitting_detail.html:5
msgid "Result of"
msgstr "Resultat von"
#: apps/quiz/templates/quiz/sitting_detail.html:5
msgid "for"
msgstr "für"
#: apps/quiz/templates/quiz/sitting_detail.html:9
msgid "Quiz title"
msgstr "Quiztitel"
#: apps/quiz/templates/quiz/sitting_detail.html:14
#: apps/quiz/templates/quiz/sitting_list.html:15
msgid "Completed"
msgstr "Vollständig"
#: apps/quiz/templates/quiz/sitting_detail.html:22
msgid "User answer"
msgstr "Anwender Antwort"
#: apps/quiz/templates/quiz/sitting_detail.html:41
msgid "incorrect"
msgstr "falsch"
#: apps/quiz/templates/quiz/sitting_detail.html:43
msgid "Correct"
msgstr "Richtig"
#: apps/quiz/templates/quiz/sitting_detail.html:49
msgid "Toggle whether correct"
msgstr "Markieren wenn richtig"
#: apps/quiz/templates/quiz/sitting_list.html:6
msgid "List of complete exams"
msgstr "Liste der abgelegten Prüfungen"
#: apps/quiz/templates/quiz/sitting_list.html:28
msgid "Filter"
msgstr "Filter"
#: apps/quiz/templates/quiz/sitting_list.html:52
msgid "There are no matching quizzes"
msgstr "Es gibt keine übereinstimmenden Prüfungen"
#: apps/quiz/templates/result.html:7
msgid "Exam Results for"
msgstr "Prüfungsergebnisse für"
#: apps/quiz/templates/result.html:32
msgid "Exam results"
msgstr "Prüfungsergebnisse"
#: apps/quiz/templates/result.html:34
msgid "Exam title"
msgstr "Prüfungstitel"
#: apps/quiz/templates/result.html:38
msgid "You answered"
msgstr "Ihre Antwort"
#: apps/quiz/templates/result.html:38
msgid "questions correctly out of"
msgstr "Fragen richtig von "
#: apps/quiz/templates/result.html:38
msgid "giving you"
msgstr "Sie erhalten"
#: apps/quiz/templates/result.html:38
msgid "percent correct"
msgstr "Prozent korrekt"
#: apps/quiz/templates/result.html:48
msgid "Review the questions below and try the exam again in the future"
msgstr "Sehen Sie sich die folgenden Fragen an und wiederholen Sie die Prüfung"
#: apps/quiz/templates/result.html:52
msgid ""
"The result of this exam will be stored in your progress section so you can "
"review and monitor your progression"
msgstr ""
"Das Resultat dieser Prüfung wird gespeichert und Sie können sich Ihren "
"Fortschritt ansehen"
#: apps/quiz/templates/result.html:66
msgid "Your session score is"
msgstr "Der Punktestand dieser Sitzung ist"
#: apps/quiz/templates/result.html:66
msgid "out of a possible"
msgstr "von möglichen"
#: apps/quiz/templates/result.html:84
msgid "Your answer"
msgstr "Ihre Antwort"
#: apps/quiz/templates/single_complete.html:13
msgid "You have already sat this exam and only one sitting is permitted"
msgstr ""
"Sie haben diese Prüfung schon abgelegt und dies kann nur einmal erfolgen"
#: apps/quiz/templates/single_complete.html:15
msgid "This exam is only accessible to signed in users"
msgstr "Diese Prüfung ist angemeldeten Anwendern vorbehalten"
#: apps/quiz/templates/view_quiz_category.html:3
msgid "Quizzes related to"
msgstr "Quizze bezogen auf"
#: apps/quiz/templates/view_quiz_category.html:6
msgid "Quizzes in the"
msgstr "Quizze in der"
#: apps/quiz/templates/view_quiz_category.html:6
msgid "category"
msgstr "Kategorie"
#: apps/quiz/templates/view_quiz_category.html:20
msgid "There are no quizzes"
msgstr "Es gibt keine Quizze"

Binary file not shown.

View File

@ -0,0 +1,473 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: django-quiz\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-01 11:37+0400\n"
"PO-Revision-Date: 2016-03-24 16:26-0500\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.4\n"
"Language-Team: \n"
"Last-Translator: \n"
"Language: es_CO\n"
#: admin.py:31 admin.py:33 models.py:576
msgid "Questions"
msgstr "Preguntas"
#: models.py:30 models.py:37 models.py:53 models.py:83 models.py:545
#: templates/progress.html:19 templates/quiz/quiz_detail.html:9
#: templates/quiz/quiz_list.html:13 templates/quiz/sitting_detail.html:10
msgid "Category"
msgstr "Categoría"
#: models.py:38
msgid "Categories"
msgstr "Categorías"
#: models.py:48 models.py:58 models.py:550
msgid "Sub-Category"
msgstr "Sub-Categoría"
#: models.py:59
msgid "Sub-Categories"
msgstr "Sub-Categorías"
#: models.py:69 templates/quiz/quiz_list.html:12
msgid "Title"
msgstr "Título"
#: models.py:73
msgid "Description"
msgstr "Descripción"
#: models.py:74
msgid "a description of the quiz"
msgstr "una descripción del quiz"
#: models.py:78
msgid "a user friendly url"
msgstr "una url amigable para el usuario"
#: models.py:79
msgid "user friendly url"
msgstr "url amigable para el usuario"
#: models.py:87
msgid "Random Order"
msgstr "Orden Aleatorio"
#: models.py:88
msgid "Display the questions in a random order or as they are set?"
msgstr "¿Muestra las preguntas en un orden aleatorio o como se crearon?"
#: models.py:93
msgid "Max Questions"
msgstr "Número Máximo de Preguntas"
#: models.py:94
msgid "Number of questions to be answered on each attempt."
msgstr "Número de preguntas a ser resueltas por cada intento"
#: models.py:98
msgid ""
"Correct answer is NOT shown after question. Answers displayed at the end."
msgstr ""
"Respuestas correctas NO serán mostradas después de la pregunta. Las "
"respuestas se mostrarán al final"
#: models.py:100
msgid "Answers at end"
msgstr "Respuestas al final"
#: models.py:104
msgid ""
"If yes, the result of each attempt by a user will be stored. Necessary for "
"marking."
msgstr ""
"Si escoge si, el resultado de cada intento por usuario será guardado. "
"Necesario para marcar"
#: models.py:107
msgid "Exam Paper"
msgstr "Papel del Exámen"
#: models.py:111
msgid ""
"If yes, only one attempt by a user will be permitted. Non users cannot sit "
"this exam."
msgstr ""
"Si escoge si, solo un intento será permitido por usuario. Los que no sean "
"usuarios no tomarán este exámen"
#: models.py:114
msgid "Single Attempt"
msgstr "Un Intento"
#: apps/quiz/models.py:116
msgid "Pass Mark"
msgstr "Mínimo exigido para aprobar"
#: models.py:118
msgid "Percentage required to pass exam."
msgstr "Porcentaje requerido para aprobar el examen"
#: models.py:122
msgid "Displayed if user passes."
msgstr "Mostrar si el usuario pasa"
#: models.py:123
msgid "Success Text"
msgstr "Texto de Éxito"
#: models.py:126
msgid "Fail Text"
msgstr "Texto de Fracaso"
#: models.py:127
msgid "Displayed if user fails."
msgstr "Mostrar si el usuario fracasa"
#: models.py:131
msgid "Draft"
msgstr "Borrador"
#: models.py:132
msgid ""
"If yes, the quiz is not displayed in the quiz list and can only be taken by "
"users who can edit quizzes."
msgstr ""
"Si escoge si, este quiz no será mostrado en la lista de quizes y solo podrá "
"ser tomado por usuarios que puedan editar quizes"
#: models.py:152 models.py:372 models.py:541
#: templates/quiz/sitting_list.html:14
msgid "Quiz"
msgstr "Quiz"
#: models.py:153
msgid "Quizzes"
msgstr "Quizes"
#: models.py:192 models.py:370 templates/quiz/sitting_detail.html:13
#: templates/quiz/sitting_list.html:13
msgid "User"
msgstr "Usuario"
#: models.py:195 templates/progress.html:60
#: templates/quiz/sitting_detail.html:15 templates/quiz/sitting_list.html:16
msgid "Score"
msgstr "Puntaje"
#: models.py:200
msgid "User Progress"
msgstr "Progreso de Usuario"
#: models.py:201
msgid "User progress records"
msgstr "Registros de progreso del usuario"
#: models.py:261
msgid "error"
msgstr "error"
#: models.py:261
msgid "category does not exist or invalid score"
msgstr "categoría no existe o puntaje inválido"
#: models.py:375
msgid "Question Order"
msgstr "Orden de las Preguntas"
#: models.py:378
msgid "Question List"
msgstr "Lista de Preguntas"
#: models.py:381
msgid "Incorrect questions"
msgstr "Preguntas Incorrectas"
#: models.py:383
msgid "Current Score"
msgstr "Puntaje Actual"
#: models.py:386
msgid "Complete"
msgstr "Completo"
#: models.py:389
msgid "User Answers"
msgstr "Respuestas de los Usuarios"
#: models.py:392
msgid "Start"
msgstr "Inicio"
#: models.py:394
msgid "End"
msgstr "Fin"
#: models.py:399
msgid "Can see completed exams."
msgstr "Puede ver exámenes completados"
#: models.py:557
msgid "Figure"
msgstr "Figura"
#: models.py:561
msgid "Enter the question text that you want displayed"
msgstr "Ingresa el texto de la pregunta que quiere que aparezca"
#: models.py:563 models.py:575 templates/question.html:47
#: templates/quiz/sitting_detail.html:21
msgid "Question"
msgstr "Pregunta"
#: models.py:567
msgid "Explanation to be shown after the question has been answered."
msgstr ""
"Explicación que debe ser mostrada después de que la pregunta fue respondida"
#: models.py:570 templates/question.html:32 templates/result.html:21
#: templates/result.html.py:87
msgid "Explanation"
msgstr "Explicación"
#: templates/base.html:7
msgid "Example Quiz Website"
msgstr "Sitio Web Ejemplo Quiz"
#: templates/correct_answer.html:6
msgid "You answered the above question incorrectly"
msgstr "Ha respondido a la pregunta anterior de forma incorrecta"
#: templates/correct_answer.html:16
msgid "This is the correct answer"
msgstr "Esta es la respuesta correcta"
#: templates/correct_answer.html:23
msgid "This was your answer."
msgstr "Esta fue tu respuesta"
#: templates/progress.html:6
msgid "Progress Page"
msgstr "Página de Progreso"
#: templates/progress.html:7
msgid "User Progress Page"
msgstr "Página Progreso de Usuario"
#: templates/progress.html:13
msgid "Question Category Scores"
msgstr "Pregunta Puntajes de las Categorías"
#: templates/progress.html:20
msgid "Correctly answererd"
msgstr "Correctamente contestada"
#: templates/progress.html:21
msgid "Incorrect"
msgstr "Incorrecta"
#: templates/progress.html:50
msgid "Previous exam papers"
msgstr "Exámenes anteriores"
#: templates/progress.html:52
msgid "Below are the results of exams that you have sat."
msgstr "Abajo están los resultados de los exámenes que se ha realizado."
#: templates/progress.html:59
msgid "Quiz Title"
msgstr "Título del Quiz"
#: templates/progress.html:61
msgid "Possible Score"
msgstr "Puntos posibles"
#: templates/question.html:13 templates/result.html:13
msgid "The previous question"
msgstr "La pregunta anterior"
#: templates/question.html:22
msgid "Your answer was"
msgstr "Tu respuesta fue"
#: templates/question.html:47
msgid "of"
msgstr "de"
#: templates/question.html:52
msgid "Question category"
msgstr "Categoría de la pregunta"
#: templates/question.html:74
msgid "Check"
msgstr "Verificar"
#: templates/quiz/category_list.html:3 templates/quiz/quiz_list.html:3
#: templates/quiz/sitting_list.html:3
msgid "All Quizzes"
msgstr "Todos los Quizes"
#: templates/quiz/category_list.html:6
msgid "Category list"
msgstr "Lista de Categorías"
#: templates/quiz/quiz_detail.html:11
msgid "You will only get one attempt at this quiz"
msgstr "Solo se tendrá un intento para este quiz"
#: templates/quiz/quiz_detail.html:16
msgid "Start quiz"
msgstr "Empezar quiz"
#: templates/quiz/quiz_list.html:6
msgid "List of quizzes"
msgstr "Lista de quizes"
#: templates/quiz/quiz_list.html:14
msgid "Exam"
msgstr "Examen"
#: templates/quiz/quiz_list.html:15
msgid "Single attempt"
msgstr "Un solo intento"
#: templates/quiz/quiz_list.html:31 templates/quiz/sitting_list.html:42
msgid "View details"
msgstr "Ver detalles"
#: templates/quiz/quiz_list.html:41
msgid "There are no available quizzes"
msgstr "No hay quizes disponibles"
#: templates/quiz/sitting_detail.html:5
msgid "Result of"
msgstr "Resultado de"
#: templates/quiz/sitting_detail.html:5
msgid "for"
msgstr "para"
#: templates/quiz/sitting_detail.html:9
msgid "Quiz title"
msgstr "Título de Quiz"
#: templates/quiz/sitting_detail.html:14 templates/quiz/sitting_list.html:15
msgid "Completed"
msgstr "Completado"
#: templates/quiz/sitting_detail.html:22
msgid "User answer"
msgstr "Respuesta de usuario"
#: templates/quiz/sitting_detail.html:41
msgid "incorrect"
msgstr "Incorrecta"
#: templates/quiz/sitting_detail.html:43
msgid "Correct"
msgstr "Correcto"
#: templates/quiz/sitting_detail.html:49
msgid "Toggle whether correct"
msgstr "Alternar si es correcta"
#: templates/quiz/sitting_list.html:6
msgid "List of complete exams"
msgstr "Lista de examenes completos"
#: templates/quiz/sitting_list.html:28
msgid "Filter"
msgstr "Filtro"
#: templates/quiz/sitting_list.html:52
msgid "There are no matching quizzes"
msgstr "No hay quizes que coincidan"
#: templates/result.html:7
msgid "Exam Results for"
msgstr "Resultados del exámen de"
#: templates/result.html:32
msgid "Exam results"
msgstr "Resultados del exámen"
#: templates/result.html:34
msgid "Exam title"
msgstr "Título del exámen"
#: templates/result.html:38
msgid "You answered"
msgstr "Tu respondiste"
#: templates/result.html:38
msgid "questions correctly out of"
msgstr "preguntas correctas de cada"
#: templates/result.html:38
msgid "giving you"
msgstr "darle"
#: templates/result.html:38
msgid "percent correct"
msgstr "porcentaje de respuestas correctas"
#: templates/result.html:48
msgid "Review the questions below and try the exam again in the future"
msgstr ""
"Revisa las preguntas a continuación e intente el examen de nuevo en el "
"futuro"
#: templates/result.html:52
msgid ""
"The result of this exam will be stored in your progress section so you can "
"review and monitor your progression"
msgstr ""
"El resultado de este examen se almacenará en su sección de progreso para "
"que pueda revisar y supervisar su progreso"
#: templates/result.html:66
msgid "Your session score is"
msgstr "Su puntuación de sesión es"
#: templates/result.html:66
msgid "out of a possible"
msgstr "de un total posible"
#: templates/result.html:84
msgid "Your answer"
msgstr "Tu respuesta"
#: templates/single_complete.html:13
msgid "You have already sat this exam and only one sitting is permitted"
msgstr "Usted ya ha enviado este examen, y sólo se permite una sola sesión"
#: templates/single_complete.html:15
msgid "This exam is only accessible to signed in users"
msgstr "Este examen es sólo accesible para los usuarios inscritos"
#: templates/view_quiz_category.html:3
msgid "Quizzes related to"
msgstr "Quizes relacionados con"
#: templates/view_quiz_category.html:6
msgid "Quizzes in the"
msgstr "Quizes en el"
#: templates/view_quiz_category.html:6
msgid "category"
msgstr "categoría"
#: templates/view_quiz_category.html:20
msgid "There are no quizzes"
msgstr "No hay quizes"

Binary file not shown.

View File

@ -0,0 +1,330 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-28 17:45+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: quiz/templates/base.html:8
msgid "Garage Numérique Quizzes"
msgstr "Quiz du Garage Numérique"
#: quiz/templates/base.html:27
msgid "Hi "
msgstr "Bonjour"
#: quiz/templates/base.html:28
msgid "Disconnect"
msgstr "Se déconnecter"
#: quiz/templates/base.html:29
#, fuzzy
#| msgid "User Progress"
msgid "Progress"
msgstr "Progression de l'utilisateur"
#: quiz/templates/base.html:31
#, fuzzy
#| msgid "Result of"
msgid "Results"
msgstr "Resultat de"
#: quiz/templates/base.html:35
msgid "Connect"
msgstr "Se connecter"
#: quiz/templates/correct_answer.html:6
msgid "You answered incorrectly to this answer"
msgstr "Vous avez répondu incorrectement à cette question"
#: quiz/templates/correct_answer.html:16
#, fuzzy
#| msgid "This is the correct answer"
msgid "It's a correct answer"
msgstr "C'est la bonne réponse"
#: quiz/templates/correct_answer.html:23 quiz/templates/question.html:22
msgid "Your answer was"
msgstr "Voici la réponse que vous avez donnée"
#: quiz/templates/progress.html:6
msgid "Progress Page"
msgstr "Page de progression"
#: quiz/templates/progress.html:7
msgid "User Progress Page"
msgstr "Page de progression de l'utilisateur"
#: quiz/templates/progress.html:13
msgid "Question Category Scores"
msgstr "Scores par catégorie"
#: quiz/templates/progress.html:19 quiz/templates/quiz/quiz_detail.html:9
#: quiz/templates/quiz/quiz_list.html:13
msgid "Category"
msgstr "Categorie"
#: quiz/templates/progress.html:20
msgid "Correctly answererd"
msgstr "Correctement répondues"
#: quiz/templates/progress.html:21 quiz/templates/quiz/sitting_detail.html:45
msgid "Incorrect"
msgstr "Incorrecte"
#: quiz/templates/progress.html:50
msgid "Previous exam papers"
msgstr "Examens précédents"
#: quiz/templates/progress.html:52
msgid "Below are the results of exams that you have sat."
msgstr "Voici les résultats des examens que vous avez réalisés."
#: quiz/templates/progress.html:59
msgid "Quiz Title"
msgstr "Titre du quiz"
#: quiz/templates/progress.html:60 quiz/templates/quiz/sitting_detail.html:18
#: quiz/templates/quiz/sitting_list.html:20
msgid "Score"
msgstr "Score"
#: quiz/templates/progress.html:61
msgid "Possible Score"
msgstr "Score max."
#: quiz/templates/question.html:13 quiz/templates/result.html:13
msgid "The previous question"
msgstr "La question précédente"
#: quiz/templates/question.html:32 quiz/templates/result.html:21
#: quiz/templates/result.html:87
msgid "Explanation"
msgstr "Explication"
#: quiz/templates/question.html:47 quiz/templates/quiz/sitting_detail.html:24
msgid "Question"
msgstr "Question"
#: quiz/templates/question.html:47
msgid "of"
msgstr "de"
#: quiz/templates/question.html:52
msgid "Question category"
msgstr "Catégorie de la question"
#: quiz/templates/question.html:74
msgid "Check"
msgstr "Verifier"
#: quiz/templates/quiz/category_list.html:3
#: quiz/templates/quiz/sitting_list.html:3
msgid "All Quizzes"
msgstr "Tous les quiz"
#: quiz/templates/quiz/category_list.html:6
msgid "Category list"
msgstr "Liste de catégories"
#: quiz/templates/quiz/quiz_detail.html:11
msgid "You will only get one attempt at this quiz"
msgstr "Vous n'aurez qu'un seul essai pour ce quiz"
#: quiz/templates/quiz/quiz_detail.html:16
msgid "Start quiz"
msgstr "Commencer le quiz"
#: quiz/templates/quiz/quiz_list.html:3
#, fuzzy
#| msgid "List of quizzes"
msgid "Tout les quizzs"
msgstr "Liste des quizs"
#: quiz/templates/quiz/quiz_list.html:6
msgid "List of quizzes"
msgstr "Liste des quizs"
#: quiz/templates/quiz/quiz_list.html:12
msgid "Title"
msgstr "Titre"
#: quiz/templates/quiz/quiz_list.html:14
msgid "Exam"
msgstr "Examen"
#: quiz/templates/quiz/quiz_list.html:15
msgid "Single attempt"
msgstr "Un seul essai"
#: quiz/templates/quiz/quiz_list.html:31
#: quiz/templates/quiz/sitting_list.html:46
msgid "View details"
msgstr "Voir les détails"
#: quiz/templates/quiz/quiz_list.html:41
msgid "There are no available quizzes"
msgstr "Il n'y a pas de quiz disponibles"
#: quiz/templates/quiz/sitting_detail.html:5
#, fuzzy
#| msgid "Result of"
msgid "Results of "
msgstr "Resultat de"
#: quiz/templates/quiz/sitting_detail.html:5
msgid "for "
msgstr "pour "
#: quiz/templates/quiz/sitting_detail.html:12
msgid "Quiz title"
msgstr "Titre du quiz"
#: quiz/templates/quiz/sitting_detail.html:13
#, fuzzy
#| msgid "Category"
msgid "Catégory"
msgstr "Categorie"
#: quiz/templates/quiz/sitting_detail.html:16
#: quiz/templates/quiz/sitting_list.html:17
msgid "User"
msgstr "Utilisateur"
#: quiz/templates/quiz/sitting_detail.html:17
#: quiz/templates/quiz/sitting_list.html:19
msgid "Completed"
msgstr "Completé"
#: quiz/templates/quiz/sitting_detail.html:25
msgid "User answer"
msgstr "Réponse de l'utilisateur"
#: quiz/templates/quiz/sitting_detail.html:47
msgid "Correct"
msgstr "Correcte"
#: quiz/templates/quiz/sitting_detail.html:60
#: quiz/templates/quiz/sitting_list.html:60
msgid "You don't have access to this page"
msgstr "Vous n'avez pas accès à cette page"
#: quiz/templates/quiz/sitting_detail.html:66
msgid "Toggle whether correct"
msgstr "[Dés]Activer si c'est correcte"
#: quiz/templates/quiz/sitting_list.html:10
msgid "List of complete exams"
msgstr "Liste des examens complétés"
#: quiz/templates/quiz/sitting_list.html:18
msgid "Quiz"
msgstr "Quiz"
#: quiz/templates/quiz/sitting_list.html:32
msgid "Filter"
msgstr "Filtre"
#: quiz/templates/quiz/sitting_list.html:56
msgid "There are no matching quizzes"
msgstr "Il n'y a pas de quiz correspondant"
#: quiz/templates/result.html:7
#, fuzzy
#| msgid "Exam Results for"
msgid "Exam results for"
msgstr "Résultats de l'examen de"
#: quiz/templates/result.html:32
msgid "Exam results"
msgstr "Résultats de l'examen"
#: quiz/templates/result.html:34
msgid "Exam title"
msgstr "Titre de l'examen"
#: quiz/templates/result.html:38
msgid "You answered"
msgstr "Vous avez donné la bonne réponse pour "
#: quiz/templates/result.html:38
#, fuzzy
#| msgid "questions correctly out of"
msgid "questions correctly on "
msgstr "questions sur un total de"
#: quiz/templates/result.html:38
msgid "giving you"
msgstr "ce qui vous donne"
#: quiz/templates/result.html:38
#, fuzzy
#| msgid "This is the correct answer"
msgid " of correct answers"
msgstr "C'est la bonne réponse"
#: quiz/templates/result.html:48
msgid "Review the questions below and try the exam again in the future"
msgstr ""
"Revoyez les questions suivantes et essayez à nouveau l'examen une autre fois"
#: quiz/templates/result.html:52
msgid ""
"The result of this exam will be stored in your progress section so you can "
"review and monitor your progression"
msgstr ""
"Le résultat de cet examen sera enregistré pour que vous puissiez suivre "
"votre progression"
#: quiz/templates/result.html:66
msgid "Your session score is"
msgstr "Votre score pour cette session est"
#: quiz/templates/result.html:66
msgid "out of a possible"
msgstr "sur un maximum de"
#: quiz/templates/result.html:84
msgid "Your answer"
msgstr "Votre réponse"
#: quiz/templates/single_complete.html:13
msgid "You already did this quiz"
msgstr "Vous avez déjà éffectué ce quiz"
#: quiz/templates/single_complete.html:15
#, fuzzy
#| msgid "This exam is only accessible to signed in users"
msgid "This quiz is only accessible to authentified users"
msgstr "Cet examen n'est accessible qu'aux utilisateurs enregistrés"
#: quiz/templates/view_quiz_category.html:3
msgid "Quizzes related to"
msgstr "Quiz pour la catégorie"
#: quiz/templates/view_quiz_category.html:6
msgid "Quizzes in the"
msgstr "Quizs dans la catégorie"
#: quiz/templates/view_quiz_category.html:6
#, fuzzy
#| msgid "category"
msgid "category"
msgstr "catégorie"
#: quiz/templates/view_quiz_category.html:20
msgid "There are no quizzes"
msgstr "Il n'y a pas de quiz"

Binary file not shown.

View File

@ -0,0 +1,479 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-31 22:44+0000\n"
"PO-Revision-Date: 2015-10-31 22:43+0000\n"
"Last-Translator: b' <>'\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.6\n"
#: apps/quiz/models.py:30 apps/quiz/models.py:37 apps/quiz/models.py:53
#: apps/quiz/models.py:83 apps/quiz/models.py:545
#: apps/quiz/templates/progress.html:19
#: apps/quiz/templates/quiz/quiz_detail.html:9
#: apps/quiz/templates/quiz/quiz_list.html:13
#: apps/quiz/templates/quiz/sitting_detail.html:10
msgid "Category"
msgstr "Categoria"
#: apps/quiz/models.py:38
msgid "Categories"
msgstr "Categorie"
#: apps/quiz/models.py:48 apps/quiz/models.py:58 apps/quiz/models.py:550
msgid "Sub-Category"
msgstr "Sotto-Categoria"
#: apps/quiz/models.py:59
msgid "Sub-Categories"
msgstr "Sotto-categorie"
#: apps/quiz/models.py:69 apps/quiz/templates/quiz/quiz_list.html:12
msgid "Title"
msgstr "Titolo"
#: apps/quiz/models.py:73
msgid "Description"
msgstr "Descrizione"
#: apps/quiz/models.py:74
msgid "a description of the quiz"
msgstr "una descrizione del quiz"
#: apps/quiz/models.py:78
msgid "a user friendly url"
msgstr "un url amichevole"
#: apps/quiz/models.py:79
msgid "user friendly url"
msgstr "url amichevole"
#: apps/quiz/models.py:87
msgid "Random Order"
msgstr "Ordine Casuale"
#: apps/quiz/models.py:88
msgid "Display the questions in a random order or as they are set?"
msgstr ""
"Visualizzare le domande in un ordine casuale o nell'ordine in cui sono state "
"inserite?"
#: apps/quiz/models.py:93
msgid "Max Questions"
msgstr "Numero massimo di domande"
#: apps/quiz/models.py:94
msgid "Number of questions to be answered on each attempt."
msgstr "Numero di domande cui rispondere in ogni tentativo."
#: apps/quiz/models.py:98
msgid ""
"Correct answer is NOT shown after question. Answers displayed at the end."
msgstr ""
"La risposta corretta NON è visualizzata dopo la domanda. Le risposte vengono "
"visualizzate alla fine."
#: apps/quiz/models.py:100
msgid "Answers at end"
msgstr "Risposte alla fine"
#: apps/quiz/models.py:104
msgid ""
"If yes, the result of each attempt by a user will be stored. Necessary for "
"marking."
msgstr ""
"Se si, il risultato di ogni tentativo da parte di un utente verrà salvato. "
"Necessario per segnare."
#: apps/quiz/models.py:107
msgid "Exam Paper"
msgstr "Foglio dell'esame"
#: apps/quiz/models.py:111
msgid ""
"If yes, only one attempt by a user will be permitted. Non users cannot sit "
"this exam."
msgstr ""
"Se si, per ogni utente sarà permesso un solo tentativo. I non tutenti non "
"potranno sostenere l'esame."
#: apps/quiz/models.py:114
msgid "Single Attempt"
msgstr "Songolo tentativo"
#: apps/quiz/models.py:118
msgid "Percentage required to pass exam."
msgstr "Percentuale richiesta per superare l'esame."
#: apps/quiz/models.py:122
msgid "Displayed if user passes."
msgstr "Visualizzato se l'utente passa."
#: apps/quiz/models.py:123
msgid "Success Text"
msgstr "Testo Risposta Corretta"
#: apps/quiz/models.py:126
msgid "Fail Text"
msgstr "Test risposta Sbagliata"
#: apps/quiz/models.py:127
msgid "Displayed if user fails."
msgstr "Visualizzato se l'utente fallisce."
#: apps/quiz/models.py:131
msgid "Draft"
msgstr "Bozza"
#: apps/quiz/models.py:132
msgid ""
"If yes, the quiz is not displayed in the quiz list and can only be taken by "
"users who can edit quizzes."
msgstr ""
"Se sì, il quiz non viene visualizzato nell'elenco quiz e può essere "
"selezionato solo dagli utenti che possono modificare i quiz."
#: apps/quiz/models.py:152 apps/quiz/models.py:372 apps/quiz/models.py:541
#: apps/quiz/templates/quiz/sitting_list.html:14
msgid "Quiz"
msgstr "Quiz"
#: apps/quiz/models.py:153
msgid "Quizzes"
msgstr "Quiz"
#: apps/quiz/models.py:192 apps/quiz/models.py:370
#: apps/quiz/templates/quiz/sitting_detail.html:13
#: apps/quiz/templates/quiz/sitting_list.html:13
msgid "User"
msgstr "Utente"
#: apps/quiz/models.py:195 apps/quiz/templates/progress.html:60
#: apps/quiz/templates/quiz/sitting_detail.html:15
#: apps/quiz/templates/quiz/sitting_list.html:16
msgid "Score"
msgstr "Punteggio"
#: apps/quiz/models.py:200
msgid "User Progress"
msgstr "Progressi dell'utente"
#: apps/quiz/models.py:201
msgid "User progress records"
msgstr "registarzione progressi utente"
#: apps/quiz/models.py:261
msgid "error"
msgstr "errore"
#: apps/quiz/models.py:261
msgid "category does not exist or invalid score"
msgstr "categoria inesistente o punteggio non valido"
#: apps/quiz/models.py:375
msgid "Question Order"
msgstr "ordine Domande"
#: apps/quiz/models.py:378
msgid "Question List"
msgstr "Elenca domande"
#: apps/quiz/models.py:381
msgid "Incorrect questions"
msgstr "Domande sbagliate"
#: apps/quiz/models.py:383
msgid "Current Score"
msgstr "Punteggio Attuale"
#: apps/quiz/models.py:386
msgid "Complete"
msgstr "Completo"
#: apps/quiz/models.py:389
msgid "User Answers"
msgstr "Risposte utente"
#: apps/quiz/models.py:392
msgid "Start"
msgstr "Inizio"
#: apps/quiz/models.py:394
msgid "End"
msgstr "Fine"
#: apps/quiz/models.py:399
msgid "Can see completed exams."
msgstr "Puoi vedere gli esami completati."
#: apps/quiz/models.py:557
msgid "Figure"
msgstr "Immagine"
#: apps/quiz/models.py:561
msgid "Enter the question text that you want displayed"
msgstr "Inserisci il testo della domanda che desideri visualizzare"
#: apps/quiz/models.py:563 apps/quiz/models.py:575
#: apps/quiz/templates/question.html:47
#: apps/quiz/templates/quiz/sitting_detail.html:21
msgid "Question"
msgstr "Domanda"
#: apps/quiz/models.py:567
msgid "Explanation to be shown after the question has been answered."
msgstr ""
"Spiegazione da visulizzare dopo che è stata data la risposta alla domanda."
#: apps/quiz/models.py:570 apps/quiz/templates/question.html:32
#: apps/quiz/templates/result.html:21 apps/quiz/templates/result.html.py:87
msgid "Explanation"
msgstr "Spiegazione"
#: apps/quiz/models.py:576
msgid "Questions"
msgstr "Domande"
#: apps/quiz/templates/base.html:7
msgid "Example Quiz Website"
msgstr "Sito Quiz di esempio"
#: apps/quiz/templates/correct_answer.html:6
msgid "You answered the above question incorrectly"
msgstr "Hai risposto alla domanda di cui sopra in modo non corretto"
#: apps/quiz/templates/correct_answer.html:16
msgid "This is the correct answer"
msgstr "Questa è la risposta corretta"
#: apps/quiz/templates/correct_answer.html:23
msgid "This was your answer."
msgstr "Questa è stata la tua risposta "
#: apps/quiz/templates/progress.html:6
msgid "Progress Page"
msgstr "Pagina dei progressi"
#: apps/quiz/templates/progress.html:7
msgid "User Progress Page"
msgstr "Pagina dei progressi dell'utente"
#: apps/quiz/templates/progress.html:13
msgid "Question Category Scores"
msgstr "Punteggi Categoria Domanda "
#: apps/quiz/templates/progress.html:20
msgid "Correctly answererd"
msgstr "Risposto correttamente"
#: apps/quiz/templates/progress.html:21
msgid "Incorrect"
msgstr "Sbagliato"
#: apps/quiz/templates/progress.html:50
msgid "Previous exam papers"
msgstr "Fogli esami precedenti"
#: apps/quiz/templates/progress.html:52
msgid "Below are the results of exams that you have sat."
msgstr "Di seguito sono riportati i risultati degli esami sostenuti."
#: apps/quiz/templates/progress.html:59
msgid "Quiz Title"
msgstr "Titolo del Quiz"
#: apps/quiz/templates/progress.html:61
msgid "Possible Score"
msgstr "Possibile Punteggio"
#: apps/quiz/templates/question.html:13 apps/quiz/templates/result.html:13
msgid "The previous question"
msgstr "La domanda precedente"
#: apps/quiz/templates/question.html:22
msgid "Your answer was"
msgstr "La tua risposta è stata"
#: apps/quiz/templates/question.html:47
msgid "of"
msgstr "di"
#: apps/quiz/templates/question.html:52
msgid "Question category"
msgstr "Categoria domanda"
#: apps/quiz/templates/question.html:74
msgid "Check"
msgstr "Verifica"
#: apps/quiz/templates/quiz/category_list.html:3
#: apps/quiz/templates/quiz/quiz_list.html:3
#: apps/quiz/templates/quiz/sitting_list.html:3
msgid "All Quizzes"
msgstr "Tutti i Quiz"
#: apps/quiz/templates/quiz/category_list.html:6
msgid "Category list"
msgstr "Lista Categorie"
#: apps/quiz/templates/quiz/quiz_detail.html:11
msgid "You will only get one attempt at this quiz"
msgstr "Avrai un solo tentativo a disposizione per questo quiz"
#: apps/quiz/templates/quiz/quiz_detail.html:16
msgid "Start quiz"
msgstr "Comincia il Quiz"
#: apps/quiz/templates/quiz/quiz_list.html:6
msgid "List of quizzes"
msgstr "Lista dei quiz"
#: apps/quiz/templates/quiz/quiz_list.html:14
msgid "Exam"
msgstr "Esame"
#: apps/quiz/templates/quiz/quiz_list.html:15
msgid "Single attempt"
msgstr "Singolo tentivo"
#: apps/quiz/templates/quiz/quiz_list.html:31
#: apps/quiz/templates/quiz/sitting_list.html:42
msgid "View details"
msgstr "Vedi i dettagli"
#: apps/quiz/templates/quiz/quiz_list.html:41
msgid "There are no available quizzes"
msgstr "Non ci sono quiz disponibili"
#: apps/quiz/templates/quiz/sitting_detail.html:5
msgid "Result of"
msgstr "Risultato di"
#: apps/quiz/templates/quiz/sitting_detail.html:5
msgid "for"
msgstr "per"
#: apps/quiz/templates/quiz/sitting_detail.html:9
msgid "Quiz title"
msgstr "Titolo quiz"
#: apps/quiz/templates/quiz/sitting_detail.html:14
#: apps/quiz/templates/quiz/sitting_list.html:15
msgid "Completed"
msgstr "Completato"
#: apps/quiz/templates/quiz/sitting_detail.html:22
msgid "User answer"
msgstr "Risposta utente"
#: apps/quiz/templates/quiz/sitting_detail.html:41
msgid "incorrect"
msgstr "errato"
#: apps/quiz/templates/quiz/sitting_detail.html:43
msgid "Correct"
msgstr "Corretto"
#: apps/quiz/templates/quiz/sitting_detail.html:49
msgid "Toggle whether correct"
msgstr "Seleziona se corretto"
#: apps/quiz/templates/quiz/sitting_list.html:6
msgid "List of complete exams"
msgstr "Lista edgli esami completati"
#: apps/quiz/templates/quiz/sitting_list.html:28
msgid "Filter"
msgstr "Filtro"
#: apps/quiz/templates/quiz/sitting_list.html:52
msgid "There are no matching quizzes"
msgstr "Non ci sono quiz corrispondenti"
#: apps/quiz/templates/result.html:7
msgid "Exam Results for"
msgstr "Risultati esame per"
#: apps/quiz/templates/result.html:32
msgid "Exam results"
msgstr "Risultati esame"
#: apps/quiz/templates/result.html:34
msgid "Exam title"
msgstr "Titolo esame"
#: apps/quiz/templates/result.html:38
msgid "You answered"
msgstr "Hai risposto"
#: apps/quiz/templates/result.html:38
msgid "questions correctly out of"
msgstr "domande cui hai correttamente risposto su"
#: apps/quiz/templates/result.html:38
msgid "giving you"
msgstr "dandoti"
#: apps/quiz/templates/result.html:38
msgid "percent correct"
msgstr "percentuale corretta"
#: apps/quiz/templates/result.html:48
msgid "Review the questions below and try the exam again in the future"
msgstr "Riesamina le domande qui sotto e riprova l'esame in futuro"
#: apps/quiz/templates/result.html:52
msgid ""
"The result of this exam will be stored in your progress section so you can "
"review and monitor your progression"
msgstr ""
" Il risultato di questo esame verrà memorizzato nella sezione di avanzamento "
"in modo da poter verificare e monitorare i tuoi progressi"
#: apps/quiz/templates/result.html:66
msgid "Your session score is"
msgstr "Il punteggio di questa sessione è "
#: apps/quiz/templates/result.html:66
msgid "out of a possible"
msgstr "su un massimo di"
#: apps/quiz/templates/result.html:84
msgid "Your answer"
msgstr "La tua risposta"
#: apps/quiz/templates/single_complete.html:13
msgid "You have already sat this exam and only one sitting is permitted"
msgstr "Hai già sostenuto questo esame ed è consentito farlo solo una volta"
#: apps/quiz/templates/single_complete.html:15
msgid "This exam is only accessible to signed in users"
msgstr "Questo esame è disponibile solo per gli utenti collegati"
#: apps/quiz/templates/view_quiz_category.html:3
msgid "Quizzes related to"
msgstr "Quiz collegati a"
#: apps/quiz/templates/view_quiz_category.html:6
msgid "Quizzes in the"
msgstr "Quiz nella"
#: apps/quiz/templates/view_quiz_category.html:6
msgid "category"
msgstr "categoria"
#: apps/quiz/templates/view_quiz_category.html:20
msgid "There are no quizzes"
msgstr "Non ci sono quiz"

Binary file not shown.

View File

@ -0,0 +1,464 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: django-quiz\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-01 11:37+0400\n"
"PO-Revision-Date: 2015-08-21 19:40+0500\n"
"Last-Translator: Eugena Mihailikova <eugena.mihailikova@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 1.5.4\n"
#: admin.py:31 admin.py:33 models.py:576
msgid "Questions"
msgstr "Вопросы"
#: models.py:30 models.py:37 models.py:53 models.py:83 models.py:545
#: templates/progress.html:19 templates/quiz/quiz_detail.html:9
#: templates/quiz/quiz_list.html:13 templates/quiz/sitting_detail.html:10
msgid "Category"
msgstr "Категория"
#: models.py:38
msgid "Categories"
msgstr "Категории"
#: models.py:48 models.py:58 models.py:550
msgid "Sub-Category"
msgstr "Подкатегория"
#: models.py:59
msgid "Sub-Categories"
msgstr "Подкатегории"
#: models.py:69 templates/quiz/quiz_list.html:12
msgid "Title"
msgstr "Название"
#: models.py:73
msgid "Description"
msgstr "Описание"
#: models.py:74
msgid "a description of the quiz"
msgstr "описание теста"
#: models.py:78
msgid "a user friendly url"
msgstr "url теста"
#: models.py:79
msgid "user friendly url"
msgstr "url теста"
#: models.py:87
msgid "Random Order"
msgstr "Случайный порядок"
#: models.py:88
msgid "Display the questions in a random order or as they are set?"
msgstr "Отображать вопросы в случайном порядке или в порядке добавления?"
#: models.py:93
msgid "Max Questions"
msgstr "Максимальное количество вопросов"
#: models.py:94
msgid "Number of questions to be answered on each attempt."
msgstr ""
"Количество вопросов, на которые должны быть даны ответы при каждой попытке"
#: models.py:98
msgid ""
"Correct answer is NOT shown after question. Answers displayed at the end."
msgstr ""
"Правильный ответ НЕ показан после вопроса. Ответы отображаются после "
"прохождения теста"
#: models.py:100
msgid "Answers at end"
msgstr "Ответы в конце"
#: models.py:104
msgid ""
"If yes, the result of each attempt by a user will be stored. Necessary for "
"marking."
msgstr "Если отмечено, результаты каждой попытки пользователя будет сохранен"
#: models.py:107
msgid "Exam Paper"
msgstr "Экзаменационный лист"
#: models.py:111
msgid ""
"If yes, only one attempt by a user will be permitted. Non users cannot sit "
"this exam."
msgstr "Если отмечено, пользователю будет разрешена только одна попытка"
#: models.py:114
msgid "Single Attempt"
msgstr "Единственная попытка"
#: models.py:118
msgid "Percentage required to pass exam."
msgstr "Процент правильных ответов для прохождения теста"
#: models.py:122
msgid "Displayed if user passes."
msgstr "Отображается, если пользователь успешно прошел тест"
#: models.py:123
msgid "Success Text"
msgstr "Текст в случае успеха"
#: models.py:126
msgid "Fail Text"
msgstr "Текст в случае неудачи"
#: models.py:127
msgid "Displayed if user fails."
msgstr "Отображается, если пользователь провалил тест"
#: models.py:131
msgid "Draft"
msgstr "Черновик"
#: models.py:132
msgid ""
"If yes, the quiz is not displayed in the quiz list and can only be taken by "
"users who can edit quizzes."
msgstr "Если отмечено, то не отображается в публичном списке и может быть "
"взято только пользователями с соответствующим правом"
#: models.py:152 models.py:372 models.py:541
#: templates/quiz/sitting_list.html:14
msgid "Quiz"
msgstr "Тест"
#: models.py:153
msgid "Quizzes"
msgstr "Тесты"
#: models.py:192 models.py:370 templates/quiz/sitting_detail.html:13
#: templates/quiz/sitting_list.html:13
msgid "User"
msgstr "Пользователь"
#: models.py:195 templates/progress.html:60
#: templates/quiz/sitting_detail.html:15 templates/quiz/sitting_list.html:16
msgid "Score"
msgstr "Баллы"
#: models.py:200
msgid "User Progress"
msgstr "Прогресс пользователя"
#: models.py:201
msgid "User progress records"
msgstr "Прогресс пользователя"
#: models.py:261
msgid "error"
msgstr "ошибка"
#: models.py:261
msgid "category does not exist or invalid score"
msgstr "категории не существует или недопустимый балл"
#: models.py:375
msgid "Question Order"
msgstr "Порядок вопросов"
#: models.py:378
msgid "Question List"
msgstr "Список вопросов"
#: models.py:381
msgid "Incorrect questions"
msgstr "Вопросы, на которые дан неверный ответ"
#: models.py:383
msgid "Current Score"
msgstr "Текущий балл"
#: models.py:386
msgid "Complete"
msgstr "Завершен"
#: models.py:389
msgid "User Answers"
msgstr "Ответы пользователя"
#: models.py:392
msgid "Start"
msgstr "Начало"
#: models.py:394
msgid "End"
msgstr "Окончание"
#: models.py:399
msgid "Can see completed exams."
msgstr "Может просматривать оконченные тесты"
#: models.py:557
msgid "Figure"
msgstr "Рисунок"
#: models.py:561
msgid "Enter the question text that you want displayed"
msgstr "Введите текст вопроса, который должен отобразиться"
#: models.py:563 models.py:575 templates/question.html:47
#: templates/quiz/sitting_detail.html:21
msgid "Question"
msgstr "Вопрос"
#: models.py:567
msgid "Explanation to be shown after the question has been answered."
msgstr "Объяснение показывается после того, как дан ответ на вопрос"
#: models.py:570 templates/question.html:32 templates/result.html:21
#: templates/result.html.py:87
msgid "Explanation"
msgstr "Объяснение"
#: templates/base.html:7
msgid "Example Quiz Website"
msgstr "Тесты"
#: templates/correct_answer.html:6
msgid "You answered the above question incorrectly"
msgstr "Вы дали неверный ответ"
#: templates/correct_answer.html:16
msgid "This is the correct answer"
msgstr "Это правильный ответ"
#: templates/correct_answer.html:23
msgid "This was your answer."
msgstr "Это был ваш ответ"
#: templates/progress.html:6
msgid "Progress Page"
msgstr "Страница прогесса"
#: templates/progress.html:7
msgid "User Progress Page"
msgstr "Страница прогресса пользователя"
#: templates/progress.html:13
msgid "Question Category Scores"
msgstr "Баллы по категориям вопросов"
#: templates/progress.html:20
msgid "Correctly answererd"
msgstr "Верных ответов"
#: templates/progress.html:21
msgid "Incorrect"
msgstr "Неверных ответов"
#: templates/progress.html:50
msgid "Previous exam papers"
msgstr "Список предыдущих экзаменов"
#: templates/progress.html:52
msgid "Below are the results of exams that you have sat."
msgstr "Ниже представлены результаты пройденных Вами тестов"
#: templates/progress.html:59
msgid "Quiz Title"
msgstr "Название теста"
#: templates/progress.html:61
msgid "Possible Score"
msgstr "Возможный балл"
#: templates/question.html:13 templates/result.html:13
msgid "The previous question"
msgstr "Предыдущий вопрос"
#: templates/question.html:22
msgid "Your answer was"
msgstr "Ваш ответ был"
#: templates/question.html:47
msgid "of"
msgstr "из"
#: templates/question.html:52
msgid "Question category"
msgstr "Категория вопроса"
#: templates/question.html:74
msgid "Check"
msgstr "Ответить"
#: templates/quiz/category_list.html:3 templates/quiz/quiz_list.html:3
#: templates/quiz/sitting_list.html:3
msgid "All Quizzes"
msgstr "Все тесты"
#: templates/quiz/category_list.html:6
msgid "Category list"
msgstr "Список категорий"
#: templates/quiz/quiz_detail.html:11
msgid "You will only get one attempt at this quiz"
msgstr "У вас есть одна попытка для прохождения данного теста"
#: templates/quiz/quiz_detail.html:16
msgid "Start quiz"
msgstr "Начать тест"
#: templates/quiz/quiz_list.html:6
msgid "List of quizzes"
msgstr "Список тестов"
#: templates/quiz/quiz_list.html:14
msgid "Exam"
msgstr "Тестирование"
#: templates/quiz/quiz_list.html:15
msgid "Single attempt"
msgstr "Единственная попытка"
#: templates/quiz/quiz_list.html:31 templates/quiz/sitting_list.html:42
msgid "View details"
msgstr "Подробнее"
#: templates/quiz/quiz_list.html:41
msgid "There are no available quizzes"
msgstr "Доступных тестов нет"
#: templates/quiz/sitting_detail.html:5
msgid "Result of"
msgstr "Результаты"
#: templates/quiz/sitting_detail.html:5
msgid "for"
msgstr "для"
#: templates/quiz/sitting_detail.html:9
msgid "Quiz title"
msgstr "Назвние теста"
#: templates/quiz/sitting_detail.html:14 templates/quiz/sitting_list.html:15
msgid "Completed"
msgstr "Завершено"
#: templates/quiz/sitting_detail.html:22
msgid "User answer"
msgstr "Ответ пользователя"
#: templates/quiz/sitting_detail.html:41
msgid "incorrect"
msgstr "Неверно"
#: templates/quiz/sitting_detail.html:43
msgid "Correct"
msgstr "Верно"
#: templates/quiz/sitting_detail.html:49
msgid "Toggle whether correct"
msgstr "Изменить результат"
#: templates/quiz/sitting_list.html:6
msgid "List of complete exams"
msgstr "Список завершенных тестов"
#: templates/quiz/sitting_list.html:28
msgid "Filter"
msgstr "Фильтр"
#: templates/quiz/sitting_list.html:52
msgid "There are no matching quizzes"
msgstr "Подходящих тестов нет"
#: templates/result.html:7
msgid "Exam Results for"
msgstr "Результат теста для"
#: templates/result.html:32
msgid "Exam results"
msgstr "Результаты тестирования"
#: templates/result.html:34
msgid "Exam title"
msgstr "Название теста"
#: templates/result.html:38
msgid "You answered"
msgstr "Ваш результат"
#: templates/result.html:38
msgid "questions correctly out of"
msgstr "правильных ответов из"
#: templates/result.html:38
msgid "giving you"
msgstr "вы дали"
#: templates/result.html:38
msgid "percent correct"
msgstr "процент правильных ответов"
#: templates/result.html:48
msgid "Review the questions below and try the exam again in the future"
msgstr ""
"Просмотрите вопросы, представленные ниже и попробуйте пройти тест еще раз"
#: templates/result.html:52
msgid ""
"The result of this exam will be stored in your progress section so you can "
"review and monitor your progression"
msgstr ""
"Результаты данного экзамена будут сохранены. Вы сможете просматривать ваш "
"прогресс"
#: templates/result.html:66
msgid "Your session score is"
msgstr "Балл вашей сессии"
#: templates/result.html:66
msgid "out of a possible"
msgstr "из возможных"
#: templates/result.html:84
msgid "Your answer"
msgstr "Ваш ответ"
#: templates/single_complete.html:13
msgid "You have already sat this exam and only one sitting is permitted"
msgstr "Вы уже прошли данный тест. Разрешена только одна попытка"
#: templates/single_complete.html:15
msgid "This exam is only accessible to signed in users"
msgstr "Этот тест доступен только зарегистрированным пользователям"
#: templates/view_quiz_category.html:3
msgid "Quizzes related to"
msgstr "Тесты относятся к"
#: templates/view_quiz_category.html:6
msgid "Quizzes in the"
msgstr "Тесты в"
#: templates/view_quiz_category.html:6
msgid "category"
msgstr "категория"
#: templates/view_quiz_category.html:20
msgid "There are no quizzes"
msgstr "Тестов нет"

Binary file not shown.

View File

@ -0,0 +1,474 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-31 22:44+0000\n"
"PO-Revision-Date: 2015-10-31 22:43+0000\n"
"Last-Translator: b' <>'\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Translated-Using: django-rosetta 0.7.6\n"
#: apps/quiz/models.py:30 apps/quiz/models.py:37 apps/quiz/models.py:53
#: apps/quiz/models.py:83 apps/quiz/models.py:545
#: apps/quiz/templates/progress.html:19
#: apps/quiz/templates/quiz/quiz_detail.html:9
#: apps/quiz/templates/quiz/quiz_list.html:13
#: apps/quiz/templates/quiz/sitting_detail.html:10
msgid "Category"
msgstr "类别"
#: apps/quiz/models.py:38
msgid "Categories"
msgstr "类别"
#: apps/quiz/models.py:48 apps/quiz/models.py:58 apps/quiz/models.py:550
msgid "Sub-Category"
msgstr "子类"
#: apps/quiz/models.py:59
msgid "Sub-Categories"
msgstr "子类"
#: apps/quiz/models.py:69 apps/quiz/templates/quiz/quiz_list.html:12
msgid "Title"
msgstr "标题"
#: apps/quiz/models.py:73
msgid "Description"
msgstr "描述"
#: apps/quiz/models.py:74
msgid "a description of the quiz"
msgstr "测试的描述"
#: apps/quiz/models.py:78
msgid "a user friendly url"
msgstr "一个用户友好的URL"
#: apps/quiz/models.py:79
msgid "user friendly url"
msgstr "用户友好的URL"
#: apps/quiz/models.py:87
msgid "Random Order"
msgstr "随机次序"
#: apps/quiz/models.py:88
msgid "Display the questions in a random order or as they are set?"
msgstr "按设定的次序还是随机次序显示问题?"
#: apps/quiz/models.py:93
msgid "Max Questions"
msgstr "最大问题数量"
#: apps/quiz/models.py:94
msgid "Number of questions to be answered on each attempt."
msgstr "每次尝试可回答的问题数量。"
#: apps/quiz/models.py:98
msgid ""
"Correct answer is NOT shown after question. Answers displayed at the end."
msgstr ""
"正确答案不会在问题后显示。回答显示在最后。"
#: apps/quiz/models.py:100
msgid "Answers at end"
msgstr "最后给出答案"
#: apps/quiz/models.py:104
msgid ""
"If yes, the result of each attempt by a user will be stored. Necessary for "
"marking."
msgstr ""
"如果是,用户每次尝试的结果都将记录。如需打分此项必选。"
#: apps/quiz/models.py:107
msgid "Exam Paper"
msgstr "试卷"
#: apps/quiz/models.py:111
msgid ""
"If yes, only one attempt by a user will be permitted. Non users cannot sit "
"this exam."
msgstr ""
"如果是,一个用户只允许尝试一次。非注册用户不能参加本考试。"
#: apps/quiz/models.py:114
msgid "Single Attempt"
msgstr "单次尝试"
#: apps/quiz/models.py:116
msgid "Pass Mark"
msgstr "通过分数"
#: apps/quiz/models.py:118
msgid "Percentage required to pass exam."
msgstr "通过考试需要的百分数。"
#: apps/quiz/models.py:122
msgid "Displayed if user passes."
msgstr "如果用户通过则显示。"
#: apps/quiz/models.py:123
msgid "Success Text"
msgstr "成功文本"
#: apps/quiz/models.py:126
msgid "Fail Text"
msgstr "失败文本"
#: apps/quiz/models.py:127
msgid "Displayed if user fails."
msgstr "如果用户未通过则显示"
#: apps/quiz/models.py:131
msgid "Draft"
msgstr "草稿"
#: apps/quiz/models.py:132
msgid ""
"If yes, the quiz is not displayed in the quiz list and can only be taken by "
"users who can edit quizzes."
msgstr ""
"如果是,测试不会显示在测试列表里,只能被可以编辑测试的用户操作。"
#: apps/quiz/models.py:152 apps/quiz/models.py:372 apps/quiz/models.py:541
#: apps/quiz/templates/quiz/sitting_list.html:14
msgid "Quiz"
msgstr "测试"
#: apps/quiz/models.py:153
msgid "Quizzes"
msgstr "测试"
#: apps/quiz/models.py:192 apps/quiz/models.py:370
#: apps/quiz/templates/quiz/sitting_detail.html:13
#: apps/quiz/templates/quiz/sitting_list.html:13
msgid "User"
msgstr "用户"
#: apps/quiz/models.py:195 apps/quiz/templates/progress.html:60
#: apps/quiz/templates/quiz/sitting_detail.html:15
#: apps/quiz/templates/quiz/sitting_list.html:16
msgid "Score"
msgstr "得分"
#: apps/quiz/models.py:200
msgid "User Progress"
msgstr "用户进度"
#: apps/quiz/models.py:201
msgid "User progress records"
msgstr "用户进度记录"
#: apps/quiz/models.py:261
msgid "error"
msgstr "错误"
#: apps/quiz/models.py:261
msgid "category does not exist or invalid score"
msgstr "类别不存在或得分无效"
#: apps/quiz/models.py:375
msgid "Question Order"
msgstr "问题次序"
#: apps/quiz/models.py:378
msgid "Question List"
msgstr "问题列表"
#: apps/quiz/models.py:381
msgid "Incorrect questions"
msgstr "不正确的答案"
#: apps/quiz/models.py:383
msgid "Current Score"
msgstr "当前得分"
#: apps/quiz/models.py:386
msgid "Complete"
msgstr "完成"
#: apps/quiz/models.py:389
msgid "User Answers"
msgstr "用户回答"
#: apps/quiz/models.py:392
msgid "Start"
msgstr "开始"
#: apps/quiz/models.py:394
msgid "End"
msgstr "结束"
#: apps/quiz/models.py:399
msgid "Can see completed exams."
msgstr "可以看到已完成的考试"
#: apps/quiz/models.py:557
msgid "Figure"
msgstr "图像"
#: apps/quiz/models.py:561
msgid "Enter the question text that you want displayed"
msgstr "输入你想显示的问题文本"
#: apps/quiz/models.py:563 apps/quiz/models.py:575
#: apps/quiz/templates/question.html:47
#: apps/quiz/templates/quiz/sitting_detail.html:21
msgid "Question"
msgstr "问题"
#: apps/quiz/models.py:567
msgid "Explanation to be shown after the question has been answered."
msgstr "回答问题后将展示题解。"
#: apps/quiz/models.py:570 apps/quiz/templates/question.html:32
#: apps/quiz/templates/result.html:21 apps/quiz/templates/result.html.py:87
msgid "Explanation"
msgstr "题解"
#: apps/quiz/models.py:576
msgid "Questions"
msgstr "问题"
#: apps/quiz/templates/base.html:7
msgid "Example Quiz Website"
msgstr "测试样例网站"
#: apps/quiz/templates/correct_answer.html:6
msgid "You answered the above question incorrectly"
msgstr "你错误回答了以上问题"
#: apps/quiz/templates/correct_answer.html:16
msgid "This is the correct answer"
msgstr "这是正确答案"
#: apps/quiz/templates/correct_answer.html:23
msgid "This was your answer."
msgstr "这是你的回答。"
#: apps/quiz/templates/progress.html:6
msgid "Progress Page"
msgstr "进度页面"
#: apps/quiz/templates/progress.html:7
msgid "User Progress Page"
msgstr "用户进度页面"
#: apps/quiz/templates/progress.html:13
msgid "Question Category Scores"
msgstr "问题类别得分"
#: apps/quiz/templates/progress.html:20
msgid "Correctly answererd"
msgstr "正确回答了"
#: apps/quiz/templates/progress.html:21
msgid "Incorrect"
msgstr "不正确"
#: apps/quiz/templates/progress.html:50
msgid "Previous exam papers"
msgstr "前一试卷"
#: apps/quiz/templates/progress.html:52
msgid "Below are the results of exams that you have sat."
msgstr "以下是你已经参加的考试的结果。"
#: apps/quiz/templates/progress.html:59
msgid "Quiz Title"
msgstr "测试标题"
#: apps/quiz/templates/progress.html:61
msgid "Possible Score"
msgstr "可能得分"
#: apps/quiz/templates/question.html:13 apps/quiz/templates/result.html:13
msgid "The previous question"
msgstr "前一问题"
#: apps/quiz/templates/question.html:22
msgid "Your answer was"
msgstr "你的回答是"
#: apps/quiz/templates/question.html:47
msgid "of"
msgstr "属于"
#: apps/quiz/templates/question.html:52
msgid "Question category"
msgstr "问题类别"
#: apps/quiz/templates/question.html:74
msgid "Check"
msgstr "检查"
#: apps/quiz/templates/quiz/category_list.html:3
#: apps/quiz/templates/quiz/quiz_list.html:3
#: apps/quiz/templates/quiz/sitting_list.html:3
msgid "All Quizzes"
msgstr "全部测试"
#: apps/quiz/templates/quiz/category_list.html:6
msgid "Category list"
msgstr "类别列表"
#: apps/quiz/templates/quiz/quiz_detail.html:11
msgid "You will only get one attempt at this quiz"
msgstr "本测试你只有一次尝试的机会"
#: apps/quiz/templates/quiz/quiz_detail.html:16
msgid "Start quiz"
msgstr "开始测试"
#: apps/quiz/templates/quiz/quiz_list.html:6
msgid "List of quizzes"
msgstr "测试列表"
#: apps/quiz/templates/quiz/quiz_list.html:14
msgid "Exam"
msgstr "考试"
#: apps/quiz/templates/quiz/quiz_list.html:15
msgid "Single attempt"
msgstr "单一尝试"
#: apps/quiz/templates/quiz/quiz_list.html:31
#: apps/quiz/templates/quiz/sitting_list.html:42
msgid "View details"
msgstr "显示细节"
#: apps/quiz/templates/quiz/quiz_list.html:41
msgid "There are no available quizzes"
msgstr "没有可做的测试"
#: apps/quiz/templates/quiz/sitting_detail.html:5
msgid "Result of"
msgstr "结果属于"
#: apps/quiz/templates/quiz/sitting_detail.html:5
msgid "for"
msgstr "为了"
#: apps/quiz/templates/quiz/sitting_detail.html:9
msgid "Quiz title"
msgstr "测试标题"
#: apps/quiz/templates/quiz/sitting_detail.html:14
#: apps/quiz/templates/quiz/sitting_list.html:15
msgid "Completed"
msgstr "已完成"
#: apps/quiz/templates/quiz/sitting_detail.html:22
msgid "User answer"
msgstr "用户的回答"
#: apps/quiz/templates/quiz/sitting_detail.html:41
msgid "incorrect"
msgstr "不正确"
#: apps/quiz/templates/quiz/sitting_detail.html:43
msgid "Correct"
msgstr "正确"
#: apps/quiz/templates/quiz/sitting_detail.html:49
msgid "Toggle whether correct"
msgstr "切换是否正确"
#: apps/quiz/templates/quiz/sitting_list.html:6
msgid "List of complete exams"
msgstr "已完成考试列表"
#: apps/quiz/templates/quiz/sitting_list.html:28
msgid "Filter"
msgstr "过滤"
#: apps/quiz/templates/quiz/sitting_list.html:52
msgid "There are no matching quizzes"
msgstr "没有符合条件的测试"
#: apps/quiz/templates/result.html:7
msgid "Exam Results for"
msgstr "考试结果"
#: apps/quiz/templates/result.html:32
msgid "Exam results"
msgstr "考试结果"
#: apps/quiz/templates/result.html:34
msgid "Exam title"
msgstr "考试标题"
#: apps/quiz/templates/result.html:38
msgid "You answered"
msgstr "你正确回答了"
#: apps/quiz/templates/result.html:38
msgid "questions correctly out of"
msgstr "个问题,总共"
#: apps/quiz/templates/result.html:38
msgid "giving you"
msgstr "个问题"
#: apps/quiz/templates/result.html:38
msgid "percent correct"
msgstr "%正确率"
#: apps/quiz/templates/result.html:48
msgid "Review the questions below and try the exam again in the future"
msgstr "回顾以下问题,将来可以再尝试本考试"
#: apps/quiz/templates/result.html:52
msgid ""
"The result of this exam will be stored in your progress section so you can "
"review and monitor your progression"
msgstr "本考试的结果将储存于你的进度区域,你可以查看和监控你的进度。"
#: apps/quiz/templates/result.html:66
msgid "Your session score is"
msgstr "你目前得分为"
#: apps/quiz/templates/result.html:66
msgid "out of a possible"
msgstr "而最多可能得分为"
#: apps/quiz/templates/result.html:84
msgid "Your answer"
msgstr "你的答案"
#: apps/quiz/templates/single_complete.html:13
msgid "You have already sat this exam and only one sitting is permitted"
msgstr "你已经参加本考试,只能参加一次"
#: apps/quiz/templates/single_complete.html:15
msgid "This exam is only accessible to signed in users"
msgstr "用户需登录方可访问本考试"
#: apps/quiz/templates/view_quiz_category.html:3
msgid "Quizzes related to"
msgstr "测试有关于"
#: apps/quiz/templates/view_quiz_category.html:6
msgid "Quizzes in the"
msgstr "测试属于"
#: apps/quiz/templates/view_quiz_category.html:6
msgid "category"
msgstr "类别"
#: apps/quiz/templates/view_quiz_category.html:20
msgid "There are no quizzes"
msgstr "没有测试"

View File

@ -0,0 +1,123 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2017-06-22 11:20
from __future__ import unicode_literals
from django.conf import settings
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import re
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Category',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('category', models.CharField(blank=True, max_length=250, null=True, unique=True, verbose_name='Category')),
],
options={
'verbose_name': 'Category',
'verbose_name_plural': 'Categories',
},
),
migrations.CreateModel(
name='Progress',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('score', models.CharField(max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:\\,\\d+)*\\Z', 32), code='invalid', message='Enter only digits separated by commas.')], verbose_name='Score')),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
options={
'verbose_name': 'User Progress',
'verbose_name_plural': 'User progress records',
},
),
migrations.CreateModel(
name='Question',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('figure', models.ImageField(blank=True, null=True, upload_to='uploads/%Y/%m/%d', verbose_name='Figure')),
('content', models.CharField(help_text='Enter the question text that you want displayed', max_length=1000, verbose_name='Question')),
('explanation', models.TextField(blank=True, help_text='Explanation to be shown after the question has been answered.', max_length=2000, verbose_name='Explanation')),
('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='quiz.Category', verbose_name='Category')),
],
options={
'verbose_name': 'Question',
'verbose_name_plural': 'Questions',
'ordering': ['category'],
},
),
migrations.CreateModel(
name='Quiz',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=60, verbose_name='Title')),
('description', models.TextField(blank=True, help_text='a description of the quiz', verbose_name='Description')),
('url', models.SlugField(help_text='a user friendly url', max_length=60, verbose_name='user friendly url')),
('random_order', models.BooleanField(default=False, help_text='Display the questions in a random order or as they are set?', verbose_name='Random Order')),
('max_questions', models.PositiveIntegerField(blank=True, help_text='Number of questions to be answered on each attempt.', null=True, verbose_name='Max Questions')),
('answers_at_end', models.BooleanField(default=False, help_text='Correct answer is NOT shown after question. Answers displayed at the end.', verbose_name='Answers at end')),
('exam_paper', models.BooleanField(default=False, help_text='If yes, the result of each attempt by a user will be stored. Necessary for marking.', verbose_name='Exam Paper')),
('single_attempt', models.BooleanField(default=False, help_text='If yes, only one attempt by a user will be permitted. Non users cannot sit this exam.', verbose_name='Single Attempt')),
('pass_mark', models.SmallIntegerField(blank=True, default=0, help_text='Percentage required to pass exam.', validators=[django.core.validators.MaxValueValidator(100)], verbose_name='Pass Mark')),
('success_text', models.TextField(blank=True, help_text='Displayed if user passes.', verbose_name='Success Text')),
('fail_text', models.TextField(blank=True, help_text='Displayed if user fails.', verbose_name='Fail Text')),
('draft', models.BooleanField(default=False, help_text='If yes, the quiz is not displayed in the quiz list and can only be taken by users who can edit quizzes.', verbose_name='Draft')),
('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='quiz.Category', verbose_name='Category')),
],
options={
'verbose_name': 'Quiz',
'verbose_name_plural': 'Quizzes',
},
),
migrations.CreateModel(
name='Sitting',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('question_order', models.CharField(max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:\\,\\d+)*\\Z', 32), code='invalid', message='Enter only digits separated by commas.')], verbose_name='Question Order')),
('question_list', models.CharField(max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:\\,\\d+)*\\Z', 32), code='invalid', message='Enter only digits separated by commas.')], verbose_name='Question List')),
('incorrect_questions', models.CharField(blank=True, max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:\\,\\d+)*\\Z', 32), code='invalid', message='Enter only digits separated by commas.')], verbose_name='Incorrect questions')),
('current_score', models.IntegerField(verbose_name='Current Score')),
('complete', models.BooleanField(default=False, verbose_name='Complete')),
('user_answers', models.TextField(blank=True, default='{}', verbose_name='User Answers')),
('start', models.DateTimeField(auto_now_add=True, verbose_name='Start')),
('end', models.DateTimeField(blank=True, null=True, verbose_name='End')),
('quiz', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='quiz.Quiz', verbose_name='Quiz')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
options={
'permissions': (('view_sittings', 'Can see completed exams.'),),
},
),
migrations.CreateModel(
name='SubCategory',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sub_category', models.CharField(blank=True, max_length=250, null=True, verbose_name='Sub-Category')),
('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='quiz.Category', verbose_name='Category')),
],
options={
'verbose_name': 'Sub-Category',
'verbose_name_plural': 'Sub-Categories',
},
),
migrations.AddField(
model_name='question',
name='quiz',
field=models.ManyToManyField(blank=True, to='quiz.Quiz', verbose_name='Quiz'),
),
migrations.AddField(
model_name='question',
name='sub_category',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='quiz.SubCategory', verbose_name='Sub-Category'),
),
]

View File

@ -0,0 +1,40 @@
# Generated by Django 2.2.9 on 2021-04-17 10:52
import django.core.validators
from django.db import migrations, models
import re
class Migration(migrations.Migration):
dependencies = [
('quiz', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='progress',
name='score',
field=models.CharField(max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:,\\d+)*\\Z'), code='invalid', message='Enter only digits separated by commas.')], verbose_name='Score'),
),
migrations.AlterField(
model_name='quiz',
name='draft',
field=models.BooleanField(blank=True, default=False, help_text='If yes, the quiz is not displayed in the quiz list and can only be taken by users who can edit quizzes.', verbose_name='Draft'),
),
migrations.AlterField(
model_name='sitting',
name='incorrect_questions',
field=models.CharField(blank=True, max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:,\\d+)*\\Z'), code='invalid', message='Enter only digits separated by commas.')], verbose_name='Incorrect questions'),
),
migrations.AlterField(
model_name='sitting',
name='question_list',
field=models.CharField(max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:,\\d+)*\\Z'), code='invalid', message='Enter only digits separated by commas.')], verbose_name='Question List'),
),
migrations.AlterField(
model_name='sitting',
name='question_order',
field=models.CharField(max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:,\\d+)*\\Z'), code='invalid', message='Enter only digits separated by commas.')], verbose_name='Question Order'),
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 3.2 on 2021-05-11 13:59
import django.core.validators
from django.db import migrations, models
import re
class Migration(migrations.Migration):
dependencies = [
('quiz', '0002_auto_20210417_1052'),
]
operations = [
migrations.AddField(
model_name='progress',
name='user_answers',
field=models.CharField(default=0, max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:,\\d+)*\\Z'), code='invalid', message='Enter only digits separated by commas.')], verbose_name='User_answers'),
preserve_default=False,
),
]

View File

@ -0,0 +1,17 @@
# Generated by Django 3.2 on 2021-05-11 14:02
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('quiz', '0003_progress_user_answers'),
]
operations = [
migrations.RemoveField(
model_name='progress',
name='user_answers',
),
]

View File

@ -0,0 +1,20 @@
# Generated by Django 3.2 on 2021-05-11 14:33
import django.core.validators
from django.db import migrations, models
import re
class Migration(migrations.Migration):
dependencies = [
('quiz', '0004_remove_progress_user_answers'),
]
operations = [
migrations.AddField(
model_name='progress',
name='user_answers',
field=models.CharField(default='{}', max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:,\\d+)*\\Z'), code='invalid', message='Enter only digits separated by commas.')], verbose_name='User_answers'),
),
]

View File

@ -0,0 +1,20 @@
# Generated by Django 3.2 on 2021-05-11 14:42
import django.core.validators
from django.db import migrations, models
import re
class Migration(migrations.Migration):
dependencies = [
('quiz', '0005_progress_user_answers'),
]
operations = [
migrations.AlterField(
model_name='progress',
name='user_answers',
field=models.CharField(default='{}', max_length=1024, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:,\\d+)*\\Z'), code='invalid', message='Enter only digits separated by commas.')], verbose_name='Réponses'),
),
]

View File

@ -0,0 +1,17 @@
# Generated by Django 3.2 on 2021-05-23 18:31
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('quiz', '0006_alter_progress_user_answers'),
]
operations = [
migrations.RemoveField(
model_name='progress',
name='user_answers',
),
]

View File

Some files were not shown because too many files have changed in this diff Show More