diff --git a/atlas/templates/atlas/case_display_block.html b/atlas/templates/atlas/case_display_block.html index 65945248..0bbd4484 100755 --- a/atlas/templates/atlas/case_display_block.html +++ b/atlas/templates/atlas/case_display_block.html @@ -1,5 +1,5 @@
-
View case in OHIF
+
View case in OHIF (new tab)
{{ case.created_date|date:"d/m/Y" }} diff --git a/atlas/urls.py b/atlas/urls.py index 7010921c..d6c00262 100755 --- a/atlas/urls.py +++ b/atlas/urls.py @@ -36,6 +36,7 @@ urlpatterns = [ path("collection/", views.CollectionView.as_view(), name="collection_view"), path("collection/user", views.user_collections, name="user_collections"), path("uploads", views.user_uploads, name="user_uploads"), + path("uploads/all", views.all_uploads, name="all_uploads"), path("uploads/case/", views.user_uploads, name="user_uploads_case"), path("uploads/series_id/", views.user_uploads_series, name="user_uploads_series"), path( diff --git a/atlas/views.py b/atlas/views.py index f3b7ec22..a8ac8aa7 100755 --- a/atlas/views.py +++ b/atlas/views.py @@ -412,10 +412,17 @@ def user_uploads_series(request, series_instance_uid: str): {"dicoms": dicoms, "series_id": series_instance_uid}, ) +@login_required +@user_passes_test(lambda u: u.is_superuser) +def all_uploads(request, case_id: int | None = None): + user_uploads(request, case_id, user_only=False) @login_required -def user_uploads(request, case_id: int | None = None): - dicoms = UncategorisedDicom.objects.filter(user=request.user) +def user_uploads(request, case_id: int | None = None, user_only: bool = True): + if user_only: + dicoms = UncategorisedDicom.objects.filter(user=request.user) + else: + dicoms = UncategorisedDicom.objects.filter() data = defaultdict(list) for d in dicoms: @@ -1039,7 +1046,6 @@ class FindingView(LoginRequiredMixin, SingleTableMixin, FilterView): filterset_class = FindingFilter @login_required -@user_is_author_or_atlas_series_checker def case_order_dicom(request, pk): if request.htmx: case = get_object_or_404(Case, pk=pk) @@ -1047,12 +1053,15 @@ def case_order_dicom(request, pk): fail = [] for series in case.series.all(): try: - series.order_by_dicom() + if request.user in series.get_author_objects(): + series.order_by_dicom() + else: + fail.append(series.pk) except: fail.append(series.pk) if fail: - return HttpResponse(f"Unable to order series {','.join(fail)}") + return HttpResponse(f"Unable to order series {','.join([str(i) for i in fail])}") else: return HttpResponse("Series reordered")