diff --git a/projects/views.py b/projects/views.py index 77bbc1b..0c5d098 100644 --- a/projects/views.py +++ b/projects/views.py @@ -9,7 +9,7 @@ from django.db.models import Q, F from django.http import HttpResponseForbidden, HttpResponseRedirect, HttpResponse, Http404 from django.shortcuts import render, get_object_or_404, redirect from django.views.generic import ListView, DetailView, CreateView, DeleteView, View, UpdateView, TemplateView, FormView -from django.views.generic.base import ContextMixin + from hitcount.models import HitCount from hitcount.views import HitCountMixin from pprint import pprint, pformat @@ -643,9 +643,29 @@ def sort_candidates(request): class OfferOrderView(View): template_name = 'chattest.html' - def post(self,request, *args, **kwargs): - print("Add chat") - return HttpResponseRedirect(reverse('chat:chat-user')) + def post(self, request, *args, **kwargs): + project_id = kwargs.get('project_id') + answer_id = kwargs.get('answer_id') + try: + project = Project.objects.get(pk=project_id) + except Project.DoesNotExist: + project = None + try: + answer = Answer.objects.get(pk=answer_id) + except Answer.DoesNotExist: + answer = None + + order = project.order + if not order.contractor and not order.team: + if isinstance(answer.author, User): + order.contractor = answer.author + order.save() + elif isinstance(answer.author, Team): + order.team = answer.author + order.save() + + redirect_url = reverse('chat:chat-user') + '?order_id=' + str(order.pk) + return HttpResponseRedirect(redirect_url) def contractor_portfolio_create(request): diff --git a/wallets/views.py b/wallets/views.py index c0ded78..e5a11f8 100644 --- a/wallets/views.py +++ b/wallets/views.py @@ -32,13 +32,7 @@ class ScoreDetailView(DetailView): class ScoreView(View): template_name = 'score-detail.html' - - def dispatch(self, request, *args, **kwargs): - if request.user.is_authenticated() and request.user.is_customer(): - return super().dispatch(request, *args, **kwargs) - else: - return HttpResponseForbidden('403 Forbidden') - + def get(self, request, *args, **kwargs): # transaction = Transaction.objects.get_or_create(customer=request.user, complete=False) transaction = Transaction.objects.create(customer=request.user,type='add')