Browse Source

Fix #2536 - Separa criação de mandato e parlamentar (#2551)

* Adiciona cadastro de parlamentar na tabelas auxiliares
Co-authored-by: UlyssesBML <ulysses3353@gmail.com>

* Remoção de mandato na criação do parlamentar
Co-authored-by: UlyssesBML <ulysses3353@gmail.com>

* Fix #2536

Co-authored-by: UlyssesBML <ulysses3353@gmail.com>

* Corrige testes

Co-authored-by: UlyssesBML <ulysses3353@gmail.com>
pull/2573/head
Vinícius Cantuária 6 years ago
committed by Edward
parent
commit
0c7c17de65
  1. 19
      sapl/parlamentares/forms.py
  2. 15
      sapl/parlamentares/tests/test_parlamentares.py
  3. 5
      sapl/parlamentares/urls.py
  4. 6
      sapl/parlamentares/views.py
  5. 3
      sapl/templates/menu_tabelas_auxiliares.yaml
  6. 2
      sapl/templates/parlamentares/layouts.yaml
  7. 43
      sapl/templates/parlamentares/lista_parlamentares.html
  8. 8
      sapl/templates/parlamentares/parlamentares_list.html

19
sapl/parlamentares/forms.py

@ -236,18 +236,6 @@ class ParlamentarFilterSet(django_filters.FilterSet):
class ParlamentarCreateForm(ParlamentarForm):
legislatura = forms.ModelChoiceField(
label=_('Legislatura'),
required=True,
queryset=Legislatura.objects.all().order_by('-data_inicio'),
empty_label='----------',
)
data_expedicao_diploma = forms.DateField(
label=_('Expedição do Diploma'),
required=True,
)
class Meta(ParlamentarForm.Meta):
widgets = {
'fotografia': forms.ClearableFileInput(),
@ -258,13 +246,6 @@ class ParlamentarCreateForm(ParlamentarForm):
@transaction.atomic
def save(self, commit=True):
parlamentar = super(ParlamentarCreateForm, self).save(commit)
legislatura = self.cleaned_data['legislatura']
Mandato.objects.create(
parlamentar=parlamentar,
legislatura=legislatura,
data_inicio_mandato=legislatura.data_inicio,
data_fim_mandato=legislatura.data_fim,
data_expedicao_diploma=self.cleaned_data['data_expedicao_diploma'])
content_type = ContentType.objects.get_for_model(Parlamentar)
object_id = parlamentar.pk
tipo = TipoAutor.objects.get(content_type=content_type)

15
sapl/parlamentares/tests/test_parlamentares.py

@ -20,21 +20,14 @@ def test_cadastro_parlamentar(admin_client):
response = admin_client.post(url, {'nome_completo': 'Teresa Barbosa',
'nome_parlamentar': 'Terezinha',
'sexo': 'F',
'ativo': 'True',
'legislatura': legislatura.id,
'data_expedicao_diploma': '2001-01-01'},
'ativo': 'True'
},
follow=True)
[parlamentar] = Parlamentar.objects.all()
assert parlamentar.nome_parlamentar == 'Terezinha'
assert parlamentar.sexo == 'F'
assert parlamentar.ativo is True
# o primeiro mandato é criado
[mandato] = Mandato.objects.all()
assert mandato.parlamentar == parlamentar
assert str(mandato.data_expedicao_diploma) == '2001-01-01'
assert mandato.legislatura == legislatura
assert mandato.data_fim_mandato == legislatura.data_fim
@pytest.mark.django_db(transaction=False)
@ -42,9 +35,7 @@ def test_incluir_parlamentar_errors(admin_client):
url = reverse('sapl.parlamentares:parlamentar_create')
response = admin_client.post(url)
erros_esperados = {campo: ['Este campo é obrigatório.']
for campo in ['legislatura',
'data_expedicao_diploma',
'nome_parlamentar',
for campo in ['nome_parlamentar',
'nome_completo',
'sexo',
]}

5
sapl/parlamentares/urls.py

@ -18,6 +18,7 @@ from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud,
insere_parlamentar_composicao,
parlamentares_frente_selected,
remove_parlamentar_composicao,
lista_parlamentares,
parlamentares_filiados,
PesquisarParlamentarView)
@ -35,9 +36,11 @@ urlpatterns = [
VotanteView.get_urls()
)),
url(r'^parlamentar/lista$', lista_parlamentares, name='lista_parlamentares'),
url(r'^parlamentar/pesquisar-parlamentar/',
PesquisarParlamentarView.as_view(), name='pesquisar_parlamentar'),
url(r'^parlamentar/(?P<pk>\d+)/materias$',
ParlamentarMateriasView.as_view(), name='parlamentar_materias'),

6
sapl/parlamentares/views.py

@ -674,6 +674,12 @@ class ParlamentarCrud(Crud):
return context
def lista_parlamentares(request):
template_name = "parlamentares/lista_parlamentares.html"
parlamentares = Parlamentar.objects.select_related().all()
return render(request, template_name, {"parlamentares": parlamentares})
class ParlamentarMateriasView(FormView):
template_name = "parlamentares/materias.html"
success_url = reverse_lazy('sapl.parlamentares:parlamentar_materia')

3
sapl/templates/menu_tabelas_auxiliares.yaml

@ -17,6 +17,9 @@
- title: {% trans 'Módulo Parlamentares' %}
css_class: head_title
children:
- title: {% trans 'Cadastrar Parlamentar' %}
url: sapl.parlamentares:parlamentar_create
css_class: btn btn-link
- title: {% trans 'Legislatura' %}
url: sapl.parlamentares:legislatura_list
css_class: btn btn-link

2
sapl/templates/parlamentares/layouts.yaml

@ -64,8 +64,6 @@ ParlamentarUpdate:
- biografia
ParlamentarCreate:
{% trans 'Dados do Mandato' %}:
- legislatura data_expedicao_diploma
{% trans 'Cadastro do Parlamentar' %}:
- nome_parlamentar:8 ativo
- nome_completo

43
sapl/templates/parlamentares/lista_parlamentares.html

@ -0,0 +1,43 @@
{% extends "base.html" %}
{% load i18n %}
{% load crispy_forms_tags cropping%}
{% block base_content %}
<h1>Parlamentares</h1></br></br>
<div class="result-count">Total de Parlamentares: <strong>{{ parlamentares|length }}</strong></div>
<div class="container-table lista-parlamentares">
<table class="table table-striped table-hover table-link-ordering">
<thead>
<tr>
<th>
Foto
</th>
<th>
Parlamentar
</th>
<th>
Partido
</th>
</tr>
</thead>
<tbody>
{% for parlamentar in parlamentares %}
<tr>
<td>
{% if parlamentar.fotografia %}
<div id="w-100">
<img class="img-fluid img-thumbnail" src="{% cropped_thumbnail parlamentar "cropping"%}">
</div>
{% endif %}
</td>
<td>
<a href="{% url 'sapl.parlamentares:mandato_list' parlamentar.pk %}"> {{ parlamentar }} </a>
</td>
<td>
{{ parlamentar.filiacao_atual }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock base_content %}

8
sapl/templates/parlamentares/parlamentares_list.html

@ -3,6 +3,14 @@
{% load crispy_forms_tags cropping%}
{% block actions %}
{{ block.super }}
<div class="actions btn-group float-right btn-group-lg" role="group">
{% if view.create_url %}
<a href="{% url 'sapl.parlamentares:lista_parlamentares' %}" class="btn btn-outline-primary">
{% blocktrans with verbose_name=view.verbose_name %} Adicionar {{ verbose_name }} {% endblocktrans %}
</a>
{% endif %}
{% block more_buttons %}{% endblock more_buttons %}
</div>
<div class="actions btn-group btn-group-sm" role="group">
<a href="{% url 'sapl.parlamentares:pesquisar_parlamentar' %}" class="btn btn-outline-primary">Pesquisar Parlamentares</a>
</div>

Loading…
Cancel
Save