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"
|
return "No collections"
|
||||||
|
|
||||||
def render_case_size(self, value, record):
|
def render_case_size(self, value, record):
|
||||||
|
# Prefer cached case-level value, then model helper.
|
||||||
if value is None:
|
if value is None:
|
||||||
try:
|
try:
|
||||||
value = record.get_total_series_images_size()
|
value = record.get_total_series_images_size()
|
||||||
except Exception:
|
except Exception:
|
||||||
value = None
|
value = None
|
||||||
|
|
||||||
|
# If still missing, fall back to summing per-series sizes.
|
||||||
if value is None:
|
if value is None:
|
||||||
return "-"
|
computed_total = 0
|
||||||
return filesizeformat(value)
|
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(
|
associated_cases = tables.Column(
|
||||||
verbose_name="Associated Cases", accessor="pk", orderable=False
|
verbose_name="Associated Cases", accessor="pk", orderable=False
|
||||||
|
|||||||
+4
-6
@@ -3455,14 +3455,12 @@ def user_uploads(
|
|||||||
field = case_series_form.fields.get(field_name)
|
field = case_series_form.fields.get(field_name)
|
||||||
if field is None:
|
if field is None:
|
||||||
continue
|
continue
|
||||||
attrs = dict(getattr(field.widget, "attrs", {}) or {})
|
field.widget = forms.SelectMultiple(
|
||||||
attrs.update(
|
attrs={
|
||||||
{
|
"class": "form-select",
|
||||||
"data-dropdown-parent": "#caseSeriesModal",
|
"size": 8,
|
||||||
"data-width": "100%",
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
field.widget.attrs = attrs
|
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
|
|||||||
Reference in New Issue
Block a user