From 0534b896ad3cfd53aaa322e3740ea43237defca8 Mon Sep 17 00:00:00 2001 From: Welton Moura Date: Tue, 28 Jan 2025 20:57:53 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20page=20mesas=5Fmap,=20popover=20com=20l?= =?UTF-8?q?ista=20de=20comandas=20associadas=20com=20nome,=20total,=20e=20?= =?UTF-8?q?link=20para=20abrir=20a=20comanda.=20mesas=20livre=20cor=20dife?= =?UTF-8?q?rente=20e=20n=C3=A3o=20cria=20popover.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gestaoRaul/db.sqlite3 | Bin 311296 -> 311296 bytes .../mesas/__pycache__/views.cpython-310.pyc | Bin 1027 -> 1369 bytes gestaoRaul/mesas/templates/mesas_map.html | 96 ++++++------ gestaoRaul/mesas/views.py | 17 ++- .../templates/static/mesas/css/mesas.css | 12 +- .../templates/static/mesas/css/mesas_map.css | 137 ++++++++++++++++++ 6 files changed, 207 insertions(+), 55 deletions(-) create mode 100644 gestaoRaul/templates/static/mesas/css/mesas_map.css diff --git a/gestaoRaul/db.sqlite3 b/gestaoRaul/db.sqlite3 index e75f23bbf3cc4f644b488451cf62dba701043682..ed3d9dfdc09ba11d3cf6ecfd9729934b2df4e120 100644 GIT binary patch delta 1641 zcma)7Yitx%6rOwU?5lL=?iSjyRHYO}1a^AowX?IJv|Tn7L%XmotXQyxZOf|MWv`(6h%AxhGcCR1OkB{aA)yL+(z!V zq*!=0`@siL1z6WEZd%{o8f)roRJ)rt$z2UC^|AUc(y_j6Yd2|WAn~$8M%f`S4AD4y zz_1N~9}vfW%6`BOv&Y$^>;QWpvCK6v+kzYrjHlzxbR0{^8|gTjj@Q%in(^fjh|IGL zaUo})Sx1AD_T2*5b(b5(r)$I*x&8xXaj!Pvdeth@-d{ci|b>m2_|Zh@+RDg!xJipKGsbZ9MgQeOv2hQFTwUF!}lR zstqk$qH9!@cvRxfvM_u>hU7Khh=i)OPyu$ju@+XCaI6;U58KO1mjq75Lz>AjpDcWp z;c+Lzzv3}`317h9;j?%c@5G(PJ$3Lyr*WYfz6`7u1OVjev#sz2#N*yR8z?qwdmLv> z&^-&_{dDj-SY>|PMQuHBF4~39n~Vsiy%;Pv&hLgrF67S6qPBiG9hyk`VKpu3hgM^I zKYV^tP9SDyY>$*Oz)`}F4)0zy>jqtO5KhnW6`F08bw443SJfoNmuG|y!XpUPzzDSs zz#|YwjCTg$t6)~qj*yixGXRN5s)vXk$rMX|N%V`dplLEuHJ+cbqmuq~7)~(~hv8FB zRO8%6Z70nvCZ0SA%Z|PWw`JR`$aKqwjGdprr=iJNL2YN?a%keJGw`@E^)opC4r%qb z@Qobg#&1&Fi0RElGLrH(lJYhJAIdZ-MhAX})h2CkpADI;y?q2#_mv>)k?m+IPB%C& zM)zY>_iw4_i4$P?(L%(QfNW~1Lp7ZBN9#rF_tvx4&#fO@-#6;&P!br^*P_<|a2W4K zkpp?`U_52W4sK>(ECV+(Fq(nu8MtPQHX`gmKFCqqW)$VnWn`eW$O(_ZDCCmMT(5vB z;dqyW!37`!9HmM{L;IRSqR?eAR6q;Q0X%1-_vViyew7G{S67G{j&J>6D#@>U{fbx6 zh(csvINmv-693%0f47#HQmLXqh_2~cINmX#@@6XZ{-a9P1YMSORSw6uOsKSsO1q;9 zPxwl&B};-=k-eH+9FL_{ZnGPDMy11=)%Lr0VOk+c0?~*rD&cs$gK_7B2wnU&n3--G z|JUTABFLI5>%@38hE88$`K(3@wb!w8P_A>EIdVvr(YTR)3uLomUY5D%^BKV8)1oG} z$QoD@stPWoWRb=+N+c{qq)@d=79i9R*b&=hNJfuW_r%3x)s zlAY2_W9ZT*HrM!~nGH%-wwF7HHW>H!vlVD2u~fvXO8;y6CiWzfk3~BcZ}BhEyL{0= zo4z4fUR&vjc2_Ga+eo>mx+`2746J-2(AM6)Xz8NLg&l$ROpTI96jP`F_7#yDsz&dA Hwyod~qXV`r delta 1139 zcmaizZA=_R7{_;J_Jsp>XAwDs({e3Z674O!d%JggSHsI84H%Du0NP;6T>+0mxZ|a@ zSZw2^5VbL-(#tve#h}6X#oD6>8550SYnrGrK_w={mng=Rrl}%d8lzSBglISG*6mNK4|N_>FW9C&WL+MO-bp#gNpDDgI7c$LFPC>F=E8 zzFGXh{U{97sS`&MlSAWUN$=sK#{z?W$F;;%e0;(?Fg$X^XHI#hLlFXDbYi%;NcT#_pp`%EI6y|BWN%gYKn zN8?xC7?>Cx(@a$^;+TqZN9R!T>Hfo}se06sLXIhS?TCDKK{JUNg$8ht;V2B-$9qv2 zsBwfEA8WcY9r4==dl%xHj1!+i_%D15Z{nZv4|pA4#%E|{41OxopAzsDz$*d2-?GT5 zQTPIK;&es;9@|+Ilev1hi!43|JMHp$BBbCxuwmcyV)AM&Y^NLN;2s&t#StRR!`(!k zhh3y$9v0A?Xad@B@0!m$0r_ zIEyjJJ&Nd|@8R2bAsJ_hu$7Osm5;TRkF^DBaQS_QS;bQ1Xnv9_w5P#*b@jvqG{8#+v{3q1ihh7IDNI&XF z4n%O2)#x8_ROCP!TStU3)Sv5+*AT5chOXXVorQ5k3S#U-pxpkmdLfMuv+n|lZ&YiY zg?7g(7{HVf_XxX(jkGtnk(Lp51B$1~z6AUD!#Kcr8<{G`!IU|68moD9-L3h8sulFA zir4h}e7=Er-@tz>4`?%r^Vlkew2!c5^y>uMtn+Ayot3_&yXM(2+Uw!M)18fX8p8Bk zx|BFCvTwE|n}gkx{zoSIhV;lYk=Dpi$JBx0)}E%mo`W47qt=1R@nke)BwG_b2czM^ T9hP8-^?oH?B}ejDV0)BPrFqdanY(8TR1AAuh7=+w&- zG2$^Fy&yc{<5Ta1DO9zheEGprv=#2fozM8 z7oht0g~oNVRI*@=+~Hqb)0%Mxon`+6ZF`ZBzvIZ=M>%^7m&4H|F1Kq4fNT zXpEfSmSx|H&gl8!;jKFd^Ces;761UT%^Sg!m z^HC`;LC^iW_L4^CxD{q^?}C<;9tmre<*wc zg&)lFxaz91l6{jA^)~ph;TB#?<>M?;@4?nQgvK}_-x zLA%G*M|clW_0qJF0X+uIn_r}nX)(9VQT&7OjRgOn3qhFd2c59@WygAt5iG!rj{T2AB>Ps3}y}XNE_U=C#$U` zuAF<)6-p=-m7hFL1_kOXs+r>4VqBNI;E_bD%0v?(3Pd?mVE9MG+G3|yq*03NGS zjXOOG@Mi)R=-c4tw6L^O8xbW&&WI}anT<=JBa272bay+Sf|5B)!{ORRo+bgCvROBZ zZ!&Xy5(w+)aL|ve2#3RHpfsv#B-dDk#>N7nC9bOgmd2J|S{~<7I;GNOJemSNk(D5Y z-I)qR3kGvIorh7QK4o7XuTfnu-b&{U%VK4P$;15GSe9J{u62ew9^}6@6dSzJLE)~z zCU%rwL;;S$e^o!pdSM=C1C(BXYX*yvASF??cO eN5G3S>@$sRLc( + {% endblock %} @@ -16,7 +17,7 @@ RRB&C - Mapa de Mesas {% csrf_token %}

Mapa de Mesas

@@ -54,15 +33,14 @@ RRB&C - Mapa de Mesas
{% for eixo in eixosXY %} -
-
+ top: {{eixo.x}}px; + "> +
{% endfor %} @@ -71,20 +49,46 @@ RRB&C - Mapa de Mesas
{% for mesa in mesas %} - {% if mesa.active == True %} -
{{mesa.name}}
- {% else %} -
- -
- {{mesa.id}} - {{mesa.name}} - {{mesa.name}} -
+ {% if mesa.active == True %} - {% endif %} +
+ + +
+ +
+

{{mesa.name}}

+ {% for comanda in comandas %} + {% if comanda.mesa.id == mesa.id %} +
+ + {{comanda.name}}🔗 + + {{ comanda.id | total }} +
+ {% endif %} + {% endfor %} +
+ + {% else %} +
+ {{mesa.name}} + +
+ {% endif %} {% endfor %} diff --git a/gestaoRaul/mesas/views.py b/gestaoRaul/mesas/views.py index 43e3ec8..23757ba 100644 --- a/gestaoRaul/mesas/views.py +++ b/gestaoRaul/mesas/views.py @@ -1,15 +1,17 @@ from django.shortcuts import render from django.http import JsonResponse +from comandas.models import Comanda from mesas.models import Mesa +from gestaoRaul.decorators import group_required def mesas(request): - mesas = Mesa.objects.all() - return render(request, 'mesas.html', {'mesas': mesas}) + return render(request, 'mesas.html', {'mesas': mesas, }) +@group_required(groupName='Garçom') def mapMesas(request): eixosXY = [] for i in range(0,27): @@ -18,7 +20,16 @@ def mapMesas(request): eixosXY.append(item) mesas = Mesa.objects.all() - return render(request, 'mesas_map.html', {'mesas': mesas, 'eixosXY': eixosXY}) + comandas = Comanda.objects.filter(status__in=["OPEN", "PAYING"]) + for mesa in mesas: + for comanda in comandas: + if mesa.id == comanda.mesa.id: + mesa.active = True + break + for mesa in mesas: + print(mesa.active) + + return render(request, 'mesas_map.html', {'comandas': comandas,'mesas': mesas, 'eixosXY': eixosXY}) def locationMesa(request, mesaId, location): print('inicioul') diff --git a/gestaoRaul/templates/static/mesas/css/mesas.css b/gestaoRaul/templates/static/mesas/css/mesas.css index 81e222d..a7dc5a7 100644 --- a/gestaoRaul/templates/static/mesas/css/mesas.css +++ b/gestaoRaul/templates/static/mesas/css/mesas.css @@ -19,7 +19,7 @@ color: #333; transition: transform 0.2s; } -.m-card { +/* .m-card { width: 50px; height: 50px; background-color: #f2f2f2; @@ -32,20 +32,20 @@ color: #333; transition: transform 0.2s; cursor: move; - } + } */ .card:hover { transform: scale(1.05); box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.3); } -.m-card:hover { +/* .m-card:hover { transform: scale(1.05); box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.3); - } - + } */ +/* .elemento { position: absolute; } @@ -63,4 +63,4 @@ padding: 15px; min-height: 300px; max-width: 1400px; -} \ No newline at end of file +} */ \ No newline at end of file diff --git a/gestaoRaul/templates/static/mesas/css/mesas_map.css b/gestaoRaul/templates/static/mesas/css/mesas_map.css new file mode 100644 index 0000000..7fcf644 --- /dev/null +++ b/gestaoRaul/templates/static/mesas/css/mesas_map.css @@ -0,0 +1,137 @@ +@keyframes jump { + 0% { + transform: scale(0.0); + } + 70% { + transform: scale(1.2); + } + 100% { + transform: scale(1); + } +} + + +.m-card { + width: 50px; + height: 50px; + background-color: #ff9797; + border-radius: 15px; + box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2); + text-align: center; + line-height: 50px; + font-size: 10px; + font-weight: bold; + color: #333; + transition: transform 0.2s; + cursor: move; + } + + +.m-card:hover { + transform: scale(1.05); + box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.3); + } + + + + +.elemento { + position: absolute; +} + +.espaco { + border: 0.3px solid #cccccc56; + padding: 0px; + background-color: rgba(0, 0, 255, 0); + width: 50px; + height: 50px; + position: absolute +} + +.popover{ + width: 300px; + height: 400px; + top: 20%; + left: 25%; + padding: 20px; + background-color: #f2f2f29d; + border-radius: 15px; + border: none; + box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.2); + text-align: justify; + line-height: 50px; + font-size: 18px; + font-weight: bold; + color: #333; + transition: transform 0.2s; + animation: jump 0.7s; +} + +.popover div { + display: flex; + color: #333; + width: 100%; + justify-content: space-between; +} + +.popover > h4 { + color: #333; + justify-self: center; +} +.popover a { + text-decoration: none; + color: #333; + justify-self: center; +} +.popover::backdrop { + background-color: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(5px); + /* animation: jump 0.2s; */ +} + +.button-popover { + border: none; + background-color: rgba(240, 248, 255, 0); + padding: 0px; + font-size: 12px; + color: black; +} + + + +#drop { + display: flex; + background-color: rgb(75, 75, 75); + border-radius: 15px; + padding: 15px; + min-height: 300px; + max-width: 1400px; +} + + + + +#scroll { +display: grid; +position: relative; + scrollbar-width: thin; +} + +@media screen and (max-width: 730px) { +#scroll { + margin: 10px; + + overflow: scroll; +} + +#mapa { +margin: 0px; + +} + +.popover { + left: 15%; + width: 70%; +} + + } \ No newline at end of file