2023-02-19 23:56:05 +01:00
|
|
|
from django.shortcuts import render, get_object_or_404, redirect
|
|
|
|
from django.utils import timezone
|
|
|
|
from django.contrib import messages
|
|
|
|
from django.contrib.auth.decorators import login_required
|
2023-03-31 18:10:38 +02:00
|
|
|
from django.http import HttpResponseForbidden
|
2023-02-19 12:29:08 +01:00
|
|
|
|
2023-02-19 23:56:05 +01:00
|
|
|
from .forms import CreateOfferForm
|
|
|
|
from .models import Offer, Wish
|
2023-02-20 11:31:10 +01:00
|
|
|
from .upload import generate_unique_filename
|
2023-02-19 23:56:05 +01:00
|
|
|
|
|
|
|
|
|
|
|
def index(request):
|
|
|
|
return render(request, "app/index.html")
|
|
|
|
|
|
|
|
|
2023-02-20 11:31:10 +01:00
|
|
|
def list_offers(request, filters=None):
|
|
|
|
offers = Offer.objects.all()
|
|
|
|
print(offers)
|
|
|
|
return render(request, "offer/search.html", {"offers": offers})
|
|
|
|
|
|
|
|
|
2023-02-19 23:56:05 +01:00
|
|
|
@login_required
|
|
|
|
def create_offer(request):
|
|
|
|
if request.method == "POST":
|
|
|
|
form = CreateOfferForm(request.POST, request.FILES)
|
|
|
|
if form.is_valid():
|
|
|
|
offer = form.save(commit=False)
|
2023-02-20 11:31:10 +01:00
|
|
|
offer.image.name = generate_unique_filename(form.cleaned_data['image'].name)
|
2023-02-19 23:56:05 +01:00
|
|
|
offer.user = request.user
|
|
|
|
offer.save()
|
|
|
|
messages.success(request, "Offer uploaded successfully!")
|
|
|
|
return redirect("offer_detail", offer.id)
|
|
|
|
else:
|
|
|
|
form = CreateOfferForm()
|
|
|
|
|
|
|
|
return render(request, "basic_form.html", {"form": form, "button_label": "Create"})
|
|
|
|
|
|
|
|
|
2023-02-20 11:31:10 +01:00
|
|
|
@ login_required
|
2023-02-19 23:56:05 +01:00
|
|
|
def offer_detail(request, offer_id):
|
|
|
|
offer = get_object_or_404(Offer, id=offer_id)
|
|
|
|
|
|
|
|
return render(request, "offer/detail.html", {"offer": offer, "wishes": ["Monstera", "Tradescantia"]})
|
|
|
|
|
|
|
|
|
2023-03-31 18:10:38 +02:00
|
|
|
@login_required
|
2023-02-19 23:56:05 +01:00
|
|
|
def offer_delete(request, offer_id):
|
2023-03-31 18:10:38 +02:00
|
|
|
offer = get_object_or_404(Offer, id=offer_id)
|
|
|
|
if offer.user != request.user:
|
|
|
|
return HttpResponseForbidden()
|
2023-02-19 23:56:05 +01:00
|
|
|
|
2023-03-31 18:10:38 +02:00
|
|
|
offer.delete()
|
|
|
|
messages.success(request, "Offer deleted successfully!")
|
|
|
|
return redirect("list_offers")
|
2023-02-19 23:56:05 +01:00
|
|
|
|
2023-03-31 18:10:38 +02:00
|
|
|
|
|
|
|
@login_required
|
2023-02-19 23:56:05 +01:00
|
|
|
def offer_edit(request, offer_id):
|
2023-03-31 18:10:38 +02:00
|
|
|
offer = get_object_or_404(Offer, id=offer_id)
|
|
|
|
if offer.user != request.user:
|
|
|
|
return HttpResponseForbidden()
|
|
|
|
|
|
|
|
if request.method == "POST":
|
|
|
|
form = CreateOfferForm(request.POST, request.FILES, instance=offer)
|
|
|
|
if form.is_valid():
|
|
|
|
offer = form.save(commit=False)
|
|
|
|
offer.image.name = generate_unique_filename(form.cleaned_data['image'].name)
|
|
|
|
offer.user = request.user
|
|
|
|
offer.save()
|
|
|
|
messages.success(request, "Offer updated successfully!")
|
|
|
|
return redirect("offer_detail", offer.id)
|
|
|
|
else:
|
|
|
|
form = CreateOfferForm(instance=offer)
|
|
|
|
|
|
|
|
return render(request, "basic_form.html", {"form": form, "button_label": "Update"})
|
2023-02-19 23:56:05 +01:00
|
|
|
|
|
|
|
|
2023-02-20 11:31:10 +01:00
|
|
|
@ login_required
|
2023-02-19 23:56:05 +01:00
|
|
|
def offer_trade(request, offer_id):
|
|
|
|
return 0
|