From 46cd6948dc137f2278d7575a8c86d7a8418b23ce Mon Sep 17 00:00:00 2001 From: Priyatham-sai-chand Date: Mon, 19 Oct 2020 19:29:55 +0530 Subject: [PATCH] add watchlist --- auctions/__pycache__/models.cpython-37.pyc | Bin 1637 -> 2207 bytes auctions/__pycache__/urls.cpython-37.pyc | Bin 633 -> 685 bytes auctions/__pycache__/views.cpython-37.pyc | Bin 3462 -> 4042 bytes .../migrations/0006_auto_20201019_1109.py | 27 ++++++++++ .../migrations/0007_auto_20201019_1723.py | 34 +++++++++++++ .../migrations/0008_auto_20201019_1725.py | 18 +++++++ .../migrations/0009_auto_20201019_1740.py | 18 +++++++ .../migrations/0010_auto_20201019_1744.py | 18 +++++++ .../0006_auto_20201019_1109.cpython-37.pyc | Bin 0 -> 947 bytes .../0007_auto_20201019_1723.cpython-37.pyc | Bin 0 -> 1288 bytes .../0008_auto_20201019_1725.cpython-37.pyc | Bin 0 -> 646 bytes .../0009_auto_20201019_1740.cpython-37.pyc | Bin 0 -> 773 bytes .../0010_auto_20201019_1744.cpython-37.pyc | Bin 0 -> 764 bytes auctions/models.py | 23 +++++++-- auctions/templates/auctions/category.html | 30 ++++++++++-- auctions/templates/auctions/index.html | 22 +++++++-- auctions/templates/auctions/layout.html | 2 +- auctions/templates/auctions/listing.html | 14 ++++-- auctions/templates/auctions/watchlist.html | 46 ++++++++++++++++++ auctions/urls.py | 5 +- auctions/views.py | 25 ++++++++-- db.sqlite3 | Bin 221184 -> 245760 bytes 22 files changed, 259 insertions(+), 23 deletions(-) create mode 100644 auctions/migrations/0006_auto_20201019_1109.py create mode 100644 auctions/migrations/0007_auto_20201019_1723.py create mode 100644 auctions/migrations/0008_auto_20201019_1725.py create mode 100644 auctions/migrations/0009_auto_20201019_1740.py create mode 100644 auctions/migrations/0010_auto_20201019_1744.py create mode 100644 auctions/migrations/__pycache__/0006_auto_20201019_1109.cpython-37.pyc create mode 100644 auctions/migrations/__pycache__/0007_auto_20201019_1723.cpython-37.pyc create mode 100644 auctions/migrations/__pycache__/0008_auto_20201019_1725.cpython-37.pyc create mode 100644 auctions/migrations/__pycache__/0009_auto_20201019_1740.cpython-37.pyc create mode 100644 auctions/migrations/__pycache__/0010_auto_20201019_1744.cpython-37.pyc create mode 100644 auctions/templates/auctions/watchlist.html diff --git a/auctions/__pycache__/models.cpython-37.pyc b/auctions/__pycache__/models.cpython-37.pyc index 6d09c6e057c2ced3b5db1b420eec4a9353c69c59..42b56e07e0b74230cee619a141cf558355770afa 100644 GIT binary patch literal 2207 zcmaJ?OK;mo5av^S=;bJB5TvgZZQ7_vWV8rcASi-3cG3b(T%b{UAPf)`cP-JTNOhNr zBcr$E>R%8PXpj9%d+nwE3pw?hCFR6LPzjvfnVsDoe&5XSezzMM_}zGM5`W_v#^0o@ ze-0-1@W=@SGnknhb2Bncnp?Rww^b|GG?aa*AVNBL>xfoD{2ZN%CRFa~1_>=l^Ah z4qUW&eS7=P9t9-#CPg|+_IApnA}mv(IIIC-W@K~cz-=J0q82od`;Y;1Ppl}!tj$`)5VVf=1ve*V)Wy8V+N^_lU)upM z>%waT+66$|!^(j5*~UvFy2vg7>VY6yh5_L89wu@Iv_+3BmTEu9d0L6G$Wkf#waxjV z#QSd4O6$p@6qOVgnzeDcl44LR;nuP$=j9~Jxwu%H-1}vDD8;45;g^i@atb!2c&~Bz zshV*iE<-!L2Qfwv;XHXB=e(F!Gu2**Y@Uc!e8^YGv7jtsBpI*xDOJQN!MxtVvT0UH z)nh!xmONhMNy=sR4`?5n;tD*E@6M`fA@6K%9vvNxL{?6CvaD94v>YuDH?e8T<>o>l zd(tY_YFw06yk9O0HkxMp2*6`}KUwD0(9$O=FP)VcuAzFsStT|c#R+4niTmhBV;j#l z9{DxIZ^nV~3T2AX#Aso(n$d1Xry1Q>#_v>e_U^HD=h|!YCKBDPvMT4w1uiL94&yRa z-Xcq@rQpg>Q54fstW?M_qd+)AXpZFh{+r|$UBschI7a=(@%t1R0cn`Wm(N$=c?H|EMCig2pTbRr4@<$bY4Ibki$i(aTTiyPb{;5aN#)+z zsoAQxd`8D#r+xm@pC8q>&&l=$*}6M;r*Sst^}-EW_>#m~)z&k5JDuWam4>9`^erds znHy%$?BEY+>GgA!dDf~PVZ*vIsa0_ovPBIG&C1gjpV`_*?JMB+AK{-y)P|))U6rb` z?xj(W1)wj)OHBXd82axR^a&~-Y|tLa2S zDp4BkTbB*oXYC$)*X6Za*RIQ^u#R^w@FZ&(|4(0%%4}9Fy%~2wh~{_(*JWuW%4l|Ntx!G1N?pBjO_2` z>@HT`=B)m_pbKj5II-q42fbADb-}B; delta 794 zcmZ`%yKdA#6!rMAe#G{Amqa84NVM4~vY?`(K&$W&G$BFYZA@V~J0oJ^2O8T-B7qhp zN)~A~>8YtH_!svSd;m4v>qUeDJeuP>=iHh5nEBNEX1n(s$CBVXfBhkPqt4w`@?^eq z(4pot$+zYoZw?8FyD&=|fJq^tQYcdbvfQZSlJR|C5d$(bKTF&I7jB4GYvQYVYkCExb(DNv4B`?Gru}<(ip(uB*53Ip`d$VIok@{p2^Lzz zefo0Ca?}H#@MZB+d$hfV-a`OjHqgF^+y>nQZe1LAHm3h*0w3TG%!_X!+(1wf@WjRp z*lE>P)~JUCJ>xqlVd?)b(gzjWP~xcu>BBIHEps2+zwaAjV2p0J5z+InZ2$DBG45mq Sty4C_Cte~CO_DvO@BRXoKB8~{ diff --git a/auctions/__pycache__/urls.cpython-37.pyc b/auctions/__pycache__/urls.cpython-37.pyc index d41307494b9b84641af1b5d01fb0d922be26c423..5933254f2ec6e94f53bd75f3f2b898a542fa4053 100644 GIT binary patch delta 230 zcmey#vX)idiIVZ&O@SWL1(`l9OszB?wlGEaa!jH+dzai(nBC(22J= WV7iO=CjVqiW0aVjz$D4U#|Qx2Pd(QF delta 195 zcmZ3>`jbW7iIvE>>LAm^?%voG10#KeHkjI@O1mdN0Me(Ev2Qz4jOnl}#*^Dt)UZ6a&BsoLhrnscY zsG?&KMZA->nbM@hfKK3H;$h}vM27$g CLM*NT diff --git a/auctions/__pycache__/views.cpython-37.pyc b/auctions/__pycache__/views.cpython-37.pyc index 6b111cbaeefd60c6206dfd5696e2cc75e78be6b7..3539517aac63691ed35554797c152edc00a8d1da 100644 GIT binary patch delta 2096 zcmZuy&2Jk;6yMozuN|vON}JE7Ezo9LWJ{$j1xirUCT$@~fm9$xLdMyd+UwXJGdpf* z zrmxc1V4tC{(=)K2pwp{HIQQh=-9_asRg-$m+bX}Z}ApW?rMh%3EW-& zAW^}!uH-Gg9yghC7C7Gk(WfzGyp}#APsw!po%xG90bYs|>AZEkKZUQ;FOnH#$ARQw zB`y%3*u=NAEHZ(|#~Q5buqU4Y=@|`!k_}TVNzyPIR*z6~hisc5w|i#8*>(4f4Od)2 zzTxfqJ#&xriP0_&1UVECLk2QWt%u|xf$;4WWq)*M^=?R%BV&m{#cj&I3Jc0@Fg4x|XPqa3Yj6kd}85Q7AyNRE&rW|4@Cz()k7@L;waSUO9XXUtNA z?3#PVHj!5Pvo+d3UhPH_s+*LD4wmY&)m$6-?0E#>LK52I4NxG;NJ>b2AfYKPz^43x zr^z8#_4P@(p$ln{g6R@18@iZ&Z(aXb`O8_PXa-X%&LKH$MqEPae!u8enFHA=SOW_I zT9`{O*pFt#84#}(BHn7Twydmk`XIEjDBgsV^e?;A*LKbWCqg9ng(xDyV3nOz@3SmW zM+d6wlDTmOFL(pxhn+(Gs4ziYhFydT1yCU$ox`)0K_jO-&Qo$Jz3krVzX#&|*p+)P zZc6AQrz7IF%zUsiAFkrfm!;xeICu+If~{fLKBRk8+cZhR0n2zkOuP-uus0e;`k&h& zXVSJenZE`nVgboqntID1edf)UvCd-uNH@carBFeW*Wz~Ne#|zP(~>_!ZlufprJGnG zNIV)m(Cj1&=8%d!sNh|xb$kIIB>0sw+2+#utR&!ZD zYb*i#EQwShkyU}1Qdy7bn$xLs$yc`K>r!@-cgp3>&CQaC`8un1<%3ehOWlof+^W`C zQtk*&0Vyh)t+ctU+~eIgE!EGBiZc>rmt;{4e>@}sm2;{ z89v&Y9-a*9Gys+C3eHEEJ5XGW6S^Y0l)BdYu%WMeSt&6AeW4xu5MI}EI_yeUG__00 z0{lKS!OG2i_!{mf*rSGxBb@#44=EtWpetQ+#Dc-P1Lq-G31`(9ZB*Me4yl8ojn_+% z$GSimP9GQgdd8K##6?U0n`yAl5EWZjBZKxx+(32_$!#R4|A2#fW)S?8f3*cwX|j0& hTyh%7QBnY)Dd^u(>lhjJeBZ}a3|?{lqrT%${0|&q$ISo$ delta 1394 zcmZuxOK%)S5T4$7_0Fz0ChQtN;&^SG$2f|8z==U5ND0FBA#oBp%3*}GthYP%IJ4VJ zcW<1ajdHNX1rW0O0^;IG9EbqrH*iIQA29!b6UUqoRP|c2V=<$t?yjn?`sy{mPklL2 zxj8fxIq=-x{kpMzYQHi{{@lOt@m58fC&7AGNDZg^;;Bla8$B)BVk6CX z;@=eFk@}+aAZ1+CSIpn!CsH-v6=Q~-n$k5E?* zn}`0L&k}koRXXi#s@Ri5Ak9Ouu?@IX?l!YbQeee}Je2(N9#=Z2*`fL|Kj*A=4CMd{4APsH@VJ( zHrHE%$ywmY3X*du^HlROAE5GO9XY;Eb;jj1s$4)ucH=_VLZrnMJWMkUX#K8CJ9+@XwE*NiYFhV4skd3b41$a1 zTRK55o1f`d=P{I=V$hvto9DFKRBA^^78m4uXk!t{jQO;9i_Dsr#i@llGLA%;fD=LG zQ6@IiPUCUPcdnb)#YuA2)S@dZGoTu~(!(1ek|Hw50PveI^Aea4J#B5=12u)W972g) zGW*dVr)>ogMeg%6Yfm74t)Bao##A$r!|gQenf$G7_7&QcLot<_(Nm&Y6Eo z<4biE+Nj>gosIef-2GpCRPs&eI4&QUweqElAA(+s0Ko?XLw6s;r=9@mJKGK;j|!5R z7v*@x*(NL)bDsIS&?o%@NZr2M_xe5yzX_fN{oufR;SfjreTUKA!unuWWRVV1vg@up ztOR3QHot|nyMy2^fs@>0T($DD(oKnj)7VH^;&-=%77{BS2NKofH6*rYv1eL554&kg z_awJk=D@F+zlNrsW1p?X;js+j6b^DRhdY~4)B>eCGLEcYhhtK-t{Xj>S;M&t^Lw&O zf)q6nd;g_Z*?h!zf(C2Ql^I!f9^vBe+zsguF3zb9MVh06ipl4dH z2YPMNYemNps|Yjb}}8W+u2Zg>n()p~r(3v|$OBVFgxU z4c1{JabXj-W`;s0X3&CdEUqKnvqe={qC+NeRbbHZeg9cRCMApZ{5`+t_g+MM`~Fk8 zJcnedDAOX5?hPs9p|UE9idIyRoJy;f6G8dqZD(=uZokg(z7Fr2vN6a=aV^`NW~8K0 z2OA~pn%u!ga2JJaT%|Mv>BI<07@uOU<_Qr)Y$jht0NSm$8I4QMiZm8{tv<8fv7GYt z+ORLijF*CM%zc+^D)?q?cztA=vq73szEvMJju^WZe7mx4TVGP3?C~iw6Aui`-1txq zDd!zT-W}G#&3MStmL?j-syRLiyBE`N@p$3=1cx{u&mYXkLDcK{2fO1b zSAU6(TRcMHn6_o$Scv9YM=7 z$z#zsq?aWz56h&;g|xE*C=>4@6}KH-RNmk#{y{;tKnE=_K#%pnq*mGj159eCZB-HM zwE^vQ<9EPCzk^;6I^eI(&5R3O*ufbOXIjvMU3jv#<_7GcuLJvV08iHj+FzmV({8$x z+G#J{g+t8p_1eT4=Zl$V^hvtc%*7TwUmLL*?87&R_*>~-ZQ&tSC#<3d>EUoVd`ZHp zEXeWjcsLr4UXjsg_)6|&Q@T8bgT)i4Z#h|)B zO0qDf;%LDOzzU=`NnVs>UQ{^@;$(h<<=a5#VZ};mlRV5Q`jl+V6UsnZ zm7rX@%dm{@)J~-LNfi%=TNHzF1Lv~YD<*8sSeV~SpHmi=6q?LNSxD<`0zw)ITu9^R zN#BxwjXmO2#mUZsPOMrX`Sw$ZW?1e|wu?TAi zXoRa7S+Fpo0#Sv35J=*r6tcbLv4?8`2_+i`Zq_Ywg79fc`95ai2PmY!jZ+Nt4X(OR z+BGZUUH?Ejq}~f5(jx@vs~APyC*=1kWQsy%0bS4>XdWe0a8qUQ#th3`C~~>FPSUx3 ze_5NdcNONVn?lLP(K)MGxl(5%-7)q^}>>$CCXoGY?qZ+v_66S=)Ue^0J{ot$4vuUOE{#rs?1Cm2(U|9(3=o!%mNF`ebn zT{xW-%bXPj*-=j}D SKQw3eTAhxtQTSNjG5-hE+=TW3 literal 0 HcmV?d00001 diff --git a/auctions/migrations/__pycache__/0008_auto_20201019_1725.cpython-37.pyc b/auctions/migrations/__pycache__/0008_auto_20201019_1725.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2bb23042e0bbec448e2c3a04c0a911c5679a38e GIT binary patch literal 646 zcmZWn&5qMB5VqsAO)D000PzM$kx-fzp@kJ%EkA+_tPp4~Q6wwPOtUFT9PC8Za^M2j zJ_ygjOCVo4@d}(6r(5lTu{@eT&(Al0adb3eL_fdoJo{C*h2)c|Z&p@QT$u z;kB1|oV{V-f%wiqAm4~@A`#$!WZ~!!#j?<|v$`yF)|IL;c3dmK%H+;Zc5o?HClh*qjiZDoQG2z$iXh9ok>Y? zeT5|7lJaw(RW8HQ~&#MmgYnMd}X9zAnyd6|KQ!QTO`-ADbiI?3Rnl43Bz%0ti?osjS$l z?AW%*B>@|pp9CCkEu0@t?0|bs#=RTllCiDBs>md33Q;TVRRVaaQsdgK5h^o0$_P$k z3rK8(m07XF-9^tl&b>t+Tb0f&gQ-p6_=)YNbs(gLN-bcw!XJwt>mx+;VA~M#JniEG({u5cP7L~CHGqN zb@09bE*@U8imQKsVZLs1F6BNlZ)V-)ewvFSv`fl2laKu#_je*(A3=B*7^i|2L&a z(cy9}%`f!uDAQ}-@m$xkakuuXv8w}EusRcmFmJPNGi{x>S#{cdys!PIUH#8YLCTbQ G;QR&HFwk27 literal 0 HcmV?d00001 diff --git a/auctions/migrations/__pycache__/0010_auto_20201019_1744.cpython-37.pyc b/auctions/migrations/__pycache__/0010_auto_20201019_1744.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..13a0c25803a952c81e9c3c77abc2c8d3d8e6c694 GIT binary patch literal 764 zcmZWnOK;RL5OyA$O|p+JCvI><+DnzKDxo5Twk;Gc6r=)&D3ayPm?YaIUhJ%3PaMj1 ze+YlcS5Ey4oERrr^?)sp=9~HKdHG^82??&~Zcl&Og#0n!uv}D@c+@i#K)@P+8(pMsN~a zKw=xL%!(cEt_S9E?yZO5!T>xNf)4?NFoJOwzyzjy8;{eYQ>8 z(DCCaiq0t8HiDi+C($BWoYBSe(@0NyN?E9;s59-Stl^oEJG?%;Vk*bXrH{EG9=$1f z+DK6ssgglwbKi-IOVd0gcsCm%8zo1*?~~XmIqpDsj=?LjDoQR*(MTU$2yv_Av?qKi zfQyV(T*;%J@S(}Mlru#4%g!`Rb5W#RVPn}3TJkz;^0|Y^w3gO*Tf40sd@Xnh*YiO8 zw6#;JLrRgiEjj9AO22JcX}AUf-|!lEofa4#e*n?pdD(DzWnPhvF$9-6>#z>RhWAtb zP2>~ww&L%{%NNOK#idGCb(*u}wfJ6_f`Lj>QDL7_o*YJ!Jba8K!h!rhoYUjYPMXi> z;Zdf=zT>&BW#ew`*K=0~ux528j$zei-DcW4AF}GSr+8ocFT46*nSzulbLRX5=&a0+ literal 0 HcmV?d00001 diff --git a/auctions/models.py b/auctions/models.py index 414cd00..7711a9c 100644 --- a/auctions/models.py +++ b/auctions/models.py @@ -2,17 +2,27 @@ from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): - pass + watchlist = models.ManyToManyField('AuctionListing',blank = True,related_name="watchlists") class AuctionListing(models.Model): + category_choices = ( + ('Fashion','Fashion'), + ('Electronics','Electronics'), + ('Home','Home'), + ('Sports','Sports'), + ('Toys','Toys'), + ('Automobile','Automobile'), + ('Books','Books'), + ('Videogames','Videogames'), + ('Other','Other'), + ) title = models.CharField(max_length = 64,primary_key = True) user = models.ForeignKey(User,on_delete = models.CASCADE) price = models.DecimalField(max_digits = 10,decimal_places = 2) desc = models.CharField(max_length = 1000) - picture = models.URLField(null=True) - category = models.CharField(max_length = 64) + picture = models.URLField(default="https://www.riobeauty.co.uk/images/product_image_not_found.gif") + category = models.CharField(max_length = 64,choices=category_choices) date_added = models.DateTimeField(auto_now_add=True) - watchlist = models.ManyToManyField(User,blank = True,related_name="watchlist") def __str__(self): return f"{self.title}: {self.price},{self.desc},{self.picture},{self.category},{self.date_added}" @@ -26,3 +36,8 @@ class Comment(models.Model): def __str__(self): return '%s - %s' % (self.listing.title, self.user) +class Bids(models.Model): + bid_value = models.DecimalField(max_digits = 10,decimal_places = 2) + user = models.ForeignKey(User,on_delete = models.CASCADE, related_name="bidding_user") + listing = models.ForeignKey(AuctionListing, on_delete= models.CASCADE, related_name="bidding_listing") + diff --git a/auctions/templates/auctions/category.html b/auctions/templates/auctions/category.html index d4340fd..05a1988 100644 --- a/auctions/templates/auctions/category.html +++ b/auctions/templates/auctions/category.html @@ -1,11 +1,13 @@ {% extends "auctions/layout.html"%} {% block body %} -

Listings under category: {{ cat_name }}

+

Listings under category "{{ cat_name }}"

+ {% if listings %}
+ {% for list in listings %}
- +
Preview not found @@ -20,8 +22,19 @@ created by: {{list.user}}

- - + + {% if user.is_authenticated %} +
+ {% csrf_token %} + {% if user not in list.watchlists.all %} + + {% else %} + + {% endif %} +
+ {% else %} + log in to watch this listing + {% endif %}
@@ -33,4 +46,13 @@ {% endfor %}
+ + {% else %} +
+
+
+
+

Seems to be no listings in this category

+
+ {% endif %} {% endblock %} \ No newline at end of file diff --git a/auctions/templates/auctions/index.html b/auctions/templates/auctions/index.html index e46d39d..2a4aa48 100644 --- a/auctions/templates/auctions/index.html +++ b/auctions/templates/auctions/index.html @@ -21,12 +21,24 @@ created at {{listing.date_added}}

+
+ +
-
- {% csrf_token %} - -
- + {% if user.is_authenticated %} + +
+ {% csrf_token %} + {% if user not in listing.watchlists.all %} + + {% else %} + + {% endif %} +
+ {% else %} + log in to watch this listing + + {% endif %}
diff --git a/auctions/templates/auctions/layout.html b/auctions/templates/auctions/layout.html index 975338e..c9a147e 100644 --- a/auctions/templates/auctions/layout.html +++ b/auctions/templates/auctions/layout.html @@ -25,7 +25,7 @@ {% if user.is_authenticated %}