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. 8
      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 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):

8
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

4
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)

31
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<pk>\d+)/composicao$',
urlpatterns = [
url(r'^comissoes/', include(ComissaoCrud.get_urls())),
url(r'^comissoes/(?P<pk>\d+)/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'),
url(r'^(?P<pk>\d+)/composicao/(?P<id>\d+)/parlamentar$',
url(r'^comissoes/(?P<pk>\d+)/composicao/(?P<id>\d+)/parlamentar$',
ComissaoParlamentarIncluirView.as_view(),
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(),
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/periodo-composicao/',

28
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"

1
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", [

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