From 81306ddc668682aeb353630189d70a2d7492c0d8 Mon Sep 17 00:00:00 2001 From: tomwalker Date: Thu, 31 Jul 2014 15:55:20 +0100 Subject: [PATCH] adjusted Sub_Category class to SubCategory, included some basic tests for subcategory --- quiz/admin.py | 14 +++++++++----- quiz/models.py | 25 +++++++++++++------------ quiz/tests.py | 8 +++++++- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/quiz/admin.py b/quiz/admin.py index 6fd4965..8c2391b 100644 --- a/quiz/admin.py +++ b/quiz/admin.py @@ -2,7 +2,7 @@ from django import forms from django.contrib import admin from django.contrib.admin.widgets import FilteredSelectMultiple -from .models import Quiz, Category, Sub_Category, Progress, Question +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 @@ -55,13 +55,16 @@ class QuizAdmin(admin.ModelAdmin): class CategoryAdmin(admin.ModelAdmin): search_fields = ('category', ) + class SubCategoryAdmin(admin.ModelAdmin): - search_fields = ('sub_category', ) + search_fields = ('subcategory', ) + class MCQuestionAdmin(admin.ModelAdmin): list_display = ('content', 'category', ) list_filter = ('category',) - fields = ('content', 'category', 'sub_category', 'figure', 'quiz', 'explanation') + fields = ('content', 'category', 'subcategory', + 'figure', 'quiz', 'explanation') search_fields = ('content', 'explanation') filter_horizontal = ('quiz',) @@ -80,7 +83,8 @@ class ProgressAdmin(admin.ModelAdmin): class TFQuestionAdmin(admin.ModelAdmin): list_display = ('content', 'category', ) list_filter = ('category',) - fields = ('content', 'category', 'sub_category', 'figure', 'quiz', 'explanation', 'correct',) + fields = ('content', 'category', 'subcategory', + 'figure', 'quiz', 'explanation', 'correct',) search_fields = ('content', 'explanation') filter_horizontal = ('quiz',) @@ -95,7 +99,7 @@ class EssayQuestionAdmin(admin.ModelAdmin): admin.site.register(Quiz, QuizAdmin) admin.site.register(Category, CategoryAdmin) -admin.site.register(Sub_Category, SubCategoryAdmin) +admin.site.register(SubCategory, SubCategoryAdmin) admin.site.register(MCQuestion, MCQuestionAdmin) admin.site.register(Progress, ProgressAdmin) admin.site.register(TF_Question, TFQuestionAdmin) diff --git a/quiz/models.py b/quiz/models.py index f0fc3ca..a2bf6f1 100644 --- a/quiz/models.py +++ b/quiz/models.py @@ -34,13 +34,13 @@ class Category(models.Model): def __unicode__(self): return unicode(self.category) -class Sub_Category(models.Model): + +class SubCategory(models.Model): sub_category = models.CharField(max_length=250, - blank=True, - # choices=CATEGORY_CHOICES, - null=True) - + blank=True, + null=True) + category = models.ForeignKey(Category, null=True, blank=True) @@ -51,7 +51,8 @@ class Sub_Category(models.Model): verbose_name_plural = "Sub-Categories" def __unicode__(self): - return unicode(self.sub_category + " (" + self.category.category + ")" ) + return unicode(self.sub_category + " (" + self.category.category + ")") + class Quiz(models.Model): @@ -481,13 +482,13 @@ class Question(models.Model): blank=True, null=True) - sub_category = models.ForeignKey(Sub_Category, - blank=True, - null=True) + sub_category = models.ForeignKey(SubCategory, + blank=True, + null=True) - figure = models.ImageField(upload_to='uploads/%Y/%m/%d', - blank=True, - null=True) + figure = models.ImageField(upload_to='uploads/%Y/%m/%d', + blank=True, + null=True) content = models.CharField(max_length=1000, blank=False, diff --git a/quiz/tests.py b/quiz/tests.py index b0db57d..6a97ce4 100644 --- a/quiz/tests.py +++ b/quiz/tests.py @@ -9,7 +9,7 @@ from django.test import TestCase from django.template import Template, Context from django.utils.importlib import import_module -from .models import Category, Quiz, Progress, Sitting +from .models import Category, Quiz, Progress, Sitting, SubCategory from .views import anon_session_score from multichoice.models import MCQuestion, Answer from true_false.models import TF_Question @@ -23,6 +23,9 @@ class TestCategory(TestCase): self.c3 = Category.objects.new_category(category='black berries') self.c4 = Category.objects.new_category(category='squishy berries') + self.sub1 = SubCategory.objects.create(sub_category='Red', + category=self.c1) + def test_categories(self): self.assertEqual(self.c1.category, 'elderberries') @@ -30,6 +33,9 @@ class TestCategory(TestCase): self.assertEqual(self.c3.category, 'black-berries') self.assertEqual(self.c4.category, 'squishy-berries') + def test_sub_categories(self): + self.assertEqual(self.sub1.category, self.c1) + class TestQuiz(TestCase): def setUp(self): -- 2.39.5