Skip to content

Instantly share code, notes, and snippets.

@andresmachado
Last active August 10, 2016 13:26
Show Gist options
  • Save andresmachado/b82568cb5f3ff73e91941cd4dea6df19 to your computer and use it in GitHub Desktop.
Save andresmachado/b82568cb5f3ff73e91941cd4dea6df19 to your computer and use it in GitHub Desktop.
class TenantFormMixin(object):
def get_context_data(self, *args, **kwargs):
context = super(TenantFormMixin, self).get_context_data(**kwargs)
context['tenant_form'] = TenantForm(prefix='tenant')
return context
def create_tenant_form(self, request, *args, **kwargs):
estate = get_object_or_404(Property, pk=self.kwargs['estate_id'])
self.tenant_form = TenantForm(self.request.POST, prefix='tenant')
if self.tenant_form.is_valid():
instance = self.tenant_form.save(commit=False)
instance.user_pf = request.user
instance.estate = estate
instance.save()
messages.success(request, 'Informações salvas.')
return self.tenant_form.is_valid()
class TenantPjFormMixin(object):
def get_context_data(self, *args, **kwargs):
context = super(TenantPjFormMixin, self).get_context_data(**kwargs)
context['tenantpj_form'] = TenantFormPj(prefix='pj')
context['partner_formset'] = PartnerFormSet(prefix='partner_formset')
return context
def create_tenantpj_form(self, request, *args, **kwargs):
estate = get_object_or_404(Property, pk=self.kwargs.get('estate_id'))
self.tenantpj_form = TenantFormPj(request.POST, prefix='pj')
if self.tenantpj_form.is_valid():
instance = self.tenantpj_form.save(commit=False)
self.partner_formset = PartnerFormSet(request.POST, instance=instance)
if self.partner_formset.is_valid():
instance.user = request.user
instance.estate = estate
instance.save()
self.partner_formset.save()
messages.success(request, 'Informações salvas')
return self.tenantpj_form.is_valid()
@method_decorator(login_required, name='dispatch')
class SendDocuments(TenantFormMixin, TenantPjFormMixin, TemplateView):
template_name = 'documentation/send_documents.html'
def get_context_data(self, *args, **kwargs):
context = super(SendDocuments, self).get_context_data(*args, **kwargs)
context['estate'] = get_object_or_404(Property, pk=self.kwargs['estate_id'])
return context
def post(self, request, *args, **kwargs):
context = self.get_context_data()
action = request.POST['action']
if 'tenant' in request.POST:
self.create_tenant_form(request)
elif 'pj' in request.POST:
self.create_tenantpj_form(request)
return self.render_to_response(context)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment