{% extends "base.html" %} {% block title %}Migrations{% endblock %} {% block breadcrumb %}Migrations{% endblock %} {% block content %} {# ── Stats ── #}
{{ migrations|length }}
Migrations
{{ total_operations|default(0) }}
Operations
{{ total_models_affected|default(0) }}
Models Affected
{# ── Migration list ── #} {% if migrations %}
Migration Files {{ migrations_dir|default('migrations/') }}
{% for mig in migrations %}
{{ mig.revision|default('') }} {{ mig.filename }} {% if mig.operations_count is defined %} {{ mig.operations_count }} ops {% endif %}
{% if mig.models %}
{% for model_name in mig.models %} {{ model_name }} {% endfor %}
{% endif %} {# ── Inline source code (collapsible) ── #} {% if mig.source %}
{{ mig.filename }}
{{ mig.source_highlighted|default(mig.source)|safe }}
{% endif %}
{% endfor %}
{% else %}
No migrations found
{% endif %} {% endblock %} {% block extra_js %} // Toggle migration source code via .active class document.querySelectorAll('.migration-item').forEach(function(item) { if (!item.querySelector('.migration-code')) return; item.addEventListener('click', function() { this.classList.toggle('active'); }); }); {% endblock %}