|
|
|
|
@ -75,8 +75,6 @@ class ProjectDetailWithContractorAnswerView(BaseMixin, View): |
|
|
|
|
else: |
|
|
|
|
form = self.form_class(request=request) |
|
|
|
|
|
|
|
|
|
# import code; code.interact(local=dict(globals(), **locals())) |
|
|
|
|
|
|
|
|
|
context.update({'form': form}) |
|
|
|
|
|
|
|
|
|
return render(request, self.template_name, context) |
|
|
|
|
@ -84,8 +82,12 @@ class ProjectDetailWithContractorAnswerView(BaseMixin, View): |
|
|
|
|
def post(self, request, *args, **kwargs): |
|
|
|
|
if request.user.is_authenticated() and request.user.is_contractor(): |
|
|
|
|
context = self.get_context_data(**kwargs) |
|
|
|
|
answer_as_team = None |
|
|
|
|
|
|
|
|
|
if request.POST.get('answer_as_team') == 'on': |
|
|
|
|
if request.POST.get('answer_as_team') == 'on': # TODO: Check for actual possibility to answer as a team |
|
|
|
|
answer_as_team = True |
|
|
|
|
|
|
|
|
|
if answer_as_team: |
|
|
|
|
form = self.form_class(request.POST, request=request, answer_as_team=True) |
|
|
|
|
else: |
|
|
|
|
form = self.form_class(request.POST, request=request) |
|
|
|
|
@ -94,28 +96,20 @@ class ProjectDetailWithContractorAnswerView(BaseMixin, View): |
|
|
|
|
context.update({'project': project}) |
|
|
|
|
|
|
|
|
|
if form.is_valid(): |
|
|
|
|
print('Form valid. "form.cleaned_data": ###############') |
|
|
|
|
pprint(form.cleaned_data) |
|
|
|
|
print('################################################') |
|
|
|
|
|
|
|
|
|
# answer = form.save(commit=False) |
|
|
|
|
# answer.project = project |
|
|
|
|
# answer.author = request.user |
|
|
|
|
# answer.save() |
|
|
|
|
# form.save_m2m() |
|
|
|
|
# |
|
|
|
|
# for file in request.FILES.getlist('new_files'): |
|
|
|
|
# if len(file.name) <= 255: |
|
|
|
|
# AnswerFile.objects.create(file=file, name=file.name, answer=answer) |
|
|
|
|
answer = form.save(commit=False) |
|
|
|
|
answer.project = project |
|
|
|
|
answer.author = request.user.team if answer_as_team else request.user |
|
|
|
|
answer.save() |
|
|
|
|
form.save_m2m() |
|
|
|
|
|
|
|
|
|
for file in request.FILES.getlist('new_files'): |
|
|
|
|
if len(file.name) <= 255: |
|
|
|
|
AnswerFile.objects.create(file=file, name=file.name, answer=answer) |
|
|
|
|
|
|
|
|
|
messages.info(request, 'Отклик успешно размещён') |
|
|
|
|
redirect_to = request.POST.get('next') |
|
|
|
|
return redirect(redirect_to) |
|
|
|
|
else: |
|
|
|
|
print('Form invalid. "form.data": #####################') |
|
|
|
|
pprint(form.data) |
|
|
|
|
print('################################################') |
|
|
|
|
|
|
|
|
|
if form.errors: |
|
|
|
|
messages.info(request, ( |
|
|
|
|
'<p>Произошла ошибка (form)</p>' |
|
|
|
|
|