Enhance import preview and backend handling for M2M relationships, adding sources to schema and improving missing values mapping for better template rendering and debugging.
This commit is contained in:
@@ -54,86 +54,94 @@
|
||||
<div class="small text-info">Would create: {{ item.missing_map.Finding|join:", " }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Structure -->
|
||||
<div class="m2m-group" data-model="Structure"><strong>Structure:</strong>
|
||||
{% if item.resolved_m2m.structure %}
|
||||
{% for val in item.resolved_m2m.structure %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Structure" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.missing_map.Structure %}
|
||||
{% for val in item.missing_map.Structure %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Structure" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<span class="text-muted m2m-none" style="display:none">(none)</span>
|
||||
{% if item.missing_map.Structure %}
|
||||
<div class="small text-info">Would create: {{ item.missing_map.Structure|join:", " }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="m2m-group" data-model="Structure"><strong>Structure:</strong>
|
||||
{% if item.resolved_m2m.structure %}
|
||||
{% for val in item.resolved_m2m.structure %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Structure" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.missing_map.Structure %}
|
||||
{% for val in item.missing_map.Structure %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Structure" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<span class="text-muted m2m-none" style="display:none">(none)</span>
|
||||
{% if item.missing_map.Structure %}
|
||||
<div class="small text-info">Would create: {{ item.missing_map.Structure|join:", " }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<!-- Condition -->
|
||||
<div class="m2m-group" data-model="Condition"><strong>Condition:</strong>
|
||||
{% if item.resolved_m2m.condition %}
|
||||
{% for val in item.resolved_m2m.condition %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Condition" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.missing_map.Condition %}
|
||||
{% for val in item.missing_map.Condition %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Condition" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<span class="text-muted m2m-none" style="display:none">(none)</span>
|
||||
{% if item.missing_map.Condition %}
|
||||
<div class="small text-info">Would create: {{ item.missing_map.Condition|join:", " }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="m2m-group" data-model="Condition"><strong>Condition:</strong>
|
||||
{% if item.resolved_m2m.condition %}
|
||||
{% for val in item.resolved_m2m.condition %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Condition" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.missing_map.Condition %}
|
||||
{% for val in item.missing_map.Condition %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Condition" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<span class="text-muted m2m-none" style="display:none">(none)</span>
|
||||
{% if item.missing_map.Condition %}
|
||||
<div class="small text-info">Would create: {{ item.missing_map.Condition|join:", " }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<!-- Presentation -->
|
||||
<div class="m2m-group" data-model="Presentation"><strong>Presentation:</strong>
|
||||
{% if item.resolved_m2m.presentation %}
|
||||
{% for val in item.resolved_m2m.presentation %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Presentation" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.missing_map.Presentation %}
|
||||
{% for val in item.missing_map.Presentation %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Presentation" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<span class="text-muted m2m-none" style="display:none">(none)</span>
|
||||
{% if item.missing_map.Presentation %}
|
||||
<div class="small text-info">Would create: {{ item.missing_map.Presentation|join:", " }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="m2m-group" data-model="Presentation"><strong>Presentation:</strong>
|
||||
{% if item.resolved_m2m.presentation %}
|
||||
{% for val in item.resolved_m2m.presentation %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Presentation" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.missing_map.Presentation %}
|
||||
{% for val in item.missing_map.Presentation %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Presentation" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<span class="text-muted m2m-none" style="display:none">(none)</span>
|
||||
{% if item.missing_map.Presentation %}
|
||||
<div class="small text-info">Would create: {{ item.missing_map.Presentation|join:", " }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<!-- Subspecialty -->
|
||||
<div class="m2m-group" data-model="Subspecialty"><strong>Subspecialty:</strong>
|
||||
{% if item.resolved_m2m.subspecialty %}
|
||||
{% for val in item.resolved_m2m.subspecialty %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Subspecialty" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.missing_map.Subspecialty %}
|
||||
{% for val in item.missing_map.Subspecialty %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Subspecialty" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<span class="text-muted m2m-none" style="display:none">(none)</span>
|
||||
{% if item.missing_map.Subspecialty %}
|
||||
<div class="small text-info">Would create: {{ item.missing_map.Subspecialty|join:", " }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="m2m-group" data-model="Subspecialty"><strong>Subspecialty:</strong>
|
||||
{% if item.resolved_m2m.subspecialty %}
|
||||
{% for val in item.resolved_m2m.subspecialty %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Subspecialty" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.missing_map.Subspecialty %}
|
||||
{% for val in item.missing_map.Subspecialty %}
|
||||
<button type="button" class="m2m-toggle btn btn-sm btn-success ms-1" data-idx="{{ item.index }}" data-model="Subspecialty" data-value="{{ val }}">{{ val }}</button>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<span class="text-muted m2m-none" style="display:none">(none)</span>
|
||||
{% if item.missing_map.Subspecialty %}
|
||||
<div class="small text-info">Would create: {{ item.missing_map.Subspecialty|join:", " }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div>
|
||||
<label><input type="checkbox" name="selected" value="{{ item.index }}" checked> Include</label>
|
||||
</div>
|
||||
<!-- container for hidden exclude inputs for this item -->
|
||||
<div id="exclude-container-{{ item.index }}"></div>
|
||||
</div>
|
||||
<!-- DEBUG: show raw resolved and missing maps for troubleshooting -->
|
||||
<div class="card-footer text-monospace small">
|
||||
<details>
|
||||
<summary>Debug: resolved_m2m / missing_map (click to expand)</summary>
|
||||
<pre style="white-space:pre-wrap;">resolved_m2m: {{ item.resolved_m2m|default:"{}" }}
|
||||
missing_map: {{ item.missing_map|default:"{}" }}</pre>
|
||||
</details>
|
||||
</div>
|
||||
<div>
|
||||
<label><input type="checkbox" name="selected" value="{{ item.index }}" checked> Include</label>
|
||||
</div>
|
||||
<!-- container for hidden exclude inputs for this item -->
|
||||
<div id="exclude-container-{{ item.index }}"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user