diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py index 2aa316953..c9d5d828d 100755 --- a/sapl/parlamentares/forms.py +++ b/sapl/parlamentares/forms.py @@ -236,6 +236,18 @@ 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(), @@ -246,6 +258,13 @@ 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) diff --git a/sapl/parlamentares/tests/test_parlamentares.py b/sapl/parlamentares/tests/test_parlamentares.py index 7d29caebf..e7b885871 100644 --- a/sapl/parlamentares/tests/test_parlamentares.py +++ b/sapl/parlamentares/tests/test_parlamentares.py @@ -20,14 +20,21 @@ def test_cadastro_parlamentar(admin_client): response = admin_client.post(url, {'nome_completo': 'Teresa Barbosa', 'nome_parlamentar': 'Terezinha', 'sexo': 'F', - 'ativo': 'True' - }, + 'ativo': 'True', + 'legislatura': legislatura.id, + 'data_expedicao_diploma': '2001-01-01'}, 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) @@ -35,7 +42,9 @@ 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 ['nome_parlamentar', + for campo in ['legislatura', + 'data_expedicao_diploma', + 'nome_parlamentar', 'nome_completo', 'sexo', ]} diff --git a/sapl/parlamentares/urls.py b/sapl/parlamentares/urls.py index ce6af679b..668a65653 100644 --- a/sapl/parlamentares/urls.py +++ b/sapl/parlamentares/urls.py @@ -18,7 +18,6 @@ from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud, insere_parlamentar_composicao, parlamentares_frente_selected, remove_parlamentar_composicao, - lista_parlamentares, parlamentares_filiados, PesquisarParlamentarView) @@ -36,11 +35,9 @@ 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\d+)/materias$', ParlamentarMateriasView.as_view(), name='parlamentar_materias'), diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index c88276adf..e6eeadecd 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -674,12 +674,6 @@ 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') diff --git a/sapl/templates/menu_tabelas_auxiliares.yaml b/sapl/templates/menu_tabelas_auxiliares.yaml index 1e782b4ef..ced7bddf3 100644 --- a/sapl/templates/menu_tabelas_auxiliares.yaml +++ b/sapl/templates/menu_tabelas_auxiliares.yaml @@ -17,8 +17,8 @@ - title: {% trans 'Módulo Parlamentares' %} css_class: head_title children: - - title: {% trans 'Cadastrar Parlamentar' %} - url: sapl.parlamentares:parlamentar_create + - title: {% trans 'Pesquisar Parlamentar' %} + url: sapl.parlamentares:pesquisar_parlamentar css_class: btn btn-link - title: {% trans 'Legislatura' %} url: sapl.parlamentares:legislatura_list diff --git a/sapl/templates/parlamentares/layouts.yaml b/sapl/templates/parlamentares/layouts.yaml index 0b419ef80..ded7ca647 100644 --- a/sapl/templates/parlamentares/layouts.yaml +++ b/sapl/templates/parlamentares/layouts.yaml @@ -64,6 +64,8 @@ ParlamentarUpdate: - biografia ParlamentarCreate: + {% trans 'Dados do Mandato' %}: + - legislatura data_expedicao_diploma {% trans 'Cadastro do Parlamentar' %}: - nome_parlamentar:8 ativo - nome_completo diff --git a/sapl/templates/parlamentares/lista_parlamentares.html b/sapl/templates/parlamentares/lista_parlamentares.html deleted file mode 100644 index 76d55395b..000000000 --- a/sapl/templates/parlamentares/lista_parlamentares.html +++ /dev/null @@ -1,43 +0,0 @@ -{% extends "base.html" %} -{% load i18n %} -{% load crispy_forms_tags cropping%} -{% block base_content %} -

Parlamentares



-
Total de Parlamentares: {{ parlamentares|length }}
-
- - - - - - - - - - {% for parlamentar in parlamentares %} - - - - - - {% endfor %} - - -
-{% endblock base_content %} diff --git a/sapl/templates/parlamentares/parlamentares_list.html b/sapl/templates/parlamentares/parlamentares_list.html index 2b45bdb34..88ad4acfe 100644 --- a/sapl/templates/parlamentares/parlamentares_list.html +++ b/sapl/templates/parlamentares/parlamentares_list.html @@ -1,21 +1,6 @@ {% extends "crud/list.html" %} {% load i18n %} {% load crispy_forms_tags cropping%} - -{% block actions %} -
- {% if view.create_url %} - - {% blocktrans with verbose_name=view.verbose_name %} Adicionar {{ verbose_name }} {% endblocktrans %} - - {% endif %} - {% block more_buttons %}{% endblock more_buttons %} -
-
- Pesquisar Parlamentares -
-{% endblock actions %} - {% block extra_content %}
Selecione o Período