| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- {% extends 'generic/_base.html' %}
- {% load buttons %}
- {% load helpers %}
- {% load plugins %}
- {% load render_table from django_tables2 %}
- {% load static %}
- {% load i18n %}
- {% comment %}
- Blocks:
- - title: Page title
- - controls: Control elements displayed between the header and content
- - extra_controls: Any additional action buttons to display
- - tabs: Page tabs
- - content: Primary page content
- - bulk_buttons: Additional bulk action buttons to display beneath the objects list
- - modals: Any pre-loaded modals
- Context:
- - model: The model class being listed
- - table: The table class used for rendering the list of objects
- - actions: A list of buttons to display. This template checks for add, import, export,
- bulk_edit, and bulk_delete.
- - filter_form: The bound filterset form for filtering the objects list (optional)
- - return_url: Return URL to use for bulk actions (optional)
- {% endcomment %}
- {% block title %}{{ model|meta:"verbose_name_plural"|bettertitle }}{% endblock %}
- {% block controls %}
- <div class="btn-list">
- {% plugin_list_buttons model %}
- {% block extra_controls %}{% endblock %}
- {% if 'add' in actions %}
- {% add_button model %}
- {% endif %}
- {% if 'import' in actions %}
- {% import_button model %}
- {% endif %}
- {% if 'export' in actions %}
- {% export_button model %}
- {% endif %}
- </div>
- {% endblock controls %}
- {% block tabs %}
- <ul class="nav nav-tabs" role="tablist">
- <li class="nav-item" role="presentation">
- <a class="nav-link active" id="object-list-tab" data-bs-toggle="tab" data-bs-target="#object-list" type="button" role="tab" aria-controls="edit-form" aria-selected="true">
- {% trans "Results" %}
- <span class="badge text-bg-secondary total-object-count">{% if table.page.paginator.count %}{{ table.page.paginator.count }}{% else %}{{ total_count|default:"0" }}{% endif %}</span>
- </a>
- </li>
- {% if filter_form %}
- <li class="nav-item" role="presentation">
- <button class="nav-link" id="filters-form-tab" data-bs-toggle="tab" data-bs-target="#filters-form" type="button" role="tab" aria-controls="object-list" aria-selected="false">
- {% trans "Filters" %}
- {% if filter_form %}{% badge filter_form.changed_data|length bg_color="primary" %}{% endif %}
- </button>
- </li>
- {% endif %}
- </ul>
- {% endblock tabs %}
- {% block content %}
- {# Object list tab #}
- <div class="tab-pane show active" id="object-list" role="tabpanel" aria-labelledby="object-list-tab">
- {# Applied filters #}
- {% if filter_form %}
- {% applied_filters model filter_form request.GET %}
- {% endif %}
- {# Object table controls #}
- {% include 'inc/table_controls_htmx.html' with table_modal="ObjectTable_config" %}
- <form method="post" class="form form-horizontal">
- {% csrf_token %}
- {# "Select all" form #}
- {% if table.paginator.num_pages > 1 %}
- <div id="select-all-box" class="d-none card d-print-none">
- <div class="form col-md-12">
- <div class="card-body">
- <div class="float-end">
- {% if 'bulk_edit' in actions %}
- {% bulk_edit_button model query_params=request.GET %}
- {% endif %}
- {% if 'bulk_delete' in actions %}
- {% bulk_delete_button model query_params=request.GET %}
- {% endif %}
- </div>
- <div class="form-check">
- <input type="checkbox" id="select-all" name="_all" class="form-check-input" />
- <label for="select-all" class="form-check-label">
- {% blocktrans trimmed with count=table.page.paginator.count object_type_plural=table.data.verbose_name_plural %}
- Select <strong>all <span class="total-object-count">{{ count }}</span> {{ object_type_plural }}</strong> matching query
- {% endblocktrans %}
- </label>
- </div>
- </div>
- </div>
- </div>
- {% endif %}
- <div class="form form-horizontal">
- {% csrf_token %}
- <input type="hidden" name="return_url" value="{% if return_url %}{{ return_url }}{% else %}{{ request.path }}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}{% endif %}" />
- {# Warn of any missing prerequisite objects #}
- {% if prerequisite_model %}
- {% include 'inc/missing_prerequisites.html' %}
- {% endif %}
- {# Objects table #}
- <div class="card">
- <div class="htmx-container table-responsive" id="object_list">
- {% include 'htmx/table.html' %}
- </div>
- </div>
- {# /Objects table #}
- {# Form buttons #}
- <div class="btn-list d-print-none mt-2">
- {% block bulk_buttons %}
- {% if 'bulk_edit' in actions %}
- {% bulk_edit_button model query_params=request.GET %}
- {% endif %}
- {% if 'bulk_delete' in actions %}
- {% bulk_delete_button model query_params=request.GET %}
- {% endif %}
- {% endblock %}
- </div>
- {# /Form buttons #}
- </div>
- </form>
- </div>
- {# /Object list tab #}
- {# Filters tab #}
- {% if filter_form %}
- <div class="tab-pane show" id="filters-form" role="tabpanel" aria-labelledby="filters-form-tab">
- {% include 'inc/filter_list.html' %}
- </div>
- {% endif %}
- {# /Filters tab #}
- {% endblock content %}
- {% block modals %}
- {% table_config_form table table_name="ObjectTable" %}
- {% endblock modals %}
|