From 8c41336029a4767625a33c43de2d79c65b88a94d Mon Sep 17 00:00:00 2001 From: Welton Moura Date: Sat, 21 Dec 2024 13:58:35 -0300 Subject: [PATCH] feat: create home page --- gestaoRaul/db.sqlite3 | Bin 204800 -> 204800 bytes .../home/__pycache__/views.cpython-310.pyc | Bin 317 -> 933 bytes gestaoRaul/home/templates/home.html | 32 ++++++++++++++---- gestaoRaul/home/views.py | 17 ++++++++-- gestaoRaul/templates/static/home/css/home.css | 27 +++++++++++++++ gestaoRaul/templates/static/home/js/home.js | 0 6 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 gestaoRaul/templates/static/home/css/home.css create mode 100644 gestaoRaul/templates/static/home/js/home.js diff --git a/gestaoRaul/db.sqlite3 b/gestaoRaul/db.sqlite3 index 1f69c3ac2d8f8882586facc00ba8f9b165bbb06d..5264031f3fbf18f656c4fad575dbd966c9b757ed 100644 GIT binary patch delta 1129 zcmZ`&U1%It6u$S&&hAXuxhJVrciYYG>~7kJ(vEZIe}@DK5wv}HT0(hzk&-?iVOC*S+QdVrdfOV*o97EP8c=%e&plDFX_W8IoT zGDs-7-?1HU3wLbL<#&uh$sy#vM1+g1ieqcL1GVIEowjbM(6*U6S3kdx-F6S9%XDhsmaLtO5!aJH@O$PZftYQb$xF8wTW6beHD5) zC5Zhn=C0)gP8hfbR41x!(miuJByRCW!*gw;+J7&FH%#t`@*METy5>mzZVT?4yb-&8 z?E6*}1)dv1ZKA%~8lDyUVGu=zD#RQ#HuSAV46M-cLpw4uwWr0U1PY099u81i5#tx2 z)HktV6`{i|#|r{GG?b)u0S1-(Fh>U1sE$S4gnMx}TSO{KEqJzod91TZc8HC#=T~Zk z$(rTnydg#wfYtFKQa8wl@+cW(I;&7H$jQ#}N#{5r-dcdy>sTf#bUMdXh0;uaM$u_3 zh5xskV$((VWehWNn}a&uz{~h0o@2}GH$;3GkK$|CWS7_+`-)vb9lyrU@EE?#e#VXX z6mG*1-(cV2Fgt~Rvtw+E-Np)D!=LaX&f_dj;}rW7*WzF7Q+5zvz%jhZ&ai2AnB8K( z;vU?IkFal$vt~Ct!kV&<$T}ozQilEB5IYxPO$|4bnj*t)ChLKuS(HxJ3~6Uo$q6yF z2(Q*~9Z|EYq60aehU`!CDzTKQN~!|VOg3JH#csvK-6Hpg{Oj-)d@+6d*`8fRT$@n{ zHB+dhP)?y&jQ$JnNWswiIYsiH#O=5hha~?WR!HX?W*aMQEVr>&JcG*2>Lz+>qNgT$ LYNDqm73JuED|`At delta 896 zcmZ{iPe@cj9LL}M-tJr9;+x+ZYW~@5cm0Ek`+D= z9wLJ>q6SkVI^`iUEFYvy#ga-2_{&BJds+@3IOMK3LUE@YRExOpE+nT|=zWe`Gyz`}pE4vhDP3NkGYMrm z{`3A8bya=Nt0v)Sz`vL~raV--gn~-YyD@bnaN5f^p1>JTWMG%VuTH~Go|*=YRJvlG zC-=`t<$^}tgkd2Tb1cg-m~L4%Gi=Qpi7IJg^2fvMkjWfd*y?r5jK`S?5U$I3HqZI% zvGpV~EHeq=hHaK)h?%@>2H3$!%|AD=q+{8RZR?3dJZ9B{9I5`l$6&E|A_lx>yj+|=Cp zIcSzkX^+%IyHza4T0Duz=?W68z%ta($MfgmM1T&`KH5vWg<8`R@3)}w)S^%EDseK6noOy*fbnhp8i%YnGQ#gjhSVF&JKK`KhX%C*leq5)I z>6ifjN1AHQv4gJ0fXRS;VN5e2|Udkw(3;3Q{J8R~q5N zD{vu_0ga}~>(Zqmy_Pc}_kc0FbYhvVgROl^jz}Bni=-FRwIHng*ky~ zzJal5ffs=d8NR|SxW+8pLYH{OlK%ZUTrU6y3 z%U{f;O2a!&56`vlpdxaK<|i#TRu90}o8D}AGX(Ps>6ftl-I=_uJ{zu0b;gBN)dw|e zyEm=&_uqeY;T-pa7{{30_XBc2B6=GF zyT!l_*@8B;8k-}f?X0z?yWkVe4#!e4F3hvoPEffyd+0jz829SS&DEnlvB?9w>cz*s kzM|a?I-P4~3j!{E14p)kzxADKd{z3WkB6Y3kKqgc0m%aOKL7v# delta 231 zcmZ3=zL$wFpO=@50SFRKM5Na;OyrZPmjLoo7*ZH>7;+h-7#SH-m{OQq7^0X`Sb`Ze zSzm$_uVlQ%R+O5Tl3J9^2;xHlh|LVd&OlrYGPQ)E253+-6Hp_QUlnIYer~E>MoDf? z5fe~SlkpaNQEFjnYH`U*h9Xv=$S-qetC-1?n5=|ZKqi0`aWNLL11UdE=E)zKgiS!E hg9X6qkq9=R#4Qe+-29Z%oK!oILyAFW@G$T&0{}7FDqsKr diff --git a/gestaoRaul/home/templates/home.html b/gestaoRaul/home/templates/home.html index 60e28e0..fe04cab 100644 --- a/gestaoRaul/home/templates/home.html +++ b/gestaoRaul/home/templates/home.html @@ -4,7 +4,7 @@ {% block 'head' %} - + {% endblock %} {% block 'title' %} @@ -14,15 +14,35 @@ RRB&C - DashBoard {% block 'body' %} +

DashBoard Aqui

-

DashBoard Aqui

+
+

Valor Total de Pagamentos

+

R$ {{total_pagamentos |floatformat:2 }}

+
+
+

Quantidade de Pagamentos

+

{{ qdt_pagamentos }}

+
- {% comment %} {% for mesa in mesas %} +
+

Mais Vendidos

+ + + + + + {% for produto in produtos_mais_vendidos %} + + + + + + {% endfor %} +
ProdutoQuantidade
{{ produto.nome }} {{ produto.quantidade }}
+
-
{{mesa.name}}
- - {% endfor %} {% endcomment %}
diff --git a/gestaoRaul/home/views.py b/gestaoRaul/home/views.py index 35fb3dc..f41cdd7 100644 --- a/gestaoRaul/home/views.py +++ b/gestaoRaul/home/views.py @@ -1,5 +1,18 @@ from django.shortcuts import render +from django.db.models import Sum +from django.db.models import Count, F + +from comandas.models import ProductComanda +from products.models import Product +from payments.models import Payments -# Create your views here. def home(request): - return render(request, 'home.html') \ No newline at end of file + total_pagamentos = Payments.objects.aggregate(total=Sum('value'))['total'] + qdt_pagamentos = Payments.objects.aggregate(total=Count('value'))['total'] + pagamentos = Payments.objects.all() + + produtos_mais_vendidos = ProductComanda.objects.values('product').annotate( + quantidade=Count('product'), + nome=F('product__name') ).order_by('-quantidade')[:5] + + return render(request, 'home.html', {'total_pagamentos': total_pagamentos, 'pagamentos': pagamentos, 'qdt_pagamentos': qdt_pagamentos, 'produtos_mais_vendidos': produtos_mais_vendidos}) diff --git a/gestaoRaul/templates/static/home/css/home.css b/gestaoRaul/templates/static/home/css/home.css new file mode 100644 index 0000000..48d860e --- /dev/null +++ b/gestaoRaul/templates/static/home/css/home.css @@ -0,0 +1,27 @@ +.grid-container { + display: grid; + grid-template-columns: repeat(4, 2fr); + gap: 20px; + max-width: 1200px; /* Define a largura máxima do grid */ + margin: 0 auto; /* Centraliza o grid na página */ + } + +.card { + width: 420px; + height: 420px; + background-color: #2b376e; + border-radius: 15px; + box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2); + text-align: center; + line-height: 30px; /* Centraliza o texto verticalmente */ + font-size: 20px; + font-weight: bold; + padding: 10px; + color: #333; + transition: transform 0.2s; + } + +.card:hover { + transform: scale(1.05); + box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.3); + } \ No newline at end of file diff --git a/gestaoRaul/templates/static/home/js/home.js b/gestaoRaul/templates/static/home/js/home.js new file mode 100644 index 0000000..e69de29