update conditions

This commit is contained in:
Ross
2023-10-24 22:17:53 +01:00
parent de2ceed88a
commit cdf7bc26f4
7 changed files with 55 additions and 2 deletions
+1
View File
@@ -10,6 +10,7 @@
- Privacy policy
- Cookie policy
- Sort out conditions / signs / findings etc
- Search by image id / name / etc
# Future
+4 -1
View File
@@ -52,7 +52,7 @@ import logging
class ConditionForm(ModelForm):
class Meta:
model = Condition
exclude = []
exclude = ["rcr_curriculum"]
widgets = {
"synonym": autocomplete.ModelSelect2Multiple(
@@ -61,6 +61,9 @@ class ConditionForm(ModelForm):
"parent": autocomplete.ModelSelect2Multiple(
url="atlas:condition-autocomplete"
),
"rcr_curriculum_map": autocomplete.ModelSelect2Multiple(
url="atlas:condition-autocomplete-rcr-curriculum"
),
}
@@ -0,0 +1,23 @@
# Generated by Django 4.1.4 on 2023-10-24 11:54
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('atlas', '0022_alter_uncategoriseddicom_series_and_more'),
]
operations = [
migrations.AddField(
model_name='condition',
name='rcr_curriculum',
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name='condition',
name='rcr_curriculum_map',
field=models.ManyToManyField(blank=True, limit_choices_to={'rcr_curriculum': True}, to='atlas.condition'),
),
]
+4
View File
@@ -150,6 +150,10 @@ class Condition(SynMixin, models.Model):
subspecialty = models.ManyToManyField("subspecialty", blank=True)
rcr_curriculum_map = models.ManyToManyField("self", blank=True, limit_choices_to={"rcr_curriculum": True})
rcr_curriculum = models.BooleanField(default=False)
def get_absolute_url(self):
return reverse("atlas:condition_detail", kwargs={"pk": self.pk})
+1 -1
View File
@@ -144,7 +144,7 @@ class ConditionTable(tables.Table):
class Meta:
model = Condition
template_name = "django_tables2/bootstrap4.html"
fields = ("primary", "subspecialty")
fields = ("primary", "subspecialty", "rcr_curriculum_map", "rcr_curriculum")
sequence = ("name",)
def render_synonym(self, value, record):
+6
View File
@@ -279,6 +279,12 @@ urlpatterns = [
views.ConditionAutocomplete.as_view(model=Condition, create_field="name"),
name="condition-autocomplete",
),
path(
"condition-autocomplete-rcr-curriculum",
views.ConditionAutocompleteRCRCurriculum.as_view(model=Condition),
name="condition-autocomplete-rcr-curriculum",
),
path(
"presentation-autocomplete",
views.PresentationAutocomplete.as_view(model=Presentation, create_field="name"),
+16
View File
@@ -1039,6 +1039,22 @@ class ConditionAutocomplete(autocomplete.Select2QuerySetView):
return qs
class ConditionAutocompleteRCRCurriculum(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 Condition.objects.none()
qs = Condition.objects.filter(rcr_curriculum=True)
if self.q:
# This raises a fielderror which breaks creating a new item if not caught
try:
qs = qs.filter(name__icontains=self.q, rcr_curriculum=True)
except FieldError:
return Condition.objects.none()
return qs
class PresentationAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):