improve case form
This commit is contained in:
+7
-1
@@ -533,6 +533,13 @@ class CaseSeriesForm(ModelForm):
|
|||||||
else:
|
else:
|
||||||
queryset = Series.objects.all()
|
queryset = Series.objects.all()
|
||||||
|
|
||||||
|
# Optimize the queryset for the ModelChoiceField
|
||||||
|
queryset = queryset.select_related(
|
||||||
|
"modality"
|
||||||
|
).prefetch_related(
|
||||||
|
"examination", "plane", "contrast", "images"
|
||||||
|
)
|
||||||
|
|
||||||
self.fields["series"] = ModelChoiceField(
|
self.fields["series"] = ModelChoiceField(
|
||||||
required=False,
|
required=False,
|
||||||
queryset=queryset,
|
queryset=queryset,
|
||||||
@@ -541,7 +548,6 @@ class CaseSeriesForm(ModelForm):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class CaseCollectionCaseForm(ModelForm):
|
class CaseCollectionCaseForm(ModelForm):
|
||||||
def __init__(self, *args, user, collection=None, **kwargs):
|
def __init__(self, *args, user, collection=None, **kwargs):
|
||||||
super(CaseCollectionCaseForm, self).__init__(*args, **kwargs)
|
super(CaseCollectionCaseForm, self).__init__(*args, **kwargs)
|
||||||
|
|||||||
@@ -143,51 +143,87 @@
|
|||||||
|
|
||||||
{% comment %} {{ form }} {% endcomment %}
|
{% comment %} {{ form }} {% endcomment %}
|
||||||
|
|
||||||
<h3>Series:</h3>
|
<!-- Series Collapsible Panel (Dark Themed) -->
|
||||||
Add image sets here. These can only be added once created (they can also be added to cases on creation).
|
<div class="card my-3 bg-dark text-white">
|
||||||
<input type="button" value="Add More Series" id="add_more_series">
|
<div class="card-header">
|
||||||
<div id="series_formset" class="list_formset">
|
<a class="collapsed text-white" data-bs-toggle="collapse" href="#seriesPanel" role="button" aria-expanded="false" aria-controls="seriesPanel">
|
||||||
<ol>
|
<h3 class="d-inline">Series</h3>
|
||||||
{% for form in series_formset %}
|
<span class="ms-2">(click to expand/collapse)</span>
|
||||||
<li class="no-error series-formset">
|
</a>
|
||||||
{{form.non_field_errors}}
|
</div>
|
||||||
{{form.errors}}
|
<div class="collapse" id="seriesPanel">
|
||||||
{{ form | crispy}}
|
<input type="button" value="Add More Series" id="add_more_series" class="btn btn-sm btn-light float-end">
|
||||||
</li>
|
<div class="card-body bg-dark text-white">
|
||||||
{% endfor %}
|
<p>Add image sets here. These can only be added once created (they can also be added to cases on creation).</p>
|
||||||
</ol>
|
<div id="series_formset" class="list_formset">
|
||||||
|
<ol>
|
||||||
|
{% for form in series_formset %}
|
||||||
|
<li class="no-error series-formset">
|
||||||
|
{{form.non_field_errors}}
|
||||||
|
{{form.errors}}
|
||||||
|
{{ form | crispy}}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
{{ series_formset.management_form | crispy }}
|
||||||
</div>
|
</div>
|
||||||
{{ series_formset.management_form | crispy }}
|
</div>
|
||||||
<h3>Differential:</h3>
|
</div>
|
||||||
Add differential here.
|
|
||||||
<input type="button" value="Add Another Differential" id="add_more_differential">
|
<!-- Differential Collapsible Panel -->
|
||||||
<div id="casedifferential_formset" class="list_formset">
|
<div class="card my-3 bg-dark text-white">
|
||||||
<ol>
|
<div class="card-header">
|
||||||
{% for form in casedifferential_formset %}
|
<a class="collapsed text-white" data-bs-toggle="collapse" href="#differentialPanel" role="button" aria-expanded="false" aria-controls="differentialPanel">
|
||||||
<li class="no-error casedifferential_formset">
|
<h3 class="d-inline">Differential</h3>
|
||||||
{{form.non_field_errors}}
|
<span class="ms-2">(click to expand/collapse)</span>
|
||||||
{{form.errors}}
|
</a>
|
||||||
{{ form | crispy}}
|
</div>
|
||||||
</li>
|
<div class="collapse" id="differentialPanel">
|
||||||
{% endfor %}
|
<input type="button" value="Add Another Differential" id="add_more_differential" class="btn btn-sm btn-primary float-end">
|
||||||
</ol>
|
<div class="card-body">
|
||||||
|
<div id="casedifferential_formset" class="list_formset">
|
||||||
|
<ol>
|
||||||
|
{% for form in casedifferential_formset %}
|
||||||
|
<li class="no-error casedifferential_formset">
|
||||||
|
{{form.non_field_errors}}
|
||||||
|
{{form.errors}}
|
||||||
|
{{ form | crispy}}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
{{ casedifferential_formset.management_form | crispy }}
|
||||||
</div>
|
</div>
|
||||||
{{ casedifferential_formset.management_form | crispy }}
|
</div>
|
||||||
<h3>Resource:</h3>
|
</div>
|
||||||
Add resource here. Resource can be anything that is useful for the case (videos, pdf, etc). This can either be avalaible before attempting the case (such a for a pre reading list) or after.
|
|
||||||
<input type="button" value="Add Another Resource" id="add_more_resource">
|
<!-- Resource Collapsible Panel -->
|
||||||
<div id="caseresource_formset" class="list_formset">
|
<div class="card my-3 bg-dark text-white">
|
||||||
<ol>
|
<div class="card-header">
|
||||||
{% for form in caseresource_formset %}
|
<a class="collapsed text-white" data-bs-toggle="collapse" href="#resourcePanel" role="button" aria-expanded="false" aria-controls="resourcePanel">
|
||||||
<li class="no-error caseresource_formset">
|
<h3 class="d-inline">Resource</h3>
|
||||||
{{form.non_field_errors}}
|
<span class="ms-2">(click to expand/collapse)</span>
|
||||||
{{form.errors}}
|
</a>
|
||||||
{{ form | crispy}}
|
</div>
|
||||||
</li>
|
<div class="collapse" id="resourcePanel">
|
||||||
{% endfor %}
|
<input type="button" value="Add Another Resource" id="add_more_resource" class="btn btn-sm btn-primary float-end">
|
||||||
</ol>
|
<div class="card-body">
|
||||||
|
<div id="caseresource_formset" class="list_formset">
|
||||||
|
<ol>
|
||||||
|
{% for form in caseresource_formset %}
|
||||||
|
<li class="no-error caseresource_formset">
|
||||||
|
{{form.non_field_errors}}
|
||||||
|
{{form.errors}}
|
||||||
|
{{ form | crispy}}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
{{ caseresource_formset.management_form | crispy}}
|
||||||
</div>
|
</div>
|
||||||
{{ caseresource_formset.management_form | crispy}}
|
</div>
|
||||||
|
</div>
|
||||||
<br/>
|
<br/>
|
||||||
<input type="submit" class="submit-button" value="Submit" name="submit">
|
<input type="submit" class="submit-button" value="Submit" name="submit">
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -1052,6 +1052,25 @@ class AtlasUpdate(
|
|||||||
# #initial = {'date_of_death': '05/01/2018'}
|
# #initial = {'date_of_death': '05/01/2018'}
|
||||||
# exclude = [ 'created_date', 'published_date' ]
|
# exclude = [ 'created_date', 'published_date' ]
|
||||||
|
|
||||||
|
|
||||||
|
#def get_object(self, queryset=None):
|
||||||
|
# # Prefetch all related objects needed for the form and formsets
|
||||||
|
# qs = self.model.objects.select_related(
|
||||||
|
# # Add all FK fields here
|
||||||
|
# ).prefetch_related(
|
||||||
|
# "series__examination",
|
||||||
|
# "series__plane",
|
||||||
|
# "series__contrast",
|
||||||
|
# "series__images",
|
||||||
|
# "subspecialty",
|
||||||
|
# "condition",
|
||||||
|
# "presentation",
|
||||||
|
# "pathological_process",
|
||||||
|
# "differentialcase",
|
||||||
|
# "caseresource_set",
|
||||||
|
# )
|
||||||
|
# return qs.get(pk=self.kwargs["pk"])
|
||||||
|
|
||||||
def get_form_kwargs(self):
|
def get_form_kwargs(self):
|
||||||
kwargs = super(AtlasUpdate, self).get_form_kwargs()
|
kwargs = super(AtlasUpdate, self).get_form_kwargs()
|
||||||
kwargs.update({"user": self.request.user})
|
kwargs.update({"user": self.request.user})
|
||||||
|
|||||||
Reference in New Issue
Block a user