{% extends 'core/base.html' %} {% block title %}Import {{ module_title }} - {{ org.name }} | Killian{% endblock %} {% block content %}

Import {{ module_title }}

Scan a Killian JSON export, review every difference against {{ org.name }}, then explicitly approve the import.

Back

Select JSON File

Only Killian {{ module_title }} JSON export files are supported.
{% csrf_token %}
{% if error %}
Import could not continue.
{{ error }}
{% endif %} {% if preview %}

Import Preview

Nothing has been imported yet.
Reviewed import into {{ org.name }} — {{ preview.module }}
Source organization: {{ preview.organization|default:"Unknown" }}. Killian compared the uploaded JSON with the current {{ preview.module }} records before making any changes. Existing Only records will be preserved, Added records will be created, and Changed records will be updated only after approval below.
{% if preview.comparison.warnings %}
Review warning {% for warning in preview.comparison.warnings %}
{{ warning }}
{% endfor %}
{% endif %}
Added
{{ preview.comparison.added_count }}
Changed
{{ preview.comparison.changed_count }}
Existing Only
{{ preview.comparison.existing_only_count }}
Unchanged
{{ preview.comparison.unchanged_count }}
Show differences Hide differences
{% if preview.comparison.changed %}
Changed records ({{ preview.comparison.changed_count }})
{% for record in preview.comparison.changed %}
{{ record.model_label }} — {{ record.title }}
Source ID: {{ record.source_pk }}
{% for change in record.changes %} {% endfor %}
Field Current Backup
{{ change.field }} {{ change.current }} {{ change.backup }}
{% endfor %}
{% endif %} {% if preview.comparison.added %}
Added records ({{ preview.comparison.added_count }})
{% for record in preview.comparison.added %}
{{ record.model_label }} — {{ record.title }} (Source ID: {{ record.source_pk }})
{% endfor %}
{% endif %} {% if preview.comparison.existing_only %}
Existing Only — preserved ({{ preview.comparison.existing_only_count }})
These records exist in Killian but are absent from the uploaded JSON. They will not be deleted or modified by their absence.
{% for record in preview.comparison.existing_only %}
{{ record.model_label }} — {{ record.title }} (Source ID: {{ record.source_pk }})
{% endfor %}
{% endif %} {% if preview.comparison.added_count == 0 and preview.comparison.changed_count == 0 and preview.comparison.existing_only_count == 0 %}
No differences were detected. All {{ preview.comparison.unchanged_count }} matching record(s) are unchanged.
{% endif %}
{% csrf_token %} Cancel
{% endif %} {% endblock %}