diff --git a/archilance/settings/base.py b/archilance/settings/base.py index a5f81b5..1d9c3e2 100644 --- a/archilance/settings/base.py +++ b/archilance/settings/base.py @@ -262,6 +262,7 @@ EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' SHELL_PLUS_POST_IMPORTS = ( # Extra auto imports 'natsort', ('archilance', 'util'), + ('django.shortcuts', 'get_object_or_404'), ('pprint', ('pprint', 'pformat')), ) diff --git a/projects/migrations/0011_merge.py b/projects/migrations/0011_merge.py new file mode 100644 index 0000000..430e4af --- /dev/null +++ b/projects/migrations/0011_merge.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-08-17 07:12 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('projects', '0010_auto_20160816_1831'), + ('projects', '0010_auto_20160816_1942'), + ] + + operations = [ + ] diff --git a/projects/templates/project_detail.html b/projects/templates/project_detail.html index 6fbd9a2..286c254 100644 --- a/projects/templates/project_detail.html +++ b/projects/templates/project_detail.html @@ -244,9 +244,11 @@

Опубликован: {{ answer.created|date:'M d, Y' }}

- - отказ - +
+ {% csrf_token %} + + отказ +
diff --git a/projects/urls.py b/projects/urls.py index 506267e..60afe07 100644 --- a/projects/urls.py +++ b/projects/urls.py @@ -4,8 +4,10 @@ from django.views.generic import TemplateView from .views import ( add_candidate, contractor_portfolio_create, + ContractorAnswerArchiveView, ContractorPortfolioTrashView, ContractorPortfolioUpdateView, + ContractorRejectProjectAnswerView, CustomerProjectCreateView, CustomerProjectDeleteView, CustomerProjectEditView, @@ -16,7 +18,6 @@ from .views import ( ProjectComparisonView, ProjectDetailWithAnswerView, ProjectFilterView, - ContractorAnswerArchiveView, sort_candidates, ) @@ -35,6 +36,7 @@ urlpatterns = [ urls.url(r'^(?P\d+)/delete/$', CustomerProjectDeleteView.as_view(), name='customer-project-delete'), urls.url(r'^create-answer-message/(?P\d+)/$', ProjectAnswerCreateMessageView.as_view(), name='create-answer-message'), + urls.url(r'^(?P\d+)/contractor-reject-project-answer/(?P\d+)/$', ContractorRejectProjectAnswerView.as_view(), name='contractor-reject-project-answer'), urls.url(r'^portfolio/create/$', contractor_portfolio_create, name='contractor-portfolio-create'), urls.url(r'^portfolio/(?P\d+)/edit/$', ContractorPortfolioUpdateView.as_view(), name='contractor-portfolio-edit'), diff --git a/projects/views.py b/projects/views.py index 4a94efa..7d4fca3 100644 --- a/projects/views.py +++ b/projects/views.py @@ -163,6 +163,56 @@ class ProjectAnswerCreateMessageView(BaseMixin, View): return redirect(redirect_to) +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) + else: + 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, ( + # '

Произошла ошибка (form)

' + # '
{form}
' + # ).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') + + redirect_to = request.POST.get('next') + return redirect(redirect_to) + + class ProjectFilterView(BaseMixin, View): template_name = 'project_filter.html' form_class = ProjectFilterForm