From 61bb8d0b9f7a07518729e6ed026833fb37ba1b07 Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Thu, 5 Sep 2024 13:28:09 +0200 Subject: [PATCH] =?UTF-8?q?A=C3=B1ado=20una=20p=C3=A1gina=20con=20gr=C3=A1?= =?UTF-8?q?ficos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Finanzas/README.md | 4 ++ Finanzas/finanzas/apuntes/urls.py | 5 +++ Finanzas/finanzas/apuntes/views.py | 20 +++++++++ Finanzas/finanzas/templates/_cabecera.html | 16 +++++++ Finanzas/finanzas/templates/_head.html | 3 ++ .../finanzas/templates/apuntes/chart.html | 44 +++++++++++++++++++ 6 files changed, 92 insertions(+) create mode 100644 Finanzas/finanzas/templates/apuntes/chart.html diff --git a/Finanzas/README.md b/Finanzas/README.md index c58b681..c88347b 100644 --- a/Finanzas/README.md +++ b/Finanzas/README.md @@ -38,3 +38,7 @@ Session Started at: {{ user.last_login }} ## Para funcionar con gunicorn y nginx https://testdriven.io/blog/dockerizing-django-with-postgres-gunicorn-and-nginx/ + +## Para incluir gŕaficos + +https://studygyaan.com/django/creating-charts-in-django-web-app diff --git a/Finanzas/finanzas/apuntes/urls.py b/Finanzas/finanzas/apuntes/urls.py index 31d6c10..1c8ba17 100644 --- a/Finanzas/finanzas/apuntes/urls.py +++ b/Finanzas/finanzas/apuntes/urls.py @@ -14,4 +14,9 @@ urlpatterns = [ path('apuntes//', views.detalle_apunte, name='detalle_apunte'), path('apuntes//editar/', views.editar_apunte, name='editar_apunte'), path('apuntes//eliminar/', views.eliminar_apunte, name='eliminar_apunte'), + + path('apuntes/chart-data/', views.chart_data, name='chart_data'), + path('apuntes/chart/', views.chart_view, name='chart_view'), + + ] diff --git a/Finanzas/finanzas/apuntes/views.py b/Finanzas/finanzas/apuntes/views.py index f89d51a..1feb4fe 100644 --- a/Finanzas/finanzas/apuntes/views.py +++ b/Finanzas/finanzas/apuntes/views.py @@ -1,5 +1,6 @@ from django.contrib.auth.decorators import login_required from django.shortcuts import render, get_object_or_404, redirect +from django.http import JsonResponse # Create your views here. from .models import Cuenta, Apunte, Tipo @@ -127,3 +128,22 @@ def eliminar_apunte(request, apunte_id): apunte = Apunte.objects.get(pk=apunte_id) apunte.delete() return redirect('lista_apuntes') + +@login_required +def chart_data(request): + datos = Cuenta.objects.all() + + etiquetas = [item.nombre for item in datos] + valores = [item.saldo_actual for item in datos] + + chart_data = { + 'label': 'Gráfico', + 'labels': etiquetas, + 'values': valores, + 'chart_type': 'bar' # any chart type line, bar, ects + } + + return JsonResponse(chart_data) + +def chart_view(request): + return render(request, 'apuntes/chart.html') diff --git a/Finanzas/finanzas/templates/_cabecera.html b/Finanzas/finanzas/templates/_cabecera.html index b5cf738..3b4737e 100644 --- a/Finanzas/finanzas/templates/_cabecera.html +++ b/Finanzas/finanzas/templates/_cabecera.html @@ -107,6 +107,22 @@ + + {% if user.is_authenticated %}