Browse Source

add edit/delete view to dependentes in parlamentar

pull/98/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
1a240a7a8d
  1. 7
      parlamentares/urls.py
  2. 101
      parlamentares/views.py
  3. 2
      templates/parlamentares/parlamentares_cadastro.html
  4. 35
      templates/parlamentares/parlamentares_dependentes.html
  5. 9
      templates/parlamentares/parlamentares_dependentes_edit.html

7
parlamentares/urls.py

@ -1,8 +1,8 @@
from django.conf.urls import include, url
from parlamentares.views import (MesaDiretoraView, ParlamentaresCadastroView,
ParlamentaresEditarView, ParlamentaresView,
ParlamentaresDependentesEditView,
ParlamentaresDependentesView,
ParlamentaresEditarView, ParlamentaresView,
cargo_mesa_crud, coligacao_crud,
legislatura_crud, nivel_instrucao_crud,
partido_crud, sessao_legislativa_crud,
@ -34,6 +34,9 @@ urlpatterns = [
ParlamentaresCadastroView.as_view(), name='parlamentares_cadastro'),
url(r'^parlamentares/(?P<pk>\d+)/dependentes$',
ParlamentaresDependentesView.as_view(), name='parlamentares_dependentes'),
url(r'^parlamentares/(?P<pk>\d+)/dependentes/(?P<dk>\d+)$',
ParlamentaresDependentesEditView.as_view(), name='parlamentares_dependentes_edit'),
url(r'^parlamentares/(?P<pk>\d+)/(?P<pid>\d+)/editar$',
ParlamentaresEditarView.as_view(), name='parlamentares_editar'),

101
parlamentares/views.py

@ -348,9 +348,9 @@ class ParlamentaresEditarView(FormMixin, GenericView):
pk = kwargs['pk']
pid = kwargs['pid']
parlamentar = Parlamentar.objects.get(id=pid)
form = ParlamentaresEditForm(instance=parlamentar)
return self.render_to_response({'form': form, 'legislatura_id': pk})
return self.render_to_response(
{'form': form, 'legislatura_id': pk, 'parlamentar': parlamentar})
def post(self, request, *args, **kwargs):
pk = kwargs['pk']
@ -396,8 +396,8 @@ class DependenteForm(ModelForm):
row2 = sapl.layout.to_row(
[('tipo', 4),
('sexo', 4),
('data_nascimento', 4)])
('sexo', 4),
('data_nascimento', 4)])
row3 = sapl.layout.to_row(
[('cpf', 4),
@ -409,33 +409,98 @@ class DependenteForm(ModelForm):
Fieldset('Cadastro de Dependentes',
row1, row2, row3,
ButtonHolder(
Submit('submit', 'Salvar',
Submit('Salvar', 'Salvar',
css_class='button primary'),
))
)
super(DependenteForm, self).__init__(
*args, **kwargs)
*args, **kwargs)
class DependenteEditForm(DependenteForm):
def __init__(self, *args, **kwargs):
super(DependenteEditForm, self).__init__(
*args, **kwargs)
self.helper.layout[0][-1:] = ButtonHolder(
Submit('Salvar', 'Salvar',
css_class='button primary'),
HTML('&nbsp;'),
Submit('Excluir', 'Excluir',
css_class='button primary'),)
class ParlamentaresDependentesView(FormMixin, GenericView):
template_name = "parlamentares/parlamentares_dependentes.html"
template_name = "parlamentares/parlamentares_dependentes.html"
def get_success_url(self):
return reverse('parlamentares_dependentes')
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('parlamentares_dependentes', kwargs={'pk': pk})
def get(self, request, *args, **kwargs):
pid = kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid)
dependentes = Dependente.objects.filter(parlamentar = parlamentar).order_by('nome', 'tipo')
def get(self, request, *args, **kwargs):
pid = kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid)
dependentes = Dependente.objects.filter(
parlamentar=parlamentar).order_by('nome', 'tipo')
form = DependenteForm()
form = DependenteForm()
return self.render_to_response({'parlamentar': parlamentar,
'dependentes': dependentes,
'form': form})
return self.render_to_response({'parlamentar': parlamentar,
'dependentes': dependentes,
'form': form})
def post(self, request, *args, **kwargs):
form = DependenteForm(request.POST)
if form.is_valid():
dependente = form.save(commit=False)
pid = kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid)
dependente.parlamentar = parlamentar
dependente.save()
return self.form_valid(form)
else:
pid = kwargs['pk']
parlamentar = Parlamentar.objects.get(id=pid)
dependentes = Dependente.objects.filter(
parlamentar=parlamentar).order_by('nome', 'tipo')
return self.render_to_response({'parlamentar': parlamentar,
'dependentes': dependentes,
'form': form})
class ParlamentaresDependentesEditView(FormMixin, GenericView):
template_name = "parlamentares/parlamentares_dependentes_edit.html"
def get_success_url(self):
pk = self.kwargs['pk']
return reverse('parlamentares_dependentes', kwargs={'pk': pk})
def get(self, request, *args, **kwargs):
dependente = Dependente.objects.get(id=kwargs['dk'])
form = DependenteEditForm(instance=dependente)
return self.render_to_response({'form': form})
def post(self, request, *args, **kwargs):
dependente = Dependente.objects.get(id=kwargs['dk'])
form = DependenteEditForm(request.POST, instance=dependente)
if form.is_valid():
if 'Salvar' in request.POST:
dependente.save()
elif 'Excluir' in request.POST:
dependente.delete()
return self.form_valid(form)
else:
return self.render_to_response(
{'form': form})
class MesaDiretoraForm(forms.Form):

2
templates/parlamentares/parlamentares_cadastro.html

@ -5,7 +5,7 @@
<dl class="sub-nav left">
<dd><a href="" id="incluir-parlamentar" class="button secondary">{% trans 'Mandatos' %}</a></dd>
<dd><a href="" id="incluir-parlamentar" class="button secondary">{% trans 'Filiações Partidárias' %}</a></dd>
<dd><a href="" id="incluir-parlamentar" class="button secondary">{% trans 'Dependentes' %}</a></dd>
<dd><a href="{% url 'parlamentares_dependentes' parlamentar.id %}" id="incluir-parlamentar" class="button secondary">{% trans 'Dependentes' %}</a></dd>
</dl>
{% endblock sections_nav %}
{% block detail_content %}

35
templates/parlamentares/parlamentares_dependentes.html

@ -1,31 +1,30 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block actions %}{% endblock %}
{% block detail_content %}
<strong>{{ parlamentar.nome_parlamentar }}</strong>
<strong>Parlamentar: </strong>{{ parlamentar.nome_parlamentar }}
<fieldset>
<legend>Dependentes</legend>
<ul class="small-block-grid-4 medium-block-grid-4 large-block-grid-4">
<li><strong>Nome Dependente</strong></li>
<li><strong>Tipo</strong></li>
<li><strong>Data de Nascimento</strong></li>
</ul>
{% for d in dependentes %}
<ul class="small-block-grid-4 medium-block-grid-4 large-block-grid-4">
<li>{{d.nome}}</li>
<li>{{d.tipo }}</li>
<li>{{d.data_nascimento}}</li>
<li><a href="#">Editar</a> <a href="#">Excluir</a></li>
</ul>
{% endfor %}
<table>
<tr>
<th><strong>Nome Dependente</strong></th>
<th><strong>Tipo</strong></th>
<th><strong>Data de Nascimento</strong></th>
</tr>
{% for d in dependentes %}
<tr>
<td><a href="{% url 'parlamentares_dependentes_edit' parlamentar.id d.id %}">{{d.nome}}</a></td>
<td>{{d.tipo }}</td>
<td>{{d.data_nascimento}}</td>
</tr>
{% endfor %}
</table>
</fieldset>
{% crispy form %}
{% endblock detail_content %}

9
templates/parlamentares/parlamentares_dependentes_edit.html

@ -0,0 +1,9 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block actions %}{% endblock %}
{% block detail_content %}
{% crispy form %}
{% endblock detail_content %}
Loading…
Cancel
Save