Add NormalCase model, views, filters, and templates for managing normal cases
This commit is contained in:
@@ -5,6 +5,7 @@ from dal import autocomplete
|
||||
from django.db.models.base import Model as Model
|
||||
from django.db.models.query import QuerySet
|
||||
from django.db.models import Prefetch
|
||||
from django.db.models import Q
|
||||
from django.shortcuts import render, get_object_or_404, redirect
|
||||
from django import forms
|
||||
from django.utils import timezone
|
||||
@@ -107,6 +108,7 @@ from .models import (
|
||||
UserReportAnswer,
|
||||
PrerequisiteRequired
|
||||
)
|
||||
from .models import NormalCase
|
||||
from .tables import (
|
||||
CaseCollectionTable,
|
||||
CaseTable,
|
||||
@@ -130,6 +132,7 @@ from .filters import (
|
||||
SeriesFilter,
|
||||
StructureFilter,
|
||||
SubspecialtyFilter,
|
||||
NormalCaseFilter,
|
||||
)
|
||||
|
||||
from .tasks import push_case_to_cimar_task
|
||||
@@ -288,6 +291,22 @@ class AtlasEditorRequiredMixin(object):
|
||||
return obj
|
||||
raise PermissionDenied("You must be an atlas editor to do this.") # or Http404
|
||||
|
||||
|
||||
|
||||
class NormalCaseList(LoginRequiredMixin, FilterView):
|
||||
model = NormalCase
|
||||
template_name = "atlas/normals_list.html"
|
||||
filterset_class = NormalCaseFilter
|
||||
paginate_by = 25
|
||||
|
||||
def get_queryset(self):
|
||||
qs = NormalCase.objects.select_related("case", "examination", "modality", "added_by")
|
||||
# Restrict similar to CaseFilter: non-editors only see authored or open_access
|
||||
if not self.request.user.groups.filter(name="atlas_editor").exists():
|
||||
qs = qs.filter((Q(case__author__id=self.request.user.id) | Q(case__open_access=True)))
|
||||
|
||||
return qs.order_by("-added_date")
|
||||
|
||||
@login_required
|
||||
@user_has_case_view_access
|
||||
def case_displaysets(request, pk):
|
||||
|
||||
Reference in New Issue
Block a user