improve the linked cases editor
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
{% extends "atlas/base.html" %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-4">
|
||||
@@ -15,6 +16,12 @@
|
||||
{% if direct_next %}
|
||||
<a class="btn btn-outline-secondary" href="{% url 'atlas:linked_cases_overview' direct_next.pk %}">Next in chain</a>
|
||||
{% endif %}
|
||||
{% if can_edit_chain and not show_case_editor %}
|
||||
<a class="btn btn-outline-info" href="{% url 'atlas:linked_cases_overview' current_case.pk %}?show_editor=1">Open case series editor</a>
|
||||
{% endif %}
|
||||
{% if show_case_editor %}
|
||||
<a class="btn btn-outline-secondary" href="{% url 'atlas:linked_cases_overview' current_case.pk %}">Hide case series editor</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -33,6 +40,7 @@
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="form_action" value="study_dates">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-dark table-hover align-middle mb-0">
|
||||
<thead>
|
||||
@@ -96,6 +104,77 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if show_case_editor and case_editor_formset %}
|
||||
<div class="card border-info-subtle shadow-sm mb-4">
|
||||
<div class="card-body">
|
||||
<div class="d-flex flex-wrap justify-content-between align-items-start gap-3 mb-3">
|
||||
<div>
|
||||
<h2 class="h5 mb-1">Case Series Editor</h2>
|
||||
<p class="text-muted mb-0">Edit full case details across this linked chain in one pass, then optionally copy a single field from one case to every other case.</p>
|
||||
</div>
|
||||
<div class="small text-muted">
|
||||
Editable: {{ editable_case_count }}
|
||||
{% if locked_case_count %} · Read-only: {{ locked_case_count }}{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="form_action" value="case_series_editor">
|
||||
{{ case_editor_formset.management_form }}
|
||||
|
||||
<div class="row g-2 align-items-end mb-3">
|
||||
<div class="col-md-4">
|
||||
<label class="form-label form-label-sm mb-1">Copy field from case</label>
|
||||
<select class="form-select form-select-sm" name="apply_from_case">
|
||||
<option value="">No field propagation</option>
|
||||
{% for row in case_editor_rows %}
|
||||
<option value="{{ row.case.pk }}" {% if case_editor_selected_source == row.case.pk|stringformat:'s' %}selected{% endif %}>
|
||||
{{ row.case.pk }} · {{ row.case.title|default:"Untitled case" }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<label class="form-label form-label-sm mb-1">Field to copy to all linked cases</label>
|
||||
<select class="form-select form-select-sm" name="apply_field">
|
||||
<option value="">Choose a field</option>
|
||||
{% for value, label in case_editor_apply_field_choices %}
|
||||
<option value="{{ value }}" {% if case_editor_selected_field == value %}selected{% endif %}>{{ label }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="small text-muted">Apply runs after saving any edits you make below.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="accordion" id="linked-case-editor-accordion">
|
||||
{% for row in case_editor_rows %}
|
||||
<div class="accordion-item mb-2 border-secondary-subtle">
|
||||
<h2 class="accordion-header" id="editor-heading-{{ row.case.pk }}">
|
||||
<button class="accordion-button {% if not row.is_current %}collapsed{% endif %}" type="button" data-bs-toggle="collapse" data-bs-target="#editor-body-{{ row.case.pk }}" aria-expanded="{% if row.is_current %}true{% else %}false{% endif %}" aria-controls="editor-body-{{ row.case.pk }}">
|
||||
<span class="fw-semibold">Case {{ row.case.pk }} · {{ row.case.title|default:"Untitled case" }}</span>
|
||||
{% if row.is_current %}<span class="badge text-bg-primary ms-2">Current</span>{% endif %}
|
||||
</button>
|
||||
</h2>
|
||||
<div id="editor-body-{{ row.case.pk }}" class="accordion-collapse collapse {% if row.is_current %}show{% endif %}" aria-labelledby="editor-heading-{{ row.case.pk }}" data-bs-parent="#linked-case-editor-accordion">
|
||||
<div class="accordion-body">
|
||||
{{ row.form|crispy }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-end mt-3">
|
||||
<button type="submit" class="btn btn-info">Save case series editor changes</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-lg-8">
|
||||
<div class="card border-secondary-subtle shadow-sm h-100">
|
||||
|
||||
Reference in New Issue
Block a user