mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-04-24 17:48:41 +02:00
feat(tags): add tab to show archived tags
This commit is contained in:
@@ -53,6 +53,8 @@ urlpatterns = [
|
|||||||
),
|
),
|
||||||
path("tags/", views.tags_index, name="tags_index"),
|
path("tags/", views.tags_index, name="tags_index"),
|
||||||
path("tags/list/", views.tags_list, name="tags_list"),
|
path("tags/list/", views.tags_list, name="tags_list"),
|
||||||
|
path("tags/table/active/", views.tags_table_active, name="tags_table_active"),
|
||||||
|
path("tags/table/archived/", views.tags_table_archived, name="tags_table_archived"),
|
||||||
path("tags/add/", views.tag_add, name="tag_add"),
|
path("tags/add/", views.tag_add, name="tag_add"),
|
||||||
path(
|
path(
|
||||||
"tags/<int:tag_id>/edit/",
|
"tags/<int:tag_id>/edit/",
|
||||||
|
|||||||
@@ -32,6 +32,30 @@ def tags_list(request):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@only_htmx
|
||||||
|
@login_required
|
||||||
|
@require_http_methods(["GET"])
|
||||||
|
def tags_table_active(request):
|
||||||
|
tags = TransactionTag.objects.filter(active=True).order_by("id")
|
||||||
|
return render(
|
||||||
|
request,
|
||||||
|
"tags/fragments/table.html",
|
||||||
|
{"tags": tags, "active": True},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@only_htmx
|
||||||
|
@login_required
|
||||||
|
@require_http_methods(["GET"])
|
||||||
|
def tags_table_archived(request):
|
||||||
|
tags = TransactionTag.objects.filter(active=False).order_by("id")
|
||||||
|
return render(
|
||||||
|
request,
|
||||||
|
"tags/fragments/table.html",
|
||||||
|
{"tags": tags, "active": False},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@only_htmx
|
@only_htmx
|
||||||
@login_required
|
@login_required
|
||||||
@require_http_methods(["GET", "POST"])
|
@require_http_methods(["GET", "POST"])
|
||||||
|
|||||||
@@ -15,49 +15,18 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body table-responsive">
|
<div class="card-header">
|
||||||
{% if tags %}
|
<ul class="nav nav-pills card-header-pills" id="myTab" role="tablist">
|
||||||
<c-config.search></c-config.search>
|
<li class="nav-item" role="presentation">
|
||||||
<table class="table table-hover">
|
<button class="nav-link active" data-bs-toggle="tab" type="button" role="tab" aria-selected="true" hx-get="{% url 'tags_table_active' %}" hx-trigger="load, click" hx-target="#tags-table">{% translate 'Active' %}</button>
|
||||||
<thead>
|
</li>
|
||||||
<tr>
|
<li class="nav-item" role="presentation">
|
||||||
<th scope="col" class="col-auto"></th>
|
<button class="nav-link" hx-get="{% url 'tags_table_archived' %}" hx-target="#tags-table" data-bs-toggle="tab" type="button" role="tab" aria-selected="false">{% translate 'Archived' %}</button>
|
||||||
<th scope="col" class="col">{% translate 'Name' %}</th>
|
</li>
|
||||||
</tr>
|
</ul>
|
||||||
</thead>
|
</div>
|
||||||
<tbody>
|
<div class="card-body">
|
||||||
{% for tag in tags %}
|
<div id="tags-table"></div>
|
||||||
<tr class="tag">
|
|
||||||
<td class="col-auto">
|
|
||||||
<div class="btn-group" role="group" aria-label="{% translate 'Actions' %}">
|
|
||||||
<a class="btn btn-secondary btn-sm"
|
|
||||||
role="button"
|
|
||||||
data-bs-toggle="tooltip"
|
|
||||||
data-bs-title="{% translate "Edit" %}"
|
|
||||||
hx-get="{% url 'tag_edit' tag_id=tag.id %}"
|
|
||||||
hx-target="#generic-offcanvas">
|
|
||||||
<i class="fa-solid fa-pencil fa-fw"></i></a>
|
|
||||||
<a class="btn btn-secondary btn-sm text-danger"
|
|
||||||
role="button"
|
|
||||||
data-bs-toggle="tooltip"
|
|
||||||
data-bs-title="{% translate "Delete" %}"
|
|
||||||
hx-delete="{% url 'tag_delete' tag_id=tag.id %}"
|
|
||||||
hx-trigger='confirmed'
|
|
||||||
data-bypass-on-ctrl="true"
|
|
||||||
data-title="{% translate "Are you sure?" %}"
|
|
||||||
data-text="{% translate "You won't be able to revert this!" %}"
|
|
||||||
data-confirm-text="{% translate "Yes, delete it!" %}"
|
|
||||||
_="install prompt_swal"><i class="fa-solid fa-trash fa-fw"></i></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="col">{{ tag.name }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{% else %}
|
|
||||||
<c-msg.empty title="{% translate "No tags" %}" remove-padding></c-msg.empty>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
55
app/templates/tags/fragments/table.html
Normal file
55
app/templates/tags/fragments/table.html
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
{% load i18n %}
|
||||||
|
{% if active %}
|
||||||
|
<div class="show-loading" hx-get="{% url 'tags_table_active' %}" hx-trigger="updated from:window"
|
||||||
|
hx-swap="outerHTML">
|
||||||
|
{% else %}
|
||||||
|
<div class="show-loading" hx-get="{% url 'tags_table_archived' %}" hx-trigger="updated from:window"
|
||||||
|
hx-swap="outerHTML">
|
||||||
|
{% endif %}
|
||||||
|
<div class="table-responsive">
|
||||||
|
{% if tags %}
|
||||||
|
<c-config.search></c-config.search>
|
||||||
|
<table class="table table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col" class="col-auto"></th>
|
||||||
|
<th scope="col" class="col">{% translate 'Name' %}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for tag in tags %}
|
||||||
|
<tr class="tag">
|
||||||
|
<td class="col-auto">
|
||||||
|
<div class="btn-group" role="group" aria-label="{% translate 'Actions' %}">
|
||||||
|
<a class="btn btn-secondary btn-sm"
|
||||||
|
role="button"
|
||||||
|
hx-swap="innerHTML"
|
||||||
|
data-bs-toggle="tooltip"
|
||||||
|
data-bs-title="{% translate "Edit" %}"
|
||||||
|
hx-get="{% url 'tag_edit' tag_id=tag.id %}"
|
||||||
|
hx-target="#generic-offcanvas">
|
||||||
|
<i class="fa-solid fa-pencil fa-fw"></i></a>
|
||||||
|
<a class="btn btn-secondary btn-sm text-danger"
|
||||||
|
role="button"
|
||||||
|
data-bs-toggle="tooltip"
|
||||||
|
hx-swap="innerHTML"
|
||||||
|
data-bs-title="{% translate "Delete" %}"
|
||||||
|
hx-delete="{% url 'tag_delete' tag_id=tag.id %}"
|
||||||
|
hx-trigger='confirmed'
|
||||||
|
data-bypass-on-ctrl="true"
|
||||||
|
data-title="{% translate "Are you sure?" %}"
|
||||||
|
data-text="{% translate "You won't be able to revert this!" %}"
|
||||||
|
data-confirm-text="{% translate "Yes, delete it!" %}"
|
||||||
|
_="install prompt_swal"><i class="fa-solid fa-trash fa-fw"></i></a>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="col">{{ tag.name }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% else %}
|
||||||
|
<c-msg.empty title="{% translate "No tags" %}" remove-padding></c-msg.empty>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -4,5 +4,5 @@
|
|||||||
{% block title %}{% translate 'Tags' %}{% endblock %}
|
{% block title %}{% translate 'Tags' %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div hx-get="{% url 'tags_list' %}" hx-trigger="load, updated from:window" class="show-loading"></div>
|
<div hx-get="{% url 'tags_list' %}" hx-trigger="load" class="show-loading"></div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
Reference in New Issue
Block a user