From cf072827d664d10f74b9c6ebe74a07ea1c916ed2 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Thu, 7 Apr 2016 09:09:32 -0300 Subject: [PATCH] =?UTF-8?q?Usa=20crud=20em=20Comiss=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comissoes/forms.py | 95 +-------------------- comissoes/layouts.yaml | 8 +- comissoes/test_comissoes.py | 4 +- comissoes/urls.py | 31 +++---- comissoes/views.py | 28 +++--- materia/test_materia_urls.py | 1 - templates/comissoes/cadastrar_comissao.html | 8 -- templates/comissoes/comissao_list.html | 35 -------- 8 files changed, 28 insertions(+), 182 deletions(-) delete mode 100644 templates/comissoes/cadastrar_comissao.html delete mode 100644 templates/comissoes/comissao_list.html diff --git a/comissoes/forms.py b/comissoes/forms.py index fcd23936a..a3e637e1a 100644 --- a/comissoes/forms.py +++ b/comissoes/forms.py @@ -8,100 +8,7 @@ import crispy_layout_mixin from crispy_layout_mixin import form_actions from parlamentares.models import Filiacao -from .models import Comissao, Participacao - - -class CadastrarComissaoForm(ModelForm): - - class Meta: - - model = Comissao - fields = ['nome', - 'tipo', - 'sigla', - 'data_criacao', - 'data_extincao', - 'unidade_deliberativa', - - 'local_reuniao', - 'agenda_reuniao', - 'telefone_reuniao', - 'endereco_secretaria', - 'telefone_secretaria', - 'fax_secretaria', - 'secretario', - 'email', - 'finalidade', - - 'apelido_temp', - 'data_instalacao_temp', - 'data_final_prevista_temp', - 'data_prorrogada_temp', - 'data_fim_comissao'] - - def __init__(self, *args, **kwargs): - - row1 = crispy_layout_mixin.to_row( - [('nome', 8), - ('sigla', 4)]) - - row2 = crispy_layout_mixin.to_row( - [('tipo', 3), - ('data_criacao', 3), - ('unidade_deliberativa', 3), - ('data_extincao', 3)]) - - row3 = crispy_layout_mixin.to_row( - [('local_reuniao', 4), - ('agenda_reuniao', 4), - ('telefone_reuniao', 4)]) - - row4 = crispy_layout_mixin.to_row( - [('endereco_secretaria', 4), - ('telefone_secretaria', 4), - ('fax_secretaria', 4)]) - - row5 = crispy_layout_mixin.to_row( - [('secretario', 6), - ('email', 6)]) - - row6 = crispy_layout_mixin.to_row( - [('finalidade', 12)]) - - row7 = crispy_layout_mixin.to_row( - [('apelido_temp', 9), - ('data_instalacao_temp', 3)]) - - row8 = crispy_layout_mixin.to_row( - [('data_final_prevista_temp', 4), - ('data_prorrogada_temp', 4), - ('data_fim_comissao', 4)]) - - self.helper = FormHelper() - self.helper.layout = Layout( - Fieldset( - _('Cadastrar Comissão'), - Fieldset( - _('Dados Básicos'), - row1, - row2 - ), - Fieldset( - _('Dados Complementares'), - row3, - row4, - row5, - row6 - ), - Fieldset( - 'Temporária', - row7, - row8 - ), - form_actions() - ) - ) - super(CadastrarComissaoForm, self).__init__(*args, **kwargs) +from .models import Participacao class ComposicaoForm(forms.Form): diff --git a/comissoes/layouts.yaml b/comissoes/layouts.yaml index 43d9b0068..3a2d38a08 100644 --- a/comissoes/layouts.yaml +++ b/comissoes/layouts.yaml @@ -14,12 +14,12 @@ TipoComissao: Comissao: Dados Básicos: - - nome:9 sigla - - tipo data_criacao unidade_deliberativa data_extincao + - nome:8 sigla + - tipo data_criacao unidade_deliberativa data_extincao Dados Complementares: - - local_reuniao agenda_reuniao telefone_reuniao + - local_reuniao agenda_reuniao telefone_reuniao - endereco_secretaria telefone_secretaria fax_secretaria - - secretario:4 email + - secretario email - finalidade Temporária: - apelido_temp:8 data_instalacao_temp diff --git a/comissoes/test_comissoes.py b/comissoes/test_comissoes.py index 5b4c60e76..665146d35 100644 --- a/comissoes/test_comissoes.py +++ b/comissoes/test_comissoes.py @@ -96,7 +96,7 @@ def test_incluir_comissao_submit(client): sigla='T', nome='Teste') - response = client.post(reverse('comissoes:cadastrar_comissao'), + response = client.post(reverse('comissoes:comissao_create'), {'tipo': tipo.pk, 'nome': 'Comissão Teste', 'sigla': 'CT', @@ -113,7 +113,7 @@ def test_incluir_comissao_submit(client): @pytest.mark.django_db(transaction=False) def test_incluir_comissao_errors(client): - response = client.post(reverse('comissoes:cadastrar_comissao'), + response = client.post(reverse('comissoes:comissao_create'), {'salvar': 'salvar'}, follow=True) diff --git a/comissoes/urls.py b/comissoes/urls.py index 6a7e44ef4..2a70c9ad1 100644 --- a/comissoes/urls.py +++ b/comissoes/urls.py @@ -1,39 +1,30 @@ from django.conf.urls import include, url -from comissoes.views import (CadastrarComissaoView, CargoCrud, ComissaoCrud, +from comissoes.views import (CargoCrud, ComissaoCrud, ComissaoParlamentarEditView, ComissaoParlamentarIncluirView, ComposicaoView, - MateriasTramitacaoListView, MateriasView, - PeriodoComposicaoCrud, ReunioesView, + MateriasTramitacaoListView, PeriodoComposicaoCrud, TipoComissaoCrud) from .apps import AppConfig app_name = AppConfig.name -comissao_url_patterns = ComissaoCrud.get_urls() + [ - url(r'^(?P\d+)/composicao$', +urlpatterns = [ + url(r'^comissoes/', include(ComissaoCrud.get_urls())), + + url(r'^comissoes/(?P\d+)/composicao$', ComposicaoView.as_view(), name='composicao'), - url(r'^(?P\d+)/materias-em-tramitacao$', + url(r'^comissoes/(?P\d+)/materias-em-tramitacao$', MateriasTramitacaoListView.as_view(), name='materias_em_tramitacao'), - url(r'^(?P\d+)/composicao/(?P\d+)/parlamentar$', + + url(r'^comissoes/(?P\d+)/composicao/(?P\d+)/parlamentar$', ComissaoParlamentarIncluirView.as_view(), name='comissao_parlamentar'), - url(r'^(?P\d+)/composicao/(?P\d+)/parlamentar/(?P\d+)/edit$', + url(r'''^comissoes/(?P\d+)/composicao/(?P\d+)/ + parlamentar/(?P\d+)/edit$''', ComissaoParlamentarEditView.as_view(), name='comissao_parlamentar_edit'), - url(r'^(?P\d+)/materias$', - MateriasView.as_view(), name='materias'), - url(r'^(?P\d+)/reunioes$', - ReunioesView.as_view(), name='reunioes'), - url(r'^cadastrar-comissao$', - CadastrarComissaoView.as_view(), name='cadastrar_comissao'), -] - -app_name = AppConfig.name - -urlpatterns = [ - url(r'^comissoes/', include(comissao_url_patterns)), url(r'^sistema/comissoes/cargo/', include(CargoCrud.get_urls())), url(r'^sistema/comissoes/periodo-composicao/', diff --git a/comissoes/views.py b/comissoes/views.py index 5eefa208f..88ca097f0 100644 --- a/comissoes/views.py +++ b/comissoes/views.py @@ -1,27 +1,28 @@ from django.contrib import messages -from django.core.urlresolvers import reverse, reverse_lazy +from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ -from django.views.generic import CreateView, FormView, ListView +from django.views.generic import FormView, ListView +import crud.base from crud.base import Crud from materia.models import Tramitacao from parlamentares.models import Filiacao -from .forms import (CadastrarComissaoForm, ComposicaoForm, - ParticipacaoCadastroForm) +from .forms import ComposicaoForm, ParticipacaoCadastroForm from .models import (CargoComissao, Comissao, Composicao, Participacao, Periodo, TipoComissao) CargoCrud = Crud.build(CargoComissao, 'cargo_comissao') PeriodoComposicaoCrud = Crud.build(Periodo, 'periodo_composicao_comissao') TipoComissaoCrud = Crud.build(TipoComissao, 'tipo_comissao') -ComissaoCrud = Crud.build(Comissao, 'modulo_comissoes') -class CadastrarComissaoView(CreateView): - template_name = "comissoes/cadastrar_comissao.html" - form_class = CadastrarComissaoForm - success_url = reverse_lazy('comissoes:comissao_list') +class ComissaoCrud(Crud): + model = Comissao + help_path = 'modulo_comissoes' + + class BaseMixin(crud.base.BaseMixin): + list_field_names = ['nome', 'sigla', 'tipo', 'data_criacao'] class ComposicaoView(FormView): @@ -29,7 +30,6 @@ class ComposicaoView(FormView): def get(self, request, *args, **kwargs): form = ComposicaoForm() - composicoes = Composicao.objects.filter( comissao_id=self.kwargs['pk']).order_by('-periodo') participacoes = Participacao.objects.all().order_by('parlamentar') @@ -66,14 +66,6 @@ class ComposicaoView(FormView): 'object': Comissao.objects.get(id=self.kwargs['pk'])}) -class MateriasView(ComissaoCrud.CrudDetailView): - template_name = 'comissoes/materias.html' - - -class ReunioesView(ComissaoCrud.CrudDetailView): - template_name = 'comissoes/reunioes.html' - - class ComissaoParlamentarIncluirView(FormView): template_name = "comissoes/comissao_parlamentar.html" diff --git a/materia/test_materia_urls.py b/materia/test_materia_urls.py index 0ff4aba0e..9814612a7 100644 --- a/materia/test_materia_urls.py +++ b/materia/test_materia_urls.py @@ -1,6 +1,5 @@ import pytest from django.core.urlresolvers import reverse -import pytest @pytest.mark.parametrize("test_input,kwargs,expected", [ diff --git a/templates/comissoes/cadastrar_comissao.html b/templates/comissoes/cadastrar_comissao.html deleted file mode 100644 index 3b59fbe57..000000000 --- a/templates/comissoes/cadastrar_comissao.html +++ /dev/null @@ -1,8 +0,0 @@ -{% extends "crud/detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% block actions %} {% endblock %} - -{% block detail_content %} - {% crispy form %} -{% endblock detail_content %} diff --git a/templates/comissoes/comissao_list.html b/templates/comissoes/comissao_list.html deleted file mode 100644 index b2c5c0197..000000000 --- a/templates/comissoes/comissao_list.html +++ /dev/null @@ -1,35 +0,0 @@ -{% extends "crud/list.html" %} -{% load i18n %} -{% load crispy_forms_tags %} - -{% block base_content %} - -


- {% block detail_content %} - - - - - - - - - - {% for comissao in page_obj %} - - - - - - - {% endfor %} -
NomeSiglaTipoData de Criação
- {{comissao}} - {{comissao.sigla}}{{comissao.tipo}}{{comissao.data_criacao}}
- {% include "paginacao.html" %} - {% endblock %} -{% endblock %}