.
This commit is contained in:
@@ -29,3 +29,4 @@ This series is not associated with any cases.
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<p>Total image size: {{series.get_total_image_size|filesizeformat}}</p>
|
<p>Total image size: {{series.get_total_image_size|filesizeformat}}</p>
|
||||||
|
<p><a href="{% url 'longs:long_series_download pk=series.pk' %}">Download images</a></p>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ urlpatterns = [
|
|||||||
path("series/", views.LongSeriesView.as_view(), name="long_series_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("series/<int:pk>/order_dicom", views.long_series_order_dicom, name="long_series_order_dicom"),
|
path("series/<int:pk>/order_dicom", views.long_series_order_dicom, name="long_series_order_dicom"),
|
||||||
|
path("series/<int:pk>/download", views.SeriesImagesZipView.as_view(), name="long_series_download"),
|
||||||
path("series/<int:pk>/order_dicom_instance", views.long_series_order_dicom_instance, name="long_series_order_dicom_instance"),
|
path("series/<int:pk>/order_dicom_instance", views.long_series_order_dicom_instance, name="long_series_order_dicom_instance"),
|
||||||
path("series/<int:pk>/order_dicom_SeriesInstanceUID", views.long_series_order_dicom_SeriesInstanceUID, name="long_series_order_dicom_SeriesInstanceUID"),
|
path("series/<int:pk>/order_dicom_SeriesInstanceUID", views.long_series_order_dicom_SeriesInstanceUID, name="long_series_order_dicom_SeriesInstanceUID"),
|
||||||
path("series/<int:pk>/order_upload_filename", views.long_series_order_upload_filename, name="long_series_order_upload_filename"),
|
path("series/<int:pk>/order_upload_filename", views.long_series_order_upload_filename, name="long_series_order_upload_filename"),
|
||||||
|
|||||||
@@ -67,6 +67,8 @@ from rest_framework import viewsets
|
|||||||
|
|
||||||
from .serializers import ExamSerializer
|
from .serializers import ExamSerializer
|
||||||
|
|
||||||
|
from zipview.views import BaseZipView
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1041,3 +1043,10 @@ def refresh_exam_question_json(request, pk):
|
|||||||
|
|
||||||
return redirect("longs:exam_overview", pk=pk)
|
return redirect("longs:exam_overview", pk=pk)
|
||||||
|
|
||||||
|
class SeriesImagesZipView(BaseZipView):
|
||||||
|
"""Download all images from an image series"""
|
||||||
|
|
||||||
|
def get_files(self):
|
||||||
|
series = LongSeries.objects.get(pk=self.request.pk)
|
||||||
|
|
||||||
|
return [i.file for i in series.images]
|
||||||
@@ -19,3 +19,4 @@ django-dbbackup
|
|||||||
django-hashedfilenamestorage
|
django-hashedfilenamestorage
|
||||||
djangorestframework
|
djangorestframework
|
||||||
django-tinymce
|
django-tinymce
|
||||||
|
django-zipview
|
||||||
Reference in New Issue
Block a user