Refactor case size rendering logic and update user uploads template for improved UI

This commit is contained in:
Ross
2026-05-28 23:15:01 +01:00
parent d74cfe73e0
commit 060333c006
3 changed files with 23 additions and 9 deletions
+18 -2
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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,