From: Tom Walker Date: Mon, 9 Jun 2014 20:43:39 +0000 (+0100) Subject: started to use inheritence for TF question. Will make a new abstract base class for... X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=60a3e136ad6b8e296aef7fe7ac35066e8019e18f;p=django_quiz.git started to use inheritence for TF question. Will make a new abstract base class for future --- diff --git a/.gitignore b/.gitignore index 0ec12b1..533eb5e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ -/mysite/ +*.*~ +*.*~ *.pyc -manage.py /db.sqlite3 +/manage.py +/mysite* +/plan.txt diff --git a/quiz/admin.py b/quiz/admin.py index a49ee32..6fa7afd 100644 --- a/quiz/admin.py +++ b/quiz/admin.py @@ -3,6 +3,7 @@ from django.contrib import admin from django.contrib.admin.widgets import FilteredSelectMultiple from quiz.models import Quiz, Category, Progress from multichoice.models import Question, Answer +from true_false.models import TF_Question class QuestionInline(admin.TabularInline): model = Question.quiz.through @@ -73,7 +74,16 @@ class ProgressAdmin(admin.ModelAdmin): """ search_fields = ('user', 'score', ) +class TFQuestionAdmin(admin.ModelAdmin): + list_display = ('content', 'category', ) + list_filter = ('category',) + fields = ('content', 'category', 'quiz', 'explanation' ) + + search_fields = ('content', 'explanation') + filter_horizontal = ('quiz',) + admin.site.register(Quiz, QuizAdmin) admin.site.register(Category, CategoryAdmin) admin.site.register(Question, QuestionAdmin) admin.site.register(Progress, ProgressAdmin) +admin.site.register(TF_Question, TFQuestionAdmin) diff --git a/true_false/models.py b/true_false/models.py index 06e9b83..d35d059 100644 --- a/true_false/models.py +++ b/true_false/models.py @@ -1,29 +1,22 @@ from django.db import models -from django_quiz.quiz.models import Quiz, Category +from quiz.models import Quiz, Category +from multichoice.models import Question -class TF_Question(models.Model): +class TF_Question(Question): + """ + Using the multichoice question as the base class, inheriting properties: + quiz - quiz that it belongs to + category + content - question text + explanation - shown afterwards + """ - quiz = models.ManyToManyField(Quiz, blank=True, ) - - category = models.ForeignKey(Category, blank=True, null=True, ) - - content = models.CharField(max_length=1000, - blank=False, - help_text="Enter the question text that you want displayed", - verbose_name='Question', - ) - - explanation = models.TextField(max_length=2000, - blank=True, - help_text="Explanation to be shown after the question has been answered.", - verbose_name='Explanation', - ) - - correct = models.BooleanField(blank=False, + correct = models.BooleanField(blank=False, default=False, - help_text="Is this question true or false?" + help_text="Tick this if the question is true."+ + " Leave it blank for false." ) - + class Meta: verbose_name = "Question" verbose_name_plural = "Questions" @@ -32,4 +25,3 @@ class TF_Question(models.Model): def __unicode__(self): return self.content -