From b069b074904fc9a697da7ddde1d395c4fb35029b Mon Sep 17 00:00:00 2001 From: DTILegBG Date: Wed, 19 Sep 2018 09:28:43 -0300 Subject: [PATCH 1/6] cria ocorrencia sessao --- sapl/sessao/forms.py | 6 +- sapl/sessao/legacy.yaml | 4 + .../migrations/0024_ocorrenciasessao.py | 28 +++++++ sapl/sessao/models.py | 14 ++++ sapl/sessao/urls.py | 4 +- sapl/sessao/views.py | 83 ++++++++++++++++++- sapl/templates/sessao/subnav.yaml | 2 + 7 files changed, 136 insertions(+), 5 deletions(-) create mode 100644 sapl/sessao/migrations/0024_ocorrenciasessao.py diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index f7308f62e..3e7de95ad 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -54,7 +54,8 @@ ORDENACAO_RESUMO = [('cont_mult', 'Conteúdo Multimídia'), ('mat_o_d', 'Matérias da Ordem do Dia'), ('mesa_d', 'Mesa Diretora'), ('oradores_exped', 'Oradores do Expediente'), - ('oradores_expli', 'Oradores das Explicações Pessoais')] + ('oradores_expli', 'Oradores das Explicações Pessoais'), + ('ocorrencia_sessao', 'Ocorrências da Sessão')] class SessaoPlenariaForm(ModelForm): @@ -411,6 +412,9 @@ class MesaForm(forms.Form): class ExpedienteForm(forms.Form): conteudo = forms.CharField(required=False, widget=forms.Textarea) +class OcorrenciaSessaoForm(forms.Form): + conteudo = forms.CharField(required=False, widget=forms.Textarea) + class VotacaoForm(forms.Form): votos_sim = forms.CharField(label='Sim') diff --git a/sapl/sessao/legacy.yaml b/sapl/sessao/legacy.yaml index 6df4dd90d..ef7f9f55e 100644 --- a/sapl/sessao/legacy.yaml +++ b/sapl/sessao/legacy.yaml @@ -34,6 +34,10 @@ ExpedienteSessao (ExpedienteSessaoPlenaria): sessao_plenaria: cod_sessao_plen tipo: cod_expediente +OcorrenciaSessao (OcorrenciaSessaoPlenaria): + conteudo: txt_ocorrencia + sessao_plenaria: cod_sessao_plen + IntegranteMesa (MesaSessaoPlenaria): cargo: cod_cargo parlamentar: cod_parlamentar diff --git a/sapl/sessao/migrations/0024_ocorrenciasessao.py b/sapl/sessao/migrations/0024_ocorrenciasessao.py new file mode 100644 index 000000000..6c612363f --- /dev/null +++ b/sapl/sessao/migrations/0024_ocorrenciasessao.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2018-09-18 13:44 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('sessao', '0023_auto_20180914_1315'), + ] + + operations = [ + migrations.CreateModel( + name='OcorrenciaSessao', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('conteudo', models.TextField(blank=True, verbose_name='Ocorrências da Sessão Plenária')), + ('sessao_plenaria', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='sessao.SessaoPlenaria')), + ], + options={ + 'verbose_name_plural': 'Ocorrências da Sessão Plenaria', + 'verbose_name': 'Ocorrência da Sessão Plenaria', + }, + ), + ] diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index 11047ed9e..6d885e54a 100644 --- a/sapl/sessao/models.py +++ b/sapl/sessao/models.py @@ -300,6 +300,20 @@ class ExpedienteSessao(models.Model): # ExpedienteSessaoPlenaria def __str__(self): return '%s - %s' % (self.tipo, self.sessao_plenaria) +@reversion.register() +class OcorrenciaSessao(models.Model): # OcorrenciaSessaoPlenaria + sessao_plenaria = models.ForeignKey(SessaoPlenaria, + on_delete=models.PROTECT) + conteudo = models.TextField( + blank=True, verbose_name=_('Ocorrências da Sessão Plenária')) + + class Meta: + verbose_name = _('Ocorrência da Sessão Plenaria') + verbose_name_plural = _('Ocorrências da Sessão Plenaria') + + def __str__(self): + return '%s - %s' % (self.sessao_plenaria) + @reversion.register() class IntegranteMesa(models.Model): # MesaSessaoPlenaria diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index 201623824..e654c8243 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -3,7 +3,7 @@ from django.conf.urls import include, url from sapl.sessao.views import (AdicionarVariasMateriasExpediente, AdicionarVariasMateriasOrdemDia, BancadaCrud, BlocoCrud, CargoBancadaCrud, - ExpedienteMateriaCrud, ExpedienteView, + ExpedienteMateriaCrud, ExpedienteView, ocorrencia_sessaoView, MateriaOrdemDiaCrud, MesaView, OradorCrud, OradorExpedienteCrud, PainelView, PautaSessaoDetailView, PautaSessaoView, @@ -100,6 +100,8 @@ urlpatterns = [ # Subnav sessão url(r'^sessao/(?P\d+)/expediente$', ExpedienteView.as_view(), name='expediente'), + url(r'^sessao/(?P\d+)/ocorrencia_sessao$', + ocorrencia_sessaoView.as_view(), name='ocorrencia_sessao'), url(r'^sessao/(?P\d+)/presenca$', PresencaView.as_view(), name='presenca'), url(r'^sessao/(?P\d+)/painel$', diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 32813f84a..8fa2d532b 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -37,13 +37,13 @@ from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm from sapl.utils import show_results_filter_set, remover_acentos from .forms import (AdicionarVariasMateriasFilterSet, BancadaForm, BlocoForm, - ExpedienteForm, ListMateriaForm, MesaForm, + ExpedienteForm, OcorrenciaSessaoForm, ListMateriaForm, MesaForm, OradorExpedienteForm, OradorForm, PautaSessaoFilterSet, PresencaForm, ResumoOrdenacaoForm, SessaoPlenariaFilterSet, SessaoPlenariaForm, VotacaoEditForm, VotacaoForm, VotacaoNominalForm) from .models import (Bancada, Bloco, CargoBancada, CargoMesa, - ExpedienteMateria, ExpedienteSessao, IntegranteMesa, + ExpedienteMateria, ExpedienteSessao, OcorrenciaSessao, IntegranteMesa, MateriaLegislativa, Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao, SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente, @@ -1535,7 +1535,84 @@ class ExpedienteView(FormMixin, DetailView): def get_success_url(self): pk = self.kwargs['pk'] return reverse('sapl.sessao:expediente', kwargs={'pk': pk}) + +class ocorrencia_sessaoView(FormMixin, DetailView): + template_name = 'sessao/ocorrencia_sessao.html' + form_class = OcorrenciaSessaoForm + model = SessaoPlenaria + + def get_context_data(self, **kwargs): + context = FormMixin.get_context_data(self, **kwargs) + context['title'] = '%s (%s)' % ( + _('Ocorrências da Sessão'), self.object) + return context + + @method_decorator(permission_required('sessao.add_ocorrenciasessao')) + def post(self, request, *args, **kwargs): + self.object = self.get_object() + form = OcorrenciaSessaoForm(request.POST) + + if 'apagar-ocorrencia_sessao' in request.POST: + OcorrenciaSessao.objects.filter( + sessao_plenaria_id=self.object.id).delete() + return self.form_valid(form) + + if form.is_valid(): + list_conteudo = request.POST.getlist('conteudo') + + for tipo, conteudo in zip(list_tipo, list_conteudo): + ExpedienteSessao.objects.filter( + sessao_plenaria_id=self.object.id, + tipo_id=tipo).delete() + + expediente = ExpedienteSessao() + expediente.sessao_plenaria_id = self.object.id + expediente.tipo_id = tipo + expediente.conteudo = conteudo + expediente.save() + + msg = _('Registro salvo com sucesso') + messages.add_message(self.request, messages.SUCCESS, msg) + return self.form_valid(form) + else: + msg = _('Erro ao salvar registro') + messages.add_message(self.request, messages.SUCCESS, msg) + return self.form_invalid(form) + + def get(self, request, *args, **kwargs): + self.object = self.get_object() + context = self.get_context_data(object=self.object) + tipos = TipoExpediente.objects.all().order_by('nome') + expedientes_sessao = ExpedienteSessao.objects.filter( + sessao_plenaria_id=self.object.id).order_by('tipo__nome') + + expedientes_salvos = [] + for e in expedientes_sessao: + expedientes_salvos.append(e.tipo) + + tipos_null = list(set(tipos) - set(expedientes_salvos)) + tipos_null.sort(key=lambda x: x.nome) + + expedientes = [] + for e, t in zip(expedientes_sessao, tipos): + expedientes.append({'tipo': e.tipo, + 'conteudo': e.conteudo + }) + context.update({'expedientes': expedientes}) + + for e in tipos_null: + expedientes.append({'tipo': e, + 'conteudo': '' + }) + + context.update({'expedientes': expedientes}) + return self.render_to_response(context) + + def get_success_url(self): + pk = self.kwargs['pk'] + return reverse('sapl.sessao:ocorrencia_sessao', kwargs={'pk': pk}) + class VotacaoEditView(SessaoPermissionMixin): @@ -1645,7 +1722,7 @@ class VotacaoView(SessaoPermissionMixin): def post(self, request, *args, **kwargs): self.object = self.get_object() form = VotacaoForm(request.POST) - context = self.get_context_data(object=self.object) + context = self.get_context_d(object=self.object) url = request.get_full_path() # ==================================================== diff --git a/sapl/templates/sessao/subnav.yaml b/sapl/templates/sessao/subnav.yaml index 236d57c4c..0a98b8a3b 100644 --- a/sapl/templates/sessao/subnav.yaml +++ b/sapl/templates/sessao/subnav.yaml @@ -10,6 +10,8 @@ url: presenca - title: {% trans 'Explicações Pessoais' %} url: orador_list + - title: {% trans 'Ocorrências da Sessão' %} + url: ocorrencia_sessao - title: {% trans 'Expedientes' %} children: From d3806b6d4dd7a1b771cee0020f669ce44883911c Mon Sep 17 00:00:00 2001 From: DTILegBG Date: Wed, 19 Sep 2018 10:20:20 -0300 Subject: [PATCH 2/6] cria ocorrencia sessao --- sapl/templates/sessao/ocorrencia_sessao.html | 32 ++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sapl/templates/sessao/ocorrencia_sessao.html diff --git a/sapl/templates/sessao/ocorrencia_sessao.html b/sapl/templates/sessao/ocorrencia_sessao.html new file mode 100644 index 000000000..d0f1f8962 --- /dev/null +++ b/sapl/templates/sessao/ocorrencia_sessao.html @@ -0,0 +1,32 @@ +{% extends "crud/detail.html" %} +{% load i18n %} +{% load crispy_forms_tags %} +{% load common_tags %} + +{% block actions %}{% endblock %} + +{% block detail_content %} + +
+{% csrf_token %} +
+ +
+ + +
+ +{% endblock detail_content %} + +{% block extra_js %} + {% if perms|get_add_perm:view %} + + + {% else %} + + {% endif %} +{% endblock %} From dc0a709f9dc234392ef31d87ebd2e3ff3c2128a9 Mon Sep 17 00:00:00 2001 From: Leandro Roberto Date: Wed, 19 Sep 2018 11:21:34 -0300 Subject: [PATCH 3/6] ajusta detalhes na ocorrencia de sessao --- .../migrations/0025_auto_20180919_1116.py | 21 +++++++ sapl/sessao/models.py | 7 ++- sapl/sessao/urls.py | 6 +- sapl/sessao/views.py | 61 +++++-------------- sapl/templates/sessao/ocorrencia_sessao.html | 2 +- 5 files changed, 45 insertions(+), 52 deletions(-) create mode 100644 sapl/sessao/migrations/0025_auto_20180919_1116.py diff --git a/sapl/sessao/migrations/0025_auto_20180919_1116.py b/sapl/sessao/migrations/0025_auto_20180919_1116.py new file mode 100644 index 000000000..fa4c0a435 --- /dev/null +++ b/sapl/sessao/migrations/0025_auto_20180919_1116.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.13 on 2018-09-19 14:16 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('sessao', '0024_ocorrenciasessao'), + ] + + operations = [ + migrations.AlterField( + model_name='ocorrenciasessao', + name='sessao_plenaria', + field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, to='sessao.SessaoPlenaria'), + ), + ] diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index 6d885e54a..7f8ea0882 100644 --- a/sapl/sessao/models.py +++ b/sapl/sessao/models.py @@ -300,10 +300,11 @@ class ExpedienteSessao(models.Model): # ExpedienteSessaoPlenaria def __str__(self): return '%s - %s' % (self.tipo, self.sessao_plenaria) + @reversion.register() class OcorrenciaSessao(models.Model): # OcorrenciaSessaoPlenaria - sessao_plenaria = models.ForeignKey(SessaoPlenaria, - on_delete=models.PROTECT) + sessao_plenaria = models.OneToOneField(SessaoPlenaria, + on_delete=models.PROTECT) conteudo = models.TextField( blank=True, verbose_name=_('Ocorrências da Sessão Plenária')) @@ -312,7 +313,7 @@ class OcorrenciaSessao(models.Model): # OcorrenciaSessaoPlenaria verbose_name_plural = _('Ocorrências da Sessão Plenaria') def __str__(self): - return '%s - %s' % (self.sessao_plenaria) + return '%s - %s' % (self.sessao_plenaria, self.conteudo) @reversion.register() diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index e654c8243..1e3e4ae43 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -3,7 +3,7 @@ from django.conf.urls import include, url from sapl.sessao.views import (AdicionarVariasMateriasExpediente, AdicionarVariasMateriasOrdemDia, BancadaCrud, BlocoCrud, CargoBancadaCrud, - ExpedienteMateriaCrud, ExpedienteView, ocorrencia_sessaoView, + ExpedienteMateriaCrud, ExpedienteView, OcorrenciaSessaoView, MateriaOrdemDiaCrud, MesaView, OradorCrud, OradorExpedienteCrud, PainelView, PautaSessaoDetailView, PautaSessaoView, @@ -101,7 +101,7 @@ urlpatterns = [ url(r'^sessao/(?P\d+)/expediente$', ExpedienteView.as_view(), name='expediente'), url(r'^sessao/(?P\d+)/ocorrencia_sessao$', - ocorrencia_sessaoView.as_view(), name='ocorrencia_sessao'), + OcorrenciaSessaoView.as_view(), name='ocorrencia_sessao'), url(r'^sessao/(?P\d+)/presenca$', PresencaView.as_view(), name='presenca'), url(r'^sessao/(?P\d+)/painel$', @@ -112,7 +112,7 @@ urlpatterns = [ url(r'^sessao/(?P\d+)/resumo$', ResumoView.as_view(), name='resumo'), url(r'^sessao/(?P\d+)/resumo_ata$', - ResumoAtaView.as_view(), name='resumo_ata'), + ResumoAtaView.as_view(), name='resumo_ata'), url(r'^sessao/pesquisar-sessao$', PesquisarSessaoPlenariaView.as_view(), name='pesquisar_sessao'), url(r'^sessao/(?P\d+)/matordemdia/votnom/(?P\d+)/(?P\d+)$', diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 8fa2d532b..cd2ac714b 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -1455,9 +1455,12 @@ class ResumoView(DetailView): 'decimo_ordenacao': dict_ord_template['oradores_expli']}) return self.render_to_response(context) + + class ResumoAtaView(ResumoView): template_name = 'sessao/resumo_ata.html' + class ExpedienteView(FormMixin, DetailView): template_name = 'sessao/expediente.html' form_class = ExpedienteForm @@ -1535,8 +1538,9 @@ class ExpedienteView(FormMixin, DetailView): def get_success_url(self): pk = self.kwargs['pk'] return reverse('sapl.sessao:expediente', kwargs={'pk': pk}) - -class ocorrencia_sessaoView(FormMixin, DetailView): + + +class OcorrenciaSessaoView(FormMixin, DetailView): template_name = 'sessao/ocorrencia_sessao.html' form_class = OcorrenciaSessaoForm model = SessaoPlenaria @@ -1558,61 +1562,28 @@ class ocorrencia_sessaoView(FormMixin, DetailView): return self.form_valid(form) if form.is_valid(): - list_conteudo = request.POST.getlist('conteudo') + conteudo = request.POST.get('conteudo') - for tipo, conteudo in zip(list_tipo, list_conteudo): - - ExpedienteSessao.objects.filter( - sessao_plenaria_id=self.object.id, - tipo_id=tipo).delete() + OcorrenciaSessao.objects.filter( + sessao_plenaria_id=self.object.id).delete() - expediente = ExpedienteSessao() - expediente.sessao_plenaria_id = self.object.id - expediente.tipo_id = tipo - expediente.conteudo = conteudo - expediente.save() + ocorrencia = OcorrenciaSessao() + ocorrencia.sessao_plenaria_id = self.object.id + ocorrencia.conteudo = conteudo + ocorrencia.save() - msg = _('Registro salvo com sucesso') - messages.add_message(self.request, messages.SUCCESS, msg) + msg = _('Registro salvo com sucesso') + messages.add_message(self.request, messages.SUCCESS, msg) return self.form_valid(form) else: msg = _('Erro ao salvar registro') messages.add_message(self.request, messages.SUCCESS, msg) return self.form_invalid(form) - def get(self, request, *args, **kwargs): - self.object = self.get_object() - context = self.get_context_data(object=self.object) - tipos = TipoExpediente.objects.all().order_by('nome') - expedientes_sessao = ExpedienteSessao.objects.filter( - sessao_plenaria_id=self.object.id).order_by('tipo__nome') - - expedientes_salvos = [] - for e in expedientes_sessao: - expedientes_salvos.append(e.tipo) - - tipos_null = list(set(tipos) - set(expedientes_salvos)) - tipos_null.sort(key=lambda x: x.nome) - - expedientes = [] - for e, t in zip(expedientes_sessao, tipos): - expedientes.append({'tipo': e.tipo, - 'conteudo': e.conteudo - }) - context.update({'expedientes': expedientes}) - - for e in tipos_null: - expedientes.append({'tipo': e, - 'conteudo': '' - }) - - context.update({'expedientes': expedientes}) - return self.render_to_response(context) - def get_success_url(self): pk = self.kwargs['pk'] return reverse('sapl.sessao:ocorrencia_sessao', kwargs={'pk': pk}) - + class VotacaoEditView(SessaoPermissionMixin): diff --git a/sapl/templates/sessao/ocorrencia_sessao.html b/sapl/templates/sessao/ocorrencia_sessao.html index d0f1f8962..f487a4b6e 100644 --- a/sapl/templates/sessao/ocorrencia_sessao.html +++ b/sapl/templates/sessao/ocorrencia_sessao.html @@ -10,7 +10,7 @@
{% csrf_token %}
- +
From 6126f706add2fb78ab7cb313c8f2e13ca4d78b99 Mon Sep 17 00:00:00 2001 From: DTILegBG Date: Wed, 19 Sep 2018 13:10:50 -0300 Subject: [PATCH 4/6] ajusta modo anonimo --- sapl/templates/sessao/ocorrencia_sessao.html | 40 ++++++++++---------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/sapl/templates/sessao/ocorrencia_sessao.html b/sapl/templates/sessao/ocorrencia_sessao.html index f487a4b6e..709ca9348 100644 --- a/sapl/templates/sessao/ocorrencia_sessao.html +++ b/sapl/templates/sessao/ocorrencia_sessao.html @@ -6,27 +6,25 @@ {% block actions %}{% endblock %} {% block detail_content %} - - -{% csrf_token %} -
- -
- - - - + {% if perms|get_add_perm:view %} +
+ {% csrf_token %} +
+ +
+ + +
+ {% else %} + {{object.ocorrenciasessao.conteudo|safe}} + {% endif %} {% endblock detail_content %} + {% block extra_js %} - {% if perms|get_add_perm:view %} - - - {% else %} - - {% endif %} -{% endblock %} + {% if perms|get_add_perm:view %} + + {% endif %} +{% endblock %} \ No newline at end of file From 5b82d79a7fc376524399f6e96c2cbac046ab8bc7 Mon Sep 17 00:00:00 2001 From: DTILegBG Date: Wed, 19 Sep 2018 14:38:48 -0300 Subject: [PATCH 5/6] ajustes criticas --- sapl/sessao/forms.py | 2 +- sapl/sessao/views.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 3e7de95ad..13e0e5cc8 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -413,7 +413,7 @@ class ExpedienteForm(forms.Form): conteudo = forms.CharField(required=False, widget=forms.Textarea) class OcorrenciaSessaoForm(forms.Form): - conteudo = forms.CharField(required=False, widget=forms.Textarea) + conteudo = forms.CharField(required=True, widget=forms.Textarea) class VotacaoForm(forms.Form): diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index cd2ac714b..53099b338 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -1546,7 +1546,7 @@ class OcorrenciaSessaoView(FormMixin, DetailView): model = SessaoPlenaria def get_context_data(self, **kwargs): - context = FormMixin.get_context_data(self, **kwargs) + context = super().get_context_data(**kwargs) context['title'] = '%s (%s)' % ( _('Ocorrências da Sessão'), self.object) return context @@ -1693,7 +1693,7 @@ class VotacaoView(SessaoPermissionMixin): def post(self, request, *args, **kwargs): self.object = self.get_object() form = VotacaoForm(request.POST) - context = self.get_context_d(object=self.object) + context = self.get_context_data(object=self.object) url = request.get_full_path() # ==================================================== From d10a441edae3dac15f2a28b0bfdaa9fc73bff235 Mon Sep 17 00:00:00 2001 From: Leandro Roberto Date: Wed, 19 Sep 2018 16:09:38 -0300 Subject: [PATCH 6/6] corrige erro do travis --- sapl/rules/map_rules.py | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/sapl/rules/map_rules.py b/sapl/rules/map_rules.py index bba114149..4c4f07d7c 100644 --- a/sapl/rules/map_rules.py +++ b/sapl/rules/map_rules.py @@ -1,23 +1,3 @@ -from sapl.base import models as base -from sapl.comissoes import models as comissoes -from sapl.compilacao import models as compilacao -from sapl.lexml import models as lexml -from sapl.materia import models as materia -from sapl.norma import models as norma -from sapl.painel import models as painel -from sapl.parlamentares import models as parlamentares -from sapl.protocoloadm import models as protocoloadm -from sapl.audiencia import models as audiencia -from sapl.rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, RP_LIST, - SAPL_GROUP_ADMINISTRATIVO, SAPL_GROUP_ANONYMOUS, - SAPL_GROUP_AUTOR, SAPL_GROUP_COMISSOES, - SAPL_GROUP_GERAL, SAPL_GROUP_LOGIN_SOCIAL, - SAPL_GROUP_MATERIA, SAPL_GROUP_NORMA, - SAPL_GROUP_PAINEL, SAPL_GROUP_PARLAMENTAR, - SAPL_GROUP_PROTOCOLO, SAPL_GROUP_SESSAO, - SAPL_GROUP_VOTANTE) -from sapl.sessao import models as sessao - """ Todas as permissões do django framework seguem o padrão @@ -46,6 +26,26 @@ negócio trabalham com os cinco radiais de permissão e com qualquer outro tipo de permissão customizada, nesta ordem de precedência. """ +from sapl.audiencia import models as audiencia +from sapl.base import models as base +from sapl.comissoes import models as comissoes +from sapl.compilacao import models as compilacao +from sapl.lexml import models as lexml +from sapl.materia import models as materia +from sapl.norma import models as norma +from sapl.painel import models as painel +from sapl.parlamentares import models as parlamentares +from sapl.protocoloadm import models as protocoloadm +from sapl.rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, RP_LIST, + SAPL_GROUP_ADMINISTRATIVO, SAPL_GROUP_ANONYMOUS, + SAPL_GROUP_AUTOR, SAPL_GROUP_COMISSOES, + SAPL_GROUP_GERAL, SAPL_GROUP_LOGIN_SOCIAL, + SAPL_GROUP_MATERIA, SAPL_GROUP_NORMA, + SAPL_GROUP_PAINEL, SAPL_GROUP_PARLAMENTAR, + SAPL_GROUP_PROTOCOLO, SAPL_GROUP_SESSAO, + SAPL_GROUP_VOTANTE) +from sapl.sessao import models as sessao + __base__ = [RP_LIST, RP_DETAIL, RP_ADD, RP_CHANGE, RP_DELETE] __listdetailchange__ = [RP_LIST, RP_DETAIL, RP_CHANGE] @@ -161,6 +161,7 @@ rules_group_sessao = { (sessao.ExpedienteMateria, __base__), (sessao.IntegranteMesa, __base__), (sessao.ExpedienteSessao, __base__), + (sessao.OcorrenciaSessao, __base__), (sessao.Orador, __base__), (sessao.OradorExpediente, __base__), (sessao.OrdemDia, __base__),