This commit is contained in:
Ross
2021-12-06 16:41:32 +00:00
parent 2f821a2878
commit 7dcaa4f439
3 changed files with 83 additions and 21 deletions
+80 -18
View File
@@ -3,6 +3,7 @@ import django_filters
from .models import Case, Condition, Finding, Series, Structure
from django.contrib.auth.models import User
def get_authors(request):
if request is None:
return User.objects.none()
@@ -15,55 +16,116 @@ def get_authors(request):
return queryset
class AtlasFilter(django_filters.FilterSet):
author = django_filters.ModelMultipleChoiceFilter(queryset=get_authors, null_label="No author")
class CaseFilter(django_filters.FilterSet):
author = django_filters.ModelMultipleChoiceFilter(
queryset=get_authors, null_label="No author"
)
foo = django_filters.filters.ModelMultipleChoiceFilter(
field_name='differential__condition',
to_field_name='Diff',
queryset=Condition.objects.all(),
)
class Meta:
model = Case
fields = (#"site",
"created_date", "open_access", "author")
fields = ("created_date", "open_access", "author") # "site",
def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None):
def __init__(
self,
data=None,
queryset=None,
prefix=None,
strict=None,
user=None,
request=None,
):
if not request.user.groups.filter(name="atlas_checker").exists():
#queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id)
# queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id)
queryset = queryset.filter(author__id=request.user.id)
super(AtlasFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request)
super(CaseFilter, self).__init__(
data=data, queryset=queryset, prefix=prefix, request=request
)
pass
class SeriesFilter(django_filters.FilterSet):
class Meta:
model = Series
fields = ("modality","case", "examination", "author")
fields = ("modality", "case", "examination", "author")
def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None):
def __init__(
self,
data=None,
queryset=None,
prefix=None,
strict=None,
user=None,
request=None,
):
if not request.user.groups.filter(name="atlas_checker").exists():
#queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id)
# queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id)
queryset = queryset.filter(author__id=request.user.id)
super(SeriesFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request)
super(SeriesFilter, self).__init__(
data=data, queryset=queryset, prefix=prefix, request=request
)
pass
class ConditionFilter(django_filters.FilterSet):
class Meta:
model = Condition
fields = ("name", "primary", "synonym", "parent", "subspecialty")
def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None):
super(ConditionFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request)
def __init__(
self,
data=None,
queryset=None,
prefix=None,
strict=None,
user=None,
request=None,
):
super(ConditionFilter, self).__init__(
data=data, queryset=queryset, prefix=prefix, request=request
)
pass
class FindingFilter(django_filters.FilterSet):
class Meta:
model = Finding
fields = ("name", "primary", "synonym")
def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None):
super(FindingFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request)
def __init__(
self,
data=None,
queryset=None,
prefix=None,
strict=None,
user=None,
request=None,
):
super(FindingFilter, self).__init__(
data=data, queryset=queryset, prefix=prefix, request=request
)
pass
class StructureFilter(django_filters.FilterSet):
class Meta:
model = Structure
fields = {"name": ["icontains"], "primary": ["exact"], "synonym": ["exact"]}
def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None):
super(StructureFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request)
pass
def __init__(
self,
data=None,
queryset=None,
prefix=None,
strict=None,
user=None,
request=None,
):
super(StructureFilter, self).__init__(
data=data, queryset=queryset, prefix=prefix, request=request
)
pass
+1 -1
View File
@@ -240,7 +240,7 @@ class Case(models.Model):
def __str__(self):
examinations = [series.get_examination() for series in self.series.all()]
return f"{self.pk}:{self.title} {'/'.join([str(c) for c in self.condition.all()])}, {', '.join(examinations)}"
return f"{self.pk}:{self.title} {'/'.join([str(c) for c in self.condition.all()])} [{', '.join(examinations)}]"
class SeriesImage(models.Model):
+2 -2
View File
@@ -50,7 +50,7 @@ from .models import (
)
from .tables import CaseTable, ConditionTable, FindingTable, SeriesTable, StructureTable
from .filters import (
AtlasFilter,
CaseFilter,
ConditionFilter,
FindingFilter,
SeriesFilter,
@@ -590,7 +590,7 @@ class CaseView(LoginRequiredMixin, SingleTableMixin, FilterView):
table_class = CaseTable
template_name = "atlas/view.html"
filterset_class = AtlasFilter
filterset_class = CaseFilter
class SeriesView(LoginRequiredMixin, SingleTableMixin, FilterView):