Clean up object list view

This commit is contained in:
jeremystretch 2021-07-10 22:06:28 -04:00
parent 726b148aa9
commit 0f99e5fcaa
5 changed files with 146 additions and 147 deletions

View File

@ -95,7 +95,7 @@
{# Page header #} {# Page header #}
{% block header %} {% block header %}
<div class="title-container px-3 py-3"> <div class="title-container px-3 pb-3">
{# Title #} {# Title #}
<div id="content-title"> <div id="content-title">

View File

@ -25,98 +25,96 @@
{% block content %} {% block content %}
{% if filter_form %} {% if filter_form %}
<div class="col col-md-12 noprint"> {% include 'inc/advanced_search.html' %}
{% include 'inc/advanced_search.html' %}
</div>
{% endif %} {% endif %}
{% if table.paginator.num_pages > 1 %} {% if table.paginator.num_pages > 1 %}
{% with bulk_edit_url=content_type.model_class|validated_viewname:"bulk_edit" bulk_delete_url=content_type.model_class|validated_viewname:"bulk_delete" %} {% with bulk_edit_url=content_type.model_class|validated_viewname:"bulk_edit" bulk_delete_url=content_type.model_class|validated_viewname:"bulk_delete" %}
<div class="row mb-3"> <div id="select-all-box" class="d-none card noprint">
<form method="post" class="form col-md-12"> <div class="row mb-3">
<form method="post" class="form col-md-12">
{% csrf_token %} {% csrf_token %}
<div id="select-all-box" class="d-none card noprint"> <div class="card-body d-inline-flex justify-content-between align-items-center">
<div class="card-body d-inline-flex justify-content-between align-items-center"> <div class="form-check">
<div class="form-check"> <input type="checkbox" id="select-all" name="_all" class="form-check-input" />
<input type="checkbox" id="select-all" name="_all" class="form-check-input" /> <label for="select-all" class="form-check-label">
<label for="select-all" class="form-check-label"> Select <strong>all {{ table.rows|length }} {{ table.data.verbose_name_plural }}</strong> Matching Query
Select <strong>all {{ table.rows|length }} {{ table.data.verbose_name_plural }}</strong> Matching Query </label>
</label> </div>
</div> <div class="float-end">
<div class="float-end"> {% if bulk_edit_url and permissions.change %}
{% if bulk_edit_url and permissions.change %} <button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning btn-sm" disabled>
<button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning btn-sm" disabled> <span class="mdi mdi-pencil" aria-hidden="true"></span> Edit All
<span class="mdi mdi-pencil" aria-hidden="true"></span> Edit All </button>
</button> {% endif %}
{% endif %} {% if bulk_delete_url and permissions.delete %}
{% if bulk_delete_url and permissions.delete %} <button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger btn-sm" disabled>
<button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger btn-sm" disabled> <span class="mdi mdi-trash-can-outline" aria-hidden="true"></span> Delete All
<span class="mdi mdi-trash-can-outline" aria-hidden="true"></span> Delete All </button>
</button> {% endif %}
{% endif %} </div>
</div>
</div>
</div> </div>
</form> </form>
</div> </div>
</div>
{% endwith %} {% endwith %}
{% endif %} {% endif %}
{# Object list filter, table config #}
<div class="row mb-3"> <div class="row mb-3">
<div class="col col-md-12"> <div class="col col-md-4 offset-md-8 d-flex noprint table-controls">
<div class="card"> <div class="input-group input-group-sm">
<div class="card-header"> <input type="text" class="form-control object-filter" placeholder="Filter" title="Filter text (regular expressions supported)" />
<div class="row"> {% if request.user.is_authenticated and table_config_form %}
<div class="col col-md-4 offset-md-8 d-flex noprint table-controls"> <button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#ObjectTable_config" title="Configure Table">
<div class="input-group input-group-sm"> <i class="mdi mdi-table-eye"></i>
<input type="text" class="form-control object-filter" placeholder="Filter" title="Filter text (regular expressions supported)" /> </button>
{% if request.user.is_authenticated and table_config_form %} {% endif %}
<button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#ObjectTable_config" title="Configure Table"> {% if filter_form %}
<i class="mdi mdi-table-eye"></i> <button
</button> type="button"
{% endif %} class="btn btn-sm btn-outline-dark"
{% if filter_form %} data-bs-toggle="collapse"
<button data-bs-target="#advanced-search-content">
type="button" Advanced Search
class="btn btn-sm btn-outline-dark" </button>
data-bs-toggle="collapse" {% endif %}
data-bs-target="#advanced-search-content">
Advanced Search
</button>
{% endif %}
</div>
</div>
</div>
</div>
<div class="card-body">
{% with bulk_edit_url=content_type.model_class|validated_viewname:"bulk_edit" bulk_delete_url=content_type.model_class|validated_viewname:"bulk_delete" %}
{% if permissions.change or permissions.delete %}
<form method="post" 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 %}" />
{% include table_template|default:'inc/responsive_table.html' %}
<div class="float-start noprint bulk-buttons">
{% block bulk_buttons %}{% endblock %}
{% if bulk_edit_url and permissions.change %}
<button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning btn-sm">
<i class="mdi mdi-pencil" aria-hidden="true"></i> Edit Selected
</button>
{% endif %}
{% if bulk_delete_url and permissions.delete %}
<button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger btn-sm">
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete Selected
</button>
{% endif %}
</div>
</form>
{% else %}
<div class="table-responsive">
{% render_table table 'inc/table.html' %}
</div>
{% endif %}
{% endwith %}
{% include 'inc/paginator.html' with paginator=table.paginator page=table.page %}
</div>
</div>
</div> </div>
</div>
</div>
{# Object table #}
<div class="row">
<div class="col col-md-12">
{% with bulk_edit_url=content_type.model_class|validated_viewname:"bulk_edit" bulk_delete_url=content_type.model_class|validated_viewname:"bulk_delete" %}
{% if permissions.change or permissions.delete %}
<form method="post" 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 %}" />
<div class="table-responsive">
{% render_table table 'inc/table.html' %}
</div>
<div class="float-start noprint bulk-buttons">
{% block bulk_buttons %}{% endblock %}
{% if bulk_edit_url and permissions.change %}
<button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning btn-sm">
<i class="mdi mdi-pencil" aria-hidden="true"></i> Edit Selected
</button>
{% endif %}
{% if bulk_delete_url and permissions.delete %}
<button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger btn-sm">
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete Selected
</button>
{% endif %}
</div>
</form>
{% else %}
<div class="table-responsive">
{% render_table table 'inc/table.html' %}
</div>
{% endif %}
{% endwith %}
{% include 'inc/paginator.html' with paginator=table.paginator page=table.page %}
</div>
</div> </div>
{% table_config_form table table_name="ObjectTable" %} {% table_config_form table table_name="ObjectTable" %}
{% endblock content %} {% endblock content %}

View File

@ -1,65 +1,67 @@
{% load form_helpers %} {% load form_helpers %}
{% load helpers %} {% load helpers %}
<div class="collapse" id="advanced-search-content"> <div id="advanced-search-content" class="collapse mb-3">
<form action="." method="get"> <div class="col col-md-12 noprint">
<div class="card"> <form action="." method="get">
<h5 class="card-header"> <div class="card">
Advanced Search <h5 class="card-header">
</h5> Advanced Search
<div class="card-body overflow-visible d-flex flex-wrap justify-content-between py-3"> </h5>
{% for field in filter_form.hidden_fields %} <div class="card-body overflow-visible d-flex flex-wrap justify-content-between py-3">
{{ field }} {% for field in filter_form.hidden_fields %}
{% endfor %} {{ field }}
{% if filter_form.field_groups %} {% endfor %}
{% for group in filter_form.field_groups %} {% if filter_form.field_groups %}
<div class="col"> {% for group in filter_form.field_groups %}
{% for name in group %} <div class="col">
{% with field=filter_form|get_item:name %} {% for name in group %}
{% if field|widget_type == 'checkboxinput' %} {% with field=filter_form|get_item:name %}
<div class="form-check mb-3"> {% if field|widget_type == 'checkboxinput' %}
<label class="form-check-label" for="{{ field.id_for_label }}">{{ field.label }}</label> <div class="form-check mb-3">
{{ field }} <label class="form-check-label" for="{{ field.id_for_label }}">{{ field.label }}</label>
</div> {{ field }}
{% else %} </div>
<div class="form-floating mb-3 mx-3"> {% else %}
{{ field }} <div class="form-floating mb-3 mx-3">
{{ field.label_tag }} {{ field }}
</div> {{ field.label_tag }}
{% endif %} </div>
{% endwith %} {% endif %}
{% endfor %} {% endwith %}
</div> {% endfor %}
{% endfor %} </div>
{% else %} {% endfor %}
{% for field in filter_form.visible_fields %} {% else %}
<div class="col"> {% for field in filter_form.visible_fields %}
{% if field|widget_type == 'checkboxinput' %} <div class="col">
<div class="form-check mb-3"> {% if field|widget_type == 'checkboxinput' %}
<label class="form-check-label" for="{{ field.id_for_label }}">{{ field.label }}</label> <div class="form-check mb-3">
{{ field }} <label class="form-check-label" for="{{ field.id_for_label }}">{{ field.label }}</label>
</div> {{ field }}
{% else %} </div>
<div class="form-floating mb-3"> {% else %}
{{ field }} <div class="form-floating mb-3">
{{ field.label_tag }} {{ field }}
</div> {{ field.label_tag }}
{% endif %} </div>
</div> {% endif %}
{% endfor %} </div>
{% endif %} {% endfor %}
</div> {% endif %}
<div class="card-footer text-end noprint border-0"> </div>
<button type="button" class="btn btn-sm btn-outline-dark m-1" data-bs-toggle="collapse" data-bs-target="#advanced-search-content"> <div class="card-footer text-end noprint border-0">
<i class="mdi mdi-close"></i> Close <button type="button" class="btn btn-sm btn-outline-dark m-1" data-bs-toggle="collapse" data-bs-target="#advanced-search-content">
</button> <i class="mdi mdi-close"></i> Close
<button type="button" class="btn btn-sm btn-outline-danger m-1" data-reset-select> </button>
<i class="mdi mdi-backspace"></i> Reset <button type="button" class="btn btn-sm btn-outline-danger m-1" data-reset-select>
</button> <i class="mdi mdi-backspace"></i> Reset
<button type="submit" class="btn btn-sm btn-primary m-1"> </button>
<i class="mdi mdi-magnify"></i> Search <button type="submit" class="btn btn-sm btn-primary m-1">
</button> <i class="mdi mdi-magnify"></i> Search
</div> </button>
</div> </div>
</form> </div>
</form>
</div>
</div> </div>

View File

@ -1,6 +1,6 @@
{% load helpers %} {% load helpers %}
<div class="paginator float-end text-end my-3"> <div class="paginator float-end text-end">
{% if paginator.num_pages > 1 %} {% if paginator.num_pages > 1 %}
<div class="btn-group btn-group-sm mb-3" role="group" aria-label="Pages"> <div class="btn-group btn-group-sm mb-3" role="group" aria-label="Pages">
{% if page.has_previous %} {% if page.has_previous %}

View File

@ -1,7 +1,6 @@
{% load django_tables2 %} {% load django_tables2 %}
<table{% if table.attrs %} {{ table.attrs.as_html }}{% endif %}> <table{% if table.attrs %} {{ table.attrs.as_html }}{% endif %}>
<caption class="text-center small mt-3"></caption>
{% if table.show_header %} {% if table.show_header %}
<thead> <thead>
<tr> <tr>