Skip to content

Commit

Permalink
Adding to watchlist
Browse files Browse the repository at this point in the history
  • Loading branch information
Ekaterina-Vititneva committed Aug 9, 2024
1 parent 60a51c6 commit d8610fb
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 6 deletions.
28 changes: 28 additions & 0 deletions project_2/commerce/auctions/templates/auctions/categories.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{% extends "auctions/layout.html" %}

{% block body %}
<h2>Active Listings</h2>


<div class="listings-grid">
{% for listing in listings %}
<a class="listing-card-link" href="{% url 'listing' listing.title %}">
<div class="card" style="width: 18rem;">
{% if listing.imageURL %}
<img src= "{{ listing.imageURL }}" alt="listing image" height="200" class="listing-image">
{% else %}
<div class="placeholder-rectangle"></div>
{% endif %}
<div class="card-body">
<h5 class="card-title">{{ listing.title }}</h5>
<h6 class="card-subtitle mb-2 text-body">Price: {{ listing.bid }}€</h6>
<p class="card-text">{{ listing.description }}</p>
</div>
<div class="card-footer text-body-secondary">
<div>Created time: {{ listing.created_at }}</div>
</div>
</div>
</a>
{% endfor %}
</div>
{% endblock %}
4 changes: 2 additions & 2 deletions project_2/commerce/auctions/templates/auctions/layout.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ <h1>Auctions</h1>
<a class="nav-link" href="{% url 'index' %}">Active Listings</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'index' %}">Categories</a>
<a class="nav-link" href="{% url 'categories' %}">Categories</a>
</li>
{% if user.is_authenticated %}
<li class="nav-item">
<a class="nav-link" href="{% url 'logout' %}">Log Out</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'logout' %}">Watchlist</a>
<a class="nav-link" href="{% url 'watchlist' %}">Watchlist</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'create_listing' %}">Create Listing</a>
Expand Down
9 changes: 7 additions & 2 deletions project_2/commerce/auctions/templates/auctions/listing.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,15 @@ <h4 class="listing-bid">{{ listing.bid }}€</h4>
<button type="submit" class="btn btn-primary btn-submit">Submit</button>
</div>
</form>
<form action="" method="post">
<form method="post">
{% csrf_token %}
<input class="btn btn-outline-secondary btn-sm" type="submit" value="Add to watchlist">
{% if listing in user.watchlist.all %}
<button type="submit" name="remove_from_watchlist" class="btn btn-danger">Remove from Watchlist</button>
{% else %}
<button type="submit" name="add_to_watchlist" class="btn btn-primary">Add to Watchlist</button>
{% endif %}
</form>

{% endif %}

</div>
Expand Down
28 changes: 28 additions & 0 deletions project_2/commerce/auctions/templates/auctions/watchlist.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{% extends "auctions/layout.html" %}

{% block body %}
<h2>Watchlist</h2>


<div class="listings-grid">
{% for listing in listings %}
<a class="listing-card-link" href="{% url 'listing' listing.title %}">
<div class="card" style="width: 18rem;">
{% if listing.imageURL %}
<img src= "{{ listing.imageURL }}" alt="listing image" height="200" class="listing-image">
{% else %}
<div class="placeholder-rectangle"></div>
{% endif %}
<div class="card-body">
<h5 class="card-title">{{ listing.title }}</h5>
<h6 class="card-subtitle mb-2 text-body">Price: {{ listing.bid }}€</h6>
<p class="card-text">{{ listing.description }}</p>
</div>
<div class="card-footer text-body-secondary">
<div>Created time: {{ listing.created_at }}</div>
</div>
</div>
</a>
{% endfor %}
</div>
{% endblock %}
2 changes: 2 additions & 0 deletions project_2/commerce/auctions/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@
path("create_listing", views.create_listing, name="create_listing"),
path("listing/<str:title>", views.listing, name="listing"),
path("listing/<str:title>/bid/", views.place_bid, name="place_bid"),
path("categories", views.categories, name="categories"),
path("watchlist", views.watchlist, name="watchlist"),
]
43 changes: 41 additions & 2 deletions project_2/commerce/auctions/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,25 @@ def listing(request, title):

def listing(request, title):
listing = get_object_or_404(Listing, title=title)
form = BidForm()
user = request.user

if request.method == "POST":
if 'add_to_watchlist' in request.POST:
if listing not in user.watchlist.all():
user.watchlist.add(listing)
messages.success(request, "Listing added to your watchlist.")
else:
messages.info(request, "Listing is already in your watchlist.")
elif 'remove_from_watchlist' in request.POST:
if listing in user.watchlist.all():
user.watchlist.remove(listing)
messages.success(request, "Listing removed from your watchlist.")
else:
messages.info(request, "Listing was not in your watchlist.")

return render(request, "auctions/listing.html", {
"listing": listing,
"form": form
"form": BidForm(), # Assuming you're passing a BidForm as well
})

def place_bid(request, title):
Expand Down Expand Up @@ -133,3 +147,28 @@ def place_bid(request, title):

return render(request, "auctions/listing.html", {"listing": listing, "form": form})

def watchlist_add(request, listing_id):
listing = get_object_or_404(Listing, id=listing_id)
user = request.user

if listing not in user.watchlist.all():
user.watchlist.add(listing)
messages.success(request, "Listing added to your watchlist.")
else:
messages.info(request, "Listing is already in your watchlist.")

return redirect('listing', title=listing.title)

def categories(request):
return render(request, "auctions/categories.html", {
"listings": Listing.objects.all()
})

def watchlist(request):
user = request.user
return render(request, "auctions/watchlist.html", {
"listings": user.watchlist.all()
})

def add_comment(request):
return render(request, "auctions/listing.html")

0 comments on commit d8610fb

Please sign in to comment.