Add downsample series functionality and related UI updates

- Implemented asynchronous downsample task for series with progress tracking.
- Added new URL endpoint for downsample status.
- Updated Series model to include source_series_instance_uid.
- Enhanced case display template with new buttons for series actions.
- Added password reset functionality in user profile with appropriate alerts.
- Created migration for new source_series_instance_uid field in Series model.
This commit is contained in:
Ross
2026-05-18 16:20:38 +01:00
parent c55797636a
commit 63ea4cdf23
12 changed files with 606 additions and 294 deletions
+31 -32
View File
@@ -13,7 +13,7 @@
draggable="true">
<input type="checkbox" class="hide" name="series-ids" value="{{series.pk}}">
<div class="series-card-shell">
<button type="button"
<div type="button"
class="series-card-main"
data-series-action="details"
data-series-id="{{series.pk}}"
@@ -37,32 +37,31 @@
<span class="series-card-image-count">{{ series.visible_image_count }} image{{ series.visible_image_count|pluralize }}</span>
</div>
<div class="series-card-description">{{ series.description|default:"No description" }}</div>
<button type="button"
class="btn btn-outline-info btn-sm series-open-primary-btn"
title="View series in viewer"
data-series-id="{{series.pk}}"
data-series-name="{{ series|escape }}">
<i class="bi bi-eye"></i> View1
</button>
<div class="series-card-inline-actions">
<button type="button"
class="btn btn-outline-primary btn-sm select-series-btn"
style="display: none;"
data-series-id="{{series.pk}}">
Select
</button>
<button type="button"
class="btn btn-outline-info btn-sm series-open-new-viewport-btn d-none"
title="View series in a new pane"
data-series-id="{{series.pk}}"
data-series-name="{{ series|escape }}"
tabindex="-1"
aria-hidden="true">
<i class="bi bi-layout-split"></i> View in new pane
</button>
</div>
</div>
</button>
<div class="series-card-controls">
<button type="button"
class="btn btn-outline-primary btn-sm select-series-btn"
style="display: none;"
data-series-id="{{series.pk}}">
Select
</button>
<button type="button"
class="btn btn-outline-info btn-sm series-open-primary-btn"
title="View series in viewer"
data-series-id="{{series.pk}}"
data-series-name="{{ series|escape }}">
<i class="bi bi-eye"></i> View
</button>
<button type="button"
class="btn btn-outline-info btn-sm series-open-new-viewport-btn d-none"
title="View series in a new pane"
data-series-id="{{series.pk}}"
data-series-name="{{ series|escape }}"
tabindex="-1"
aria-hidden="true">
<i class="bi bi-layout-split"></i> View in new pane
</button>
</div>
</div>
</article>
@@ -2122,7 +2121,7 @@
min-width: 0;
display: flex;
flex-direction: column;
gap: 0.15rem;
gap: 0.3rem;
}
.series-card-heading {
font-size: 0.85rem;
@@ -2145,14 +2144,14 @@
-webkit-box-orient: vertical;
overflow: hidden;
}
.series-card-controls {
.series-card-inline-actions {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
margin-top: auto;
margin-top: 0.2rem;
}
.series-card-controls .btn {
flex: 1;
min-width: 0;
.series-card-inline-actions .btn {
flex: 0 0 auto;
padding: 0.3rem 0.4rem;
font-size: 0.75rem;
}