{% extends "admin/base_site.html" %} {% load i18n %} {# Namespaced admin/cleanup_app/orphanfile/... per INTEGRATION-GUIDE.md's override convention — a host overrides this page by mirroring the same relative path under its own backend/templates/. Deliberately NOT extending admin/change_list.html: that template is driven by a real ChangeList (cl.result_list, cl.formset, filter specs — all queryset-backed), and OrphanFile has no table to back one with. See admin.py's module docstring for the full reasoning. #} {% block title %}{{ title }} | {{ site_title|default:_("Django site admin") }}{% endblock %} {% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-list{% endblock %} {% block breadcrumbs %} {% endblock %} {% block content %}
{% if truncated %}

{% blocktranslate %}The scan hit its configured file limit — not every orphaned file is shown below. Narrow SCAN_ROOTS or raise MAX_FILES_PER_RUN to see the rest.{% endblocktranslate %}

{% endif %}

{% blocktranslate count counter=files|length %} {{ counter }} orphaned file found. {% plural %} {{ counter }} orphaned files found. {% endblocktranslate %}

{% blocktranslate with total=total_size|filesizeformat %} Scanned {{ files_scanned }} files in total — {{ total }} reclaimable. {% endblocktranslate %}

{% csrf_token %}
{% if has_delete_permission and files %} {% endif %}
{% if files %} {% if has_delete_permission %}{% endif %} {% for file in files %} {% if has_delete_permission %} {% endif %} {% endfor %}
{% translate "File path" %} {% translate "Size" %} {% translate "Last modified" %}
{{ file.path }} {{ file.size|filesizeformat }} {{ file.modified_at }}
{% else %}

{% translate "No orphaned files were found." %}

{% endif %}
{% endblock %}