From 61d182835796f019c1160bc1afb187fc8b95f747 Mon Sep 17 00:00:00 2001 From: Ross Date: Sat, 6 Feb 2021 14:45:12 +0000 Subject: [PATCH] . --- longs/filters.py | 8 ++++- longs/tables.py | 36 +++++++++++++++++-- longs/templates/longs/base.html | 3 +- longs/templates/longs/long_display_block.html | 1 - longs/urls.py | 1 + longs/views.py | 11 ++++-- 6 files changed, 52 insertions(+), 8 deletions(-) diff --git a/longs/filters.py b/longs/filters.py index c6b65f39..84e15ef0 100755 --- a/longs/filters.py +++ b/longs/filters.py @@ -1,6 +1,6 @@ import django_filters -from .models import Long +from .models import Long, LongSeries class LongFilter(django_filters.FilterSet): @@ -8,3 +8,9 @@ class LongFilter(django_filters.FilterSet): model = Long fields = (#"site", "created_date", "author") + +class LongSeriesFilter(django_filters.FilterSet): + class Meta: + model = LongSeries + fields = (#"site", + "created_date", "author") \ No newline at end of file diff --git a/longs/tables.py b/longs/tables.py index 6d704c85..45f5d9b6 100755 --- a/longs/tables.py +++ b/longs/tables.py @@ -10,7 +10,7 @@ from easy_thumbnails.files import get_thumbnailer from easy_thumbnails.exceptions import InvalidImageFormatError -class ImageColumn(tables.Column): +class LongImageColumn(tables.Column): def render(self, value): obj = value.first() @@ -26,6 +26,18 @@ class ImageColumn(tables.Column): #except InvalidImageFormatError: # return format_html('Invalid image url', image_object) +class LongSeriesImageColumn(tables.Column): + def render(self, value): + obj = value.first() + + image_object = obj.image + try: + thumbnailer = get_thumbnailer(image_object) + return format_html('', thumbnailer["exam-list"]) + except InvalidImageFormatError: + return format_html('Invalid image url', image_object) + + class LongTable(tables.Table): edit = tables.LinkColumn('longs:long_update', @@ -40,11 +52,29 @@ class LongTable(tables.Table): text='Clone', args=[A('pk')], orderable=False) - series = ImageColumn("images", orderable=False) + series = LongImageColumn("Images", orderable=False) class Meta: model = Long template_name = "django_tables2/bootstrap4.html" fields = ("normal", "abnormality", "region", "examination", "laterality", "site", "created_date", "author") - sequence = ("view", "series") \ No newline at end of file + sequence = ("view", "series") + +class LongSeriesTable(tables.Table): + edit = tables.LinkColumn('longs:long_series_update', + text='Edit', + args=[A('pk')], + orderable=False) + view = tables.LinkColumn('longs:long_series_detail', + text='View', + args=[A('pk')], + orderable=False) + images = LongSeriesImageColumn("Images", orderable=False) + + class Meta: + model = Long + template_name = "django_tables2/bootstrap4.html" + fields = ("normal", "abnormality", "region", "examination", + "laterality", "site", "created_date", "author") + sequence = ("view", "images") \ No newline at end of file diff --git a/longs/templates/longs/base.html b/longs/templates/longs/base.html index 1d8e2670..95600420 100755 --- a/longs/templates/longs/base.html +++ b/longs/templates/longs/base.html @@ -18,7 +18,8 @@ Longs Longs: {% if request.user.is_authenticated %} Exams / -Questions / +Cases / +Series / Create Case / Create Series {% endif %} diff --git a/longs/templates/longs/long_display_block.html b/longs/templates/longs/long_display_block.html index e3d4d0a2..01961bde 100755 --- a/longs/templates/longs/long_display_block.html +++ b/longs/templates/longs/long_display_block.html @@ -5,7 +5,6 @@

History: {{ question.history }}

-

Abnormality: {{ question.get_abnormalities }}

Series: {% for series in question.series.all %} diff --git a/longs/urls.py b/longs/urls.py index cad3ec27..86dd1a74 100755 --- a/longs/urls.py +++ b/longs/urls.py @@ -9,6 +9,7 @@ urlpatterns = [ path("author//", views.author_detail, name="author_detail"), path("author/", views.author_list, name="author_list"), path("question/", views.LongView.as_view(), name="long_view"), + path("series/", views.LongSeriesView.as_view(), name="long_series_view"), path("series/", views.long_series_detail, name="long_series_detail"), #path("unchecked/", views.unchecked_list, name="unchecked_list"), #path("verified//", views.verified_detail, name="verified_detail"), diff --git a/longs/views.py b/longs/views.py index a4a3e5dc..ceca3128 100755 --- a/longs/views.py +++ b/longs/views.py @@ -33,8 +33,8 @@ from .models import ( Exam, CidUserAnswer, ) -from .tables import LongTable -from .filters import LongFilter +from .tables import LongTable, LongSeriesTable +from .filters import LongFilter, LongSeriesFilter from django_tables2 import SingleTableView, SingleTableMixin from django_filters.views import FilterView @@ -585,6 +585,13 @@ class LongView(SingleTableMixin, FilterView): filterset_class = LongFilter +class LongSeriesView(SingleTableMixin, FilterView): + model = LongSeries + table_class = LongSeriesTable + template_name = "longs/view.html" + + filterset_class = LongSeriesFilter + def loadJsonAnswer(answer): eid = int(answer["eid"].split("/")[1])