Browse Source

[WIP] adiciona tipo retirada de pauta

pull/2383/head
VictorFabreF 7 years ago
committed by Victor Fabre
parent
commit
231d367b19
  1. 2
      sapl/rules/map_rules.py
  2. 10
      sapl/sessao/forms.py
  3. 50
      sapl/sessao/migrations/0028_auto_20181031_0902.py
  4. 28
      sapl/sessao/models.py
  5. 3
      sapl/sessao/urls.py
  6. 16
      sapl/sessao/views.py
  7. 3
      sapl/templates/menu_tabelas_auxiliares.yaml
  8. 4
      sapl/templates/sessao/layouts.yaml
  9. 1
      sapl/templates/sistema.html

2
sapl/rules/map_rules.py

@ -172,6 +172,7 @@ rules_group_sessao = {
(sessao.RegistroVotacao, __base__), (sessao.RegistroVotacao, __base__),
(sessao.VotoParlamentar, __base__), (sessao.VotoParlamentar, __base__),
(sessao.JustificativaAusencia, __base__), (sessao.JustificativaAusencia, __base__),
(sessao.RetiradaPauta, __base__)
] ]
} }
@ -269,6 +270,7 @@ rules_group_geral = {
(sessao.JustificativaAusencia, __base__), (sessao.JustificativaAusencia, __base__),
(sessao.Bloco, __base__), (sessao.Bloco, __base__),
(sessao.ResumoOrdenacao, __base__), (sessao.ResumoOrdenacao, __base__),
(sessao.TipoRetiradaPauta, __base__),
(lexml.LexmlProvedor, __base__), (lexml.LexmlProvedor, __base__),
(lexml.LexmlPublicador, __base__), (lexml.LexmlPublicador, __base__),

10
sapl/sessao/forms.py

@ -26,7 +26,7 @@ from sapl.utils import (RANGE_DIAS_MES, RANGE_MESES,
from .models import (Bancada, Bloco, ExpedienteMateria, Orador, JustificativaAusencia, from .models import (Bancada, Bloco, ExpedienteMateria, Orador, JustificativaAusencia,
OradorExpediente, OrdemDia, SessaoPlenaria, OradorExpediente, OrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca, TipoResultadoVotacao, OcorrenciaSessao, SessaoPlenariaPresenca, TipoResultadoVotacao, OcorrenciaSessao,
RegistroVista) RetiradaPauta, TipoRetiradaPauta)
@ -191,14 +191,18 @@ class SessaoPlenariaForm(ModelForm):
return self.cleaned_data return self.cleaned_data
class RegistroVistaForm(ModelForm): class RetiradaPautaForm(ModelForm):
parlamentar = forms.ModelChoiceField(required=True, parlamentar = forms.ModelChoiceField(required=True,
empty_label='------', empty_label='------',
queryset=Parlamentar.objects.all()) queryset=Parlamentar.objects.all())
tipo_de_retirada = forms.ModelChoiceField(required=True,
empty_label='------',
queryset=TipoRetiradaPauta.objects.all())
class Meta: class Meta:
model = RegistroVista model = RetiradaPauta
exclude = ['ordem', 'expediente', 'materia'] exclude = ['ordem', 'expediente', 'materia']

50
sapl/sessao/migrations/0028_auto_20181031_0902.py

@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.8 on 2018-10-31 12:02
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('materia', '0032_auto_20181022_1743'),
('parlamentares', '0025_auto_20180924_1724'),
('sessao', '0027_auto_20181023_1239'),
]
operations = [
migrations.CreateModel(
name='RetiradaPauta',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('observacao', models.TextField(blank=True, verbose_name='Observações')),
('expediente', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sessao.ExpedienteMateria')),
('materia', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='materia.MateriaLegislativa')),
('ordem', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sessao.OrdemDia')),
('parlamentar', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='parlamentares.Parlamentar', verbose_name='Requerente')),
],
options={
'verbose_name_plural': 'Retirada de Pauta',
'verbose_name': 'Retirada de Pauta',
},
),
migrations.CreateModel(
name='TipoRetiradaPauta',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('descricao', models.CharField(max_length=150, verbose_name='Descrição')),
],
options={
'verbose_name_plural': 'Tipos de Retirada de Pauta',
'verbose_name': 'Tipo de Retidara de Pauta',
'ordering': ['descricao'],
},
),
migrations.AddField(
model_name='retiradapauta',
name='tipo_de_retirada',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='sessao.TipoRetiradaPauta', verbose_name='Motivo de Retirada de Pauta'),
),
]

28
sapl/sessao/models.py

@ -584,6 +584,18 @@ class ResumoOrdenacao(models.Model):
def __str__(self): def __str__(self):
return 'Ordenação do Resumo de uma Sessão' return 'Ordenação do Resumo de uma Sessão'
@reversion.register()
class TipoRetiradaPauta(models.Model):
descricao = models.CharField(max_length=150, verbose_name=_('Descrição'))
class Meta:
verbose_name = _('Tipo de Retidara de Pauta')
verbose_name_plural = _('Tipos de Retirada de Pauta')
ordering = ['descricao']
def __str__(self):
return self.descricao
@reversion.register() @reversion.register()
class TipoJustificativa(models.Model): class TipoJustificativa(models.Model):
@ -663,7 +675,7 @@ class JustificativaAusencia(models.Model):
using=using, using=using,
update_fields=update_fields) update_fields=update_fields)
class RegistroVista(models.Model): class RetiradaPauta(models.Model):
materia = models.ForeignKey(MateriaLegislativa, materia = models.ForeignKey(MateriaLegislativa,
on_delete=models.CASCADE) on_delete=models.CASCADE)
ordem = models.ForeignKey(OrdemDia, ordem = models.ForeignKey(OrdemDia,
@ -676,14 +688,18 @@ class RegistroVista(models.Model):
on_delete=models.CASCADE) on_delete=models.CASCADE)
observacao = models.TextField(blank=True, observacao = models.TextField(blank=True,
verbose_name=_('Observações')) verbose_name=_('Observações'))
parlamentar = models.ForeignKey(Parlamentar, parlamentar = models.ForeignKey(Parlamentar,
on_delete=models.PROTECT, on_delete=models.PROTECT,
verbose_name=_('Requerente')) verbose_name=_('Requerente'),
blank=True,
null=True)
tipo_de_retirada = models.ForeignKey(TipoRetiradaPauta,
on_delete=models.PROTECT,
verbose_name=_('Motivo de Retirada de Pauta'))
class Meta: class Meta:
verbose_name = _('Pedido de Vista') verbose_name = _('Retirada de Pauta')
verbose_name_plural = _('Pedidos de Vista') verbose_name_plural = _('Retirada de Pauta')
def __str__(self): def __str__(self):
return _('Ordem: %(ordem)s - Requerente: %(requerente)s - ' return _('Ordem: %(ordem)s - Requerente: %(requerente)s - '
@ -699,6 +715,6 @@ class RegistroVista(models.Model):
# forem reestruturados e os campos ordem e expediente forem unificados # forem reestruturados e os campos ordem e expediente forem unificados
if not xor(bool(self.ordem), bool(self.expediente)): if not xor(bool(self.ordem), bool(self.expediente)):
raise ValidationError( raise ValidationError(
'RegistroVotacao deve ter exatamente um dos campos ' 'ReritadaPauta deve ter exatamente um dos campos '
'ordem ou expediente preenchido. Ambos estão preenchidos: ' 'ordem ou expediente preenchido. Ambos estão preenchidos: '
'{}, {}'. format(self.ordem, self.expediente)) '{}, {}'. format(self.ordem, self.expediente))

3
sapl/sessao/urls.py

@ -12,6 +12,7 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente,
PresencaOrdemDiaView, PresencaView, PresencaOrdemDiaView, PresencaView,
ResumoOrdenacaoView, ResumoView, ResumoAtaView, SessaoCrud, ResumoOrdenacaoView, ResumoView, ResumoAtaView, SessaoCrud,
TipoJustificativaCrud, TipoExpedienteCrud, TipoResultadoVotacaoCrud, TipoJustificativaCrud, TipoExpedienteCrud, TipoResultadoVotacaoCrud,
TipoExpedienteCrud, TipoResultadoVotacaoCrud,TipoRetiradaPautaCrud,
TipoSessaoCrud, VotacaoEditView, TipoSessaoCrud, VotacaoEditView,
VotacaoExpedienteEditView, VotacaoExpedienteEditView,
VotacaoExpedienteView, VotacaoNominalEditView, VotacaoExpedienteView, VotacaoNominalEditView,
@ -76,6 +77,8 @@ urlpatterns = [
include(TipoExpedienteCrud.get_urls())), include(TipoExpedienteCrud.get_urls())),
url(r'^sistema/sessao-plenaria/tipo-justificativa/', url(r'^sistema/sessao-plenaria/tipo-justificativa/',
include(TipoJustificativaCrud.get_urls())), include(TipoJustificativaCrud.get_urls())),
url(r'^sistema/sessao-plenaria/tipo-retirada-pauta/',
include(TipoRetiradaPautaCrud.get_urls())),
url(r'^sistema/bancada/', url(r'^sistema/bancada/',
include(BancadaCrud.get_urls())), include(BancadaCrud.get_urls())),
url(r'^sistema/bloco/', url(r'^sistema/bloco/',

16
sapl/sessao/views.py

@ -43,24 +43,22 @@ from .forms import (AdicionarVariasMateriasFilterSet, BancadaForm, BlocoForm,
MesaForm, OradorExpedienteForm, OradorForm, PautaSessaoFilterSet, MesaForm, OradorExpedienteForm, OradorForm, PautaSessaoFilterSet,
PresencaForm, ResumoOrdenacaoForm, SessaoPlenariaFilterSet, PresencaForm, ResumoOrdenacaoForm, SessaoPlenariaFilterSet,
SessaoPlenariaForm, VotacaoEditForm, VotacaoForm, SessaoPlenariaForm, VotacaoEditForm, VotacaoForm,
VotacaoNominalForm) VotacaoNominalForm, RetiradaPautaForm)
from .models import (Bancada, Bloco, CargoBancada, CargoMesa, ExpedienteMateria, from .models import (Bancada, Bloco, CargoBancada, CargoMesa,
ExpedienteSessao, JustificativaAusencia, OcorrenciaSessao, IntegranteMesa, ExpedienteMateria, ExpedienteSessao, OcorrenciaSessao, IntegranteMesa,
MateriaLegislativa, Orador, OradorExpediente, OrdemDia, MateriaLegislativa, Orador, OradorExpediente, OrdemDia,
PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao, PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao,
SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente, SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente,
TipoJustificativa, TipoResultadoVotacao, TipoSessaoPlenaria, TipoResultadoVotacao, TipoSessaoPlenaria, VotoParlamentar, TipoRetiradaPauta,
VotoParlamentar) RetiradaPauta, TipoJustificativa, JustificativaAusencia)
TipoSessaoCrud = CrudAux.build(TipoSessaoPlenaria, 'tipo_sessao_plenaria') TipoSessaoCrud = CrudAux.build(TipoSessaoPlenaria, 'tipo_sessao_plenaria')
TipoExpedienteCrud = CrudAux.build(TipoExpediente, 'tipo_expediente') TipoExpedienteCrud = CrudAux.build(TipoExpediente, 'tipo_expediente')
TipoJustificativaCrud = CrudAux.build(TipoJustificativa, 'tipo_justificativa') TipoJustificativaCrud = CrudAux.build(TipoJustificativa, 'tipo_justificativa')
CargoBancadaCrud = CrudAux.build(CargoBancada, '') CargoBancadaCrud = CrudAux.build(CargoBancada, '')
TipoResultadoVotacaoCrud = CrudAux.build(TipoResultadoVotacao, 'tipo_resultado_votacao')
TipoRetiradaPautaCrud = CrudAux.build(TipoRetiradaPauta, 'tipo_retirada_pauta')
TipoResultadoVotacaoCrud = CrudAux.build(
TipoResultadoVotacao, 'tipo_resultado_votacao')
def reordernar_materias_expediente(request, pk): def reordernar_materias_expediente(request, pk):

3
sapl/templates/menu_tabelas_auxiliares.yaml

@ -152,6 +152,9 @@
- title: {% trans 'Tipo de Expediente' %} - title: {% trans 'Tipo de Expediente' %}
url: sapl.sessao:tipoexpediente_list url: sapl.sessao:tipoexpediente_list
css_class: btn btn-link css_class: btn btn-link
- title: {% trans 'Tipo de Retirada de Pauta' %}
url: sapl.sessao:tiporetiradapauta_list
css_class: btn btn-link
- title: {% trans 'Ordenação do Resumo' %} - title: {% trans 'Ordenação do Resumo' %}
url: sapl.sessao:resumo_ordenacao url: sapl.sessao:resumo_ordenacao
css_class: btn btn-link css_class: btn btn-link

4
sapl/templates/sessao/layouts.yaml

@ -99,3 +99,7 @@ JustificativaAusencia:
- materias_do_expediente - materias_do_expediente
- materias_da_ordem_do_dia - materias_da_ordem_do_dia
- observacao - observacao
TipoRetiradaPauta:
{% trans 'Tipo Retirada Pauta'%}:
- descricao

1
sapl/templates/sistema.html

@ -104,6 +104,7 @@
<div class="col-md-6"><a href="{% url 'sapl.sessao:tiposessaoplenaria_list' %}" class="btn btn-link">Tipo de Sessão Plenária</a></div> <div class="col-md-6"><a href="{% url 'sapl.sessao:tiposessaoplenaria_list' %}" class="btn btn-link">Tipo de Sessão Plenária</a></div>
<div class="col-md-6"><a href="{% url 'sapl.sessao:tiporesultadovotacao_list' %}" class="btn btn-link">Tipo de Resultado da Votação</a></div> <div class="col-md-6"><a href="{% url 'sapl.sessao:tiporesultadovotacao_list' %}" class="btn btn-link">Tipo de Resultado da Votação</a></div>
<div class="col-md-6"><a href="{% url 'sapl.sessao:tipoexpediente_list' %}" class="btn btn-link">Tipo de Expediente</a></div> <div class="col-md-6"><a href="{% url 'sapl.sessao:tipoexpediente_list' %}" class="btn btn-link">Tipo de Expediente</a></div>
<div class="col-md-6"><a href="{% url 'sapl.sessao:tiporetiradapauta_list' %}" class="btn btn-link">Tipo de Retirada de Pauta</a></div>
<div class="col-md-6"><a href="{% url 'sapl.sessao:resumo_ordenacao' %}" class="btn btn-link">Ordenação do Resumo</a></div> <div class="col-md-6"><a href="{% url 'sapl.sessao:resumo_ordenacao' %}" class="btn btn-link">Ordenação do Resumo</a></div>
<div class="col-md-6"><a href="{% url 'sapl.sessao:tipojustificativa' %}" class="btn btn-link">Tipo de Justificativa de Ausência</a></div> <div class="col-md-6"><a href="{% url 'sapl.sessao:tipojustificativa' %}" class="btn btn-link">Tipo de Justificativa de Ausência</a></div>
</div> </div>

Loading…
Cancel
Save