|
|
|
|
@ -572,8 +572,8 @@ class CustomerProjectEditView(BaseMixin, View): |
|
|
|
|
if form.is_valid() and realty_form.is_valid(): |
|
|
|
|
project = form.save(commit=False) |
|
|
|
|
project.customer = request.user |
|
|
|
|
project.files = form.cleaned_data.get( |
|
|
|
|
'files') # TODO: Should we somehow get rid of this explicit assignment? |
|
|
|
|
# print("files = ", form.cleaned_data.get('files')) |
|
|
|
|
project.files = form.cleaned_data.get('files') |
|
|
|
|
project.save() |
|
|
|
|
form.save_m2m() |
|
|
|
|
|
|
|
|
|
@ -938,7 +938,14 @@ class ContractorPortfolioEditView(BaseMixin, View): |
|
|
|
|
work_type_suggestion_form = ProjectWorkTypeSuggestionForm |
|
|
|
|
template_name = 'portfolio_create_edit.html' |
|
|
|
|
|
|
|
|
|
def dispatch(self, request, *args, **kwargs): |
|
|
|
|
if request.user.is_authenticated() and request.user.is_contractor(): |
|
|
|
|
return super().dispatch(request, *args, **kwargs) |
|
|
|
|
else: |
|
|
|
|
raise PermissionDenied |
|
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
print("request.GET = ", request.GET) |
|
|
|
|
portfolio = get_object_or_404(Portfolio, pk=kwargs.get('pk')) |
|
|
|
|
form = self.form_class(instance=portfolio, request=request) |
|
|
|
|
work_type_suggestion_form = self.work_type_suggestion_form(request=request, prefix='work_type_suggestion') |
|
|
|
|
@ -953,60 +960,33 @@ class ContractorPortfolioEditView(BaseMixin, View): |
|
|
|
|
return render(request, self.template_name, context) |
|
|
|
|
|
|
|
|
|
def post(self, request, *args, **kwargs): |
|
|
|
|
# print("request.POST = ", request.POST) |
|
|
|
|
project = get_object_or_404(request.user.customer_projects, pk=kwargs.get('pk')) |
|
|
|
|
form = self.form_class(request.POST, request.FILES, request=request, instance=project) |
|
|
|
|
|
|
|
|
|
form.is_valid() |
|
|
|
|
realty = form.cleaned_data.get('realty') |
|
|
|
|
|
|
|
|
|
if realty: |
|
|
|
|
realty_form = self.realty_form(request.POST, instance=realty, request=request, prefix='realty_form') |
|
|
|
|
else: |
|
|
|
|
realty_form = self.realty_form(request.POST, request=request, prefix='realty_form') |
|
|
|
|
print("request.POST = ", request.POST) |
|
|
|
|
portfolio = get_object_or_404(Portfolio, pk=kwargs.get('pk')) |
|
|
|
|
form = self.form_class(request.POST, request.FILES, request=request, instance=portfolio) |
|
|
|
|
|
|
|
|
|
if form.is_valid() and realty_form.is_valid(): |
|
|
|
|
project = form.save(commit=False) |
|
|
|
|
project.customer = request.user |
|
|
|
|
project.files = form.cleaned_data.get( |
|
|
|
|
'files') # TODO: Should we somehow get rid of this explicit assignment? |
|
|
|
|
project.save() |
|
|
|
|
if form.is_valid(): |
|
|
|
|
portfolio = form.save(commit=False) |
|
|
|
|
portfolio.user = request.user |
|
|
|
|
print("clean photos = ", form.cleaned_data.get('photos')) |
|
|
|
|
portfolio.photos = form.cleaned_data.get('photos') |
|
|
|
|
portfolio.save() |
|
|
|
|
form.save_m2m() |
|
|
|
|
|
|
|
|
|
for file in request.FILES.getlist('new_files'): |
|
|
|
|
ProjectFile.objects.create(file=file, project=project) |
|
|
|
|
|
|
|
|
|
if not realty: |
|
|
|
|
realty = realty_form.save(commit=False) |
|
|
|
|
realty.user = request.user |
|
|
|
|
if not request.POST.get('new_realty_name'): |
|
|
|
|
realty.is_virtual = True |
|
|
|
|
realty.name = request.POST.get('new_realty_name') |
|
|
|
|
realty.save() |
|
|
|
|
realty_form.save_m2m() |
|
|
|
|
|
|
|
|
|
project.realty = realty # Connect a realty with a project |
|
|
|
|
project.save() |
|
|
|
|
PortfolioPhoto.objects.create(img=file, portfolio=portfolio) |
|
|
|
|
|
|
|
|
|
messages.info(request, 'Проект успешно отредактирован') |
|
|
|
|
# redirect_to = request.POST.get('back') |
|
|
|
|
redirect_to = reverse('projects:detail', kwargs={'pk': project.pk}) |
|
|
|
|
messages.info(request, 'Портфолио успешно создано') |
|
|
|
|
redirect_to = reverse('projects:contractor-portfolio-detail', kwargs={'pk': portfolio.pk}) |
|
|
|
|
if request.is_ajax(): |
|
|
|
|
return JsonResponse({'redirect_to': redirect_to}, status=200) |
|
|
|
|
return redirect(redirect_to) |
|
|
|
|
else: |
|
|
|
|
if form.errors: |
|
|
|
|
messages.info(request, ( |
|
|
|
|
'<p>Произошла ошибка (form)</p>' |
|
|
|
|
'<pre>{form}</pre>' |
|
|
|
|
).format(form=pformat(form.errors))) |
|
|
|
|
|
|
|
|
|
if realty_form and realty_form.errors: |
|
|
|
|
messages.info(request, ( |
|
|
|
|
'<p>Произошла ошибка (realty_form)</p>' |
|
|
|
|
'<pre>{realty_form}</pre>' |
|
|
|
|
).format(realty_form=pformat(realty_form.errors))) |
|
|
|
|
|
|
|
|
|
context = self.get_context_data(**kwargs) |
|
|
|
|
context.update({'form': form, 'realty_form': realty_form}) |
|
|
|
|
context.update({'form': form}) |
|
|
|
|
if request.is_ajax(): |
|
|
|
|
data = json.dumps(form.errors) |
|
|
|
|
print("form errors = ", data) |
|
|
|
|
return HttpResponse(content=data, status=400, content_type='application/json') |
|
|
|
|
return render(request, self.template_name, context) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|