Commit Graph

233 Commits

Author SHA1 Message Date
a33a3cdb5a Merge branch 'dev' of https://gitea.kuijper.es/jkuijperm/expenses_manager into dev
All checks were successful
Tests / CI / Run tests passed: 293
expenses_manager/pipeline/head This commit looks good
2026-10-13 13:37:59 +02:00
c50d416560 Add tests for goal links and collection goals 2026-10-13 13:37:48 +02:00
a5f1c7b590 Add linking UI for goals from movement form and goal page 2026-10-13 13:37:47 +02:00
4167338a6a Add goal-movement links and collection goal type 2026-10-13 13:37:47 +02:00
982f654cb5 Ignore graphify-out/ 2026-10-13 09:23:24 +02:00
d0c257da87 Merge branch 'main' into dev
All checks were successful
Tests / CI / Run tests passed: 247
expenses_manager/pipeline/head This commit looks good
2026-10-01 13:28:33 +00:00
68fdb5a644 Add tests for CSV export
All checks were successful
Tests / CI / Run tests passed: 247
expenses_manager/pipeline/head This commit looks good
2026-10-01 15:10:38 +02:00
dfebee1a09 Add CSV export screen for expenses, incomes and transfers 2026-10-01 15:10:27 +02:00
119b70f939 Add CSV export dialects and streaming helpers 2026-10-01 15:10:16 +02:00
eff68a0083 Merge pull request 'dev' (#39) from dev into main
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
Reviewed-on: #39
2026-10-01 10:14:42 +00:00
c11b8a8589 Merge branch 'main' into dev
All checks were successful
expenses_manager/pipeline/head This commit looks good
Tests / CI / Run tests passed: 206
2026-10-01 10:13:53 +00:00
9d17a45910 Updated test vs Postgres
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-10-01 11:55:50 +02:00
75c244f181 Removed packages from requirements.txt
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-10-01 10:09:08 +02:00
6bc6a35e30 Updates Jenkinsfile
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-10-01 08:47:51 +02:00
de80fdf78c Minor changes to test
Some checks failed
expenses_manager/pipeline/head There was a failure building this commit
2026-10-01 08:40:50 +02:00
a35ccb2fd9 Merge branch 'dev' of https://gitea.kuijper.es/jkuijperm/expenses_manager into dev
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 18:10:32 +02:00
906ffc6b0c Updating files to change python to 3.11 2026-09-30 18:10:25 +02:00
514a1bd75c Merge pull request 'dev' (#38) from dev into main
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
Reviewed-on: #38
2026-09-30 15:10:21 +00:00
dbe993a814 Merge branch 'main' into dev
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 15:10:01 +00:00
c122e14472 Updated Jenkinsfile
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 17:09:29 +02:00
aa6f49097d Removed __init__ from gitignore and added to the repo the __init__ files
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 16:53:27 +02:00
c38e728e1a Merge branch 'dev' of https://gitea.kuijper.es/jkuijperm/expenses_manager into dev
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 16:45:44 +02:00
74af1a5f36 Added __init__ for the migrations 2026-09-30 16:45:38 +02:00
f2e332f35b Merge pull request 'dev' (#37) from dev into main
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
Reviewed-on: #37
2026-09-30 14:09:54 +00:00
73264a9685 Merge branch 'main' into dev
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 14:09:41 +00:00
442b5fbf0b Merge branch 'dev' of https://gitea.kuijper.es/jkuijperm/expenses_manager into dev
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 16:08:52 +02:00
20e6ff797d Updated Jenkinsfile 2026-09-30 16:08:46 +02:00
d7b9be7228 Merge pull request 'Updating automation CICD' (#36) from dev into main
Some checks failed
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head There was a failure building this commit
Reviewed-on: #36
2026-09-30 13:45:48 +00:00
3748117d59 Merge branch 'main' into dev
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 13:45:40 +00:00
9df4988cc7 Updated Jenkinsfile
All checks were successful
Tests / CI / Run tests passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 15:30:34 +02:00
80f56245dd Updated Jenkinsfile
All checks were successful
Tests / Declarative: Post Actions passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-30 13:45:20 +02:00
b52d3c8b3b Update jenkinsfile adding debug = True
All checks were successful
Tests / Declarative: Post Actions passed: 206
expenses_manager/pipeline/head This commit looks good
2026-09-29 19:30:32 +02:00
29bb1c5d24 Merge branch 'dev' of https://gitea.kuijper.es/jkuijperm/expenses_manager into dev
Some checks failed
Tests / Declarative: Post Actions failed: 118, passed: 88
expenses_manager/pipeline/head There was a failure building this commit
2026-09-29 18:47:34 +02:00
e45bc2bd3e Updated the Jenkinsfile 2026-09-29 18:47:22 +02:00
2f56a91143 Merge pull request 'Configuración de automatización de CICD' (#35) from dev into main
All checks were successful
expenses_manager/pipeline/head This commit looks good
Reviewed-on: #35
2026-09-29 16:11:54 +00:00
7cf8d8ce07 dockignore actualizado 2026-09-29 18:02:01 +02:00
466e51c703 Merge branches 'dev' and 'dev' of https://gitea.kuijper.es/jkuijperm/expenses_manager into dev 2026-09-29 17:34:02 +02:00
5f5b30108e Build: imagen autocontenida, .dockerignore y limpieza de requirements
- Dockerfile copia el proyecto Django, no la raiz del repo, para que
  manage.py y wsgi.py queden donde gunicorn los espera
- collectstatic en tiempo de construccion y CMD en la imagen
- .dockerignore: evita que .env, .git y artefactos locales entren en la imagen
- requirements.txt sin BOM
2026-09-29 17:32:21 +02:00
b8d90c08af test: cobertura de traspasos
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 08:52:30 +02:00
d37cf0800d fix: blank=True en las patas de Transfer
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 08:52:29 +02:00
488e370a04 feat: redirección del check is_transfer al formulario de traspaso
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 08:52:13 +02:00
0dd34ab5dc feat: CRUD de traspasos
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 08:51:16 +02:00
9af6e749d5 feat: migración de datos de traspasos heredados
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 08:50:52 +02:00
7fd2f3361d feat: modelo Transfer e is_system en Category
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 08:50:45 +02:00
bfe96e76f2 Merge pull request 'Modificaciones en filtrado y creada opción para marcar que un gasto/ingreso es un traspaso de cuentas' (#34) from dev into main
Reviewed-on: #34
2026-09-16 07:50:17 +00:00
f3ac2526ce Merge branch 'main' into dev 2026-09-16 07:50:07 +00:00
8d3aaf1110 Distingue el estado vacio filtrado del listado sin datos
La tabla de gastos mostraba "No hay gastos / Anade el primero" tanto cuando el
usuario no tiene ningun gasto como cuando sus filtros no devuelven nada. En el
segundo caso el mensaje miente y ademas empuja a crear un gasto que no hace
falta.

Ahora, con cualquier filtro puesto (ano, mes, categoria, etiquetas, cuenta o
rango), el mensaje dice que no hay gastos que coincidan y ofrece quitarlos.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 08:33:20 +02:00
e48512d2c8 Pon el listado de ingresos al nivel del resto
El listado de ingresos era el unico que seguia volcando la tabla entera sin
filtros, sin totales y sin paginacion: con unos cuantos anos de datos la
pagina se vuelve inmanejable y no hay forma de responder "cuanto ingrese en
marzo".

Se reutiliza lo que ya existe en el listado de gastos en vez de inventar nada:
los mismos filtros de ano, mes y cuenta, el mismo rango de fechas libre con la
misma precedencia y el mismo aviso, la misma paginacion de diez por pagina y
el mismo query_params para que los enlaces de pagina no pierdan los filtros.

Los ingresos marcados como traspaso se siguen listando, porque son movimientos
reales de la cuenta y hay que poder verlos y corregirlos, pero el total los
excluye: de ahi la etiqueta "Total (sin traspasos)".

El estado vacio distingue entre no tener ingresos y que los filtros no
devuelvan nada, para no invitar a crear un ingreso cuando el problema es el
filtro. El colspan de esa fila es 5, que son las columnas de esta tabla.

select_related("account") mantiene el numero de consultas plano: sin el, cada
fila pedia su cuenta por separado.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 08:33:12 +02:00
50fd58daa7 Anade tests del rango de fechas
Cubren las reglas que no se ven leyendo la vista: que los extremos son
inclusivos, que cada fecha puede ir sola, que un rango invertido o una fecha
ilegible se ignoran en vez de vaciar el listado, y que el rango tiene
precedencia sobre los selectores de ano y mes.

En el dashboard se comprueba ademas que la comparativa queda desactivada y
avisada cuando hay rango, que el eje del grafico cambia de dia a mes al pasar
el umbral, y que los huecos del eje salen a cero en lugar de desaparecer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 08:32:52 +02:00
836f3e8524 Aplica el rango de fechas al dashboard
Un rango que solo funciona en el listado obliga a cambiar de pantalla para
responder "cuanto gaste en ese viaje". El dashboard acepta ahora los mismos
date_from y date_to, con la misma precedencia sobre ano y mes.

Dos decisiones que no son obvias:

La comparativa se desactiva cuando hay rango. Un rango arbitrario no tiene un
"periodo anterior" evidente, y elegir uno por el usuario daria un porcentaje
que parece significativo sin serlo. Se distingue entre pedirla y poder
aplicarla (compare_requested / compare_enabled) para poder avisar de que se
ha ignorado en vez de desmarcar la casilla en silencio.

El eje del grafico lo decide la longitud del rango, no el mes: por debajo de
62 dias se agrupa por dia y por encima por mes, que es donde un grafico
diario deja de leerse. El eje se rellena con ceros en los huecos, igual que
ya hacia el resto, para que un periodo sin gastos no colapse la escala. La
agrupacion diaria usa el propio campo date y no TruncDate, porque date ya es
un DateField y TruncDate le aplicaria una conversion de zona horaria que en
SQLite revienta si no esta instalada la base de datos de husos.

La tarjeta de proyeccion a fin de mes se oculta con rango activo: proyectar a
fin de mes desde un periodo arbitrario no significa nada.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 08:32:43 +02:00