From 2247935f519e2efcaaad0dd573df57841bcab9a1 Mon Sep 17 00:00:00 2001 From: ricardocanela Date: Thu, 24 Oct 2019 11:09:17 -0300 Subject: [PATCH] criado crud parlamentarFrente --- sapl/parlamentares/forms.py | 25 +++++++++++- sapl/parlamentares/urls.py | 4 +- sapl/parlamentares/views.py | 38 ++++++++++++++++++- .../parlamentares/frente_detail.html | 9 +++++ sapl/templates/parlamentares/layouts.yaml | 13 +++++++ .../parlamentares/parlamentarfrente_list.html | 10 +++++ 6 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 sapl/templates/parlamentares/frente_detail.html create mode 100644 sapl/templates/parlamentares/parlamentarfrente_list.html diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py index 9bd8fc79c..79c347f2b 100755 --- a/sapl/parlamentares/forms.py +++ b/sapl/parlamentares/forms.py @@ -24,7 +24,8 @@ import django_filters from .models import (ComposicaoColigacao, Filiacao, Frente, Legislatura, Mandato, Parlamentar, Votante, Bloco, Bancada, CargoBloco, - CargoBlocoPartido, AfastamentoParlamentar, TipoAfastamento) + CargoBlocoPartido, AfastamentoParlamentar, TipoAfastamento, + ParlamentarFrente) class ImageThumbnailFileInput(ClearableFileInput): @@ -419,6 +420,28 @@ class ComposicaoColigacaoForm(ModelForm): return self.cleaned_data +class ParlamentarFrenteForm(ModelForm): + logger = logging.getLogger(__name__) + + def __init__(self, *args, **kwargs): + super(ParlamentarFrenteForm, self).__init__(*args, **kwargs) + self.fields['frente'].widget = forms.HiddenInput() + + + class Meta: + model = ParlamentarFrente + fields = '__all__' + + def clean(self): + super(ParlamentarFrenteForm, self).clean() + cd = self.cleaned_data + if not self.is_valid(): + return self.cleaned_data + + + return cd + + class FrenteForm(ModelForm): logger = logging.getLogger(__name__) diff --git a/sapl/parlamentares/urls.py b/sapl/parlamentares/urls.py index b062ab54b..bdd57a4b4 100644 --- a/sapl/parlamentares/urls.py +++ b/sapl/parlamentares/urls.py @@ -29,7 +29,8 @@ from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud, edita_vinculo_parlamentar_bloco, deleta_vinculo_parlamentar_bloco, vincula_parlamentar_ao_bloco, - get_sessoes_legislatura) + get_sessoes_legislatura, + ParlamentarFrenteCrud) from .apps import AppConfig @@ -88,6 +89,7 @@ urlpatterns = [ url(r'^sistema/frente/parlamentares-frente-selected', parlamentares_frente_selected, name='parlamentares_frente_selected'), + url(r'^sistema/frente/', include(ParlamentarFrenteCrud.get_urls())), url(r'^sistema/parlamentar/legislatura/', include(LegislaturaCrud.get_urls())), diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index dfbd4a224..e7d55de07 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -38,13 +38,14 @@ from .forms import (FiliacaoForm, FrenteForm, LegislaturaForm, MandatoForm, ParlamentarCreateForm, ParlamentarForm, VotanteForm, ParlamentarFilterSet, VincularParlamentarForm, BlocoForm, CargoBlocoForm, CargoBlocoPartidoForm, - BancadaForm, AfastamentoParlamentarForm) + BancadaForm, AfastamentoParlamentarForm, ParlamentarFrenteForm) from .models import (Bancada, CargoBancada, CargoMesa, Coligacao, ComposicaoColigacao, ComposicaoMesa, Dependente, Filiacao, Frente, Legislatura, Mandato, NivelInstrucao, Parlamentar, Partido, SessaoLegislativa, SituacaoMilitar, TipoAfastamento, TipoDependente, Votante, - Bloco, CargoBlocoPartido, HistoricoPartido, CargoBloco, AfastamentoParlamentar) + Bloco, CargoBlocoPartido, HistoricoPartido, CargoBloco, + ParlamentarFrente, AfastamentoParlamentar) CargoBancadaCrud = CrudAux.build(CargoBancada, '') @@ -412,6 +413,37 @@ class FrenteCrud(Crud): form_class = FrenteForm + +class ParlamentarFrenteCrud(MasterDetailCrud): + model = ParlamentarFrente + parent_field = 'frente' + help_topic = 'parlamentar_frente' + public = [RP_LIST, RP_DETAIL] + + class BaseMixin(MasterDetailCrud.BaseMixin): + list_field_names = ['parlamentar', + 'frente', + 'data_entrada', + 'data_saida'] + + class CreateView(MasterDetailCrud.CreateView): + form_class = ParlamentarFrenteForm + + def get_initial(self): + self.initial['frente'] = Frente.objects.get(pk=self.kwargs['pk']) + return self.initial + + class UpdateView(MasterDetailCrud.UpdateView): + form_class = ParlamentarFrenteForm + + def form_valid(self, form): + return super(Crud.UpdateView, self).form_valid(form) + + + class ListView(MasterDetailCrud.ListView): + layout_key = 'ParlamentarFrenteList' + + class MandatoCrud(MasterDetailCrud): model = Mandato parent_field = 'parlamentar' @@ -528,6 +560,8 @@ class FiliacaoCrud(MasterDetailCrud): form_class = FiliacaoForm + + class ParlamentarCrud(Crud): model = Parlamentar public = [RP_LIST, RP_DETAIL] diff --git a/sapl/templates/parlamentares/frente_detail.html b/sapl/templates/parlamentares/frente_detail.html new file mode 100644 index 000000000..add858134 --- /dev/null +++ b/sapl/templates/parlamentares/frente_detail.html @@ -0,0 +1,9 @@ +{% extends "crud/detail.html" %} +{% load i18n %} +{% load crispy_forms_tags cropping %} +{% block actions %} + {{ block.super }} +
+ Listar Parlamentares Filiados +
+{% endblock actions %} \ No newline at end of file diff --git a/sapl/templates/parlamentares/layouts.yaml b/sapl/templates/parlamentares/layouts.yaml index 8014fc381..bf3d1ffb6 100644 --- a/sapl/templates/parlamentares/layouts.yaml +++ b/sapl/templates/parlamentares/layouts.yaml @@ -157,3 +157,16 @@ AfastamentoParlamentar: - data_inicio data_fim - mandato tipo_afastamento - observacao + +ParlamentarFrente: + {% trans 'Parlamentar Frente'%}: + - frente + - parlamentar + - data_entrada + - data_saida + +ParlamentarFrenteList: + {% trans 'Parlamentar Frente'%}: + - parlamentar + - data_entrada + - data_saida \ No newline at end of file diff --git a/sapl/templates/parlamentares/parlamentarfrente_list.html b/sapl/templates/parlamentares/parlamentarfrente_list.html new file mode 100644 index 000000000..af6f66863 --- /dev/null +++ b/sapl/templates/parlamentares/parlamentarfrente_list.html @@ -0,0 +1,10 @@ +{% extends "crud/list.html" %} +{% load i18n %} +{% load common_tags %} + +{% block more_buttons %} + + Frente Parlamentar + +{% endblock more_buttons %} +