Advertisement
losvilos

Dashboard.html

Mar 18th, 2025
102
0
20 hours
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.13 KB | Help | 0 0
  1. {% extends 'base.html' %}
  2.  
  3. {% block content %}
  4. <div class="container">
  5.     <h2>Dashboard - Control Panel</h2>
  6.  
  7.     <div class="row">
  8.         <div class="col-md-3">
  9.             <div class="card bg-primary text-white">
  10.                 <div class="card-body">
  11.                     <h5 class="card-title">Clientes</h5>
  12.                     <h3>{{ total_clientes }}</h3>
  13.                 </div>
  14.             </div>
  15.         </div>
  16.         <div class="col-md-3">
  17.             <div class="card bg-success text-white">
  18.                 <div class="card-body">
  19.                     <h5 class="card-title">Contratos</h5>
  20.                     <h3>{{ total_contratos }}</h3>
  21.                 </div>
  22.             </div>
  23.         </div>
  24.         <div class="col-md-3">
  25.             <div class="card bg-warning text-white">
  26.                 <div class="card-body">
  27.                     <h5 class="card-title">Pagos</h5>
  28.                     <h3>{{ total_pagos }}</h3>
  29.                 </div>
  30.             </div>
  31.         </div>
  32.         <div class="col-md-3">
  33.             <div class="card bg-danger text-white">
  34.                 <div class="card-body">
  35.                     <h5 class="card-title">Total Ingresos</h5>
  36.                     <h3>${{ total_ingresos }}</h3>
  37.                 </div>
  38.             </div>
  39.         </div>
  40.     </div>
  41.  
  42.     <h3 class="mt-4">Ingresos por Mes</h3>
  43.     <canvas id="graficoIngresos"></canvas>
  44.     <p>Meses JSON: {{ meses_json }}</p>
  45.     <p>Ingresos JSON: {{ ingresos_data_json }}</p>
  46.  
  47.  
  48.     <pre>
  49.         Total Clientes: {{ total_clientes }}
  50.         Total Contratos: {{ total_contratos }}
  51.         Total Pagos: {{ total_pagos }}
  52.         Total Ingresos: {{ total_ingresos }}
  53.         Meses JSON: {{ meses_json }}
  54.         Ingresos JSON: {{ ingresos_json }}
  55.     </pre>
  56.  
  57. </div>
  58.  
  59. <script>
  60.     document.addEventListener("DOMContentLoaded", function () {
  61.         const ctx = document.getElementById("graficoIngresos").getContext("2d");
  62.  
  63.         // ✅ Cargar datos desde Django con JSON.parse()
  64.         try {
  65.             const meses = JSON.parse('{{ meses_json|escapejs }}');
  66.             const ingresosData = JSON.parse('{{ ingresos_data_json|escapejs }}');
  67.  
  68.             console.log("Meses JSON:", meses);
  69.             console.log("Ingresos JSON:", ingresosData);
  70.  
  71.             new Chart(ctx, {
  72.                 type: "bar",
  73.                 data: {
  74.                     labels: meses,
  75.                     datasets: [{
  76.                         label: "Ingresos",
  77.                         data: ingresosData,
  78.                         backgroundColor: "rgba(54, 162, 235, 0.6)",
  79.                         borderColor: "rgba(54, 162, 235, 1)",
  80.                         borderWidth: 1
  81.                     }]
  82.                 },
  83.                 options: {
  84.                     responsive: true,
  85.                     scales: {
  86.                         y: {
  87.                             beginAtZero: true
  88.                         }
  89.                     }
  90.                 }
  91.             });
  92.         } catch (error) {
  93.             console.error("❌ Error al procesar los datos del gráfico:", error);
  94.         }
  95.     });
  96. </script>
  97.  
  98.  
  99.  
  100. {% endblock %}
  101.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement