Add order respondes

This commit is contained in:
2022-10-03 01:41:53 +03:00
parent 9a1b0f7d5a
commit 6f70716f0a
12 changed files with 258 additions and 50 deletions

View File

@@ -1,5 +1,9 @@
import traceback
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse
from .forms import *
from django.contrib.auth.decorators import login_required
@@ -37,7 +41,49 @@ def order_create(request):
@login_required
def order_view(request, order_id):
order = Order.get_all_for_user(request.user)
order = order.select_related('address_city').get(id=order_id)
images = OrderImage.objects.filter(order=order)
return render(request, 'orders/order-view.html', {"order": order, "images": images})
render_vars = {}
try:
order = Order.get_all_for_user(request.user)
order = order.select_related('address_city').get(id=order_id)
render_vars["order"] = order
render_vars["images"] = OrderImage.objects.filter(order=order)
render_vars["can_responde"] = order.owner_id != request.user.id
if render_vars["can_responde"]:
render_vars["respondes_count"] = OrderRespond.objects.filter(order_id=order_id).count()
render_vars["is_responde"] = OrderRespond.objects.filter(user_id=request.user.id, order_id=order_id).count() > 0
render_vars["respond_users"] = OrderRespond.objects.filter(order_id=order_id).\
select_related('user').order_by('create_time')
except Exception:
traceback.print_exc()
render_vars["order"] = None
return render(request, 'orders/order-view.html', render_vars)
@login_required
def order_respond(request, order_id):
try:
if request.method == 'POST':
action = None
if "action" in request.POST:
action = request.POST["action"]
else:
print("order_respond: no action param found!")
if action == "respond":
r = OrderRespond(order_id=order_id, user=request.user)
r.save()
print("order_respond: save respond!")
if action == "unrespond":
OrderRespond.objects.filter(order_id=order_id, user=request.user).delete()
except Exception:
traceback.print_exc()
return HttpResponseRedirect(f'/orders/view/{order_id}')