mirror of
https://github.com/welton89/RRBEC.git
synced 2026-04-05 13:35:42 +00:00
feat: filter date in charts
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -29,6 +29,12 @@ RRB&C - DashBoard
|
||||
<body>
|
||||
|
||||
<h1>DashBoard</h1>
|
||||
<!-- <form class="grid-container" > -->
|
||||
<input id="data-start" name="data-start" type="date">
|
||||
<input id="data-end" name="data-end" type="date">
|
||||
<!-- <input type="submit"> -->
|
||||
<button onclick="mediaCuisine()" >Filtrar</button>
|
||||
<!-- </form> -->
|
||||
<div class="grid-container">
|
||||
|
||||
<div class="card">
|
||||
|
||||
@@ -3,6 +3,6 @@ from . import views
|
||||
|
||||
urlpatterns = [
|
||||
path('', views.home, name='home'),
|
||||
path('chartCuisine', views.chartCuisine, name='chartCuisine'),
|
||||
path('chartCuisine/<str:dateStart>/<str:dateEnd>', views.chartCuisine, name='chartCuisine'),
|
||||
|
||||
]
|
||||
|
||||
@@ -4,6 +4,9 @@ from django.db.models import Count, F
|
||||
from django.http import JsonResponse, HttpResponse
|
||||
from django.contrib.admin.views.decorators import staff_member_required
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.dateparse import parse_datetime
|
||||
|
||||
import datetime
|
||||
|
||||
|
||||
|
||||
@@ -29,18 +32,22 @@ def home(request):
|
||||
|
||||
|
||||
@group_required(groupName='Gerente')
|
||||
def chartCuisine(request):
|
||||
print(request.user.groups.all())
|
||||
print(request.user.is_authenticated)
|
||||
def chartCuisine(request,dateStart,dateEnd):
|
||||
try:
|
||||
dateStart = parse_datetime(dateStart+' 07:00:00')
|
||||
dateEnd = parse_datetime(dateEnd+' 07:00:00')+ datetime.timedelta(days=1)
|
||||
except:
|
||||
dateStart = parse_datetime('2025-01-01 07:00:00')
|
||||
dateEnd = datetime.datetime.now()
|
||||
# print(request.user.groups.all())
|
||||
# print(request.user.is_authenticated)
|
||||
# fulano = User()
|
||||
tFila = []
|
||||
tPreparando = []
|
||||
tFinalizado = []
|
||||
dataStart = request.GET.get("data-start")
|
||||
dataEnd = request.GET.get("data-end")
|
||||
|
||||
orders = Order.objects.filter(delivered__isnull=False)
|
||||
|
||||
orders = Order.objects.filter(delivered__isnull=False, queue__gt=dateStart, queue__lt=dateEnd)
|
||||
try:
|
||||
for order in orders:
|
||||
tFila.append((order.preparing - order.queue).total_seconds())
|
||||
tPreparando.append((order.finished - order.preparing).total_seconds())
|
||||
@@ -50,14 +57,14 @@ def chartCuisine(request):
|
||||
mediaPreparando = int((sum(tPreparando) / len(tPreparando))/60)
|
||||
mediaFinalizado = int((sum(tFinalizado) / len(tFinalizado))/60)
|
||||
|
||||
# orders = Order.objects.filter(
|
||||
# created_at__gte='a',
|
||||
# created_at__lte='b',
|
||||
# delivered__isnull=False
|
||||
# )
|
||||
|
||||
return JsonResponse({
|
||||
'mediaFila': mediaFila,
|
||||
'mediaPreparando': mediaPreparando,
|
||||
'mediaFinalizado': mediaFinalizado,
|
||||
})
|
||||
except:
|
||||
return JsonResponse({
|
||||
'mediaFila': 0,
|
||||
'mediaPreparando': 0,
|
||||
'mediaFinalizado': 0,
|
||||
})
|
||||
|
||||
@@ -38,20 +38,22 @@ new Chart("vendas", {
|
||||
|
||||
|
||||
function mediaCuisine(){
|
||||
|
||||
var dateStart = document.getElementById('data-start').value == '' ? '2025-01-01' :document.getElementById('data-start').value;
|
||||
var dateEnd = document.getElementById('data-end').value == '' ? '2025-01-15' :document.getElementById('data-end').value;;
|
||||
var yValues = [];
|
||||
var xValues = ['Fila', 'Preparando', 'Entregar'];
|
||||
var barColors = ["red", "green","blue","orange","brown"];
|
||||
|
||||
var resposta = fetch('/chartCuisine', {method: 'GET',
|
||||
var resposta = fetch(`/chartCuisine/${dateStart}/${dateEnd}`, {method: 'GET',
|
||||
headers: {'Content-Type': 'application/json',
|
||||
},})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
yValues = []
|
||||
yValues.push(data['mediaFila'])
|
||||
yValues.push(data['mediaPreparando'])
|
||||
yValues.push(data['mediaFinalizado'])
|
||||
|
||||
console.log(yValues)
|
||||
new Chart("cuisine", {
|
||||
type: "doughnut",
|
||||
data: {
|
||||
@@ -76,6 +78,11 @@ var resposta = fetch('/chartCuisine', {method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
productsPlus()
|
||||
function deleyGraficos(){
|
||||
setTimeout(function() {
|
||||
mediaCuisine();}, 20000);
|
||||
}
|
||||
// productsPlus()
|
||||
mediaCuisine()
|
||||
|
||||
// console.log(document.getElementById('data-start').value)
|
||||
Reference in New Issue
Block a user