+
+ {% if offer.image %}
+
{% else %}
-
+
{% endif %}
-
{{ offer.title }}
+ {{ offer.title }}
-
diff --git a/pflaenzli/upload.py b/pflaenzli/upload.py
new file mode 100644
index 0000000..b05c215
--- /dev/null
+++ b/pflaenzli/upload.py
@@ -0,0 +1,11 @@
+import os
+from pathlib import Path
+from uuid import uuid4
+from django.core.files.storage import default_storage
+
+
+def generate_unique_filename(filename):
+ file_type = Path(filename).suffix
+ new_filename = default_storage.get_available_name(uuid4())
+
+ return f'{new_filename}{file_type}'
diff --git a/pflaenzli/urls.py b/pflaenzli/urls.py
index 38d7ec9..07aa4cc 100644
--- a/pflaenzli/urls.py
+++ b/pflaenzli/urls.py
@@ -7,6 +7,7 @@ from . import views
urlpatterns = [
path("", views.index, name="index"),
+ path("offers/", views.list_offers, name="list_offers"),
path("offer/create/", views.create_offer, name="create_offer"),
path("offer/
/", views.offer_detail, name="offer_detail"),
path("offer//delete", views.offer_delete, name="offer_delete"),
diff --git a/pflaenzli/views.py b/pflaenzli/views.py
index 8005aaa..82f45cb 100644
--- a/pflaenzli/views.py
+++ b/pflaenzli/views.py
@@ -1,7 +1,3 @@
-import os
-import pathlib
-import uuid
-from django.core.files.storage import default_storage
from django.shortcuts import render, get_object_or_404, redirect
from django.utils import timezone
from django.contrib import messages
@@ -9,12 +5,19 @@ from django.contrib.auth.decorators import login_required
from .forms import CreateOfferForm
from .models import Offer, Wish
+from .upload import generate_unique_filename
def index(request):
return render(request, "app/index.html")
+def list_offers(request, filters=None):
+ offers = Offer.objects.all()
+ print(offers)
+ return render(request, "offer/search.html", {"offers": offers})
+
+
@login_required
def create_offer(request):
if request.method == "POST":
@@ -22,7 +25,7 @@ def create_offer(request):
form = CreateOfferForm(request.POST, request.FILES)
if form.is_valid():
offer = form.save(commit=False)
- offer.image.name = generate_unique_filename(request.FILES['image'].name)
+ offer.image.name = generate_unique_filename(form.cleaned_data['image'].name)
offer.user = request.user
offer.save()
messages.success(request, "Offer uploaded successfully!")
@@ -33,30 +36,23 @@ def create_offer(request):
return render(request, "basic_form.html", {"form": form, "button_label": "Create"})
-@login_required
+@ login_required
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"]})
-def generate_unique_filename(filename):
- file_type = pathlib.Path(filename).suffix
- new_filename = default_storage.get_available_name(uuid.uuid4())
-
- return f'{new_filename}{file_type}'
-
-
-@login_required
+@ login_required
def offer_delete(request, offer_id):
return 0
-@login_required
+@ login_required
def offer_edit(request, offer_id):
return 0
-@login_required
+@ login_required
def offer_trade(request, offer_id):
return 0