Add user-configurable pagination and enhance case view filters

This commit is contained in:
Ross
2025-08-11 17:12:22 +01:00
parent 99bc89fe20
commit a8840290f5
4 changed files with 52 additions and 13 deletions
+5 -3
View File
@@ -7,7 +7,9 @@
{% block content %}
<div class="container-fluid">
<h2>My Cases</h2>
<h2>Cases</h2>
Quick filters:<br/>
Show <a href='{% url "atlas:case_view" %}?author={{request.user.id}}'>my cases only</a>, <a href='{% url "atlas:case_view" %}'>all cases</a>
<details>
<summary>
<h4>Filter</h4>
@@ -20,7 +22,6 @@
</div>
View my <a href='{% url "atlas:case_view" %}?author={{request.user.id}}'>cases</a>.
</details>
<form>
<details id="actions-detail" class="mt-3">
<summary>
@@ -78,7 +79,8 @@
</details>
{% render_table table %}
</form>
</div>
{% include "generic/partials/page_size_form.html" %}
<div id="exam-options"></div>
{% endblock %}
+10 -10
View File
@@ -27,7 +27,7 @@ from django.views.generic import View
from django.views.generic.detail import DetailView
import pydicom
from pydicom.uid import generate_uid
from generic.mixins import SuperuserRequiredMixin
from generic.mixins import SuperuserRequiredMixin, UserConfigurablePaginationMixin
from django.views.generic.edit import CreateView, UpdateView, DeleteView, FormView
from django.views.generic import ListView
@@ -1580,7 +1580,7 @@ def get_examination_id(request):
return HttpResponse("/")
class CaseView(LoginRequiredMixin, SingleTableMixin, FilterView):
class CaseView(LoginRequiredMixin, UserConfigurablePaginationMixin, SingleTableMixin, FilterView):
model = Case
table_class = CaseTable
template_name = "atlas/case_view.html"
@@ -1588,7 +1588,7 @@ class CaseView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = CaseFilter
class SeriesView(LoginRequiredMixin, SingleTableMixin, FilterView):
class SeriesView(LoginRequiredMixin, UserConfigurablePaginationMixin, SingleTableMixin, FilterView):
model = Series
table_class = SeriesTable
template_name = "atlas/series_view.html"
@@ -1596,7 +1596,7 @@ class SeriesView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = SeriesFilter
class ConditionView(LoginRequiredMixin, SingleTableMixin, FilterView):
class ConditionView(LoginRequiredMixin, UserConfigurablePaginationMixin, SingleTableMixin, FilterView):
model = Condition
table_class = ConditionTable
template_name = "atlas/view.html"
@@ -1604,7 +1604,7 @@ class ConditionView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = ConditionFilter
class QuestionSchemaView(LoginRequiredMixin, SingleTableMixin, FilterView):
class QuestionSchemaView(LoginRequiredMixin, UserConfigurablePaginationMixin, SingleTableMixin, FilterView):
model = QuestionSchema
table_class = QuestionSchemaTable
template_name = "atlas/schema_table_view.html"
@@ -1612,7 +1612,7 @@ class QuestionSchemaView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = QuestionSchemaFilter
class SubspecialtyView(LoginRequiredMixin, SingleTableMixin, FilterView):
class SubspecialtyView(LoginRequiredMixin, UserConfigurablePaginationMixin, SingleTableMixin, FilterView):
model = Subspecialty
table_class = SubspecialtyTable
template_name = "atlas/view.html"
@@ -1620,7 +1620,7 @@ class SubspecialtyView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = SubspecialtyFilter
class PresentationView(LoginRequiredMixin, SingleTableMixin, FilterView):
class PresentationView(LoginRequiredMixin, UserConfigurablePaginationMixin, SingleTableMixin, FilterView):
model = Presentation
table_class = PresentationTable
template_name = "atlas/view.html"
@@ -1628,7 +1628,7 @@ class PresentationView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = PresentationFilter
class PathologicalProcessView(LoginRequiredMixin, SingleTableMixin, FilterView):
class PathologicalProcessView(LoginRequiredMixin, UserConfigurablePaginationMixin, SingleTableMixin, FilterView):
model = PathologicalProcess
table_class = PathologicalProcessTable
template_name = "atlas/view.html"
@@ -1636,7 +1636,7 @@ class PathologicalProcessView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = PathologicalProcessFilter
class StructureView(LoginRequiredMixin, SingleTableMixin, FilterView):
class StructureView(LoginRequiredMixin, UserConfigurablePaginationMixin, SingleTableMixin, FilterView):
model = Structure
table_class = StructureTable
template_name = "atlas/view.html"
@@ -1644,7 +1644,7 @@ class StructureView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = StructureFilter
class FindingView(LoginRequiredMixin, SingleTableMixin, FilterView):
class FindingView(LoginRequiredMixin, UserConfigurablePaginationMixin, SingleTableMixin, FilterView):
model = Finding
table_class = FindingTable
template_name = "atlas/view.html"