feat: oh look, more changes

This commit is contained in:
Herculino Trotta
2025-11-10 00:28:16 -03:00
parent 7e37948616
commit b38ed37bc5
27 changed files with 636 additions and 624 deletions
+76 -77
View File
@@ -1,15 +1,12 @@
{% load i18n %}
<div class="container px-md-3 py-3 column-gap-5">
<c-ui.fab-single-action
url="{% url 'transaction_rule_add' %}"
hx_target="#generic-offcanvas">
</c-ui.fab-single-action>
<div class="container">
<div class="text-3xl font-bold font-mono w-full mb-3">
{% spaceless %}
<div>{% translate 'Rules' %}<span>
<a class="no-underline text-2xl p-1 category-action"
role="button"
data-tippy-content="{% translate "Add" %}"
hx-get="{% url 'transaction_rule_add' %}"
hx-target="#generic-offcanvas">
<i class="fa-solid fa-circle-plus fa-fw"></i></a>
</span></div>
<div>{% translate 'Rules' %}</div>
{% endspaceless %}
</div>
@@ -17,75 +14,77 @@
<div class="card-body overflow-x-auto">
{% if transaction_rules %}
<c-config.search></c-config.search>
<table class="table table-hover">
<thead>
<tr>
<th scope="col" class="table-col-auto"></th>
<th scope="col" class="table-col-auto"></th>
<th scope="col" class="table-col-auto">{% translate 'Order' %}</th>
<th scope="col">{% translate 'Name' %}</th>
</tr>
</thead>
<tbody>
{% for rule in transaction_rules %}
<tr class="transaction_rule">
<td class="table-col-auto">
<div class="join" role="group" aria-label="{% translate 'Actions' %}">
<a class="btn btn-secondary btn-sm join-item"
role="button"
data-tippy-content="{% translate "View" %}"
hx-get="{% url 'transaction_rule_view' transaction_rule_id=rule.id %}"
hx-target="#persistent-generic-offcanvas-left">
<i class="fa-solid fa-eye fa-fw"></i></a>
<a class="btn btn-error btn-sm join-item"
role="button"
data-tippy-content="{% translate "Delete" %}"
hx-delete="{% url 'transaction_rule_delete' transaction_rule_id=rule.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>
{% if not rule.owner %}
<a class="btn btn-secondary btn-sm join-item text-warning"
role="button"
data-tippy-content="{% translate "Take ownership" %}"
hx-get="{% url 'transaction_rule_take_ownership' transaction_rule_id=rule.id %}">
<i class="fa-solid fa-crown fa-fw"></i></a>
{% endif %}
{% if user == rule.owner %}
<a class="btn btn-secondary btn-sm join-item text-primary"
role="button"
hx-target="#generic-offcanvas"
hx-swap="innerHTML"
data-tippy-content="{% translate "Share" %}"
hx-get="{% url 'transaction_rule_share_settings' pk=rule.id %}">
<i class="fa-solid fa-share fa-fw"></i></a>
{% endif %}
</div>
</td>
<td class="table-col-auto">
<a class="no-underline"
role="button"
data-tippy-content="
{% if rule.active %}{% translate "Deactivate" %}{% else %}{% translate "Activate" %}{% endif %}"
hx-get="{% url 'transaction_rule_toggle_activity' transaction_rule_id=rule.id %}">
{% if rule.active %}<i class="fa-solid fa-toggle-on text-green-400"></i>{% else %}
<i class="fa-solid fa-toggle-off text-red-400"></i>{% endif %}
</a>
</td>
<td class="table-col-auto text-center">
<div>{{ rule.order }}</div>
</td>
<td>
<div>{{ rule.name }}</div>
<div class="text-gray-400">{{ rule.description }}</div>
</td>
<div class="overflow-x-auto">
<table class="table table-hover">
<thead>
<tr>
<th scope="col" class="table-col-auto"></th>
<th scope="col" class="table-col-auto"></th>
<th scope="col" class="table-col-auto">{% translate 'Order' %}</th>
<th scope="col">{% translate 'Name' %}</th>
</tr>
{% endfor %}
</tbody>
</table>
</thead>
<tbody>
{% for rule in transaction_rules %}
<tr class="transaction_rule">
<td class="table-col-auto">
<div class="join" role="group" aria-label="{% translate 'Actions' %}">
<a class="btn btn-secondary btn-sm join-item"
role="button"
data-tippy-content="{% translate "View" %}"
hx-get="{% url 'transaction_rule_view' transaction_rule_id=rule.id %}"
hx-target="#persistent-generic-offcanvas-left">
<i class="fa-solid fa-eye fa-fw"></i></a>
{% if not rule.owner %}
<a class="btn btn-secondary btn-sm join-item"
role="button"
data-tippy-content="{% translate "Take ownership" %}"
hx-get="{% url 'transaction_rule_take_ownership' transaction_rule_id=rule.id %}">
<i class="fa-solid fa-crown fa-fw"></i></a>
{% endif %}
{% if user == rule.owner %}
<a class="btn btn-secondary btn-sm join-item"
role="button"
hx-target="#generic-offcanvas"
hx-swap="innerHTML"
data-tippy-content="{% translate "Share" %}"
hx-get="{% url 'transaction_rule_share_settings' pk=rule.id %}">
<i class="fa-solid fa-share fa-fw"></i></a>
{% endif %}
<a class="btn btn-error btn-sm join-item"
role="button"
data-tippy-content="{% translate "Delete" %}"
hx-delete="{% url 'transaction_rule_delete' transaction_rule_id=rule.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="table-col-auto">
<a class="no-underline"
role="button"
data-tippy-content="
{% if rule.active %}{% translate "Deactivate" %}{% else %}{% translate "Activate" %}{% endif %}"
hx-get="{% url 'transaction_rule_toggle_activity' transaction_rule_id=rule.id %}">
{% if rule.active %}<i class="fa-solid fa-toggle-on text-green-400"></i>{% else %}
<i class="fa-solid fa-toggle-off text-red-400"></i>{% endif %}
</a>
</td>
<td class="table-col-auto text-center">
<div>{{ rule.order }}</div>
</td>
<td>
<div>{{ rule.name }}</div>
<div class="text-gray-400">{{ rule.description }}</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<c-msg.empty title="{% translate "No rules" %}" remove-padding></c-msg.empty>
{% endif %}
@@ -8,16 +8,16 @@
<div hx-get="{% url 'transaction_rule_view' transaction_rule_id=transaction_rule.id %}"
hx-trigger="updated from:window" hx-target="closest .offcanvas" class="show-loading">
<div class="text-2xl">{{ transaction_rule.name }}</div>
<div class="text-base text-gray-400">{{ transaction_rule.description }}</div>
<hr>
<div class="text-subtle">{{ transaction_rule.description }}</div>
<hr class="hr my-3">
<div class="my-3">
<div class="text-xl mb-2">{% translate 'If transaction...' %}</div>
<div class="card bg-base-100 shadow-xl">
<div class="card card-border shadow">
<div class="card-body">
{{ transaction_rule.trigger }}
</div>
<div class="card-footer text-end">
<a class="no-underline text-gray-400 p-1"
<a class="btn btn-ghost btn-xs"
role="button"
data-tippy-content="{% translate "Edit" %}"
hx-get="{% url 'transaction_rule_edit' transaction_rule_id=transaction_rule.id %}"
@@ -29,10 +29,11 @@
<div class="my-3">
<div class="text-xl mb-2">{% translate 'Then...' %}</div>
<div class="row g-3">
{% for action in all_actions %}
{% if action.action_type == "edit_transaction" %}
<div class="card bg-base-100 shadow-xl mb-3">
<div class="card-header bg-base-200 p-4">
<div class="card bg-base-100 card-border shadow">
<div class="card-header">
<div>
{% if action.order != 0 %}<span class="badge badge-secondary">{{ action.order }}</span>{% endif %}
<span class="badge badge-primary">{% trans 'Edit transaction' %}</span>
@@ -46,14 +47,14 @@
<div class="bg-base-200 rounded-3xl mt-3 p-2">{{ action.value }}</div>
</div>
<div class="card-footer text-end">
<a class="no-underline text-gray-400 p-1"
<a class="btn btn-ghost btn-xs"
role="button"
data-tippy-content="{% translate 'Edit' %}"
hx-get="{% url 'transaction_rule_action_edit' transaction_rule_action_id=action.id %}"
hx-target="#generic-offcanvas">
<i class="fa-solid fa-pencil fa-fw"></i>
</a>
<a class="text-error no-underline p-1"
<a class="btn btn-ghost btn-xs text-error"
role="button"
data-tippy-content="{% translate 'Delete' %}"
hx-delete="{% url 'transaction_rule_action_delete' transaction_rule_action_id=action.id %}"
@@ -68,8 +69,8 @@
</div>
</div>
{% elif action.action_type == "update_or_create_transaction" %}
<div class="card bg-base-100 shadow-xl mb-3">
<div class="card-header bg-base-200 p-4">
<div class="card shadow">
<div class="card-header">
<div>
{% if action.order != 0 %}<span class="badge badge-secondary">{{ action.order }}</span>{% endif %}
<span class="badge badge-primary">{% trans 'Update or create transaction' %}</span>
@@ -79,14 +80,14 @@
<div>{% trans 'Edit to view' %}</div>
</div>
<div class="card-footer text-end">
<a class="no-underline text-gray-400 p-1"
<a class="btn btn-ghost btn-xs"
role="button"
data-tippy-content="{% translate 'Edit' %}"
hx-get="{% url 'update_or_create_transaction_rule_action_edit' pk=action.id %}"
hx-target="#generic-offcanvas">
<i class="fa-solid fa-pencil fa-fw"></i>
</a>
<a class="text-error no-underline p-1"
<a class="btn btn-ghost btn-xs text-error"
role="button"
data-tippy-content="{% translate 'Delete' %}"
hx-delete="{% url 'update_or_create_transaction_rule_action_delete' pk=action.id %}"
@@ -102,16 +103,17 @@
</div>
{% endif %}
{% empty %}
<div class="card bg-base-100 shadow-xl">
<div class="card shadow">
<div class="card-body">
{% translate 'This rule has no actions' %}
</div>
</div>
{% endfor %}
<hr>
</div>
<hr class="hr my-5">
<div class="grid grid-cols-1 lg:grid-cols-2 gap-2">
<div class="dropdown">
<button class="btn btn-outline btn-primary no-underline w-full" type="button" data-bs-toggle="dropdown"
<button class="btn btn-secondary w-full" type="button" data-bs-toggle="dropdown"
aria-expanded="false">
<i class="fa-solid fa-flask-vial me-2"></i>{% translate 'Test' %}
</button>
@@ -134,7 +136,7 @@
</ul>
</div>
<div class="dropdown">
<button class="btn btn-outline btn-primary no-underline w-full" type="button" data-bs-toggle="dropdown"
<button class="btn btn-primary w-full" type="button" data-bs-toggle="dropdown"
aria-expanded="false">
<i class="fa-solid fa-circle-plus me-2"></i>{% translate 'Add new' %}
</button>