Permite marcar un traspaso y distinguirlo en la interfaz
Sin esto el campo is_transfer no es alcanzable: no aparece en los formularios de gasto ni de ingreso, asi que nadie puede marcar un movimiento como traspaso. Ademas, un movimiento que no suma al total tiene que verse distinto o el usuario no entendera por que sus numeros no cuadran con la tabla. Se anade un distintivo "Traspaso" en el listado de gastos, en los ultimos movimientos de home y en los gastos recientes del dashboard, que son los tres sitios donde se listan movimientos sin agregarlos. El distintivo usa una variante nueva, .badge-neutral, en vez de reutilizar .badge-inactive: un traspaso es informacion, no un estado degradado, y pintarlo con el color de error o de cuenta inactiva daria a entender que algo va mal. Las variables que usa (--color-chip-bg y --color-text-muted) ya existen en los dos temas. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
e2b756bcc7
commit
2d7cd8cb68
@ -27,6 +27,7 @@ class ExpenseForm(forms.ModelForm):
|
||||
"category",
|
||||
"account",
|
||||
"tags",
|
||||
"is_transfer",
|
||||
]
|
||||
widgets = {
|
||||
"date": forms.DateInput(format="%Y-%m-%d", attrs={"type": "date"}),
|
||||
@ -50,7 +51,7 @@ class AccountForm(forms.ModelForm):
|
||||
class IncomeForm(forms.ModelForm):
|
||||
class Meta:
|
||||
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"})}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
@ -732,6 +732,13 @@ tr:hover {
|
||||
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 {
|
||||
opacity: 0.55;
|
||||
}
|
||||
|
||||
@ -215,7 +215,12 @@
|
||||
<tr>
|
||||
<td>{{ exp.date|date:"d/m/Y" }}</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 style="color: var(--color-danger-accent); font-weight: bold;">{{ exp.amount|floatformat:2 }}</td>
|
||||
</tr>
|
||||
|
||||
@ -117,7 +117,12 @@
|
||||
{% for expense in page_obj %}
|
||||
<tr>
|
||||
<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.account.name }}</td>
|
||||
<td>
|
||||
|
||||
@ -96,7 +96,12 @@
|
||||
{% for mov in movements %}
|
||||
<li class="movement">
|
||||
<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-amount {% if mov.kind == 'income' %}amount-positive{% else %}amount-negative{% endif %}">
|
||||
{% if mov.kind == 'income' %}+{% else %}−{% endif %}{{ mov.amount|floatformat:2 }}€
|
||||
|
||||
@ -255,6 +255,7 @@ def home(request):
|
||||
"label": e.category.name,
|
||||
"account": e.account.name,
|
||||
"amount": e.amount,
|
||||
"is_transfer": e.is_transfer,
|
||||
}
|
||||
for e in recent_expenses
|
||||
]
|
||||
@ -265,6 +266,7 @@ def home(request):
|
||||
"label": i.name,
|
||||
"account": i.account.name,
|
||||
"amount": i.amount,
|
||||
"is_transfer": i.is_transfer,
|
||||
}
|
||||
for i in recent_incomes
|
||||
],
|
||||
|
||||
Loading…
Reference in New Issue
Block a user