@ -17,60 +17,26 @@ from .forms import (
ContractorProjectAnswerForm ,
ContractorProjectAnswerForm ,
CustomerProjectCreateForm ,
CustomerProjectCreateForm ,
PortfolioForm ,
PortfolioForm ,
ProjectDeleteForm ,
Customer ProjectDeleteForm,
ProjectEditForm ,
Customer ProjectEditForm,
ProjectRestoreForm ,
Customer ProjectRestoreForm,
ProjectTrashForm ,
Customer ProjectTrashForm,
RealtyForm ,
RealtyForm ,
)
)
# class CustomerProjectCreateView(PermissionRequiredMixin, View):
# permission_required = ('projects.add_project',)
# form_realty = RealtyForm
# form_project = CustomerProjectCreateForm
# raise_exception = True
# permission_denied_message = 'Вы не можете выполнить это действие'
# template_name = 'customer_project_create.html'
#
# def get(self, request, *args, **kwargs):
# form_project = self.form_project()
# form_realty = self.form_realty(prefix='form_2')
# realty_list = Realty.objects.all()
# return render(request, self.template_name, {'form_project': form_project,
# 'form_realty': form_realty,
# 'realty_list': realty_list})
#
# def post(self, request, *args, **kwargs):
# form_project = self.form_project(request.POST)
# form_realty = self.form_realty(request.POST, prefix='form_2')
# if form_project.is_valid() and form_realty.is_valid():
# return self.form_valid(request, form_project, form_realty)
# return render(request, self.template_name, {'form_project': form_project, 'form_realty': form_realty})
#
#
# def form_valid(self, request, form_project, form_realty):
# realty = form_realty.save(commit=False)
# realty.user = request.user
# realty.save()
# project = form_project.save(commit=False)
# project.customer = request.user
# project.realty = realty
# project.save()
#
# return HttpResponseRedirect('/projects/')
class CustomerProjectCreateView ( BaseMixin , View ) :
class CustomerProjectCreateView ( BaseMixin , View ) :
form_class = CustomerProjectCreateForm
form_class = CustomerProjectCreateForm
realty_form = RealtyForm
template_name = ' customer_project_create.html '
template_name = ' customer_project_create.html '
def get ( self , request , * args , * * kwargs ) :
def get ( self , request , * args , * * kwargs ) :
if request . user . is_authenticated ( ) and request . user . is_customer ( ) :
if request . user . is_authenticated ( ) and request . user . is_customer ( ) :
form = self . form_class ( request = request )
form = self . form_class ( request = request )
realty_form = self . realty_form ( request = request )
context = self . get_context_data ( * * _ . merge ( { } , request . GET , kwargs ) )
context = self . get_context_data ( * * _ . merge ( { } , request . GET , kwargs ) )
context . update ( { ' form ' : form } )
context . update ( { ' form ' : form , ' realty_form ' : realty_form } )
return render ( request , self . template_name , context )
return render ( request , self . template_name , context )
else :
else :
@ -78,22 +44,48 @@ class CustomerProjectCreateView(BaseMixin, View):
def post ( self , request , * args , * * kwargs ) :
def post ( self , request , * args , * * kwargs ) :
if request . user . is_authenticated ( ) and request . user . is_customer ( ) :
if request . user . is_authenticated ( ) and request . user . is_customer ( ) :
form = self . form_class ( _ . merge ( { } , request . POST , kwargs ) , request = request )
form = self . form_class ( request . POST , request = request )
if form . is_valid ( ) :
form . is_valid ( )
realty = form . cleaned_data . get ( ' realty ' )
if realty :
realty_form = self . realty_form ( request . POST , instance = realty , request = request )
else :
realty_form = self . realty_form ( request . POST , request = request )
if form . is_valid ( ) and realty_form . is_valid ( ) :
project = form . save ( commit = False )
project = form . save ( commit = False )
project . customer = request . user
project . customer = request . user
project . save ( )
project . save ( )
form . save_m2m ( )
form . save_m2m ( )
if realty :
realty_form . save ( )
else :
realty = realty_form . save ( commit = False )
realty . user = request . user
realty . save ( )
realty_form . save_m2m ( )
messages . info ( request , ' Проект успешно создан ' )
messages . info ( request , ' Проект успешно создан ' )
redirect_to = reverse ( ' projects:detail ' , kwargs = { ' pk ' : project . pk } )
redirect_to = reverse ( ' projects:detail ' , kwargs = { ' pk ' : project . pk } )
return redirect ( redirect_to )
return redirect ( redirect_to )
else :
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 = self . get_context_data ( * * kwargs )
context . update ( { ' form ' : form } )
context . update ( { ' form ' : form , ' realty_form ' : realty_form } )
messages . info ( request , ' Произошла ошибка: <pre> {msg} </pre> ' . format ( msg = pformat ( form . errors ) ) )
return render ( request , self . template_name , context )
return render ( request , self . template_name , context )
else :
else :
return HttpResponseForbidden ( ' 403 Forbidden ' )
return HttpResponseForbidden ( ' 403 Forbidden ' )
@ -109,25 +101,19 @@ class ProjectView(BaseMixin, View):
customer_template_name = ' customer_project_detail.html '
customer_template_name = ' customer_project_detail.html '
def get ( self , request , * args , * * kwargs ) :
def get ( self , request , * args , * * kwargs ) :
# import code; code.interact(local=dict(globals(), **locals()))
project = get_object_or_404 ( Project , pk = kwargs . get ( ' pk ' ) )
context = self . get_context_data ( * * _ . merge ( { } , request . GET , kwargs ) )
context . update ( { ' project ' : project } )
if request . user . is_authenticated ( ) and request . user . is_customer ( ) :
if request . user . is_authenticated ( ) and request . user . is_customer ( ) :
project = get_object_or_404 ( Project , pk = kwargs . get ( ' pk ' ) )
context = self . get_context_data ( * * _ . merge ( { } , request . GET , kwargs ) )
context . update ( { ' project ' : project } )
return render ( request , self . customer_template_name , context )
return render ( request , self . customer_template_name , context )
else :
else :
project = get_object_or_404 ( Project , pk = kwargs . get ( ' pk ' ) )
context = self . get_context_data ( * * _ . merge ( { } , request . GET , kwargs ) )
context . update ( { ' project ' : project } )
return render ( request , self . template_name , context )
return render ( request , self . template_name , context )
class CustomerProjectEditView ( BaseMixin , View ) :
class CustomerProjectEditView ( BaseMixin , View ) :
form_class = ProjectEditForm
form_class = CustomerProjectEditForm
template_name = ' customer_project_edit_test.html ' # 'customer_project_edit.html'
template_name = ' customer_project_edit_test.html ' # 'customer_project_edit.html'
def get ( self , req , * args , * * kwargs ) :
def get ( self , req , * args , * * kwargs ) :
@ -185,7 +171,7 @@ class ContractorProjectAnswerView(BaseMixin, View):
class CustomerProjectTrashView ( View ) :
class CustomerProjectTrashView ( View ) :
form_class = ProjectTrashForm
form_class = Customer ProjectTrashForm
def post ( self , req , * args , * * kwargs ) :
def post ( self , req , * args , * * kwargs ) :
if req . user . is_authenticated ( ) :
if req . user . is_authenticated ( ) :
@ -207,7 +193,7 @@ class CustomerProjectTrashView(View):
class CustomerProjectRestoreView ( View ) :
class CustomerProjectRestoreView ( View ) :
form_class = ProjectRestoreForm
form_class = Customer ProjectRestoreForm
def post ( self , req , * args , * * kwargs ) :
def post ( self , req , * args , * * kwargs ) :
if req . user . is_authenticated ( ) :
if req . user . is_authenticated ( ) :
@ -229,7 +215,7 @@ class CustomerProjectRestoreView(View):
class CustomerProjectDeleteView ( View ) :
class CustomerProjectDeleteView ( View ) :
form_class = ProjectDeleteForm
form_class = Customer ProjectDeleteForm
def post ( self , req , * args , * * kwargs ) :
def post ( self , req , * args , * * kwargs ) :
if req . user . is_authenticated ( ) :
if req . user . is_authenticated ( ) :