From c5ef679a14312f620ef147554dc03d424db145dc Mon Sep 17 00:00:00 2001 From: bot50 Date: Mon, 19 Oct 2020 14:00:24 +0000 Subject: [PATCH] Priyatham-sai-chand-web50/projects/2020/x/commerce@20201019T140024.462196175Z --- .vscode/settings.json | 4 + auctions/__init__.py | 0 auctions/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 141 bytes auctions/__pycache__/admin.cpython-37.pyc | Bin 0 -> 335 bytes auctions/__pycache__/models.cpython-37.pyc | Bin 0 -> 2207 bytes auctions/__pycache__/urls.cpython-37.pyc | Bin 0 -> 685 bytes auctions/__pycache__/views.cpython-37.pyc | Bin 0 -> 4042 bytes auctions/admin.py | 8 + auctions/apps.py | 5 + auctions/migrations/0001_initial.py | 63 ++++++++ .../0002_remove_auctionlisting_date_added.py | 17 ++ .../0003_auctionlisting_date_added.py | 20 +++ auctions/migrations/0004_comment.py | 25 +++ .../migrations/0005_auto_20201018_2304.py | 23 +++ .../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 +++ auctions/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-37.pyc | Bin 0 -> 2931 bytes ...e_auctionlisting_date_added.cpython-37.pyc | Bin 0 -> 527 bytes ...3_auctionlisting_date_added.cpython-37.pyc | Bin 0 -> 723 bytes .../__pycache__/0004_comment.cpython-37.pyc | Bin 0 -> 1007 bytes .../0005_auto_20201018_2304.cpython-37.pyc | Bin 0 -> 716 bytes .../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 .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 152 bytes auctions/models.py | 43 +++++ auctions/static/auctions/styles.css | 3 + auctions/templates/auctions/category.html | 58 +++++++ .../templates/auctions/category_listing.html | 19 +++ .../templates/auctions/create_listing.html | 34 ++++ auctions/templates/auctions/index.html | 54 +++++++ auctions/templates/auctions/layout.html | 49 ++++++ auctions/templates/auctions/listing.html | 48 ++++++ auctions/templates/auctions/login.html | 24 +++ auctions/templates/auctions/register.html | 30 ++++ auctions/templates/auctions/watchlist.html | 46 ++++++ auctions/tests.py | 3 + auctions/urls.py | 17 ++ auctions/views.py | 149 ++++++++++++++++++ commerce/__init__.py | 0 commerce/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 141 bytes commerce/__pycache__/settings.cpython-37.pyc | Bin 0 -> 2301 bytes commerce/__pycache__/urls.cpython-37.pyc | Bin 0 -> 966 bytes commerce/__pycache__/wsgi.cpython-37.pyc | Bin 0 -> 546 bytes commerce/asgi.py | 16 ++ commerce/settings.py | 122 ++++++++++++++ commerce/urls.py | 22 +++ commerce/wsgi.py | 16 ++ db.sqlite3 | Bin 0 -> 245760 bytes google | Bin 0 -> 15903 bytes google_9q82OQA | Bin 0 -> 15903 bytes image_google | Bin 0 -> 15903 bytes image_google_sTknGkm | Bin 0 -> 15903 bytes manage.py | 21 +++ 60 files changed, 1054 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 auctions/__init__.py create mode 100644 auctions/__pycache__/__init__.cpython-37.pyc create mode 100644 auctions/__pycache__/admin.cpython-37.pyc create mode 100644 auctions/__pycache__/models.cpython-37.pyc create mode 100644 auctions/__pycache__/urls.cpython-37.pyc create mode 100644 auctions/__pycache__/views.cpython-37.pyc create mode 100644 auctions/admin.py create mode 100644 auctions/apps.py create mode 100644 auctions/migrations/0001_initial.py create mode 100644 auctions/migrations/0002_remove_auctionlisting_date_added.py create mode 100644 auctions/migrations/0003_auctionlisting_date_added.py create mode 100644 auctions/migrations/0004_comment.py create mode 100644 auctions/migrations/0005_auto_20201018_2304.py 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/__init__.py create mode 100644 auctions/migrations/__pycache__/0001_initial.cpython-37.pyc create mode 100644 auctions/migrations/__pycache__/0002_remove_auctionlisting_date_added.cpython-37.pyc create mode 100644 auctions/migrations/__pycache__/0003_auctionlisting_date_added.cpython-37.pyc create mode 100644 auctions/migrations/__pycache__/0004_comment.cpython-37.pyc create mode 100644 auctions/migrations/__pycache__/0005_auto_20201018_2304.cpython-37.pyc 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/migrations/__pycache__/__init__.cpython-37.pyc create mode 100644 auctions/models.py create mode 100644 auctions/static/auctions/styles.css create mode 100644 auctions/templates/auctions/category.html create mode 100644 auctions/templates/auctions/category_listing.html create mode 100644 auctions/templates/auctions/create_listing.html create mode 100644 auctions/templates/auctions/index.html create mode 100644 auctions/templates/auctions/layout.html create mode 100644 auctions/templates/auctions/listing.html create mode 100644 auctions/templates/auctions/login.html create mode 100644 auctions/templates/auctions/register.html create mode 100644 auctions/templates/auctions/watchlist.html create mode 100644 auctions/tests.py create mode 100644 auctions/urls.py create mode 100644 auctions/views.py create mode 100644 commerce/__init__.py create mode 100644 commerce/__pycache__/__init__.cpython-37.pyc create mode 100644 commerce/__pycache__/settings.cpython-37.pyc create mode 100644 commerce/__pycache__/urls.cpython-37.pyc create mode 100644 commerce/__pycache__/wsgi.cpython-37.pyc create mode 100644 commerce/asgi.py create mode 100644 commerce/settings.py create mode 100644 commerce/urls.py create mode 100644 commerce/wsgi.py create mode 100644 db.sqlite3 create mode 100644 google create mode 100644 google_9q82OQA create mode 100644 image_google create mode 100644 image_google_sTknGkm create mode 100644 manage.py diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..f514ed3 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "python.pythonPath": "C:\\ProgramData\\Anaconda3\\python.exe", + "python.dataScience.jupyterServerURI": "local" +} \ No newline at end of file diff --git a/auctions/__init__.py b/auctions/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/auctions/__pycache__/__init__.cpython-37.pyc b/auctions/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..73420462a6caf2a6cdc4cb93ea604b24391236c8 GIT binary patch literal 141 zcmZ?b<>g`kf_HcQ;z0Cc5CH>>K!yVl7qb9~6oz01O-8?!3`HPe1o6wv*(xTqIJKxa zCMhpDBQeG$zdSD|KQW~^COJPhH?=4^H72n%xg;|`uQ(TZl OX-=vg$h^-$%m4t$+am@5 literal 0 HcmV?d00001 diff --git a/auctions/__pycache__/admin.cpython-37.pyc b/auctions/__pycache__/admin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dfd5cc25962a4ac56a779c84df76ed9bf9f4e71d GIT binary patch literal 335 zcmYjM%}N6?7)&s4B8n5fOi6-xG@0ZhmoE5IvJ!Y-H$E4sMS{YRD literal 0 HcmV?d00001 diff --git a/auctions/__pycache__/models.cpython-37.pyc b/auctions/__pycache__/models.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..42b56e07e0b74230cee619a141cf558355770afa 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; literal 0 HcmV?d00001 diff --git a/auctions/__pycache__/urls.cpython-37.pyc b/auctions/__pycache__/urls.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5933254f2ec6e94f53bd75f3f2b898a542fa4053 GIT binary patch literal 685 zcmZvaO>WdM6vyq!B$LU%?}hHKs(aY zic$g-h`LE1RS_ke!jwl>Q-~qCkC0|aG0Xy`NC~8Y=14P`2g;CA$O9Efb0`9pNEwuY z79$-5dV!R~VW5|P(GsbE%;pL@&L& zmtXHcoz!0p*QWj|n+>Z!tF7!515-Du@40Sx&4$JbB~9&XJHEbi>1nTEz?S{Fm^UcJ Kq=**u-|IK-P{a8E literal 0 HcmV?d00001 diff --git a/auctions/__pycache__/views.cpython-37.pyc b/auctions/__pycache__/views.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3539517aac63691ed35554797c152edc00a8d1da GIT binary patch literal 4042 zcma)9TW=f372er9DTvCz)q85p<=t@jHspd!psh> zilF);qi+WKTA(PT#{m6B^U#+*`7iXT-gmh~?h%zh1YKE_r36AiaG%dDJ5EVm;&cOr+8%+B20i#*eJGCvQZAP=L^jNPn} zH>0NMd)ZRnidv@cXUlmzYNH?UFncRsiB|Fp(S>|9T7|5^n|z74_%d(vxA+Rb&~HR* zpIUsCuf4SRnrIK!kDcfuU*{KJTG1tbiC@P3GQYyF;(mo+2S9zEwvQE(yA3#51&Zb`z zo3M!$gEV-MZQ=ONPRaqGTZwE}H!z4_B-u!OYsni}{qGO%-`OTes_mVkx0h@`C=ZIP zOn9~3BS>UVY$r8V)%J^298}%mp$_9XEm9T7%k);G3L9UTDcPOPzNQ(uga!(N zlEuR;=>ecdo))z#TXe!WE`VDc>t-D1B_CzfZ^iL9qa>?mMZiuQEesK=_Qmbi1wju|ZBZfW<6r_aA6I;vC=Wl}Kp zkDZqGbD{Q1E(uBVImxHrLiz#b~O-X>cGV$vBeS_B%?- zpON&8c!qQDLv|b2RKF(aN3uER2+KL1PcR_;20)OrDbo-Xz`#4iDehdgjvVEo?@#QB z!`)ZTkvnluf>VoGDg^o-$IKM{V7%7cz>k+b*dHjH5twHW_vO2ISJX1DU8s1cmX3w|H8wg!Ui-UgrVt;zA&jhQq@5b+k7(t2 z#QYT|eu1kZpSRo)uCr>8wOPvpzBE5~BFa~Dk`6E+r#FFd8$CEYXo+Nl9ud@52#`oV zwxOp3np*n}`GkVQ#5uMBx2rtv)dA7K>{De@leTEql4JXMow^!ZhEF=A5J>S~hr^_* z4oZn+CO?5P@*XwhRpT@FHHAd&z5%jumGs5<_TvH>FXbDvtu~T^ZHYi!TnZ6eoyd%kWO4PwfapJR_|9Sy>&LmX~9AzBJnEk{0pe2z4QS$d@* zGCiVzwV^0es1T+}#NIN;g~O6%&eZF$TC+D)S*pt^qst%gKt)ekEM)Q_?(=t>v33P`5sq32GVi3_)TLJZ&wRz19-;Cd$>v0~z!I!E5bBu{32Z511? zrGovY{4+xk13PBVHfl!v&IGoJXPDDaP2QX`$E=(4WU1zfVTATXo}`%}hDMAlc2k)r zROT&srxbnULLm)FBprHu@rx<5s*QY9sSP~S+v|=mQ&~jR+ek7g5`MU$l6_HhYa=Wz zP=Y*9lgLNE2OT#1aP1i=4Y$1b#U^Wp=KE|rKp{YC|O^u=dg3jE~lmFY$F87g@?(zUeC&v$Aeh;Q2 z16!z+K!l0M8?XE$f8w9GCO;u>(Z>ejuumDQHZNr}`utGS0Kk33+4i}at4=JYj&ZrD zdb(AqL{d2uqneGp;a;iAt?}JGd?8eKHa8Cr4!SZecLcsM4!gawJKEnw;n^3}=1`)t z?5Wrct5s1#aI>o*ui4Rh#tBr~Itc2GCIkw>*( z)9_DNUr}hVT*DW`8mfbv>=J^3&sH1+{->Cy?}fMZ8XqJ@zXWhdD(Oy_zSQJdP^2KD z8`Cv>$52}@O~+&cNdd+1JX)EGt37--^+u{Pfpoqa+E=Dt)qcIOuIqi2{{l0{p$tN% zs30`7OCLd|d^h!JT{lt=FqMJ9!bDaR;tc)G$rhk7L6V9z9ez}QXWXUeYdmTl-a{Tl W|8?gQTMfc6q^sS$7_Nt2c=bQ!N}E;y literal 0 HcmV?d00001 diff --git a/auctions/admin.py b/auctions/admin.py new file mode 100644 index 0000000..3fac663 --- /dev/null +++ b/auctions/admin.py @@ -0,0 +1,8 @@ +from django.contrib import admin +from .models import User +from .models import AuctionListing,Comment + +# Register your models here. +admin.site.register(User) +admin.site.register(AuctionListing) +admin.site.register(Comment) diff --git a/auctions/apps.py b/auctions/apps.py new file mode 100644 index 0000000..8ed8571 --- /dev/null +++ b/auctions/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class AuctionsConfig(AppConfig): + name = 'auctions' diff --git a/auctions/migrations/0001_initial.py b/auctions/migrations/0001_initial.py new file mode 100644 index 0000000..42b85b1 --- /dev/null +++ b/auctions/migrations/0001_initial.py @@ -0,0 +1,63 @@ +# Generated by Django 3.0.8 on 2020-10-18 16:09 + +from django.conf import settings +import django.contrib.auth.models +import django.contrib.auth.validators +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('auth', '0011_update_proxy_permissions'), + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), + ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), + ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), + ], + options={ + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, + }, + managers=[ + ('objects', django.contrib.auth.models.UserManager()), + ], + ), + migrations.CreateModel( + name='AuctionListing', + fields=[ + ('title', models.CharField(max_length=64, primary_key=True, serialize=False)), + ('price', models.DecimalField(decimal_places=2, max_digits=10)), + ('desc', models.CharField(max_length=1000)), + ('picture', models.URLField(null=True)), + ('category', models.CharField(max_length=64)), + ('date_added', models.DateTimeField(auto_now_add=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.AddField( + model_name='user', + name='watchlist', + field=models.ManyToManyField(blank=True, related_name='watchlist', to='auctions.AuctionListing'), + ), + ] diff --git a/auctions/migrations/0002_remove_auctionlisting_date_added.py b/auctions/migrations/0002_remove_auctionlisting_date_added.py new file mode 100644 index 0000000..1a79224 --- /dev/null +++ b/auctions/migrations/0002_remove_auctionlisting_date_added.py @@ -0,0 +1,17 @@ +# Generated by Django 3.0.8 on 2020-10-18 16:16 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('auctions', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='auctionlisting', + name='date_added', + ), + ] diff --git a/auctions/migrations/0003_auctionlisting_date_added.py b/auctions/migrations/0003_auctionlisting_date_added.py new file mode 100644 index 0000000..c762cb7 --- /dev/null +++ b/auctions/migrations/0003_auctionlisting_date_added.py @@ -0,0 +1,20 @@ +# Generated by Django 3.0.8 on 2020-10-18 16:18 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('auctions', '0002_remove_auctionlisting_date_added'), + ] + + operations = [ + migrations.AddField( + model_name='auctionlisting', + name='date_added', + field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now), + preserve_default=False, + ), + ] diff --git a/auctions/migrations/0004_comment.py b/auctions/migrations/0004_comment.py new file mode 100644 index 0000000..87da767 --- /dev/null +++ b/auctions/migrations/0004_comment.py @@ -0,0 +1,25 @@ +# Generated by Django 3.0.8 on 2020-10-18 16:42 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('auctions', '0003_auctionlisting_date_added'), + ] + + operations = [ + migrations.CreateModel( + name='Comment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('body', models.TextField()), + ('date_added', models.DateTimeField(auto_now_add=True)), + ('listing', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comments', to='auctions.AuctionListing')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='commited_user', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/auctions/migrations/0005_auto_20201018_2304.py b/auctions/migrations/0005_auto_20201018_2304.py new file mode 100644 index 0000000..de1ed5d --- /dev/null +++ b/auctions/migrations/0005_auto_20201018_2304.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.8 on 2020-10-18 17:34 + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('auctions', '0004_comment'), + ] + + operations = [ + migrations.RemoveField( + model_name='user', + name='watchlist', + ), + migrations.AddField( + model_name='auctionlisting', + name='watchlist', + field=models.ManyToManyField(blank=True, related_name='watchlist', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/auctions/migrations/0006_auto_20201019_1109.py b/auctions/migrations/0006_auto_20201019_1109.py new file mode 100644 index 0000000..c2c5bae --- /dev/null +++ b/auctions/migrations/0006_auto_20201019_1109.py @@ -0,0 +1,27 @@ +# Generated by Django 3.0.8 on 2020-10-19 05:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('auctions', '0005_auto_20201018_2304'), + ] + + operations = [ + migrations.RemoveField( + model_name='auctionlisting', + name='watchlist', + ), + migrations.AddField( + model_name='user', + name='watchlist', + field=models.ManyToManyField(blank=True, related_name='watchlist', to='auctions.AuctionListing'), + ), + migrations.AlterField( + model_name='auctionlisting', + name='category', + field=models.CharField(choices=[('Fashion', 'Fashion'), ('Electronics', 'Electronics'), ('Home', 'Home'), ('Sports', 'Sports'), ('Toys', 'Toys'), ('Automobile', 'Automobile'), ('Books', 'Books'), ('Video Games', 'Video Games'), ('Other', 'Other')], max_length=64), + ), + ] diff --git a/auctions/migrations/0007_auto_20201019_1723.py b/auctions/migrations/0007_auto_20201019_1723.py new file mode 100644 index 0000000..1f886f3 --- /dev/null +++ b/auctions/migrations/0007_auto_20201019_1723.py @@ -0,0 +1,34 @@ +# Generated by Django 3.0.8 on 2020-10-19 11:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('auctions', '0006_auto_20201019_1109'), + ] + + operations = [ + migrations.AlterField( + model_name='auctionlisting', + name='picture', + field=models.URLField(default='https://www.riobeauty.co.uk/images/product_image_not_found.gif', null=True), + ), + migrations.AlterField( + model_name='user', + name='watchlist', + field=models.ManyToManyField(blank=True, related_name='watchlists', to='auctions.AuctionListing'), + ), + migrations.CreateModel( + name='Bids', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('bid_value', models.DecimalField(decimal_places=2, max_digits=10)), + ('listing', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='bidding_listing', to='auctions.AuctionListing')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='bidding_user', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/auctions/migrations/0008_auto_20201019_1725.py b/auctions/migrations/0008_auto_20201019_1725.py new file mode 100644 index 0000000..973a35c --- /dev/null +++ b/auctions/migrations/0008_auto_20201019_1725.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.8 on 2020-10-19 11:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('auctions', '0007_auto_20201019_1723'), + ] + + operations = [ + migrations.AlterField( + model_name='auctionlisting', + name='picture', + field=models.URLField(default='https://www.riobeauty.co.uk/images/product_image_not_found.gif'), + ), + ] diff --git a/auctions/migrations/0009_auto_20201019_1740.py b/auctions/migrations/0009_auto_20201019_1740.py new file mode 100644 index 0000000..e521cb9 --- /dev/null +++ b/auctions/migrations/0009_auto_20201019_1740.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.8 on 2020-10-19 12:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('auctions', '0008_auto_20201019_1725'), + ] + + operations = [ + migrations.AlterField( + model_name='auctionlisting', + name='category', + field=models.CharField(choices=[('Fashion', 'Fashion'), ('Electronics', 'Electronics'), ('Home', 'Home'), ('Sports', 'Sports'), ('Toys', 'Toys'), ('Automobile', 'Automobile'), ('Books', 'Books'), ('Video-Games', 'Video-Games'), ('Other', 'Other')], max_length=64), + ), + ] diff --git a/auctions/migrations/0010_auto_20201019_1744.py b/auctions/migrations/0010_auto_20201019_1744.py new file mode 100644 index 0000000..bc1b26b --- /dev/null +++ b/auctions/migrations/0010_auto_20201019_1744.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.8 on 2020-10-19 12:14 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('auctions', '0009_auto_20201019_1740'), + ] + + operations = [ + migrations.AlterField( + model_name='auctionlisting', + name='category', + field=models.CharField(choices=[('Fashion', 'Fashion'), ('Electronics', 'Electronics'), ('Home', 'Home'), ('Sports', 'Sports'), ('Toys', 'Toys'), ('Automobile', 'Automobile'), ('Books', 'Books'), ('Videogames', 'Videogames'), ('Other', 'Other')], max_length=64), + ), + ] diff --git a/auctions/migrations/__init__.py b/auctions/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/auctions/migrations/__pycache__/0001_initial.cpython-37.pyc b/auctions/migrations/__pycache__/0001_initial.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f117439e7bb53547d5e0e032fbfcb7daa7a29acf GIT binary patch literal 2931 zcmZuz&2!tv6(;}^{1EjK*_LHHc95hWrV~R_(lj4UQ^}&_d`Nc2mU`f52D8LllFNWt zdKa)voI2AU%WF?PB*&im|LnDwYNmfd51qW-1!ZL#Vz}6S`}TeQ-dj9cUT#(J_s`K^ zqs`SyWbGgkP1EUn8Z3TGz+d z#@FFKbd2o}ka`1Uy$A2ZLkQskY#BSYOZtwXe*hm^`fwS!euJ7m`nw0eEq$nezwtw5 zfKh{w=QeJiz^8b=37?s`{m%IDIZ|%I@8JvhgVDTeIQHPt+(EzhakYuuU9&nUPusmi zTmN=}#S92Hh_7>XsHF9aczJ_n$Xzs!B+#7nm z0G=RTo~q{Y0vjiYlq$)yQSa{d_Rda}Pl04KnhO4E7EP&`Fewd$s;80)be5B$l_$WF&JmGDm&Iw_PgPFhy%* zkc~)&1CxQ?3PwZ*BuRoR{siYN8}U2~=&NbMVwNSd0Bu77SU-4_PQqgCQg|RUlI0Su zr~@64JjqmZM3ZTh(N~!@rlB<%C;dESFLGLR_N;cT$y&5vL1Qp%Fhk``W-=@epV1dN z6BNQ==cDZ)9uYy}j0zcW5e(=#6=86MwT+bb17Jgzp+hMIyIbMbds`2;qJXE#EWG%e zj;gO#s1RI46DlPcQYki&EY|d}X=3~mbAxH-LY6@vFo99m)?eI1j-q7g2ou`Zp2F0gWa&$hT7-pekZQ~S^R3|%N zX~u2x2uxTSNS4vCXd4M-B2*JaVuaXBTF{@Bxk$alBqtE`X^>f@VwMAYG7L^rNfR2E zP+_UeFe?Ec1lTO8ZluT=^E|~ADc>GaOQt@?oTU^Bvk2^>T5o4m18Y%<42s^*3YT-po zS9ADS>+kqBcRK&7Eoh=k)mGyAVueV>sx`oM5fR4vH7)3B^%w6xpVF8OSp1V38X!6^ zt1K*5jplDJn?_;eTs@&`S~Av=)pPA?bBLx%E=Zypq%SiKe^uxGF=j_%v#A;b{Q;v1 zNZgp(d#y1cDI#1*wX&BZ9C&(!1%-)IwG2y|UhJahsLf!1NoS|6Ls7$K71IkB=NJ0g z#zwRP=--4SXa$L>#M=`aldUvW1uA3qZx0zABTCh$EY5O4aeYk-Y{VGZAr~{%GVnm; zQ@{(^_Q;fY86urnvq63PnI!jrGy;`+_PH74>jTv?f z^tGav_D#tgYXw4o#Hi*T_WVPg1l8QfCS|9~UG)BhO{iVAA90>glG>FIW0DTJs>eLd z1nUc58-GVj+dNHKjKWXL&iThhTT-n9-At^2TAr~4n@ENV3Z7EsVLa99F-d19T#uG* zNlU?{hJ$K%Z8q&z*n&>mCRV3bnd-dh%s- z`uyNobo{h?aHJZ00Hp|yw}}0$`bR|&?TjA&d$9l6nKnV5^;7KMXI*}tCY*pgi}_?i zMNH2YSv`CGWp=iWw{BGCAe_!b4P|Md$}SEKx9a)Ts^hxXoi%42pZjLivvp^~*>rAu zuH!nsx8Z57b>vzppFmUaF%mmV*tbj`LQKQJI(hpwMJFaS)oVW##Z%PYyZ3VpukQ}k zEcc;r@M0ly>yj8+S>Ynay&L70Nocspr!nw#AnmM=`c>m|3)(L<8l|q>w$s38O^@D> DW)7Sf literal 0 HcmV?d00001 diff --git a/auctions/migrations/__pycache__/0002_remove_auctionlisting_date_added.cpython-37.pyc b/auctions/migrations/__pycache__/0002_remove_auctionlisting_date_added.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d727c804da521b4120691ff1b374f34d567c2a8a GIT binary patch literal 527 zcmY*Vu};G<5Veyuq@hLd3v5}c!iW$;fMB8nh$Tc=ZtfHuB~FP`5HpPMA^eh8CVqj5 zOWLU7qiaP%g_nfisw&}y8;*`?t695BVu#(4|vnvJ;xbF;H`lsz*XREoIRTwH@FBHK0xvn%W@~cKZg)>KQK;7GT3_foqpvtlp*b4t^ibkCHos zwMphWeU!;X^`eVPf=SY5U|tk4nhWp{P53@!ycx_?awTYnN{FDNR5SxW4Cc nhj;8Oa_tausk3SV^X|zVzj@rM+M`7q9It$zw0fqsH*)^~yswY$ literal 0 HcmV?d00001 diff --git a/auctions/migrations/__pycache__/0003_auctionlisting_date_added.cpython-37.pyc b/auctions/migrations/__pycache__/0003_auctionlisting_date_added.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd96d766cb7d4761be4c9dff106b8f34257bb327 GIT binary patch literal 723 zcmZ`%y>8S%5Z<-dKA*Wm5mFjbQ@A;uK%zhhB@l&*Gz1}8mR1|jpSa2!B{(*|M_OdFPF=d5&f>e%aeeypI(_rkZ?-Ru808x-msSEybbbz zdp&5vT)buwg80TjAg`mZVID#7mSxc|%3)dH(ze=ks;`W;E^ZBAV=qhZn`lPDDLwm? z7_yuL%LCvWo`)!EssNa=tH&YwxnW&-Mb$qm5 zuOG_}Tk{F!-r7{Quk=QO>d6Lx;O_tHa_PZ$MfDbH=#A9o)`z{7GE{rZ2f?jhxm?9cmG z&x&^h&=%La{Gf_+bE_Mpz!s%xTkJ|KrX?1K3l_A_C;#8$YWunKKaD@BT@XvcSO^}_ z_kfR{EOzr9-W6Pr(~UFb$9v;A!)h9#JN9^e#RKx4bV4?lJm2l`g?Nk79<1*PFw;~R0&QMLJdg@h!!N8UaUwf$1@E!{s~@(l3wYN zyaOD06&_))oOlIJ%z6_lvC^()cER~r{f#6!o^qq(=v=-%GoZPj3e6OkPa|_ zrAEdA#*}TQW@ZIeW(RidTWKS3UKn6QIG>B2 zDg7*-mthqbxsXm)0H)$ir1G|_O~w&zaZLvr0Rtm2fz4T9p`A3q1Ph&{Nr;3A4m8*H zg$XV?-`wv8Ssq0_iur3sUW+^*TS+@{l1{P%ZRo(x+M>wre~~WkCS4tyH(+mV65<~0 zQy;gace*7_9k}5#(){lq92`968#j%G>XAcOArAo%WOG<#8RnHVW0)LE^VO(l%XYY| z3Lce6c_3ShGS0$s#XsOmdIHNhOyet*?N3Pl~dpDS&4Mnr28XQ*BOxF|86=dVd82a+(K7t(~8bn8B7oJj4#*>Er#m!>MZJ2;=b zH(^|CNm;>FJ;Fjn@6es%%g}m$v9C!*Xn!ndWWgvmJJi)zO|STbg)3D)I|W)7#v@tX4-0 pa`)e5U;iQfZIk5##am(BbfB$AbSK@X`W>DrrG-OBn{}CM{RO5&ExP~! literal 0 HcmV?d00001 diff --git a/auctions/migrations/__pycache__/0005_auto_20201018_2304.cpython-37.pyc b/auctions/migrations/__pycache__/0005_auto_20201018_2304.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d2de5c6962cee008e6a0b80aeb38e467efb72ec GIT binary patch literal 716 zcmYLG&2G~`5Z)i#v6B>fh9~f)azl|2LRAYba3BS>$;DV&Ii79m)ZPtVhpG}cIFh&E z!Yl2S6R*IDStn6Pn$O>^XXode*L!#jHzNcfKr2$ylv2l8 z#cH1N+Dko3-Vxy7{UG2;zVN^E)Cd2H#KB*DM`CJ2BipuAa}zV$ugiIpx20Cb2DJuR znZkwbEJAXEZjKQoNhy$&0iDy7OK;%=bEVb{c>q3e*;|AV;5SYus||<8iL;C)(lW7FUS3r_;%MF}*s!6yuL) z=O1ieFXdMA-=ukhF&+H-^yXzY#o0|ZQ^if5o#{JO=^RYfNz)WE+ewx^tSv+Fo{N0d zYB5Si$zgK%LX4gzM+eLM#>d<}bhD2T^1$;bqXBcsX!rLb4(tFHxti;PLaXbhYdPB9 gz^og(o30Cg=yt=NVqP1*+Q@h81Ts#EA>HTy0rf`05C8xG literal 0 HcmV?d00001 diff --git a/auctions/migrations/__pycache__/0006_auto_20201019_1109.cpython-37.pyc b/auctions/migrations/__pycache__/0006_auto_20201019_1109.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..034785cf345065a0cd4d6488b191f187a7ece663 GIT binary patch literal 947 zcmY*YOK;Oa5cVsM?WFHVIC7y)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/migrations/__pycache__/__init__.cpython-37.pyc b/auctions/migrations/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..72625fe45c12792a61abe00a3d3dfe8f1c30c2a4 GIT binary patch literal 152 zcmZ?b<>g`kg2z@p@n9N6zyKqV;Q++NEI=ZKA(%mv(QhR~5l9$8{Bm@*iU}=FEh>&l z%1h2jjB&{?&&$bAOeu~@&d<$FElN&}Ni0n+$;{6yj>*kTFG_?kListings under category "{{ cat_name }}" + {% if listings %} + + + {% else %} +
+
+
+
+

Seems to be no listings in this category

+
+ {% endif %} +{% endblock %} \ No newline at end of file diff --git a/auctions/templates/auctions/category_listing.html b/auctions/templates/auctions/category_listing.html new file mode 100644 index 0000000..7d9f73e --- /dev/null +++ b/auctions/templates/auctions/category_listing.html @@ -0,0 +1,19 @@ +{% extends "auctions/layout.html" %} + +{% block body %} +
+
+

Categories

+

Select category to browse through listings

+
+
+
+ + Select any one of the following + + {% for cat in categories %} + {{cat}} + {% endfor %} +
+ +{% endblock %} diff --git a/auctions/templates/auctions/create_listing.html b/auctions/templates/auctions/create_listing.html new file mode 100644 index 0000000..9001e5a --- /dev/null +++ b/auctions/templates/auctions/create_listing.html @@ -0,0 +1,34 @@ +{% extends "auctions/layout.html" %} + +{% block body %} + +

Create Listing

+ + +
+ {% csrf_token %} +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ + +{% endblock %} \ No newline at end of file diff --git a/auctions/templates/auctions/index.html b/auctions/templates/auctions/index.html new file mode 100644 index 0000000..2a4aa48 --- /dev/null +++ b/auctions/templates/auctions/index.html @@ -0,0 +1,54 @@ +{% extends "auctions/layout.html" %} + +{% block body %} +

Active Listings

+ + +{% endblock %} \ No newline at end of file diff --git a/auctions/templates/auctions/layout.html b/auctions/templates/auctions/layout.html new file mode 100644 index 0000000..c9a147e --- /dev/null +++ b/auctions/templates/auctions/layout.html @@ -0,0 +1,49 @@ +{% load static %} + + + + + {% block title %}Auctions{% endblock %} + + + + +

Auctions

+
+ {% if user.is_authenticated %} + Signed in as {{ user.username }}. + {% else %} + Not signed in. + {% endif %} +
+ +
+ {% block body %} + {% endblock %} + + diff --git a/auctions/templates/auctions/listing.html b/auctions/templates/auctions/listing.html new file mode 100644 index 0000000..821fd39 --- /dev/null +++ b/auctions/templates/auctions/listing.html @@ -0,0 +1,48 @@ + +{% extends "auctions/layout.html" %} + +{% block body %} +

Listing : {{ Listing.title}}

+ + +
+ +

{{Listing.desc}}

+ + +

${{Listing.price}}

+ bids so far +
+ +
+ +

Comments ...

+ + {% if not Listing.comments.all %} + No comments Yet.... + {% else %} + {% for comment in Listing.comments.all %} + {{comment.user}} - {{comment.date_added}} +
+ {{ comment.body }} +
+ {% endfor %} + + + {% endif %} + {% if user.is_authenticated %} +
add comment..
+

+

+ {% csrf_token %} + + +
+

+ {% else %} +
+
+ Log In to comment on this listing + {% endif %} + +{% endblock %} \ No newline at end of file diff --git a/auctions/templates/auctions/login.html b/auctions/templates/auctions/login.html new file mode 100644 index 0000000..67624a4 --- /dev/null +++ b/auctions/templates/auctions/login.html @@ -0,0 +1,24 @@ +{% extends "auctions/layout.html" %} + +{% block body %} + +

Login

+ + {% if message %} +
{{ message }}
+ {% endif %} + +
+ {% csrf_token %} +
+ +
+
+ +
+ +
+ + Don't have an account? Register here. + +{% endblock %} \ No newline at end of file diff --git a/auctions/templates/auctions/register.html b/auctions/templates/auctions/register.html new file mode 100644 index 0000000..47e956f --- /dev/null +++ b/auctions/templates/auctions/register.html @@ -0,0 +1,30 @@ +{% extends "auctions/layout.html" %} + +{% block body %} + +

Register

+ + {% if message %} +
{{ message }}
+ {% endif %} + +
+ {% csrf_token %} +
+ +
+
+ +
+
+ +
+
+ +
+ +
+ + Already have an account? Log In here. + +{% endblock %} \ No newline at end of file diff --git a/auctions/templates/auctions/watchlist.html b/auctions/templates/auctions/watchlist.html new file mode 100644 index 0000000..dce261d --- /dev/null +++ b/auctions/templates/auctions/watchlist.html @@ -0,0 +1,46 @@ +{% extends "auctions/layout.html" %} + +{% block body %} +

WatchList

+ + +{% endblock %} \ No newline at end of file diff --git a/auctions/tests.py b/auctions/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/auctions/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/auctions/urls.py b/auctions/urls.py new file mode 100644 index 0000000..e3bb470 --- /dev/null +++ b/auctions/urls.py @@ -0,0 +1,17 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path("", views.index, name="index"), + path("login", views.login_view, name="login"), + path("logout", views.logout_view, name="logout"), + path("register", views.register, name="register"), + path("watchlist", views.watchlist, name="wishlist"), + path("create", views.create, name="create"), + path("categories", views.category, name="categories"), + path("category/",views.category,name="individual_categories"), + path("listing/",views.listing,name="listing"), + path("category/listing/",views.listing,name="listing"), + path("watch/",views.watch,name="watchlist"), +] diff --git a/auctions/views.py b/auctions/views.py new file mode 100644 index 0000000..06802ff --- /dev/null +++ b/auctions/views.py @@ -0,0 +1,149 @@ +from django.contrib.auth import authenticate, login, logout +from django.db import IntegrityError +from django.http import HttpResponse, HttpResponseRedirect +from django.shortcuts import render +from django.urls import reverse +from django import forms +from .models import User,AuctionListing,Comment + + +categories = ['Fashion','Electronics','Home','Sports','Toys','Automobile','Books','Videogames', 'Other'] +class Bid_Form(forms.Form): + bid = 0.0 + def __init__(self,bid_value): + self.bid = bid_value + + bid_value = forms.DecimalField(decimal_places=2,min_value= bid + 1) + +def watch(request,title): + if request.method =="POST": + listing = AuctionListing.objects.get(title=title) + if request.user in listing.watchlists.all(): + request.user.watchlist.remove(listing) + else: + request.user.watchlist.add(listing) + return HttpResponseRedirect(reverse("index")) +def watchlist(request): + listings = request.user.watchlist.all() + + return render(request,"auctions/watchlist.html",{ + "Watchlistings": listings + }) + +def index(request): + listings = AuctionListing.objects.all() + + return render(request, "auctions/index.html",{ + "Listings":listings, + + }) + +def listing(request,title): + """ + docstring + """ + listings = AuctionListing.objects.get(pk = title) + if request.method == "POST": + body = request.POST["comment_body"] + comment = Comment(user=request.user,listing=listings,body = body) + comment.save() + + return render(request,"auctions/listing.html",{ + "Listing": listings + }) + +def category(request,cat_name = None): + """ + docstring + """ + if( cat_name != None): + if cat_name.capitalize() in categories: + + listings = AuctionListing.objects.filter(category=cat_name.capitalize()) + print(listings) + + return render(request, "auctions/category.html",{ + "listings":listings, + "cat_name": cat_name + + }) + + else: + return render(request,"auctions/category_listing.html",{ + "categories": categories + }) + +def login_view(request): + if request.method == "POST": + + # Attempt to sign user in + username = request.POST["username"] + password = request.POST["password"] + user = authenticate(request, username=username, password=password) + + # Check if authentication successful + if user is not None: + login(request, user) + return HttpResponseRedirect(reverse("index")) + else: + return render(request, "auctions/login.html", { + "message": "Invalid username and/or password." + }) + else: + return render(request, "auctions/login.html") + + +def logout_view(request): + logout(request) + return HttpResponseRedirect(reverse("index")) + + +def register(request): + if request.method == "POST": + username = request.POST["username"] + email = request.POST["email"] + + # Ensure password matches confirmation + password = request.POST["password"] + confirmation = request.POST["confirmation"] + if password != confirmation: + return render(request, "auctions/register.html", { + "message": "Passwords must match." + }) + + # Attempt to create new user + try: + user = User.objects.create_user(username, email, password) + user.save() + except IntegrityError: + return render(request, "auctions/register.html", { + "message": "Username already taken." + }) + login(request, user) + return HttpResponseRedirect(reverse("index")) + else: + return render(request, "auctions/register.html") +def create(request): + """ + docstring + """ + if request.method == "POST": + title = request.POST["title"] + desc = request.POST["desc"] + starting_bid = request.POST["starting_bid"] + photo_url = request.POST["photo"] + if photo_url == None: + photo_url = "https://www.riobeauty.co.uk/images/product_image_not_found.gif" + category = request.POST["category"] + obj = AuctionListing(title = title, desc = desc, user = request.user,price = starting_bid, picture = photo_url,category=category) + obj.save() + return render(request,"auctions/index.html",{ + "Listings" : AuctionListing.objects.all() + }) + else: + return render(request,"auctions/create_listing.html",{ + "categories":categories + }) + + + diff --git a/commerce/__init__.py b/commerce/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/commerce/__pycache__/__init__.cpython-37.pyc b/commerce/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..497af4142c453cfc1f5008abfe6665476efef008 GIT binary patch literal 141 zcmZ?b<>g`kf=_q+;z0Cc5CH>>K!yVl7qb9~6oz01O-8?!3`HPe1o6wv*(xTqIJKxa zCMhpDBQeG$zdSD|KQW~^COJPhH?=4^6~Ty)&&hr(-o*q=B-LQg;vQg%{LlH?%uTY7F5$kNATH1rIl^(+W_u9wi4VF@yjg&ZtH z9xn8hze{bv@B?heP67L>zhUfLL70=XZ%iJd+a;JE!6U zh(Vhs45=eBZhCxT`9Sm;x)CQ{x1`6?Q$)W(r$g5xB6ZOJ(B#y0MEvqT#fa1<-(dnI z-{*Y9UY1JWT1*H0$ z{Mod9!v0Szk96k({f#_GG=itkM{IkrVR?g|_nvP(vyMB*&Wrc=J6oss9(JA6?RVQw z|LK!Q$7b=~3ES%SH;y$uXZlvOZ5FJLcP3e`!#&!O;wlDL7PUU_2e%iL5rjCLpN7h~;~fpGxXPsGqF`&lX)x zf=hFFb*!616+aCUam{t4a{Tijrp)U~WtiK6jVN>hfz_i{W_oW}-c;=8aNAYRT;R@5Xl6=o*L22TKli|q5&XPKa zCk{-RFID0u(1@&j6-tMIp@Y$mO?6qoNCyYD*1s^8UUNOWEeWR&6%a;O1GqPFRmh z=4gafj*l?R0_mE*&CeJOomu(Vu}wMI3i7C&$i-BcQ5w6|h7t-5xvm6-X*Wu3Mm#Tz zeI4vAY$T@9$Ykuq^}xWpgF+lVhR8hXU7r(`4ykQMZE`TSaJ}Hwc|FysLx=vbMw}k+ z&+tE-7eDTr{Yj292d~fTpyA_1PpwZqED>kZXL`D=m4jRfuXt>qQt@V(H4MC+4I@ms zEEGm2@8e-m&q2nAS+m1pP0lc)OT{qs+>Wd&(Yc0sRVlX=&3LQ)6fRYio%U{6kZZN( zp;9sSnyRLTtJQ|8p$Zj91~tsrtCdPkIh0#UxYBAiHKX0Cm79$>;j*UG_iM7IsNuy! zb+;PX*Q#YX;!P+FTx!W_kv2KR8`USdF^0*OZBAuq=)-()Vj?()*;fctl zc>3pg`Q=eWFLu;%tiE|vaZeoEHGv&XnLQJx|7OzYG|YWJbiudDs|)Cg9pEISa_Ku+ qAuXhYOe#4W8DS=;l9{wHeosxcs~I61$?JlU&7`A|&!La;$ovb^HVQ!i literal 0 HcmV?d00001 diff --git a/commerce/__pycache__/urls.cpython-37.pyc b/commerce/__pycache__/urls.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb63353ba8b4839a226ad7f826884d4fed627125 GIT binary patch literal 966 zcma)5!H&}~5OvaIThcA?14zELkxBx~tpWrTR;+~f0PLlz=(@4nq>AleJ1o1`eht4A zapT05BPYggDk>zTwG?YI8ozn(js0pch!Ct_-_Jii=pgjN{_Ix>!3+4b-6)zN>QTS+ zxIgnf8+XbM4`u-mXQ78!NCW0?jyBz`4{^u>dbIVn{@S1QX!iq(d*ri^P$oHNDr5NK z{X0CBVpXhbMNA<@6n)GYzN}SQ5o4GV`VyCgHdx8pFl`TLY$X0tuq&P5Q>ieQis3@6 zq~Z<&S0y8wVa?bi!mx5pNq|VoMEWFolp0wTnNDqS3hi|o zz4=NwVChM8T8qrG+qHF|j}!coQcMIccqNsYV7yY2V}89LRn;aB>QCBwCm94BD1@UR zHXjX#<5pKLIU8d^ID0m<@i302CDHof5`@tM)c>)NCTGeLNt{u8I&T5XvA-o7Tb~fU zupp!OA4X>)D{ESaHJIS~S!o#zbMMcYGX?_{7>})GqZqGRDB_;d_#8?bw-e zYqrZ$u2V2@-)U$Q4tE&G(NDO$DE69=P+o}GZ@O(=6IknSj$A%%(9M9^hq4cb)q1g?|ErimvPK-gC76N7hn+&(%%Mnpt{ zs%RA9-B7e_j2aPvXx{v>C7NREC&jGsjf}Ph9g@!W-9!9k*z2?0=&3B&)L0D55^N5v zvStpsPvW@m8QfIHfn$CKY~8_?;#Ue7cZ{>rh-(FV3KpQ)f?K&NXcVwep_OH*Al0Y&-l1&mRcDu+<3$PKd3p9>Nd2G*IRzuMi^JSCT-Il`kX!j DL@KPg literal 0 HcmV?d00001 diff --git a/commerce/asgi.py b/commerce/asgi.py new file mode 100644 index 0000000..5594f23 --- /dev/null +++ b/commerce/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for commerce project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'commerce.settings') + +application = get_asgi_application() diff --git a/commerce/settings.py b/commerce/settings.py new file mode 100644 index 0000000..016409a --- /dev/null +++ b/commerce/settings.py @@ -0,0 +1,122 @@ +""" +Django settings for commerce project. + +Generated by 'django-admin startproject' using Django 3.0.2. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/3.0/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = '6ps8j!crjgrxt34cqbqn7x&b3y%(fny8k8nh21+qa)%ws3fh!q' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'auctions', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'commerce.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'commerce.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/3.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + +AUTH_USER_MODEL = 'auctions.User' + +# Password validation +# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/3.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/3.0/howto/static-files/ + +STATIC_URL = '/static/' diff --git a/commerce/urls.py b/commerce/urls.py new file mode 100644 index 0000000..2f7a9e0 --- /dev/null +++ b/commerce/urls.py @@ -0,0 +1,22 @@ +"""commerce URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/3.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import include, path + +urlpatterns = [ + path("admin/", admin.site.urls), + path("", include("auctions.urls")) +] \ No newline at end of file diff --git a/commerce/wsgi.py b/commerce/wsgi.py new file mode 100644 index 0000000..054e015 --- /dev/null +++ b/commerce/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for commerce project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'commerce.settings') + +application = get_wsgi_application() diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..324592563c671a824356a9401301bd0253964877 GIT binary patch literal 245760 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 literal 0 HcmV?d00001 diff --git a/google b/google new file mode 100644 index 0000000000000000000000000000000000000000..492f44c27eb2d402e0dd3446b4d38192e75874c4 GIT binary patch literal 15903 zcmeHuWl$VZn=S+=2`<6i-3E7ex8N{?5AGf$xCaXsEVv9ZI0OO{+=E*P5-fv5&`Unq zyFa$JZf({6yHho%yU#qYocFv(db*!jEe*xjn538p2nes0mE?2~5D>?nzc0{HpKCmY z_hgbE~__g6tiX0z5#v z0UCNX0Zul;Kw3!&YB4{NX9Zx8mld@i*xAKX#7~^|A9_We&;M3)(Ng~d;^ibx`%kBg z)U~K(T|Ge50-OL28y4<82)K!l%LgqN54Umx0M zYaT#b5gj>&f7yDz5~sEI@^Ta5;_~(N<@Dv_boH>~;t>`W=Hlk%;^pOdMsRrgyLego zakzNW{ab?^$kWEd!OhFT)rI=6Mk{MqZ!dA$XHWmx1hAXB`hO^P@%&eyoKhU0DI-vjS#(#e(F{OzQF zwpkA3;ot)TDtNepss9mW5r_Z63qC$R8(U#3ZVnzE0U!rIfZK}0%GyeZ17Hi}=C$Ur z761SMwEvO^{-@~uGfSUqo?GJfZ-+#90M-B=8vuwyz!o6ztWwa5!>}6S#Q9H&^zW+Y?EHKBAH(AL;y(r!$mMx7c{~prugKqT5fDW9l;x!L z{FaaM(ZbC1TOJp{v%Kjlcsj8-GE5&n#k>F@BgciFhDBcRrmMkQyC2q?-mkvO$q}_H^n?rh_H5kMOQL#Aiu)D@U$rhQ zJJnMR+cwFd(?q89#WrF*A8{}lp9`5j`sac<`?)|zNq;ViEb*RE1Zsbw;mZFDI4y3B z|0lcuJGg%~`oC-MKkfbxa7u^+-94L3_50{w;Tmtq%AolWVVH!a^Lt2bVj`b`UCq4F zn2~`bF;6D%d#WYJn&HI&o9aXkLFmBZ%I$_oqIZ_Aov|UG%0$r5J&)f`hDyQX35}t` zjb`r3V=k#YcHJyFNkWS8edZN$rT5;)JRa+ZzN2$hS_z1F>Pcxym6B-%r`JmS0;$;3 z;ooiWJeF);drWMQm4&Fet!F4FOHw)az2g2k9Rl+ayt1+hBwHC@G)nF*A6-0z5s}`N zL$VUSSK~e>Ks1R_>Z zqGs4XZ%1XZH6uuCa2FeZD)Zdjt2VA$bkKXVbU68QA&RvbSm-LInXWP_#%s>6jM*k6owJJ^FdvTdy>RbWz#CeUU-mr(kvIFCWeoF8 z`3Y|?InE^&b0y0c86#2>6oEQ{Z$msLMRL~D(%vs;%kk0uY>k%Y#;p<>SoDPTFl&%r zDp`@)w32m(L_WC4#EA?5OY-p!^J%B&{C;{}H7cVPG1($FaWLp68bJ*dJe_jrqCUN3 zoM-HHJWAgB&_EWeN76a82p?owQA9t@b9O0&ReaAParHD|v4T2(QYIT*^fqfXy_*V9 zhSAdfzD6_V#toOZo@{}!F6n!k*gZ1tP$e;z$|c#pEryNO7>io)o+|uUB7o=WD&?Ls z*WY?ZsQpsf8%Pf)d4&^qUkgcJQWZo3JyHtzv~kO+#$eM~&-}7Y91y+!pf;#Nmq$jQ zUf~PP1KQ9*jT<&R9)7hQH5Hpw>5wQVPPNP7yd*xVuoi9|+E}5}xTGLZ{>DNNh5-(q zezWOE1s5>SC(WuU97<|y+gA~|V*es=uR@~9y~-%==3Yu@W{~^H#+3aoLK(MIEx$r3 zd3tPEr}F@F|Kq)Gs#-1XR3yFPlj;oNsK?Xmf?qLsv1$gHiJC)?s-4@Jk~QNG?Q4D? zQ;&uYsig7M@+iZ*Gn(Qrf-81z8zF)T4=am0Hf)Ik#5eu~B-xx3)0UnWkG{G*=jn%f ztMQDPhmHq8AEy%Xt}V*_8cQ&WPMur=ox|=(4k<~?R-@?%O`2_b3HAr5aTcj-lXNjl z4N+pAz{KuBHhFWKY={?Jq*BAy|1;RVSBq; zk!c}E5y*7S1I-dLk@dN_dF0aWW5?8{%OtBh00wEsuikEB@RskR7@G*1Sd#?gl$yqp zW~ixrrrp1X(9)eI<%2F7$x6L*;}bps$e8d^Iz}u6Hr0FhATo7NvjHTtd1>DG_;d#B z5%k%7`UCd_s(y7(Y!iPzz;AEF*}k6yw^qARIvsgZnv#)xT_AR^UK5(t|9aayf!x=_O$fuuxyoD2;wszA^_~7UIrq(r44HoU|0O3 z2B>&CdpwyDH|@y z>Ds5caAP)&or2(?Ho!!#m{wj#O-1&sdH+T%a`87kp=5rj{hLDdDkF1~F)|GWHlUho zy6N4$Lu2r$(~MSk3+`w$4zEY7663my*f<4fu8J+u-XP0cpPIlx@?oFx&sed619{<_ z({)fK3jUAH(S(PrZwrGTx7uM6PDjc%6o`&+qDx+P%3Xcl3l=1t(b2LBE2GqPqq4b6 z=+Jkrf{b%^6E>JK{b=H9q>!>S1s;4^UZM8!v(jhQ)^(D`<$c*C#KS~8|C_^OkMW4Z zhR9sDXhjvaY-Uei$hU?2+<**b^L2tvA6IUlG9iX1B5c~s4J`Q z-rfX($N4HN8mYA@qu6UJEmP9oV7t#7K25=Ui?VkX64$iYAqk`q=gOLlkHC_kYm4&X zr15$c#jc4ip*&-}MwH>zZHK!1OuCN{B8))qPhJC%rUI8V&jRNUw-AgtP%H{Q*?lk9 z1ZohMJs}gasKqMPm$xcf%!pR|@a>1r(fEC1Sb`BiZ-I2uBO>T2hijNqolDik`qc)O z%=@%)qfUAe-^>oeh3wWA5knH@8p3zf3F87hOLY)K&cIT0z&z|G>`prl%&X2L) z)o?hxC2_~E6eRl;YkGMY_h*peG;+*7^qXJiIcVWCN@JaEfXfpD4Nxg(nBm2ss83qQ z&VuqCfLN6gBJqLnosI&PHr>^iR?)H&5rs)!1WLvv#J0H-Cz?lhubdcAkG;9p5f`|k z>I43IkE)N^Q(H}KjxvNE*j8*jZ7b)AR%zxFA;;@2JUw9W;pG0sp4P7epaG{}P(-sn z%<8AX*IUdkC%+S6?KSDnv|>yJ zrNy`;3pttig|3;f=~Wp#&{7Ux)l__IbQ)kA=7(zZxt56M@wdz}N4beiEob5W<^oZ* zlfGaAvjkE`sFoMyS+)3$!R>zjPvgF`iVQjia|QYw3*`5)Cz=jgyHcR07_H$$yEz_g z6ewRf^OAAoOYqzoX$4Yz;{EF&U}Q>4+sECf8D7WZ!L;!~;RvRWZM7Z06UNr3az#ht z*Fg>_O>gsp)1b3Nc|smkRKzs&&IOEEc}WcAs2bd<7@f9WGCh|{5o7i$r~GLM=({~I z2?zhzei;kr+PE_PfaukHy1I%cdwNDIv??Y35vqM<^qt|DT~EuSFOU7|j?<9j?ll!Y z4Smh#r+uSIg33xs-RFe|N!tlp%gTt>{hdZPH+@EXa8@atIy;ag_t~F3DV@o0a_AV4 zc$Ovm8KI9QrH%VaC0SsGZZi7o`#_yC@@t*=qf?FOW`mhd_O|1o4$l6D!j>-7$g|`i zInYau>b}g9)5c0uYXc^CAtSPuaBUOkT1Xx4s)mu-$Ir)e3kH84r7TRqbI=2lqGRM% z@Oy|d40iD5!}QhRd{48+O2v)2ZL^8>nr><1AEo{EgKIqaqBwCC2MU?fmd9$i?Go6# zwK-W`Y0L!fQ7kk)=niuP%@%V!#>&d(dOKUF_pJ^f+n^bnBiYIIsG707Y`_JF+60oW z3@>^Sj!xg|=NK`jY;XF)>MSMxT_`CIi+~9^^h#>mv);qU~k9PK`2uuwmn$QUGd)*tFMGNCF8I-aXq4fu>=f0z7AvQ-~K zo_lSscy{ZUeDz&o+O%Ln(}H|BJQk_g&e;6t^<0itI=4>(gf3wm08I=~ifSyIMn>9D zv3Z{0b@T9IT{ERkq+cZq_+(>=@Of==MQV%W!Zov?gabd|Ab!L_;1;q?;NcrS_c!23 zpEa|mwMvmw8R-w5z!R`j_DQhb(-N(0d55jHbJW6Jmj=)SLlRODn`XaZ7y#Qa!RvFb zNF2uC0*qSKwS;(xY*DZK^^;b4L3X#eTaluptKj>(q!AW z1#{FxzATc>>!#M6o-Cs`fy>_?t2}{^ylq-5sUs8Hx5#~4%ds9aD9t;9!GS{*#H$N+O8D!;c4J;@iWY%OHh;x4(p zb`!d{36`bPxE~<|a%pd2C!NTohCeU3z_sm>9|bDmKDTiiBDQ{hCbM&!l?4^+PlO^l zEP;JB^Gk)VljEBhW&06P(IVe+&1O03r1to}Uw*t@TOhql7jiO?E-0m4y#?Fc#o&Lu z%8k)5hica&AWiSU9*fKawcb_G%s%F_z7>!N#?C~=S$>Fu=q8xaYuxlEt1J=x_QrQ$ z5&ng63F{QQPxKLfC{%Bp_RB(v1DP^;Z3sd~5mKqRhT-L*(-=D))UUllBC~ei21!(N z@#5!yMVx1M!Lb9Mw$a9cBuexmf8#LSw^?YRR&l&Sm0SoEYgV#eqIz{pH4{7db=gH) zEj^O>JOyHLC}pNw8se3ru{e3O5WUK%i&A{$z07PY&&syqa+JZ7@1Q)0S)~_tCii4> zwQ^9LEE64lLRDiv55`O zS7oa?s*aQ;^S{yL6Pc5{!OEvc#@&XAQD2o?pr~+z#j$L^p%McnC3Qxy4qwQLh7_6W z@%(AVoT{U7WOMHRauw$pf8R~D09|GY1HVW<)WUF~2f4v#E*>!`9E7(neH<#|u`_=~ zYzsTj-UfXM#ml^Jc3b+ji3+Q> z|7~`}b!B5REcC41y<0d88$Et~Z~s-Bet3?)&>}rDlHk>*6-O=KlO#Z2Z?uT5F#T)R z1_xLlAMKo7Tgh5x=o@y8vK3W+Aq^7&)t7gOgfy;f^j(&t!`H$0SaPg5>-9ui5An%g zivnjnu5{HKi+sMwQPJzu;9t?v-1#ew-PQ&?$yeVK^7pM$_pOFv^ognGbz55PXc2ag zBR7fTX8FJ78rC>`Vs!d;>>xIA?VrOu>647i6hA}cr%}OvMn_fmKtnkCk=KFEdETO^ zcvnEwvA3$M`43aJI3$L=y@I1P5g5jALEt1rTPlf5IFK@)5Tl{Zx_tM8WvL5+0&gsm z>Z0X+O0Q%I=p~H|fw_zN97(ACQRV<%ESA!XYy(@HVehSA4~+S+-_Sg6RNR^;%3r4f z5b;eP_p1{;s-c6<;6b|AGfo4%-8-q2CJGZ5e+;;#>kSo$lDjXNKb+-r2WA5ni>_WAOakeKAmHM93(pV{ieLHDzFm9tO&f4JD z-4pdQYK$st@nrHnZ7_KBE9y(W;U%uPo8;^l7AJR)bLFvG? z{J0`^ymb{F(4G9!iC}zc; zFD=B|!wI`wj&?^v@77%S)z36w+ zn$fi0W&qIZbxoE8EEXO?lxVx6z0u}^%|0WUPErRqy#?r72(GP z35vie*QEGBpxnl1{2%z2!i%df3)n`Ode|k1U9jJtsVErXO=`mS0yB*^zC0x!EHUp7 z*?KZnFvU>?>VrTTkos6pWE^uny)1{czR|?8i@~o6gooi&3ncrxTWdMVMhoI=XQZ8n zuIF*BUa$nj2U5a_T^d?0WkSrF@kh1p=*i0R9sQ_}>0;RgV|Yv^OD`umt9#-0?$9@@ zpL=`32#}+@SE#<*DxdDxv~QObN5I8Nm!l5jm3h87!J$q+fq9bw7y39V1cWyY8ovPq zHz7Wb!2Q5mtTo#|=5(aq1slf)(U!|yuf8|#cS&xE!~N|lmDFI@&7;uTcm|UCaSVG( zoEC7GpX>J$Id7~;DN%MtIh+K$?{sZa@{2EfXn!Xc$5$ZuL0n?r-4k8zhFA&veX7;k zv8U>mte@XVHS5ZdHwl(KN`Ao4mohEug-g5lCLmb_n=xtZsfNV`nfQK=t1x|V>wezN zDtnxFK+xqUuQ%Dam1WI<>`1FzKB^9{Nxj>Yjy#Msa0{>Pp0@;m9~^%CgfjQVjqsdS zhN_*2ORk}udNUTXYQfR&MH9PEP|MGuMdqW2k(DN1DS;CaPCstgT4S*bPwhV^mBuuE zUlw;^^Q(L+>bD#fyJTDq6BtbwZ$pc`)SN<($+|ZcpJ-&sON�ZkvUe1M)ErGJS$u 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 literal 0 HcmV?d00001 diff --git a/google_9q82OQA b/google_9q82OQA new file mode 100644 index 0000000000000000000000000000000000000000..492f44c27eb2d402e0dd3446b4d38192e75874c4 GIT binary patch literal 15903 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�ZkvUe1M)ErGJS$u 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 literal 0 HcmV?d00001 diff --git a/image_google b/image_google new file mode 100644 index 0000000000000000000000000000000000000000..492f44c27eb2d402e0dd3446b4d38192e75874c4 GIT binary patch literal 15903 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�ZkvUe1M)ErGJS$u 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 literal 0 HcmV?d00001 diff --git a/image_google_sTknGkm b/image_google_sTknGkm new file mode 100644 index 0000000000000000000000000000000000000000..492f44c27eb2d402e0dd3446b4d38192e75874c4 GIT binary patch literal 15903 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�ZkvUe1M)ErGJS$u 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 literal 0 HcmV?d00001 diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..bea064a --- /dev/null +++ b/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'commerce.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main()