Refactor case size rendering logic and update user uploads template for improved UI
This commit is contained in:
+18
-2
@@ -161,14 +161,30 @@ class CaseTable(SelectionTable):
|
||||
return "No collections"
|
||||
|
||||
def render_case_size(self, value, record):
|
||||
# Prefer cached case-level value, then model helper.
|
||||
if value is None:
|
||||
try:
|
||||
value = record.get_total_series_images_size()
|
||||
except Exception:
|
||||
value = None
|
||||
|
||||
# If still missing, fall back to summing per-series sizes.
|
||||
if value is None:
|
||||
return "-"
|
||||
return filesizeformat(value)
|
||||
computed_total = 0
|
||||
try:
|
||||
for series in record.series.all():
|
||||
series_size = series.total_image_size
|
||||
if series_size is None:
|
||||
try:
|
||||
series_size = series.get_total_image_size(refresh=True)
|
||||
except Exception:
|
||||
series_size = 0
|
||||
computed_total += int(series_size or 0)
|
||||
except Exception:
|
||||
computed_total = 0
|
||||
value = computed_total
|
||||
|
||||
return filesizeformat(int(value or 0))
|
||||
|
||||
associated_cases = tables.Column(
|
||||
verbose_name="Associated Cases", accessor="pk", orderable=False
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
class="btn btn-primary"
|
||||
>Import {% if case %}into case{% endif %}</button>
|
||||
<button id="import-into-case-button" type="button" class="btn btn-outline-primary" data-bs-toggle="modal" data-bs-target="#caseSelectModal">Import into case…</button>
|
||||
<button id="import-case-series-button" type="button" class="btn btn-outline-success" data-bs-toggle="modal" data-bs-target="#caseSeriesModal" disabled>Import as case series…</button>
|
||||
<button id="import-case-series-button" type="button" class="btn btn-outline-success" data-bs-toggle="modal" data-bs-target="#caseSeriesModal" disabled>Import as case series…</button>
|
||||
</div>
|
||||
|
||||
<div id="import-status" class="mt-3"></div>
|
||||
|
||||
+4
-6
@@ -3455,14 +3455,12 @@ def user_uploads(
|
||||
field = case_series_form.fields.get(field_name)
|
||||
if field is None:
|
||||
continue
|
||||
attrs = dict(getattr(field.widget, "attrs", {}) or {})
|
||||
attrs.update(
|
||||
{
|
||||
"data-dropdown-parent": "#caseSeriesModal",
|
||||
"data-width": "100%",
|
||||
field.widget = forms.SelectMultiple(
|
||||
attrs={
|
||||
"class": "form-select",
|
||||
"size": 8,
|
||||
}
|
||||
)
|
||||
field.widget.attrs = attrs
|
||||
|
||||
return render(
|
||||
request,
|
||||
|
||||
Reference in New Issue
Block a user