Modificaciones en filtrado y creada opción para marcar que un gasto/ingreso es un traspaso de cuentas #34

Merged
jkuijperm merged 18 commits from dev into main 2026-09-16 07:50:18 +00:00
6 changed files with 29 additions and 4 deletions
Showing only changes of commit 2d7cd8cb68 - Show all commits

View File

@ -27,6 +27,7 @@ class ExpenseForm(forms.ModelForm):
"category", "category",
"account", "account",
"tags", "tags",
"is_transfer",
] ]
widgets = { widgets = {
"date": forms.DateInput(format="%Y-%m-%d", attrs={"type": "date"}), "date": forms.DateInput(format="%Y-%m-%d", attrs={"type": "date"}),
@ -50,7 +51,7 @@ class AccountForm(forms.ModelForm):
class IncomeForm(forms.ModelForm): class IncomeForm(forms.ModelForm):
class Meta: class Meta:
model = Income model = Income
fields = ["account", "name", "amount", "date"] fields = ["account", "name", "amount", "date", "is_transfer"]
widgets = {"date": forms.DateInput(format="%Y-%m-%d", attrs={"type": "date"})} widgets = {"date": forms.DateInput(format="%Y-%m-%d", attrs={"type": "date"})}
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):

View File

@ -732,6 +732,13 @@ tr:hover {
color: var(--color-danger-text); color: var(--color-danger-text);
} }
/* Etiqueta informativa, sin carga de error ni de éxito: marca un movimiento
como lo que es, no como un estado degradado. */
.badge-neutral {
background-color: var(--color-chip-bg);
color: var(--color-text-muted);
}
.row-inactive { .row-inactive {
opacity: 0.55; opacity: 0.55;
} }

View File

@ -215,7 +215,12 @@
<tr> <tr>
<td>{{ exp.date|date:"d/m/Y" }}</td> <td>{{ exp.date|date:"d/m/Y" }}</td>
<td>{{ exp.account.name }}</td> <td>{{ exp.account.name }}</td>
<td>{{ exp.category.name }}</td> <td>
{{ exp.category.name }}
{% if exp.is_transfer %}
<span class="badge badge-neutral">Traspaso</span>
{% endif %}
</td>
<td>{{ exp.description|default:"-" }}</td> <td>{{ exp.description|default:"-" }}</td>
<td style="color: var(--color-danger-accent); font-weight: bold;">{{ exp.amount|floatformat:2 }}</td> <td style="color: var(--color-danger-accent); font-weight: bold;">{{ exp.amount|floatformat:2 }}</td>
</tr> </tr>

View File

@ -117,7 +117,12 @@
{% for expense in page_obj %} {% for expense in page_obj %}
<tr> <tr>
<td>{{ expense.date }}</td> <td>{{ expense.date }}</td>
<td>{{ expense.category.name }}</td> <td>
{{ expense.category.name }}
{% if expense.is_transfer %}
<span class="badge badge-neutral">Traspaso</span>
{% endif %}
</td>
<td>{{ expense.amount }}</td> <td>{{ expense.amount }}</td>
<td>{{ expense.account.name }}</td> <td>{{ expense.account.name }}</td>
<td> <td>

View File

@ -96,7 +96,12 @@
{% for mov in movements %} {% for mov in movements %}
<li class="movement"> <li class="movement">
<span class="movement-date">{{ mov.date }}</span> <span class="movement-date">{{ mov.date }}</span>
<span class="movement-label">{{ mov.label }}</span> <span class="movement-label">
{{ mov.label }}
{% if mov.is_transfer %}
<span class="badge badge-neutral">Traspaso</span>
{% endif %}
</span>
<span class="movement-account muted">{{ mov.account }}</span> <span class="movement-account muted">{{ mov.account }}</span>
<span class="movement-amount {% if mov.kind == 'income' %}amount-positive{% else %}amount-negative{% endif %}"> <span class="movement-amount {% if mov.kind == 'income' %}amount-positive{% else %}amount-negative{% endif %}">
{% if mov.kind == 'income' %}+{% else %}{% endif %}{{ mov.amount|floatformat:2 }}€ {% if mov.kind == 'income' %}+{% else %}{% endif %}{{ mov.amount|floatformat:2 }}€

View File

@ -255,6 +255,7 @@ def home(request):
"label": e.category.name, "label": e.category.name,
"account": e.account.name, "account": e.account.name,
"amount": e.amount, "amount": e.amount,
"is_transfer": e.is_transfer,
} }
for e in recent_expenses for e in recent_expenses
] ]
@ -265,6 +266,7 @@ def home(request):
"label": i.name, "label": i.name,
"account": i.account.name, "account": i.account.name,
"amount": i.amount, "amount": i.amount,
"is_transfer": i.is_transfer,
} }
for i in recent_incomes for i in recent_incomes
], ],