update conditions
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
- Privacy policy
|
- Privacy policy
|
||||||
- Cookie policy
|
- Cookie policy
|
||||||
- Sort out conditions / signs / findings etc
|
- Sort out conditions / signs / findings etc
|
||||||
|
- Search by image id / name / etc
|
||||||
|
|
||||||
|
|
||||||
# Future
|
# Future
|
||||||
|
|||||||
+4
-1
@@ -52,7 +52,7 @@ import logging
|
|||||||
class ConditionForm(ModelForm):
|
class ConditionForm(ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Condition
|
model = Condition
|
||||||
exclude = []
|
exclude = ["rcr_curriculum"]
|
||||||
|
|
||||||
widgets = {
|
widgets = {
|
||||||
"synonym": autocomplete.ModelSelect2Multiple(
|
"synonym": autocomplete.ModelSelect2Multiple(
|
||||||
@@ -61,6 +61,9 @@ class ConditionForm(ModelForm):
|
|||||||
"parent": autocomplete.ModelSelect2Multiple(
|
"parent": autocomplete.ModelSelect2Multiple(
|
||||||
url="atlas:condition-autocomplete"
|
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'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -150,6 +150,10 @@ class Condition(SynMixin, models.Model):
|
|||||||
|
|
||||||
subspecialty = models.ManyToManyField("subspecialty", blank=True)
|
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):
|
def get_absolute_url(self):
|
||||||
return reverse("atlas:condition_detail", kwargs={"pk": self.pk})
|
return reverse("atlas:condition_detail", kwargs={"pk": self.pk})
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -144,7 +144,7 @@ class ConditionTable(tables.Table):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Condition
|
model = Condition
|
||||||
template_name = "django_tables2/bootstrap4.html"
|
template_name = "django_tables2/bootstrap4.html"
|
||||||
fields = ("primary", "subspecialty")
|
fields = ("primary", "subspecialty", "rcr_curriculum_map", "rcr_curriculum")
|
||||||
sequence = ("name",)
|
sequence = ("name",)
|
||||||
|
|
||||||
def render_synonym(self, value, record):
|
def render_synonym(self, value, record):
|
||||||
|
|||||||
@@ -279,6 +279,12 @@ urlpatterns = [
|
|||||||
views.ConditionAutocomplete.as_view(model=Condition, create_field="name"),
|
views.ConditionAutocomplete.as_view(model=Condition, create_field="name"),
|
||||||
name="condition-autocomplete",
|
name="condition-autocomplete",
|
||||||
),
|
),
|
||||||
|
path(
|
||||||
|
"condition-autocomplete-rcr-curriculum",
|
||||||
|
views.ConditionAutocompleteRCRCurriculum.as_view(model=Condition),
|
||||||
|
name="condition-autocomplete-rcr-curriculum",
|
||||||
|
),
|
||||||
|
|
||||||
path(
|
path(
|
||||||
"presentation-autocomplete",
|
"presentation-autocomplete",
|
||||||
views.PresentationAutocomplete.as_view(model=Presentation, create_field="name"),
|
views.PresentationAutocomplete.as_view(model=Presentation, create_field="name"),
|
||||||
|
|||||||
@@ -1039,6 +1039,22 @@ class ConditionAutocomplete(autocomplete.Select2QuerySetView):
|
|||||||
|
|
||||||
return qs
|
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):
|
class PresentationAutocomplete(autocomplete.Select2QuerySetView):
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user