|
|
|
|
@ -139,10 +139,19 @@ class ProjectAnswerCreateMessageView(BaseMixin, View): |
|
|
|
|
message = form.save(commit=False) |
|
|
|
|
|
|
|
|
|
if request.user.is_contractor(): |
|
|
|
|
answer = get_object_or_404(request.user.contractor_answers, pk=kwargs.get('pk')) |
|
|
|
|
answer = get_object_or_404(Answer, pk=kwargs.get('pk')) |
|
|
|
|
|
|
|
|
|
message.answer = answer |
|
|
|
|
message.is_sender_customer = False |
|
|
|
|
message.contractor_or_team = request.user |
|
|
|
|
|
|
|
|
|
if isinstance(answer.author, User) and answer.author == request.user: |
|
|
|
|
message.contractor_or_team = request.user |
|
|
|
|
elif isinstance(answer.author, Team): |
|
|
|
|
try: team = request.user.team |
|
|
|
|
except Team.DoesNotExist: team = None |
|
|
|
|
|
|
|
|
|
if team and answer.author == team: |
|
|
|
|
message.contractor_or_team = team |
|
|
|
|
elif request.user.is_customer(): |
|
|
|
|
answer = get_object_or_404(Answer, pk=kwargs.get('pk')) # TODO: Perform additional checks |
|
|
|
|
message.answer = answer |
|
|
|
|
@ -164,8 +173,6 @@ class ProjectAnswerCreateMessageView(BaseMixin, View): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ContractorRejectProjectAnswerView(BaseMixin, View): |
|
|
|
|
# form_class = ContractorRejectProjectAnswerForm |
|
|
|
|
|
|
|
|
|
def dispatch(self, request, *args, **kwargs): |
|
|
|
|
if request.user.is_authenticated() and request.user.is_contractor(): |
|
|
|
|
return super().dispatch(request, *args, **kwargs) |
|
|
|
|
@ -173,41 +180,31 @@ class ContractorRejectProjectAnswerView(BaseMixin, View): |
|
|
|
|
return HttpResponseForbidden('403 Forbidden') |
|
|
|
|
|
|
|
|
|
def post(self, request, *args, **kwargs): |
|
|
|
|
# form = self.form_class(request.POST, request=request) |
|
|
|
|
# |
|
|
|
|
# if form.is_valid(): |
|
|
|
|
# message = form.save(commit=False) |
|
|
|
|
# |
|
|
|
|
# if request.user.is_contractor(): |
|
|
|
|
# answer = get_object_or_404(request.user.contractor_answers, pk=kwargs.get('pk')) |
|
|
|
|
# message.answer = answer |
|
|
|
|
# message.is_sender_customer = False |
|
|
|
|
# message.contractor_or_team = request.user |
|
|
|
|
# elif request.user.is_customer(): |
|
|
|
|
# answer = get_object_or_404(Answer, pk=kwargs.get('pk')) # TODO: Perform additional checks |
|
|
|
|
# message.answer = answer |
|
|
|
|
# message.is_sender_customer = True |
|
|
|
|
# |
|
|
|
|
# message.save() |
|
|
|
|
# form.save_m2m() |
|
|
|
|
# |
|
|
|
|
# messages.info(request, 'Сообщение успешно размещено') |
|
|
|
|
# else: |
|
|
|
|
# if form.errors: |
|
|
|
|
# messages.info(request, ( |
|
|
|
|
# '<p>Произошла ошибка (form)</p>' |
|
|
|
|
# '<pre>{form}</pre>' |
|
|
|
|
# ).format(form=pformat(form.errors))) |
|
|
|
|
|
|
|
|
|
# contractor = request.user |
|
|
|
|
# |
|
|
|
|
# projects = contractor.projects |
|
|
|
|
# |
|
|
|
|
# contractor.contractor_answers.filter(project=project).first() |
|
|
|
|
# |
|
|
|
|
# project = get_object_or_404(request.user.contractor_answers, pk=kwargs.get('pk')) |
|
|
|
|
|
|
|
|
|
messages.info(request, 'OKOK') |
|
|
|
|
answer = get_object_or_404(request.user.contractor_answers, pk=kwargs.get('pk')) |
|
|
|
|
answer.delete() |
|
|
|
|
|
|
|
|
|
messages.info(request, 'Вы успешно отказались от проекта') |
|
|
|
|
|
|
|
|
|
redirect_to = request.POST.get('next') |
|
|
|
|
return redirect(redirect_to) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CustomerRejectProjectAnswerView(BaseMixin, View): |
|
|
|
|
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 post(self, request, *args, **kwargs): |
|
|
|
|
answer_id = kwargs.get('pk') |
|
|
|
|
|
|
|
|
|
project = get_object_or_404(request.user.projects, answers__pk=answer_id) |
|
|
|
|
answer = get_object_or_404(project.answers, pk=answer_id) |
|
|
|
|
|
|
|
|
|
answer.delete() |
|
|
|
|
|
|
|
|
|
messages.info(request, 'Вы успешно отказали пользователю в проекте') |
|
|
|
|
|
|
|
|
|
redirect_to = request.POST.get('next') |
|
|
|
|
return redirect(redirect_to) |
|
|
|
|
|