From 69a9e9e065c76f481966d1e9f01cc70390d05f28 Mon Sep 17 00:00:00 2001 From: Welton Moura Date: Sat, 5 Jul 2025 21:08:38 -0300 Subject: [PATCH] criado endpoint para gerar um json do cardapio --- gestaoRaul/db.sqlite3 | Bin 364544 -> 364544 bytes .../products/__pycache__/urls.cpython-312.pyc | Bin 714 -> 789 bytes .../__pycache__/views.cpython-312.pyc | Bin 4584 -> 5963 bytes gestaoRaul/products/urls.py | 2 ++ gestaoRaul/products/views.py | 26 ++++++++++++++++++ 5 files changed, 28 insertions(+) diff --git a/gestaoRaul/db.sqlite3 b/gestaoRaul/db.sqlite3 index 0d40822df00504fb077bfa9ca49e6dbcf37ea946..73216907fecb29129ff22419f712f6fc20514bad 100644 GIT binary patch delta 1923 zcmY*ZZEO@p7{1%tz5Te|JN==tP|YX?si8f<)K!5BmQ2qq9k6aOGl-|d|m_s8t)&dl?^ z@AEwGj8C0EK6U;hvy(fwH+Cg=PV`UqCnx)**ZR@6cgpERBGI|!W*D!TSPA3OehbF_ z+B1!s6dQ*B_x>qVleNvm$ko;@MnsZ(;Cz1{6M9xz6ht z!}WyI*1R`*%gEyPRik9I)oHsje^b}sTv3^-BC14-kDyDVc?VG`T6PG{i7E$Cd-T{r zba5r~5n7at*2l{`5233XXJI2TJ5J8hw6=w~cir0FW$MYvi{4msN{Xz5Xm<43A>>C5 z`%q&vegutIy7!^GlhK{~(X8m3x6!g_!zXA*YD<%pPOOZ|`%yz>?R&^dRz~-u%aV#E z|Cn$q%BSeKEGb8$6JMgAWe~Rr#0*tBze4ZoW%$fXdlK0b*^jb&vyW!O>@C^$?0K1= zGhb%*WuD1w&6F~|nYPTi)-Tpk>lJIK5#m~J)x zG7cC!3;`Z!HVplH{eV8L->3KMSL==1S?xRRJ?#l?SnJjr)L+%l)mKe*yLy+}E}fP> zm-a;4j-$Diy~oknWYl~L<;z>Uw&-T!vWMry>MhZ<&Kp;*zP=OByArQk-L#w*UE8J2 zf?|*i6M;P@1iVCOhehfIFeSqEhT!c`Jiv)J$mV08@&W1wqy#(QBxg2(iNHSNcz|(& zDGsQ|;gDa3Uk+^JtOa)wht%P4^#yE)u0tFq>M$k3T`%52VULI>^H>NWAx;w}0UQ8p zd4n#;VF^1dfi zrhwv(P%aph8*haIhC>KG7y?8I0DMw}GR-FbJ;___Qp=19U z1E_=l5J;3`X2DKm1WE;cZ03POf;gpm)XtbR8rN8&0-|)_u73>$$efj`yWmbCqE=*G zSIk)<6aj-IFsUIB%w4E*402;}x$Xv#u>21!M7xpl5wP5h%rU|9aU3reng*`0!A%bM zr( z0BklRZ{00GV?9+e7S>~jz&qUpP3Bf#^uQaj2!4?Uqy_iYI}bW5W_UOxMK}&g0zWPk zbMdm=;rRI&)o8!9~Qs^xkU>WwdNKs%-KUBhqkp@ zvqPKfjUP{Ijo-4tAFQxbXgjJ*{eZqf(aYbX)6vnRsQCJ6B%jmTBOgl`k878!zo|#m zXVh`^c6EuGO`S*`NKL2iNv%!IQT|X4D|?g&l_4dsTq6G|AA3!ccgdBze?o_(sBjX! dQ0dX+Zb{MLPEADVQ|OWh-ZJFMTZXb?@^7_jj+Oub delta 907 zcmYLHeN0tl9DdLF{myyc^PcmbgHA*~niu8c;%qkoKZ@1v;lfahON1IN7nhK1Euf6n ztTwo}QLRK}H+pN%?Urm!9n8&-vqh*i*9DZ4Y?h4`wiUG;NgG*gt`5ts=a1*F=eK9S z=XttQ%ezy{59TV#zPyN%jK_LnN>5BZ9fSSnx>gfH+(e_#55#MIzCR`mjl`5PMcu2E z*;97fK4!mVKVxsT*QiZmPFxWug%mG~MiCO3)-CHRYtZU9u;1u4>|S4@Tfd64%tNo*_?y~H59?vj@CW9JKCRa4zxE1TAKGX2f~F5*K3BBy#g|O1oD>J zOUTki-~Zv&jKHf3+P6t|pPMPC&O%t`Oh6KSNri8>QSM4Zf&6gHrwilItqJ^zw0YWP zm`2rqVCHL>mGArx&wB1vIB#^BHDm|$5{zRjMlc^1U>e5Y1dFk1R?Gzbm8R(+eVew^ z&9sCn`gi&nytA{$idmd(9{1zG*1(PEEstB1<_ol@=zd zI4SefG6XZWxesrti@1S^`$)7pP!(#Zdnmke{<8x+gMS7S5l-%1)X77Ez!+xAh;p0Jz5eDU0TEh$bnh7iRJMQ?ukj*rFi$; zfKJuBhImn3OggvE&5{EYkIMHsu98DPLZ!Yg!8mzPK0gC1yzMja0-U)Cn1SnAEjhgj dKfsf*i~;a!8P=%E8o#NcH-|r0jK}~ diff --git a/gestaoRaul/products/__pycache__/urls.cpython-312.pyc b/gestaoRaul/products/__pycache__/urls.cpython-312.pyc index 065ea79c5805a1992bf0ded0aaa2675dd1adcd89..d0686396547b202a37723961b78389a937e98b96 100644 GIT binary patch delta 174 zcmX@bI+ac1G%qg~0}!Nc&dj*V$iVOz#DM{@43P6#fN`S669XoORK^sZROT!pm;wZy z!n1~LH8X^t&KAX0$*ajXS%k5j{}xwrQEFmIs#kG-o}VW72-1Si{k1la;~sgf8gchXKLgw5(X*)0OM>VDF6Tf delta 101 zcmbQrc8XQwG%qg~0}yOc{+d3Wk%8echyw$hP{!vM3==h;aHO+FaaQtZ@=ms4Y-je< nw^D;^Y| diff --git a/gestaoRaul/products/__pycache__/views.cpython-312.pyc b/gestaoRaul/products/__pycache__/views.cpython-312.pyc index 8178fd8a22be62f421e72bec72fe886763ff728a..773533ec4680651640e2482d25867c0ffb50764d 100644 GIT binary patch delta 2403 zcmZuyT}%{L6ux(6cW2mteiqj*;6|Z1T6Te;;tyJ5tJdHTg3*vvGR_Pz>+Z~QXE0zO z%YzS+m{PJ$#Qwyj>4OSM+mJL(pZe|#sLhg5Qy<&(Wep}x`qX=7cVSsM$((!Ud}r?c z?z#7z`D@S9nE$EI=SEZ>|E7*!_s#pm_}zSKYi7_XBiWI3rMN*3BWgR7e5z`&%C=oe zcgi#9v28BtP5B0W7%@ok$^25)B8KS@lHGUEV!=d%{`XK%85*!rZ`rr~zA`xY9_%ke ztKUNdWoV5Yyn_a7Ct0C-{=bG=?^)AKUsjB?t{KV&0b96lxfWl;n9nAe2Fzt=nI;^_ zK4SXZe#)JI@-DON1?=*|yDxjy(VYRWz*+2>PX{b^L@@~uSdc2qHLNC0g^(KXun@#)$OWyaVU#zNXyz_(_~;r4CX^8(0xgcIw3?a*_YZr%yO9a~~ z+LFEQzDEiEa{z_RyXy+(U(hxzD!_)p?$+?21*DGggaRwB?=UU3s51XetZ9RL^LcrX>=Vzu>KYy zA#+E`Q3xr$mBtbctx0y#h;8@FLRr{i!VRz`5iJ^J!xSUCWzUj#5l)zj>|64e7VSqu;KG1_NsIylYjLV(jHfcX zVezLFa!W~whUH2V(bNsv18XE&#UnbI92(NZlrl7=YUCjO@OJws?Uu%ocs!jHC1q4k z$}vfgceS@qbRKArE5p*E8{P4)!<~maq!XqxVfI)!YT^B~lR%AD)CBQC{_T4B8~V*@ zfw5ewCM%k0c@@f!C_|zlsp{=rVmh5vDJfOg;t507jz* zSl@EW7F7=|!|*NhG7tJfEZUk@GbC6nzXQE!P?J zDo{U{na$(^Evtc+M*}N?mgj-aT;RxR;D{ADmS<7$=sIG8?wPZB7pkkD>3vxnxy!w& z*?E88{Jyoi$o<~=-nGc?TqL#{i9L&S{j~d4=!1nr4|^W;JP!$L9o@N(lg~O%W)`?y zc<*X>Z!X;SEZp`xS=-_#)K0@^N})Y$7){y*f7iFFh@Mnt59o z@(7(_&M|c8WiB%7;JgHHW4I576PKB{J}&IO>&*vIRVc?tR{6+6?;pI7uSInY@50C% zZhpmk=iIaIFONOKzdB#=$Jgo)y>qf&S01rW7lHOA)McLp8?Slfgs6?^F}Q#BIgrmF z!NHqvVI?W(A5zwBhBmZ-bGmRTQ)PDv5#xzb(=Z3R?%@rtq8NkI}Wplge>&h2qd&jUTAWvl!z)QQK?O{1SOyqo(YY>bt=_6T~WBZ?40I G{rnFJ*YfB9 delta 1086 zcmZuw%Wl&^6rG6^+p+ViXan?tLJNdcNH}Ly*RqMXXeZ~cg81`pDUS@blPJ0%^!Qa z$H{}t1^(@zSnRj-n$DTa+<4PynKhHM7!#(O_@WRR>@bYqb*Ni1r1tn>RcbpT0G+rDg47#cGY|kd>O@Dt z3=sy(yC|5{I@z!{3LguG8d&=-C~YYvE9JrE;rtH|fW zKgJ^iwypoS8CnBl?ks^-x1PqdYNIH58<{HZNn&KX;VUPZD|0BXLjdT8;mBT^)jr}{8 J;~rO={sK1M*u($; diff --git a/gestaoRaul/products/urls.py b/gestaoRaul/products/urls.py index 21fccfc..1c24312 100644 --- a/gestaoRaul/products/urls.py +++ b/gestaoRaul/products/urls.py @@ -8,5 +8,7 @@ urlpatterns = [ path('onOffproduct', views.onOffProduct, name='onOffproduct'), path('searchProduct', views.searchProduct, name='searchProduct'), path('editProduct//', views.editProduct, name='editProduct'), + path('createJson', views.createJson, name='createJson'), + ] diff --git a/gestaoRaul/products/views.py b/gestaoRaul/products/views.py index c9928e4..1f0b3d5 100644 --- a/gestaoRaul/products/views.py +++ b/gestaoRaul/products/views.py @@ -1,4 +1,7 @@ from django.shortcuts import render, redirect +from django.http import HttpResponse +import json +from django.db.models import Q from categories.models import Categories from products.models import Product @@ -60,3 +63,26 @@ def editProduct(request, productId): product = '' products = Product.objects.filter(name__icontains=product) return render(request, "htmx_components/products/htmx_search_products.html", {"products": products}) + +def createJson(request): + products = Product.objects.filter(active=True).exclude( + category__name__in=['insumos', 'Cervejas', 'pratos'] + ) + product_list = [] + for product in products: + product_data = { + "id": product.id, + "name": product.name, + "description": product.description or "", + "price": float(product.price), + "category": product.category.name if product.category else "", + "image": str(product.image) if product.image else f"https://placehold.co/400x250/efc7b8/49291c?text={product.name.replace(' ', '+')}" + } + product_list.append(product_data) + + # Retorna como JSON em texto simples + return HttpResponse( + json.dumps(product_list, indent=4, ensure_ascii=False), + content_type="application/json; charset=utf-8" + ) +