64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
from django.contrib import admin
|
|
|
|
# Register your models here.
|
|
from .models import Question, Exam, CidUserAnswer, Category
|
|
|
|
import tagulous.admin
|
|
|
|
from django.forms import ModelForm
|
|
|
|
from reversion.admin import VersionAdmin
|
|
from django.forms.widgets import RadioSelect
|
|
|
|
from tinymce.widgets import TinyMCE
|
|
class ExamInline(admin.TabularInline):
|
|
model = Question.exams.through
|
|
extra = 1
|
|
|
|
class QuestionAdminForm(ModelForm):
|
|
class Meta:
|
|
model = Question
|
|
|
|
exclude = []
|
|
|
|
widgets = {
|
|
# "normal": RadioSelect(
|
|
# choices=[(True, 'Yes'),
|
|
# (False, 'No')])
|
|
"stem" : TinyMCE(attrs={'cols': 80, 'rows': 30}),
|
|
"feedback" : TinyMCE(attrs={'cols': 80, 'rows': 30}),
|
|
"a_answer" : TinyMCE(attrs={'cols': 80, 'rows': 5}),
|
|
"a_feedback" : TinyMCE(attrs={'cols': 80, 'rows': 5}),
|
|
"b_answer" : TinyMCE(attrs={'cols': 80, 'rows': 4}),
|
|
"b_answer" : TinyMCE(attrs={'cols': 80, 'rows': 4}),
|
|
"c_answer" : TinyMCE(attrs={'cols': 80, 'rows': 4}),
|
|
"c_answer" : TinyMCE(attrs={'cols': 80, 'rows': 4}),
|
|
"d_feedback" : TinyMCE(attrs={'cols': 80, 'rows': 4}),
|
|
"d_feedback" : TinyMCE(attrs={'cols': 80, 'rows': 4}),
|
|
"e_feedback" : TinyMCE(attrs={'cols': 80, 'rows': 4}),
|
|
"e_feedback" : TinyMCE(attrs={'cols': 80, 'rows': 4}),
|
|
}
|
|
|
|
|
|
class QuestionAdmin(VersionAdmin):
|
|
form = QuestionAdminForm
|
|
|
|
save_on_top = True
|
|
save_as = True
|
|
view_on_site = True
|
|
|
|
inlines = [
|
|
ExamInline,
|
|
]
|
|
|
|
class ExamAdmin(VersionAdmin, admin.ModelAdmin):
|
|
save_as = True
|
|
|
|
admin.site.register(Category)
|
|
admin.site.register(Question, QuestionAdmin)
|
|
admin.site.register(Exam, ExamAdmin)
|
|
class CidUserAnswerAdmin(admin.ModelAdmin):
|
|
exclude = []
|
|
readonly_fields = ["created", "updated"]
|
|
|
|
admin.site.register(CidUserAnswer, CidUserAnswerAdmin) |