Browse Source

Merge pull request #301 from interlegis/300-Crud-comissao

fix #300 Usa crud em Comissão
pull/195/head
Edward 9 years ago
parent
commit
7bf7a50636
  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. 8
      templates/comissoes/cadastrar_comissao.html
  7. 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"

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