This commit is contained in:
Ross
2021-02-06 14:45:12 +00:00
parent 30f3ec99e4
commit 61d1828357
6 changed files with 52 additions and 8 deletions
+7 -1
View File
@@ -1,6 +1,6 @@
import django_filters import django_filters
from .models import Long from .models import Long, LongSeries
class LongFilter(django_filters.FilterSet): class LongFilter(django_filters.FilterSet):
@@ -8,3 +8,9 @@ class LongFilter(django_filters.FilterSet):
model = Long model = Long
fields = (#"site", fields = (#"site",
"created_date", "author") "created_date", "author")
class LongSeriesFilter(django_filters.FilterSet):
class Meta:
model = LongSeries
fields = (#"site",
"created_date", "author")
+32 -2
View File
@@ -10,7 +10,7 @@ from easy_thumbnails.files import get_thumbnailer
from easy_thumbnails.exceptions import InvalidImageFormatError from easy_thumbnails.exceptions import InvalidImageFormatError
class ImageColumn(tables.Column): class LongImageColumn(tables.Column):
def render(self, value): def render(self, value):
obj = value.first() obj = value.first()
@@ -26,6 +26,18 @@ class ImageColumn(tables.Column):
#except InvalidImageFormatError: #except InvalidImageFormatError:
# return format_html('<span title="{}">Invalid image url<span>', image_object) # return format_html('<span title="{}">Invalid image url<span>', 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('<img src="/media/{}" />', thumbnailer["exam-list"])
except InvalidImageFormatError:
return format_html('<span title="{}">Invalid image url<span>', image_object)
class LongTable(tables.Table): class LongTable(tables.Table):
edit = tables.LinkColumn('longs:long_update', edit = tables.LinkColumn('longs:long_update',
@@ -40,7 +52,7 @@ class LongTable(tables.Table):
text='Clone', text='Clone',
args=[A('pk')], args=[A('pk')],
orderable=False) orderable=False)
series = ImageColumn("images", orderable=False) series = LongImageColumn("Images", orderable=False)
class Meta: class Meta:
model = Long model = Long
@@ -48,3 +60,21 @@ class LongTable(tables.Table):
fields = ("normal", "abnormality", "region", "examination", fields = ("normal", "abnormality", "region", "examination",
"laterality", "site", "created_date", "author") "laterality", "site", "created_date", "author")
sequence = ("view", "series") 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")
+2 -1
View File
@@ -18,7 +18,8 @@ Longs
Longs: Longs:
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
<a href="{% url 'longs:exam_list' %}">Exams</a> / <a href="{% url 'longs:exam_list' %}">Exams</a> /
<a href="{% url 'longs:long_view' %}">Questions</a> / <a href="{% url 'longs:long_view' %}">Cases</a> /
<a href="{% url 'longs:long_series_view' %}">Series</a> /
<a href="{% url 'longs:long_create' %}" title="Create a new long case">Create Case</a> / <a href="{% url 'longs:long_create' %}" title="Create a new long case">Create Case</a> /
<a href="{% url 'longs:long_series_create' %}" title="Create a new image series">Create Series</a> <a href="{% url 'longs:long_series_create' %}" title="Create a new image series">Create Series</a>
{% endif %} {% endif %}
@@ -5,7 +5,6 @@
<p class="pre-whitespace"><b>History:</b> {{ question.history }}</p> <p class="pre-whitespace"><b>History:</b> {{ question.history }}</p>
<p class="pre-whitespace"><b>Abnormality:</b> {{ question.get_abnormalities }}</p>
<div class="pre-whitespace multi-image-block"><b>Series:</b> <div class="pre-whitespace multi-image-block"><b>Series:</b>
{% for series in question.series.all %} {% for series in question.series.all %}
<span class="series-block"> <span class="series-block">
+1
View File
@@ -9,6 +9,7 @@ urlpatterns = [
path("author/<int:pk>/", views.author_detail, name="author_detail"), path("author/<int:pk>/", views.author_detail, name="author_detail"),
path("author/", views.author_list, name="author_list"), path("author/", views.author_list, name="author_list"),
path("question/", views.LongView.as_view(), name="long_view"), path("question/", views.LongView.as_view(), name="long_view"),
path("series/", views.LongSeriesView.as_view(), name="long_series_view"),
path("series/<int:pk>", views.long_series_detail, name="long_series_detail"), path("series/<int:pk>", views.long_series_detail, name="long_series_detail"),
#path("unchecked/", views.unchecked_list, name="unchecked_list"), #path("unchecked/", views.unchecked_list, name="unchecked_list"),
#path("verified/<int:pk>/", views.verified_detail, name="verified_detail"), #path("verified/<int:pk>/", views.verified_detail, name="verified_detail"),
+9 -2
View File
@@ -33,8 +33,8 @@ from .models import (
Exam, Exam,
CidUserAnswer, CidUserAnswer,
) )
from .tables import LongTable from .tables import LongTable, LongSeriesTable
from .filters import LongFilter from .filters import LongFilter, LongSeriesFilter
from django_tables2 import SingleTableView, SingleTableMixin from django_tables2 import SingleTableView, SingleTableMixin
from django_filters.views import FilterView from django_filters.views import FilterView
@@ -585,6 +585,13 @@ class LongView(SingleTableMixin, FilterView):
filterset_class = LongFilter filterset_class = LongFilter
class LongSeriesView(SingleTableMixin, FilterView):
model = LongSeries
table_class = LongSeriesTable
template_name = "longs/view.html"
filterset_class = LongSeriesFilter
def loadJsonAnswer(answer): def loadJsonAnswer(answer):
eid = int(answer["eid"].split("/")[1]) eid = int(answer["eid"].split("/")[1])