From a661502a712e3f3ee53e2c2c1797ee43434c0d88 Mon Sep 17 00:00:00 2001 From: Krzysztof Bonecki Date: Fri, 8 Jan 2021 22:23:52 +0100 Subject: [PATCH] Add camper app --- vagus/camper/__pycache__/admin.cpython-37.pyc | Bin 801 -> 828 bytes vagus/camper/__pycache__/forms.cpython-37.pyc | Bin 947 -> 1448 bytes .../camper/__pycache__/models.cpython-37.pyc | Bin 3245 -> 4080 bytes vagus/camper/__pycache__/test.cpython-37.pyc | Bin 0 -> 862 bytes vagus/camper/__pycache__/tests.cpython-37.pyc | Bin 0 -> 863 bytes vagus/camper/__pycache__/urls.cpython-37.pyc | Bin 639 -> 697 bytes vagus/camper/__pycache__/views.cpython-37.pyc | Bin 3078 -> 3540 bytes vagus/camper/admin.py | 9 +- vagus/camper/forms.py | 10 +- ...f check_user_is_owner(request) == True .py | 27 +++++ vagus/camper/migrations/0001_initial.py | 60 +++++++---- vagus/camper/migrations/0002_offer_status.py | 18 ---- .../migrations/0003_auto_20201210_2155.py | 18 ---- .../migrations/0004_auto_20201211_2102.py | 29 ----- .../migrations/0005_auto_20201218_2053.py | 73 ------------- .../migrations/0006_auto_20201227_0025.py | 23 ---- .../__pycache__/0001_initial.cpython-37.pyc | Bin 1504 -> 2623 bytes .../0002_auto_20210103_0951.cpython-37.pyc | Bin 0 -> 1065 bytes .../0002_auto_20210103_0954.cpython-37.pyc | Bin 0 -> 1065 bytes ...002_remove_image_offer_name.cpython-37.pyc | Bin 0 -> 515 bytes .../0003_auto_20210103_1621.cpython-37.pyc | Bin 0 -> 664 bytes .../0004_auto_20210105_2239.cpython-37.pyc | Bin 0 -> 651 bytes .../0005_auto_20210106_1006.cpython-37.pyc | Bin 0 -> 641 bytes .../0007_auto_20210102_1532.cpython-37.pyc | Bin 0 -> 1063 bytes .../0008_auto_20210103_0923.cpython-37.pyc | Bin 0 -> 967 bytes vagus/camper/models.py | 38 +++++-- vagus/camper/test.py | 16 +++ vagus/camper/tests.py | 3 - vagus/camper/urls.py | 2 +- vagus/camper/views.py | 100 ------------------ vagus/camper/views/__init__.py | 3 + .../views/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 241 bytes .../offer_create_and_edit.cpython-37.pyc | Bin 0 -> 2490 bytes .../__pycache__/offer_detail.cpython-37.pyc | Bin 0 -> 1331 bytes .../__pycache__/offer_stats.cpython-37.pyc | Bin 0 -> 159 bytes vagus/camper/views/offer_create_and_edit.py | 82 ++++++++++++++ vagus/camper/views/offer_detail.py | 31 ++++++ vagus/camper/views/offer_stats.py | 0 38 files changed, 239 insertions(+), 303 deletions(-) create mode 100644 vagus/camper/__pycache__/test.cpython-37.pyc create mode 100644 vagus/camper/__pycache__/tests.cpython-37.pyc create mode 100644 vagus/camper/if check_user_is_owner(request) == True .py delete mode 100644 vagus/camper/migrations/0002_offer_status.py delete mode 100644 vagus/camper/migrations/0003_auto_20201210_2155.py delete mode 100644 vagus/camper/migrations/0004_auto_20201211_2102.py delete mode 100644 vagus/camper/migrations/0005_auto_20201218_2053.py delete mode 100644 vagus/camper/migrations/0006_auto_20201227_0025.py create mode 100644 vagus/camper/migrations/__pycache__/0002_auto_20210103_0951.cpython-37.pyc create mode 100644 vagus/camper/migrations/__pycache__/0002_auto_20210103_0954.cpython-37.pyc create mode 100644 vagus/camper/migrations/__pycache__/0002_remove_image_offer_name.cpython-37.pyc create mode 100644 vagus/camper/migrations/__pycache__/0003_auto_20210103_1621.cpython-37.pyc create mode 100644 vagus/camper/migrations/__pycache__/0004_auto_20210105_2239.cpython-37.pyc create mode 100644 vagus/camper/migrations/__pycache__/0005_auto_20210106_1006.cpython-37.pyc create mode 100644 vagus/camper/migrations/__pycache__/0007_auto_20210102_1532.cpython-37.pyc create mode 100644 vagus/camper/migrations/__pycache__/0008_auto_20210103_0923.cpython-37.pyc create mode 100644 vagus/camper/test.py delete mode 100644 vagus/camper/tests.py delete mode 100644 vagus/camper/views.py create mode 100644 vagus/camper/views/__init__.py create mode 100644 vagus/camper/views/__pycache__/__init__.cpython-37.pyc create mode 100644 vagus/camper/views/__pycache__/offer_create_and_edit.cpython-37.pyc create mode 100644 vagus/camper/views/__pycache__/offer_detail.cpython-37.pyc create mode 100644 vagus/camper/views/__pycache__/offer_stats.cpython-37.pyc create mode 100644 vagus/camper/views/offer_create_and_edit.py create mode 100644 vagus/camper/views/offer_detail.py create mode 100644 vagus/camper/views/offer_stats.py diff --git a/vagus/camper/__pycache__/admin.cpython-37.pyc b/vagus/camper/__pycache__/admin.cpython-37.pyc index d7de46393cd5943b757a188eb2992967f8a2db66..b52fc998e96816e92232c44c9d26ed39a1685d91 100644 GIT binary patch delta 144 zcmZ3;wug<^iIaY=xyubnDYkk{ zuK5q`v6ucJ-in^|3kvkq8EzcaLJM>S&JJg&d3^J6AMfoA0(icE{3rb^3W7gybNeKq z9K$j*5Io>S1`R0*K|PdV6O|F@5sziuBxTa1W!hwAMuMjSPk8z&;He;&`OBy*z>@JC zEcqMDKty7|3-}FQN9B+Yp9PcA2J!?G;*z=2jR9rs6=CU|RaWVn4Z#DEOTL}Yg?9V? zMNgO&3-G$(Hw{||s?b?stlQ^pCtrd^1SR1?8H(sK=7fhldL5Pt>{1?M-8_SeGN?G` z1yo$T49lDkpuV9S`-CT2K*lFf<9g@~4{U9v*gS;blh7rS&4hG=hFw!B+J(JX{B-!+ z)8E&xzTP0%n-I@Mu4w9(u9#ek{w%K-wKZ;^i>hvzq@84yFn9XE_K#tiLlE0OO6a3Z zcnCE{>%*NIkIsZ;ld(&DkuI-p(Mmd9SHeZ7XD4p_oli!sqDBhQxwKO13LsABy5LW^@FPZE;8mH?L za02S-ycUw1UjzLySiSh`(ewu+w3%M%^^I9uHK#Mxit4JKo(gkiRX1I+#nQZy6>B=7 zr=EF7-HnS8zXCyzLF6PR`cqKOCxw0hZ~Z=s4^ZG-U2$^3^b;&XAK-p;+K;n0-N$qI z_icH-_6gc@5GgE!A}9Og9pY_wI1qvF7!P62EeC#%e+kM2SPP5>)`q~^lt;jb*!7I? zcVkQ4J2C$cuio>#+KJMW3pfvq1(pEkfzw`x;qBs+LBaY%6d$2@JD`6cfY6L#?P8tn z#`0JXd^J6?Utq}pMD}y=?rr1dM5ASc%)uKguB~P+!yDT!oAb%YrTmh$@KM1$<*45r zc}{2?fJ;5yjOU)lacS(%6=%po{51H%`7G{WiyV5M3HxuoyZlkl@2_wg2EP;|G9ri3 Iz3g84Hx;mPTmS$7 delta 406 zcmZuty-veG47QWpHG#CW0~-RQ!jP32Aw*F-Q3kdMsfv0RXq6+<1qKGxp}YX%C16Cn z3M{uF2Gos5zz#nXmi*mk%b$PlVfnc+J7_kSfb8bwV}u^SI|siO5ZNcMb_f(GEWluj z2+C7_;Tb>mO^^l%15kkyx1fZ^shInzRPqFp#)5Q^pc8p%O|?LdJSUFxTwB+oC)Re< z%P#d p(AM=7S?^j|Udgh=MMu1SpRTSY|Mhp_F3GM6y~p2DpA%!-{{nLJRCfRX diff --git a/vagus/camper/__pycache__/models.cpython-37.pyc b/vagus/camper/__pycache__/models.cpython-37.pyc index 389fac704963a2f82540c121b6f80b13436f2272..91c8ba8756f72cca3f74d45ae3c7337487994216 100644 GIT binary patch literal 4080 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 Qwfx1pW-s1#oyF>Z0fEZG=>Px# literal 3245 zcmb7GOK;o878YM3B~kL*agruclBTWN!tQ;vUG#z2avTJK?V@%cn9X3!8OgLLQXNuG zM0C}3>mSfRP@w;#{R!O+?(Qxw{1@(~J!eQca^SWoi8=h{%90dtvlUUI*0B$OqKas0C;aQO_nmpNHCl)-M8D(r6jbitb^N zCSQfxHLYI*bX}txfNqvOTKqMr-O~EofbM9$N#?+^Hops&-7PJf2hBZxA2jz%%>rm% z=MO;hpwujK=b+Mg;~ag|F;sP!a1o_|{JzLC@jRmu%O_BGr8pHb6##2nEEV*NRLH#m z$4wsxz(XkMryxXy7`#GEVV&6A;O3b@9Kcm>aT{Le%p&efU%oJj$30&AzCvoe4i+_3 zYroeMl6F}p`iYzz!orP_42Mik=s--){|SribSzaLvgb4saX&j&c07(E`(!GwOJW69W6qKqurQo%3gxII_ zn=y;Z79Tuzlz^|Wu9jwNbQFyxi+-xe1+Ykq|9`T9K20|UGM}V*mh|XR5{qCEZfuKm zkR_vyQ`R4+r3~0`B;-c1Ve6xbve954W=m}lo?#nu2|$4Vjt_pZbfKh}3*S~wD)8sV z9=O&<6Y-mhsQ1z)xd{D~OKF-(O3~ER1W_^a)mOY#cG>IHCE6gHC|W3RfU0edvt%a} z5m#o&Rjqr>q^?Tb5pAekMRehg0^#}+jrE|UC_KYA=FOI)wWPWkWZ|jE{o>nBFldzb zBxZ%aHAO`W@xK%@?1cf#!X(aDzhYq)#{G6Lk!{$XQcv8iCoSM?hAXWCu|db-BffGpR5o*wY) z{07j|8=9VODn~~Iu#!YS=5u3A-SrD*gjA{}F$FRenIO(#m_M6#4ky|8m+v4X zh0G=$Q`SJITrPTS9A!Iu9b4ilCL1X3qG*FSN8LGQQ^zb=kB9v*OI3@D0C+J1PGN!2 z~8;Gm_FK&W69@{T-5WGIS%@x&k9-m_m~T=Hd2qS|F%qVOYsaoi|@K z4Of@fP^^Ja^_@hDupd7a6XkX{54xM%k4Qa`0?r>!k0$au_A;pK;1Faafl$qDXg&;wqR`ekRB=B9SJi{V&BHGaR5i_5HcnM-d$&u!WYJg<3!w6! z#4xic7?R9=ruUV?mZp&qBh~Eg?>~L?Io%&2i;-%OBm-bQe=A8M!Qx`QYEOo|FGy_| z1`;UbR1o(oam3OrAqzS_GBF&{Ac-@XL}cX|m?z;NJrxlRV~$jqNYXrFa1DSXS2vKQ z(Q%R`r%9BtFrXtA!(~CW9zWXrd~5&fsXcCAFgW*~6AxEFI{FKKzXRTU8%l~o^SiNZ ztQsw3dU$;k%Iu4Evt>yfcPUUWZg?07(?Erk);AFNI(Yjyvq=@O%NC7NV zVGX1*(EIvY&`^yhL)I5G!GlGws45ufbFhL=OPx69zd;oO6B9XiAsPE3-9Qc)kD`Qe z*t(rE#X8L^0}=mRz5_xz#Yz}%`fOBnZGhfX<>;y9`_M?>;uFTSP+XN~A3~?cP|8zt zS$j~T_L9#oZf%(Mmwl!^W^xONy2?$wB&mkZDtZ8Mn`&?D0e!V$q;^Bc{qvubA7Rg{ zjKwSCK9ngbV7;@XYW#%7{bZdV71xNhvOdnjC|%Dai_=IS<(>^jvC0>Py zUyyTgRg(C_%F!z2?Bab_r?Y$yXTV#f{5OgZP+){5 UJ!{dg8~C>D%d%xI-dgm22O3`tlK=n! diff --git a/vagus/camper/__pycache__/test.cpython-37.pyc b/vagus/camper/__pycache__/test.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a75c69108b5213ab309a6f56e0c94f39408b1c4c GIT binary patch literal 862 zcmZuuJC74F5cXqtv-jfe;3OIvXwWu^kmx|@#3CVt6bc@N8_TzLqD^+Q!FG@m9TnH| z5BLK#{2Lm#R4HjFsF-o?P{c9Pd^;ZRd^7X;>A}G+0ekTCm;6Qv`GJQkOCUG}cMkzH z(X=5g6_gUqG;dhT1#c6Pw5dobc}{eq(+i?gLqBnm>FhNrdTXd81r7Nd<9w-{Swj<2 z@Q}V5jf@R@FIqJ=vWtfsF(*sq&A7A63Tv;7L2wH0?f@7fs3wAGs@Vk*Tyvek7y3ib zEF6~B07qoQz7_UFLlRu71b6oUJekl*r1?xI{3Au8bE?xX{G7-{6Qmo8ol>=PW8bM6 zY?91WYee=krq(z8lH2Zf2@!J$Po^)OYj22Q^-}ORVBJ z0}tEw=gV*$1(j9QL1H!sPKQ9~5o46m)!lzo>R+q*s~hTv9(6+jqcU_DCoQNwf>ew* za1)N<_J*#G@4Gd~AzV6q2trr)|3AXDnqiTKTuM}4%CIYC+v!Dv@xGMr7pmFZ*jvDA zPY_VTEx?Iv4*;LT;RZR&doeRCdSOpb)NI`KQ7DVEg$z2F###K;rU+OW3$|!um$+^I Pcr(%ylqojY=O^qBHCESq literal 0 HcmV?d00001 diff --git a/vagus/camper/__pycache__/tests.cpython-37.pyc b/vagus/camper/__pycache__/tests.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0601623dbcc9a6b2f444bbe32d7ef03743288fff GIT binary patch literal 863 zcmZuuJC74F5cXqV_u}s0BpMoM&^Ad!c|s?Ggb-3Fcoc3d-`a^b+06#qK}vK~T+2V8 zp`_v8(72^aM@2!!jB|$~j*;fu@p$K(na@uS4t5FHm!H4nH%iD4JX~7>!5O%F1fYqg z4QZ*MlxU`T!&)wQn~0=MMM}vtq7$875}g|Qk&8@cuSl7%p^}s|6t9i*1Le#bnvjx* z^yO$|Y}k9=sJlu*oIZ)n=JG-o~_SzT(XW;H0fFXivBABL{T@t}H*9m-~KlIGP z;lLW;h-}!m!k%bIf=dm+-2(tmCUg>MKG6yPK#}Nz>hv?eATrSe>4suwpxU{yZ`BMo zNoJ}wB6|^2>+e8<+xXfyCZuy)S0)tI)dpp1Gx#Co-TA~+-UU83KCoJgol$37sg+kH z3yCw$NMukYYyFkjW2pIk+JEDWb^WPbE#1m@BYEDd#tV0aRUD`9 zVO!UmFT-(ER8~<4iRl7J9Ri_8j8R5c_y3WpccbR7a3~;p6b==P($HZXwWRh4QZe4Z zZ8(Oz8@f6^@YW!QaOv*KVrxy*z`%=DJsAh9x?*OYk zK|l?+04K6J0KSLA4GLD|F*7Xlu%{<#Htu>Tl*QRX1|3Y}EdFX!1gwk&TePuD+_pH~ OjPw{~iVgPp3Ht-qLD*gZ literal 0 HcmV?d00001 diff --git a/vagus/camper/__pycache__/urls.cpython-37.pyc b/vagus/camper/__pycache__/urls.cpython-37.pyc index 6c002fe598afd55cd0ad8057666d814bd2a5c00d..5dd49c3127ef030ca5ea6ada34974a0977c5fd52 100644 GIT binary patch delta 210 zcmey*vXhn1iI3}(<2 znz*M+H;Owav$!NaKP@e_sQ4B`6h}sWZfZedda5SlE#8#;P2tH& zjQTR%Knsf4fW$5Cl&r+O^nAVK{JgXxc96*AwTw|ZoW8Cuo{sUMK|Z&*Aj}|t|BzeU rrA0Xfi6teeMR~<58Hyx8#z;(-Ve%If0y23R1sHiikVS|Q1VxwuIVCvc delta 152 zcmdnV`k#f*iIxaIFV0+al%CPUXCb%6oFs{O~Hw0x@2x~=VTU_#OJ4_ zr4|+6Vu<3%$j?nJNK8-l(-fTC%&0HJ1Jqx{1|)8Ar(`AOrRVD<=jWvru>(b-CZA)B s66G!}$|*=JDM>BLD_+S^Bnnb5Iyr>NUqk@NenDSzGLU-!pZvY*;bt%yqF%pxRsH(y@9}QEUN!J* zcK#dwrD+)drp@us0kVN5-!lz^8O%(K)C|nj3M|uL7PAvObpj`K12^>o4>W^0NhS3I zU*m2vmsW$S#=X;b)A?Xt(<(_Vtq1kA5j4_f&`euFD_sZ{(#2pA=N9vmOKCf3r%S<- zzCV{-PM3pajaQQ^=}NGo@w4BYPgc{b!BtJKCD+pH!FAvktAp2#;D)9*lAFOz$l6Rg z=~}P`T8k~bG=f`fkzK;`jgJi0W=k&(w!{|??ch!9FSBLrmw6NWx3Is$R zewAIt{wl9y{|;+x8{KQ)lO4NO;R&8GE(%|877N~2-@}|n*Dl9A`Sb9W=j!_Q^8k>C}kQJi#bVS$aX0g8nIS7H8S23T(V zQ*iKn9P|Cc|1_3LW7T_H;q?;#e8i4#fS&N#ZHG=Fc~eVPvbmp&v}kLBmhY4b85>DH zh_g`er(?z!TNC9iWDfZT* z$-ImQ*?833RcX?73U>_C%9)u7FIuq-qp{lMnTq?c57U;07!^{GOZ5*!T*tS5cz>PT zBG>oChISHiy>GW)^l=vZ`{Rvwfnov-PNGZszGI$_~O0 z`u%*IsmaoKG!PNvw^e>S&-S?}&Ee`#iWP7ds{n;3RiwspW&v@H4oLSBki5mE^Lpg_ z85eKjK>7fN>6;DHf|S7fL^%FY^lo6uHUKvQlNo`G@M7Y-G^yh_C*b zIq~VsJrK7bh98Dml=3hvs$rPsY@85Y3&W@5C@D|GJ9zmFQ*9$Mk9Y&%H^-cPOYhGa zf?{}sE}S(4w*!Znfy+oadzOi(sXJNL7fD2H#5Su4O zUGa33Af~lK7s~r{T>m|mBy;-1 zFC1k8x>INBGV^Qeg{LfJjy3fTDbMUJ)Ou%!3Veki%rj}1eu@~ot+6t#Y_R~AVwnIL z57wbfFU!JPgi&1*cL@9%ps4ioO!4RHjD>VkP_}%6rPJ83Jkzr*(|0D#GdhtYPV}0? zWh#tXuT`WB$mDbNaXtw!*$+a z5rF*eubnLBBN6S#?Dd!VKJWdHP_j;=WK3mbdnCU7=E->2!9;)-67$aJ+iza~6UcCF zOqFp9q%@L~&X~A^{`%!wcS-k^!qI)(M;ArA+Sw_*a{4Hv^|yFghiu{A|M=4nw+p)W zj0OsHhv*qEs(n2uvGB=(t}BJBL%wih8pOmB-Y+V0-0x$25tsE2JtT{>flh*Q1amnJ zCf&LJpAh0MUJqPt{h+G(>u>!eKMH4*V_w5uNhQOuR?RB@8fFV~fp2WD7=z6e5aW5$H)kcgl3Xs+v>45d<=pje(=8ml;wXHUsW zMdLh+G9Kn<#9fTBIws1ZNP|;Qo1K-iTmh+^s;C_6_OCmtZU)+#7a6|r-!BJ^KhSs} fsin8fw)S<~?95Rdocvk7S@V3)Uu?N8r#1H@oS0Tb literal 3078 zcmZuzOLH5?5#BczZ;*mWidJMwb{>c=(soppLtF_d$%+pyFeOn=)n2w%J40~6eLyn< z(nL{Jse-Ql3n}TCYYsW(noG_(?KPM9FZh(NXF(B^3Doq?^vw2jfBo8r?RLY!@8AFY zPx!y4Vf>dC7e5D+T@2})hQSPGrbcE4rfD#X*{PM;ft@*llevKlp23{d%W6SQ&)w9| z>Oo!4z3RQJ5j3)9(A2zI+REBNJL?3UtQ&N*UeL={f|YDFSjE1@{PafF5BmCSJ-wN& z1#5cVNY}HCU_;NB?`x*Fvdv&q^IPc$+3nyq=55w_Z3I7KUDm_%&L0i7!d71!Y?ZIh z?chVKZ?Hbrecr`-3+tO~4eK@D!TK)N>udw-4SoI|yY2(u_j2ez;vrt}48iQus+ zS4Lcg#fvfKVIjf?pFJ3OW#f_H5d3YzPfP!sL@GUNJmv~As`>K?yEp-U$`_{{+QpS! ztxhH8Ng*<@I%zRV@=)-XQ(Vo!>1A9U6)a>tE<~gX($&wnl+lQj5&f@~nmpxlQsk09 zU1%H=4)mj^jqwOW-T^r`#>UuuW4$#*kD1R5WuL>vbBmk>K<(kdtSOUGKAmhIsVp5h zr8@;casd|2%U&YGXsV8Qu96rAGL08>sgd4Xs=pax6LcaFvEOwLqs7``ZS z9v>$=kGVWn#boCs8cpSb#!)umV&??l$nD8lxf&ngY)DsziyJ>6GdvK(Y?+QFZew=6 zt-rvILYf>~;vQ@^$JW?p7FHX1LpiY7erK~YJSe-5ifj_)XW?EP7t>tLZcZm75ix#W z759t$l#2=uS6?aCAYH73l%7N|P2~asaf>#{_KJ|c<&CR$6sI{Ccd;RT5X1D%j%iuq zL(F4hT>K~ocQIrigd2g$jKE?hvyeSDv*9eKbiOV!9@9zsQH>yH?_)?RCCWHAnK`#` z)*8+l2~y;{$_}$q7!o8;54GB*6N!;5z2j4QzHfw$6nH>#^=0PFr<=FI96}904D%@C zVOTc8Fe}(JrFkn1UrwX6+7Tb)ia7k z|1E~3_k7ba1#zxuOc?EANQ%!3*IjDNY`D;44m5Ymwk`q}^<%cOq_@->UmxEcNLD(o zDI~r}CL?!CZ!cEK2_Kk(avg8GYj=v@Abey)R${~NnndIsZr2fL! zn^#mMr@uQk9MrCZQw;FB_%)FoB9|F)>Gw~t@jDEi&x9lLnRr)_q;TG)L!W|NBFUXO z0-I7{ju_y!UfaykYmd1=!z-IrW!1{R%MmIb1d7fPQbrkb;}t^b+)2z=t}>A^*10>U z`~slPA?ot1x8#&6e=M8dwA zcg8gaguaK7#6NdKpAoH}yKic5(I`~oO%uj@Z_x`>i`C}T9V(u`%zOEFaN9Up*W3gmDW z*7Jiu?>`OphkJK_GR3j_z*6L{UFHL~V>tc-e?`pJ(BVGo4j})G2Fn z8pr6u;-+4qX68vg(g7jrV4=)VjjtNQdr{%)aC$E$N@r3?HN-n|3&gM*W&^!p1C7o% z5g_!mT4n=d6=T+04j29EPgC&*2 zY|EoUsCcTXMh5_?T1s7B1jVMHyb4+bpxj<;*1#$+1mNR^Z`0S6psuGO64auC{^EwJ z?Ta5;|iJVy$nj$d`~qe;@$JfS>nWAT()WIUD{YiYg%n=D4F9qIm`$brmdM#< zB5)u7;RfCy1)7&?Y53GVy>GM(P0|d{?5A7lex{XCxaMVBxd$mQA^k%N(lp)8e{Zz% zpzWt>nNzfr+N)_I7t$zleJ8BxqR@98P9m52p~&H#vnY2(d3aYzy$3aTAEiE+NPUR(3g(eWU7f<}Q`qVhwl;-bo5HS7 zVK)#f!bflu>+={UvJ>!`%-flVdndZ8 z?&p*0%8uNJ^%D~-w}F~VSYeHxN1MygQ1+Trem7t8y9E#6q0--erRVg-^B4c?`4MW$ z-fFO;I+S?PCRtp7E!b7jyxNB;eK=-o1#aU^?}_~G+58@e^5ag2a;rfi>M%YMx(i!4 z;xhqv`-G3I9vz8%NV!WqH>Se$NuQox$Kl4EDD=rQ%cH&%9f{n;LSYQKRPIV~NO_xu z)RKx~{zc3Rya6X(&ERsOMW*9Y4?>Y;L9$wD6`Cjj#%2)!3h1*)1`)G-b}T6(6GkK& zNI#i%J939KE+)?^lW8G6x9yXJQ$B+xyy91wSI4#0D#uGti7Pj}+F`tkagOO|BfH@- zyGJ1|je)9)j4xx@r&U=CLuBnE=Gqj)2ihS6FXBa+R624aj}A%*AB>{GU*Dl~%A=7; zA4mq~ei>Oxmg8ZD3RrlXp5nogI+bNX_hq0qHp9bu5$Qpd9bCtaLSZy_8z`b}#Kk77 z-l*TKM$8}8C8;r3Lj7I$&z~S3DHf^T8Vev_Z(NHjPuTG&rrimhUy(7)K2eS=EOh8m z8q_ourO4Qf^;A`}n;x|>(0Jj|z&@gWk5s8gdl4Vmu}{#t@qmQ!?1br%m>o;HxyO8* zq76=Z{HpYo>2MbuD)N2T<|s3yBKwrKNf+9X2yC}D{C;D|+R$h?TSwiOT`PiT>KD8W&DhEZg8i9aA-Jh$KD@yK^cwXX;& z^z1rLSf51k;)E;XK#EF^-;!bHWK@zSau|VHoxOO`CjEf&x|%)fj6UwM$TQ!6yLdxbww=#OFEiVH;!sQ36Z&?uW{&57tjlv!G%s(-@Zgv@ zI8-9t_K4rZZ5?=?$PWUK5x{oJ(Q$oCNr|*F8y8;;TBK@bGLe&j63gZQ&j3-`B11Od zF7Bh+fDr58_9-r5fN?L%kaN(MeWA}V?S>3&VyJdeIwe ziN_6TZXrA-K|tCl2sEH**tbVqZikp%KRkG79qw;_Y3)94ZtjTUL;{Z< zG1E}>-IcFrF24&zUN&}19x@`|I3hd&OHJ&;0cMe)#b&Z>V{F^U=F+ifaf30B5HrDqW>&;D3P<>3)GD*EL>v3BGB9G7g%>!%i zaA!vp7>-c#aq)YKgDj!E{kyk%h%E?L<-~?@#5z_RSIO?Vt4$jAA{ML;i8Bbt_r%HS z^ADBPwY9Zt*cnyZdNAT?G%6=2JiuE{H;uAsYPw$0Du%8Vj07%gE801&qAhD>^)KV| z?6-u_idI#U3!20(O|S}bl!scORT>Xi@}b1PL3d&%saGA>x|4J>Kc+xiH9qOsg$c2q lXxGnb%fCi5%ER*#B@mVNb9a;Jx+jMylv|S1ikL^v_zwaT4jcdg delta 889 zcmYjNJ8#rL5Vm*yI-l)al1p-Vk&p-I8blCE0S5w-fG7w>B7v^4oSVJFmVJ(F2N9YS zp>+{iG>AVyladA`8h!!g7Kk<_5(Oo*zDvSdp8aO$n{OW9>c6VaBilA5JTH!axS#bC zr?GVhJ&-^SrAThevcM!H5pB~*X)C2qL$$3vkw5|UodhbQfqqQeI?x@dshtVAlWb{v zyCcx~u@F4KKV6hhPFqJ%0W+sv0##-PHdtVTlN0nu(04$FS}u1n1SVh-ralsAE?8Zpiw*>=n0Ovt%z$ncMdw zR{T_M7QgB2(Tm)58BL@pe4(~tf0YZ%_zou|0=Q{}5eTrVH Kp|P-rLH_}Q-{3v~ diff --git a/vagus/camper/migrations/__pycache__/0002_auto_20210103_0951.cpython-37.pyc b/vagus/camper/migrations/__pycache__/0002_auto_20210103_0951.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4c356bda783288e8027600d42f71ce3d40752a9 GIT binary patch literal 1065 zcmah|zjM{SI6pC7>*&%Iv?$^{ z5*VAlQE#FIGZZmy0y?bz%IU{p<1AW78sxhCbd4<)JYnjbuc0$aH*9v z!32wXNsIbPJMofh$&NyRy)?jCVgw@aED8bc76VQ2ptZFA!ubDTX|GuH4a+XFTw9tO zjyC**BeH|*;G!lwvU$1|;2h;}reQXxT>AZfe~-j@T*P52Z8n?XqBrFtLRO|{oe@h+Ut!wCX`&S?%bpDwtee(em#=P$^3G<;1?UmXokq`yJLR7iIKaI8|~ zsz#-E%s7ps{3TsT2a+(4m^5G_-AX1bG1)jAj1C7!L+Or&=j3dBaw0v3de;T`MdSC7 zr!v3a^v0O9=w0xug}5r%j7(Tgrx$VWh>DAX&3l(&REm|YHSKMSxrZ0HPr|ZbWWT?^ z*Wc?uApJ)V_qy{1#|Ngl*hN=4hGlxXV_CX^-)*BF@2tl4d_7jN9apyM^tw})&uXcf ws}-13s@96!+AMbKx7A%s!SAX})k(HF*WP_xlkSuH>Yl0_5)K+)-_>374>8Fh>i_@% literal 0 HcmV?d00001 diff --git a/vagus/camper/migrations/__pycache__/0002_auto_20210103_0954.cpython-37.pyc b/vagus/camper/migrations/__pycache__/0002_auto_20210103_0954.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ac4c54754460890b496f38f3fc7a8595d64a294 GIT binary patch literal 1065 zcmah|J9E=O5Z2qWEGL1Xfq@DdH?|X?fMJ-J*nt^Bn88Vbnj6`-)<}_b=1vOZw9vZa z2SCX$p{2f-ijtO!J;@I$IL+hM#_sZ?>lWP@DCzP&vdY9;2Wd z)l)6g16^0Tks6s9n3)w=)!t0)zLMq*viWLFz!}ovOv7vrT>AZff1kv8T*P52Z8n>s(VKDz3!r4OK-VVA z3DN}xNTXmK6RA}6kvz;mT9veCF{CtT#aS2usX$Jz{Q8J)jj44k*`P2B%e3IC2e=|! z`j@~bOu!1Q6u^VMS$N4x9v3SpfoEEInWo#g&UNXMDuxj05rP?&DWL8X@~#Y1l@;z9 ztHQXc&blGqhx2(jK}QO6$SLI01vk{M-NE_U3vxaly&DafqY*B`l;vlQ55%H0VUS6;0S;vT-yR9}R{h>5fNdH#_u9d zC4Rr{onz6Wcfqd~;;LXXGGRGPFXG-1#6`j8y~{8v#Y)zk_O{L3!wWnhVOcP8&_CGk z@AvPM{-cKvy7L9c2d23=MOP_?Wg7a9W$6Zfw~Ttdy;|4%^;*StT-mD2>rPodtEp

8|+)fi)q8 literal 0 HcmV?d00001 diff --git a/vagus/camper/migrations/__pycache__/0002_remove_image_offer_name.cpython-37.pyc b/vagus/camper/migrations/__pycache__/0002_remove_image_offer_name.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4574f3a0c46c705cf3ff1dd360b6511bd5496ecd GIT binary patch literal 515 zcmY*Vy-ve05Vn&vq-hHhkHD6tDa;5ELNL(*#F7Ckjjxg0Bo204sa;{^L3kIQz$+6Y zD--90s&JA|_ubET_xW-#2npKZ`xiT>gnU@AH4lReeEJ9-C!7|fqzR?uhH!_wFNC{5 zXU?;mINZA@QRfr;NJLFoid>}&AuFBP)YkqH0!b(*I7)MxxZuq?mXv$14q~5okkB{X z+bvV%7(YwP8kFgeMx$dUDzOl0k@Q5F=D_51iY2c~OTgB!lpG3Xk@9iZ`<@q-4X zS}d42Z>6=R4T literal 0 HcmV?d00001 diff --git a/vagus/camper/migrations/__pycache__/0003_auto_20210103_1621.cpython-37.pyc b/vagus/camper/migrations/__pycache__/0003_auto_20210103_1621.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5385ad25f82ab1fb06efc09136a191a155e04b7 GIT binary patch literal 664 zcmYjPv5wR*5OrcFo6X%ybWq$6Y_r*25EViPLLdsRIVebDdDpW`vQ8ZAIomqcAkiaoGhbNo1r*8R0)x zaYIYmu#!dO9g$SB??f`7b@GjtiHt7EJo$}h$i+N%c~k9;=que?mo{30vRl7*lnjk? zT=p3%2n=N`qkU9TV09v6Ng=H#k|9G@r}b1Ow^XLL6eDsuL9WbAKO8xbFx`r#1LMw? z%jKFIX!I5Esu6qOdbb0^ThV|!`44ePa6ZndOEyZh2glk$DK{NDrG@0Z#+^LWJ|1Qv zMY5|v$&2}k%Xq*!cRA-6Hz+{+l=H8HP(Ids5;|xlwA%`-iLqIizfwJzw?2!Z0eJ7r z9D&3Gr~JNzPV`?~uCcFils|}hi~&L2eJ(y(Ft#|Dn`?X1>mA?d7Pg0~cmwv(>#n#G z`@!DpaXiJtwG=q0r(6uZ=IiBpwOpaMdcIyQx@+U#zyz1|&m^NMV^NG>z~^Z>8Jf3;;#?M!)gy8!2`w#o!5%SX-#}%M*j$5x$2qL_elpg;5 z*6(OZyPym_@`?y5g0DmbK%4LjEkohGC29Bz?~sesH%V7lijTGIwTU_@pw&Bjc3cZo z&T;Dk1-J^OFTBbtDFjU@d_f^<7MMS7qGl<=YhOgy6wec}z)G=MzByLFa?y@=1E}(T zp66$bPorc-UTpFWTAN43raY-TUICN)Jtz}8;~m}$w=M4vW;qS5>?H8wdj*Kbk~hGc$YNiMopcPW=6lz1N_0c2HNB`f8MWwv|2X4t4ed^kI}k z_L*0czL7I0+3h4UWaq(u>^x*earSsUTq-+uI}~kSMogn1@O=E7KaI-OoNPUhQaQ{^ k(eS>KYq51*y3SnuE#g_bhbc|`WajIsB|zJ9v3H051IXI0tpET3 literal 0 HcmV?d00001 diff --git a/vagus/camper/migrations/__pycache__/0005_auto_20210106_1006.cpython-37.pyc b/vagus/camper/migrations/__pycache__/0005_auto_20210106_1006.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c3a54ad0129adfd9b078ede043241b3d92d03f5b GIT binary patch literal 641 zcmY*Xv5wR*5VhkZo6X%y6d=AK%_h5WCm|tpAOxb|8bm=F%eS6gl1<`ZCrEegU5BpY zCusQ`w^V!p4HaYORwpK!$;@~%^X56P7K@aieE;@`|D=Tca=}4Dbk0!C5{)F1Hl(EZ z4w|54C2PYnq~tA;Oolf^hQR9Rnw62HA4nGc#&5`Z7TC0{c3KRT>WqzBC804JcXp5% zoikKZpaDOj3?$vrl0jHUGLQ`7dIm`y*K--(QW@PcJWXYcb7pq_{?H$X#T(J~pv%Wa zQ9R{h928#{>s7HTPWXELNuJJEs-y^XdN zH1a$m6QKiIpwROI9>La+FkYx)wus5VR0DJ03V;v;&L%HTTU0KJ?6QrMYmH+ fdEvM8oB8^C#FO_3TiWFL#McW)fN|pz`hfid?{}*r literal 0 HcmV?d00001 diff --git a/vagus/camper/migrations/__pycache__/0007_auto_20210102_1532.cpython-37.pyc b/vagus/camper/migrations/__pycache__/0007_auto_20210102_1532.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b8e77810472567e763dc331b610b0ef998111507 GIT binary patch literal 1063 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 G-r~PpR*2*P literal 0 HcmV?d00001 diff --git a/vagus/camper/views/__pycache__/offer_detail.cpython-37.pyc b/vagus/camper/views/__pycache__/offer_detail.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4762754542339cccbe20319180de9086c59a8bb1 GIT binary patch literal 1331 zcmZuw&2AGh5VrTf`RNY?3KfDAhdq#R=n89&!YCA2BdTXyd z0Z+gy`O1kWK;p!Vlh797$P>?a?EU7O&u`o927&SX+pnzW6Y>L{s5P04%0Lmpid9*OwM zXRF}HJOMuu5%_E1ukZ%=4H1IB&YK@e+WH9yNb1{2i7^+-CQ9&9iNe^8p)gr}G=gcZ?+j?rJy&(0r zmrv%4fQ1}6^6i>y+D$iSo34O)87~%PAc6ffQh1MgfaW0>+crW@s@w=ygi0_LLKULA z1r_;J4(}$c)?jMvT0#S=FmeYma AB>(^b literal 0 HcmV?d00001 diff --git a/vagus/camper/views/__pycache__/offer_stats.cpython-37.pyc b/vagus/camper/views/__pycache__/offer_stats.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..66a11d9dfa6b7bbfa5bbc8cff34e712066734574 GIT binary patch literal 159 zcmZ?b<>g`k0#lvu@gVv!h=2h`Aj1KOi&=m~3PUi1CZpd^V8B&i{gt* a5=)Bp3My}L*yQG?l;)(`fo%8;#0&sMHz`j5 literal 0 HcmV?d00001 diff --git a/vagus/camper/views/offer_create_and_edit.py b/vagus/camper/views/offer_create_and_edit.py new file mode 100644 index 0000000..73e0d24 --- /dev/null +++ b/vagus/camper/views/offer_create_and_edit.py @@ -0,0 +1,82 @@ +from django.shortcuts import render,redirect,get_object_or_404 +from camper.models import Offer,Offer_Category,Image_offer +from users.models import Base_User +from django.views.generic import ( + CreateView, + UpdateView, + DeleteView, +) + +from camper.forms import OfferCreateForm,OfferImageCreateForm,OfferImageFormSet +from django.contrib.auth.decorators import login_required +from django.utils.decorators import method_decorator +from django.contrib import messages +from django.http import HttpResponseRedirect +import users + + +def check_user_is_auth(request): + if request.users.Base_user.is_authenticated(): + return True + else: + render (request,'signup.html') + +def check_user_is_owner(request): + if check_user_is_auth == True: + if request.users.Base_user.status =="Company_Account": # check if user has status 'owner': + pass + else: + render (request,'upgrade-to-onwer.html') + +#def check_offer_belong_to_user(request): + # if request.check_user_is_owner() == True: + # if offer.author == request.users.id: + # return True + # else: + # raise ValueError("To chyba nie twoje :)") + +# if check_users_is_owner == True: + +# Create your views here. + +class CreateOffer(CreateView): + + @method_decorator(login_required) + def get(self, request,*args,**kwargs): + form = OfferCreateForm() + formset = OfferImageFormSet() + context = { + 'form': form, + 'formset': formset, + } + #if check_user_is_owner(request) == True or request.Base_user.is_staff == True: + + return render(request,'offer/add-offer.html', context) + + @method_decorator(login_required) + def post(self,request,*args,**kwargs): + if check_user_is_owner(request) == True or request.user.is_staff == True: + if request.method == 'POST': + form = OfferCreateForm(request.POST) + formset = OfferImageFormSet(request.POST, request.FILES) + if form.is_valid() and formset.is_valid(): + offer = form.save(commit = False) + offer.created_by = request.user + offer.status = 'Verification' + offer.save() + for photo in formset: + imageoffer = photo.save(commit = False) + imageoffer.user = request.user + imageoffer.offer = offer + imageoffer.save() + messages.success(request,'Oferta utworzona i przesłana do weryfikacji') + return HttpResponseRedirect('/') + else: + messages.warning(request, 'Wprowadzone dane są nieprawidłowe.') + return render(request,'offer/add-offer.html', {'form': form, 'formset': formset} ) + else: + messages.warning(request,'Spróbuj ponownie później!') + return redirect("/") + else: + messages.error(request, 'Nie masz uprawnień!') + return HttpResponseRedirect('/') \ No newline at end of file diff --git a/vagus/camper/views/offer_detail.py b/vagus/camper/views/offer_detail.py new file mode 100644 index 0000000..e9bd34a --- /dev/null +++ b/vagus/camper/views/offer_detail.py @@ -0,0 +1,31 @@ +from django.shortcuts import render,redirect, get_object_or_404 +from django.views.generic import ( + ListView, + DetailView, + View +) +from camper.models import Offer, Image_offer +from django.http import Http404, HttpResponseRedirect +class Home(View): + + def get(self, request, *args, **kwargs): + return render(request, 'index.html') + + +class OfferDetailView(DetailView): + template_name = 'offer/offer-detail.html' + model = Offer + + + #def get_context_data(self, **kwargs): + #context = super(OfferDetailView,self).get_context_data(**kwargs) + #context["images"] = self.queryset + #return context + + +class OfferListView(ListView): + model = Offer + template_name = 'offer/offers.html' + + def get_queryset(self): + return Offer.objects.filter(status = 'Active') \ No newline at end of file diff --git a/vagus/camper/views/offer_stats.py b/vagus/camper/views/offer_stats.py new file mode 100644 index 0000000..e69de29