From 83e98bf3e21098d8351915f32128eace4a57992c Mon Sep 17 00:00:00 2001 From: emile Date: Tue, 23 Apr 2024 20:41:31 +0300 Subject: [PATCH] New --- .DS_Store | Bin 8196 -> 8196 bytes osinaweb/.DS_Store | Bin 10244 -> 10244 bytes .../__pycache__/models.cpython-310.pyc | Bin 5873 -> 5971 bytes .../add/__pycache__/urls.cpython-310.pyc | Bin 442 -> 512 bytes .../add/__pycache__/views.cpython-310.pyc | Bin 2500 -> 4178 bytes ...rename_due_at_orderitem_end_at_and_more.py | 23 +++++++++ ...recurringcycle_cycle_price.cpython-310.pyc | Bin 0 -> 651 bytes ..._orderitem_end_at_and_more.cpython-310.pyc | Bin 0 -> 758 bytes osinaweb/billing/models.py | 8 +++- .../__pycache__/views.cpython-310.pyc | Bin 6176 -> 6991 bytes osinaweb/customercore/views.py | 45 ++++++++++++++++-- osinaweb/db.sqlite3 | Bin 1077248 -> 1081344 bytes osinaweb/osinacore/.DS_Store | Bin 10244 -> 10244 bytes osinaweb/static/images/.DS_Store | Bin 8196 -> 8196 bytes 14 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 osinaweb/billing/migrations/0040_rename_due_at_orderitem_end_at_and_more.py create mode 100644 osinaweb/billing/migrations/__pycache__/0039_recurringcycle_cycle_price.cpython-310.pyc create mode 100644 osinaweb/billing/migrations/__pycache__/0040_rename_due_at_orderitem_end_at_and_more.cpython-310.pyc diff --git a/.DS_Store b/.DS_Store index f45e38db27d279eb94167e90720dc369a8617cf9..75dd7790b45b5b589a151acd198d29d323601ee8 100644 GIT binary patch delta 159 zcmZp1XmQxEMv(FB`H;0R?$S?Oy&d&=dN-fJwEsw|qvV$|L zQYW7mvJl`5$;;16+KeWQwv6_S9*mxhQH;@y358ar5x<@e2qF2@8q{ii(PgiAzXINlV5H2qz^bXQvnCm*%B7=jY@XIpvh5MyD5L zrUVxxCTHfQN0g*ilmus1rN#>gp(zbYO^JgF)dRJMR2BdgiJ&QRFG@|#0~_d{mR6iv z5`n~yj2GZ9PAx(BQlfo^B`{L2b&Az1{9@&%v84jzyJoy z4&E?^281ENpbTL!FmQ;#SWuc#*+C1!|$QCh=-5vCSD0o7O~|Aeg46E!w2k7|AMZt~Zl%*So#* z-ByVtrX{hlLJDP|e}bSOZ7Ark3W5m!*5CFoP{AMk4}5Q~5CpwtKKJImd0*!9X6EmS zr<1w1>t;0kef`&|jr0CtE@!Y=SvFo87O6&tGoCtNL6#fb+|z(DP7 z#z$;K{$h+WSAJY5N@k7?jA5uGTidKPMc9FQO~7;VurxRf<7gPf(WPvT<}ru$;RoZg z;Q6v;K3qMEhKin8i`9BlaCo&hO)pfVnrM<{x~DOg+L3^n-o(BtB3_Sfz-u`FhJlNJ zE09A3n_xz+Sx?!doUp%S?8&k0w~T!#f9-qY`M1eqm4JAwIK4PmNU(} z+~# zx*tRU-NHN$Uxy|h;CI+-%oIMP5%kmlINuv4vbP>rXsa83T`pDy1) z@iQFH>Z9g3SYwXfi9497EMG33S2eD(efe{7X6P$&zDq#9f!(QYwnP*o8v~_@p?j#? z#qsRT>BA<|s{{AsT50U`b+jbrl{ObmFi`FtD^;#K%&M!ZI*N@>ho$MP;|+T!y`pE8 G(*FPfr5dvU delta 1157 zcmZ`(L2naR5Z9#rc$@i6=M0d4+TK!*`cfeGpuuV93}HGhP?^tbs0#)+(-V`unq zjE3VIxoNh#)+#nu6}H-VT(Zv4AMw(@b7Bfn9B1g~-Eft!OK78(I;{By$j@sbmqprbnr)eUy)n2_J*u@p|$Bz-1b;r*_S< zkCz0b!C?z?VxJY5qfL9l3wx64y~gCJY5LQi1dqqlw<(R{pujZ&U0^>$H$GEosgqSz z3-BuYz7edca;1ebOPrTT3f0mYBG00{)LyD7yeLP)G~|K{Vuf!G;eT<3?h)QBE}vMM z=<4wDdg|(UiQY#)qnA$8l*bnEE1FGpp#1o+R21MFdY&#BH7S0I-lU7ks+cnZC&UHh&b+yo7==B|HBdzwdS*DEp`J@#7bZf%J=iQVG zDV_0M=k6@BV>4u-gt$b%Y4E=NFG{wwNedmfPIvbI8Ot)u~LW4 zHQxU*6TK~F=g3<+%&Z);T7(~HD1W%PEs1voB+oZjEA3mV-oj;C%a0WAa!le)`Hv8$ z39iL;?$Xoz7h~5s*p1CK0#)nXr|`;zRKtrJ&MRalH8^Q5R-nCw{-o*lxdU#_HS+O) E0V!n+a diff --git a/osinaweb/billing/add/__pycache__/urls.cpython-310.pyc b/osinaweb/billing/add/__pycache__/urls.cpython-310.pyc index 0b7516efd8fea833fb5373d29d563db24b6734b6..dfe03896a94bc2786986d977a576a0d2c08fcca0 100644 GIT binary patch delta 164 zcmdnR+`yup&&$ij00ehmsHb@{GB7*_agYHAkmCTv#Ss&=T_sW(Q@B!@v)EI(Q&@YM z(^;Z8Qh0(HGM$gH~jNJk}Ks7uJJdAuSe2jdI9Df1D5)R4$ diff --git a/osinaweb/billing/add/__pycache__/views.cpython-310.pyc b/osinaweb/billing/add/__pycache__/views.cpython-310.pyc index 57b2136671c820154845fc99de01c53e5dd37377..bda80a6a96723c72cb760deda0bd39725f7c4111 100644 GIT binary patch literal 4178 zcma)<-EZ8+5y1I%B#+1Y(1&Hqu^rk?BcBuL?9@dOI|-cF1!5z%+(>DV1BwH6yOMb3 zk<9L%WvSGYTA(jN-wG6|fzxCDjs6)66e!S_`cJ5f+MQYQE|P6Dy#trS;q310?vJyx zX}#`g@cY|8mo{flY1%*V;rP#hhg)#*KR`h=qQ}}$@9IONYYfev~GA#I>Q{^_6VL^==*NJ8@&!>^6t3ZVU7-ss2vu&Jd5(;66)y zQiuB-X^38&KkT!?J)1SUSVAm}iQLqXx$du^?+W6$NU z26q>(Rk-+{pb*+X9~(#7*d+RqzHjE*z#_&YgMA88Wo#1@v{orwAXiGc01N)H|SeOW6gvD%^oSsFG@K<(1sY-MmV?LtEDbOxJ#`yu5mQ+sl=oSbi6~8EHG;AC#BN5v*QF5=X@|pfln7acDI75d zGa;RaEF~kDP+MAP$r>#37O6>@4(Y?Ry4P=ErxO1 zmo;b}7jPY#mQJylT$*7VOE+b(%Ds(UX%DH`P6?}HHzuqZGf}ecLWk1sGYYH6EOZ3P zZP%p3=(i)vg|tGp#ijjd2k-0*noRwd{?yZ6L|z?@(@zsYpNQ`@_AXR=zR~%LQ^q@V z7{!#vakNW2cPM`((yX%<#?dhNBFyk%l}DnV4m&B2lCYD|9VL)Km~5qma))koHX>*u z*}^I5JdWrNU&(f54X3M|ARjvAm!W9sp6=t{C@$MD^dJ8AbJw*D>!oioG(JHpj@%a*A;C`~(Yy^Lr>w-IukAdx*3e%R6Xr@>69$MIB;Y6iXl#@Rj~!Mg9R4E&Wye5W|xQ z8oK>2w`u^E_6xvp1**Mt&vk~iWhn$jLD5R}kafa)@ckcE0s$LiT&9e8g&6E7S2{-9} zR(d2Ih^}!2k+ZUj(YIg_X_Qr^P$AbP5O75VdyAQ*JO2w&Mdvblp{4=HC~K49BceFq zZiCYp_5c_l4w$oRXy&Ns3?|6o8;Pyr=+$`dfeFW^j?t>ZrKLA?%kYf}vG#vlyP==a zUEQ)&(EJ!G^>Npj{P0V`?fo`f{2pxlLKAwf6CF4*gdxnabp(_i=mePhy|Jk6o5CJA z12;E`d8m)87&OP;kp|(^VjsemYz_Qz9m6NF7d4Q8KjJQG2apKBmTrEhkxE`6_G#@q z?WwhICw8gzo|=#zVA~A{l7?tv&!h&dIzXQf^ZZ z;zwHEgp}m$0~L&)y?FWZC1hJ?qvUZ4(Xy9}h8q~o;rn2M??hsIuep5krPP<7VHWmW ze~%USclIjF*RFr?bNE~uCv6LUe1x=DBnM>gT|z||#r#+{QdU|n->7d!RSo|PJ$OO+ zyR`|4!189;r@?QhN_qUgw{hS%)dFDh@$seMZV#-nnM-?fw=s1DXzoOC?tpX< zI&BBV#{LUnSeoF!bTNSLr3qy>P-pGZkV)rm@kywlEp1p}$ZU(ep`vmfX@cwQ4%Vn} z@Kh8L`a@7K3|lG#W_Y~oR(BYLP;`sonME2YmliT4tw9gqb1 zMTM1SG?5imSDH{+T0DGAnFBA|EtP^yGINN{DpLD+R)F#L)DZkQgp{nDS~++8sr=C8 zEM&zKi;2#e)No-7Q0Flf^Sd=XC_rSu1@C%&&P$nn4Gwkd;Gp`7dN{DIJ9)%|U~%Sq zHO*<_rZHJ~oEvC{e*%SXESP6>OTVBmK(1|@m}A>IZWu0P;Fjq%UBlIl7lvj3`>cl< z`MH<2KU-fOsS_hKZA!d$~}mC)2YMry=gpxa!k7fa<1NSoSOI%-f+M-_2m|gknO0pbiQu vO=GzGDbJ71l1d9zM(BP79*$!A2?kt_+2*|F!q(YR=MlWSmV4g4=wJRXdOSo} delta 809 zcmZuvKX21O9QE13zQnQ9LL2@yv?U?n{sY4T6v4p6f{-Frs0>!|T_j6MUEMhqOkG$Q zqg$Dgn7be*2E+$oLgoYTHMn=7B>`;d-A})J_wM(e?%T?jb739?HA{axhu!{WFbPq^rI=KS@n}t~67BR*t44 zS>!`5L<1XBBN)9N7l&EOBTp>MoD<Pm$79gT0-RjT7WBn3c%J7g<=`?3SbprLWxlQNyb01f?)2O0k48F>q)fH>zu+h zU6uYGV~L!2y`kFfHrY5%+#0!KW;0TVr*vhpSBzvyUyfw9&!wDrb|!IbLUc>L^CA+d zuU=<)4UO3hrY)-~ZM(*4OWmexM}K)V_SPX`27r3$pIi)&Te`CwNm{0@5>9X1^$xl}RW%wRFv(tnp#eSwQXE7}}Kyfn$392`OYX z2UaJ*m%J93uCmwwC#xx>kX><@TnUQgFr_wmn7#W~pPEhQN^517^}*56(`T~L13Ib9 z7pq#7JuK>b4%@YJl+tcmjp5Gtk-ejY4h>ZP(ezyY&xzcjQ=FALq(hBGT(LOL)Qyp8m4#%J_PC!Mh`$7!wRivk literal 0 HcmV?d00001 diff --git a/osinaweb/billing/migrations/__pycache__/0040_rename_due_at_orderitem_end_at_and_more.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0040_rename_due_at_orderitem_end_at_and_more.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a89a1116f6383f8d4a23ba3d7489705d292a88e9 GIT binary patch literal 758 zcmYjPO>fjN5OwS%o20G834w$JC#qbUmEeL@RYj`c0!5;5$;HZMrYmoq5A3X}J;QY+ z{supSKjJGV4*Y>i2*$}mYs-`OGIrj~bGn0rjM4c1>+tfBGxo!iyCWoWO3OZ_01N`n znxG6CUh;swX23ywVIVMAiO-@G5MHo6`bm3P&Ry21rKtwhwbsQ=2dHiBQ+G!~mE@eLC3=c7x78qV{~C2~A1rOTuwg*BBV-M*Bc z)|K{qJp=5i3~XzK*3jiJxAz`>@|FLLOI`wu$OxZH&!~nelXX4reE-JG1Imu!=4$Pu^6$C-1Bp>aHm|OPv+e>j+>~waadLd5w!=XK-Dd`?!69ZXir|K`fcQ(2Lc8}i|e*vQ@*slNp literal 0 HcmV?d00001 diff --git a/osinaweb/billing/models.py b/osinaweb/billing/models.py index 49841910..ead54455 100644 --- a/osinaweb/billing/models.py +++ b/osinaweb/billing/models.py @@ -58,11 +58,15 @@ class OrderItem(models.Model): order = models.ForeignKey(Order, on_delete=models.CASCADE) item = models.ForeignKey(Item, on_delete=models.CASCADE) purchased_at = models.DateField(null=True, blank=True) - due_at = models.DateField(blank=True, null=True) + end_at = models.DateField(blank=True, null=True) + terminated_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 + if self.recurring_cycle: + total = self.recurring_cycle.cycle_price + else: + total = self.item.amount total = round(total, 2) return total def save(self, *args, **kwargs): diff --git a/osinaweb/customercore/__pycache__/views.cpython-310.pyc b/osinaweb/customercore/__pycache__/views.cpython-310.pyc index b52c64a1782271be51707435b2ccb5037ed9c579..7e0e5633e082429d448acc7f57784bb6a011d636 100644 GIT binary patch delta 2980 zcmaJ@ZHya78Q$41ukH1E{e5@#-T9K-r7kF!L{%CZXh|=rK&4mIYe?gyy*Qrjowq*w zIy;y2uIo6#ffmpSqM=_T6dym3PC}|g{!~c(N0op-{8}OY@B>vy2vPANs9N54dq%MKbz7FH zddhQXj9NF80jZ~f$7w=x7kHA|l4pRYs3Un6c$&JB=YVHuR`NXX9L-B!0A8R)$&0{C zbnM0vd_akg(}^2OeGD4Qv?2q>=_H+kwh1~-t5BBd4BZE1<&Hz1CL|@A>Sa>86RBlF z_TBlb77+4)@Qndk5PvkTlSQ#^zCxZ6e+RrIuEi$$2E4lt*8*I@VF0dh5)w+b)t<^# zU-R`)rRp~6X`vcwRJ*PAbZ&&OKA}F)mXw;YxJx3nMQbF|Tijc#sq7Gp6PeA;X4?z4 z?DfXxn%CinR{2`HW-<*r*(^plPkBe18;rF&D+?IQD%drNpaRqkmc+0aj=J2Ua#%Jm zexZ#`$My#8KtNyv*s4QRO(o_>w!w~yhpj)&zl?n*fJ=%bLD&hPO#*QDR|Mk1CExw0 z;@Nn)&()z8D!#r$dS+-24Qc?3NoE4Gxar4yBaG1)tVo<&vS!IzB24)4UXmxEEg2fr zqVa8YXzwUJJG9wCX#1(5v!e{tI|@-kyO-)%GS;OQL?>XqQ(-?f%*gJPpY1t32Sd4G zDva~|u&|@>B0Qo*lX->O+oYt>)V9`3hw0Hh)Cq~)qI9T-PMD-F%8lki?Uq9Gp@aB+ zgBEVvJ$LJ2KIV_pV(8KmJUGKA=vbKX%l&~0bIbS@I{t#n-od6`mQT_NTE3x#+2Ite z?2uC+&H?G=!W^v6B&239_vZTO(RU8M$gI*9R^zOggt1G;^`5U72 z3Pjn;LF|FBAR`ZA=vbXbCd;V!>F1pqSDX=5{}X_3)o)MI-(^*VI9!Nr5g$vYR4Gb;I+xSD#`pJC&8 z_XI$s`$4x88SQR^29bWLOE)8J#p6=NBhjLBqU2~Q>#WuESQ+n@TAstclzgI8a^Ueu zYqZ;uNxinmJ@K3~Tcr)|@z$CbX`SwsD2^0*c_T8{x*fh6i0jUg;ummCbZitq{Zi9g z=dEt1Run&X7LK3BE?f}yIRxoIL(Zpe$O+XQ@1<72!E4K-mwy!F>Y|)}gnUVyPv18` zfQH~AfUfEU|CVa232=_1I;u(Xnyxv-B(7>fZB7$EOrMzULUW2|(i8DyYx_-;VnedpN3C46EN@nC8g)`1GF5vaBGE5j>LWz zw7CSQD4*T@C5So$qR!JPJ{M*N;L`uTV^7tYs~M?kD5a{W7ujcF<+jeQa=sosG(Rtn zWX_Yi*v=eFMzK||0g?^aW8%F`WlV0~BM{9#4^WRix%9;+PA{JMhd7fzR94={9RRtL z7j_MH9C&1SYmHW$eMbBsKR>gpjkJx>J2!na)>v;XLwA%K&3bunt`@d~+Z#~|PM|JZUh{&WvEs3g zIFXw(--B_23t}Z#>s!PD6IO_+nFJCW{Plk(EcIhcS3frY;-oF2UPF6kiTPV+zYUSr zHT5GVV1)ljb1`VZG>De`;70(I^axdlkm!AtLxP9P03&Hsmqt>-D3Ip*qXJS2RxOEf zYJihW$rFAOOaNa)fN^k<#v#M`=sVL-&;(6_mvo+%Z8~>(1~Q_(t@7+Jw=+sz209s% zmPQ?jH6gv3=sRAb=>b`SPYZXEahNaLK)8%>1z{6G?%`Er(+GWpJOZBmtO@`!ms^8! zVqZnLE;5CDe~f(%D_=)=1>seMZywdMOW{9*!BX0I0FIKuJ$;YNa8F+B zTM)7vLlIRJ_HB&+4#G_YIZGc|Tf9@Oy70BM0qdZAa1`1=0piz%!w231{)yYlz6-rI zSKL=T@sr!P*<^uO)UJ2-p^?=Uv8Mb0ssI2 delta 2219 zcmZ`)&u<$=6yDig@2>6jdi^7A?W9dw+N$P9;#O4(Y1I zJ0Xp`Zc1GV1d32KHz-naLOGWMTUaI6odq8`I~Rwn;p;2 z_r2#Y$JZ-PJC#Z(czylFzDoy&?>Iy3hdYm*TJ@4(f^}Qzu~{2=91;;vAy0xGaR+${ zoQS89r@@W5i#!9_h-Z-JARqB8@&PDBJcoQ6Y>#*zicq?(%no2|5Qd^yu>d<@CkD5{ zFpS{19d^NP9E^}YJxBK$J0NexdhBUw7;m#v@?GN{c3!&X zJMJ959nTUxhEP}KMl825h14HG5Q<;{1Gc7iRZs)9!Md7I0|m4|>uFV`tj}z+P;Ee{ zH-y*f*o(E5mbV~AuZY%sS>qb6!S@oV2xXloaR^PCJJ$d{N*PCfrRE0BttaO(K*}w`+h+{SpB>GuM1T0Vk4U&N# z#K9(kN!UR9NP$ccC;T`D*}HZ(**PXwlT90PK@#$~h%Hhu5ZFzpr{d4p%`_C=RC$LY z-IQ?qdIzcX3=}um33OJEb)CS$?U!)-X_1A&Al+b4fT1<@f>Kp*y&bd;t%up2FpSxe zhgn?_xuYweFs17b z<8+2U?u>Y-Lv6*Eck+*}K8FGRJi)UFo#fvdOpKHVBBgkw*$XsWF7q!qh1xp^qEbc*rdv(EI zrbWmP{5-9s`GS|zQ8(ciD0-UUl_<5u=cBjkzx=HHX<&q1lulvTO`%QOe6HpBe(kcy zU!%q&c_C+fiVyk|^8G@2HG$0~!LrQw#Yx+2h*>w)KllRX|J7`$5z&`C^Xq#Ez`6|E zjndpgY?gG_M-8;QG0>w3wjuOE3=Bl`uGUqt6`4(|p9AaJsN-lN9tAa#5J@l~v8D=p zJ++}ga!u>%!fB?d6M>EHj0rcu&W=qW1F0Uvp6twY=FeSuj3Fp^(9}lTOJ-G zmGEY^U)LOS+$RtOROWn%fNHw$lvBhaD^TtA%N~e%2ort#Q04NM2pR~RMx^hoSzBz( zp{TPK5wuXPzqyMvaW>NMyJE`0zn!ITF!XB$L6<*luk5*j?0;qBZOoP(`DF3Po<*em zDnYdCw~%#GczRQlFP|8BW)cZsmK(*~zzWUj5L_n+2)bKa$hZ&ac9q~JLb)V=FP_^? zg%KvetG9Vgw7Ea)ywRASZ!BCMZMD(vK0hdLm8MIy>wYCsgNhu-Y5)AD{Jyj=ehjIr X*vyuN!AH|}f>{aGKpeLovG@E1GwSy< diff --git a/osinaweb/customercore/views.py b/osinaweb/customercore/views.py index 866d6f2f..c638559b 100644 --- a/osinaweb/customercore/views.py +++ b/osinaweb/customercore/views.py @@ -5,6 +5,9 @@ import requests from .decorators import * from billing.models import * import base64 +import json +import random +import string # Create your views here. @customer_login_required @@ -123,7 +126,7 @@ def basic_auth_header(username, password): return f"Basic {encoded_credentials}" -import json + @customer_login_required def initiate_checkout(request): @@ -143,11 +146,21 @@ def initiate_checkout(request): cycle = RecurringCycle.objects.get(id = cycle_id) price = cycle.cycle_price - order = Order.objects.create(status='None', customer=customer) + + existing_order = Order.objects.filter(customer=customer, status='None').first() + + + if existing_order: + existing_order.orderitem_set.all().delete() + order = existing_order + else: + order = Order.objects.create(status='None', customer=customer) + order.save() order_id = order.order_id - order_item = OrderItem.objects.create(order=order, item=item) + + order_item = OrderItem.objects.create(order=order, item=item, end_at = datetime.now() + timedelta(days=(cycle.months * 30))) order_item.save() @@ -211,6 +224,26 @@ 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() + if order_item.item.type.name == 'OSIMENU': + api_url = 'https://osimenu.com/api/create-subscription/' + random_string = ''.join(random.choices(string.ascii_letters + string.digits, k=10)) + api_data = { + 'user': { + 'username': request.user.email, + 'email': request.user.email, + 'password': random_string, + 'first_name': request.user.first_name, + 'last_name': request.user.last_name + }, + 'customer': { + 'mobile_number': request.user.customerprofile.mobile_number + }, + 'subscription': { + 'plan': order_item.item.title + } + } + response = requests.post(api_url, json=api_data) + print(response) return redirect('orders') error_message = 'Failed to retrieve order details: ' + response.text return JsonResponse({'error': error_message}, status=500) @@ -223,11 +256,12 @@ def check_order_status(request, merchant_id, order_id): def buy_free_osimenu(request): api_url = 'https://osimenu.com/api/create-subscription/' + random_string = ''.join(random.choices(string.ascii_letters + string.digits, k=10)) api_data = { 'user': { 'username': request.user.email, 'email': request.user.email, - 'password': 'OSITCOM2024', + 'password': random_string, 'first_name': request.user.first_name, 'last_name': request.user.last_name }, @@ -259,11 +293,12 @@ def buy_free_osimenu(request): def buy_free_osicard(request): api_url = 'https://mybusinesscardpage.com/api/create-subscription/' + random_string = ''.join(random.choices(string.ascii_letters + string.digits, k=10)) api_data = { 'user': { 'username': request.user.email, 'email': request.user.email, - 'password': 'OSITCOM2024', + 'password': random_string, 'first_name': request.user.first_name, 'last_name': request.user.last_name }, diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 036f6e958569640c4c14e45b543eb80f2f78cb9b..52cbfd600926b8bb36aaf8e96de0ef5fd465d88e 100644 GIT binary patch delta 21693 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 delta 11621 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 diff --git a/osinaweb/osinacore/.DS_Store b/osinaweb/osinacore/.DS_Store index d624f6901c2b5c80ed7de1f46f1ef86635056338..0f63d7f758ab18d0fb4bbc23935d0b351521f988 100644 GIT binary patch delta 201 zcmZn(XbITREk0RT*kkf#aXH2tlRt^8u}Vrw%ScU@mAE4vk(r#I7o1s@8ZW?KoRMGd z3FHP8rIux;mQNOu)L;yoY%3`tsq7HQ00x{PdHH#%$_@cg?&MTSMQZ^@B}Q#V6GmG` zdqxk&K*k`(WX2rET*e~CYKSr>MhMLy2c@ADW6k6X;$oYxN~*JMW>;uohq+StMp8je TW^svu!F>S%MkZz!RyKA393(9w delta 211 zcmZn(XbITREzV(VX`!QFXkH`!KFLVz(nLqW*wU<4N1@u#z|dSr!PL-T@_Rw!&A&x=u;Z2HWC8%dU=#lU