Browse Source

WIP

pull/264/head
Edward Ribeiro 10 years ago
parent
commit
8318d9f4d4
  1. 126
      parlamentares/forms.py
  2. 486
      parlamentares/views.py

126
parlamentares/forms.py

@ -266,6 +266,66 @@ class FiliacaoForm(ModelForm):
'data', 'data',
'data_desfiliacao'] 'data_desfiliacao']
# def clean(self):
# cleaned_data = super(FiliacaoForm, self).clean()
#
# data_filiacao = cleaned_data['data']
# data_desfiliacao = cleaned_data['data_desfiliacao']
#
# # Dá erro caso a data de desfiliação seja anterior a de filiação
# if data_desfiliacao and data_desfiliacao < data_filiacao:
# error_msg = _("A data de filiação não pode anterior \
# à data de desfiliação")
# raise forms.ValidationError(error_msg)
# return cleaned_data
#
# filiacao = self.instance
# parlamentar = filiacao.parlamentar
#
# # Esse bloco garante que não haverá intersecção entre os
# # períodos de filiação
# id_filiacao_atual = filiacao.pk
# todas_filiacoes = parlamentar.filiacao_set.all()
#
# # Nenhuma filiacao
# if not todas_filiacoes:
# return cleaned_data
#
# error_msg = None
# for filiacoes in todas_filiacoes:
# if filiacoes.id != id_filiacao_atual:
#
# data_init = filiacoes.data
# data_fim = filiacoes.data_desfiliacao
#
# if data_init <= data_filiacao < data_fim:
#
# error_msg = _("A data de filiação e \
# desfiliação não podem estar no intervalo \
# de outro período de filiação")
# break
#
# if (data_desfiliacao and
# data_init < data_desfiliacao < data_fim):
#
# error_msg = _("A data de filiação e \
# desfiliação não podem estar no intervalo \
# de outro período de filiação")
# break
#
# if (data_desfiliacao and
# data_filiacao <= data_init and
# data_desfiliacao >= data_fim):
#
# error_msg = _("A data de filiação e \
# desfiliação não podem estar no intervalo \
# de outro período de filiação")
# break
#
# if error_msg:
# raise forms.ValidationError(error_msg)
#
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
row1 = crispy_layout_mixin.to_row( row1 = crispy_layout_mixin.to_row(
@ -293,3 +353,69 @@ class FiliacaoEditForm(FiliacaoForm):
HTML('&nbsp;'), HTML('&nbsp;'),
Submit('excluir', 'Excluir', Submit('excluir', 'Excluir',
css_class='btn btn-primary')]) css_class='btn btn-primary')])
# def clean(self):
# cleaned_data = super(FiliacaoEditForm, self).clean()
#
# data_filiacao = cleaned_data['data']
# data_desfiliacao = cleaned_data['data_desfiliacao']
#
# # Dá erro caso a data de desfiliação seja anterior a de filiação
# if data_desfiliacao and data_desfiliacao < data_filiacao:
# error_msg = _("A data de filiação não pode anterior \
# à data de desfiliação")
# raise forms.ValidationError(error_msg)
#
# return cleaned_data
#
# filiacao = self.instance
# parlamentar = Parlamentar.objects.get(pk=self.kwargs['pk'])
#
# # Esse bloco garante que não haverá intersecção entre os
# # períodos de filiação
# id_filiacao_atual = filiacao.pk
# todas_filiacoes = parlamentar.filiacao_set.all()
#
# # ainda filiado
# for f in todas_filiacoes:
# if not f.data_desfiliacao:
# error_msg = _("O parlamentar não pode se filiar a algum partido \
# sem antes se desfiliar do partido anterior")
# raise forms.ValidationError(error_msg)
#
# # Esse bloco garante que não haverá intersecção entre os
# # períodos de filiação
# error_msg = None
# for filiacoes in todas_filiacoes:
# if filiacoes.id != id_filiacao_atual:
#
# data_init = filiacoes.data
# data_fim = filiacoes.data_desfiliacao
#
# if data_init <= data_filiacao < data_fim:
#
# error_msg = _("A data de filiação e \
# desfiliação não podem estar no intervalo \
# de outro período de filiação")
# break
#
# if (data_desfiliacao and
# data_init < data_desfiliacao < data_fim):
#
# error_msg = _("A data de filiação e \
# desfiliação não podem estar no intervalo \
# de outro período de filiação")
# break
#
# if (data_desfiliacao and
# data_filiacao <= data_init and
# data_desfiliacao >= data_fim):
#
# error_msg = _("A data de filiação e \
# desfiliação não podem estar no intervalo \
# de outro período de filiação")
# break
#
# if error_msg:
# raise forms.ValidationError(error_msg)
#

486
parlamentares/views.py

@ -128,49 +128,30 @@ class ParlamentaresCadastroView(CreateView):
return HttpResponseRedirect(self.get_success_url()) return HttpResponseRedirect(self.get_success_url())
class ParlamentaresEditarView(FormView): class ParlamentaresEditarView(UpdateView):
template_name = "parlamentares/parlamentares_cadastro.html" template_name = "parlamentares/parlamentares_cadastro.html"
form_class = ParlamentaresEditForm
model = Parlamentar
success_url = reverse_lazy('parlamentares')
def get_success_url(self): def form_valid(self, form):
return reverse('parlamentares') parlamentar = form.instance
if 'salvar' in self.request.POST:
def get(self, request, *args, **kwargs): form.save()
pk = kwargs['pk'] elif 'excluir' in self.request.POST:
parlamentar = Parlamentar.objects.get(pk=pk) Mandato.objects.get(parlamentar=parlamentar).delete()
form = ParlamentaresEditForm(instance=parlamentar) parlamentar.delete()
return self.render_to_response( elif "remover-foto" in self.request.POST:
{'form': form, 'object': parlamentar}) try:
os.unlink(parlamentar.fotografia.path)
def post(self, request, *args, **kwargs): except OSError:
pk = kwargs['pk'] pass # Should log this error!!!!!
parlamentar = Parlamentar.objects.get(pk=pk) parlamentar.fotografia = None
form = ParlamentaresEditForm(request.POST, instance=parlamentar) parlamentar.save()
return HttpResponseRedirect(self.get_success_url())
if form.is_valid():
if 'salvar' in request.POST:
parlamentar = form.save(commit=False)
if 'fotografia' in request.FILES:
parlamentar.fotografia = request.FILES['fotografia']
parlamentar.biografia = form.data['biografia']
parlamentar.save()
elif 'excluir' in request.POST:
Mandato.objects.get(parlamentar=parlamentar).delete()
parlamentar.delete()
elif "remover" in request.POST:
try:
os.unlink(parlamentar.fotografia.path)
except OSError:
pass # Should log this error!!!!!
parlamentar = form.save(commit=False)
parlamentar.fotografia = None
parlamentar.save()
return self.form_valid(form)
else:
return self.render_to_response({'form': form})
class ParlamentaresDependentesView(CreateView): class ParlamentaresDependentesView(CreateView):
template_name = "parlamentares/parlamentares_dependentes.html" template_name = "parlamentares/parlamentares_dependentes.html"
form_class = DependenteForm form_class = DependenteForm
model = Dependente model = Dependente
@ -180,15 +161,17 @@ class ParlamentaresDependentesView(CreateView):
return reverse('parlamentares_dependentes', kwargs={'pk': pk}) return reverse('parlamentares_dependentes', kwargs={'pk': pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ParlamentaresDependentesView, self).get_context_data(**kwargs) context = super(ParlamentaresDependentesView, self).\
get_context_data(**kwargs)
pk = self.kwargs['pk'] pk = self.kwargs['pk']
parlamentar = Parlamentar.objects.get(pk=pk) parlamentar = Parlamentar.objects.get(pk=pk)
dependentes = Dependente.objects.filter( dependentes = Dependente.objects.filter(
parlamentar=parlamentar).order_by('nome', 'tipo') parlamentar=parlamentar).order_by('nome', 'tipo')
# precisa de legislatura_id???
context.update({'object': parlamentar, context.update({'object': parlamentar,
'dependentes': dependentes, 'dependentes': dependentes,
'legislatura_id': parlamentar.mandato_set.last().legislatura.id}) # precisa de legislatura_id???
'legislatura_id':
parlamentar.mandato_set.last().legislatura.id})
return context return context
def form_valid(self, form): def form_valid(self, form):
@ -210,30 +193,28 @@ class ParlamentaresDependentesEditView(UpdateView):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_dependentes', kwargs={'pk': pk}) return reverse('parlamentares_dependentes', kwargs={'pk': pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ParlamentaresDependentesEditView, self).get_context_data(**kwargs) context = super(ParlamentaresDependentesEditView, self).\
get_context_data(**kwargs)
parlamentar = Parlamentar.objects.get(id=self.kwargs['pk']) parlamentar = Parlamentar.objects.get(id=self.kwargs['pk'])
context.update({ context.update({
'object': parlamentar, 'object': parlamentar,
'legislatura_id': parlamentar.mandato_set.last( 'legislatura_id': parlamentar.mandato_set.last(
).legislatura_id} ).legislatura_id})
)
return context return context
def form_valid(self, form): def form_valid(self, form):
if 'salvar' in request.POST: if 'salvar' in self.request.POST:
form.save() form.save()
elif 'excluir' in request.POST: elif 'excluir' in self.request.POST:
dependente = form.instance dependente = form.instance
dependente.delete() dependente.delete()
return HttpResponseRedirect(self.get_success_url())
class MesaDiretoraView(FormView): class MesaDiretoraView(FormView):
template_name = "mesa_diretora/mesa_diretora.html" template_name = "mesa_diretora/mesa_diretora.html"
success_url = reverse_lazy('mesa_diretora')
def get_success_url(self):
return reverse('mesa_diretora')
# Essa função avisa quando se pode compor uma Mesa Legislativa) # Essa função avisa quando se pode compor uma Mesa Legislativa)
def validation(self, request): def validation(self, request):
@ -299,6 +280,7 @@ class MesaDiretoraView(FormView):
composicao.save() composicao.save()
return self.form_valid(form=None) return self.form_valid(form=None)
elif 'Excluir' in request.POST: elif 'Excluir' in request.POST:
if (not Legislatura.objects.all() or if (not Legislatura.objects.all() or
@ -344,320 +326,202 @@ class MesaDiretoraView(FormView):
}) })
class FiliacaoView(FormView): class FiliacaoView(CreateView):
template_name = "parlamentares/parlamentares_filiacao.html" template_name = "parlamentares/parlamentares_filiacao.html"
form_class = FiliacaoForm
model = Filiacao
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_filiacao', kwargs={'pk': pk}) return reverse('parlamentares_filiacao', kwargs={'pk': pk})
def get(self, request, *args, **kwargs): def get_context_data(self, **kwargs):
pid = kwargs['pk'] context = super(FiliacaoView, self).get_context_data(**kwargs)
pid = self.kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid) parlamentar = Parlamentar.objects.get(id=pid)
filiacoes = Filiacao.objects.filter(
parlamentar=parlamentar)
form = FiliacaoForm()
return self.render_to_response(
{'object': parlamentar,
'filiacoes': filiacoes,
'form': form,
'legislatura_id': parlamentar.mandato_set.last().legislatura.id})
# Função usada para todos os caso de erro na filiação
def error_message(self, parlamentar, form, mensagem, request):
filiacoes = Filiacao.objects.filter(parlamentar=parlamentar) filiacoes = Filiacao.objects.filter(parlamentar=parlamentar)
messages.add_message(request, messages.INFO, mensagem) context.update(
return self.render_to_response(
{'object': parlamentar, {'object': parlamentar,
'filiacoes': filiacoes, 'filiacoes': filiacoes,
'form': form, # precisa????
'legislatura_id': parlamentar.mandato_set.last( 'legislatura_id': parlamentar.mandato_set.last().legislatura.id})
).legislatura.id}) return context
def post(self, request, *args, **kwargs): def validate(self, form, parlamentar, filiacao):
form = FiliacaoForm(request.POST) from django.core.exceptions import ValidationError
if form.is_valid(): data_filiacao = form.cleaned_data['data']
data_desfiliacao = form.cleaned_data['data_desfiliacao']
data_filiacao = form.cleaned_data['data'] # Dá erro caso a data de desfiliação seja anterior a de filiação
data_desfiliacao = form.cleaned_data['data_desfiliacao'] if data_desfiliacao and data_desfiliacao < data_filiacao:
error_msg = _("A data de filiação não pode anterior \
à data de desfiliação")
messages.add_message(request, messages.ERROR, error_msg)
return False
filiacao = form.save(commit=False)
pid = kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid)
candidato_filiado = Filiacao.objects.filter(
parlamentar=parlamentar)
candidato_nao_desfiliou = Filiacao.objects.filter(
parlamentar=parlamentar,
data_desfiliacao=None)
# Vê se o candidato já se filiou alguma vez a algum partido
if not candidato_filiado:
filiacao = form.save(commit=False)
filiacao.parlamentar = parlamentar
filiacao.save()
return self.form_valid(form)
else:
# Dá erro caso não tenha se desfiliado do anterior
if candidato_nao_desfiliou:
mensagem = _("Você não pode se filiar a algum partido \
sem antes se desfiliar do partido anterior")
return self.error_message(
parlamentar, form, mensagem, request)
# Dá erro caso a data de desfiliação seja anterior a de
# filiação
if data_desfiliacao and data_desfiliacao < data_filiacao:
mensagem = _("A data de filiação não pode ser \
anterior à data de desfiliação")
return self.error_message(
parlamentar, form, mensagem, request)
# Esse bloco garante que não haverá intersecção entre os
# períodos de filiação
todas_filiacoes = candidato_filiado
for i in range(len(todas_filiacoes)):
data_init = todas_filiacoes[i].data
data_fim = todas_filiacoes[i].data_desfiliacao
if data_filiacao >= data_init and data_filiacao < data_fim:
mensagem = _("A data de filiação e \
desfiliação não podem estar no intervalo \
de outro período de filiação")
return self.error_message(
parlamentar, form, mensagem, request)
if (data_desfiliacao and
data_desfiliacao < data_fim and
data_desfiliacao > data_init):
mensagem = _("A data de filiação e \
desfiliação não podem estar no intervalo \
de outro período de filiação")
return self.error_message(
parlamentar, form, mensagem, request)
if (data_desfiliacao and
data_filiacao <= data_init and
data_desfiliacao >= data_fim):
mensagem = _("A data de filiação e \
desfiliação não podem estar no intervalo \
de outro período de filiação")
return self.error_message(
parlamentar, form, mensagem, request)
# Salva a nova filiação caso tudo esteja correto
else:
filiacao = form.save(commit=False)
filiacao.parlamentar = parlamentar
filiacao.save()
return self.form_valid(form)
else:
pid = kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid)
mensagem = ""
return self.error_message(
parlamentar, form, mensagem, request)
# Esse bloco garante que não haverá intersecção entre os
# períodos de filiação
id_filiacao_atual = filiacao.pk
todas_filiacoes = parlamentar.filiacao_set.all()
class FiliacaoEditView(FormView): # # Nenhuma filiacao
template_name = "parlamentares/parlamentares_filiacao_edit.html" # if not todas_filiacoes:
# return None
def get_success_url(self): for f in todas_filiacoes:
pk = self.kwargs['pk'] if not f.data_desfiliacao:
return reverse('parlamentares_filiacao', kwargs={'pk': pk}) error_msg = _("O parlamentar não pode se filiar a algum partido \
sem antes se desfiliar do partido anterior")
messages.add_message(request, messages.ERROR, error_msg)
return False
def get(self, request, *args, **kwargs): error_msg = None
filiacao = Filiacao.objects.get(id=kwargs['dk']) for filiacoes in todas_filiacoes:
parlamentar = Parlamentar.objects.get(id=kwargs['pk']) if filiacoes.id != id_filiacao_atual:
form = FiliacaoEditForm(instance=filiacao)
return self.render_to_response(
{'form': form,
'object': parlamentar,
'legislatura_id': parlamentar.mandato_set.last(
).legislatura_id})
def error_message(self, parlamentar, form, mensagem, request): data_init = filiacoes.data
messages.add_message(request, messages.INFO, mensagem) data_fim = filiacoes.data_desfiliacao
return self.render_to_response(
{'form': form,
'object': parlamentar,
'legislatura_id': parlamentar.mandato_set.last(
).legislatura_id})
def post(self, request, *args, **kwargs):
filiacao = Filiacao.objects.get(id=kwargs['dk'])
form = FiliacaoEditForm(request.POST, instance=filiacao)
parlamentar = Parlamentar.objects.get(id=kwargs['pk'])
if form.is_valid():
data_filiacao = form.cleaned_data['data']
data_desfiliacao = form.cleaned_data['data_desfiliacao']
filiacao = form.save(commit=False) if data_init <= data_filiacao < data_fim:
pid = kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid)
candidato_filiado = Filiacao.objects.filter(
parlamentar=parlamentar)
if 'excluir' in request.POST:
filiacao.delete()
return self.form_valid(form)
# Vê se o candidato já se filiou alguma vez a algum partido
if not candidato_filiado:
filiacao = form.save(commit=False)
filiacao.parlamentar = parlamentar
filiacao.save()
return self.form_valid(form)
else:
# Dá erro caso a data de desfiliação seja anterior a de error_msg = _("A data de filiação e \
# filiação
if data_desfiliacao and data_desfiliacao < data_filiacao:
mensagem = _("A data de filiação não pode \
anterior à data de desfiliação")
return self.error_message(
parlamentar, form, mensagem, request)
# Esse bloco garante que não haverá intersecção entre os
# períodos de filiação
todas_filiacoes = candidato_filiado
id_filiacao_atual = int(kwargs['dk'])
for i in range(len(todas_filiacoes)):
if todas_filiacoes[i].id != id_filiacao_atual:
data_init = todas_filiacoes[i].data
data_fim = todas_filiacoes[i].data_desfiliacao
if (data_filiacao >= data_init and
data_filiacao < data_fim):
mensagem = _("A data de filiação e \
desfiliação não podem estar no intervalo \ desfiliação não podem estar no intervalo \
de outro período de filiação") de outro período de filiação")
return self.error_message(parlamentar, break
form,
mensagem,
request)
if (data_desfiliacao and if (data_desfiliacao and
data_desfiliacao < data_fim and data_init < data_desfiliacao < data_fim):
data_desfiliacao > data_init):
mensagem = _("A data de filiação e \ error_msg = _("A data de filiação e \
desfiliação não podem estar no intervalo \ desfiliação não podem estar no intervalo \
de outro período de filiação") de outro período de filiação")
return self.error_message(parlamentar, break
form,
mensagem, if (data_desfiliacao and
request) data_filiacao <= data_init and
if (data_desfiliacao and data_desfiliacao >= data_fim):
data_filiacao <= data_init and
data_desfiliacao >= data_fim): error_msg = _("A data de filiação e \
mensagem = _("A data de filiação e \
desfiliação não podem estar no intervalo \ desfiliação não podem estar no intervalo \
de outro período de filiação") de outro período de filiação")
return self.error_message(parlamentar, break
form,
mensagem,
request)
if 'salvar' in request.POST:
filiacao.save()
elif 'excluir' in request.POST:
filiacao.delete()
return self.form_valid(form)
if error_msg:
messages.add_message(request, messages.ERROR, error_msg)
return False
else: else:
return self.render_to_response( return True
{'form': form,
'object': parlamentar,
'legislatura_id': parlamentar.mandato_set.last(
).legislatura_id})
class MandatoView(FormView):
def form_valid(self, form):
if 'salvar' in self.request.POST:
filiacao = form.save(commit=False)
parlamentar = Parlamentar.objects.get(id=self.kwargs['pk'])
filiacao.parlamentar = parlamentar
if not self.validate(form, parlamentar, filiacao):
return self.form_invalid(form)
filiacao.save()
return HttpResponseRedirect(self.get_success_url())
class FiliacaoEditView(UpdateView):
template_name = "parlamentares/parlamentares_filiacao_edit.html"
form_class = FiliacaoEditForm
model = Filiacao
pk_url_kwarg = 'dk'
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('parlamentares_filiacao', kwargs={'pk': pk})
def get_context_data(self, **kwargs):
context = super(FiliacaoEditView, self).get_context_data(**kwargs)
parlamentar = Parlamentar.objects.get(id=self.kwargs['pk'])
context.update(
{'object': parlamentar,
# precisa de legislatura????
'legislatura_id': parlamentar.mandato_set.last(
).legislatura_id})
return context
def form_valid(self, form):
filiacao = form.save(commit=False)
if 'excluir' in self.request.POST:
filiacao.delete()
elif 'salvar' in self.request.POST:
parlamentar = Parlamentar.objects.get(id=self.kwargs['pk'])
filiacao.parlamentar = parlamentar
filiacao.save()
return HttpResponseRedirect(self.get_success_url())
class MandatoView(CreateView):
template_name = "parlamentares/parlamentares_mandato.html" template_name = "parlamentares/parlamentares_mandato.html"
model = Mandato
form_class = MandatoForm
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_mandato', kwargs={'pk': pk}) return reverse('parlamentares_mandato', kwargs={'pk': pk})
def get(self, request, *args, **kwargs): def get_context_data(self, **kwargs):
pid = kwargs['pk'] context = super(MandatoView, self).get_context_data(**kwargs)
pid = self.kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid) parlamentar = Parlamentar.objects.get(id=pid)
mandatos = Mandato.objects.filter( mandatos = Mandato.objects.filter(
parlamentar=parlamentar) parlamentar=parlamentar)
context.update(
form = MandatoForm()
return self.render_to_response(
{'object': parlamentar, {'object': parlamentar,
'mandatos': mandatos, 'mandatos': mandatos,
'form': form, # precisa de legislatura ?
'legislatura_id': parlamentar.mandato_set.last().legislatura.id}) #'legislatura_id': parlamentar.mandato_set.last().legislatura.id
}
def post(self, request, *args, **kwargs): )
form = MandatoForm(request.POST) return context
if form.is_valid():
mandato = form.save(commit=False)
pid = kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid)
mandato.parlamentar = parlamentar
mandato.save()
return self.form_valid(form)
else:
pid = kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid)
mandatos = Mandato.objects.filter(
parlamentar=parlamentar)
return self.render_to_response( def form_valid(self, form):
{'object': parlamentar, pid = self.kwargs['pk']
'mandatos': mandatos, parlamentar = Parlamentar.objects.get(id=pid)
'form': form, mandato = form.save(commit=False)
'legislatura_id': parlamentar.mandato_set.last( mandato.parlamentar = parlamentar
).legislatura.id}) mandato.save()
return HttpResponseRedirect(self.get_success_url())
class MandatoEditView(FormView): class MandatoEditView(UpdateView):
template_name = "parlamentares/parlamentares_mandato_edit.html" template_name = "parlamentares/parlamentares_mandato_edit.html"
model = Mandato
form_class = MandatoEditForm
pk_url_kwarg = 'dk'
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('parlamentares_mandato', kwargs={'pk': pk}) return reverse('parlamentares_mandato', kwargs={'pk': pk})
def get(self, request, *args, **kwargs): def get_context_data(self, **kwargs):
mandato = Mandato.objects.get(id=kwargs['dk']) context = super(MandatoEditView, self).get_context_data(**kwargs)
parlamentar = Parlamentar.objects.get(id=kwargs['pk']) mandato = Mandato.objects.get(id=self.kwargs['dk'])
form = MandatoEditForm(instance=mandato) parlamentar = Parlamentar.objects.get(id=self.kwargs['pk'])
return self.render_to_response( context.update(
{'form': form, {'object': parlamentar,
'object': parlamentar, # precisa de legislatura_id ???
'legislatura_id': parlamentar.mandato_set.last( 'legislatura_id': parlamentar.mandato_set.last(
).legislatura_id}) ).legislatura_id})
return context
def post(self, request, *args, **kwargs): def form_valid(self, form):
mandato = Mandato.objects.get(id=kwargs['dk']) form = self.get_form()
form = MandatoEditForm(request.POST, instance=mandato) parlamentar = Parlamentar.objects.get(id=self.kwargs['pk'])
parlamentar = Parlamentar.objects.get(id=kwargs['pk']) if 'salvar' in self.request.POST:
mandato = form.save(commit=False)
if form.is_valid(): mandato.parlamentar = parlamentar
if 'salvar' in request.POST: mandato.save()
mandato.save() elif 'excluir' in self.request.POST:
elif 'excluir' in request.POST: form.instance.delete()
mandato.delete()
return self.form_valid(form) return HttpResponseRedirect(self.get_success_url())
else:
return self.render_to_response(
{'form': form,
'object': parlamentar,
'legislatura_id': parlamentar.mandato_set.last(
).legislatura_id})

Loading…
Cancel
Save