From 74b03429a96114a4407924d254df93bb8d81eb34 Mon Sep 17 00:00:00 2001 From: emile Date: Thu, 11 Apr 2024 21:24:35 +0300 Subject: [PATCH] ss --- .../__pycache__/models.cpython-310.pyc | Bin 3987 -> 5185 bytes osinaweb/billing/models.py | 11 +++++ .../__pycache__/urls.cpython-310.pyc | Bin 629 -> 830 bytes .../__pycache__/views.cpython-310.pyc | Bin 4194 -> 4871 bytes .../listing_pages/customer-orders.html | 39 ++++-------------- .../templates/listing_pages/products.html | 25 ++--------- osinaweb/customercore/views.py | 8 ++-- osinaweb/db.sqlite3 | Bin 999424 -> 999424 bytes .../api/__pycache__/urls.cpython-310.pyc | Bin 404 -> 345 bytes .../api/__pycache__/views.cpython-310.pyc | Bin 1731 -> 1177 bytes 10 files changed, 28 insertions(+), 55 deletions(-) diff --git a/osinaweb/billing/__pycache__/models.cpython-310.pyc b/osinaweb/billing/__pycache__/models.cpython-310.pyc index 65d3e9aa14ab1a4e1340a80c763e6573c5d3febc..5bebdfb3cd032d7e4022a710b7d32fa8edd48c6e 100644 GIT binary patch delta 2126 zcmZuyU5pe(5T2U9ot@i1_Ku%BL5~v*3*H^ZfQUd;{zTypIe%aYZieZ;yIp5@_PS?* zTX$WOBf%F)u9YPx*q7S(c1`&vTj1wC-?2)zz4rhYg6fV}$7 zd=@ULzs++KywJ~M17s~Ef@c@!I75X6RT)k}s*VYIS)*M6!lV=GDN|5@bLF0_*} zu~E2s5lm>0JS-b!+F!syb;o{Z`%CD$o8}M=Z5V+ZjxlJv{dv;6#7iS;F12s?AUcSx zC}LYiUeuD}d37uGcrSLEB5ZOIEsF!>LJ{L^rQ!#kls*rFO67r^Um+JNpP-sOibIZ| za5NJNb^!{I!3=b8VZ=&2d^E0kXm9k$D=4^DR+G-_M53ex?vaS-{~(E6^`0|z_MwDG z7_|X|5u<8AeChy$6`iPoJkn=Y>16Rpp23&cg(9{@*lMtno}7|+PW_Y_?(IRtAsk8d z9o?ns4<}VTf#;j>AvwS`Nf6_x@_Cwg8wDjH4!57cH`Mf+Q8T*+>Q>F}njNEKGWb~U zT2ZRzFuh|j<9)qrckEi4^~|?*u`P0$wSu=s!$i#{?Mw(ZAGu;I#AU*`ls+gau;DeoEhv2i`Tts5Sz`w zYqXzSjG|^w?w_6xWwp*5tto7ZX|GwG_67GMJ}Fxlr7x<@s2Vn=vB6B{Mc(T7xZU>F zxd&|HeSbDCTfWbwoNooea(l}$T#B>tC>+?)d_P`$%TXahG2Tn&RvQaztoz4H`8d;T z34hU(oK?IiwvwI_MCaISNiM`2sP+$+_!v8aFSWRgByKO1Q9RVAd&S3_Ew-AX+KA%x z(JMYr_9Kqd>@!*qB~icR^ht4o;FnR9bAC%kVV#RgQnYfKidJcObsndh-f|FnjMkLR zupxO2TqHe0%;+}?MNLRLfr^dIkpTyELkIhxoarLb9NoN{djz}IxvKv=X0&tnSvTn4 z7u@ygM<+Kb&QsI^iG<9vq?J)9NS98WrZ1v#vJvqrX-OK1xZk;F(6A3ja*a9~b!{%W zHgt_UQ?VnQlY0)!PZT@Fej zF_MsYG59We@y9{&WMcdW^sL7F#(41NAK=N0Z<-~X9N`jii43XICZU}02zi|(i%4GhMEnlPio)TK(uY4f0LQ&>_!s}zRz z_KsXxi;`F@M@@XQH`HCHaDrB%{y%3n_`qpuS;r{%0;ZpOmy8=K+d>GsigJ$PDV1(?(kXS0x|Q*< zccfh-B82B{56=xpZTtywjEPM&3Jh`S{KKIsiLxmof2 zE(vGK52uk_HPSqdRL1-Mb6CWnFxI`Kj@?wEPKBB6=w2hf+azNvh2g%Cm@53=n00JS z@p{F^_k}YTT6%3u#G6th*1q)PJ5m=b)y1^!wyVpK{GTrc1Z_qWX@17f`GIfx+&7Bm EKYAFY5dZ)H diff --git a/osinaweb/billing/models.py b/osinaweb/billing/models.py index 597098bd..96805bb1 100644 --- a/osinaweb/billing/models.py +++ b/osinaweb/billing/models.py @@ -39,6 +39,12 @@ class Order(models.Model): order_id = models.CharField(max_length=100, null=True, blank=True) due_date = models.DateField(null=True) paid = models.BooleanField(null=True, default=False) + @property + def get_cart_total(self): + orderitems = self.orderitem_set.all() + total = sum([item.get_total for item in orderitems]) + return total + def save(self, *args, **kwargs): if not self.order_id: order_count = Order.objects.filter(customer=self.customer).count() @@ -53,6 +59,11 @@ class OrderItem(models.Model): purchased_at = models.DateField(null=True, blank=True) due_at = models.DateField(blank=True, null=True) recurring_cycle = models.ForeignKey(RecurringCycle, on_delete=models.SET_NULL, null=True, blank=True) + @property + def get_total(self): + total = self.item.amount + total = round(total, 2) + return total def save(self, *args, **kwargs): if self.purchased_at: try: diff --git a/osinaweb/customercore/__pycache__/urls.cpython-310.pyc b/osinaweb/customercore/__pycache__/urls.cpython-310.pyc index 851d795dce32c15c936828f878f9856cf5dc034f..786b047b1c23f0b42c5bcce0ea50069fab8024ab 100644 GIT binary patch delta 418 zcmYk2zfQw25XR#+O+uTbw6qly0|OGOqAW}ZAs&DYv3QBx*ffSDj%;UWmOeoxs!F^A zFTsOk|uW7PRs7PCK7%UvAe{#u?5-DGHNuOt|n%qe%*v z37U{J_p%tJ!iRRtH5OA5Ax^LtF(GNX+!u`-xmBCeS%y}sk@T-k^qc~IegBdghCLZun z5lAjAF3HbLEh;F=Pbp0&VVo7Rzaz<)$c7AC|5j#-)7I$e;PC;TxNorAE@k)jwZlG8Z_vB?vWg-GV RCJzG-BOfatBLs5%0sy50HtYZZ diff --git a/osinaweb/customercore/__pycache__/views.cpython-310.pyc b/osinaweb/customercore/__pycache__/views.cpython-310.pyc index c4d49f55c43541073464e97a249b896800e467b5..a430825dff91cc8ada0728b101fdd46189845bb6 100644 GIT binary patch delta 1901 zcmZ`)&2Jk;6yKR$ukH2PYddz5l9Yz1DRtDQ&_*pEr5}V4Dj*F_AgVc7ThBILv-VoE zW7I~DQYn!Dp{i=<(tn{G5K_gJE8)^ytm|<@>qu&2M1FG)4lgMXIDltCZlJ271e=8cNoKM9Zw2N;ZOI zHOUgp3{oqoX9j8YH3F+@c^Q^uscmhGRBe#c%u;d|8U?~-Za$WO@^r0{@FZH@(gB>eVTt>dnF(Wwp(S+_2tnTBWuJPmhpj1PDA zArDe)yFpOf(=Fj%5n%|RP5}0PCI|+Mt1zMy06nd#HOYo9Xj5+*Jw0HA(YtiRV0zE+ z$wopXdKxo&i7g$xN-W0dxv-VFB5Z+sW+YtEjbbz8;BB-%`Cm8o^iKA- zl{Xbr?xaUI6Iby>ob1O2Zn)_O!sDERbrq9m;KOZ%EJ7J!1R;ko5C&)O9SAX+aRhWC zj8}^0iD4N3*aklg(*rS)_vp`?V|$@H6-Iu`Yj;m}0=L}{dLA!dx4O0Y}0;!IX-uodraLmDoCIG~yCPj(ZzIDEc|pxek}`Nd%QqL&YmjqHfJ+{5bABD@e)R zdxn-kBT50-)X-H5r{(YZlhXsaFWhh=zg}~@qETyjE~NisJcx|XlVM^Je&+EX#!qC5 zAA_aXSPa`MHZgu#DFXg%P5*e1CryDQw zQM?Bdsm00u>rt#j$@e{1)Oijzl0RFLw70etwOh4hTMyx+xLjJkt5oAiIqgDm)jzPC*+Uzm{DHj zvvS97kOg@?d+rrv41X1Egq9a|0}&^eKb)JJUtZ?ekSc_uFHfIWa%?d7cBBef{*axz zrWpAqZ1GC~>zVzyyf#rObBtWS{N6(848j$J_W@#~8HMeB9^b~rcM!(qrQDhMI0g0M zbLhGJJzT}0bL@Sw4)t4c`nCH3t}Y-T)ndKN17#~$F0II~a}(s6e3F~Ve}qa0_#m^+ z2ze-{oYONFRId4F&aufjN!_7;b02go*+3?OOFGeiS7vPCkvGJYGc!Z#`gvvISd5oI2lve~Q4nfbBk-0m#eC`QZ`E TBD4U*fswOF%A%%4?6dy@Y$mZ1 delta 1265 zcmZ9L&1>976u|W)tv+@ott7j)gA><;I9Lw2O+R9qx^{zYnoyi9U6)W%*sOQPUTw6i zWi$&(aO#3hlO9Sb^FI{Yt1pG#dn)u$(u0n<Xs04S@e+Sg*Ol(kgvSK>-3>!}eNq(Y3;+(A1d zwaR}zwPTxBiAk(ug}BIt~A zp7kkfy>^&Hg8&hVf3)X^&X6UYWUyZbiYkSEi_?B#X1hHq!xzS0l5)z5%3i{9&NS&5 znGAc#Y6u5W#(WEM9wN9W3-j9_ZxIUR2+{ zBEy_5%wFB61Nvad*4pBaS_2lvw9^&a+RU8UrEM7?FSLEi*);mjNEDSj7+3u4?99B2 z$_gs&tp^=C$CdgZMGoNdKcEkv--+M*Rj%NtWi#4K1z9EHox51 z*lIQldn4-)Q_3lcfZ>T=;HAn7(MkJZE;jvzFRr2Y3gSbFN3}Q2xjr9FvQ^x`R7)TM~ud%d-Jn#Pu5DQ^Yy(yZ`>zWvkgHDn64aG&zw`eLRh~P`i$}S#FJ3S{BF3 zlWa>}?3M%3B9yn2G>>cJC0NU!t~8H=!Y94VyBXu15zj?6`~+@@o8dfM5J`Ap59gnSh*?D0fCfq! r;Z**zlJYyYR{QdMPw5&+i~OR5qc}3N_3Ec;RZ#8mYlW&&1?SrTY - - -

1

- - - -

Standard Osimenu

- - - -

$169

- - - -

Pending

- - - -
- -
- - - + {% for order in orders %} -

3

+

{{order.order_id}}

-

Premium Osimenu

+ {% for item in order.orderitem_set.all %} +

{{item.item.title}}

+ {% endfor %} -

$200

+

${{order.get_cart_total}}

-

Completed

+

{{order.status}}

@@ -91,6 +67,7 @@ + {% endfor %} diff --git a/osinaweb/customercore/templates/listing_pages/products.html b/osinaweb/customercore/templates/listing_pages/products.html index 78698b55..495108a7 100644 --- a/osinaweb/customercore/templates/listing_pages/products.html +++ b/osinaweb/customercore/templates/listing_pages/products.html @@ -34,7 +34,7 @@ -
+

Basic

@@ -46,11 +46,6 @@
-
-

Best Value

-
-

Standard

@@ -137,7 +132,7 @@
-
+

Shared Basic

@@ -150,10 +145,6 @@
-
-

Best Value

-
@@ -192,7 +183,7 @@
-
+

OSICLOUD 1

@@ -205,10 +196,6 @@
-
-

Best Value

-
@@ -257,7 +244,7 @@
-
+

DEDICATED 1

@@ -270,10 +257,6 @@
-
-

Best Value

-
diff --git a/osinaweb/customercore/views.py b/osinaweb/customercore/views.py index 6c32de2f..74e0de5c 100644 --- a/osinaweb/customercore/views.py +++ b/osinaweb/customercore/views.py @@ -30,9 +30,12 @@ def all_products(request, *args, **kwargs): @customer_login_required def customer_orders(request, *args, **kwargs): + customer = request.user.customerprofile + orders = Order.objects.filter(customer=customer, status='Completed') + context = { - + 'orders': orders, } return render(request, 'listing_pages/customer-orders.html', context) @@ -171,8 +174,7 @@ def check_order_status(request, merchant_id, order_id): due_date = order_item.purchased_at + timedelta(days=recurring_cycle) order_item.due_at = due_date order_item.save() - return JsonResponse(order_details) - else: + return redirect('orders') error_message = 'Failed to retrieve order details: ' + response.text return JsonResponse({'error': error_message}, status=500) except Exception as e: diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 1c3ff48fc121e37e64ca642e485428cc22de81a4..895117d69d8f8c7cf26634c0be85a795d3fd3d99 100644 GIT binary patch delta 825 zcmah`O-vI(6yBL>ch+`0D+dHq(li=01R>iWwzLTdv|TN+e+nfMe-Nkz1ggPUB^t|; zV7y5P*#ieSap0syGtq<5gs3rwlQALb!5A+l1b-6`O5${@#CY-Wz3+Q7`QCdoFQ0G8 z=UeXBL2h{ncwCK&OKJ9crtR5V z_AFq442Z$RU}oSMFoVFbi`ui64@(wRD00$I>AUoWlDl9Au3nOl^3`U4=)biG+ruu0|D{`7AX+n~S~`Pcj_ zevK87O-_uMBMDT46CiAG9E1#xfgpXaiq5_0un^F3pLhcb0p`1p_1+;-s&MUmrdyWX zE^dah@v`(X88amGIB4sp`0Oi+ z5l+W%Z3}>~5~ppr^r8UpQ@mx{u0Sy~Kaa@*MDuKx&k!BZ{Q6Tws{h)puSsd5j}cKv z(H^p;Xe#Ca}>(s3LM$671$ihwmNP96mO1Bcenq~uS)~uLF8I?C~zg#;hA&|4v+S9rFzew3`WMg thWf{jkEG6C&icHW&Po6HSW3<)z3o}I?DjUu-UfG*^PgqWjaKO(_yrLD)Q$iE delta 370 zcmZo@ux)6togmG4Vxo*Q>j?(EtP2}cQneYKCZEzaVzik2S38x_cXP7NDknZeD+5z2 zBLh7nb0bS5lV<7scIkXZAZ7w$W*}w(Vpbq#17da{<^W>O?b7*NFBfn*aeQIm|HJ>C z|I>E94UBb6n+pvx*tUO>;1+Oa@nuhCn9lQo#bvus0(Tfl>M+Z+cf2gyGt;?epI~<4 zIJceMfTxj(h5sDKIiRc)8(8*|1&p37iou+n>1cC`dBfaYRjL zPvEHq>bb@~-715Je|u&I&+Kw$RUW(P>o% zyg&=sw)4K@{VvGt%e-$YJKyZBO3X6M+xIc^x#chm@heSdFW^%JD*eW{U8$b$kpi&IkbH&U+C6 diff --git a/osinaweb/osinacore/api/__pycache__/urls.cpython-310.pyc b/osinaweb/osinacore/api/__pycache__/urls.cpython-310.pyc index 7e1b25986f3577ddeb5d0a166caa5a3c61bc02e0..415500cdc63db92126248613a3d4dc40f5254b37 100644 GIT binary patch delta 112 zcmbQje3MB#pO=@50SIU=i13e#UYh4j_|x42WX67$mY z^-7C!ii?j69PUF|AV+8Vw1%Lz(0}mqza)2N+A0q&HjUK`P delta 725 zcmYjPPiqrF6rVSn&2F-Pk~S8M77U8WA|wY-iuF7j=fJ>*i-ok_ZJcPGruqLd9e zM8u1SuqUxXd-Lii@Ze3*53n~sh2Y7VHEQQEznS;m@ZRseH}4u>JfC@96RGvBzcrp& zD}Ni_tnTja5k#!GnK(lyafdD-rQ5NW_(MNw4O@VyNg5Ma0%;QG6SDr{Y`>P#L5^);JPoI4N zzxWOW+QmKmvA&_`a=-Y2cc5F`FmiB;Gvm(Ux-y5LYgwck z;2aZt0dtVXv^F(!AjVrbuV0`!&M`q5@SCKT!+S)`560Y(R&Ffe5J{WViAC%)tTlpE ziH&{kA+$iHNt00&2f(*gveR29su=NLFi7bOCZcrI*T@L%hb$RX4H*1_!Q<1;Q$cx; zFe-W}lRf$}5>mCs5?L5hAyin-84ns|J)!c15#Cnec}D|QP+IJGO2dT|WqlmQlJe3V zM_fqm>L-qZpvJH2yXM7x1*OZ^-95^9%)8oN!8PsNx;(3+FcXp`l;2h^p;I@p3!B(h zXoHVyKP%5Z4mOLgMzJV6WI9SGOjVgm9v$~}Fy7D^^hYb5wOe>Sxg`4`3hZ&i(JrRD`_jSjV9P#AASSW4zy|j