From 1ea62f5f904e26536b32384348daff251f5e5cc0 Mon Sep 17 00:00:00 2001 From: emile Date: Thu, 18 Jul 2024 10:29:16 +0300 Subject: [PATCH] new --- .../__pycache__/models.cpython-310.pyc | Bin 6949 -> 6982 bytes .../billing/migrations/0053_item_photo.py | 18 +++++++++++ .../0053_item_photo.cpython-310.pyc | Bin 0 -> 650 bytes osinaweb/billing/models.py | 1 + osinaweb/db.sqlite3 | Bin 1650688 -> 1650688 bytes .../__pycache__/views.cpython-310.pyc | Bin 18220 -> 18305 bytes .../details_templates/customer-details.html | 28 +++++++++++------- osinaweb/osinacore/views.py | 5 ++-- 8 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 osinaweb/billing/migrations/0053_item_photo.py create mode 100644 osinaweb/billing/migrations/__pycache__/0053_item_photo.cpython-310.pyc diff --git a/osinaweb/billing/__pycache__/models.cpython-310.pyc b/osinaweb/billing/__pycache__/models.cpython-310.pyc index 53ba5160f76491dce4a81cb94157600182fef862..9be8db96c22d8baf69d4e97ca5769f906b841b67 100644 GIT binary patch delta 2517 zcmZ`*O>9(E6z-kQ|Nl&<(_bjIg*eofQc9^mq7^7M)}Rr8d)Gic>+4}xDTMW-EE9?~@10ZluaYg3-)DUneJn(xfG z;pwuzAP?|EP^zT7}nua%|ctT6)5;UbeUp}q+o3GTyTt{Ji_9_rk(nsYZn{;IlZXnMJ_ zXgP!GaOn7W3u$;@3SV%DV4ZZiDUfB|v`lM3o6}3WRg@#@$57z_D>uXQsOS3TO|Ts| zT3v+VdEJ)i#zDhOMuOM0CzPz*g|fnJV(hCM;gAqJ)SbxC=20>isLWlEMaPB%Gzzk+ zHdlkg>eooW$SM)Nmf#I?J)K6O3H4rdpnt=9>PL}!J#ACJM|=G}G@enBSkF{r^Doil z%LHW6jcHo3q}z5;mP(qoBI?&jggsNRed=Ots~A=9#;%++aE!$gI4&&%`2txV`w!`6 zNg6O;ABOf5i6xp@;F(8}X=}@IsGx#v!+D&8-2~KKAl12e`>xeHEBI&gQ~8s#D>{Zk z;T^g@rVD!1y?EEi>onb{g$8LwTzCba<)*;y4J5HGpvX-TPJA4o5b}^x_Y=<8E;2){ z$aU%Z0BgutPB6Sc^9>)&%(FPBt3q<%;OfZNix^BYz%9=%25{*5^`c{5lAzJrw0fBA z8lgUha|9NFPC$NE_-^d4gbQa?TWXUi;f~tXOzLWM4CnH&hg62tFR8+YqFIaOISK2v0v|C|(&Zu17oJVnq;@C<_MGwCYb_*S}(LZr9cfOuiz4;%102EIwX z)AmNHhO2oPLWBeXMZa(JCHib7Xwbrp5Pk0}tG$1Gy*T+=T|+(Hq1@2*F1xHAw)c!t zT(E_JHsl8IZsWU$v(s?NU+kB{ysdgVIz){*pXoT_r%r>&W48Tuw$+12$g)9n41l1A5Er A0ssI2 delta 2488 zcmZ`*-ES0C6z|<`yWbz3Zns?urIZ?3iiK7vMX;rSK!et%T@=^IFx|af7WRuXQ*3!D z0Stk}XuQT~Vq&84!AOk8m>6T?n?9QuV&=v8;EVnP#>B+)yIcFQux;iy=bn4+Ip?0Q z*&oL~9g9>Wkzfn|Ek00-*S?A*gt(~&#Ou*~I3Kywl1=2J^DXI^`bNB`hK-b}c?LvM zDNk8+D$%-4bgAvFQ%qlMeS4gGSPvz)LN}IP1|L6mg2CV76>)D^ghhh?`TfaJuSj8M z(^-8C`g&ESZSU$f?Dhh-13Z8M05sDeU_XN!o~}5uAn9~bmhv2tV8tG^CDu6RM;ACw0z~Qh&Bf4#BLiyB{VSe0GD!N=4hrRm-)B zz3Q%S?r;|iWrJ19ODa0DY`bkv)v-#A=b{Dam^q6aQ*S@1;{FdN5C3lnYSEy=<6?n0U@4J--d?!M%kk4t1euTImf1xSoyUwb76(fC~tU> zt1%tE6Vnx_3+N>lI;y@84-GagpxwBKE}$n=C^E3xhxPMN9yrAw=t6S6aE2pC)tV${ zWm5!BLwp(lTW-WOb0y2RbFx%2%}qDVLPYz7YoK&(RI!ne+3Tx(&YTV7YBN^39$)rr+8h`MeLo`91gT;Ic~&}R4!IH?N|~f1HA?) z11fiZW#;WviidqA2FDb7H$C5SZ~`Yh-{6D8#q>w6}eoa2}jLz9uPUT+PVASEF{r1 z^*}reRcoO=^{5gmGVhvt*!c@L-{*>XMXsp*$zDOaJk8`QI%^c-4bhz&yFve)F4zi20*pTYI6`YI=hYVL8QcBQ{q*F>IP#kfu444mV7=O;vRt$L<2)4xIp;(RCEn&4!L5 z41?wgLB8MTXFVZ7{quqDsgJi!jOziSWv=zRbA_4pfS>{m>#A4$mpnSV$Q7;wuP zUh^iaGtOQy$UuByAdv6GXHg4~M{Jq@re3zpLfM#YuLt8=A7+gMw0;wz>!+aPfXuJR zA*(sCIs?AtwLrPcBLU8KbCC4pFgq78KNo}+P!QE3EZ+X-Aj0|DSZmsCxW8IGd8D)* zuve}J?ERpJ(W~hdq#3XYdH2x`?tNfO5%RUw?MaaBXl+=Gopl=2;0P(xhpSdMNO1J| zu|W%mL|&*=S1OcBQQv5h;u}hR8nunRF$3(d1#CA4eV@^mp?D7PGS28lOv~4e-eM|* z(sg(#*$>v=B{;c1zWU&4iwYZK5oyUYtX`l$8C+K#X=|DXZ*&)vcis#e*Hq4%R#z>a zrT})j-MXoGitFl9r|Rm0DpKsRin^#I%YJv($IG9Q`P<|QmI-+w^NeTwCYOJUi-aF8 lWmrt(_hFs(OIs!IYJn-bM{`2)bW-XW{cp@ij$7Fs@eeecwfF!4 literal 0 HcmV?d00001 diff --git a/osinaweb/billing/models.py b/osinaweb/billing/models.py index 47b2c202..ba6733f2 100644 --- a/osinaweb/billing/models.py +++ b/osinaweb/billing/models.py @@ -16,6 +16,7 @@ class Item(models.Model): item_type = models.ForeignKey(ProjectType, on_delete=models.CASCADE, null=True, blank=True) amount = models.FloatField(null=True) recurring = models.BooleanField(default=False) + photo = models.ImageField(null=True, blank=True) def __str__(self): return self.title diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 56bab1e8aae1c84a0b0ac1cc9d6cd7fa61780fbb..3d9790ecf17a26e709fcf735a9a857adaa882b8c 100644 GIT binary patch delta 348 zcmZp8kkarVWrDPz0|Nu&WCl23UOiFAn9*TlLbeX$ljbuz?PqitftU%1nSq!Eh*^P{ z4T#x+m;;D8ftU-3xq+Bx`xzZx)5U^poebPeISfoW+=sY1xa|4lwhLY0EoWolImmc= zd+#+~Gd51fSa$JnQ>I48>4kTBrKUf4Ex@w<)g4|FM(*agCO>v@RaK_8+U--W@$P1n z)=^L@$jC3rS5hcTEK1HuEYdJEFwj)+3-$47|9_tsi1~n+ABY8jSP+PXfLM6@|NA1W z1qysTN(}t-`6KzI_^$EQ@>%dcFC_XbqNfYR@TkPV+j!cb} zAT_GO1&Nipsd*(p$@tWiWDCnQ%arLC@9>JU<`)6=OkennOJe%zmjb-gU%wF)=0;ZK zc$HUp`h}MQ92{V!N(vg&*8??jvT}$w@;fp$S%WQ5M6v*^4rG(1rHP55nT17sXt73qg6$Ils>RSW{lIGh1yz`xN?-=U5+xl4h!DuT?f>ud0x=&D z^8>K}5DNma5D*J*|9@YEwLp%SCyIf8K7S;?6yG(zT0RTjXT0-yQ+ZW*p78YZL~Rz_ WV8PQK6(b77Vn8guJt{_G*<}ETysruX diff --git a/osinaweb/osinacore/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/__pycache__/views.cpython-310.pyc index e73bf97e86184deddb205f461456ee05a085960b..819703ddc8ae912c9db3efffd670f4789f72ccfb 100644 GIT binary patch delta 1077 zcmY+CUuaWz6vumhx%YRI<|b)v+RWN&ZI(4ROS`5ujY+Gqjk;Rq1l@za7-JJ5T9@+6 z?F1Jmq7Q=Xj~);Q0}%v8M3D%->|xM>4?gZ?3sVpu21D4yfwpSvImtwta6k8V&+mJ_ z=bRtEo8Q5y@4;L0c$%B&SDC+bXjS2kcTL!9(5FsMhMw|%OoS6r+c@kvtmXBJ$jfiV z33^u?6|JJ@ji0m=(sovw^3IAp?by>~x$tbbD_HZDRKB3H+3C5mT{>D&Us$3hbJKS5 ztAct)#+HWn!rg0Y-R}h1#%8uWcd$IIinDgH^dHZ`?aJrZ$=-dC)tSM)S0)&mbY`WK@K@M3ht{f5^|jMwD%0sa&9z~A^LItn@_ z`{$q;Z}(?SCsk3+3==RG2?X7Cu6!h4uye(kvYV=uO|syQxm&qpO4UN?U2B!3Bujp- z3{G}2DqPG>tK)qbYj49V1MSko8$SGbAQV`=!cElObk$mYIp78`P#cU>PpQEtve6R; zW1q@)PVd0k*lq~nd@K$<)rD9MWE;o*_{Z=W=)?UR&Uf~5;3_xJ$EzUYLq-T)@lW6* zOvWQ*pN}7cNqi9B1w;5tvI`R2}ecDX1XsPDWRSDQr0!*PyNo;t$DntvA?OlG+pqzoIV0979*OdBcx)yXpSlp`nuM=iMfl#6i<)MKG;G(Zi#QXen!+o^AOB1k zCM*!X;G825A8K}cmN=>`7jhYs7%)(NstVu1O>I@#CFNH`xl(1z*#yyJnjx2&{9Bdz zp8l*Vot1qfol(qkSj-5#rRWynM+$zb_L~pr{ySlxJgrGJ79SOhh{i`JCSxCQ(A@%n zi|!dvQ1*mXS=8eSAq{ZeVXsJ<XEiJ5D(N~SZOC|2VM-8!5h38tcNcBWpEqJ z7D>d{MY-8(oC`VdRmTuyqPz19Eu&_(FR)$Rvi#etr>KaX
-
+ {% for subscription in customer_active_subscriptions %}
- + class="flex flex-col justify-center items-center shadow-md rounded-md cursor-pointer hover:scale-105 transition-transform duration-300 relative"> +
+ {% if subscription.item.item_type.name == 'OSIMENU' %} + + {% elif subscription.item.item_type.name == 'OSICARD' %} + + {% endif %} +
+
+

Expires:{% if subscription.end_at %} {{subscription.end_at}} {% else %} No + Expiry {% endif %} +

+
-
-

Expires:{% if subscription.end_at %} {{subscription.end_at}} {% else %} No - Expiry {% endif %} -

-
-
+ {% endfor %}
diff --git a/osinaweb/osinacore/views.py b/osinaweb/osinacore/views.py index 24c5ae08..d2e7dc0d 100644 --- a/osinaweb/osinacore/views.py +++ b/osinaweb/osinacore/views.py @@ -465,13 +465,14 @@ def tags(request): def customerdetails(request, customer_id): customer = get_object_or_404(CustomerProfile, customer_id=customer_id) customer_projects = Project.objects.filter(customer=customer).order_by('-id') - customer_payments = OrderPayment.objects.filter(order__customer=customer).order_by('-id') + customer_active_subscriptions = OrderItem.objects.filter(active=True, order__customer=customer) context = { 'customer' : customer, 'customer_projects' : customer_projects, - 'customer_payments': customer_payments + 'customer_payments': customer_payments, + 'customer_active_subscriptions': customer_active_subscriptions, } return render(request, 'details_templates/customer-details.html', context)