From f94fc49d9a967191d08228d09cf2eebbf90faed2 Mon Sep 17 00:00:00 2001
From: Zairiel Sarausad
Date: Wed, 30 May 2018 16:13:41 +0800
Subject: [PATCH 1/6] Create models for Products
---
livestream/models.py | 58 +++++++++++++++++++++++++++++++++++++-------
profiles/models.py | 7 ++++++
2 files changed, 56 insertions(+), 9 deletions(-)
diff --git a/livestream/models.py b/livestream/models.py
index e1f2fb71..d6ee94e9 100644
--- a/livestream/models.py
+++ b/livestream/models.py
@@ -1,12 +1,5 @@
from django.db import models
-
-
-# Stores newly generated session id
-class Session(models.Model):
- session_id = models.CharField(max_length=1000)
-
- def __str__(self):
- return self.session_id
+from django.contrib.auth.models import User
# Stores newly generated arhive id
@@ -16,4 +9,51 @@ class Archive(models.Model):
def __str__(self):
return self.archive_id
-# Create your models here.
+
+class Product(models.Model):
+ owner = models.OneToOneField(User,
+ on_delete=models.CASCADE,
+ related_name='product')
+
+ name = models.CharField(max_length=30)
+ description = models.CharField(max_length=500)
+ date_sold = models.DateTimeField()
+ price = models.PositiveIntegerField()
+ winning_bid = models.PositiveIntegerField()
+ minimum_price = models.PositiveIntegerField()
+
+
+class Bid(models.Model):
+ owner = models.OneToOneField(User,
+ on_delete=models.CASCADE)
+ credits = models.PositiveIntegerField()
+
+
+# Stores newly generated session id
+class Session(models.Model):
+ auctioneer = models.OneToOneField(User,
+ on_delete=models.CASCADE,
+ related_name='auctioneer')
+
+ # not sure
+ attendees = models.ForeignKey(User,
+ on_delete=models.CASCADE,
+ related_name='attendee')
+
+ products = models.ForeignKey(Product,
+ on_delete=models.CASCADE,
+ related_name='product')
+
+ bid = models.OneToOneField(Bid,
+ on_delete=models.CASCADE,
+ related_name='bid')
+
+ session_id = models.CharField(max_length=1000)
+ name = models.CharField(max_length=30)
+ description = models.CharField(max_length=500)
+ date_when = models.DateTimeField()
+ date_live = models.DateTimeField()
+ isOngoing = models.BooleanField(default=False)
+
+ def __str__(self):
+ return self.session_id
diff --git a/profiles/models.py b/profiles/models.py
index 5bcb114a..c14d9707 100644
--- a/profiles/models.py
+++ b/profiles/models.py
@@ -30,3 +30,10 @@ class Subscribed(models.Model):
bidder = models.ForeignKey(User,
on_delete=models.CASCADE,
related_name='bidder')
+
+
+class Credits(models.Model):
+ owner = models.OneToOneField(User,
+ on_delete=models.CASCADE,
+ related_name='credits')
+ credits = models.PositiveIntegerField()
From e5cb49bab0fa2320e0dce72a553ffe75e617be1c Mon Sep 17 00:00:00 2001
From: Zairiel Sarausad
Date: Thu, 31 May 2018 14:34:51 +0800
Subject: [PATCH 2/6] Remove migrations from gitignore
---
.gitignore | 6 ------
livestream/models.py | 2 +-
2 files changed, 1 insertion(+), 7 deletions(-)
diff --git a/.gitignore b/.gitignore
index 90776815..ec915e93 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,9 +48,3 @@ local_settings.py
assets/
Downloads/
-
-app/tags/migrations/
-profiles/migrations/
-livestream/migrations/
-
-
diff --git a/livestream/models.py b/livestream/models.py
index d6ee94e9..0cbebdda 100644
--- a/livestream/models.py
+++ b/livestream/models.py
@@ -33,7 +33,7 @@ class Bid(models.Model):
class Session(models.Model):
auctioneer = models.OneToOneField(User,
on_delete=models.CASCADE,
- related_name='auctioneer')
+ related_name='current_auctioneer')
# not sure
attendees = models.ForeignKey(User,
From 11c3880128aaf95cba1808ab8c86ee983f8a75a7 Mon Sep 17 00:00:00 2001
From: Zairiel Sarausad
Date: Tue, 5 Jun 2018 20:28:13 +0800
Subject: [PATCH 3/6] Enable add credits
---
index.html | 5 ++--
login/views.py | 4 ++-
.../migrations/0005_auto_20180604_0901.py | 19 ++++++++++++++
profiles/models.py | 16 ++++++++++--
profiles/urls.py | 3 ++-
profiles/views.py | 20 +++++++++++++--
src/components/PagesNavigation.vue | 25 ++++++++++++++++++-
src/components/VLoginForm.vue | 1 +
src/main.js | 1 +
src/store/index.js | 10 +++++---
templates/index.html | 5 ++--
11 files changed, 95 insertions(+), 14 deletions(-)
create mode 100644 profiles/migrations/0005_auto_20180604_0901.py
diff --git a/index.html b/index.html
index a040a046..301ceeac 100644
--- a/index.html
+++ b/index.html
@@ -8,11 +8,11 @@
{% csrf_token %}
diff --git a/login/views.py b/login/views.py
index 4daabeb9..9c1d1f36 100644
--- a/login/views.py
+++ b/login/views.py
@@ -13,9 +13,11 @@ def post(self, request):
if user is not None:
auth.login(request, user)
isAuctioneer = user.profile.isAuctioneer
+ credits = user.profile.total_credits
return JsonResponse({'isValid': True,
- 'isAuctioneer': isAuctioneer})
+ 'isAuctioneer': isAuctioneer,
+ 'credits': credits})
else:
return HttpResponseBadRequest()
diff --git a/profiles/migrations/0005_auto_20180604_0901.py b/profiles/migrations/0005_auto_20180604_0901.py
new file mode 100644
index 00000000..116af282
--- /dev/null
+++ b/profiles/migrations/0005_auto_20180604_0901.py
@@ -0,0 +1,19 @@
+# Generated by Django 2.0.4 on 2018-06-04 09:01
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('profiles', '0004_auto_20180604_0820'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='product',
+ name='bid',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='bid', to='profiles.Bid'),
+ ),
+ ]
diff --git a/profiles/models.py b/profiles/models.py
index bc6979c1..76a0d277 100644
--- a/profiles/models.py
+++ b/profiles/models.py
@@ -1,5 +1,6 @@
from django.db import models
from django.contrib.auth.models import User
+from django.db.models import Sum
class Bid(models.Model):
@@ -29,8 +30,14 @@ def countSubscribers(self):
"""Returns how many subscribers are currently subscribed to a user"""
return self.user.auctioneer.count()
+ @property
+ def total_credits(self):
+ total_credits = self.credit_profile.aggregate(
+ Sum('credit_amount'))
+ return total_credits['credit_amount__sum']
+
def __str__(self):
- return str(self.user.username)
+ return '{}'.format(self.user.username)
class Credit(models.Model):
@@ -40,12 +47,17 @@ class Credit(models.Model):
on_delete=models.CASCADE,
null=True)
+ def __str__(self):
+ return '{} {}'.format(self.profile.user.username,
+ self.credit_amount)
+
class Product(models.Model):
bid = models.ForeignKey(Bid,
related_name='bid',
on_delete=models.CASCADE,
- null=True)
+ null=True,
+ blank=True)
profile = models.ForeignKey(Profile,
related_name='product_profile',
diff --git a/profiles/urls.py b/profiles/urls.py
index f67ebf2a..18550acd 100644
--- a/profiles/urls.py
+++ b/profiles/urls.py
@@ -7,5 +7,6 @@
path('edit_profile_details/', views.EditProfile.as_view()),
path('edit_password/', views.EditPassword.as_view()),
path('remove_tag/', views.TagRemoval.as_view()),
- path('subscribe/', views.Subscribe.as_view())
+ path('subscribe/', views.Subscribe.as_view()),
+ path('update_credits/', views.UpdateCredits.as_view())
]
diff --git a/profiles/views.py b/profiles/views.py
index 359b9f06..7175a831 100644
--- a/profiles/views.py
+++ b/profiles/views.py
@@ -3,7 +3,8 @@
from django.views.generic import View
from django.http import HttpResponse
from tags.models import Tags
-from profiles.models import Subscribed
+from profiles.models import Subscribed, Credit
+from django.db.models import Sum
class ProfileView(View):
@@ -26,7 +27,7 @@ def post(self, request):
'isAuctioneer': user_profile.isAuctioneer,
'subscribers': user_profile.countSubscribers,
'hasSubscribed': hasSubscribed,
- 'contact_number': user.profile.contact_number
+ 'contact_number': user.profile.contact_number,
}
return JsonResponse(context)
@@ -113,3 +114,18 @@ def post(self, request):
subscribed_user.profile.save()
return HttpResponse(res)
+
+
+class UpdateCredits(View):
+ def post(self, request):
+ current_user = request.user
+ amount = request.POST.get('amount', '')
+ credit = Credit.objects.create(credit_amount=amount,
+ profile=current_user.profile)
+ total_credit = Credit.objects.filter(
+ profile=current_user.profile
+ ).aggregate(Sum('credit_amount'))
+
+ print(total_credit)
+
+ return JsonResponse({'total_credit': total_credit})
diff --git a/src/components/PagesNavigation.vue b/src/components/PagesNavigation.vue
index 18a5ecaf..289eface 100644
--- a/src/components/PagesNavigation.vue
+++ b/src/components/PagesNavigation.vue
@@ -19,6 +19,10 @@
{{currentRoute}}
+
+ Credits: {{credits}}
+ +
+
{
+ this.$store.commit('addCredits', response.data.total_credit.credit_amount__sum)
+ });
+ },
},
watch: {
'$route' (to,from) {
diff --git a/src/components/VLoginForm.vue b/src/components/VLoginForm.vue
index 9620ef26..53fb0f97 100644
--- a/src/components/VLoginForm.vue
+++ b/src/components/VLoginForm.vue
@@ -46,6 +46,7 @@
this.$store.commit('authenticated', true)
this.$store.commit('setUsername', this.user.name)
this.$store.commit('asAuctioneer', response.data.isAuctioneer)
+ this.$store.commit('addCredits', response.data.credits)
this.$router.push({
name: 'Home',
params: {
diff --git a/src/main.js b/src/main.js
index 27d4b90d..0657af1c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -26,6 +26,7 @@ Vue.config.productionTip = false
store.commit('authenticated', window.__INITIAL_STATE__.isAuthenticated)
store.commit('setUsername', window.__INITIAL_STATE__.username)
store.commit('asAuctioneer', window.__INITIAL_STATE__.isAuctioneer)
+store.commit('addCredits', window.__INITIAL_STATE__.credits)
//store username
router.beforeEach((to, from, next) => {
let isAuth = store.state.isAuthenticated;
diff --git a/src/store/index.js b/src/store/index.js
index 4f1b9471..a1418938 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -14,7 +14,8 @@ export default new Vuex.Store({
firstname: '',
avatar: '',
tags: '',
- isAuctioneer: false
+ isAuctioneer: false,
+ credits: 100
},
mutations: {
@@ -26,7 +27,8 @@ export default new Vuex.Store({
setFirstName: (state, firstname) => state.firstname = firstname,
setProfilePic: (state, image) => state.avatar = image,
setTags: (state, tags) => state.tags = tags,
- asAuctioneer: (state, asAuct) => state.isAuctioneer = asAuct
+ asAuctioneer: (state, asAuct) => state.isAuctioneer = asAuct,
+ addCredits: (state, amount) => state.credits = parseInt(amount)
},
actions: {
@@ -51,6 +53,7 @@ export default new Vuex.Store({
context.commit('setProfilePic', userDetails.avatar)
context.commit('setTags', userDetails.tags)
context.commit('asAuctioneer', userDetails.isAuctioneer)
+ context.commit('addCredits', userDetails.credit_amount)
},);
},
setUsername: (context, username) => {
@@ -66,7 +69,8 @@ export default new Vuex.Store({
getFirstName: (state) => { return state.firstname },
getProfilePic: (state) => { return state.avatar },
getTags: (state) => { return state.tags },
- isAuctioneer: (state) => { return state.isAuctioneer }
+ isAuctioneer: (state) => { return state.isAuctioneer },
+ getCredits: (state) => { return state.credits }
}
})
diff --git a/templates/index.html b/templates/index.html
index 80fee50e..4d2d5e3f 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -8,11 +8,11 @@
{% csrf_token %}
From 32b46334c10f46a8c12cdf8955d6ac8472d99331 Mon Sep 17 00:00:00 2001
From: Zairiel Sarausad
Date: Wed, 6 Jun 2018 14:14:25 +0800
Subject: [PATCH 4/6] Add informative pop-ups on login and add credits
---
profiles/views.py | 2 -
src/components/PagesNavigation.vue | 60 +++++++++++++++++++++++++++---
src/components/VLoginForm.vue | 9 ++++-
3 files changed, 61 insertions(+), 10 deletions(-)
diff --git a/profiles/views.py b/profiles/views.py
index 7175a831..ca5db771 100644
--- a/profiles/views.py
+++ b/profiles/views.py
@@ -126,6 +126,4 @@ def post(self, request):
profile=current_user.profile
).aggregate(Sum('credit_amount'))
- print(total_credit)
-
return JsonResponse({'total_credit': total_credit})
diff --git a/src/components/PagesNavigation.vue b/src/components/PagesNavigation.vue
index 289eface..2fa9373d 100644
--- a/src/components/PagesNavigation.vue
+++ b/src/components/PagesNavigation.vue
@@ -21,8 +21,36 @@
Credits: {{credits}}
- +
-
+
+
+ Add more credits?
+
+
+
+ Purchase Credits
+
+
+
+
+
+
+
+
+
+
+
+
+ Close
+ Save
+
+
+
+
-->
-
+
+
+
+ {{ alertbar.text }}
+ Close
+
@@ -99,11 +136,13 @@ export default {
name: 'PagesNavigation',
data(){
return {
+ dialog: false,
showNav: false,
currentRoute: "",
toolbarIcon: "menu",
username: "",
current_credits: "",
+ add_credits: "",
pages: [
{
title: "Home",
@@ -120,6 +159,13 @@ export default {
},
],
+ alertbar: {
+ snackbar: false,
+ y:'top',
+ x: null,
+ text: '',
+ timeout: 4000,
+ },
warningModal: false,
}
},
@@ -167,9 +213,11 @@ export default {
// this.$store.commit("addCredits", 500)
let request = new Request();
let formdata = new FormData();
-
+ this.dialog = !this.dialog;
+ this.alertbar.text = "Successfully added " + this.add_credits + " credits!";
+ this.alertbar.snackbar = true;
// formdata.set('amount', this.$store.getters.getCredits)
- formdata.set('amount', 500)
+ formdata.set('amount', this.add_credits)
request.post("/profile/update_credits/", formdata,
(response)=>{
this.$store.commit('addCredits', response.data.total_credit.credit_amount__sum)
diff --git a/src/components/VLoginForm.vue b/src/components/VLoginForm.vue
index 53fb0f97..8cbd723b 100644
--- a/src/components/VLoginForm.vue
+++ b/src/components/VLoginForm.vue
@@ -1,5 +1,8 @@
-
+
+
+ Incorrect username or password!
+
{
if(response instanceof Error){
- // do error stuff
+ this.alert = true
}else {
this.$store.commit('authenticated', true)
this.$store.commit('setUsername', this.user.name)
@@ -65,4 +69,5 @@
.form {
padding: 2em;
}
+
\ No newline at end of file
From d997066f6d4ef392ed4f99e42cb4ee74c0d2f681 Mon Sep 17 00:00:00 2001
From: Zairiel Sarausad
Date: Thu, 7 Jun 2018 00:29:15 +0800
Subject: [PATCH 5/6] Add backend for browsing
---
auction/settings.py | 1 +
auction/urls.py | 1 +
browse/__init__.py | 0
browse/admin.py | 3 +++
browse/apps.py | 5 +++++
browse/migrations/__init__.py | 0
browse/models.py | 3 +++
browse/tests.py | 3 +++
browse/urls.py | 9 +++++++++
browse/views.py | 19 +++++++++++++++++++
tags/migrations/0002_auto_20180606_1104.py | 18 ++++++++++++++++++
tags/migrations/0003_auto_20180606_1140.py | 18 ++++++++++++++++++
12 files changed, 80 insertions(+)
create mode 100644 browse/__init__.py
create mode 100644 browse/admin.py
create mode 100644 browse/apps.py
create mode 100644 browse/migrations/__init__.py
create mode 100644 browse/models.py
create mode 100644 browse/tests.py
create mode 100644 browse/urls.py
create mode 100644 browse/views.py
create mode 100644 tags/migrations/0002_auto_20180606_1104.py
create mode 100644 tags/migrations/0003_auto_20180606_1140.py
diff --git a/auction/settings.py b/auction/settings.py
index fafc0313..32987df0 100644
--- a/auction/settings.py
+++ b/auction/settings.py
@@ -37,6 +37,7 @@
'profiles',
'tags',
'livestream',
+ 'browse',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
diff --git a/auction/urls.py b/auction/urls.py
index 98ffc99a..e18d7091 100644
--- a/auction/urls.py
+++ b/auction/urls.py
@@ -28,6 +28,7 @@
path('livestream/', include('livestream.urls')),
path('admin/', admin.site.urls),
path('profile/', include('profiles.urls')),
+ path('browse/', include('browse.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += [
diff --git a/browse/__init__.py b/browse/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/browse/admin.py b/browse/admin.py
new file mode 100644
index 00000000..8c38f3f3
--- /dev/null
+++ b/browse/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/browse/apps.py b/browse/apps.py
new file mode 100644
index 00000000..e4f56778
--- /dev/null
+++ b/browse/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class BrowseConfig(AppConfig):
+ name = 'browse'
diff --git a/browse/migrations/__init__.py b/browse/migrations/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/browse/models.py b/browse/models.py
new file mode 100644
index 00000000..71a83623
--- /dev/null
+++ b/browse/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/browse/tests.py b/browse/tests.py
new file mode 100644
index 00000000..7ce503c2
--- /dev/null
+++ b/browse/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/browse/urls.py b/browse/urls.py
new file mode 100644
index 00000000..1e8c91d5
--- /dev/null
+++ b/browse/urls.py
@@ -0,0 +1,9 @@
+from django.contrib import admin
+from django.urls import path, include
+
+from . import views
+
+app_name = 'browse'
+urlpatterns = [
+ path('', views.BrowseView.as_view(), name='search'),
+]
diff --git a/browse/views.py b/browse/views.py
new file mode 100644
index 00000000..2b3aa83c
--- /dev/null
+++ b/browse/views.py
@@ -0,0 +1,19 @@
+from profiles.models import Profile
+from django.http import HttpResponse
+from django.views.generic import View
+from django.core import serializers
+from django.db.models import Q
+
+
+class BrowseView(View):
+ def get(self, request):
+ print(request.GET)
+ query_name = request.GET.get('queryName', '')
+ query_filter = request.GET.get('queryFilter', '')
+ query_set = Profile.objects.filter(
+ Q(user__first_name__contains=query_name) |
+ Q(user__last_name__contains=query_name) |
+ Q(tags__name__contains=query_filter)).distinct()
+ print(query_set)
+ query_set_json = serializers.serialize('json', query_set)
+ return HttpResponse(query_set_json, content_type='application/json')
diff --git a/tags/migrations/0002_auto_20180606_1104.py b/tags/migrations/0002_auto_20180606_1104.py
new file mode 100644
index 00000000..37142e96
--- /dev/null
+++ b/tags/migrations/0002_auto_20180606_1104.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.0.4 on 2018-06-06 11:04
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('tags', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='tags',
+ name='profile',
+ field=models.ManyToManyField(related_name='tags', to='profiles.Profile'),
+ ),
+ ]
diff --git a/tags/migrations/0003_auto_20180606_1140.py b/tags/migrations/0003_auto_20180606_1140.py
new file mode 100644
index 00000000..a9eac886
--- /dev/null
+++ b/tags/migrations/0003_auto_20180606_1140.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.0.4 on 2018-06-06 11:40
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('tags', '0002_auto_20180606_1104'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='tags',
+ name='profile',
+ field=models.ManyToManyField(to='profiles.Profile'),
+ ),
+ ]
From 31eb9ace88d32f4f704c1a1e0efd46a8105895c5 Mon Sep 17 00:00:00 2001
From: Zairiel Sarausad
Date: Fri, 8 Jun 2018 19:24:44 +0800
Subject: [PATCH 6/6] Add browse component
---
browse/views.py | 52 +++++++---
src/assets/js/Request.js | 2 +-
src/components/Explore.vue | 151 +++++++++++++++++++++++++++++
src/components/PagesNavigation.vue | 44 ++++++---
src/router/index.js | 8 +-
5 files changed, 231 insertions(+), 26 deletions(-)
create mode 100644 src/components/Explore.vue
diff --git a/browse/views.py b/browse/views.py
index 2b3aa83c..76bec549 100644
--- a/browse/views.py
+++ b/browse/views.py
@@ -1,19 +1,47 @@
+import json
from profiles.models import Profile
from django.http import HttpResponse
from django.views.generic import View
-from django.core import serializers
from django.db.models import Q
class BrowseView(View):
- def get(self, request):
- print(request.GET)
- query_name = request.GET.get('queryName', '')
- query_filter = request.GET.get('queryFilter', '')
- query_set = Profile.objects.filter(
- Q(user__first_name__contains=query_name) |
- Q(user__last_name__contains=query_name) |
- Q(tags__name__contains=query_filter)).distinct()
- print(query_set)
- query_set_json = serializers.serialize('json', query_set)
- return HttpResponse(query_set_json, content_type='application/json')
+ def post(self, request):
+ print(request.POST)
+ query_name = request.POST.get('browseQuery', None)
+ query_filter = request.POST.get('browseFilter', None)
+ query_set = Profile.objects.all()
+
+ print(query_name)
+ print(query_filter)
+ if query_filter and not query_name:
+ print("not query_filter and query_name")
+ query_set = query_set.filter(
+ tags__name__contains=query_filter).distinct()
+ elif not query_filter and query_name:
+ print("query_filter and not query_name")
+ query_set = query_set.filter(
+ Q(user__first_name__contains=query_name) |
+ Q(user__last_name__contains=query_name)).distinct()
+ else:
+ print("all")
+ query_set = query_set.filter(
+ Q(user__first_name__contains=query_name) |
+ Q(user__last_name__contains=query_name),
+ tags__name__contains=query_filter).distinct()
+
+ context = []
+ for obj in query_set:
+ tags = list(obj.tags_set.values_list('name', flat=True))
+ context.append({
+ 'pk': obj.user.pk,
+ 'username': obj.user.username,
+ 'last_name': obj.user.last_name,
+ 'first_name': obj.user.first_name,
+ 'description': obj.biography,
+ 'contact_number': obj.contact_number,
+ 'isAuctioneer': obj.isAuctioneer,
+ 'tags': tags,
+ })
+
+ return HttpResponse(json.dumps(context))
diff --git a/src/assets/js/Request.js b/src/assets/js/Request.js
index 31011acd..fbd27d4a 100644
--- a/src/assets/js/Request.js
+++ b/src/assets/js/Request.js
@@ -22,6 +22,6 @@ export default class Request {
}
get(url, callback){
- this.send('get',baseurl, url, callback);
+ this.send('get', url, {}, callback);
}
}
\ No newline at end of file
diff --git a/src/components/Explore.vue b/src/components/Explore.vue
new file mode 100644
index 00000000..ec7bcb0b
--- /dev/null
+++ b/src/components/Explore.vue
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
{{ tag1 }}
+
{{ tag2 }}
+
{{ tag3 }}
+
{{ tag4 }}
+
{{ tag5 }}
+
Clear
+
+
+
+
+
+
+
{{result.username}}
+
{{result.first_name}} {{result.last_name}}
+
+ label
+ {{tag}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/PagesNavigation.vue b/src/components/PagesNavigation.vue
index 2fa9373d..6ddd1e7f 100644
--- a/src/components/PagesNavigation.vue
+++ b/src/components/PagesNavigation.vue
@@ -101,6 +101,22 @@
+
+
+
+
+ search
+
+
+
+
+ Browse
+
+
+
+
@@ -150,14 +166,14 @@ export default {
path: {
name: 'Home'
},
- },{
+ },
+ {
title: "Profile",
icon: "account_box",
path: {
name: 'Profile',
},
},
-
],
alertbar: {
snackbar: false,
@@ -176,40 +192,46 @@ export default {
}
},
methods: {
- route(path){
+ browse() {
+ this.$router.push({
+ name: 'Explore'
+ })
+ },
+ route(path) {
let currentRoute = this.$route.name
- if(path.name == "Profile"){
+ if (path.name == "Profile") {
path.params = {
username: this.username,
}
}
- if(path.name == currentRoute)
+ if (path.name == currentRoute) {
this.showNav = false;
- else
+ } else {
this.$router.push(path);
+ }
},
- navigate(){
+ navigate() {
if (this.toolbarIcon == "arrow_back"){
this.$router.go(-1);
- }else {
+ } else {
this.showNav = true;
}
},
- signOut(){
+ signOut() {
let request = new Request();
request.post("/login/logout/", {},
(response)=>{
this.$router.go(0);
});
},
- createLive(){
+ createLive() {
this.$router.push({
name: 'Create-Live'
})
},
- addCredits(){
+ addCredits() {
// this.$store.commit("addCredits", 500)
let request = new Request();
let formdata = new FormData();
diff --git a/src/router/index.js b/src/router/index.js
index 0f477868..a4f8ef94 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -9,6 +9,7 @@ import Auctioneer from '@/components/Auctioneer'
import Bidder from '@/components/Bidder'
import EditProfile from '@/components/EditProfile'
import CreateLiveStream from '@/components/CreateLiveStream'
+import Explore from '@/components/Explore'
import store from '../store'
Vue.use(Router)
@@ -40,10 +41,13 @@ export default new Router({
path: '/create-auction',
name: 'Create-Live',
component: CreateLiveStream,
- }
+ },{
+ path: '/explore',
+ name: 'Explore',
+ component: Explore
+ },
],
},
-
{
path: '/auctioneer/:id',
name: 'Auctioneer',