import django_tables2 as tables from django_tables2.utils import A from generic.tables import FirstImageColumn from .models import Rapid, UserAnswer from django.utils.html import format_html from easy_thumbnails.files import get_thumbnailer from easy_thumbnails.exceptions import InvalidImageFormatError class RapidTable(tables.Table): edit = tables.LinkColumn('rapids:rapid_update', text='Edit', args=[A('pk')], orderable=False) view = tables.LinkColumn('rapids:question_detail', text='View', args=[A('pk')], orderable=False) clone = tables.LinkColumn('rapids:rapid_clone', text='Clone', args=[A('pk')], orderable=False) delete = tables.LinkColumn('rapids:question_delete', text='Delete', args=[A('pk')], orderable=False) images = FirstImageColumn("images", orderable=False) exams = tables.ManyToManyColumn(verbose_name="Exams") selection = tables.CheckBoxColumn(accessor="pk", orderable=False) class Meta: model = Rapid template_name = "django_tables2/bootstrap4.html" fields = ("normal", "abnormality", "region", "examination", "laterality", #"site", "created_date", "open_access", "author") sequence = ("view", "images", "exams") order_by = "-created_date" def __init__(self, data=None, *args, **kwargs): super().__init__( data.prefetch_related( "abnormality", "region", "examination", "images", "exams", "author" ), *args, **kwargs, ) class RapidUserAnswerTable(tables.Table): select = tables.CheckBoxColumn(accessor=("pk")) delete = tables.LinkColumn( "rapids:user_answer_delete", text="Delete", args=[A("pk")], orderable=False ) view = tables.LinkColumn('rapids:user_answer_view', text='View', args=[A('pk')], orderable=False) class Meta: model = UserAnswer template_name = "django_tables2/bootstrap4.html" fields = ( "cid", "user", "question", "normal", "answer", #"answer_compare", "exam", "created", "updated", ) def __init__(self, data=None, *args, **kwargs): super().__init__( data.prefetch_related( "exam", "question" ), *args, **kwargs, )