|
|
|
|
@ -35,10 +35,10 @@ from .forms import ( |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProjectView(BaseMixin, View): |
|
|
|
|
template_name = 'project_detail.html' |
|
|
|
|
class ProjectDetailWithContractorAnswerView(BaseMixin, View): |
|
|
|
|
form_class = ContractorProjectAnswerForm |
|
|
|
|
|
|
|
|
|
template_name = 'project_detail.html' |
|
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
context = self.get_context_data(**_.merge({}, request.GET, kwargs)) |
|
|
|
|
|
|
|
|
|
@ -50,11 +50,39 @@ class ProjectView(BaseMixin, View): |
|
|
|
|
# import code; code.interact(local=dict(globals(), **locals())) |
|
|
|
|
|
|
|
|
|
if request.user.is_authenticated() and request.user.is_contractor(): |
|
|
|
|
form = self.form_class() |
|
|
|
|
form = self.form_class(request=request) |
|
|
|
|
context.update({'form': form}) |
|
|
|
|
|
|
|
|
|
return render(request, self.template_name, context) |
|
|
|
|
|
|
|
|
|
def post(self, request, *args, **kwargs): |
|
|
|
|
if request.user.is_authenticated() and request.user.is_contractor(): |
|
|
|
|
context = self.get_context_data(**kwargs) |
|
|
|
|
form = self.form_class(request.POST, request=request) |
|
|
|
|
|
|
|
|
|
project = get_object_or_404(Project, pk=kwargs.get('pk')) |
|
|
|
|
context.update({'project': project}) |
|
|
|
|
|
|
|
|
|
if form.is_valid(): |
|
|
|
|
print('###############################################') |
|
|
|
|
pprint(form.cleaned_data) |
|
|
|
|
print('###############################################') |
|
|
|
|
|
|
|
|
|
messages.info(request, 'Форма ОК') |
|
|
|
|
redirect_to = request.POST.get('next') |
|
|
|
|
return redirect(redirect_to) |
|
|
|
|
else: |
|
|
|
|
if form.errors: |
|
|
|
|
messages.info(request, ( |
|
|
|
|
'<p>Произошла ошибка (form)</p>' |
|
|
|
|
'<pre>{form}</pre>' |
|
|
|
|
).format(form=pformat(form.errors))) |
|
|
|
|
|
|
|
|
|
context.update({'form': form}) |
|
|
|
|
return render(request, self.template_name, context) |
|
|
|
|
else: |
|
|
|
|
return HttpResponseForbidden('403 Forbidden') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProjectFilterView(BaseMixin, View): |
|
|
|
|
template_name = 'project_filter.html' |
|
|
|
|
@ -325,49 +353,6 @@ class CustomerProjectEditView(BaseMixin, View): |
|
|
|
|
return render(request, self.template_name, context) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ContractorProjectAnswerView(BaseMixin, View): |
|
|
|
|
form_class = ContractorProjectAnswerForm |
|
|
|
|
|
|
|
|
|
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, req, *args, **kwargs): |
|
|
|
|
form = self.form_class(_.merge({}, req.POST, kwargs), req=req) |
|
|
|
|
|
|
|
|
|
if form.is_valid(): |
|
|
|
|
project = form.cleaned_data.get('pk') |
|
|
|
|
project.state = 'trashed' |
|
|
|
|
project.save() |
|
|
|
|
|
|
|
|
|
messages.info(req, 'OK') |
|
|
|
|
else: |
|
|
|
|
messages.info(req, 'Произошла ошибка: <pre>{msg}</pre>'.format(msg=pformat(form.errors))) |
|
|
|
|
|
|
|
|
|
redirect_to = req.POST.get('next') |
|
|
|
|
return redirect(redirect_to) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# def post(self, request, *args, **kwargs): |
|
|
|
|
# form = self.form_class(request.POST) |
|
|
|
|
# project = get_object_or_404(Project, pk=kwargs.get('pk')) |
|
|
|
|
# if form.is_valid(): |
|
|
|
|
# answer = form.save(commit=False) |
|
|
|
|
# answer.contractor = request.user |
|
|
|
|
# answer.project = project |
|
|
|
|
# answer.save() |
|
|
|
|
# return HttpResponseRedirect(reverse('projects:detail', kwargs={'pk': project.pk})) |
|
|
|
|
# return render(request, self.template_name, {'project': project, 'form': self.form_class}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PortfolioTrashView(View): |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CustomerProjectTrashView(View): |
|
|
|
|
form_class = CustomerProjectTrashForm |
|
|
|
|
|
|
|
|
|
|