def seal(request, item_id, curr_user): """ When buyer seals the deal status = 0 -> 1 """ try: item = items.objects.get(id=item_id, is_expired=False, is_sold=False) except items.DoesNotExist: return render(request, 'error.html', {'error': 'Item Not Found'}) if request.method == 'POST': form = DealForm(request.POST) if form.is_valid() and form.cleaned_data.get('deal', False): # If sealed by buyer if item.user != curr_user.user_obj: try: comm = Comm.objects.get(buyer=curr_user.user_obj, item=item) except Comm.DoesNotExist: comm = Comm(buyer=curr_user.user_obj, item=item) comm.save() if comm.status == 0: comm.status = 1 comm.save() else: return render(request, 'error.html', {'error': 'You can\'t seal the deal now!'}) return HttpResponseRedirect(item.get_comm_url()) else: # Current user is the seller return render(request, 'error.html', {'error': 'You can\'t purchase your own item!!'}) return HttpResponseRedirect(item.get_comm_url())
def comm_item_buyer(request, item, curr_user): """ The curr_user is the seller, show him the communication interface """ if request.method == 'POST': form = CommForm(request.POST) if form.is_valid(): msg = form.cleaned_data['message'] try: comm = Comm.objects.get(buyer=curr_user.user_obj, item=item) except Comm.DoesNotExist: comm = Comm(buyer=curr_user.user_obj, item=item) comm.save() message = Messages(comm=comm, content=msg, user=curr_user.user_obj) message.save() form = CommForm() else: form = CommForm() # View Part try: comm = Comm.objects.get(buyer=curr_user.user_obj, item=item) try: ret = Messages.objects.filter(comm=comm).order_by('-time') except Messages.DoesNotExist: ret = [] except Comm.DoesNotExist: ret = [] comm = Comm(buyer=curr_user.user_obj, item=item) return render(request, 'comm.html',{'msgs': ret, 'form': form, 'DealForm': DealForm(), 'comm': comm, 'role': 'buyer', 'item': item, 'CancelForm': CancelForm()})