Files
penracourses/anatomy/tables.py
T
Ross 7f4dbfec51 .
2021-02-23 21:12:50 +00:00

76 lines
2.3 KiB
Python

import django_tables2 as tables
from django_tables2.utils import A
from .models import AnatomyQuestion, CidUserAnswer
from django.utils.html import format_html
from easy_thumbnails.files import get_thumbnailer
from easy_thumbnails.exceptions import InvalidImageFormatError
#from generic.tables import UserAnswerTable
class AnatomyUserAnswerTable(tables.Table):
select = tables.CheckBoxColumn(accessor=("pk"))
delete = tables.LinkColumn(
"anatomy:anatomy_user_answer_delete", text="Delete", args=[A("pk")], orderable=False
)
class Meta:
model = CidUserAnswer
template_name = "django_tables2/bootstrap4.html"
fields = (
"cid",
"question",
"answer",
#"answer_compare",
"exam",
"created",
"updated",
)
class ImageColumn(tables.Column):
def render(self, value):
try:
thumbnailer = get_thumbnailer(value)
return format_html('<img src="/media/{}" />', thumbnailer["exam-list"])
except InvalidImageFormatError:
return format_html('<span title="{}">Invalid image url<span>', value)
class AnatomyQuestionTable(tables.Table):
edit = tables.LinkColumn(
"anatomy:anatomy_question_update", text="Edit", args=[A("pk")], orderable=False
)
view = tables.LinkColumn(
"anatomy:question_detail", text="View", args=[A("pk")], orderable=False
)
image = ImageColumn("image", orderable=False)
# clone = tables.LinkColumn('anatomy:anatomy_question_clone',
# text='Clone',
# args=[A('pk')],
# orderable=False)
delete = tables.LinkColumn(
"anatomy:question_delete", text="Delete", args=[A("pk")], orderable=False
)
exams = tables.ManyToManyColumn(verbose_name="Exams")
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
class Meta:
model = AnatomyQuestion
template_name = "django_tables2/bootstrap4.html"
fields = (
"question_type",
"description",
"examination",
"modality",
"region",
"body_part",
"created_date",
"open_access",
"author",
)
sequence = ("view", "image", "exams")