From fe1cc1e47e6458fc9a312d11e8d3d3570f804fbd Mon Sep 17 00:00:00 2001 From: Ross Date: Tue, 7 Dec 2021 11:39:24 +0000 Subject: [PATCH] . --- atlas/urls.py | 7 ++++++- atlas/views.py | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/atlas/urls.py b/atlas/urls.py index 8bede613..f6396467 100755 --- a/atlas/urls.py +++ b/atlas/urls.py @@ -1,6 +1,6 @@ from django.urls import path, include -from atlas.models import Condition, Finding, Structure +from atlas.models import Condition, Finding, Presentation, Structure from . import views app_name = "atlas" @@ -123,6 +123,11 @@ urlpatterns = [ views.ConditionAutocomplete.as_view(model=Condition, create_field="name"), name="condition-autocomplete", ), + path( + "presentation-autocomplete", + views.PresentationAutocomplete.as_view(model=Presentation, create_field="name"), + name="presentation-autocomplete", + ), path( "finding-autocomplete", views.FindingAutocomplete.as_view(model=Finding, create_field="name"), diff --git a/atlas/views.py b/atlas/views.py index dff96284..edadb89b 100755 --- a/atlas/views.py +++ b/atlas/views.py @@ -40,6 +40,7 @@ from .forms import ( from .models import ( Case, Condition, + Presentation, Series, Examination, Finding, @@ -740,6 +741,23 @@ class ConditionAutocomplete(autocomplete.Select2QuerySetView): return qs +class PresentationAutocomplete(autocomplete.Select2QuerySetView): + def get_queryset(self): + # Don't forget to filter out results depending on the visitor ! + if not self.request.user.is_authenticated: + return Presentation.objects.none() + + qs = Presentation.objects.all() + + if self.q: + # This raises a fielderror which breaks creating a new item if not caught + try: + qs = qs.filter(name__icontains=self.q) + except FieldError: + return Presentation.objects.none() + + return qs + class FindingAutocomplete(autocomplete.Select2QuerySetView): def get_queryset(self):