from django.utils.safestring import mark_safe import django_tables2 as tables from django_tables2.utils import A from .models import Question, UserAnswer from django.utils.html import format_html class QuestionTable(tables.Table): #edit = tables.LinkColumn( # "sbas:sbas_question_update", text="Edit", args=[A("pk")], orderable=False #) view = tables.LinkColumn( "sbas:question_detail", text="View", args=[A("pk")], orderable=False ) #delete = tables.LinkColumn( # "sbas:question_delete", text="Delete", args=[A("pk")], orderable=False #) exams = tables.ManyToManyColumn(verbose_name="Exams") selection = tables.CheckBoxColumn(accessor="pk", orderable=False) stem = tables.Column() answers = tables.TemplateColumn("
  1. {{ record.a_answer|safe}}
  2. {{ record.b_answer|safe}}
  3. {{ record.c_answer|safe}}
  4. {{ record.d_answer|safe}}
  5. {{ record.e_answer|safe}}
") class Meta: model = Question template_name = "django_tables2/bootstrap4.html" fields = ( #"stem", #"a_answer", #"b_answer", #"c_answer", #"d_answer", #"e_answer", "best_answer", "created_date", "category", "author", ) sequence = ("view", "stem", "answers", "exams") def __init__(self, data=None, *args, **kwargs): super().__init__( data.prefetch_related( "category", "exams", "author" ), *args, **kwargs, ) def render_stem(self, value): return mark_safe(value) class UserAnswerTable(tables.Table): select = tables.CheckBoxColumn(accessor=("pk")) #delete = tables.LinkColumn( # "sbas:user_answer_delete", text="Delete", args=[A("pk")], orderable=False #) view = tables.LinkColumn('sbas:user_answer_view', text='View', args=[A('pk')], orderable=False) class Meta: model = UserAnswer template_name = "django_tables2/bootstrap4.html" fields = ( "cid", "user", "question", "answer", #"answer_compare", "exam", "created", "updated", )