Browse Source

Usa crud em Comissão

pull/301/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
cf072827d6
  1. 95
      comissoes/forms.py
  2. 4
      comissoes/layouts.yaml
  3. 4
      comissoes/test_comissoes.py
  4. 31
      comissoes/urls.py
  5. 28
      comissoes/views.py
  6. 1
      materia/test_materia_urls.py
  7. 8
      templates/comissoes/cadastrar_comissao.html
  8. 35
      templates/comissoes/comissao_list.html

95
comissoes/forms.py

@ -8,100 +8,7 @@ import crispy_layout_mixin
from crispy_layout_mixin import form_actions from crispy_layout_mixin import form_actions
from parlamentares.models import Filiacao from parlamentares.models import Filiacao
from .models import Comissao, Participacao from .models import 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)
class ComposicaoForm(forms.Form): class ComposicaoForm(forms.Form):

4
comissoes/layouts.yaml

@ -14,12 +14,12 @@ TipoComissao:
Comissao: Comissao:
Dados Básicos: Dados Básicos:
- nome:9 sigla - nome:8 sigla
- tipo data_criacao unidade_deliberativa data_extincao - tipo data_criacao unidade_deliberativa data_extincao
Dados Complementares: Dados Complementares:
- local_reuniao agenda_reuniao telefone_reuniao - local_reuniao agenda_reuniao telefone_reuniao
- endereco_secretaria telefone_secretaria fax_secretaria - endereco_secretaria telefone_secretaria fax_secretaria
- secretario:4 email - secretario email
- finalidade - finalidade
Temporária: Temporária:
- apelido_temp:8 data_instalacao_temp - apelido_temp:8 data_instalacao_temp

4
comissoes/test_comissoes.py

@ -96,7 +96,7 @@ def test_incluir_comissao_submit(client):
sigla='T', sigla='T',
nome='Teste') nome='Teste')
response = client.post(reverse('comissoes:cadastrar_comissao'), response = client.post(reverse('comissoes:comissao_create'),
{'tipo': tipo.pk, {'tipo': tipo.pk,
'nome': 'Comissão Teste', 'nome': 'Comissão Teste',
'sigla': 'CT', 'sigla': 'CT',
@ -113,7 +113,7 @@ def test_incluir_comissao_submit(client):
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def test_incluir_comissao_errors(client): def test_incluir_comissao_errors(client):
response = client.post(reverse('comissoes:cadastrar_comissao'), response = client.post(reverse('comissoes:comissao_create'),
{'salvar': 'salvar'}, {'salvar': 'salvar'},
follow=True) follow=True)

31
comissoes/urls.py

@ -1,39 +1,30 @@
from django.conf.urls import include, url from django.conf.urls import include, url
from comissoes.views import (CadastrarComissaoView, CargoCrud, ComissaoCrud, from comissoes.views import (CargoCrud, ComissaoCrud,
ComissaoParlamentarEditView, ComissaoParlamentarEditView,
ComissaoParlamentarIncluirView, ComposicaoView, ComissaoParlamentarIncluirView, ComposicaoView,
MateriasTramitacaoListView, MateriasView, MateriasTramitacaoListView, PeriodoComposicaoCrud,
PeriodoComposicaoCrud, ReunioesView,
TipoComissaoCrud) TipoComissaoCrud)
from .apps import AppConfig from .apps import AppConfig
app_name = AppConfig.name app_name = AppConfig.name
comissao_url_patterns = ComissaoCrud.get_urls() + [ urlpatterns = [
url(r'^(?P<pk>\d+)/composicao$', url(r'^comissoes/', include(ComissaoCrud.get_urls())),
url(r'^comissoes/(?P<pk>\d+)/composicao$',
ComposicaoView.as_view(), name='composicao'), ComposicaoView.as_view(), name='composicao'),
url(r'^(?P<pk>\d+)/materias-em-tramitacao$', url(r'^comissoes/(?P<pk>\d+)/materias-em-tramitacao$',
MateriasTramitacaoListView.as_view(), name='materias_em_tramitacao'), MateriasTramitacaoListView.as_view(), name='materias_em_tramitacao'),
url(r'^(?P<pk>\d+)/composicao/(?P<id>\d+)/parlamentar$',
url(r'^comissoes/(?P<pk>\d+)/composicao/(?P<id>\d+)/parlamentar$',
ComissaoParlamentarIncluirView.as_view(), ComissaoParlamentarIncluirView.as_view(),
name='comissao_parlamentar'), name='comissao_parlamentar'),
url(r'^(?P<pk>\d+)/composicao/(?P<cd>\d+)/parlamentar/(?P<id>\d+)/edit$', url(r'''^comissoes/(?P<pk>\d+)/composicao/(?P<cd>\d+)/
parlamentar/(?P<id>\d+)/edit$''',
ComissaoParlamentarEditView.as_view(), ComissaoParlamentarEditView.as_view(),
name='comissao_parlamentar_edit'), name='comissao_parlamentar_edit'),
url(r'^(?P<pk>\d+)/materias$',
MateriasView.as_view(), name='materias'),
url(r'^(?P<pk>\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/cargo/', include(CargoCrud.get_urls())),
url(r'^sistema/comissoes/periodo-composicao/', url(r'^sistema/comissoes/periodo-composicao/',

28
comissoes/views.py

@ -1,27 +1,28 @@
from django.contrib import messages 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.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 crud.base import Crud
from materia.models import Tramitacao from materia.models import Tramitacao
from parlamentares.models import Filiacao from parlamentares.models import Filiacao
from .forms import (CadastrarComissaoForm, ComposicaoForm, from .forms import ComposicaoForm, ParticipacaoCadastroForm
ParticipacaoCadastroForm)
from .models import (CargoComissao, Comissao, Composicao, Participacao, from .models import (CargoComissao, Comissao, Composicao, Participacao,
Periodo, TipoComissao) Periodo, TipoComissao)
CargoCrud = Crud.build(CargoComissao, 'cargo_comissao') CargoCrud = Crud.build(CargoComissao, 'cargo_comissao')
PeriodoComposicaoCrud = Crud.build(Periodo, 'periodo_composicao_comissao') PeriodoComposicaoCrud = Crud.build(Periodo, 'periodo_composicao_comissao')
TipoComissaoCrud = Crud.build(TipoComissao, 'tipo_comissao') TipoComissaoCrud = Crud.build(TipoComissao, 'tipo_comissao')
ComissaoCrud = Crud.build(Comissao, 'modulo_comissoes')
class CadastrarComissaoView(CreateView): class ComissaoCrud(Crud):
template_name = "comissoes/cadastrar_comissao.html" model = Comissao
form_class = CadastrarComissaoForm help_path = 'modulo_comissoes'
success_url = reverse_lazy('comissoes:comissao_list')
class BaseMixin(crud.base.BaseMixin):
list_field_names = ['nome', 'sigla', 'tipo', 'data_criacao']
class ComposicaoView(FormView): class ComposicaoView(FormView):
@ -29,7 +30,6 @@ class ComposicaoView(FormView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
form = ComposicaoForm() form = ComposicaoForm()
composicoes = Composicao.objects.filter( composicoes = Composicao.objects.filter(
comissao_id=self.kwargs['pk']).order_by('-periodo') comissao_id=self.kwargs['pk']).order_by('-periodo')
participacoes = Participacao.objects.all().order_by('parlamentar') participacoes = Participacao.objects.all().order_by('parlamentar')
@ -66,14 +66,6 @@ class ComposicaoView(FormView):
'object': Comissao.objects.get(id=self.kwargs['pk'])}) '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): class ComissaoParlamentarIncluirView(FormView):
template_name = "comissoes/comissao_parlamentar.html" template_name = "comissoes/comissao_parlamentar.html"

1
materia/test_materia_urls.py

@ -1,6 +1,5 @@
import pytest import pytest
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
import pytest
@pytest.mark.parametrize("test_input,kwargs,expected", [ @pytest.mark.parametrize("test_input,kwargs,expected", [

8
templates/comissoes/cadastrar_comissao.html

@ -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 %}

35
templates/comissoes/comissao_list.html

@ -1,35 +0,0 @@
{% extends "crud/list.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block base_content %}
<div class="actions btn-group pull-right" role="group">
<a href="{% url 'comissoes:cadastrar_comissao' %}" class="btn btn-default">
{% blocktrans with verbose_name=view.verbose_name %} Adicionar Comissão {% endblocktrans %}
</a>
</div>
<br /><br /><br />
{% block detail_content %}
<table class="table table-striped table-bordered">
<thead class="thead-default">
<tr>
<th>Nome</th>
<th>Sigla</th>
<th>Tipo</th>
<th>Data de Criação</th>
</tr>
</thead>
{% for comissao in page_obj %}
<tr>
<td>
<a href="{% url 'comissoes:comissao_detail' comissao.id %}">{{comissao}}</a>
</td>
<td>{{comissao.sigla}}</td>
<td>{{comissao.tipo}}</td>
<td>{{comissao.data_criacao}}</td>
</tr>
{% endfor %}
</table>
{% include "paginacao.html" %}
{% endblock %}
{% endblock %}
Loading…
Cancel
Save