From 3955575f4da4b36e84b4af88c43fde0abe60be17 Mon Sep 17 00:00:00 2001 From: Mariana Mendes Date: Thu, 17 Aug 2017 17:09:25 -0300 Subject: [PATCH 1/8] Corrige os erros relacionados a ordem dos imports --- create_admin.py | 2 ++ sapl/api/forms.py | 4 ++-- sapl/api/urls.py | 6 +++--- sapl/api/views.py | 4 ++-- sapl/base/forms.py | 5 ++--- sapl/base/models.py | 3 +-- sapl/base/urls.py | 3 +-- sapl/base/views.py | 6 +++--- sapl/crispy_layout_mixin.py | 2 +- sapl/crud/base.py | 3 +-- sapl/legacy/migration.py | 10 +++++----- sapl/materia/forms.py | 10 +++++----- sapl/materia/models.py | 3 +-- sapl/materia/signals.py | 4 +--- sapl/materia/tests/test_materia.py | 2 +- sapl/materia/urls.py | 9 ++++----- sapl/materia/views.py | 17 ++++++++-------- sapl/painel/urls.py | 4 ++-- sapl/painel/views.py | 4 ++-- sapl/parlamentares/models.py | 2 +- sapl/parlamentares/urls.py | 3 +-- sapl/parlamentares/views.py | 4 +--- sapl/protocoloadm/forms.py | 6 +++--- sapl/protocoloadm/views.py | 12 +++++------ sapl/redireciona_urls/urls.py | 32 ++++++++++++------------------ sapl/redireciona_urls/views.py | 4 +++- sapl/relatorios/views.py | 2 +- sapl/sessao/forms.py | 4 ++-- sapl/sessao/views.py | 13 ++++++------ sapl/settings.py | 1 - sapl/utils.py | 7 +++---- scripts/set_inicio_mandato.py | 2 +- 32 files changed, 88 insertions(+), 105 deletions(-) diff --git a/create_admin.py b/create_admin.py index eb60ac940..c69d18062 100644 --- a/create_admin.py +++ b/create_admin.py @@ -1,6 +1,8 @@ import os import sys + import django + from sapl import settings os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sapl.settings") diff --git a/sapl/api/forms.py b/sapl/api/forms.py index f70ffe2f2..f8ad6fee7 100644 --- a/sapl/api/forms.py +++ b/sapl/api/forms.py @@ -1,9 +1,9 @@ -from django.db.models import Q, F +from django.db.models import F, Q from django.forms.fields import CharField, MultiValueField from django.forms.widgets import MultiWidget, TextInput from django.utils import timezone from django.utils.translation import ugettext_lazy as _ -from django_filters.filters import MethodFilter, ModelChoiceFilter, DateFilter +from django_filters.filters import DateFilter, MethodFilter, ModelChoiceFilter from rest_framework import serializers from rest_framework.compat import django_filters from rest_framework.filters import FilterSet diff --git a/sapl/api/urls.py b/sapl/api/urls.py index 314b2b339..1f19e9d1f 100644 --- a/sapl/api/urls.py +++ b/sapl/api/urls.py @@ -2,9 +2,9 @@ from django.conf import settings from django.conf.urls import include, url from rest_framework.routers import DefaultRouter -from sapl.api.views import (AutorListView, MateriaLegislativaViewSet, - ModelChoiceView, SessaoPlenariaViewSet, - AutoresPossiveisListView, AutoresProvaveisListView) +from sapl.api.views import (AutoresPossiveisListView, AutoresProvaveisListView, + AutorListView, MateriaLegislativaViewSet, + ModelChoiceView, SessaoPlenariaViewSet) from .apps import AppConfig diff --git a/sapl/api/views.py b/sapl/api/views.py index 7c8ddcf8d..1eccaf5ef 100644 --- a/sapl/api/views.py +++ b/sapl/api/views.py @@ -9,8 +9,8 @@ from rest_framework.permissions import (AllowAny, IsAuthenticated, IsAuthenticatedOrReadOnly) from rest_framework.viewsets import GenericViewSet, ModelViewSet -from sapl.api.forms import AutorChoiceFilterSet, AutorSearchForFieldFilterSet,\ - AutoresPossiveisFilterSet +from sapl.api.forms import (AutorChoiceFilterSet, AutoresPossiveisFilterSet, + AutorSearchForFieldFilterSet) from sapl.api.serializers import (AutorChoiceSerializer, AutorSerializer, ChoiceSerializer, MateriaLegislativaSerializer, diff --git a/sapl/base/forms.py b/sapl/base/forms.py index f95cc9bb8..13880703c 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -1,3 +1,4 @@ +import django_filters from crispy_forms.bootstrap import FieldWithButtons, InlineRadios, StrictButton from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML, Button, Div, Field, Fieldset, Layout, Row @@ -12,9 +13,8 @@ from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ValidationError from django.db import models, transaction from django.forms import ModelForm -from django.utils.translation import string_concat from django.utils.translation import ugettext_lazy as _ -import django_filters +from django.utils.translation import string_concat from sapl.base.models import Autor, TipoAutor from sapl.crispy_layout_mixin import (SaplFormLayout, form_actions, to_column, @@ -29,7 +29,6 @@ from sapl.utils import (RANGE_ANOS, ChoiceWithoutValidationField, from .models import AppConfig, CasaLegislativa - ACTION_CREATE_USERS_AUTOR_CHOICE = [ ('C', _('Criar novo Usuário')), ('A', _('Associar um usuário existente')), diff --git a/sapl/base/models.py b/sapl/base/models.py index 2917ea3ea..c75091341 100644 --- a/sapl/base/models.py +++ b/sapl/base/models.py @@ -1,12 +1,11 @@ +import reversion from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from django.db import models from django.utils.translation import ugettext_lazy as _ -import reversion from sapl.utils import UF, YES_NO_CHOICES, get_settings_auth_user_model - TIPO_DOCUMENTO_ADMINISTRATIVO = (('O', _('Ostensivo')), ('R', _('Restritivo'))) diff --git a/sapl/base/urls.py b/sapl/base/urls.py index 500d44f04..ed55f1767 100644 --- a/sapl/base/urls.py +++ b/sapl/base/urls.py @@ -16,8 +16,7 @@ from .views import (AppConfigCrud, CasaLegislativaCrud, HelpView, RelatorioMateriasPorAnoAutorTipoView, RelatorioMateriasPorAutorView, RelatorioMateriasTramitacaoView, - RelatorioPresencaSessaoView, - SaplSearchView) + RelatorioPresencaSessaoView, SaplSearchView) app_name = AppConfig.name diff --git a/sapl/base/views.py b/sapl/base/views.py index 1450bc16b..f8c0832cf 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -14,7 +14,6 @@ from django.utils.http import urlsafe_base64_decode, urlsafe_base64_encode from django.utils.translation import ugettext_lazy as _ from django.views.generic.base import TemplateView from django_filters.views import FilterView - from haystack.views import SearchView from sapl.base.forms import AutorForm, AutorFormForAdmin, TipoAutorForm @@ -22,7 +21,8 @@ from sapl.base.models import Autor, TipoAutor from sapl.crud.base import CrudAux from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa from sapl.parlamentares.models import Parlamentar -from sapl.sessao.models import PresencaOrdemDia, SessaoPlenaria, SessaoPlenariaPresenca +from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria, + SessaoPlenariaPresenca) from sapl.utils import parlamentares_ativos, sapl_logger from .forms import (CasaLegislativaForm, ConfiguracoesAppForm, @@ -497,4 +497,4 @@ class SaplSearchView(SearchView): for m in models: context['models'] = context['models'] + '&models=' + m - return context \ No newline at end of file + return context diff --git a/sapl/crispy_layout_mixin.py b/sapl/crispy_layout_mixin.py index e46a193e1..eec259190 100644 --- a/sapl/crispy_layout_mixin.py +++ b/sapl/crispy_layout_mixin.py @@ -1,5 +1,6 @@ from math import ceil +import rtyaml from crispy_forms.bootstrap import FormActions from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML, Div, Fieldset, Layout, Submit @@ -7,7 +8,6 @@ from django import template from django.core.urlresolvers import reverse from django.utils import formats from django.utils.translation import ugettext as _ -import rtyaml def heads_and_tails(list_of_lists): diff --git a/sapl/crud/base.py b/sapl/crud/base.py index 70ea1c859..05c2b03a9 100644 --- a/sapl/crud/base.py +++ b/sapl/crud/base.py @@ -17,8 +17,8 @@ from django.http.response import Http404 from django.shortcuts import redirect from django.utils.decorators import classonlymethod from django.utils.encoding import force_text -from django.utils.translation import string_concat from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import string_concat from django.views.generic import (CreateView, DeleteView, DetailView, ListView, UpdateView) from django.views.generic.base import ContextMixin @@ -30,7 +30,6 @@ from sapl.rules.map_rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, from sapl.settings import BASE_DIR from sapl.utils import normalize - logger = logging.getLogger(BASE_DIR.name) ACTION_LIST, ACTION_CREATE, ACTION_DETAIL, ACTION_UPDATE, ACTION_DELETE = \ diff --git a/sapl/legacy/migration.py b/sapl/legacy/migration.py index fcf2f0837..a405b8f0b 100644 --- a/sapl/legacy/migration.py +++ b/sapl/legacy/migration.py @@ -12,7 +12,7 @@ from django.contrib.auth.models import Group from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist from django.db import OperationalError, ProgrammingError, connections, models -from django.db.models import CharField, Max, ProtectedError, TextField, Count +from django.db.models import CharField, Count, Max, ProtectedError, TextField from django.db.models.base import ModelBase from django.db.models.signals import post_delete, post_save from model_mommy import mommy @@ -26,11 +26,11 @@ from sapl.materia.models import (AcompanhamentoMateria, DocumentoAcessorio, StatusTramitacao, TipoDocumento, TipoMateriaLegislativa, TipoProposicao, Tramitacao) -from sapl.norma.models import (AssuntoNorma, NormaJuridica, - TipoVinculoNormaJuridica, NormaRelacionada) -from sapl.parlamentares.models import (Legislatura,Mandato, Parlamentar, +from sapl.norma.models import (AssuntoNorma, NormaJuridica, NormaRelacionada, + TipoVinculoNormaJuridica) +from sapl.parlamentares.models import (Legislatura, Mandato, Parlamentar, TipoAfastamento) -from sapl.protocoloadm.models import (DocumentoAdministrativo,Protocolo, +from sapl.protocoloadm.models import (DocumentoAdministrativo, Protocolo, StatusTramitacaoAdministrativo) from sapl.sessao.models import ExpedienteMateria, OrdemDia, RegistroVotacao from sapl.settings import PROJECT_DIR diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index 5f5279d39..21d1845d8 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -1,7 +1,8 @@ -from datetime import date, datetime import os +from datetime import date, datetime +import django_filters from crispy_forms.bootstrap import Alert, FormActions, InlineRadios from crispy_forms.helper import FormHelper from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset, @@ -13,16 +14,16 @@ from django.core.files.base import File from django.core.urlresolvers import reverse from django.db import models, transaction from django.db.models import Max -from django.forms import ModelForm, ModelChoiceField, widgets +from django.forms import ModelChoiceField, ModelForm, widgets from django.forms.forms import Form from django.forms.models import ModelMultipleChoiceField -from django.forms.widgets import Select, CheckboxSelectMultiple, HiddenInput +from django.forms.widgets import CheckboxSelectMultiple, HiddenInput, Select from django.utils.encoding import force_text from django.utils.html import format_html from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ -import django_filters +import sapl from sapl.base.models import Autor, TipoAutor from sapl.comissoes.models import Comissao from sapl.compilacao.models import (STATUS_TA_IMMUTABLE_PUBLIC, @@ -41,7 +42,6 @@ from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES, MateriaPesquisaOrderingFilter, RangeWidgetOverride, autor_label, autor_modal, models_with_gr_for_model, qs_override_django_filter) -import sapl from .models import (AcompanhamentoMateria, Anexada, Autoria, DespachoInicial, DocumentoAcessorio, Numeracao, Proposicao, Relatoria, diff --git a/sapl/materia/models.py b/sapl/materia/models.py index 36d375068..cd44363b4 100644 --- a/sapl/materia/models.py +++ b/sapl/materia/models.py @@ -1,5 +1,6 @@ from datetime import datetime +import reversion from django.contrib.auth.models import Group from django.contrib.contenttypes.fields import GenericRelation from django.contrib.contenttypes.models import ContentType @@ -8,7 +9,6 @@ from django.db import models from django.utils import formats from django.utils.translation import ugettext_lazy as _ from model_utils import Choices -import reversion from sapl.base.models import Autor from sapl.comissoes.models import Comissao @@ -19,7 +19,6 @@ from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES, SaplGenericForeignKey, SaplGenericRelation, restringe_tipos_de_arquivo_txt, texto_upload_path) - EM_TRAMITACAO = [(1, 'Sim'), (0, 'Não')] diff --git a/sapl/materia/signals.py b/sapl/materia/signals.py index f1cf66e03..e774b0191 100644 --- a/sapl/materia/signals.py +++ b/sapl/materia/signals.py @@ -1,8 +1,6 @@ -from django.db.models.signals import post_delete, post_save - import django.dispatch +from django.db.models.signals import post_delete, post_save from .models import DocumentoAcessorio, MateriaLegislativa - tramitacao_signal = django.dispatch.Signal(providing_args=['post', 'request']) diff --git a/sapl/materia/tests/test_materia.py b/sapl/materia/tests/test_materia.py index 0090376bf..071d51d4c 100644 --- a/sapl/materia/tests/test_materia.py +++ b/sapl/materia/tests/test_materia.py @@ -1,9 +1,9 @@ +import pytest from django.contrib.auth import get_user_model from django.contrib.contenttypes.models import ContentType from django.core.files.uploadedfile import SimpleUploadedFile from django.core.urlresolvers import reverse from model_mommy import mommy -import pytest from sapl.base.models import Autor, TipoAutor from sapl.comissoes.models import Comissao, TipoComissao diff --git a/sapl/materia/urls.py b/sapl/materia/urls.py index d588f1f20..2cbb3a62b 100644 --- a/sapl/materia/urls.py +++ b/sapl/materia/urls.py @@ -4,8 +4,9 @@ from sapl.materia.views import (AcompanhamentoConfirmarView, AcompanhamentoExcluirView, AcompanhamentoMateriaView, AnexadaCrud, AssuntoMateriaCrud, AutoriaCrud, - ConfirmarProposicao, CriarProtocoloMateriaView, - DespachoInicialCrud, DocumentoAcessorioCrud, + AutoriaMultiCreateView, ConfirmarProposicao, + CriarProtocoloMateriaView, DespachoInicialCrud, + DocumentoAcessorioCrud, DocumentoAcessorioEmLoteView, LegislacaoCitadaCrud, MateriaAssuntoCrud, MateriaLegislativaCrud, @@ -20,13 +21,11 @@ from sapl.materia.views import (AcompanhamentoConfirmarView, TipoFimRelatoriaCrud, TipoMateriaCrud, TipoProposicaoCrud, TramitacaoCrud, TramitacaoEmLoteView, UnidadeTramitacaoCrud, - proposicao_texto, recuperar_materia, - AutoriaMultiCreateView) + proposicao_texto, recuperar_materia) from . import receivers from .apps import AppConfig - app_name = AppConfig.name urlpatterns_materia = [ diff --git a/sapl/materia/views.py b/sapl/materia/views.py index c4cf64639..a206ae06f 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -1,4 +1,4 @@ -from datetime import datetime, date +from datetime import date, datetime from random import choice from string import ascii_letters, digits @@ -9,8 +9,7 @@ from django.contrib import messages from django.contrib.auth.decorators import permission_required from django.contrib.auth.mixins import PermissionRequiredMixin from django.contrib.contenttypes.models import ContentType -from django.core.exceptions import (ObjectDoesNotExist, - MultipleObjectsReturned) +from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist from django.core.urlresolvers import reverse from django.db.models import Q from django.http import HttpResponse, JsonResponse @@ -23,6 +22,7 @@ from django.views.generic.base import RedirectView from django.views.generic.edit import FormView from django_filters.views import FilterView +import sapl from sapl.base.models import Autor, CasaLegislativa from sapl.comissoes.models import Comissao, Participacao from sapl.compilacao.models import (STATUS_TA_IMMUTABLE_RESTRICT, @@ -33,16 +33,16 @@ from sapl.crud.base import (ACTION_CREATE, ACTION_DELETE, ACTION_DETAIL, ACTION_LIST, ACTION_UPDATE, RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud, PermissionRequiredForAppCrudMixin, make_pagination) -from sapl.materia.forms import (AnexadaForm, ConfirmarProposicaoForm, - LegislacaoCitadaForm, AutoriaForm, ProposicaoForm, - TipoProposicaoForm, TramitacaoForm, - TramitacaoUpdateForm, AutoriaMultiCreateForm) +from sapl.materia.forms import (AnexadaForm, AutoriaForm, + AutoriaMultiCreateForm, + ConfirmarProposicaoForm, LegislacaoCitadaForm, + ProposicaoForm, TipoProposicaoForm, + TramitacaoForm, TramitacaoUpdateForm) from sapl.norma.models import LegislacaoCitada from sapl.protocoloadm.models import Protocolo from sapl.utils import (TURNO_TRAMITACAO_CHOICES, YES_NO_CHOICES, autor_label, autor_modal, gerar_hash_arquivo, get_base_url, montar_row_autor) -import sapl from .email_utils import do_envia_email_confirmacao from .forms import (AcessorioEmLoteFilterSet, AcompanhamentoMateriaForm, @@ -62,7 +62,6 @@ from .models import (AcompanhamentoMateria, Anexada, AssuntoMateria, Autoria, TipoProposicao, Tramitacao, UnidadeTramitacao) from .signals import tramitacao_signal - AssuntoMateriaCrud = Crud.build(AssuntoMateria, 'assunto_materia') OrigemCrud = Crud.build(Origem, '') diff --git a/sapl/painel/urls.py b/sapl/painel/urls.py index 29890f30f..66ef92ac1 100644 --- a/sapl/painel/urls.py +++ b/sapl/painel/urls.py @@ -2,8 +2,8 @@ from django.conf.urls import url from .apps import AppConfig from .views import (cronometro_painel, get_dados_painel, painel_mensagem_view, - painel_parlamentar_view, painel_view, - painel_votacao_view, votante_view) + painel_parlamentar_view, painel_view, painel_votacao_view, + votante_view) app_name = AppConfig.name diff --git a/sapl/painel/views.py b/sapl/painel/views.py index e3271a309..13ee7883b 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -2,9 +2,9 @@ from datetime import date from django.contrib import messages from django.contrib.auth.decorators import user_passes_test -from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned -from django.db.models import Q +from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist from django.core.urlresolvers import reverse +from django.db.models import Q from django.http import HttpResponse, JsonResponse from django.http.response import Http404, HttpResponseRedirect from django.shortcuts import render diff --git a/sapl/parlamentares/models.py b/sapl/parlamentares/models.py index 34aa8b3e8..8bbc3704f 100644 --- a/sapl/parlamentares/models.py +++ b/sapl/parlamentares/models.py @@ -1,9 +1,9 @@ from datetime import datetime +import reversion from django.db import models from django.utils.translation import ugettext_lazy as _ from model_utils import Choices -import reversion from sapl.base.models import Autor from sapl.utils import (INDICADOR_AFASTAMENTO, UF, YES_NO_CHOICES, diff --git a/sapl/parlamentares/urls.py b/sapl/parlamentares/urls.py index 7b0f8f031..e383421c4 100644 --- a/sapl/parlamentares/urls.py +++ b/sapl/parlamentares/urls.py @@ -5,8 +5,7 @@ from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud, FiliacaoCrud, FrenteCrud, FrenteList, LegislaturaCrud, MandatoCrud, MesaDiretoraView, NivelInstrucaoCrud, - ParlamentarCrud, - ParlamentarMateriasView, + ParlamentarCrud, ParlamentarMateriasView, ParticipacaoParlamentarCrud, PartidoCrud, ProposicaoParlamentarCrud, RelatoriaParlamentarCrud, diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index 9af917370..2890dc384 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -21,8 +21,7 @@ from sapl.comissoes.models import Participacao from sapl.crud.base import (RP_CHANGE, RP_DETAIL, RP_LIST, Crud, CrudAux, CrudBaseForListAndDetailExternalAppView, MasterDetailCrud) -from sapl.materia.models import Autoria -from sapl.materia.models import Proposicao, Relatoria +from sapl.materia.models import Autoria, Proposicao, Relatoria from sapl.parlamentares.apps import AppConfig from sapl.utils import parlamentares_ativos @@ -34,7 +33,6 @@ from .models import (CargoMesa, Coligacao, ComposicaoColigacao, ComposicaoMesa, NivelInstrucao, Parlamentar, Partido, SessaoLegislativa, SituacaoMilitar, TipoAfastamento, TipoDependente, Votante) - CargoMesaCrud = CrudAux.build(CargoMesa, 'cargo_mesa') PartidoCrud = CrudAux.build(Partido, 'partidos') SessaoLegislativaCrud = CrudAux.build(SessaoLegislativa, 'sessao_legislativa') diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index 24319ac05..fc2b99dc8 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -1,5 +1,6 @@ from datetime import datetime +import django_filters from crispy_forms.bootstrap import InlineRadios from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML, Button, Fieldset, Layout, Submit @@ -8,11 +9,11 @@ from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.db import models from django.forms import ModelForm from django.utils.translation import ugettext_lazy as _ -import django_filters from sapl.base.models import Autor, TipoAutor from sapl.crispy_layout_mixin import form_actions, to_row -from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa, UnidadeTramitacao +from sapl.materia.models import (MateriaLegislativa, TipoMateriaLegislativa, + UnidadeTramitacao) from sapl.utils import (RANGE_ANOS, AnoNumeroOrderingFilter, RangeWidgetOverride, autor_label, autor_modal) @@ -20,7 +21,6 @@ from .models import (DocumentoAcessorioAdministrativo, DocumentoAdministrativo, Protocolo, TipoDocumentoAdministrativo, TramitacaoAdministrativo) - TIPOS_PROTOCOLO = [('0', 'Recebido'), ('1', 'Enviado'), ('', 'Ambos')] TIPOS_PROTOCOLO_CREATE = [('0', 'Recebido'), ('1', 'Enviado')] diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index e26168d0d..dba1d9f6d 100644 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -1,13 +1,12 @@ from datetime import date, datetime - from braces.views import FormValidMessageMixin from django.contrib import messages from django.contrib.auth.mixins import PermissionRequiredMixin -from django.db.models import Q +from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import reverse -from django.db.models import Max +from django.db.models import Max, Q from django.http import (Http404, HttpResponse, HttpResponseRedirect, JsonResponse) from django.shortcuts import redirect @@ -18,8 +17,11 @@ from django_filters.views import FilterView import sapl from sapl.base.models import Autor +from sapl.comissoes.models import Comissao from sapl.crud.base import Crud, CrudAux, MasterDetailCrud, make_pagination from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa +from sapl.parlamentares.models import Parlamentar +from sapl.protocoloadm.models import Protocolo from sapl.utils import create_barcode, get_client_ip from .forms import (AnularProcoloAdmForm, DocumentoAcessorioAdministrativoForm, @@ -30,10 +32,6 @@ from .forms import (AnularProcoloAdmForm, DocumentoAcessorioAdministrativoForm, from .models import (DocumentoAcessorioAdministrativo, DocumentoAdministrativo, Protocolo, StatusTramitacaoAdministrativo, TipoDocumentoAdministrativo, TramitacaoAdministrativo) -from sapl.parlamentares.models import Parlamentar -from sapl.protocoloadm.models import Protocolo -from sapl.comissoes.models import Comissao -from django.contrib.contenttypes.models import ContentType TipoDocumentoAdministrativoCrud = CrudAux.build( TipoDocumentoAdministrativo, '') diff --git a/sapl/redireciona_urls/urls.py b/sapl/redireciona_urls/urls.py index 8e8ac7d99..63afd8b6b 100644 --- a/sapl/redireciona_urls/urls.py +++ b/sapl/redireciona_urls/urls.py @@ -1,24 +1,18 @@ -from .apps import AppConfig -from .views import ( - RedirecionaAtasList, - RedirecionaComissao, - RedirecionaHistoricoTramitacoesList, - RedirecionaMateriaLegislativaDetail, - RedirecionaMateriaLegislativaList, - RedirecionaMateriasPorAnoAutorTipo, - RedirecionaMateriasPorAutor, - RedirecionaMesaDiretoraView, - RedirecionaNormasJuridicasDetail, - RedirecionaNormasJuridicasList, - RedirecionaParlamentar, - RedirecionaPautaSessao, - RedirecionaPresencaParlamentares, - RedirecionaRelatoriosList, - RedirecionaRelatoriosMateriasEmTramitacaoList, - RedirecionaSessaoPlenaria, - RedirecionaSAPLIndex) from django.conf.urls import url +from .apps import AppConfig +from .views import (RedirecionaAtasList, RedirecionaComissao, + RedirecionaHistoricoTramitacoesList, + RedirecionaMateriaLegislativaDetail, + RedirecionaMateriaLegislativaList, + RedirecionaMateriasPorAnoAutorTipo, + RedirecionaMateriasPorAutor, RedirecionaMesaDiretoraView, + RedirecionaNormasJuridicasDetail, + RedirecionaNormasJuridicasList, RedirecionaParlamentar, + RedirecionaPautaSessao, RedirecionaPresencaParlamentares, + RedirecionaRelatoriosList, + RedirecionaRelatoriosMateriasEmTramitacaoList, + RedirecionaSAPLIndex, RedirecionaSessaoPlenaria) app_name = AppConfig.name diff --git a/sapl/redireciona_urls/views.py b/sapl/redireciona_urls/views.py index 42b0fcadd..3e29e8989 100644 --- a/sapl/redireciona_urls/views.py +++ b/sapl/redireciona_urls/views.py @@ -1,6 +1,6 @@ -from .exceptions import UnknownUrlNameError from django.core.urlresolvers import NoReverseMatch, reverse from django.views.generic import RedirectView + from sapl.base.apps import AppConfig as atasConfig from sapl.base.apps import AppConfig as presenca_sessaoConfig from sapl.base.apps import AppConfig as relatoriosConfig @@ -10,6 +10,8 @@ from sapl.norma.apps import AppConfig as normaConfig from sapl.parlamentares.apps import AppConfig as parlamentaresConfig from sapl.sessao.apps import AppConfig as sessaoConfig +from .exceptions import UnknownUrlNameError + EMPTY_STRING = '' app_parlamentares = parlamentaresConfig.name diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index ffd371600..48d4fee60 100644 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -19,7 +19,7 @@ from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao, SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente) from sapl.settings import STATIC_ROOT -from sapl.utils import filiacao_data, UF +from sapl.utils import UF, filiacao_data from .templates import (pdf_capa_processo_gerar, pdf_documento_administrativo_gerar, pdf_espelho_gerar, diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 2b9e6788c..8cc4d69d2 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -10,8 +10,8 @@ from django.utils.translation import ugettext_lazy as _ from sapl.crispy_layout_mixin import form_actions, to_row from sapl.materia.forms import MateriaLegislativaFilterSet -from sapl.materia.models import (MateriaLegislativa, TipoMateriaLegislativa, - StatusTramitacao) +from sapl.materia.models import (MateriaLegislativa, StatusTramitacao, + TipoMateriaLegislativa) from sapl.parlamentares.models import Parlamentar from sapl.utils import (RANGE_DIAS_MES, RANGE_MESES, MateriaPesquisaOrderingFilter, autor_label, diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 83217c54e..2c1d30403 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -30,22 +30,23 @@ from sapl.materia.models import (Autoria, DocumentoAcessorio, TipoMateriaLegislativa, Tramitacao) from sapl.materia.views import MateriaLegislativaPesquisaView from sapl.norma.models import NormaJuridica -from sapl.parlamentares.models import (Filiacao, Legislatura, Parlamentar, - SessaoLegislativa, Mandato) +from sapl.parlamentares.models import (Filiacao, Legislatura, Mandato, + Parlamentar, SessaoLegislativa) from sapl.sessao.apps import AppConfig from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm + from .forms import (AdicionarVariasMateriasFilterSet, ExpedienteForm, ListMateriaForm, MesaForm, OradorExpedienteForm, OradorForm, PautaSessaoFilterSet, PresencaForm, - ResumoOrdenacaoForm, SessaoPlenariaFilterSet, SessaoPlenariaForm, - VotacaoEditForm, VotacaoForm, VotacaoNominalForm) + ResumoOrdenacaoForm, SessaoPlenariaFilterSet, + SessaoPlenariaForm, VotacaoEditForm, VotacaoForm, + VotacaoNominalForm) from .models import (Bancada, Bloco, CargoBancada, CargoMesa, ExpedienteMateria, ExpedienteSessao, IntegranteMesa, MateriaLegislativa, Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao, SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente, - TipoResultadoVotacao, TipoSessaoPlenaria, - VotoParlamentar) + TipoResultadoVotacao, TipoSessaoPlenaria, VotoParlamentar) TipoSessaoCrud = CrudAux.build(TipoSessaoPlenaria, 'tipo_sessao_plenaria') TipoExpedienteCrud = CrudAux.build(TipoExpediente, 'tipo_expediente') diff --git a/sapl/settings.py b/sapl/settings.py index 903b38b6a..274e2ed0a 100644 --- a/sapl/settings.py +++ b/sapl/settings.py @@ -22,7 +22,6 @@ from unipath import Path from .temp_suppress_crispy_form_warnings import \ SUPRESS_CRISPY_FORM_WARNINGS_LOGGING - BASE_DIR = Path(__file__).ancestor(1) PROJECT_DIR = Path(__file__).ancestor(2) diff --git a/sapl/utils.py b/sapl/utils.py index f707a2c91..90581bd99 100644 --- a/sapl/utils.py +++ b/sapl/utils.py @@ -3,7 +3,6 @@ import logging import os import re from datetime import date -from django_filters.filterset import STRICTNESS from functools import wraps from subprocess import PIPE, call from threading import Thread @@ -15,21 +14,21 @@ from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML, Button from django import forms from django.apps import apps -from django.db.models import Q from django.conf import settings from django.contrib import admin from django.contrib.contenttypes.fields import (GenericForeignKey, GenericRel, GenericRelation) from django.core.exceptions import ValidationError +from django.db.models import Q from django.utils import six from django.utils.translation import ugettext_lazy as _ +from django_filters.filterset import STRICTNESS from floppyforms import ClearableFileInput from reversion.admin import VersionAdmin from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row from sapl.settings import BASE_DIR, PROJECT_DIR - sapl_logger = logging.getLogger(BASE_DIR.name) @@ -642,4 +641,4 @@ def parlamentares_ativos(data_inicio, data_fim=None): 'parlamentar_id', flat=True).distinct('parlamentar_id') - return Parlamentar.objects.filter(id__in=parlamentares_id) \ No newline at end of file + return Parlamentar.objects.filter(id__in=parlamentares_id) diff --git a/scripts/set_inicio_mandato.py b/scripts/set_inicio_mandato.py index 37dfcfc0c..dca509ab6 100644 --- a/scripts/set_inicio_mandato.py +++ b/scripts/set_inicio_mandato.py @@ -7,4 +7,4 @@ def popula_campo_data_inicio(): m.save() if __name__ == '__main__': - popula_campo_data_inicio() \ No newline at end of file + popula_campo_data_inicio() From 541e98b48238d69eaffa0473de3f57811246920b Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Thu, 17 Aug 2017 17:09:49 -0300 Subject: [PATCH 2/8] Ajusta import triplicado --- sapl/redireciona_urls/views.py | 35 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/sapl/redireciona_urls/views.py b/sapl/redireciona_urls/views.py index 3e29e8989..7a293d994 100644 --- a/sapl/redireciona_urls/views.py +++ b/sapl/redireciona_urls/views.py @@ -2,8 +2,6 @@ from django.core.urlresolvers import NoReverseMatch, reverse from django.views.generic import RedirectView from sapl.base.apps import AppConfig as atasConfig -from sapl.base.apps import AppConfig as presenca_sessaoConfig -from sapl.base.apps import AppConfig as relatoriosConfig from sapl.comissoes.apps import AppConfig as comissoesConfig from sapl.materia.apps import AppConfig as materiaConfig from sapl.norma.apps import AppConfig as normaConfig @@ -14,6 +12,8 @@ from .exceptions import UnknownUrlNameError EMPTY_STRING = '' +presenca_sessaoConfig = relatoriosConfig = atasConfig + app_parlamentares = parlamentaresConfig.name app_atas = atasConfig.name app_presenca_sessao = presenca_sessaoConfig.name @@ -52,14 +52,13 @@ relatorio_materia_por_ano_autor_tipo = ( historico_tramitacoes = (app_relatorios + ':historico_tramitacoes') - def has_iframe(url, request): iframe = request.GET.get( 'iframe', EMPTY_STRING) if iframe: - iframe_qs= ("iframe=" + iframe) + iframe_qs = ("iframe=" + iframe) url += ("&" if "?" in url else "?") url += iframe_qs @@ -488,30 +487,30 @@ class RedirecionaHistoricoTramitacoesList(RedirectView): inicio_intervalo_data_tramitacao = self.request.GET.get( 'txt_dat_inicio_periodo', EMPTY_STRING - ).lstrip("0") + ).lstrip("0") fim_intervalo_data_tramitacao = self.request.GET.get( 'txt_dat_fim_periodo', EMPTY_STRING - ).lstrip("0") + ).lstrip("0") tipo_materia = self.request.GET.get( 'lst_tip_materia', EMPTY_STRING - ).lstrip("0") + ).lstrip("0") unidade_local_tramitacao = self.request.GET.get( 'lst_cod_unid_tram_dest', EMPTY_STRING - ).lstrip("0") + ).lstrip("0") status_tramitacao = self.request.GET.get( 'lst_status', EMPTY_STRING - ).lstrip("0") + ).lstrip("0") if ( - (inicio_intervalo_data_tramitacao != EMPTY_STRING) or - (fim_intervalo_data_tramitacao != EMPTY_STRING) or - (tipo_materia != EMPTY_STRING) or - (unidade_local_tramitacao != EMPTY_STRING) or - (status_tramitacao != EMPTY_STRING)): + (inicio_intervalo_data_tramitacao != EMPTY_STRING) or + (fim_intervalo_data_tramitacao != EMPTY_STRING) or + (tipo_materia != EMPTY_STRING) or + (unidade_local_tramitacao != EMPTY_STRING) or + (status_tramitacao != EMPTY_STRING)): args += "?tramitacao__data_tramitacao_0=%s" % ( inicio_intervalo_data_tramitacao) @@ -545,11 +544,11 @@ class RedirecionaAtasList(RedirectView): inicio_intervalo_data_ata = self.request.GET.get( 'txt_dat_inicio', EMPTY_STRING - ).lstrip("0") + ).lstrip("0") fim_intervalo_data_ata = self.request.GET.get( 'txt_dat_fim', EMPTY_STRING - ).lstrip("0") + ).lstrip("0") args += "?data_inicio_0=%s" % ( inicio_intervalo_data_ata) @@ -579,11 +578,11 @@ class RedirecionaPresencaParlamentares(RedirectView): inicio_intervalo_data_presenca_parlamentar = self.request.GET.get( 'txt_dat_inicio', EMPTY_STRING - ).lstrip("0") + ).lstrip("0") fim_intervalo_data_presenca_parlamentar = self.request.GET.get( 'txt_dat_fim', EMPTY_STRING - ).lstrip("0") + ).lstrip("0") args += "?data_inicio_0=%s" % ( inicio_intervalo_data_presenca_parlamentar) From 35df101b35a4caf56eb8ba6699f9b9f4941eaef0 Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Thu, 17 Aug 2017 17:35:34 -0300 Subject: [PATCH 3/8] =?UTF-8?q?Adiciona=20corre=C3=A7=C3=A3o=20autom=C3=A1?= =?UTF-8?q?tica=20de=20erros=20de=20PEP=208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fix_qa.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fix_qa.sh b/fix_qa.sh index a3ac9d843..264c01676 100755 --- a/fix_qa.sh +++ b/fix_qa.sh @@ -8,4 +8,5 @@ # Uma forma simples de fazer isso é adicionando antes suas mudanças à # "staging area" do git, com `git add .` e após usar o script `git diff`. -isort --recursive --skip='migrations' --skip='templates' --skip='ipython_log.py' . +isort --recursive --skip='migrations' --skip='templates' --skip='ipython_log.py*' . +autopep8 --in-place --recursive . --exclude='migrations,ipython_log.py*' From 0677a85471ebf8aca3e350931ac41342b21cbf18 Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Thu, 17 Aug 2017 17:38:29 -0300 Subject: [PATCH 4/8] Corrige erros de PEP 8 com autopep8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Correções feitas usando o scrip fix_qa.sh na raiz do projeto que agora contém a linha autopep8 --in-place --recursive . --exclude='migrations,ipython_log.py*' --- create_admin.py | 10 +- sapl/api/serializers.py | 23 +- sapl/base/search_indexes.py | 2 +- sapl/base/templatetags/common_tags.py | 2 + sapl/base/tests/teststub_urls.py | 6 +- sapl/comissoes/views.py | 8 +- .../templatetags/compilacao_filters.py | 1 - .../management/commands/migracao_25_31.py | 2 +- .../commands/migracao_documentos.py | 2 +- sapl/legacy/migracao_documentos.py | 2 +- sapl/legacy/migration.py | 19 +- sapl/legacy/scripts/street_sweeper.py | 11 +- sapl/materia/admin.py | 1 + sapl/materia/email_utils.py | 3 +- sapl/materia/views.py | 10 +- sapl/norma/models.py | 8 +- sapl/parlamentares/forms.py | 8 +- sapl/protocoloadm/views.py | 43 +- sapl/redireciona_urls/exceptions.py | 6 +- sapl/redireciona_urls/tests.py | 47 +- .../pdf_capa_processo_preparar_pysc.py | 227 ++++----- .../templates/pdf_detalhe_materia_gerar.py | 456 +++++++++-------- .../pdf_detalhe_materia_preparar_pysc.py | 457 +++++++++--------- ..._documento_administrativo_preparar_pysc.py | 221 +++++---- .../relatorios/templates/pdf_espelho_gerar.py | 241 ++++----- .../templates/pdf_espelho_preparar_pysc.py | 290 +++++------ .../pdf_etiqueta_protocolo_preparar_pysc.py | 210 ++++---- .../relatorios/templates/pdf_materia_gerar.py | 152 +++--- .../templates/pdf_materia_preparar_pysc.py | 272 ++++++----- sapl/relatorios/templates/pdf_norma_gerar.py | 164 ++++--- .../templates/pdf_norma_preparar_pysc.py | 153 +++--- .../templates/pdf_ordem_dia_preparar_pysc.py | 180 ++++--- .../templates/pdf_pauta_sessao_gerar.py | 4 +- .../pdf_pauta_sessao_preparar_pysc.py | 183 ++++--- .../templates/pdf_protocolo_gerar.py | 189 ++++---- .../templates/pdf_protocolo_preparar_pysc.py | 217 +++++---- .../templates/pdf_sessao_plenaria_gerar.py | 20 +- .../pdf_sessao_plenaria_preparar_pysc.py | 285 ++++++----- sapl/relatorios/views.py | 28 +- sapl/sessao/forms.py | 8 +- sapl/sessao/models.py | 13 +- sapl/sessao/serializers.py | 1 + sapl/sessao/views.py | 89 ++-- 43 files changed, 2306 insertions(+), 1968 deletions(-) diff --git a/create_admin.py b/create_admin.py index c69d18062..6b3d52709 100644 --- a/create_admin.py +++ b/create_admin.py @@ -7,11 +7,13 @@ from sapl import settings os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sapl.settings") + def create_superuser(): from django.contrib.auth.models import User username = "admin" - password = os.environ['ADMIN_PASSWORD'] if 'ADMIN_PASSWORD' in os.environ else None + password = os.environ[ + 'ADMIN_PASSWORD'] if 'ADMIN_PASSWORD' in os.environ else None email = os.environ['ADMIN_EMAIL'] if 'ADMIN_EMAIL' in os.environ else '' if User.objects.filter(username=username).exists(): @@ -19,12 +21,14 @@ def create_superuser(): sys.exit('ADMIN_USER_EXISTS') else: if not password: - print("[SUPERUSER] Environment variable $ADMIN_PASSWORD for user %s was not set. Leaving..." % username) + print( + "[SUPERUSER] Environment variable $ADMIN_PASSWORD for user %s was not set. Leaving..." % username) sys.exit('MISSING_ADMIN_PASSWORD') print("[SUPERUSER] Creating superuser...") - u = User.objects.create_superuser(username=username, password=password, email=email) + u = User.objects.create_superuser( + username=username, password=password, email=email) u.save() print("[SUPERUSER] Done.") diff --git a/sapl/api/serializers.py b/sapl/api/serializers.py index 4590e0186..9853d8718 100644 --- a/sapl/api/serializers.py +++ b/sapl/api/serializers.py @@ -64,14 +64,18 @@ class SessaoPlenariaSerializer(serializers.ModelSerializer): txtSiglaOrgao = serializers.SerializerMethodField('get_sigla_orgao') txtApelido = serializers.SerializerMethodField('get_name') txtNomeOrgao = serializers.SerializerMethodField('get_nome_orgao') - codEstadoReuniao = serializers.SerializerMethodField('get_estadoSessaoPlenaria') + codEstadoReuniao = serializers.SerializerMethodField( + 'get_estadoSessaoPlenaria') txtTipoReuniao = serializers.SerializerMethodField('get_tipo_sessao') txtObjeto = serializers.SerializerMethodField('get_assunto_sessao') txtLocal = serializers.SerializerMethodField('get_endereco_orgao') - bolReuniaoConjunta = serializers.SerializerMethodField('get_reuniao_conjunta') - bolHabilitarEventoInterativo = serializers.SerializerMethodField('get_iterativo') + bolReuniaoConjunta = serializers.SerializerMethodField( + 'get_reuniao_conjunta') + bolHabilitarEventoInterativo = serializers.SerializerMethodField( + 'get_iterativo') idYoutube = serializers.SerializerMethodField('get_url') - codEstadoTransmissaoYoutube = serializers.SerializerMethodField('get_estadoTransmissaoYoutube') + codEstadoTransmissaoYoutube = serializers.SerializerMethodField( + 'get_estadoTransmissaoYoutube') datReuniaoString = serializers.SerializerMethodField('get_date') # Constantes SessaoPlenaria (de 1-9) (apenas 3 serão usados) @@ -80,9 +84,9 @@ class SessaoPlenariaSerializer(serializers.ModelSerializer): SESSAO_CONVOCADA = 2 # Constantes EstadoTranmissaoYoutube (de 0 a 2) - TRANSMISSAO_ENCERRADA = 2 - TRANSMISSAO_EM_ANDAMENTO = 1 - SEM_TRANSMISSAO = 0 + TRANSMISSAO_ENCERRADA = 2 + TRANSMISSAO_EM_ANDAMENTO = 1 + SEM_TRANSMISSAO = 0 class Meta: model = SessaoPlenaria @@ -102,7 +106,7 @@ class SessaoPlenariaSerializer(serializers.ModelSerializer): 'idYoutube', 'codEstadoTransmissaoYoutube', 'datReuniaoString' - ) + ) def __init__(self, *args, **kwargs): super(SessaoPlenariaSerializer, self).__init__(args, kwargs) @@ -136,7 +140,7 @@ class SessaoPlenariaSerializer(serializers.ModelSerializer): obj.data_inicio.strftime("%d/%m/%Y"), obj.hora_inicio, ":00" - ) + ) def get_estadoTransmissaoYoutube(self, obj): if obj.url_video: @@ -146,6 +150,7 @@ class SessaoPlenariaSerializer(serializers.ModelSerializer): return self.TRANSMISSAO_EM_ANDAMENTO else: return self.SEM_TRANSMISSAO + def get_assunto_sessao(self, obj): pauta_sessao = '' ordem_dia = OrdemDia.objects.filter(sessao_plenaria=obj.pk) diff --git a/sapl/base/search_indexes.py b/sapl/base/search_indexes.py index e614a2f79..cee126dd2 100644 --- a/sapl/base/search_indexes.py +++ b/sapl/base/search_indexes.py @@ -126,4 +126,4 @@ class NormaJuridicaIndex(DocumentoAcessorioIndex): template_name = 'norma/normajuridica_text.txt' def get_updated_field(self): - return 'data_ultima_atualizacao' + return 'data_ultima_atualizacao' diff --git a/sapl/base/templatetags/common_tags.py b/sapl/base/templatetags/common_tags.py index 72dab26ba..928aeab5d 100644 --- a/sapl/base/templatetags/common_tags.py +++ b/sapl/base/templatetags/common_tags.py @@ -117,6 +117,7 @@ def str2intabs(value): except: return '' + @register.filter def has_iframe(request): @@ -181,6 +182,7 @@ def urldetail(obj): return '%s:%s_detail' % ( obj._meta.app_config.name, obj._meta.model_name) + @register.filter def filiacao_data_filter(parlamentar, data_inicio): return filiacao_data(parlamentar, data_inicio) diff --git a/sapl/base/tests/teststub_urls.py b/sapl/base/tests/teststub_urls.py index 3a3410f98..a105489c7 100644 --- a/sapl/base/tests/teststub_urls.py +++ b/sapl/base/tests/teststub_urls.py @@ -4,7 +4,7 @@ from django.views.generic.base import TemplateView from sapl.urls import urlpatterns as original_patterns urlpatterns = original_patterns + patterns('', url(r'^zzzz$', - TemplateView.as_view( - template_name='index.html'), - name='zzzz') + TemplateView.as_view( + template_name='index.html'), + name='zzzz') ) diff --git a/sapl/comissoes/views.py b/sapl/comissoes/views.py index 56151d414..713c8f03e 100644 --- a/sapl/comissoes/views.py +++ b/sapl/comissoes/views.py @@ -72,7 +72,7 @@ class ComposicaoCrud(MasterDetailCrud): context['participacao_set'] = Participacao.objects.filter( composicao__pk=context['composicao_pk'] - ).order_by('parlamentar') + ).order_by('parlamentar') return context @@ -82,21 +82,23 @@ class ComissaoCrud(Crud): public = [RP_LIST, RP_DETAIL, ] class BaseMixin(Crud.BaseMixin): - list_field_names = ['nome', 'sigla', 'tipo', 'data_criacao', 'data_extincao', 'ativa'] + list_field_names = ['nome', 'sigla', 'tipo', + 'data_criacao', 'data_extincao', 'ativa'] ordering = '-ativa', 'sigla' class ListView(Crud.ListView): + @xframe_options_exempt def get(self, request, *args, **kwargs): return super().get(request, *args, **kwargs) class DetailView(Crud.DetailView): + @xframe_options_exempt def get(self, request, *args, **kwargs): return super().get(request, *args, **kwargs) - class MateriasTramitacaoListView(ListView): template_name = "comissoes/materias_em_tramitacao.html" paginate_by = 10 diff --git a/sapl/compilacao/templatetags/compilacao_filters.py b/sapl/compilacao/templatetags/compilacao_filters.py index d1e957eff..54575bff1 100644 --- a/sapl/compilacao/templatetags/compilacao_filters.py +++ b/sapl/compilacao/templatetags/compilacao_filters.py @@ -286,7 +286,6 @@ def nomenclatura_heranca(d, ignore_ultimo=0, ignore_primeiro=0): return result - @register.filter def list(obj): return [obj, ] diff --git a/sapl/legacy/management/commands/migracao_25_31.py b/sapl/legacy/management/commands/migracao_25_31.py index 7e8671e38..bddb26a8c 100644 --- a/sapl/legacy/management/commands/migracao_25_31.py +++ b/sapl/legacy/management/commands/migracao_25_31.py @@ -5,7 +5,7 @@ from sapl.legacy import migration class Command(BaseCommand): - help ='Migração de dados do SAPL 2.5 para o SAPL 3.1' + help = 'Migração de dados do SAPL 2.5 para o SAPL 3.1' def add_arguments(self, parser): parser.add_argument( diff --git a/sapl/legacy/management/commands/migracao_documentos.py b/sapl/legacy/management/commands/migracao_documentos.py index 0af503b39..7cba09d5a 100644 --- a/sapl/legacy/management/commands/migracao_documentos.py +++ b/sapl/legacy/management/commands/migracao_documentos.py @@ -5,7 +5,7 @@ from sapl.legacy.migracao_documentos import migrar_documentos class Command(BaseCommand): - help ='Migração documentos do SAPL 2.5 para o SAPL 3.1' + help = 'Migração documentos do SAPL 2.5 para o SAPL 3.1' def handle(self, *args, **options): migrar_documentos() diff --git a/sapl/legacy/migracao_documentos.py b/sapl/legacy/migracao_documentos.py index 50fc1e694..ea29a9072 100644 --- a/sapl/legacy/migracao_documentos.py +++ b/sapl/legacy/migracao_documentos.py @@ -205,7 +205,7 @@ def migrar_documentos(): SessaoPlenaria, Proposicao, DocumentoAdministrativo, - DocumentoAcessorioAdministrativo, + DocumentoAcessorioAdministrativo, ]: migrar_docs_por_ids(tipo) diff --git a/sapl/legacy/migration.py b/sapl/legacy/migration.py index a405b8f0b..791e6a7b5 100644 --- a/sapl/legacy/migration.py +++ b/sapl/legacy/migration.py @@ -162,7 +162,7 @@ def get_fk_related(field, value, label=None): value = TipoProposicao.objects.create( id=value, descricao='Erro', content_type=ct) ultimo_valor = get_last_value(type(value)) - alter_sequence(type(value), ultimo_valor+1) + alter_sequence(type(value), ultimo_valor + 1) else: value = tipo[0] else: @@ -252,7 +252,7 @@ def problema_duplicatas(model, lista_duplicatas, argumentos): string_pks = "" problema = "%s de PK %s não é único." % (model.__name__, obj.pk) args_dict = {k: obj.__dict__[k] - for k in set(argumentos) & set(obj.__dict__.keys())} + for k in set(argumentos) & set(obj.__dict__.keys())} for dup in model.objects.filter(**args_dict): pks.append(dup.pk) string_pks = "(" + ", ".join(map(str, pks)) + ")" @@ -407,7 +407,7 @@ def fill_vinculo_norma_juridica(): 'Julgada parcialmente inconstitucional')] lista_objs = [TipoVinculoNormaJuridica( sigla=item[0], descricao_ativa=item[1], descricao_passiva=item[2]) - for item in lista] + for item in lista] TipoVinculoNormaJuridica.objects.bulk_create(lista_objs) @@ -610,7 +610,7 @@ class DataMigrator: # necessário para ajustar sequence da tabela para o ultimo valor de id ultimo_valor = get_last_value(model) - alter_sequence(model, ultimo_valor+1) + alter_sequence(model, ultimo_valor + 1) def delete_ind_excluido(self): excluidos = 0 @@ -665,15 +665,15 @@ def adjust_documentoadministrativo(new, old): except Exception: try: protocolo = Protocolo.objects.get(numero=new.numero_protocolo, - ano=new.ano+1) + ano=new.ano + 1) new.protocolo = protocolo except Exception: protocolo = mommy.make(Protocolo, numero=new.numero_protocolo, ano=new.ano) with reversion.create_revision(): problema = 'Protocolo Vinculado [numero_protocolo=%s, '\ - 'ano=%s] não existe' % (new.numero_protocolo, - new.ano) + 'ano=%s] não existe' % (new.numero_protocolo, + new.ano) descricao = 'O protocolo inexistente foi criado' warn(problema + ' => ' + descricao) save_relation(obj=protocolo, problema=problema, @@ -751,7 +751,7 @@ def adjust_proposicao_antes_salvar(new, old): def adjust_proposicao_depois_salvar(new, old): if not hasattr(old.dat_envio, 'year') or old.dat_envio.year == 1800: msg = "O valor do campo data_envio (DateField) da model Proposicao"\ - " era inválido" + " era inválido" descricao = 'A data 1111-11-11 foi colocada no lugar' problema = 'O valor da data era nulo ou inválido' warn(msg + ' => ' + descricao) @@ -816,7 +816,6 @@ def adjust_tipoafastamento(new, old): new.indicador = 'A' - def adjust_tipoproposicao(new, old): if old.ind_mat_ou_doc == 'M': new.tipo_conteudo_related = TipoMateriaLegislativa.objects.get( @@ -870,7 +869,7 @@ def adjust_autor(new, old): except Exception: with reversion.create_revision(): msg = 'Um parlamentar relacionado de PK [%s] não existia' \ - % old.cod_parlamentar + % old.cod_parlamentar reversion.set_comment('Stub criado pela migração') value = make_stub(Parlamentar, old.cod_parlamentar) descricao = 'stub criado para entrada orfã!' diff --git a/sapl/legacy/scripts/street_sweeper.py b/sapl/legacy/scripts/street_sweeper.py index d600e900e..a33710b1a 100644 --- a/sapl/legacy/scripts/street_sweeper.py +++ b/sapl/legacy/scripts/street_sweeper.py @@ -19,7 +19,7 @@ EXCLUI_REGISTRO = "DELETE FROM %s WHERE ind_excluido=1" NORMA_DEP = "DELETE FROM vinculo_norma_juridica WHERE cod_norma_referente in (%s) OR \ cod_norma_referida in (%s) AND ind_excluido = 0 " -mapa = {} # mapa com tabela principal -> tabelas dependentes +mapa = {} # mapa com tabela principal -> tabelas dependentes mapa['tipo_autor'] = ['autor'] mapa['materia_legislativa'] = ['acomp_materia', 'autoria', 'despacho_inicial', @@ -43,6 +43,7 @@ mapa['parlamentar'] = ['autor', 'autoria', 'composicao_comissao', 'sessao_plenaria_presenca', 'unidade_tramitacao'] """ + def get_ids_excluidos(cursor, query): """ recupera as PKs de registros com ind_excluido = 1 da tabela principal @@ -58,7 +59,8 @@ def remove_tabelas(cursor, tabela_principal, pk, query_dependentes=None): QUERY = SELECT_EXCLUIDOS % (pk, tabela_principal, pk) ids_excluidos = get_ids_excluidos(cursor, QUERY) - print("\nRegistros da tabela '%s' com ind_excluido = 1: %s" % (tabela_principal.upper(), len(ids_excluidos))) + print("\nRegistros da tabela '%s' com ind_excluido = 1: %s" % + (tabela_principal.upper(), len(ids_excluidos))) """ Remove registros de tabelas que dependem da tabela principal, @@ -69,12 +71,13 @@ def remove_tabelas(cursor, tabela_principal, pk, query_dependentes=None): print("Dependencias inconsistentes") for tabela in mapa[tabela_principal]: - QUERY_DEP = REGISTROS_INCONSISTENTES % (tabela, pk, ','.join(ids_excluidos)) + QUERY_DEP = REGISTROS_INCONSISTENTES % ( + tabela, pk, ','.join(ids_excluidos)) # Trata caso especifico de norma_juridica if query_dependentes: QUERY_DEP = query_dependentes % (','.join(ids_excluidos), - ','.join(ids_excluidos)) + ','.join(ids_excluidos)) print(tabela.upper(), cursor.execute(QUERY_DEP)) diff --git a/sapl/materia/admin.py b/sapl/materia/admin.py index 6f5968c1f..cd6292c9c 100644 --- a/sapl/materia/admin.py +++ b/sapl/materia/admin.py @@ -11,6 +11,7 @@ if not DEBUG: admin.site.unregister(Proposicao) class ProposicaoAdmin(admin.ModelAdmin): + def has_add_permission(self, request, obj=None): return False diff --git a/sapl/materia/email_utils.py b/sapl/materia/email_utils.py index 78c0483b5..3cf53423d 100644 --- a/sapl/materia/email_utils.py +++ b/sapl/materia/email_utils.py @@ -206,6 +206,7 @@ def do_envia_email_tramitacao(base_url, materia, status, unidade_destino): # a conexão será fechada except Exception: connection.close() - raise Exception('Erro ao enviar e-mail de acompanhamento de matéria.') + raise Exception( + 'Erro ao enviar e-mail de acompanhamento de matéria.') connection.close() diff --git a/sapl/materia/views.py b/sapl/materia/views.py index a206ae06f..c7c1e2618 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -1060,11 +1060,11 @@ class DocumentoAcessorioCrud(MasterDetailCrud): def __init__(self, **kwargs): super(MasterDetailCrud.CreateView, self).__init__(**kwargs) - + def get_initial(self): self.initial['data'] = datetime.now().date() - return self.initial + return self.initial def get_context_data(self, **kwargs): context = super( @@ -1735,9 +1735,9 @@ class TramitacaoEmLoteView(PrimeiraTramitacaoEmLoteView): if ('tramitacao__status' in qr and 'tramitacao__unidade_tramitacao_destino' in qr and - qr['tramitacao__status'] and - qr['tramitacao__unidade_tramitacao_destino'] - ): + qr['tramitacao__status'] and + qr['tramitacao__unidade_tramitacao_destino'] + ): lista = filtra_tramitacao_destino_and_status( qr['tramitacao__status'], qr['tramitacao__unidade_tramitacao_destino']) diff --git a/sapl/norma/models.py b/sapl/norma/models.py index a80f5a564..5f92f8a59 100644 --- a/sapl/norma/models.py +++ b/sapl/norma/models.py @@ -59,8 +59,10 @@ class TipoNormaJuridica(models.Model): def __str__(self): return self.descricao + def norma_upload_path(instance, filename): - return texto_upload_path(instance, filename, subpath=instance.ano) + return texto_upload_path(instance, filename, subpath=instance.ano) + @reversion.register() class NormaJuridica(models.Model): @@ -133,9 +135,9 @@ class NormaJuridica(models.Model): def get_normas_relacionadas(self): principais = NormaRelacionada.objects.filter( - norma_principal=self.id) + norma_principal=self.id) relacionadas = NormaRelacionada.objects.filter( - norma_relacionada=self.id) + norma_relacionada=self.id) return (principais, relacionadas) def __str__(self): diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py index d36b3ff73..63a1bb0d9 100644 --- a/sapl/parlamentares/forms.py +++ b/sapl/parlamentares/forms.py @@ -65,9 +65,9 @@ class MandatoForm(ModelForm): data = self.cleaned_data try: if 'legislatura' in data and 'parlamentar' in data: - Mandato.objects.get( - parlamentar__pk=self.initial['parlamentar'].pk, - legislatura__pk=data['legislatura'].pk) + Mandato.objects.get( + parlamentar__pk=self.initial['parlamentar'].pk, + legislatura__pk=data['legislatura'].pk) except ObjectDoesNotExist: pass else: @@ -323,7 +323,7 @@ class VotanteForm(ModelForm): def clean(self): super(VotanteForm, self).clean() - + cd = self.cleaned_data username = cd['username'] diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index dba1d9f6d..4e7a946c6 100644 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -118,6 +118,7 @@ class DocumentoAdministrativoCrud(Crud): 'numero_protocolo': p.numero} class DetailView(DocumentoAdministrativoMixin, Crud.DetailView): + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) self.layout_display[0]['rows'][-1][0]['text'] = ( @@ -127,6 +128,7 @@ class DocumentoAdministrativoCrud(Crud): return context class DeleteView(DocumentoAdministrativoMixin, Crud.DeleteView): + def get_success_url(self): return reverse('sapl.protocoloadm:pesq_doc_adm', kwargs={}) @@ -451,28 +453,33 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView): return redirect(self.get_success_url(protocolo)) def get_context_data(self, **kwargs): - context = super(CreateView, self).get_context_data(**kwargs) - autores_ativos = self.autores_ativos() + context = super(CreateView, self).get_context_data(**kwargs) + autores_ativos = self.autores_ativos() - autores = [] - autores.append(['0', '------']) - for a in autores_ativos: - autores.append([a.id, a.__str__()]) + autores = [] + autores.append(['0', '------']) + for a in autores_ativos: + autores.append([a.id, a.__str__()]) - context['form'].fields['autor'].choices = autores - return context + context['form'].fields['autor'].choices = autores + return context def autores_ativos(self): - lista_parlamentares = Parlamentar.objects.filter(ativo=True).values_list('id', flat=True) - model_parlamentar = ContentType.objects.get_for_model(Parlamentar) - autor_parlamentar = Autor.objects.filter(content_type=model_parlamentar, object_id__in=lista_parlamentares) - - lista_comissoes = Comissao.objects.filter(Q(data_extincao__isnull=True)|Q(data_extincao__gt=date.today())).values_list('id', flat=True) - model_comissao = ContentType.objects.get_for_model(Comissao) - autor_comissoes = Autor.objects.filter(content_type=model_comissao, object_id__in=lista_comissoes) - autores_outros = Autor.objects.exclude(content_type__in=[model_parlamentar, model_comissao]) - q = autor_parlamentar | autor_comissoes | autores_outros - return q + lista_parlamentares = Parlamentar.objects.filter( + ativo=True).values_list('id', flat=True) + model_parlamentar = ContentType.objects.get_for_model(Parlamentar) + autor_parlamentar = Autor.objects.filter( + content_type=model_parlamentar, object_id__in=lista_parlamentares) + + lista_comissoes = Comissao.objects.filter(Q(data_extincao__isnull=True) | Q( + data_extincao__gt=date.today())).values_list('id', flat=True) + model_comissao = ContentType.objects.get_for_model(Comissao) + autor_comissoes = Autor.objects.filter( + content_type=model_comissao, object_id__in=lista_comissoes) + autores_outros = Autor.objects.exclude( + content_type__in=[model_parlamentar, model_comissao]) + q = autor_parlamentar | autor_comissoes | autores_outros + return q class ProtocoloMateriaTemplateView(PermissionRequiredMixin, TemplateView): diff --git a/sapl/redireciona_urls/exceptions.py b/sapl/redireciona_urls/exceptions.py index e86aaefbb..e1a994bcb 100644 --- a/sapl/redireciona_urls/exceptions.py +++ b/sapl/redireciona_urls/exceptions.py @@ -8,6 +8,6 @@ class UnknownUrlNameError(Exception): def __str__(self): return repr( - _("Funcionalidade") - + " '%s' " % (self.url_name) - + _("pode ter sido removida ou movida para outra url.")) + _("Funcionalidade") + + " '%s' " % (self.url_name) + + _("pode ter sido removida ou movida para outra url.")) diff --git a/sapl/redireciona_urls/tests.py b/sapl/redireciona_urls/tests.py index f9ffa02ef..d8d713a2e 100644 --- a/sapl/redireciona_urls/tests.py +++ b/sapl/redireciona_urls/tests.py @@ -6,6 +6,7 @@ EMPTY_STRING = '' class RedirecionaURLsTests(TestCase): + def test_redireciona_index_SAPL(self): response = self.client.get(reverse( 'sapl.redireciona_urls:redireciona_sapl_index') @@ -34,7 +35,7 @@ class RedirecionaParlamentarTests(TestCase): url = "%s%s" % ( url, "?hdn_num_legislatura=%s" % (numero_legislatura) - ) + ) url_e = "%s%s" % (url_e, "?pk=%s" % numero_legislatura) response = self.client.get(url) @@ -49,7 +50,7 @@ class RedirecionaParlamentarTests(TestCase): url_e = reverse( 'sapl.parlamentares:parlamentar_detail', kwargs={'pk': pk_parlamentar} - ) + ) response = self.client.get(url) self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode) self.assertEqual(response.url, url_e) @@ -65,7 +66,7 @@ class RedirecionaComissaoTests(TestCase): url_e = reverse( 'sapl.comissoes:comissao_detail', kwargs={'pk': pk_comissao} - ) + ) response = self.client.get(url) self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode) self.assertEqual(response.url, url_e) @@ -89,7 +90,7 @@ class RedirecionaPautaSessaoTests(TestCase): url_e = reverse( 'sapl.sessao:pauta_sessao_detail', kwargs={'pk': pk_pauta_sessao} - ) + ) response = self.client.get(url) self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode) self.assertEqual(response.url, url_e) @@ -153,7 +154,7 @@ class RedirecionaMesaDiretoraParlamentarTests(TestCase): url_e = reverse( 'sapl.parlamentares:parlamentar_detail', kwargs={'pk': pk_parlamentar} - ) + ) response = self.client.get(url) @@ -313,7 +314,7 @@ class RedirecionaNormasJuridicasDetailTests(TestCase): 'sapl.norma:normajuridica_detail', kwargs={ 'pk': pk_norma} - ) + ) response = self.client.get(url) self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode) @@ -345,7 +346,7 @@ class RedirecionaSessaoPlenariaTests(TestCase): url_e = reverse( 'sapl.sessao:sessaoplenaria_detail', kwargs={'pk': pk_sessao_plenaria} - ) + ) response = self.client.get(url) @@ -532,18 +533,18 @@ class RedirecionaHistoricoTramitacoesListTests(TestCase): status_tramitacao = status_tramitacao.lstrip("0") if ( - (inicio_dt_tramitacao != EMPTY_STRING) or - (fim_dt_tramitacao != EMPTY_STRING) or - (tipo_materia != EMPTY_STRING) or - (unidade_local_tramitacao != EMPTY_STRING) or - (status_tramitacao != EMPTY_STRING)): + (inicio_dt_tramitacao != EMPTY_STRING) or + (fim_dt_tramitacao != EMPTY_STRING) or + (tipo_materia != EMPTY_STRING) or + (unidade_local_tramitacao != EMPTY_STRING) or + (status_tramitacao != EMPTY_STRING)): args_e += "?tramitacao__data_tramitacao_0=%s" % ( - inicio_dt_tramitacao) + inicio_dt_tramitacao) args_e += "&tramitacao__data_tramitacao_1=%s" % ( - fim_dt_tramitacao) + fim_dt_tramitacao) args_e += "&tipo=%s" % (tipo_materia) args_e += "&tramitacao__unidade_tramitacao_local=%s" % ( - unidade_local_tramitacao) + unidade_local_tramitacao) args_e += "&tramitacao__status=%s" % (status_tramitacao) args_e += "&salvar=%s" % ('Pesquisar') @@ -581,18 +582,18 @@ class RedirecionaHistoricoTramitacoesListTests(TestCase): status_tramitacao = status_tramitacao.lstrip("0") if ( - (inicio_dt_tramitacao != EMPTY_STRING) or - (fim_dt_tramitacao != EMPTY_STRING) or - (tipo_materia != EMPTY_STRING) or - (unidade_local_tramitacao != EMPTY_STRING) or - (status_tramitacao != EMPTY_STRING)): + (inicio_dt_tramitacao != EMPTY_STRING) or + (fim_dt_tramitacao != EMPTY_STRING) or + (tipo_materia != EMPTY_STRING) or + (unidade_local_tramitacao != EMPTY_STRING) or + (status_tramitacao != EMPTY_STRING)): args_e += "?tramitacao__data_tramitacao_0=%s" % ( - inicio_dt_tramitacao) + inicio_dt_tramitacao) args_e += "&tramitacao__data_tramitacao_1=%s" % ( - fim_dt_tramitacao) + fim_dt_tramitacao) args_e += "&tipo=%s" % (tipo_materia) args_e += "&tramitacao__unidade_tramitacao_local=%s" % ( - unidade_local_tramitacao) + unidade_local_tramitacao) args_e += "&tramitacao__status=%s" % (status_tramitacao) args_e += "&salvar=%s" % ('Pesquisar') diff --git a/sapl/relatorios/templates/pdf_capa_processo_preparar_pysc.py b/sapl/relatorios/templates/pdf_capa_processo_preparar_pysc.py index 789c2a50d..eacabf86e 100755 --- a/sapl/relatorios/templates/pdf_capa_processo_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_capa_processo_preparar_pysc.py @@ -1,138 +1,149 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION -data=DateTime().strftime('%d/%m/%Y') +data = DateTime().strftime('%d/%m/%Y') -#Abaixo é gerada a string para o rodapé da página -casa={} -aux=context.sapl_documentos.props_sapl.propertyItems() +# Abaixo é gerada a string para o rodapé da página +casa = {} +aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] -localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) -if len(casa["num_cep"])==8: - cep=casa["num_cep"][:4]+"-"+casa["num_cep"][5:] + casa[item[0]] = item[1] +localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) +if len(casa["num_cep"]) == 8: + cep = casa["num_cep"][:4] + "-" + casa["num_cep"][5:] else: - cep="" - -linha1=casa["end_casa"] -if cep!="": - if casa["end_casa"]!="" and casa["end_casa"]!=None: - linha1 = linha1 + " - " - linha1 = linha1 + "CEP "+cep -if localidade[0].nom_localidade!="" and localidade[0].nom_localidade!=None: - linha1 = linha1 + " - "+localidade[0].nom_localidade+" "+localidade[0].sgl_uf -if casa["num_tel"]!="" and casa["num_tel"]!=None: - linha1 = linha1 + " Tel.: "+ casa["num_tel"] - -linha2=casa["end_web_casa"] -if casa["end_email_casa"]!="" and casa["end_email_casa"]!=None: - if casa["end_web_casa"]!="" and casa["end_web_casa"]!=None: - linha2 = linha2 + " - " - linha2 = linha2 + "E-mail: "+casa["end_email_casa"] - -data_emissao=DateTime().strftime("%d/%m/%Y") -rodape=[linha1,linha2,data_emissao] - -#Por fim, gera-se as entradas para o cabeçalho -estados=context.zsql.localidade_obter_zsql(tip_localidade="u") + cep = "" + +linha1 = casa["end_casa"] +if cep != "": + if casa["end_casa"] != "" and casa["end_casa"] != None: + linha1 = linha1 + " - " + linha1 = linha1 + "CEP " + cep +if localidade[0].nom_localidade != "" and localidade[0].nom_localidade != None: + linha1 = linha1 + " - " + \ + localidade[0].nom_localidade + " " + localidade[0].sgl_uf +if casa["num_tel"] != "" and casa["num_tel"] != None: + linha1 = linha1 + " Tel.: " + casa["num_tel"] + +linha2 = casa["end_web_casa"] +if casa["end_email_casa"] != "" and casa["end_email_casa"] != None: + if casa["end_web_casa"] != "" and casa["end_web_casa"] != None: + linha2 = linha2 + " - " + linha2 = linha2 + "E-mail: " + casa["end_email_casa"] + +data_emissao = DateTime().strftime("%d/%m/%Y") +rodape = [linha1, linha2, data_emissao] + +# Por fim, gera-se as entradas para o cabeçalho +estados = context.zsql.localidade_obter_zsql(tip_localidade="u") for uf in estados: - if localidade[0].sgl_uf==uf.sgl_uf: - nom_estado=uf.nom_localidade - break -cabecalho={} -cabecalho["nom_casa"]=casa["nom_casa"] -cabecalho["nom_estado"]="Estado de "+nom_estado + if localidade[0].sgl_uf == uf.sgl_uf: + nom_estado = uf.nom_localidade + break +cabecalho = {} +cabecalho["nom_casa"] = casa["nom_casa"] +cabecalho["nom_estado"] = "Estado de " + nom_estado # tenta buscar o logotipo da casa LOGO_CASA -if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() +if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() else: - imagem = context.imagens.absolute_url() + "/brasao_transp.gif" + imagem = context.imagens.absolute_url() + "/brasao_transp.gif" -#Por fim, utiliza o PythonScript para pesquisar os protocolos e gerar os dados +# Por fim, utiliza o PythonScript para pesquisar os protocolos e gerar os dados -protocolos=[] -REQUEST=context.REQUEST -for protocolo in context.zsql.protocolo_pesquisar_zsql(tip_protocolo=REQUEST['rad_tip_protocolo'], - cod_protocolo=REQUEST['txt_num_protocolo'], ano_protocolo=REQUEST['txt_ano_protocolo'], - tip_documento=REQUEST['lst_tip_documento'], tip_processo=REQUEST['rad_tip_processo'], - tip_materia=REQUEST['lst_tip_materia'], des_assunto=REQUEST['txt_assunto'], - cod_autor=REQUEST['hdn_cod_autor'], des_interessado=REQUEST['txa_txt_interessado'], - dat_apres=REQUEST['dt_apres'], dat_apres2=REQUEST['dt_apres2']): - dic={} +protocolos = [] +REQUEST = context.REQUEST +for protocolo in context.zsql.protocolo_pesquisar_zsql(tip_protocolo=REQUEST['rad_tip_protocolo'], + cod_protocolo=REQUEST['txt_num_protocolo'], ano_protocolo=REQUEST[ + 'txt_ano_protocolo'], + tip_documento=REQUEST['lst_tip_documento'], tip_processo=REQUEST[ + 'rad_tip_processo'], + tip_materia=REQUEST[ + 'lst_tip_materia'], des_assunto=REQUEST['txt_assunto'], + cod_autor=REQUEST['hdn_cod_autor'], des_interessado=REQUEST[ + 'txa_txt_interessado'], + dat_apres=REQUEST['dt_apres'], dat_apres2=REQUEST['dt_apres2']): + dic = {} - dic['titulo']=str(protocolo.cod_protocolo) + dic['titulo'] = str(protocolo.cod_protocolo) - dic['ano']=str(protocolo.ano_protocolo) + dic['ano'] = str(protocolo.ano_protocolo) - dic['data']=context.pysc.iso_to_port_pysc(protocolo.dat_protocolo)+' - '+protocolo.hor_protocolo + dic['data'] = context.pysc.iso_to_port_pysc( + protocolo.dat_protocolo) + ' - ' + protocolo.hor_protocolo - dic['txt_assunto']=protocolo.txt_assunto_ementa + dic['txt_assunto'] = protocolo.txt_assunto_ementa - dic['txt_interessado']=protocolo.txt_interessado + dic['txt_interessado'] = protocolo.txt_interessado - dic['nom_autor'] = " " - if protocolo.cod_autor!=None: - for autor in context.zsql.autor_obter_zsql(cod_autor=protocolo.cod_autor): - if autor.des_tipo_autor=='Parlamentar': - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): - dic['nom_autor']=parlamentar.nom_completo - elif autor.des_tipo_autor=='Comissao': - for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): - dic['nom_autor']=comissao.nom_comissao - else: - dic['nom_autor']=autor.nom_autor - else: - dic['nom_autor']=protocolo.txt_interessado + dic['nom_autor'] = " " + if protocolo.cod_autor != None: + for autor in context.zsql.autor_obter_zsql(cod_autor=protocolo.cod_autor): + if autor.des_tipo_autor == 'Parlamentar': + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): + dic['nom_autor'] = parlamentar.nom_completo + elif autor.des_tipo_autor == 'Comissao': + for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): + dic['nom_autor'] = comissao.nom_comissao + else: + dic['nom_autor'] = autor.nom_autor + else: + dic['nom_autor'] = protocolo.txt_interessado - dic['natureza']='' - if protocolo.tip_processo==0: - dic['natureza']='Administrativo' - if protocolo.tip_processo==1: - dic['natureza']='Legislativo' - - dic['ident_processo']=protocolo.des_tipo_materia or protocolo.des_tipo_documento + dic['natureza'] = '' + if protocolo.tip_processo == 0: + dic['natureza'] = 'Administrativo' + if protocolo.tip_processo == 1: + dic['natureza'] = 'Legislativo' - dic['sgl_processo']=protocolo.sgl_tipo_materia or protocolo.sgl_tipo_documento + dic['ident_processo'] = protocolo.des_tipo_materia or protocolo.des_tipo_documento - dic['num_materia']='' - for materia in context.zsql.materia_obter_zsql(num_protocolo=protocolo.cod_protocolo,ano_ident_basica=protocolo.ano_protocolo): - dic['num_materia']=str(materia.num_ident_basica)+'/'+ str(materia.ano_ident_basica) + dic['sgl_processo'] = protocolo.sgl_tipo_materia or protocolo.sgl_tipo_documento - dic['num_documento']='' - for documento in context.zsql.documento_administrativo_obter_zsql(num_protocolo=protocolo.cod_protocolo): - dic['num_documento']=str(documento.num_documento)+'/'+ str(documento.ano_documento) + dic['num_materia'] = '' + for materia in context.zsql.materia_obter_zsql(num_protocolo=protocolo.cod_protocolo, ano_ident_basica=protocolo.ano_protocolo): + dic['num_materia'] = str(materia.num_ident_basica) + \ + '/' + str(materia.ano_ident_basica) - dic['num_processo']=dic['num_materia'] or dic['num_documento'] + dic['num_documento'] = '' + for documento in context.zsql.documento_administrativo_obter_zsql(num_protocolo=protocolo.cod_protocolo): + dic['num_documento'] = str( + documento.num_documento) + '/' + str(documento.ano_documento) - dic['numeracao']='' - for materia_num in context.zsql.materia_obter_zsql(num_protocolo=protocolo.cod_protocolo,ano_ident_basica=protocolo.ano_protocolo): - for numera in context.zsql.numeracao_obter_zsql(cod_materia=materia_num.cod_materia,ind_excluido=0): - dic['numeracao']='PROCESSO N° ' +str(numera.num_materia)+'/'+ str(numera.ano_materia) + dic['num_processo'] = dic['num_materia'] or dic['num_documento'] - dic['anulado']='' - if protocolo.ind_anulado==1: - dic['anulado']='Nulo' + dic['numeracao'] = '' + for materia_num in context.zsql.materia_obter_zsql(num_protocolo=protocolo.cod_protocolo, ano_ident_basica=protocolo.ano_protocolo): + for numera in context.zsql.numeracao_obter_zsql(cod_materia=materia_num.cod_materia, ind_excluido=0): + dic['numeracao'] = 'PROCESSO N° ' + \ + str(numera.num_materia) + '/' + str(numera.ano_materia) - protocolos.append(dic) + dic['anulado'] = '' + if protocolo.ind_anulado == 1: + dic['anulado'] = 'Nulo' -filtro={} # Dicionário que conterá os dados do filtro + protocolos.append(dic) + +filtro = {} # Dicionário que conterá os dados do filtro # Atribuições diretas do REQUEST -filtro['numero']=REQUEST.txt_num_protocolo -filtro['ano']=REQUEST.txt_ano_protocolo -filtro['tipo_protocolo']=REQUEST.rad_tip_protocolo -filtro['tipo_processo']=REQUEST.rad_tip_processo -filtro['assunto']=REQUEST.txt_assunto -filtro['autor']=REQUEST.hdn_cod_autor -filtro['interessado']=REQUEST.txa_txt_interessado - -sessao=session.id -caminho = context.pdf_capa_processo_gerar(sessao,imagem,data,protocolos,cabecalho,rodape,filtro) -if caminho=='aviso': - return response.redirect('mensagem_emitir_proc') +filtro['numero'] = REQUEST.txt_num_protocolo +filtro['ano'] = REQUEST.txt_ano_protocolo +filtro['tipo_protocolo'] = REQUEST.rad_tip_protocolo +filtro['tipo_processo'] = REQUEST.rad_tip_processo +filtro['assunto'] = REQUEST.txt_assunto +filtro['autor'] = REQUEST.hdn_cod_autor +filtro['interessado'] = REQUEST.txa_txt_interessado + +sessao = session.id +caminho = context.pdf_capa_processo_gerar( + sessao, imagem, data, protocolos, cabecalho, rodape, filtro) +if caminho == 'aviso': + return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_detalhe_materia_gerar.py b/sapl/relatorios/templates/pdf_detalhe_materia_gerar.py index dbe604872..43224d282 100755 --- a/sapl/relatorios/templates/pdf_detalhe_materia_gerar.py +++ b/sapl/relatorios/templates/pdf_detalhe_materia_gerar.py @@ -11,326 +11,402 @@ import time from trml2pdf import parseString -def cabecalho(dic_inf_basicas,imagem): +def cabecalho(dic_inf_basicas, imagem): """ Função que gera o código rml do cabeçalho da página """ - tmp='' - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\t2cm 24.5cm 19cm 24.5cm\n' - if dic_inf_basicas['nom_camara']!="" and dic_inf_basicas['nom_camara']!=None: - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\t' + dic_inf_basicas['nom_camara'] + '\n' - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\tSistema de Apoio ao Processo Legislativo\n' + tmp = '' + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\t2cm 24.5cm 19cm 24.5cm\n' + if dic_inf_basicas['nom_camara'] != "" and dic_inf_basicas['nom_camara'] != None: + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\t' + \ + dic_inf_basicas['nom_camara'] + '\n' + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\tSistema de Apoio ao Processo Legislativo\n' if str(dic_inf_basicas['nom_projeto']) != "" and str(dic_inf_basicas['nom_projeto']) != None: - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\t' + str(dic_inf_basicas['nom_projeto']) + '\n' + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\t' + \ + str(dic_inf_basicas['nom_projeto']) + '\n' if str(dic_inf_basicas['cod_projeto']) != "" and str(dic_inf_basicas['cod_projeto']) != None: - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\t' + str(dic_inf_basicas['cod_projeto']) + '\n' + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\t' + \ + str(dic_inf_basicas['cod_projeto']) + '\n' return tmp + def rodape(dic_rodape): """ Função que gera o codigo rml do rodape da pagina. """ - tmp='' + tmp = '' linha1 = dic_rodape['end_casa'] - if dic_rodape['end_casa']!="" and dic_rodape['end_casa']!=None: + if dic_rodape['end_casa'] != "" and dic_rodape['end_casa'] != None: linha1 = linha1 + " - " - if dic_rodape['num_cep']!="" and dic_rodape['num_cep']!=None: + if dic_rodape['num_cep'] != "" and dic_rodape['num_cep'] != None: linha1 = linha1 + "CEP " + dic_rodape['num_cep'] - if dic_rodape['nom_localidade']!="" and dic_rodape['nom_localidade']!=None: + if dic_rodape['nom_localidade'] != "" and dic_rodape['nom_localidade'] != None: linha1 = linha1 + " - " + dic_rodape['nom_localidade'] - if dic_rodape['sgl_uf']!="" and dic_rodape['sgl_uf']!=None: + if dic_rodape['sgl_uf'] != "" and dic_rodape['sgl_uf'] != None: inha1 = linha1 + " " + dic_rodape['sgl_uf'] - if dic_rodape['num_tel']!="" and dic_rodape['num_tel']!=None: - linha1 = linha1 + " Tel: "+ dic_rodape['num_tel'] - if dic_rodape['end_web_casa']!="" and dic_rodape['end_web_casa']!=None: + if dic_rodape['num_tel'] != "" and dic_rodape['num_tel'] != None: + linha1 = linha1 + " Tel: " + dic_rodape['num_tel'] + if dic_rodape['end_web_casa'] != "" and dic_rodape['end_web_casa'] != None: linha2 = dic_rodape['end_web_casa'] - if dic_rodape['end_email_casa']!="" and dic_rodape['end_email_casa']!=None: + if dic_rodape['end_email_casa'] != "" and dic_rodape['end_email_casa'] != None: linha2 = linha2 + " - E-mail: " + dic_rodape['end_email_casa'] - if dic_rodape['data_emissao']!="" and dic_rodape['data_emissao']!=None: + if dic_rodape['data_emissao'] != "" and dic_rodape['data_emissao'] != None: data_emissao = dic_rodape['data_emissao'] - tmp+='\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\t' + data_emissao + '\n' - tmp+='\t\t\t\tPágina \n' - tmp+='\t\t\t\t' + linha1 + '\n' - tmp+='\t\t\t\t' + linha2 + '\n' + tmp += '\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\t' + data_emissao + '\n' + tmp += '\t\t\t\tPágina \n' + tmp += '\t\t\t\t' + \ + linha1 + '\n' + tmp += '\t\t\t\t' + \ + linha2 + '\n' return tmp + def paraStyle(): """Função que gera o código rml que define o estilo dos parágrafos""" - - tmp='' - tmp+='\t\n' - tmp+='\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\n' - #titulo do parágrafo: é por default centralizado - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\n' + + tmp = '' + tmp += '\t\n' + tmp += '\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\n' + # titulo do parágrafo: é por default centralizado + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\n' return tmp + def inf_basicas(dic_inf_basicas): """ Função que gera o código rml das funções básicas do relatório """ - tmp='' - #Texto do projeto + tmp = '' + # Texto do projeto texto_projeto = str(dic_inf_basicas['texto_projeto']) - if texto_projeto != "" and texto_projeto != None : - tmp+='\t\t' + texto_projeto.replace('&','&') + '\n' + if texto_projeto != "" and texto_projeto != None: + tmp += '\t\t' + \ + texto_projeto.replace('&', '&') + '\n' - #início das informações básicas - tmp+='\t\tInformações Básicas\n' + # início das informações básicas + tmp += '\t\tInformações Básicas\n' if str(dic_inf_basicas['apresentada']) != "" and str(dic_inf_basicas['apresentada']) != None: - tmp+='\t\tApresentada em: ' + str(dic_inf_basicas['apresentada']) + '\n' + tmp += '\t\tApresentada em: ' + \ + str(dic_inf_basicas['apresentada']) + '\n' if str(dic_inf_basicas['formato']) != "" and str(dic_inf_basicas['formato']) != None: - tmp+='\t\tFormato: ' + str(dic_inf_basicas['formato']) + '\n' + tmp += '\t\tFormato: ' + \ + str(dic_inf_basicas['formato']) + '\n' - if dic_inf_basicas['publicada']==0: - tmp+='\t\tPublicada: Não\n' - else: - tmp+='\t\tPublicada: Sim\n' + if dic_inf_basicas['publicada'] == 0: + tmp += '\t\tPublicada: Não\n' + else: + tmp += '\t\tPublicada: Sim\n' if str(dic_inf_basicas['objeto']) != "" and str(dic_inf_basicas['objeto']) != None: - tmp+='\t\tObjeto: ' + str(dic_inf_basicas['objeto']) + '\n' + tmp += '\t\tObjeto: ' + \ + str(dic_inf_basicas['objeto']) + '\n' - if dic_inf_basicas['tramitacao']==0: - tmp+='\t\tTramitação: Não\n' + if dic_inf_basicas['tramitacao'] == 0: + tmp += '\t\tTramitação: Não\n' else: - tmp+='\t\tTramitação: Sim\n' + tmp += '\t\tTramitação: Sim\n' if str(dic_inf_basicas['reg_tramitacao']) != "" and str(dic_inf_basicas['reg_tramitacao']) != None: - tmp+='\t\tRegime: ' + str(dic_inf_basicas['reg_tramitacao']) + '\n' + tmp += '\t\tRegime: ' + \ + str(dic_inf_basicas['reg_tramitacao']) + '\n' if str(dic_inf_basicas['prazo']) != "" and str(dic_inf_basicas['prazo']) != None: - tmp+='\t\tDias de prazo: ' + str(dic_inf_basicas['prazo']) + '\n' + tmp += '\t\tDias de prazo: ' + \ + str(dic_inf_basicas['prazo']) + '\n' if str(dic_inf_basicas['fim_prazo']) != "" and str(dic_inf_basicas['fim_prazo']) != None: - tmp+='\t\tData do fim do prazo: ' + str(dic_inf_basicas['fim_prazo']) + '\n' + tmp += '\t\tData do fim do prazo: ' + \ + str(dic_inf_basicas['fim_prazo']) + '\n' if dic_inf_basicas['mat_complementar'] == 0: - tmp+='\t\tMatéria Complementar: Não\n' + tmp += '\t\tMatéria Complementar: Não\n' else: - tmp+='\t\tMatéria Complementar: Sim\n' + tmp += '\t\tMatéria Complementar: Sim\n' if dic_inf_basicas['polemica'] == 0: - tmp+='\t\tPolêmica: Não\n' + tmp += '\t\tPolêmica: Não\n' else: - tmp+='\t\tPolêmica: Sim\n' + tmp += '\t\tPolêmica: Sim\n' apelido = dic_inf_basicas['apelido'] if apelido != "" and apelido != None: - tmp+='\t\tApelido: ' + apelido.replace('&','&') + '\n' + tmp += '\t\tApelido: ' + \ + apelido.replace('&', '&') + '\n' indexacao = dic_inf_basicas['indexacao'] if indexacao != "" and indexacao != None: - tmp+='\t\tIndexação: ' + indexacao.replace('&','&') + '\n' + tmp += '\t\tIndexação: ' + \ + indexacao.replace('&', '&') + '\n' observacao = dic_inf_basicas['observacao'] if observacao != "" and observacao != None: - tmp+='\t\tObservação: ' + observacao.replace('&','&') + '\n' + tmp += '\t\tObservação: ' + \ + observacao.replace('&', '&') + '\n' return tmp + def orig_externa(dic_orig_externa): """ Função que gera o código rml da origem externa """ - tmp='' - tmp+='\t\tOrigem Externa\n' + tmp = '' + tmp += '\t\tOrigem Externa\n' try: if dic_orig_externa['local'] != "" and dic_orig_externa['local'] != None: - tmp+='\t\tLocal: ' + dic_orig_externa['local'] + '\n' + tmp += '\t\tLocal: ' + \ + dic_orig_externa['local'] + '\n' if dic_orig_externa['data'] != "" and dic_orig_externa['data'] != None: - tmp+='\t\tData: ' + dic_orig_externa['data'] + '\n' + tmp += '\t\tData: ' + \ + dic_orig_externa['data'] + '\n' if dic_orig_externa['tipo'] != "" and dic_orig_externa['tipo'] != None: - tmp+='\t\tTipo: ' + dic_orig_externa['tipo'] + '\n' + tmp += '\t\tTipo: ' + \ + dic_orig_externa['tipo'] + '\n' if dic_orig_externa['numero_ano'] != "" and dic_orig_externa['numero_ano'] != None: - tmp+='\t\tNúmero/Ano: ' + dic_orig_externa['numero_ano'] + '\n' - except: pass + tmp += '\t\tNúmero/Ano: ' + \ + dic_orig_externa['numero_ano'] + '\n' + except: + pass return tmp + def mat_anexadas(lst_mat_anexadas): - tmp='' - tmp+='\t\tMatérias Anexadas\n' - for dic_mat in lst_mat_anexadas: - if dic_mat['nom_mat']!="" and dic_mat['nom_mat']!= None: - tmp+='\t\tNome da matéria: ' + dic_mat['nom_mat'] + '\n' - tmp+='\t\tData: ' + dic_mat['data'] + '\n' - tmp+='\t\tData final: ' + str(dic_mat['data_fim']) + '\n' + tmp = '' + tmp += '\t\tMatérias Anexadas\n' + for dic_mat in lst_mat_anexadas: + if dic_mat['nom_mat'] != "" and dic_mat['nom_mat'] != None: + tmp += '\t\tNome da matéria: ' + \ + dic_mat['nom_mat'] + '\n' + tmp += '\t\tData: ' + \ + dic_mat['data'] + '\n' + tmp += '\t\tData final: ' + \ + str(dic_mat['data_fim']) + '\n' return tmp + def autoria(lst_autoria): - tmp='' - tmp+='\t\tAutores\n' + tmp = '' + tmp += '\t\tAutores\n' for dic_autor in lst_autoria: if dic_autor['nom_autor'] != "" and dic_autor['nom_autor'] != None: - tmp+='\t\tNome do Autor: ' + dic_autor['nom_autor'] + '\n' + tmp += '\t\tNome do Autor: ' + \ + dic_autor['nom_autor'] + '\n' if dic_autor['nom_autor'] != "" and dic_autor['cargo'] != None: - tmp+='\t\tCargo: ' + dic_autor['cargo'] + '\n' + tmp += '\t\tCargo: ' + \ + dic_autor['cargo'] + '\n' if dic_autor['nom_autor'] != "" and dic_autor['tipo'] != None: - tmp+='\t\tTipo: ' + dic_autor['tipo'] + '\n' + tmp += '\t\tTipo: ' + \ + dic_autor['tipo'] + '\n' return tmp + def despachos_iniciais(lst_des_iniciais): - tmp='' - tmp+='\t\tDespachos Iniciais\n' + tmp = '' + tmp += '\t\tDespachos Iniciais\n' for dic_dados in lst_des_iniciais: - if dic_dados['nom_comissao']==None: - dic_dados['nom_comissao']=" " - tmp+='\t\tNome da comissão: ' + dic_dados['nom_comissao'] + '\n' + if dic_dados['nom_comissao'] == None: + dic_dados['nom_comissao'] = " " + tmp += '\t\tNome da comissão: ' + \ + dic_dados['nom_comissao'] + '\n' return tmp + def tramitacoes(dic_tramitacoes): - tmp='' - tmp+='\t\tÚltima Tramitação\n' + tmp = '' + tmp += '\t\tÚltima Tramitação\n' try: - tmp+='\t\tData Ação: ' + str(dic_tramitacoes['data']) + '\n' - tmp+='\t\tUnidade Local: ' + dic_tramitacoes['unidade'] + '\n' - tmp+='\t\tEncaminhada em: ' + str(dic_tramitacoes['data_enc']) + '\n' - tmp+='\t\tDestino: ' + dic_tramitacoes['destino'] + '\n' - tmp+='\t\tTurno: ' + dic_tramitacoes['turno'] + '\n' - tmp+='\t\tStatus: ' + dic_tramitacoes['status'] + '\n' - if dic_tramitacoes['urgente']==0: - tmp+='\t\tUrgente: Não\n' - else: - tmp+='\t\tUrgente: Sim\n' - - tmp+='\t\tData do fim do prazo: ' + str(dic_tramitacoes['data_fim']) + '\n' - if dic_tramitacoes['texto_acao'] != "" and dic_tramitacoes['texto_acao'] != None : - tmp+='\t\tTexto da Ação: ' + dic_tramitacoes['texto_acao'].replace('&','&') + '\n' - - except: pass + tmp += '\t\tData Ação: ' + \ + str(dic_tramitacoes['data']) + '\n' + tmp += '\t\tUnidade Local: ' + \ + dic_tramitacoes['unidade'] + '\n' + tmp += '\t\tEncaminhada em: ' + \ + str(dic_tramitacoes['data_enc']) + '\n' + tmp += '\t\tDestino: ' + \ + dic_tramitacoes['destino'] + '\n' + tmp += '\t\tTurno: ' + \ + dic_tramitacoes['turno'] + '\n' + tmp += '\t\tStatus: ' + \ + dic_tramitacoes['status'] + '\n' + if dic_tramitacoes['urgente'] == 0: + tmp += '\t\tUrgente: Não\n' + else: + tmp += '\t\tUrgente: Sim\n' + + tmp += '\t\tData do fim do prazo: ' + \ + str(dic_tramitacoes['data_fim']) + '\n' + if dic_tramitacoes['texto_acao'] != "" and dic_tramitacoes['texto_acao'] != None: + tmp += '\t\tTexto da Ação: ' + \ + dic_tramitacoes['texto_acao'].replace( + '&', '&') + '\n' + + except: + pass return tmp + def relatorias(lst_relatorias): - tmp='' - tmp+='\t\tRelatorias\n' + tmp = '' + tmp += '\t\tRelatorias\n' for dic_comissao in lst_relatorias: - tmp+='\t\tComissão: ' + dic_comissao['nom_comissao'] + '\n' - tmp+='\t\tData Designação: ' + str(dic_comissao['data_desig']) + '\n' - tmp+='\t\tParlamentar: ' + dic_comissao['parlamentar'] + '\n' - tmp+='\t\tData Destituição: ' + str(dic_comissao['data_dest']) + '\n' - tmp+='\t\tMotivo Fim Relatoria: ' + dic_comissao['motivo'] + '\n' + tmp += '\t\tComissão: ' + \ + dic_comissao['nom_comissao'] + '\n' + tmp += '\t\tData Designação: ' + \ + str(dic_comissao['data_desig']) + '\n' + tmp += '\t\tParlamentar: ' + \ + dic_comissao['parlamentar'] + '\n' + tmp += '\t\tData Destituição: ' + \ + str(dic_comissao['data_dest']) + '\n' + tmp += '\t\tMotivo Fim Relatoria: ' + \ + dic_comissao['motivo'] + '\n' return tmp + def numeracoes(lst_numeracoes): - tmp='' - tmp+='\t\tNumerações\n' + tmp = '' + tmp += '\t\tNumerações\n' for dic_dados in lst_numeracoes: - tmp+='\t\tNome: ' + dic_dados['nome'] + '\n' - tmp+='\t\tAno: ' + str(dic_dados['ano']) + '\n' + tmp += '\t\tNome: ' + \ + dic_dados['nome'] + '\n' + tmp += '\t\tAno: ' + \ + str(dic_dados['ano']) + '\n' return tmp + def legislacoes_citadas(lst_leg_citadas): - tmp='' - tmp+='\t\tLegislações Citadas\n' + tmp = '' + tmp += '\t\tLegislações Citadas\n' for dic_dados in lst_leg_citadas: - tmp+='\t\tTipo Norma: ' + str(dic_dados['nome_lei']) + '\n' - tmp+='\t\tDisposição: ' + str(dic_dados['disposicao']) + '\n' - tmp+='\t\tParte: ' + str(dic_dados['parte']) + '\n' - tmp+='\t\tLivro: ' + str(dic_dados['livro']) + '\n' - tmp+='\t\tTí­tulo: ' + str(dic_dados['titulo']) + '\n' - tmp+='\t\tCapí­tulo: ' + str(dic_dados['capitulo']) + '\n' - tmp+='\t\tSeção: ' + str(dic_dados['secao']) + '\n' - tmp+='\t\tSubseção: ' + str(dic_dados['subsecao']) + '\n' - tmp+='\t\tArtigo: ' + str(dic_dados['artigo']) + '\n' - tmp+='\t\tParágrafo: ' + str(dic_dados['paragrafo']) + '\n' - tmp+='\t\tInciso: ' + str(dic_dados['inciso']) + '\n' - tmp+='\t\tAlí­nea: ' + str(dic_dados['alinea']) + '\n' - tmp+='\t\tItem: ' + str(dic_dados['item']) + '\n' + tmp += '\t\tTipo Norma: ' + \ + str(dic_dados['nome_lei']) + '\n' + tmp += '\t\tDisposição: ' + \ + str(dic_dados['disposicao']) + '\n' + tmp += '\t\tParte: ' + \ + str(dic_dados['parte']) + '\n' + tmp += '\t\tLivro: ' + \ + str(dic_dados['livro']) + '\n' + tmp += '\t\tTí­tulo: ' + \ + str(dic_dados['titulo']) + '\n' + tmp += '\t\tCapí­tulo: ' + \ + str(dic_dados['capitulo']) + '\n' + tmp += '\t\tSeção: ' + \ + str(dic_dados['secao']) + '\n' + tmp += '\t\tSubseção: ' + \ + str(dic_dados['subsecao']) + '\n' + tmp += '\t\tArtigo: ' + \ + str(dic_dados['artigo']) + '\n' + tmp += '\t\tParágrafo: ' + \ + str(dic_dados['paragrafo']) + '\n' + tmp += '\t\tInciso: ' + \ + str(dic_dados['inciso']) + '\n' + tmp += '\t\tAlí­nea: ' + \ + str(dic_dados['alinea']) + '\n' + tmp += '\t\tItem: ' + \ + str(dic_dados['item']) + '\n' return tmp + def documentos_acessorios(lst_acessorios): - tmp='' - tmp+='\t\tDocumentos Acessórios\n' + tmp = '' + tmp += '\t\tDocumentos Acessórios\n' for dic_dados in lst_acessorios: - if dic_dados['tipo']!=None: - tmp+='\t\tTipo: ' + dic_dados['tipo'] + '\n' - - if dic_dados['nome']!=None: - tmp+='\t\tNome: ' + dic_dados['nome'] + '\n' - - tmp+='\t\tData: ' + dic_dados['data'] + '\n' - if dic_dados['autor']!=None: - tmp+='\t\tAutor: ' + dic_dados['autor'] + '\n' - - if dic_dados['ementa']!=None: - tmp+='\t\tEmenta: ' + dic_dados['ementa'].replace('&','&') + '\n' - if dic_dados['indexacao']!=None: - tmp+='\t\tEmenta: ' + dic_dados['indexacao'].replace('&','&') + '\n' + if dic_dados['tipo'] != None: + tmp += '\t\tTipo: ' + \ + dic_dados['tipo'] + '\n' + + if dic_dados['nome'] != None: + tmp += '\t\tNome: ' + \ + dic_dados['nome'] + '\n' + + tmp += '\t\tData: ' + \ + dic_dados['data'] + '\n' + if dic_dados['autor'] != None: + tmp += '\t\tAutor: ' + \ + dic_dados['autor'] + '\n' + + if dic_dados['ementa'] != None: + tmp += '\t\tEmenta: ' + \ + dic_dados['ementa'].replace('&', '&') + '\n' + if dic_dados['indexacao'] != None: + tmp += '\t\tEmenta: ' + \ + dic_dados['indexacao'].replace('&', '&') + '\n' return tmp -def principal(imagem, dic_rodape,dic_inf_basicas,dic_orig_externa,lst_mat_anexadas,lst_autoria,lst_des_iniciais, - dic_tramitacoes,lst_relatorias,lst_numeracoes,lst_leg_citadas,lst_acessorios,sessao=''): + +def principal(imagem, dic_rodape, dic_inf_basicas, dic_orig_externa, lst_mat_anexadas, lst_autoria, lst_des_iniciais, + dic_tramitacoes, lst_relatorias, lst_numeracoes, lst_leg_citadas, lst_acessorios, sessao=''): """ Função principal responsável por chamar as funções que irão gerar o código rml apropriado """ - arquivoPdf=str(int(time.time()*100))+".pdf" - - tmp='' - tmp+='\n' - tmp+='\n' - tmp+='\n' - tmp+='\t\n' - tmp+=paraStyle() - tmp+='\t\n' - tmp+=inf_basicas(dic_inf_basicas) - tmp+=orig_externa(dic_orig_externa) - tmp+=mat_anexadas(lst_mat_anexadas) - tmp+=autoria(lst_autoria) - tmp+=despachos_iniciais(lst_des_iniciais) - tmp+=tramitacoes(dic_tramitacoes) - tmp+=relatorias(lst_relatorias) - tmp+=numeracoes(lst_numeracoes) - tmp+=legislacoes_citadas(lst_leg_citadas) - tmp+=documentos_acessorios(lst_acessorios) - tmp+='\t\n' - tmp+='\n' - tmp_pdf=parseString(tmp) + arquivoPdf = str(int(time.time() * 100)) + ".pdf" + + tmp = '' + tmp += '\n' + tmp += '\n' + tmp += '\n' + tmp += '\t\n' + tmp += paraStyle() + tmp += '\t\n' + tmp += inf_basicas(dic_inf_basicas) + tmp += orig_externa(dic_orig_externa) + tmp += mat_anexadas(lst_mat_anexadas) + tmp += autoria(lst_autoria) + tmp += despachos_iniciais(lst_des_iniciais) + tmp += tramitacoes(dic_tramitacoes) + tmp += relatorias(lst_relatorias) + tmp += numeracoes(lst_numeracoes) + tmp += legislacoes_citadas(lst_leg_citadas) + tmp += documentos_acessorios(lst_acessorios) + tmp += '\t\n' + tmp += '\n' + tmp_pdf = parseString(tmp) return tmp_pdf # if hasattr(context.temp_folder,arquivoPdf): @@ -339,9 +415,9 @@ def principal(imagem, dic_rodape,dic_inf_basicas,dic_orig_externa,lst_mat_anexad # arq=context.temp_folder[arquivoPdf] # arq.manage_edit(title='Arquivo PDF temporário.',filedata=tmp_pdf,content_type='application/pdf') -# # try: -# # tmp_pdf=parseString(unicode(tmp, 'utf-8')) -# # except: +# # try: +# # tmp_pdf=parseString(unicode(tmp, 'utf-8')) +# # except: # # tmp_pdf=parseString(unicode(tmp, 'utf-8')) # return "/temp_folder/"+arquivoPdf diff --git a/sapl/relatorios/templates/pdf_detalhe_materia_preparar_pysc.py b/sapl/relatorios/templates/pdf_detalhe_materia_preparar_pysc.py index f28adccb1..ebe3be006 100644 --- a/sapl/relatorios/templates/pdf_detalhe_materia_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_detalhe_materia_preparar_pysc.py @@ -1,89 +1,94 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION -cabecalho={} +cabecalho = {} # tenta buscar o logotipo da casa LOGO_CASA -if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() +if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() else: - imagem = context.imagens.absolute_url() + "/brasao_transp.gif" + imagem = context.imagens.absolute_url() + "/brasao_transp.gif" -#Abaixo é gerado o dic do rodapé da página (linha 7) -casa={} -aux=context.sapl_documentos.props_sapl.propertyItems() +# Abaixo é gerado o dic do rodapé da página (linha 7) +casa = {} +aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] -localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) -data_emissao= DateTime().strftime("%d/%m/%Y") -rodape= casa -rodape['data_emissao']= data_emissao + casa[item[0]] = item[1] +localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) +data_emissao = DateTime().strftime("%d/%m/%Y") +rodape = casa +rodape['data_emissao'] = data_emissao inf_basicas_dic = {} -inf_basicas_dic['nom_camara']= casa['nom_casa'] -REQUEST=context.REQUEST -for local in context.zsql.localidade_obter_zsql(cod_localidade = casa['cod_localidade']): - rodape['nom_localidade']= " "+local.nom_localidade - rodape['sgl_uf']= local.sgl_uf +inf_basicas_dic['nom_camara'] = casa['nom_casa'] +REQUEST = context.REQUEST +for local in context.zsql.localidade_obter_zsql(cod_localidade=casa['cod_localidade']): + rodape['nom_localidade'] = " " + local.nom_localidade + rodape['sgl_uf'] = local.sgl_uf orig_externa_dic = {} for materia in context.zsql.materia_obter_zsql(cod_materia=REQUEST['cod_materia']): -#Abaixo é gerado os dados para o bloco Informações Básicas (ln 23) - inf_basicas_dic['texto_projeto']= materia.txt_ementa - inf_basicas_dic['apresentada']= materia.dat_apresentacao - inf_basicas_dic['formato']= materia.tip_apresentacao - inf_basicas_dic['publicada']= materia.dat_publicacao - inf_basicas_dic['objeto']= materia.des_objeto - inf_basicas_dic['tramitacao']= materia.ind_tramitacao - inf_basicas_dic['cod_projeto']= materia.sgl_tipo_materia+" "+ str(materia.num_ident_basica)+" de "+ str(materia.ano_ident_basica) - inf_basicas_dic['nom_projeto']= materia.des_tipo_materia - - for tramitacao in context.zsql.regime_tramitacao_obter_zsql(cod_regime_tramitacao=materia.cod_regime_tramitacao): -# """#tratando possíveis erros""" -# if tramitacao.des_regime_tramitacao==None: tramitacao.des_regime_tramitacao="" -# if materia.num_dias_prazo==None: materia.num_dias_prazo="" -# if materia.dat_fim_prazo==None: materia.dat_fim_prazo="" -# if materia.ind_complementar==None: materia.ind_complementar="" -# if materia.ind_polemica==None: materia.ind_polemica="" -# if materia.nom_apelido==None: materia.nom_apelido="" -# if materia.txt_indexacao==None: materia.txt_indexacao="" -# if materia.txt_observacao==None: materia.txt_observacao="" -# """#atribuindo valores""" - inf_basicas_dic['reg_tramitacao']= tramitacao.des_regime_tramitacao - inf_basicas_dic['prazo']= materia.num_dias_prazo - inf_basicas_dic['fim_prazo']= materia.dat_fim_prazo - inf_basicas_dic['mat_complementar']= materia.ind_complementar - inf_basicas_dic['polemica']= materia.ind_polemica - inf_basicas_dic['apelido']= materia.nom_apelido - inf_basicas_dic['indexacao']= materia.txt_indexacao - inf_basicas_dic['observacao']= materia.txt_observacao + # Abaixo é gerado os dados para o bloco Informações Básicas (ln 23) + inf_basicas_dic['texto_projeto'] = materia.txt_ementa + inf_basicas_dic['apresentada'] = materia.dat_apresentacao + inf_basicas_dic['formato'] = materia.tip_apresentacao + inf_basicas_dic['publicada'] = materia.dat_publicacao + inf_basicas_dic['objeto'] = materia.des_objeto + inf_basicas_dic['tramitacao'] = materia.ind_tramitacao + inf_basicas_dic['cod_projeto'] = materia.sgl_tipo_materia + " " + \ + str(materia.num_ident_basica) + " de " + str(materia.ano_ident_basica) + inf_basicas_dic['nom_projeto'] = materia.des_tipo_materia + + for tramitacao in context.zsql.regime_tramitacao_obter_zsql(cod_regime_tramitacao=materia.cod_regime_tramitacao): + # """#tratando possíveis erros""" + # if tramitacao.des_regime_tramitacao==None: tramitacao.des_regime_tramitacao="" + # if materia.num_dias_prazo==None: materia.num_dias_prazo="" + # if materia.dat_fim_prazo==None: materia.dat_fim_prazo="" + # if materia.ind_complementar==None: materia.ind_complementar="" + # if materia.ind_polemica==None: materia.ind_polemica="" + # if materia.nom_apelido==None: materia.nom_apelido="" + # if materia.txt_indexacao==None: materia.txt_indexacao="" + # if materia.txt_observacao==None: materia.txt_observacao="" + # """#atribuindo valores""" + inf_basicas_dic['reg_tramitacao'] = tramitacao.des_regime_tramitacao + inf_basicas_dic['prazo'] = materia.num_dias_prazo + inf_basicas_dic['fim_prazo'] = materia.dat_fim_prazo + inf_basicas_dic['mat_complementar'] = materia.ind_complementar + inf_basicas_dic['polemica'] = materia.ind_polemica + inf_basicas_dic['apelido'] = materia.nom_apelido + inf_basicas_dic['indexacao'] = materia.txt_indexacao + inf_basicas_dic['observacao'] = materia.txt_observacao + - # #o bloco abaixo gera o dicionario da origem externa (ln 47) - for origem in context.zsql.origem_obter_zsql(cod_origem = materia.cod_local_origem_externa): -# #tratando possíveis erros -# if origem.sgl_origem==None: origem.sgl_origem="" -# if origem.nom_origem==None: origem.nom_origem="" -# if materia.tip_origem_externa==None: materia.tip_origem_externa="" -# if materia.dat_origem_externa==None: materia.dat_origem_externa="" -# if materia.num_origem_externa==None: materia.num_origem_externa="" -# if materia.ano_origem_externa==None: materia.ano_origem_externa="" - - orig_externa_dic['local']= origem.sgl_origem+ "-"+ origem.nom_origem - orig_externa_dic['tipo']= materia.tip_origem_externa - orig_externa_dic['data']= materia.dat_origem_externa - orig_externa_dic['numero_ano']= str(materia.num_origem_externa)+ "/"+ str(materia.ano_origem_externa) - + for origem in context.zsql.origem_obter_zsql(cod_origem=materia.cod_local_origem_externa): + # #tratando possíveis erros + # if origem.sgl_origem==None: origem.sgl_origem="" + # if origem.nom_origem==None: origem.nom_origem="" + # if materia.tip_origem_externa==None: materia.tip_origem_externa="" + # if materia.dat_origem_externa==None: materia.dat_origem_externa="" + # if materia.num_origem_externa==None: materia.num_origem_externa="" + # if materia.ano_origem_externa==None: materia.ano_origem_externa="" + + orig_externa_dic['local'] = origem.sgl_origem + "-" + origem.nom_origem + orig_externa_dic['tipo'] = materia.tip_origem_externa + orig_externa_dic['data'] = materia.dat_origem_externa + orig_externa_dic['numero_ano'] = str( + materia.num_origem_externa) + "/" + str(materia.ano_origem_externa) + # #o bloco abaixo gera o dicionario das materias anexadas (ln 55) - lst_mat_anexadas = [] - dic_mat = {} - for anexada in context.zsql.anexada_obter_zsql(cod_materia_principal=materia.cod_materia): - aux1 = context.zsql.materia_obter_zsql(cod_materia = anexada.cod_materia_anexada) - aux2 = context.zsql.tipo_materia_legislativa_obter_zsql(tip_materia = aux1[0].tip_id_basica) + lst_mat_anexadas = [] + dic_mat = {} + for anexada in context.zsql.anexada_obter_zsql(cod_materia_principal=materia.cod_materia): + aux1 = context.zsql.materia_obter_zsql( + cod_materia=anexada.cod_materia_anexada) + aux2 = context.zsql.tipo_materia_legislativa_obter_zsql( + tip_materia=aux1[0].tip_id_basica) # """#tratando possíveis erros""" # if aux2.sgl_tipo_materia==None: aux2.sgl_tipo_materia="" # if aux2.num_ident_basica==None: aux2.num_ident_basica="" @@ -91,33 +96,34 @@ for materia in context.zsql.materia_obter_zsql(cod_materia=REQUEST['cod_materia' # if anexadas.dat_anexacao==None: anexadas.dat_anexacao="" # if anexadas.dat_desanexacao==None: anexadas.dat_desanexacao="" # """#""" - dic_mat['nom_mat']= aux2[0].sgl_tipo_materia+ "/"+ str(aux1[0].num_ident_basica)+ "/"+ str(aux1[0].ano_ident_basica) - dic_mat['data']= anexada.dat_anexacao - dic_mat['data_fim']= anexada.dat_desanexacao - lst_mat_anexadas.append(dic_mat) - + dic_mat['nom_mat'] = aux2[0].sgl_tipo_materia + "/" + \ + str(aux1[0].num_ident_basica) + "/" + str(aux1[0].ano_ident_basica) + dic_mat['data'] = anexada.dat_anexacao + dic_mat['data_fim'] = anexada.dat_desanexacao + lst_mat_anexadas.append(dic_mat) + # #o bloco abaixo gera o dicionario dos autores(ln 66) - lst_autoria = [] + lst_autoria = [] # dic_autor = {} - for autoria in context.zsql.autoria_obter_zsql(cod_materia = materia.cod_materia): - dic_autor = {} - if autoria.ind_primeiro_autor: - dic_autor['tipo']= "primeiro autor" - else: - dic_autor['tipo']= " " - - for autor in context.zsql.autor_obter_zsql(cod_autor = autoria.cod_autor): - dic_autor['cargo']= " " - if autor.des_tipo_autor=='Parlamentar': - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): - dic_autor['nom_autor']=parlamentar.nom_completo - elif autor.des_tipo_autor=='Comissao': - for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): - dic_autor['nom_autor']=comissao.nom_comissao - else: - dic_autor['nom_autor']=autor.nom_autor - dic_autor['cargo']= autor.des_cargo - lst_autoria.append(dic_autor) + for autoria in context.zsql.autoria_obter_zsql(cod_materia=materia.cod_materia): + dic_autor = {} + if autoria.ind_primeiro_autor: + dic_autor['tipo'] = "primeiro autor" + else: + dic_autor['tipo'] = " " + + for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor): + dic_autor['cargo'] = " " + if autor.des_tipo_autor == 'Parlamentar': + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): + dic_autor['nom_autor'] = parlamentar.nom_completo + elif autor.des_tipo_autor == 'Comissao': + for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): + dic_autor['nom_autor'] = comissao.nom_comissao + else: + dic_autor['nom_autor'] = autor.nom_autor + dic_autor['cargo'] = autor.des_cargo + lst_autoria.append(dic_autor) # """#tratando possíveis erros""" # if autor.nom_autor==None: autor.nom_autor="" @@ -127,141 +133,152 @@ for materia in context.zsql.materia_obter_zsql(cod_materia=REQUEST['cod_materia' # dic_autor['cargo']= autor.des_cargo # if autoria.ind_primeiro_autor: # dic_autor['tipo']= "primeiro autor" -# else: +# else: # dic_autor['tipo']= " " - + # #o bloco abaixo gera o dicionario de despachos iniciais (ln 79) - lst_des_iniciais=[] - for despacho in context.zsql.despacho_inicial_obter_zsql(cod_materia = materia.cod_materia): - for comissao in context.zsql.comissao_obter_zsql(cod_comissao = despacho.cod_comissao_sel): - dic_dados={} - if comissao.nom_comissao==None: - comissao.nom_comissao='' - if comissao.sgl_comissao==None: - comissao.sgl_comissao='' - dic_dados['nom_comissao']=comissao.nom_comissao+ " - "+ comissao.sgl_comissao - lst_des_iniciais.append(dic_dados) - + lst_des_iniciais = [] + for despacho in context.zsql.despacho_inicial_obter_zsql(cod_materia=materia.cod_materia): + for comissao in context.zsql.comissao_obter_zsql(cod_comissao=despacho.cod_comissao_sel): + dic_dados = {} + if comissao.nom_comissao == None: + comissao.nom_comissao = '' + if comissao.sgl_comissao == None: + comissao.sgl_comissao = '' + dic_dados['nom_comissao'] = comissao.nom_comissao + \ + " - " + comissao.sgl_comissao + lst_des_iniciais.append(dic_dados) + # #o bloco abaixo gera o dicionário de Tramitacoes(ln 87) - dic_tramitacoes = {} - for tramitacao in context.zsql.tramitacao_obter_zsql(cod_materia=REQUEST['cod_materia'], ind_ult_tramitacao=1): - dic_tramitacoes['data']= tramitacao.dat_tramitacao - dic_tramitacoes['data_enc']= tramitacao.dat_encaminha - dic_tramitacoes['turno']= tramitacao.sgl_turno - dic_tramitacoes['status']= tramitacao.des_status - dic_tramitacoes['urgente']= tramitacao.ind_urgencia - dic_tramitacoes['data_fim']= tramitacao.dat_fim_prazo - dic_tramitacoes['texto_acao']= tramitacao.txt_tramitacao + dic_tramitacoes = {} + for tramitacao in context.zsql.tramitacao_obter_zsql(cod_materia=REQUEST['cod_materia'], ind_ult_tramitacao=1): + dic_tramitacoes['data'] = tramitacao.dat_tramitacao + dic_tramitacoes['data_enc'] = tramitacao.dat_encaminha + dic_tramitacoes['turno'] = tramitacao.sgl_turno + dic_tramitacoes['status'] = tramitacao.des_status + dic_tramitacoes['urgente'] = tramitacao.ind_urgencia + dic_tramitacoes['data_fim'] = tramitacao.dat_fim_prazo + dic_tramitacoes['texto_acao'] = tramitacao.txt_tramitacao + + for unidade in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao=tramitacao.cod_unid_tram_local): + #-----------------se unidade for comissao-------------------------- + if unidade.cod_orgao == None: + for comissao in context.zsql.comissao_obter_zsql(cod_comissao=unidade.cod_comissao): + if tramitacao.cod_unid_tram_dest != None: + for unidade_dest in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao=tramitacao.cod_unid_tram_dest): + # se unidade destino for comissao + if unidade_dest.cod_orgao == None: + for comissao_dest in context.zsql.comissao_obter_zsql(cod_comissao=unidade_dest.cod_comissao): + dic_tramitacoes[ + 'unidade'] = comissao.nom_comissao + dic_tramitacoes[ + 'destino'] = comissao_dest.nom_comissao + # se unidade destino for orgao + if unidade_dest.cod_comissao == None: + for orgao_dest in context.zsql.orgao_obter_zsql(cod_orgao=unidade_dest.cod_orgao): + dic_tramitacoes[ + 'unidade'] = comissao.nom_comissao + dic_tramitacoes[ + 'destino'] = orgao_dest.nom_orgao + else: + dic_tramitacoes['unidade'] = comissao.nom_comissao + dic_tramitacoes['destino'] = "None" + #---------------se unidade for orgao------------------------------- + if unidade.cod_comissao == None: + for orgao in context.zsql.orgao_obter_zsql(cod_orgao=unidade.cod_orgao): + if tramitacao.cod_unid_tram_dest != None: + for unidade_dest in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao=tramitacao.cod_unid_tram_dest): + # se unidade destino for comissao + if unidade_dest.cod_orgao == None: + for comissao_dest in context.zsql.comissao_obter_zsql(cod_comissao=unidade_dest.cod_comissao): + dic_tramitacoes[ + 'unidade'] = orgao.nom_orgao + dic_tramitacoes[ + 'destino'] = comissao_dest.nom_comissao + # se unidade destino for orgao + if unidade_dest.cod_comissao == None: + for orgao_dest in context.zsql.orgao_obter_zsql(cod_orgao=unidade_dest.cod_orgao): + dic_tramitacoes[ + 'unidade'] = orgao.nom_orgao + dic_tramitacoes[ + 'destino'] = orgao_dest.nom_orgao + else: + dic_tramitacoes['unidade'] = orgao.nom_orgao + dic_tramitacoes['destino'] = "None" - - for unidade in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao = tramitacao.cod_unid_tram_local): - #-----------------se unidade for comissao--------------------------------- - if unidade.cod_orgao==None: - for comissao in context.zsql.comissao_obter_zsql(cod_comissao = unidade.cod_comissao): - if tramitacao.cod_unid_tram_dest!=None: - for unidade_dest in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao = tramitacao.cod_unid_tram_dest): - #se unidade destino for comissao - if unidade_dest.cod_orgao==None: - for comissao_dest in context.zsql.comissao_obter_zsql(cod_comissao = unidade_dest.cod_comissao): - dic_tramitacoes['unidade']= comissao.nom_comissao - dic_tramitacoes['destino']= comissao_dest.nom_comissao - #se unidade destino for orgao - if unidade_dest.cod_comissao==None: - for orgao_dest in context.zsql.orgao_obter_zsql(cod_orgao = unidade_dest.cod_orgao): - dic_tramitacoes['unidade']= comissao.nom_comissao - dic_tramitacoes['destino']= orgao_dest.nom_orgao - else: - dic_tramitacoes['unidade']= comissao.nom_comissao - dic_tramitacoes['destino']= "None" - #---------------se unidade for orgao----------------------------------------- - if unidade.cod_comissao==None: - for orgao in context.zsql.orgao_obter_zsql(cod_orgao = unidade.cod_orgao): - if tramitacao.cod_unid_tram_dest!=None: - for unidade_dest in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao = tramitacao.cod_unid_tram_dest): - #se unidade destino for comissao - if unidade_dest.cod_orgao==None: - for comissao_dest in context.zsql.comissao_obter_zsql(cod_comissao = unidade_dest.cod_comissao): - dic_tramitacoes['unidade']= orgao.nom_orgao - dic_tramitacoes['destino']= comissao_dest.nom_comissao - #se unidade destino for orgao - if unidade_dest.cod_comissao==None: - for orgao_dest in context.zsql.orgao_obter_zsql(cod_orgao = unidade_dest.cod_orgao): - dic_tramitacoes['unidade']= orgao.nom_orgao - dic_tramitacoes['destino']= orgao_dest.nom_orgao - else: - dic_tramitacoes['unidade']= orgao.nom_orgao - dic_tramitacoes['destino']= "None" - # #o bloco abaixo gera o dicionario de relatorias(ln 106) - - lst_relatorias = [] - dic_comissao = {} - for relatoria in context.zsql.relatoria_obter_zsql(cod_materia = materia.cod_materia): - for comissao in context.zsql.comissao_obter_zsql(cod_comissao = relatoria.cod_comissao): - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar = relatoria.cod_parlamentar): - dic_comissao['nom_comissao']= comissao.nom_comissao - dic_comissao['data_desig']= relatoria.dat_desig_relator - dic_comissao['parlamentar']= parlamentar.nom_completo - dic_comissao['data_dest']= relatoria.dat_destit_relator - if relatoria.tip_fim_relatoria==None or relatoria.tip_fim_relatoria=='0': - num = 0 - dic_comissao['motivo']="" - else: - num=relatoria.tip_fim_relatoria - for tipo_fim in context.zsql.tipo_fim_relatoria_obter_zsql(tip_fim_relatoria = num): - dic_comissao['motivo']= tipo_fim.des_fim_relatoria - lst_relatorias.append(dic_comissao) - + + lst_relatorias = [] + dic_comissao = {} + for relatoria in context.zsql.relatoria_obter_zsql(cod_materia=materia.cod_materia): + for comissao in context.zsql.comissao_obter_zsql(cod_comissao=relatoria.cod_comissao): + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=relatoria.cod_parlamentar): + dic_comissao['nom_comissao'] = comissao.nom_comissao + dic_comissao['data_desig'] = relatoria.dat_desig_relator + dic_comissao['parlamentar'] = parlamentar.nom_completo + dic_comissao['data_dest'] = relatoria.dat_destit_relator + if relatoria.tip_fim_relatoria == None or relatoria.tip_fim_relatoria == '0': + num = 0 + dic_comissao['motivo'] = "" + else: + num = relatoria.tip_fim_relatoria + for tipo_fim in context.zsql.tipo_fim_relatoria_obter_zsql(tip_fim_relatoria=num): + dic_comissao['motivo'] = tipo_fim.des_fim_relatoria + lst_relatorias.append(dic_comissao) + # #o bloco abaixo gera o dicionario de Numeracoes(ln 121) - - lst_numeracoes = [] - dic_dados={} - for numeracao in context.zsql.numeracao_obter_zsql(cod_materia = materia.cod_materia): - for tipo_materia in context.zsql.tipo_materia_legislativa_obter_zsql(tip_materia = numeracao.tip_materia): - dic_dados['nome']= tipo_materia.sgl_tipo_materia+ "-"+ tipo_materia.des_tipo_materia+ "nº"+ numeracao.num_materia - dic_dados['ano']= numeracao.ano_materia - lst_numeracoes.append(dic_dados) - - + + lst_numeracoes = [] + dic_dados = {} + for numeracao in context.zsql.numeracao_obter_zsql(cod_materia=materia.cod_materia): + for tipo_materia in context.zsql.tipo_materia_legislativa_obter_zsql(tip_materia=numeracao.tip_materia): + dic_dados['nome'] = tipo_materia.sgl_tipo_materia + "-" + \ + tipo_materia.des_tipo_materia + "nº" + numeracao.num_materia + dic_dados['ano'] = numeracao.ano_materia + lst_numeracoes.append(dic_dados) + + # #o bloco abaixo gera o dicionário de legislacoes citadas(132) - - lst_legis_citadas = [] - dic_dados = {} - for legislacao in context.zsql.legislacao_citada_obter_zsql(cod_materia = materia.cod_materia): - norma = context.zsql.norma_juridica_obter_zsql(cod_norma = legislacao.cod_norma_sel) - dic_dados['nome_lei']= str(norma[0].tip_norma_sel) + " nº"+ str(norma[0].num_norma) + " de"+ str(norma[0].ano_norma) - dic_dados['disposicao']= legislacao.des_disposicoes - dic_dados['parte']= legislacao.des_parte - dic_dados['livro']= legislacao.des_livro - dic_dados['titulo']= legislacao.des_titulo - dic_dados['capitulo']= legislacao.des_capitulo - dic_dados['secao']= legislacao.des_secao - dic_dados['subsecao']= legislacao.des_subsecao - dic_dados['artigo']= legislacao.des_artigo - dic_dados['paragrafo']= legislacao.des_paragrafo - dic_dados['inciso']= legislacao.des_inciso - dic_dados['alinea']= legislacao.des_alinea - dic_dados['item']= legislacao.des_item - lst_legis_citadas.append(dic_dados) + + lst_legis_citadas = [] + dic_dados = {} + for legislacao in context.zsql.legislacao_citada_obter_zsql(cod_materia=materia.cod_materia): + norma = context.zsql.norma_juridica_obter_zsql( + cod_norma=legislacao.cod_norma_sel) + dic_dados['nome_lei'] = str(norma[0].tip_norma_sel) + " nº" + \ + str(norma[0].num_norma) + " de" + str(norma[0].ano_norma) + dic_dados['disposicao'] = legislacao.des_disposicoes + dic_dados['parte'] = legislacao.des_parte + dic_dados['livro'] = legislacao.des_livro + dic_dados['titulo'] = legislacao.des_titulo + dic_dados['capitulo'] = legislacao.des_capitulo + dic_dados['secao'] = legislacao.des_secao + dic_dados['subsecao'] = legislacao.des_subsecao + dic_dados['artigo'] = legislacao.des_artigo + dic_dados['paragrafo'] = legislacao.des_paragrafo + dic_dados['inciso'] = legislacao.des_inciso + dic_dados['alinea'] = legislacao.des_alinea + dic_dados['item'] = legislacao.des_item + lst_legis_citadas.append(dic_dados) # #o bloco abaixo gera o dicionario de Documentos Acessórios(153) - - lst_acessorios = [] - for documento in context.zsql.documento_acessorio_obter_zsql(cod_materia = materia.cod_materia): - dic_dados = {} - dic_dados['tipo']= documento.tip_documento - dic_dados['nome']= documento.nom_documento - dic_dados['data']= documento.dat_documento - dic_dados['autor']= documento.nom_autor_documento - dic_dados['ementa']= documento.txt_ementa - dic_dados['indexacao']= documento.txt_indexacao - lst_acessorios.append(dic_dados) -caminho=context.pdf_detalhe_materia_gerar(imagem, rodape,inf_basicas_dic,orig_externa_dic,lst_mat_anexadas,lst_autoria, - lst_des_iniciais,dic_tramitacoes,lst_relatorias,lst_numeracoes, - lst_legis_citadas,lst_acessorios,sessao=session.id) -if caminho=='aviso': - return response.redirect('mensagem_emitir_proc') + lst_acessorios = [] + for documento in context.zsql.documento_acessorio_obter_zsql(cod_materia=materia.cod_materia): + dic_dados = {} + dic_dados['tipo'] = documento.tip_documento + dic_dados['nome'] = documento.nom_documento + dic_dados['data'] = documento.dat_documento + dic_dados['autor'] = documento.nom_autor_documento + dic_dados['ementa'] = documento.txt_ementa + dic_dados['indexacao'] = documento.txt_indexacao + lst_acessorios.append(dic_dados) + +caminho = context.pdf_detalhe_materia_gerar(imagem, rodape, inf_basicas_dic, orig_externa_dic, lst_mat_anexadas, lst_autoria, + lst_des_iniciais, dic_tramitacoes, lst_relatorias, lst_numeracoes, + lst_legis_citadas, lst_acessorios, sessao=session.id) +if caminho == 'aviso': + return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_documento_administrativo_preparar_pysc.py b/sapl/relatorios/templates/pdf_documento_administrativo_preparar_pysc.py index d94a9ef21..cbaf7d0e3 100755 --- a/sapl/relatorios/templates/pdf_documento_administrativo_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_documento_administrativo_preparar_pysc.py @@ -1,124 +1,135 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION -data=DateTime().strftime('%d/%m/%Y') +data = DateTime().strftime('%d/%m/%Y') -#Abaixo é gerada a string para o rodapé da página -casa={} -aux=context.sapl_documentos.props_sapl.propertyItems() +# Abaixo é gerada a string para o rodapé da página +casa = {} +aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] -localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) -if len(casa["num_cep"])==8: - cep=casa["num_cep"][:4]+"-"+casa["num_cep"][5:] + casa[item[0]] = item[1] +localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) +if len(casa["num_cep"]) == 8: + cep = casa["num_cep"][:4] + "-" + casa["num_cep"][5:] else: - cep="" - -linha1=casa["end_casa"] -if cep!="": - if casa["end_casa"]!="" and casa["end_casa"]!=None: - linha1 = linha1 + " - " - linha1 = linha1 + "CEP "+cep -if localidade[0].nom_localidade!="" and localidade[0].nom_localidade!=None: - linha1 = linha1 + " - "+localidade[0].nom_localidade+" "+localidade[0].sgl_uf -if casa["num_tel"]!="" and casa["num_tel"]!=None: - linha1 = linha1 + " Tel.: "+ casa["num_tel"] - -linha2=casa["end_web_casa"] -if casa["end_email_casa"]!="" and casa["end_email_casa"]!=None: - if casa["end_web_casa"]!="" and casa["end_web_casa"]!=None: - linha2 = linha2 + " - " - linha2 = linha2 + "E-mail: "+casa["end_email_casa"] - -data_emissao=DateTime().strftime("%d/%m/%Y") -rodape=[linha1,linha2,data_emissao] - -#Por fim, gera-se as entradas para o cabeçalho -estados=context.zsql.localidade_obter_zsql(tip_localidade="u") + cep = "" + +linha1 = casa["end_casa"] +if cep != "": + if casa["end_casa"] != "" and casa["end_casa"] != None: + linha1 = linha1 + " - " + linha1 = linha1 + "CEP " + cep +if localidade[0].nom_localidade != "" and localidade[0].nom_localidade != None: + linha1 = linha1 + " - " + \ + localidade[0].nom_localidade + " " + localidade[0].sgl_uf +if casa["num_tel"] != "" and casa["num_tel"] != None: + linha1 = linha1 + " Tel.: " + casa["num_tel"] + +linha2 = casa["end_web_casa"] +if casa["end_email_casa"] != "" and casa["end_email_casa"] != None: + if casa["end_web_casa"] != "" and casa["end_web_casa"] != None: + linha2 = linha2 + " - " + linha2 = linha2 + "E-mail: " + casa["end_email_casa"] + +data_emissao = DateTime().strftime("%d/%m/%Y") +rodape = [linha1, linha2, data_emissao] + +# Por fim, gera-se as entradas para o cabeçalho +estados = context.zsql.localidade_obter_zsql(tip_localidade="u") for uf in estados: - if localidade[0].sgl_uf==uf.sgl_uf: - nom_estado=uf.nom_localidade - break -cabecalho={} -cabecalho["nom_casa"]=casa["nom_casa"] -cabecalho["nom_estado"]="Estado de "+nom_estado + if localidade[0].sgl_uf == uf.sgl_uf: + nom_estado = uf.nom_localidade + break +cabecalho = {} +cabecalho["nom_casa"] = casa["nom_casa"] +cabecalho["nom_estado"] = "Estado de " + nom_estado # tenta buscar o logotipo da casa LOGO_CASA -if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() +if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() else: - imagem = context.imagens.absolute_url() + "/brasao_transp.gif" - -#Por fim, utiliza o PythonScript para pesquisar os documentos e gerar os dados - -documentos=[] -REQUEST=context.REQUEST -for documento in context.zsql.documento_administrativo_pesquisar_zsql(tip_documento=REQUEST['lst_tip_documento'], - num_documento=REQUEST['txt_num_documento'], ano_documento=REQUEST['txt_ano_documento'], - num_protocolo=REQUEST['txt_num_protocolo'], ind_tramitacao=REQUEST['rad_tramitando'], - des_assunto=REQUEST['txa_txt_assunto'], cod_status=REQUEST['lst_status'], - txt_interessado=REQUEST['txa_txt_interessado'], dat_apres1=REQUEST['dt_apres1'], - dat_apres2=REQUEST['dt_apres2'], rd_ordem=REQUEST['rd_ordenacao']): - dic={} - - dic['titulo']=documento.sgl_tipo_documento+" "+str(documento.num_documento)+" "+str(documento.ano_documento)+" - "+documento.des_tipo_documento - dic['txt_assunto']=documento.txt_assunto - dic['txt_interessado']=documento.txt_interessado - - des_status = '' - txt_tramitacao='' - - dic['localizacao_atual']=" " - for tramitacao in context.zsql.tramitacao_administrativo_obter_zsql(cod_documento=documento.cod_documento,ind_ult_tramitacao=1): - if tramitacao.cod_unid_tram_dest: - cod_unid_tram = tramitacao.cod_unid_tram_dest + imagem = context.imagens.absolute_url() + "/brasao_transp.gif" + +# Por fim, utiliza o PythonScript para pesquisar os documentos e gerar os dados + +documentos = [] +REQUEST = context.REQUEST +for documento in context.zsql.documento_administrativo_pesquisar_zsql(tip_documento=REQUEST['lst_tip_documento'], + num_documento=REQUEST['txt_num_documento'], ano_documento=REQUEST[ + 'txt_ano_documento'], + num_protocolo=REQUEST[ + 'txt_num_protocolo'], ind_tramitacao=REQUEST['rad_tramitando'], + des_assunto=REQUEST[ + 'txa_txt_assunto'], cod_status=REQUEST['lst_status'], + txt_interessado=REQUEST[ + 'txa_txt_interessado'], dat_apres1=REQUEST['dt_apres1'], + dat_apres2=REQUEST['dt_apres2'], rd_ordem=REQUEST['rd_ordenacao']): + dic = {} + + dic['titulo'] = documento.sgl_tipo_documento + " " + \ + str(documento.num_documento) + " " + \ + str(documento.ano_documento) + " - " + documento.des_tipo_documento + dic['txt_assunto'] = documento.txt_assunto + dic['txt_interessado'] = documento.txt_interessado + + des_status = '' + txt_tramitacao = '' + + dic['localizacao_atual'] = " " + for tramitacao in context.zsql.tramitacao_administrativo_obter_zsql(cod_documento=documento.cod_documento, ind_ult_tramitacao=1): + if tramitacao.cod_unid_tram_dest: + cod_unid_tram = tramitacao.cod_unid_tram_dest + else: + cod_unid_tram = tramitacao.cod_unid_tram_local + + for unidade_tramitacao in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao=cod_unid_tram): + if unidade_tramitacao.cod_orgao: + dic['localizacao_atual'] = unidade_tramitacao.nom_orgao else: - cod_unid_tram = tramitacao.cod_unid_tram_local - - for unidade_tramitacao in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao = cod_unid_tram): - if unidade_tramitacao.cod_orgao: - dic['localizacao_atual']=unidade_tramitacao.nom_orgao - else: - dic['localizacao_atual']=unidade_tramitacao.nom_comissao - - des_status=tramitacao.des_status - txt_tramitacao=tramitacao.txt_tramitacao + dic['localizacao_atual'] = unidade_tramitacao.nom_comissao - dic['des_situacao']=des_status - dic['ultima_acao']=txt_tramitacao + des_status = tramitacao.des_status + txt_tramitacao = tramitacao.txt_tramitacao - documentos.append(dic) + dic['des_situacao'] = des_status + dic['ultima_acao'] = txt_tramitacao -filtro={} # Dicionário que conterá os dados do filtro + documentos.append(dic) + +filtro = {} # Dicionário que conterá os dados do filtro # Atribuições diretas do REQUEST -filtro['numero']=REQUEST.txt_num_documento -filtro['ano']=REQUEST.txt_ano_documento -filtro['interessado']=REQUEST.txa_txt_interessado -filtro['assunto']=REQUEST.txa_txt_assunto +filtro['numero'] = REQUEST.txt_num_documento +filtro['ano'] = REQUEST.txt_ano_documento +filtro['interessado'] = REQUEST.txa_txt_interessado +filtro['assunto'] = REQUEST.txa_txt_assunto -filtro['tipo_documento']='' -if REQUEST.lst_tip_documento!='': +filtro['tipo_documento'] = '' +if REQUEST.lst_tip_documento != '': for tipo_documento in context.zsql.tipo_documento_administrativo_obter_zsql(ind_excluido=0, tip_documento=REQUEST.lst_tip_documento): - filtro['tipo_documento']= tipo_documento.sgl_tipo_documento + ' - ' + tipo_documento.des_tipo_documento - -filtro['tramitando']='' -if REQUEST.rad_tramitando=='1': - filtro['tramitacao']='Sim' -elif REQUEST['rad_tramitando']=='0': - filtro['tramitacao']='Não' - -filtro['situacao_atual']='' -if REQUEST.lst_status!='': - for status in context.zsql.status_tramitacao_administrativo_obter_zsql(ind_exluido=0,cod_status=REQUEST.lst_status): - filtro['situacao_atual']=status.sgl_status + ' - ' + status.des_status - -sessao=session.id -caminho = context.pdf_documento_administrativo_gerar(sessao,imagem,data,documentos,cabecalho,rodape,filtro) -if caminho=='aviso': - return response.redirect('mensagem_emitir_proc') + filtro['tipo_documento'] = tipo_documento.sgl_tipo_documento + \ + ' - ' + tipo_documento.des_tipo_documento + +filtro['tramitando'] = '' +if REQUEST.rad_tramitando == '1': + filtro['tramitacao'] = 'Sim' +elif REQUEST['rad_tramitando'] == '0': + filtro['tramitacao'] = 'Não' + +filtro['situacao_atual'] = '' +if REQUEST.lst_status != '': + for status in context.zsql.status_tramitacao_administrativo_obter_zsql(ind_exluido=0, cod_status=REQUEST.lst_status): + filtro['situacao_atual'] = status.sgl_status + \ + ' - ' + status.des_status + +sessao = session.id +caminho = context.pdf_documento_administrativo_gerar( + sessao, imagem, data, documentos, cabecalho, rodape, filtro) +if caminho == 'aviso': + return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_espelho_gerar.py b/sapl/relatorios/templates/pdf_espelho_gerar.py index 1242f8040..ba3cd373c 100644 --- a/sapl/relatorios/templates/pdf_espelho_gerar.py +++ b/sapl/relatorios/templates/pdf_espelho_gerar.py @@ -12,147 +12,147 @@ from trml2pdf import parseString def cabecalho(dic_cabecalho, imagem): - """Gera o codigo rml do cabecalho""" - tmp_data = '' - tmp_data += '\t\t\t\t\n' - tmp_data += '\t\t\t\t2cm 25cm 19cm 25cm\n' - tmp_data += '\t\t\t\t\n' - tmp_data += '\t\t\t\t' + \ - dic_cabecalho['nom_casa'] + '\n' - tmp_data += '\t\t\t\t\n' - tmp_data += '\t\t\t\t' + \ - dic_cabecalho['nom_estado'] + '\n' - tmp_data += '\t\t\t\t\n' - tmp_data += '\t\t\t\tSECRETARIA\n' - return tmp_data + """Gera o codigo rml do cabecalho""" + tmp_data = '' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t2cm 25cm 19cm 25cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + dic_cabecalho['nom_casa'] + '\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + dic_cabecalho['nom_estado'] + '\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\tSECRETARIA\n' + return tmp_data def rodape(lst_rodape): - """Gera o codigo rml do rodape""" - tmp_data = '' - tmp_data += '\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' - tmp_data += '\t\t\t\t\n' - tmp_data += '\t\t\t\t' + \ - lst_rodape[2] + '\n' - tmp_data += '\t\t\t\t' + \ - lst_rodape[0] + '\n' - tmp_data += '\t\t\t\t' + \ - lst_rodape[1] + '\n' - return tmp_data - + """Gera o codigo rml do rodape""" + tmp_data = '' + tmp_data += '\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[2] + '\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[0] + '\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[1] + '\n' + return tmp_data + def paraStyle(): - """Gera o codigo rml que define o estilo dos paragrafos""" - tmp_data = '' - tmp_data += '\t\n' - tmp_data += '\t\t\n' - tmp_data += '\t\t\t\n' - tmp_data += '\t\t\t\n' - tmp_data += '\t\t\n' - tmp_data += '\t\t\n' - tmp_data += '\t\t\t\n' - tmp_data += '\t\t\n' - tmp_data += '\t\t\n' - tmp_data += '\t\t\n' - tmp_data += '\t\n' - return tmp_data + """Gera o codigo rml que define o estilo dos paragrafos""" + tmp_data = '' + tmp_data += '\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\n' + return tmp_data def materias(lst_materias): - """Gera o codigo rml do conteudo da pesquisa de materias""" - - tmp_data = '' - - # inicio do bloco que contem os flowables - tmp_data += '\t\n' - - for dic in lst_materias: - # espaco inicial -# tmp_data+='\t\t\n' -# tmp_data+='\t\t\t \n' -# tmp_data+='\t\t\n' -# tmp_data+='\t\t\n' -# tmp_data+='\t\t\t \n' -# tmp_data+='\t\t\n' - - # condicao para a quebra de pagina - tmp_data += '\t\t\n' - - # materias + """Gera o codigo rml do conteudo da pesquisa de materias""" + + tmp_data = '' + + # inicio do bloco que contem os flowables + tmp_data += '\t\n' + + for dic in lst_materias: + # espaco inicial + # tmp_data+='\t\t\n' + # tmp_data+='\t\t\t \n' + # tmp_data+='\t\t\n' + # tmp_data+='\t\t\n' + # tmp_data+='\t\t\t \n' + # tmp_data+='\t\t\n' + + # condicao para a quebra de pagina + tmp_data += '\t\t\n' + + # materias # if dic['titulo']!=None: # tmp_data+='\t\t' + dic['titulo'] + '\n' # tmp_data+='\t\t\n' # tmp_data+='\t\t\t \n' # tmp_data+='\t\t\n' - if dic['materia'] != None: - tmp_data += '\t\t\n' - tmp_data += '\t\t\t \n' - tmp_data += '\t\t\n' - tmp_data += '\t\tINDICAÇÃO: ' + \ - dic['materia'] + '\n' - tmp_data += '\t\t\n' - tmp_data += '\t\t\t \n' - tmp_data += '\t\t\n' - - if dic['dat_apresentacao'] != None: - tmp_data += '\t\tDATA DE ENTRADA: ' + \ - dic['dat_apresentacao'] + '\n' - tmp_data += '\t\t\n' - tmp_data += '\t\t\t \n' - tmp_data += '\t\t\n' - - if dic['nom_autor'] != None: - tmp_data += '\t\tAUTOR: ' + \ - dic['nom_autor'] + '\n' - tmp_data += '\t\t\n' - tmp_data += '\t\t\t \n' - tmp_data += '\t\t\n' - - if dic['txt_ementa'] != None: - txt_ementa = dic['txt_ementa'].replace('&', '&') - tmp_data += '\t\tEMENTA: ' + \ - dic['txt_ementa'] + '\n' - tmp_data += '\t\t\n' - tmp_data += '\t\t\t \n' - tmp_data += '\t\t\n' - - tmp_data += '\t\n' - return tmp_data + if dic['materia'] != None: + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + tmp_data += '\t\tINDICAÇÃO: ' + \ + dic['materia'] + '\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + + if dic['dat_apresentacao'] != None: + tmp_data += '\t\tDATA DE ENTRADA: ' + \ + dic['dat_apresentacao'] + '\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + + if dic['nom_autor'] != None: + tmp_data += '\t\tAUTOR: ' + \ + dic['nom_autor'] + '\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + + if dic['txt_ementa'] != None: + txt_ementa = dic['txt_ementa'].replace('&', '&') + tmp_data += '\t\tEMENTA: ' + \ + dic['txt_ementa'] + '\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + + tmp_data += '\t\n' + return tmp_data def principal(imagem, lst_materias, dic_cabecalho, lst_rodape): - """Funcao pricipal que gera a estrutura global do arquivo rml""" + """Funcao pricipal que gera a estrutura global do arquivo rml""" # if sessao: # arquivoPdf=sessao+".pdf" # else: # arquivoPdf=str(int(time.time()*100))+".pdf" - arquivoPdf = str(int(time.time() * 100)) + ".pdf" - - tmp_data = '' - tmp_data += '\n' - tmp_data += '\n' - tmp_data += '\n' - tmp_data += '\t\n' - tmp_data += paraStyle() - tmp_data += materias(lst_materias) - tmp_data += '\n' - tmp_pdf = parseString(tmp_data) - - return tmp_pdf -# try: -# tmp_pdf=parseString(unicode(tmp_data, 'utf-8')) -# except: + arquivoPdf = str(int(time.time() * 100)) + ".pdf" + + tmp_data = '' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\t\n' + tmp_data += paraStyle() + tmp_data += materias(lst_materias) + tmp_data += '\n' + tmp_pdf = parseString(tmp_data) + + return tmp_pdf +# try: +# tmp_pdf=parseString(unicode(tmp_data, 'utf-8')) +# except: # tmp_pdf=parseString(unicode(tmp_data, 'utf-8')) # if hasattr(context.temp_folder,arquivoPdf): @@ -163,4 +163,5 @@ def principal(imagem, lst_materias, dic_cabecalho, lst_rodape): # return "/temp_folder/"+arquivoPdf -# return principal(sessao,imagem,data,lst_materias,dic_cabecalho,lst_rodape,dic_filtro) +# return +# principal(sessao,imagem,data,lst_materias,dic_cabecalho,lst_rodape,dic_filtro) diff --git a/sapl/relatorios/templates/pdf_espelho_preparar_pysc.py b/sapl/relatorios/templates/pdf_espelho_preparar_pysc.py index 425d8db0c..e51fcd43c 100644 --- a/sapl/relatorios/templates/pdf_espelho_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_espelho_preparar_pysc.py @@ -1,200 +1,210 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION -data=DateTime().strftime('%d/%m/%Y') +data = DateTime().strftime('%d/%m/%Y') -#Abaixo é gerada a string para o rodapé da página -casa={} -aux=context.sapl_documentos.props_sapl.propertyItems() +# Abaixo é gerada a string para o rodapé da página +casa = {} +aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] -localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) -if len(casa["num_cep"])==8: - cep=casa["num_cep"][:4]+"-"+casa["num_cep"][5:] + casa[item[0]] = item[1] +localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) +if len(casa["num_cep"]) == 8: + cep = casa["num_cep"][:4] + "-" + casa["num_cep"][5:] else: - cep="" - -linha1=casa["end_casa"] -if cep!="": - if casa["end_casa"]!="" and casa["end_casa"]!=None: - linha1 = linha1 + " - " - linha1 = linha1 + "CEP "+cep -if localidade[0].nom_localidade!="" and localidade[0].nom_localidade!=None: - linha1 = linha1 + " - "+localidade[0].nom_localidade+" "+localidade[0].sgl_uf -if casa["num_tel"]!="" and casa["num_tel"]!=None: - linha1 = linha1 + " Tel.: "+ casa["num_tel"] - -linha2=casa["end_web_casa"] -if casa["end_email_casa"]!="" and casa["end_email_casa"]!=None: - if casa["end_web_casa"]!="" and casa["end_web_casa"]!=None: - linha2 = linha2 + " - " - linha2 = linha2 + "E-mail: "+casa["end_email_casa"] - -data_emissao=DateTime().strftime("%d/%m/%Y") -rodape=[linha1,linha2,data_emissao] - -#Por fim, gera-se as entradas para o cabeçalho -estados=context.zsql.localidade_obter_zsql(tip_localidade="u") + cep = "" + +linha1 = casa["end_casa"] +if cep != "": + if casa["end_casa"] != "" and casa["end_casa"] != None: + linha1 = linha1 + " - " + linha1 = linha1 + "CEP " + cep +if localidade[0].nom_localidade != "" and localidade[0].nom_localidade != None: + linha1 = linha1 + " - " + \ + localidade[0].nom_localidade + " " + localidade[0].sgl_uf +if casa["num_tel"] != "" and casa["num_tel"] != None: + linha1 = linha1 + " Tel.: " + casa["num_tel"] + +linha2 = casa["end_web_casa"] +if casa["end_email_casa"] != "" and casa["end_email_casa"] != None: + if casa["end_web_casa"] != "" and casa["end_web_casa"] != None: + linha2 = linha2 + " - " + linha2 = linha2 + "E-mail: " + casa["end_email_casa"] + +data_emissao = DateTime().strftime("%d/%m/%Y") +rodape = [linha1, linha2, data_emissao] + +# Por fim, gera-se as entradas para o cabeçalho +estados = context.zsql.localidade_obter_zsql(tip_localidade="u") for uf in estados: - if localidade[0].sgl_uf==uf.sgl_uf: - nom_estado=uf.nom_localidade - break -cabecalho={} -cabecalho["nom_casa"]=casa["nom_casa"] -cabecalho["nom_estado"]="Estado de "+nom_estado + if localidade[0].sgl_uf == uf.sgl_uf: + nom_estado = uf.nom_localidade + break +cabecalho = {} +cabecalho["nom_casa"] = casa["nom_casa"] +cabecalho["nom_estado"] = "Estado de " + nom_estado # tenta buscar o logotipo da casa LOGO_CASA -if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() +if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() else: - imagem = context.sapl_site.sapl_skin.imagens.absolute_url() + "/brasao_transp.gif" - -#Verifica o tamanho da lista das materias selecionadas vindas do form -REQUEST=context.REQUEST -if REQUEST.txt_check=='1': - cod_mat = REQUEST['check_ind'] - materias=[] - REQUEST=context.REQUEST - for materia in context.zsql.materia_obter_zsql(cod_materia=cod_mat): - dic={} - dic['titulo']="INDICAÇÃO: "+str(materia.num_ident_basica)+" "+str(materia.ano_ident_basica) - dic['materia']=str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) - dic['dat_apresentacao']=materia.dat_apresentacao - dic['txt_ementa']=materia.txt_ementa + imagem = context.sapl_site.sapl_skin.imagens.absolute_url() + "/brasao_transp.gif" + +# Verifica o tamanho da lista das materias selecionadas vindas do form +REQUEST = context.REQUEST +if REQUEST.txt_check == '1': + cod_mat = REQUEST['check_ind'] + materias = [] + REQUEST = context.REQUEST + for materia in context.zsql.materia_obter_zsql(cod_materia=cod_mat): + dic = {} + dic['titulo'] = "INDICAÇÃO: " + \ + str(materia.num_ident_basica) + " " + str(materia.ano_ident_basica) + dic['materia'] = str(materia.num_ident_basica) + \ + "/" + str(materia.ano_ident_basica) + dic['dat_apresentacao'] = materia.dat_apresentacao + dic['txt_ementa'] = materia.txt_ementa dic['nom_autor'] = " " for autoria in context.zsql.autoria_obter_zsql(cod_materia=materia.cod_materia, ind_primeiro_autor=1): for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor): - if autor.des_tipo_autor=='Parlamentar': + if autor.des_tipo_autor == 'Parlamentar': for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): - dic['nom_autor']=parlamentar.nom_completo - elif autor.des_tipo_autor=='Comissao': + dic['nom_autor'] = parlamentar.nom_completo + elif autor.des_tipo_autor == 'Comissao': for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): - dic['nom_autor']=comissao.nom_comissao + dic['nom_autor'] = comissao.nom_comissao else: - dic['nom_autor']=autor.nom_autor + dic['nom_autor'] = autor.nom_autor des_status = '' - txt_tramitacao='' + txt_tramitacao = '' data_ultima_acao = '' - dic['localizacao_atual']=" " - for tramitacao in context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia,ind_ult_tramitacao=1): + dic['localizacao_atual'] = " " + for tramitacao in context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia, ind_ult_tramitacao=1): if tramitacao.cod_unid_tram_dest: cod_unid_tram = tramitacao.cod_unid_tram_dest else: cod_unid_tram = tramitacao.cod_unid_tram_local - for unidade_tramitacao in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao = cod_unid_tram): + for unidade_tramitacao in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao=cod_unid_tram): if unidade_tramitacao.cod_orgao: - dic['localizacao_atual']=unidade_tramitacao.nom_orgao + dic['localizacao_atual'] = unidade_tramitacao.nom_orgao elif unidade_tramitacao.cod_parlamentar: - dic['localizacao_atual']=unidade_tramitacao.nom_parlamentar + dic['localizacao_atual'] = unidade_tramitacao.nom_parlamentar else: - dic['localizacao_atual']=unidade_tramitacao.nom_comissao + dic['localizacao_atual'] = unidade_tramitacao.nom_comissao - des_status=tramitacao.des_status - txt_tramitacao=tramitacao.txt_tramitacao + des_status = tramitacao.des_status + txt_tramitacao = tramitacao.txt_tramitacao data_ultima_acao = tramitacao.dat_tramitacao - dic['des_situacao']=des_status - dic['ultima_acao']=txt_tramitacao - dic['data_ultima_acao']=data_ultima_acao + dic['des_situacao'] = des_status + dic['ultima_acao'] = txt_tramitacao + dic['data_ultima_acao'] = data_ultima_acao dic['norma_juridica_vinculada'] = "Não há nenhuma norma jurídica vinculada" for norma in context.zsql.materia_buscar_norma_juridica_zsql(cod_materia=materia.cod_materia): - dic['norma_juridica_vinculada']=norma.des_norma+" "+str(norma.num_norma)+"/"+str(norma.ano_norma) + dic['norma_juridica_vinculada'] = norma.des_norma + " " + \ + str(norma.num_norma) + "/" + str(norma.ano_norma) materias.append(dic) else: - codigo = REQUEST.check_ind - materias=[] - REQUEST=context.REQUEST - for cod_mat in codigo: - for materia in context.zsql.materia_obter_zsql(cod_materia=cod_mat): - dic={} - dic['titulo']="INDICAÇÃO: "+str(materia.num_ident_basica)+" "+str(materia.ano_ident_basica) - dic['materia']=str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) - dic['dat_apresentacao']=materia.dat_apresentacao - dic['txt_ementa']=materia.txt_ementa - - dic['nom_autor'] = " " - for autoria in context.zsql.autoria_obter_zsql(cod_materia=materia.cod_materia, ind_primeiro_autor=1): - for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor): - if autor.des_tipo_autor=='Parlamentar': - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): - dic['nom_autor']=parlamentar.nom_completo - elif autor.des_tipo_autor=='Comissao': - for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): - dic['nom_autor']=comissao.nom_comissao + codigo = REQUEST.check_ind + materias = [] + REQUEST = context.REQUEST + for cod_mat in codigo: + for materia in context.zsql.materia_obter_zsql(cod_materia=cod_mat): + dic = {} + dic['titulo'] = "INDICAÇÃO: " + \ + str(materia.num_ident_basica) + " " + \ + str(materia.ano_ident_basica) + dic['materia'] = str(materia.num_ident_basica) + \ + "/" + str(materia.ano_ident_basica) + dic['dat_apresentacao'] = materia.dat_apresentacao + dic['txt_ementa'] = materia.txt_ementa + + dic['nom_autor'] = " " + for autoria in context.zsql.autoria_obter_zsql(cod_materia=materia.cod_materia, ind_primeiro_autor=1): + for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor): + if autor.des_tipo_autor == 'Parlamentar': + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): + dic['nom_autor'] = parlamentar.nom_completo + elif autor.des_tipo_autor == 'Comissao': + for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): + dic['nom_autor'] = comissao.nom_comissao + else: + dic['nom_autor'] = autor.nom_autor + + des_status = '' + txt_tramitacao = '' + data_ultima_acao = '' + + dic['localizacao_atual'] = " " + for tramitacao in context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia, ind_ult_tramitacao=1): + if tramitacao.cod_unid_tram_dest: + cod_unid_tram = tramitacao.cod_unid_tram_dest else: - dic['nom_autor']=autor.nom_autor - - des_status = '' - txt_tramitacao='' - data_ultima_acao = '' + cod_unid_tram = tramitacao.cod_unid_tram_local - dic['localizacao_atual']=" " - for tramitacao in context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia,ind_ult_tramitacao=1): - if tramitacao.cod_unid_tram_dest: - cod_unid_tram = tramitacao.cod_unid_tram_dest - else: - cod_unid_tram = tramitacao.cod_unid_tram_local - - for unidade_tramitacao in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao = cod_unid_tram): - if unidade_tramitacao.cod_orgao: - dic['localizacao_atual']=unidade_tramitacao.nom_orgao - elif unidade_tramitacao.cod_parlamentar: - dic['localizacao_atual']=unidade_tramitacao.nom_parlamentar - else: - dic['localizacao_atual']=unidade_tramitacao.nom_comissao - - des_status=tramitacao.des_status - txt_tramitacao=tramitacao.txt_tramitacao - data_ultima_acao = tramitacao.dat_tramitacao + for unidade_tramitacao in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao=cod_unid_tram): + if unidade_tramitacao.cod_orgao: + dic['localizacao_atual'] = unidade_tramitacao.nom_orgao + elif unidade_tramitacao.cod_parlamentar: + dic['localizacao_atual'] = unidade_tramitacao.nom_parlamentar + else: + dic['localizacao_atual'] = unidade_tramitacao.nom_comissao - dic['des_situacao']=des_status - dic['ultima_acao']=txt_tramitacao - dic['data_ultima_acao']=data_ultima_acao + des_status = tramitacao.des_status + txt_tramitacao = tramitacao.txt_tramitacao + data_ultima_acao = tramitacao.dat_tramitacao - dic['norma_juridica_vinculada'] = "Não há nenhuma norma jurídica vinculada" - for norma in context.zsql.materia_buscar_norma_juridica_zsql(cod_materia=materia.cod_materia): - dic['norma_juridica_vinculada']=norma.des_norma+" "+str(norma.num_norma)+"/"+str(norma.ano_norma) + dic['des_situacao'] = des_status + dic['ultima_acao'] = txt_tramitacao + dic['data_ultima_acao'] = data_ultima_acao - materias.append(dic) + dic['norma_juridica_vinculada'] = "Não há nenhuma norma jurídica vinculada" + for norma in context.zsql.materia_buscar_norma_juridica_zsql(cod_materia=materia.cod_materia): + dic['norma_juridica_vinculada'] = norma.des_norma + " " + \ + str(norma.num_norma) + "/" + str(norma.ano_norma) + + materias.append(dic) -filtro={} # Dicionário que conterá os dados do filtro +filtro = {} # Dicionário que conterá os dados do filtro # Atribuições diretas do REQUEST -#filtro['data_apres']=REQUEST.data +# filtro['data_apres']=REQUEST.data -#filtro['tipo_materia']='' -#for tipo_materia in context.zsql.tipo_materia_legislativa_obter_zsql(ind_excluido=0, tip_materia=9): +# filtro['tipo_materia']='' +# for tipo_materia in context.zsql.tipo_materia_legislativa_obter_zsql(ind_excluido=0, tip_materia=9): # filtro['tipo_materia']= tipo_materia.sgl_tipo_materia + ' - ' + tipo_materia.des_tipo_materia -#filtro['partido']='' -#if REQUEST.lst_cod_partido!='': +# filtro['partido']='' +# if REQUEST.lst_cod_partido!='': # for partido in context.zsql.partido_obter_zsql(ind_excluido=0,cod_partido=REQUEST.lst_cod_partido): # filtro['partido']=partido.sgl_partido + ' - ' + partido.nom_partido -#filtro['tramitando']='' -#if REQUEST.rad_tramitando=='1': +# filtro['tramitando']='' +# if REQUEST.rad_tramitando=='1': # filtro['tramitacao']='Sim' -#elif REQUEST['rad_tramitando']=='0': +# elif REQUEST['rad_tramitando']=='0': # filtro['tramitacao']='Não' -#filtro['situacao_atual']='' -#if REQUEST.lst_status!='': +# filtro['situacao_atual']='' +# if REQUEST.lst_status!='': # for status in context.zsql.status_tramitacao_obter_zsql(ind_exluido=0,cod_status=REQUEST.lst_status): # filtro['situacao_atual']=status.sgl_status + ' - ' + status.des_status -sessao=session.id -caminho = context.pdf_espelho_gerar(sessao,imagem,data,materias,cabecalho,rodape,filtro) -if caminho=='aviso': - return response.redirect('mensagem_emitir_proc') +sessao = session.id +caminho = context.pdf_espelho_gerar( + sessao, imagem, data, materias, cabecalho, rodape, filtro) +if caminho == 'aviso': + return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_etiqueta_protocolo_preparar_pysc.py b/sapl/relatorios/templates/pdf_etiqueta_protocolo_preparar_pysc.py index 12508e9d5..ee9b97330 100755 --- a/sapl/relatorios/templates/pdf_etiqueta_protocolo_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_etiqueta_protocolo_preparar_pysc.py @@ -1,127 +1,137 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION -data=DateTime().strftime('%d/%m/%Y') +data = DateTime().strftime('%d/%m/%Y') -#Abaixo é gerada a string para o rodapé da página -casa={} -aux=context.sapl_documentos.props_sapl.propertyItems() +# Abaixo é gerada a string para o rodapé da página +casa = {} +aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] -localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) -if len(casa["num_cep"])==8: - cep=casa["num_cep"][:4]+"-"+casa["num_cep"][5:] + casa[item[0]] = item[1] +localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) +if len(casa["num_cep"]) == 8: + cep = casa["num_cep"][:4] + "-" + casa["num_cep"][5:] else: - cep="" - -linha1=casa["end_casa"] -if cep!="": - if casa["end_casa"]!="" and casa["end_casa"]!=None: - linha1 = linha1 + " - " - linha1 = linha1 + "CEP "+cep -if localidade[0].nom_localidade!="" and localidade[0].nom_localidade!=None: - linha1 = linha1 + " - "+localidade[0].nom_localidade+" "+localidade[0].sgl_uf -if casa["num_tel"]!="" and casa["num_tel"]!=None: - linha1 = linha1 + " Tel.: "+ casa["num_tel"] - -linha2=casa["end_web_casa"] -if casa["end_email_casa"]!="" and casa["end_email_casa"]!=None: - if casa["end_web_casa"]!="" and casa["end_web_casa"]!=None: - linha2 = linha2 + " - " - linha2 = linha2 + "E-mail: "+casa["end_email_casa"] - -data_emissao=DateTime().strftime("%d/%m/%Y") -rodape=[linha1,linha2,data_emissao] - -#Por fim, gera-se as entradas para o cabeçalho -estados=context.zsql.localidade_obter_zsql(tip_localidade="u") + cep = "" + +linha1 = casa["end_casa"] +if cep != "": + if casa["end_casa"] != "" and casa["end_casa"] != None: + linha1 = linha1 + " - " + linha1 = linha1 + "CEP " + cep +if localidade[0].nom_localidade != "" and localidade[0].nom_localidade != None: + linha1 = linha1 + " - " + \ + localidade[0].nom_localidade + " " + localidade[0].sgl_uf +if casa["num_tel"] != "" and casa["num_tel"] != None: + linha1 = linha1 + " Tel.: " + casa["num_tel"] + +linha2 = casa["end_web_casa"] +if casa["end_email_casa"] != "" and casa["end_email_casa"] != None: + if casa["end_web_casa"] != "" and casa["end_web_casa"] != None: + linha2 = linha2 + " - " + linha2 = linha2 + "E-mail: " + casa["end_email_casa"] + +data_emissao = DateTime().strftime("%d/%m/%Y") +rodape = [linha1, linha2, data_emissao] + +# Por fim, gera-se as entradas para o cabeçalho +estados = context.zsql.localidade_obter_zsql(tip_localidade="u") for uf in estados: - if localidade[0].sgl_uf==uf.sgl_uf: - nom_estado=uf.nom_localidade - break -cabecalho={} -cabecalho["nom_casa"]=casa["nom_casa"] -cabecalho["nom_estado"]="Estado de "+nom_estado + if localidade[0].sgl_uf == uf.sgl_uf: + nom_estado = uf.nom_localidade + break +cabecalho = {} +cabecalho["nom_casa"] = casa["nom_casa"] +cabecalho["nom_estado"] = "Estado de " + nom_estado # tenta buscar o logotipo da casa LOGO_CASA -if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() +if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() else: - imagem = context.imagens.absolute_url() + "/brasao_transp.gif" + imagem = context.imagens.absolute_url() + "/brasao_transp.gif" -#Por fim, utiliza o PythonScript para pesquisar os protocolos e gerar os dados +# Por fim, utiliza o PythonScript para pesquisar os protocolos e gerar os dados -protocolos=[] -REQUEST=context.REQUEST -for protocolo in context.zsql.protocolo_pesquisar_zsql(tip_protocolo=REQUEST['rad_tip_protocolo'], - cod_protocolo=REQUEST['txt_num_protocolo'], ano_protocolo=REQUEST['txt_ano_protocolo'], - tip_documento=REQUEST['lst_tip_documento'], tip_processo=REQUEST['rad_tip_processo'], - tip_materia=REQUEST['lst_tip_materia'], des_assunto=REQUEST['txt_assunto'], - cod_autor=REQUEST['hdn_cod_autor'], des_interessado=REQUEST['txa_txt_interessado'], - dat_apres=REQUEST['dt_apres'], dat_apres2=REQUEST['dt_apres2']): - dic={} +protocolos = [] +REQUEST = context.REQUEST +for protocolo in context.zsql.protocolo_pesquisar_zsql(tip_protocolo=REQUEST['rad_tip_protocolo'], + cod_protocolo=REQUEST['txt_num_protocolo'], ano_protocolo=REQUEST[ + 'txt_ano_protocolo'], + tip_documento=REQUEST['lst_tip_documento'], tip_processo=REQUEST[ + 'rad_tip_processo'], + tip_materia=REQUEST[ + 'lst_tip_materia'], des_assunto=REQUEST['txt_assunto'], + cod_autor=REQUEST['hdn_cod_autor'], des_interessado=REQUEST[ + 'txa_txt_interessado'], + dat_apres=REQUEST['dt_apres'], dat_apres2=REQUEST['dt_apres2']): + dic = {} - dic['titulo']=str(protocolo.cod_protocolo) + dic['titulo'] = str(protocolo.cod_protocolo) - dic['data']='Data: '+context.pysc.iso_to_port_pysc(protocolo.dat_protocolo)+' Horário: '+protocolo.hor_protocolo[0:2]+':'+protocolo.hor_protocolo[3:5] + dic['data'] = 'Data: ' + context.pysc.iso_to_port_pysc( + protocolo.dat_protocolo) + ' Horário: ' + protocolo.hor_protocolo[0:2] + ':' + protocolo.hor_protocolo[3:5] - dic['txt_assunto']=protocolo.txt_assunto_ementa + dic['txt_assunto'] = protocolo.txt_assunto_ementa - dic['txt_interessado']=protocolo.txt_interessado + dic['txt_interessado'] = protocolo.txt_interessado - dic['nom_autor'] = " " - if protocolo.cod_autor!=None: - for autor in context.zsql.autor_obter_zsql(cod_autor=protocolo.cod_autor): - if autor.des_tipo_autor=='Parlamentar': - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): - dic['nom_autor']=parlamentar.nom_completo - elif autor.des_tipo_autor=='Comissao': - for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): - dic['nom_autor']=comissao.nom_comissao - else: - dic['nom_autor']=autor.nom_autor + dic['nom_autor'] = " " + if protocolo.cod_autor != None: + for autor in context.zsql.autor_obter_zsql(cod_autor=protocolo.cod_autor): + if autor.des_tipo_autor == 'Parlamentar': + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): + dic['nom_autor'] = parlamentar.nom_completo + elif autor.des_tipo_autor == 'Comissao': + for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): + dic['nom_autor'] = comissao.nom_comissao + else: + dic['nom_autor'] = autor.nom_autor - dic['natureza']='' - if protocolo.tip_processo==0: - dic['natureza']='Administrativo' - if protocolo.tip_processo==1: - dic['natureza']='Legislativo' - - dic['num_materia']='' - for materia in context.zsql.materia_obter_zsql(num_protocolo=protocolo.cod_protocolo,ano_ident_basica=protocolo.ano_protocolo): - dic['num_materia']=materia.sgl_tipo_materia+' '+str(materia.num_ident_basica)+'/'+str(materia.ano_ident_basica) + dic['natureza'] = '' + if protocolo.tip_processo == 0: + dic['natureza'] = 'Administrativo' + if protocolo.tip_processo == 1: + dic['natureza'] = 'Legislativo' - dic['num_documento']='' - for documento in context.zsql.documento_administrativo_obter_zsql(num_protocolo=protocolo.cod_protocolo): - dic['num_documento']=documento.sgl_tipo_documento+' '+str(documento.num_documento)+'/'+ str(documento.ano_documento) + dic['num_materia'] = '' + for materia in context.zsql.materia_obter_zsql(num_protocolo=protocolo.cod_protocolo, ano_ident_basica=protocolo.ano_protocolo): + dic['num_materia'] = materia.sgl_tipo_materia + ' ' + \ + str(materia.num_ident_basica) + '/' + str(materia.ano_ident_basica) - dic['ident_processo']=dic['num_materia'] or dic['num_documento'] + dic['num_documento'] = '' + for documento in context.zsql.documento_administrativo_obter_zsql(num_protocolo=protocolo.cod_protocolo): + dic['num_documento'] = documento.sgl_tipo_documento + ' ' + \ + str(documento.num_documento) + '/' + str(documento.ano_documento) - dic['processo']=protocolo.des_tipo_materia or protocolo.des_tipo_documento + dic['ident_processo'] = dic['num_materia'] or dic['num_documento'] - dic['anulado']='' - if protocolo.ind_anulado==1: - dic['anulado']='Nulo' + dic['processo'] = protocolo.des_tipo_materia or protocolo.des_tipo_documento - protocolos.append(dic) + dic['anulado'] = '' + if protocolo.ind_anulado == 1: + dic['anulado'] = 'Nulo' -filtro={} # Dicionário que conterá os dados do filtro + protocolos.append(dic) + +filtro = {} # Dicionário que conterá os dados do filtro # Atribuições diretas do REQUEST -filtro['numero']=REQUEST.txt_num_protocolo -filtro['ano']=REQUEST.txt_ano_protocolo -filtro['tipo_protocolo']=REQUEST.rad_tip_protocolo -filtro['tipo_processo']=REQUEST.rad_tip_processo -filtro['assunto']=REQUEST.txt_assunto -filtro['autor']=REQUEST.hdn_cod_autor -filtro['interessado']=REQUEST.txa_txt_interessado - -sessao=session.id -caminho = context.pdf_etiqueta_protocolo_gerar(sessao,imagem,data,protocolos,cabecalho,rodape,filtro) -if caminho=='aviso': - return response.redirect('mensagem_emitir_proc') +filtro['numero'] = REQUEST.txt_num_protocolo +filtro['ano'] = REQUEST.txt_ano_protocolo +filtro['tipo_protocolo'] = REQUEST.rad_tip_protocolo +filtro['tipo_processo'] = REQUEST.rad_tip_processo +filtro['assunto'] = REQUEST.txt_assunto +filtro['autor'] = REQUEST.hdn_cod_autor +filtro['interessado'] = REQUEST.txa_txt_interessado + +sessao = session.id +caminho = context.pdf_etiqueta_protocolo_gerar( + sessao, imagem, data, protocolos, cabecalho, rodape, filtro) +if caminho == 'aviso': + return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_materia_gerar.py b/sapl/relatorios/templates/pdf_materia_gerar.py index 7df5d766a..125d147e6 100755 --- a/sapl/relatorios/templates/pdf_materia_gerar.py +++ b/sapl/relatorios/templates/pdf_materia_gerar.py @@ -1,4 +1,4 @@ -##parameters=sessao,imagem,data,lst_materias,dic_cabecalho,lst_rodape,dic_filtro +# parameters=sessao,imagem,data,lst_materias,dic_cabecalho,lst_rodape,dic_filtro """relatorio_materia.py External method para gerar o arquivo rml do resultado de uma pesquisa de matérias @@ -11,100 +11,113 @@ import time from trml2pdf import parseString -def cabecalho(dic_cabecalho,imagem): +def cabecalho(dic_cabecalho, imagem): """Gera o codigo rml do cabecalho""" - tmp_data='' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t2cm 25cm 19cm 25cm\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t' + dic_cabecalho['nom_casa'] + '\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t' + dic_cabecalho['nom_estado'] + '\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\tRelatório de Matérias Legislativas\n' + tmp_data = '' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t2cm 25cm 19cm 25cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + dic_cabecalho['nom_casa'] + '\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + dic_cabecalho['nom_estado'] + '\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\tRelatório de Matérias Legislativas\n' return tmp_data + def rodape(lst_rodape): """Gera o codigo rml do rodape""" - tmp_data='' - tmp_data+='\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t' + lst_rodape[2] + '\n' - tmp_data+='\t\t\t\tPágina \n' - tmp_data+='\t\t\t\t' + lst_rodape[0] + '\n' - tmp_data+='\t\t\t\t' + lst_rodape[1] + '\n' + tmp_data = '' + tmp_data += '\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[2] + '\n' + tmp_data += '\t\t\t\tPágina \n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[0] + '\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[1] + '\n' return tmp_data + def paraStyle(): """Gera o codigo rml que define o estilo dos paragrafos""" - tmp_data='' - tmp_data+='\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\n' + tmp_data = '' + tmp_data += '\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\n' return tmp_data + def materias(lst_materias): """Gera o codigo rml do conteudo da pesquisa de materias""" - tmp_data='' + tmp_data = '' - #inicio do bloco que contem os flowables - tmp_data+='\t\n' + # inicio do bloco que contem os flowables + tmp_data += '\t\n' for dic in lst_materias: - #espaco inicial - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - - #condicao para a quebra de pagina - tmp_data+='\t\t\n' - - #materias - tmp_data+='\t\t '+ dic['titulo'] +' - Autor: ' + dic['nom_autor'] + ' \n' - if dic['txt_ementa']!=None: - txt_ementa = dic['txt_ementa'].replace('&','&') - tmp_data+='\t\t '+ txt_ementa +' \n' - tmp_data+='\t\tSituação: ' + dic['des_situacao'] + '/ Norma Jurídica Vinculada: ' + dic['norma_vinculada'] + '\n' - - tmp_data+='\t\n' + # espaco inicial + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + + # condicao para a quebra de pagina + tmp_data += '\t\t\n' + + # materias + tmp_data += '\t\t ' + \ + dic['titulo'] + ' - Autor: ' + \ + dic['nom_autor'] + ' \n' + if dic['txt_ementa'] != None: + txt_ementa = dic['txt_ementa'].replace('&', '&') + tmp_data += '\t\t ' + txt_ementa + ' \n' + tmp_data += '\t\tSituação: ' + \ + dic['des_situacao'] + '/ Norma Jurídica Vinculada: ' + \ + dic['norma_vinculada'] + '\n' + + tmp_data += '\t\n' return tmp_data + def principal(imagem, lst_materias, dic_cabecalho, lst_rodape): """Funcao pricipal que gera a estrutura global do arquivo rml""" - arquivoPdf=str(int(time.time()*100))+".pdf" - - tmp_data='' - tmp_data+='\n' - tmp_data+='\n' - tmp_data+='\n' - tmp_data+='\t\n' - tmp_data+=paraStyle() - tmp_data+=materias(lst_materias) - tmp_data+='\n' - tmp_pdf=parseString(tmp_data) + arquivoPdf = str(int(time.time() * 100)) + ".pdf" + + tmp_data = '' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\t\n' + tmp_data += paraStyle() + tmp_data += materias(lst_materias) + tmp_data += '\n' + tmp_pdf = parseString(tmp_data) return tmp_pdf @@ -116,4 +129,5 @@ def principal(imagem, lst_materias, dic_cabecalho, lst_rodape): # return "/temp_folder/"+arquivoPdf -# return principal(sessao,imagem,data,lst_materias,dic_cabecalho,lst_rodape,dic_filtro) +# return +# principal(sessao,imagem,data,lst_materias,dic_cabecalho,lst_rodape,dic_filtro) diff --git a/sapl/relatorios/templates/pdf_materia_preparar_pysc.py b/sapl/relatorios/templates/pdf_materia_preparar_pysc.py index 083621565..30ddaef9b 100644 --- a/sapl/relatorios/templates/pdf_materia_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_materia_preparar_pysc.py @@ -1,155 +1,169 @@ import os -request=context.REQUEST -#print request -#return printed -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +# print request +# return printed +response = request.RESPONSE +session = request.SESSION -data=DateTime().strftime('%d/%m/%Y') +data = DateTime().strftime('%d/%m/%Y') -#Abaixo é gerada a string para o rodapé da página -casa={} -aux=context.sapl_documentos.props_sapl.propertyItems() +# Abaixo é gerada a string para o rodapé da página +casa = {} +aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] -localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) -if len(casa["num_cep"])==8: - cep=casa["num_cep"][:4]+"-"+casa["num_cep"][5:] + casa[item[0]] = item[1] +localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) +if len(casa["num_cep"]) == 8: + cep = casa["num_cep"][:4] + "-" + casa["num_cep"][5:] else: - cep="" - -linha1=casa["end_casa"] -if cep!="": - if casa["end_casa"]!="" and casa["end_casa"]!=None: - linha1 = linha1 + " - " - linha1 = linha1 + "CEP "+cep -if localidade[0].nom_localidade!="" and localidade[0].nom_localidade!=None: - linha1 = linha1 + " - "+localidade[0].nom_localidade+" "+localidade[0].sgl_uf -if casa["num_tel"]!="" and casa["num_tel"]!=None: - linha1 = linha1 + " Tel.: "+ casa["num_tel"] - -linha2=casa["end_web_casa"] -if casa["end_email_casa"]!="" and casa["end_email_casa"]!=None: - if casa["end_web_casa"]!="" and casa["end_web_casa"]!=None: - linha2 = linha2 + " - " - linha2 = linha2 + "E-mail: "+casa["end_email_casa"] - -data_emissao=DateTime().strftime("%d/%m/%Y") -rodape=[linha1,linha2,data_emissao] - -#Por fim, gera-se as entradas para o cabeçalho -estados=context.zsql.localidade_obter_zsql(tip_localidade="u") + cep = "" + +linha1 = casa["end_casa"] +if cep != "": + if casa["end_casa"] != "" and casa["end_casa"] != None: + linha1 = linha1 + " - " + linha1 = linha1 + "CEP " + cep +if localidade[0].nom_localidade != "" and localidade[0].nom_localidade != None: + linha1 = linha1 + " - " + \ + localidade[0].nom_localidade + " " + localidade[0].sgl_uf +if casa["num_tel"] != "" and casa["num_tel"] != None: + linha1 = linha1 + " Tel.: " + casa["num_tel"] + +linha2 = casa["end_web_casa"] +if casa["end_email_casa"] != "" and casa["end_email_casa"] != None: + if casa["end_web_casa"] != "" and casa["end_web_casa"] != None: + linha2 = linha2 + " - " + linha2 = linha2 + "E-mail: " + casa["end_email_casa"] + +data_emissao = DateTime().strftime("%d/%m/%Y") +rodape = [linha1, linha2, data_emissao] + +# Por fim, gera-se as entradas para o cabeçalho +estados = context.zsql.localidade_obter_zsql(tip_localidade="u") for uf in estados: - if localidade[0].sgl_uf==uf.sgl_uf: - nom_estado=uf.nom_localidade - break -cabecalho={} -cabecalho["nom_casa"]=casa["nom_casa"] -cabecalho["nom_estado"]="Estado de "+nom_estado + if localidade[0].sgl_uf == uf.sgl_uf: + nom_estado = uf.nom_localidade + break +cabecalho = {} +cabecalho["nom_casa"] = casa["nom_casa"] +cabecalho["nom_estado"] = "Estado de " + nom_estado # tenta buscar o logotipo da casa LOGO_CASA -if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() +if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() else: - imagem = context.imagens.absolute_url() + "/brasao_transp.gif" + imagem = context.imagens.absolute_url() + "/brasao_transp.gif" -#Por fim, utiliza o PythonScript para pesquisar as matérias e gerar os dados +# Por fim, utiliza o PythonScript para pesquisar as matérias e gerar os dados -materias=[] -REQUEST=context.REQUEST +materias = [] +REQUEST = context.REQUEST for materia in context.zsql.materia_pesquisar_zsql(tip_id_basica=REQUEST['lst_tip_materia'], num_ident_basica=REQUEST['txt_numero'], - ano_ident_basica=REQUEST['txt_ano'], ind_tramitacao=REQUEST['rad_tramitando'], - des_assunto=REQUEST['txt_assunto'], nom_relator=REQUEST['txt_relator'], - cod_status=REQUEST['lst_status'], des_tipo_autor=REQUEST['lst_tip_autor'], - dat_apresentacao=REQUEST['dt_apres'], dat_apresentacao2=REQUEST['dt_apres2'], - dat_publicacao=REQUEST['dt_public'], dat_publicacao2=REQUEST['dt_public2'], - cod_partido=REQUEST['lst_cod_partido'],cod_autor=REQUEST['hdn_cod_autor'], - rd_ordem=REQUEST['rd_ordenacao'],rd_ordem_td=REQUEST['rd_ordem_td']): - - dic={} - - dic['titulo']=materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) - dic['txt_ementa']=materia.txt_ementa - dic['nom_autor'] = " " - for autoria in context.zsql.autoria_obter_zsql(cod_materia=materia.cod_materia): - for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor): - if autor.des_tipo_autor=='Parlamentar': - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): - dic['nom_autor']=parlamentar.nom_completo - elif autor.des_tipo_autor=='Comissao': - for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): - dic['nom_autor']=comissao.nom_comissao - else: - dic['nom_autor']=autor.nom_autor - - des_status = '' - txt_tramitacao='' - - dic['localizacao_atual']=" " - for tramitacao in context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia,ind_ult_tramitacao=1): - if tramitacao.cod_unid_tram_dest: - cod_unid_tram = tramitacao.cod_unid_tram_dest + ano_ident_basica=REQUEST[ + 'txt_ano'], ind_tramitacao=REQUEST['rad_tramitando'], + des_assunto=REQUEST[ + 'txt_assunto'], nom_relator=REQUEST['txt_relator'], + cod_status=REQUEST['lst_status'], des_tipo_autor=REQUEST[ + 'lst_tip_autor'], + dat_apresentacao=REQUEST[ + 'dt_apres'], dat_apresentacao2=REQUEST['dt_apres2'], + dat_publicacao=REQUEST[ + 'dt_public'], dat_publicacao2=REQUEST['dt_public2'], + cod_partido=REQUEST['lst_cod_partido'], cod_autor=REQUEST[ + 'hdn_cod_autor'], + rd_ordem=REQUEST['rd_ordenacao'], rd_ordem_td=REQUEST['rd_ordem_td']): + + dic = {} + + dic['titulo'] = materia.sgl_tipo_materia + " " + materia.des_tipo_materia + \ + " " + str(materia.num_ident_basica) + "/" + \ + str(materia.ano_ident_basica) + dic['txt_ementa'] = materia.txt_ementa + dic['nom_autor'] = " " + for autoria in context.zsql.autoria_obter_zsql(cod_materia=materia.cod_materia): + for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor): + if autor.des_tipo_autor == 'Parlamentar': + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): + dic['nom_autor'] = parlamentar.nom_completo + elif autor.des_tipo_autor == 'Comissao': + for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): + dic['nom_autor'] = comissao.nom_comissao else: - cod_unid_tram = tramitacao.cod_unid_tram_local - - for unidade_tramitacao in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao = cod_unid_tram): - if unidade_tramitacao.cod_orgao: - dic['localizacao_atual']=unidade_tramitacao.nom_orgao - else: - dic['localizacao_atual']=unidade_tramitacao.nom_comissao - - des_status=tramitacao.des_status - txt_tramitacao=tramitacao.txt_tramitacao + dic['nom_autor'] = autor.nom_autor - dic['des_situacao']=des_status - dic['ultima_acao']=txt_tramitacao + des_status = '' + txt_tramitacao = '' + dic['localizacao_atual'] = " " + for tramitacao in context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia, ind_ult_tramitacao=1): + if tramitacao.cod_unid_tram_dest: + cod_unid_tram = tramitacao.cod_unid_tram_dest + else: + cod_unid_tram = tramitacao.cod_unid_tram_local - dic['norma_vinculada']=" " - for norma_vinculada in context.zsql.materia_buscar_norma_juridica_zsql(cod_materia=materia.cod_materia): - dic['norma_vinculada']=norma_vinculada.des_norma+" "+str(norma_vinculada.num_norma)+"/"+str(norma_vinculada.ano_norma) + for unidade_tramitacao in context.zsql.unidade_tramitacao_obter_zsql(cod_unid_tramitacao=cod_unid_tram): + if unidade_tramitacao.cod_orgao: + dic['localizacao_atual'] = unidade_tramitacao.nom_orgao + else: + dic['localizacao_atual'] = unidade_tramitacao.nom_comissao + + des_status = tramitacao.des_status + txt_tramitacao = tramitacao.txt_tramitacao + + dic['des_situacao'] = des_status + dic['ultima_acao'] = txt_tramitacao + + dic['norma_vinculada'] = " " + for norma_vinculada in context.zsql.materia_buscar_norma_juridica_zsql(cod_materia=materia.cod_materia): + dic['norma_vinculada'] = norma_vinculada.des_norma + " " + \ + str(norma_vinculada.num_norma) + "/" + \ + str(norma_vinculada.ano_norma) - materias.append(dic) + materias.append(dic) -filtro={} # Dicionário que conterá os dados do filtro +filtro = {} # Dicionário que conterá os dados do filtro # Atribuições diretas do REQUEST -filtro['numero']=REQUEST.txt_numero -filtro['ano']=REQUEST.txt_ano -filtro['autor']=REQUEST.hdn_txt_autor -filtro['tipo_autor']=REQUEST.lst_tip_autor -filtro['relator']=REQUEST.txt_relator -filtro['assunto']=REQUEST.txt_assunto +filtro['numero'] = REQUEST.txt_numero +filtro['ano'] = REQUEST.txt_ano +filtro['autor'] = REQUEST.hdn_txt_autor +filtro['tipo_autor'] = REQUEST.lst_tip_autor +filtro['relator'] = REQUEST.txt_relator +filtro['assunto'] = REQUEST.txt_assunto # Atribuição do restante dos dados que precisam de processamento -if REQUEST.hdn_txt_autor==' ': # Corrige bug do Netscape - filtro['autor']='' +if REQUEST.hdn_txt_autor == ' ': # Corrige bug do Netscape + filtro['autor'] = '' -filtro['tipo_materia']='' -if REQUEST.lst_tip_materia!='': +filtro['tipo_materia'] = '' +if REQUEST.lst_tip_materia != '': for tipo_materia in context.zsql.tipo_materia_legislativa_obter_zsql(ind_excluido=0, tip_materia=REQUEST.lst_tip_materia): - filtro['tipo_materia']= tipo_materia.sgl_tipo_materia + ' - ' + tipo_materia.des_tipo_materia - -filtro['partido']='' -if REQUEST.lst_cod_partido!='': - for partido in context.zsql.partido_obter_zsql(ind_excluido=0,cod_partido=REQUEST.lst_cod_partido): - filtro['partido']=partido.sgl_partido + ' - ' + partido.nom_partido - -filtro['tramitando']='' -if REQUEST.rad_tramitando=='1': - filtro['tramitacao']='Sim' -elif REQUEST['rad_tramitando']=='0': - filtro['tramitacao']='Não' - -filtro['situacao_atual']='' -if REQUEST.lst_status!='': - for status in context.zsql.status_tramitacao_obter_zsql(ind_excluido=0,cod_status=REQUEST.lst_status): - filtro['situacao_atual']=status.sgl_status + ' - ' + status.des_status - -sessao=session.id -caminho = context.pdf_materia_gerar(sessao,imagem,data,materias,cabecalho,rodape,filtro) -if caminho=='aviso': - return response.redirect('mensagem_emitir_proc') + filtro['tipo_materia'] = tipo_materia.sgl_tipo_materia + \ + ' - ' + tipo_materia.des_tipo_materia + +filtro['partido'] = '' +if REQUEST.lst_cod_partido != '': + for partido in context.zsql.partido_obter_zsql(ind_excluido=0, cod_partido=REQUEST.lst_cod_partido): + filtro['partido'] = partido.sgl_partido + ' - ' + partido.nom_partido + +filtro['tramitando'] = '' +if REQUEST.rad_tramitando == '1': + filtro['tramitacao'] = 'Sim' +elif REQUEST['rad_tramitando'] == '0': + filtro['tramitacao'] = 'Não' + +filtro['situacao_atual'] = '' +if REQUEST.lst_status != '': + for status in context.zsql.status_tramitacao_obter_zsql(ind_excluido=0, cod_status=REQUEST.lst_status): + filtro['situacao_atual'] = status.sgl_status + \ + ' - ' + status.des_status + +sessao = session.id +caminho = context.pdf_materia_gerar( + sessao, imagem, data, materias, cabecalho, rodape, filtro) +if caminho == 'aviso': + return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_norma_gerar.py b/sapl/relatorios/templates/pdf_norma_gerar.py index 47136b848..036169190 100755 --- a/sapl/relatorios/templates/pdf_norma_gerar.py +++ b/sapl/relatorios/templates/pdf_norma_gerar.py @@ -1,4 +1,4 @@ -##parameters=sessao,imagem,data,lst_normas,dic_cabecalho,lst_rodape,dic_filtro +# parameters=sessao,imagem,data,lst_normas,dic_cabecalho,lst_rodape,dic_filtro """relatorio_norma.py External method para gerar o arquivo rml do resultado de uma pesquisa de normas @@ -11,108 +11,117 @@ import time from trml2pdf import parseString -def cabecalho(inf_basicas_dic,imagem): +def cabecalho(inf_basicas_dic, imagem): """Gera o codigo rml do cabecalho""" - tmp_data='' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t2cm 25.4cm 19cm 25.4cm\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t' + dic_cabecalho['nom_casa'] + '\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\tSistema de Apoio ao Processo Legislativo\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\tRelatório de Normas Jurídicas\n' + tmp_data = '' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t2cm 25.4cm 19cm 25.4cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + dic_cabecalho['nom_casa'] + '\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\tSistema de Apoio ao Processo Legislativo\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\tRelatório de Normas Jurídicas\n' return tmp_data + def rodape(lst_rodape): """Gera o codigo rml do rodape""" - tmp_data='' - tmp_data+='\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t' + lst_rodape[2] + '\n' - tmp_data+='\t\t\t\tPágina \n' - tmp_data+='\t\t\t\t' + lst_rodape[0] + '\n' - tmp_data+='\t\t\t\t' + lst_rodape[1] + '\n' + tmp_data = '' + tmp_data += '\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[2] + '\n' + tmp_data += '\t\t\t\tPágina \n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[0] + '\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[1] + '\n' return tmp_data + def paraStyle(): """Gera o codigo rml que define o estilo dos paragrafos""" - tmp_data='' - tmp_data+='\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\n' + tmp_data = '' + tmp_data += '\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\n' return tmp_data + def normas(lst_normas): """Gera o codigo rml do conteudo da pesquisa de normas""" - tmp_data='' + tmp_data = '' - #inicio do bloco que contem os flowables - tmp_data+='\t\n' + # inicio do bloco que contem os flowables + tmp_data += '\t\n' for dic in lst_normas: - #espaco inicial - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - - #condicao para a quebra de pagina - tmp_data+='\t\t\n' - - #normas - if dic['titulo']!=None: - tmp_data+='\t\t' + dic['titulo'] + '\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - if dic['txt_ementa']!=None: - txt_ementa = dic['txt_ementa'].replace('&','&') - tmp_data+='\t\t' + txt_ementa + '\n' - if dic['materia_vinculada']!=None: - tmp_data+='\t\tMatéria Legislativa: ' + dic['materia_vinculada'] + '\n' - - tmp_data+='\t\n' + # espaco inicial + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + + # condicao para a quebra de pagina + tmp_data += '\t\t\n' + + # normas + if dic['titulo'] != None: + tmp_data += '\t\t' + dic['titulo'] + '\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + if dic['txt_ementa'] != None: + txt_ementa = dic['txt_ementa'].replace('&', '&') + tmp_data += '\t\t' + txt_ementa + '\n' + if dic['materia_vinculada'] != None: + tmp_data += '\t\tMatéria Legislativa: ' + \ + dic['materia_vinculada'] + '\n' + + tmp_data += '\t\n' return tmp_data + def principal(imagem, lst_normas, dic_cabecalho, lst_rodape): """Funcao pricipal que gera a estrutura global do arquivo rml""" - arquivoPdf=str(int(time.time()*100))+".pdf" - - tmp_data='' - tmp_data+='\n' - tmp_data+='\n' - tmp_data+='\n' - tmp_data+='\t\n' - tmp_data+=paraStyle() - tmp_data+=normas(lst_normas) - tmp_data+='\n' - tmp_pdf=parseString(tmp_data) + arquivoPdf = str(int(time.time() * 100)) + ".pdf" + + tmp_data = '' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\t\n' + tmp_data += paraStyle() + tmp_data += normas(lst_normas) + tmp_data += '\n' + tmp_pdf = parseString(tmp_data) return tmp_pdf @@ -124,4 +133,5 @@ def principal(imagem, lst_normas, dic_cabecalho, lst_rodape): # return "/temp_folder/"+arquivoPdf -# return principal(sessao,imagem,data,lst_normas,dic_cabecalho,lst_rodape,dic_filtro) +# return +# principal(sessao,imagem,data,lst_normas,dic_cabecalho,lst_rodape,dic_filtro) diff --git a/sapl/relatorios/templates/pdf_norma_preparar_pysc.py b/sapl/relatorios/templates/pdf_norma_preparar_pysc.py index a75138e91..c8b5b056c 100755 --- a/sapl/relatorios/templates/pdf_norma_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_norma_preparar_pysc.py @@ -1,94 +1,105 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION -data=DateTime().strftime('%d/%m/%Y') +data = DateTime().strftime('%d/%m/%Y') -#Abaixo é gerada a string para o rodapé da página -casa={} -aux=context.sapl_documentos.props_sapl.propertyItems() +# Abaixo é gerada a string para o rodapé da página +casa = {} +aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] -localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) -if len(casa["num_cep"])==8: - cep=casa["num_cep"][:4]+"-"+casa["num_cep"][5:] + casa[item[0]] = item[1] +localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) +if len(casa["num_cep"]) == 8: + cep = casa["num_cep"][:4] + "-" + casa["num_cep"][5:] else: - cep="" - -linha1=casa["end_casa"] -if cep!="": - if casa["end_casa"]!="" and casa["end_casa"]!=None: - linha1 = linha1 + " - " - linha1 = linha1 + "CEP "+cep -if localidade[0].nom_localidade!="" and localidade[0].nom_localidade!=None: - linha1 = linha1 + " - "+localidade[0].nom_localidade+" "+localidade[0].sgl_uf -if casa["num_tel"]!="" and casa["num_tel"]!=None: - linha1 = linha1 + " Tel.: "+ casa["num_tel"] - -linha2=casa["end_web_casa"] -if casa["end_email_casa"]!="" and casa["end_email_casa"]!=None: - if casa["end_web_casa"]!="" and casa["end_web_casa"]!=None: - linha2 = linha2 + " - " - linha2 = linha2 + "E-mail: "+casa["end_email_casa"] - -data_emissao=DateTime().strftime("%d/%m/%Y") -rodape=[linha1,linha2,data_emissao] - -#Por fim, gera-se as entradas para o cabeçalho -estados=context.zsql.localidade_obter_zsql(tip_localidade="u") + cep = "" + +linha1 = casa["end_casa"] +if cep != "": + if casa["end_casa"] != "" and casa["end_casa"] != None: + linha1 = linha1 + " - " + linha1 = linha1 + "CEP " + cep +if localidade[0].nom_localidade != "" and localidade[0].nom_localidade != None: + linha1 = linha1 + " - " + \ + localidade[0].nom_localidade + " " + localidade[0].sgl_uf +if casa["num_tel"] != "" and casa["num_tel"] != None: + linha1 = linha1 + " Tel.: " + casa["num_tel"] + +linha2 = casa["end_web_casa"] +if casa["end_email_casa"] != "" and casa["end_email_casa"] != None: + if casa["end_web_casa"] != "" and casa["end_web_casa"] != None: + linha2 = linha2 + " - " + linha2 = linha2 + "E-mail: " + casa["end_email_casa"] + +data_emissao = DateTime().strftime("%d/%m/%Y") +rodape = [linha1, linha2, data_emissao] + +# Por fim, gera-se as entradas para o cabeçalho +estados = context.zsql.localidade_obter_zsql(tip_localidade="u") for uf in estados: - if localidade[0].sgl_uf==uf.sgl_uf: - nom_estado=uf.nom_localidade - break -cabecalho={} -cabecalho["nom_casa"]=casa["nom_casa"] -cabecalho["nom_estado"]="Estado de "+nom_estado + if localidade[0].sgl_uf == uf.sgl_uf: + nom_estado = uf.nom_localidade + break +cabecalho = {} +cabecalho["nom_casa"] = casa["nom_casa"] +cabecalho["nom_estado"] = "Estado de " + nom_estado # tenta buscar o logotipo da casa LOGO_CASA -if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() +if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() else: - imagem = context.imagens.absolute_url() + "/brasao_transp.gif" + imagem = context.imagens.absolute_url() + "/brasao_transp.gif" -#Por fim, utiliza o PythonScript para pesquisar as normas e gerar os dados +# Por fim, utiliza o PythonScript para pesquisar as normas e gerar os dados -normas=[] -REQUEST=context.REQUEST +normas = [] +REQUEST = context.REQUEST for norma in context.zsql.norma_juridica_obter_zsql(tip_norma=REQUEST['lst_tip_norma'], num_norma=REQUEST['txt_numero'], - ano_norma=REQUEST['txt_ano'], des_assunto=REQUEST['txt_assunto'], - cod_assunto=REQUEST['lst_assunto_norma'], dat_norma=REQUEST['dt_norma'], - dat_norma2=REQUEST['dt_norma2'], dat_publicacao=REQUEST['dt_public'], - dat_publicacao2=REQUEST['dt_public2'],rd_ordem=REQUEST['rd_ordenacao']): + ano_norma=REQUEST['txt_ano'], des_assunto=REQUEST[ + 'txt_assunto'], + cod_assunto=REQUEST[ + 'lst_assunto_norma'], dat_norma=REQUEST['dt_norma'], + dat_norma2=REQUEST[ + 'dt_norma2'], dat_publicacao=REQUEST['dt_public'], + dat_publicacao2=REQUEST['dt_public2'], rd_ordem=REQUEST['rd_ordenacao']): - dic={} + dic = {} - dic['titulo']=norma.sgl_tipo_norma+" Nº "+str(norma.num_norma)+" de "+str(norma.dat_norma)+" - "+norma.des_tipo_norma - dic['txt_ementa']=norma.txt_ementa + dic['titulo'] = norma.sgl_tipo_norma + " Nº " + \ + str(norma.num_norma) + " de " + \ + str(norma.dat_norma) + " - " + norma.des_tipo_norma + dic['txt_ementa'] = norma.txt_ementa - dic['materia_vinculada']=" " - if norma.cod_materia!=None: - for materia_vinculada in context.zsql.materia_obter_zsql(cod_materia=str(norma.cod_materia)): - dic['materia_vinculada']=materia_vinculada.sgl_tipo_materia+" "+str(materia_vinculada.num_ident_basica)+"/"+str(materia_vinculada.ano_ident_basica) + dic['materia_vinculada'] = " " + if norma.cod_materia != None: + for materia_vinculada in context.zsql.materia_obter_zsql(cod_materia=str(norma.cod_materia)): + dic['materia_vinculada'] = materia_vinculada.sgl_tipo_materia + " " + \ + str(materia_vinculada.num_ident_basica) + "/" + \ + str(materia_vinculada.ano_ident_basica) - normas.append(dic) + normas.append(dic) -filtro={} # Dicionário que conterá os dados do filtro +filtro = {} # Dicionário que conterá os dados do filtro # Atribuições diretas do REQUEST -filtro['numero']=REQUEST.txt_numero -filtro['ano']=REQUEST.txt_ano -filtro['assunto']=REQUEST.txt_assunto +filtro['numero'] = REQUEST.txt_numero +filtro['ano'] = REQUEST.txt_ano +filtro['assunto'] = REQUEST.txt_assunto -filtro['tipo_norma']='' -if REQUEST.lst_tip_norma!='': +filtro['tipo_norma'] = '' +if REQUEST.lst_tip_norma != '': for tipo_norma in context.zsql.tipo_norma_juridica_obter_zsql(ind_excluido=0, tip_norma=REQUEST.lst_tip_norma): - filtro['tipo_norma']= tipo_norma.sgl_tipo_norma + ' - ' + tipo_norma.des_tipo_norma - -sessao=session.id -caminho = context.pdf_norma_gerar(sessao,imagem,data,normas,cabecalho,rodape,filtro) -if caminho=='aviso': - return response.redirect('mensagem_emitir_proc') + filtro['tipo_norma'] = tipo_norma.sgl_tipo_norma + \ + ' - ' + tipo_norma.des_tipo_norma + +sessao = session.id +caminho = context.pdf_norma_gerar( + sessao, imagem, data, normas, cabecalho, rodape, filtro) +if caminho == 'aviso': + return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_ordem_dia_preparar_pysc.py b/sapl/relatorios/templates/pdf_ordem_dia_preparar_pysc.py index 928b1b943..4e765239f 100644 --- a/sapl/relatorios/templates/pdf_ordem_dia_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_ordem_dia_preparar_pysc.py @@ -1,97 +1,116 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION -if context.REQUEST['cod_sessao_plen']!='': +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION +if context.REQUEST['cod_sessao_plen'] != '': cod_sessao_plen = context.REQUEST['cod_sessao_plen'] - splen = [] # lista contendo as sessões plenárias na data indicada - pauta = [] # lista contendo a pauta da ordem do dia a ser impressa + splen = [] # lista contendo as sessões plenárias na data indicada + pauta = [] # lista contendo a pauta da ordem do dia a ser impressa data = "" - for dat_sessao in context.zsql.sessao_plenaria_obter_zsql(cod_sessao_plen=cod_sessao_plen,ind_excluido=0): - data = context.pysc.data_converter_pysc(dat_sessao.dat_inicio_sessao) # converte data para formato yyyy/mm/dd - dat_ordem = context.pysc.data_converter_pysc(dat_sessao.dat_inicio_sessao) # converte data para formato yyyy/mm/dd + for dat_sessao in context.zsql.sessao_plenaria_obter_zsql(cod_sessao_plen=cod_sessao_plen, ind_excluido=0): + # converte data para formato yyyy/mm/dd + data = context.pysc.data_converter_pysc(dat_sessao.dat_inicio_sessao) + dat_ordem = context.pysc.data_converter_pysc( + dat_sessao.dat_inicio_sessao) # converte data para formato yyyy/mm/dd # seleciona dados da sessão plenária for sp in context.zsql.sessao_plenaria_obter_zsql(dat_inicio_sessao=data, ind_excluido=0): - dicsp = {} # dicionário que armazenará os dados a serem impressos de uma sessão plenária - ts = context.zsql.tipo_sessao_plenaria_obter_zsql(tip_sessao=sp.tip_sessao)[0] - dicsp["sessao"] = str(sp.num_sessao_plen)+"ª Sessao "+ts.nom_sessao+" da "+str(sp.num_sessao_leg)+"ª Sessao Legislativa da "+str(sp.num_legislatura)+"ª Legislatura" - dia = context.pysc.data_converter_por_extenso_pysc(data=sp.dat_inicio_sessao) + dicsp = {} # dicionário que armazenará os dados a serem impressos de uma sessão plenária + ts = context.zsql.tipo_sessao_plenaria_obter_zsql( + tip_sessao=sp.tip_sessao)[0] + dicsp["sessao"] = str(sp.num_sessao_plen) + "ª Sessao " + ts.nom_sessao + " da " + str( + sp.num_sessao_leg) + "ª Sessao Legislativa da " + str(sp.num_legislatura) + "ª Legislatura" + dia = context.pysc.data_converter_por_extenso_pysc( + data=sp.dat_inicio_sessao) hora = context.pysc.hora_formatar_pysc(hora=sp.hr_inicio_sessao) - dicsp["datasessao"] = "Dia "+str(dia)+" ("+str(sp.dia_sessao)+") - Inicio as "+hora - splen.append(dicsp) + dicsp["datasessao"] = "Dia " + \ + str(dia) + " (" + str(sp.dia_sessao) + ") - Inicio as " + hora + splen.append(dicsp) # seleciona as matérias que compõem a pauta na data escolhida for ordem in context.zsql.ordem_dia_obter_zsql(dat_ordem=data, ind_excluido=0): - # seleciona os detalhes de uma matéria - materia = context.zsql.materia_obter_zsql(cod_materia=ordem.cod_materia)[0] - dic = {} # dicionário que armazenará os dados a serem impressos de uma matéria + # seleciona os detalhes de uma matéria + materia = context.zsql.materia_obter_zsql( + cod_materia=ordem.cod_materia)[0] + dic = {} # dicionário que armazenará os dados a serem impressos de uma matéria dic["num_ordem"] = ordem.num_ordem - dic["id_materia"] = materia.des_tipo_materia+" - Nº "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) + dic["id_materia"] = materia.des_tipo_materia + " - Nº " + \ + str(materia.num_ident_basica) + "/" + str(materia.ano_ident_basica) # dic["id_materia"] = materia.sgl_tipo_materia+" - "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)+" - "+materia.des_tipo_materia dic["txt_ementa"] = ordem.txt_observacao # numeracao do processo 26/02/2011 - dic["des_numeracao"]="" - numeracao = context.zsql.numeracao_obter_zsql(cod_materia=ordem.cod_materia) + dic["des_numeracao"] = "" + numeracao = context.zsql.numeracao_obter_zsql( + cod_materia=ordem.cod_materia) if len(numeracao): - numeracao = numeracao[0] - dic["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia) - dic["des_turno"]="" + numeracao = numeracao[0] + dic["des_numeracao"] = str( + numeracao.num_materia) + "/" + str(numeracao.ano_materia) + dic["des_turno"] = "" dic["des_situacao"] = "" - tramitacao = context.zsql.tramitacao_obter_zsql(cod_materia=ordem.cod_materia, ind_ult_tramitacao=1) + tramitacao = context.zsql.tramitacao_obter_zsql( + cod_materia=ordem.cod_materia, ind_ult_tramitacao=1) if len(tramitacao): tramitacao = tramitacao[0] - if tramitacao.sgl_turno != "": - for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("L","Suplementar"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações")]: + if tramitacao.sgl_turno != "": + for turno in [("P", "Primeiro"), ("S", "Segundo"), ("U", "Único"), ("L", "Suplementar"), ("A", "Votação Única em Regime de Urgência"), ("B", "1ª Votação"), ("C", "2ª e 3ª Votações")]: if tramitacao.sgl_turno == turno[0]: dic["des_turno"] = turno[1] dic["des_situacao"] = tramitacao.des_status - if dic["des_situacao"]==None: - dic["des_situacao"] = " " + if dic["des_situacao"] == None: + dic["des_situacao"] = " " dic["nom_autor"] = '' - autoria = context.zsql.autoria_obter_zsql(cod_materia=ordem.cod_materia, ind_primeiro_autor=1) - if len(autoria): # se existe autor + autoria = context.zsql.autoria_obter_zsql( + cod_materia=ordem.cod_materia, ind_primeiro_autor=1) + if len(autoria): # se existe autor autoria = autoria[0] try: - autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor) - if len(autor): - autor = autor[0] + autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor) + if len(autor): + autor = autor[0] - if autor.des_tipo_autor == "Parlamentar": - parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0] - dic["nom_autor"] = parlamentar.nom_parlamentar + if autor.des_tipo_autor == "Parlamentar": + parlamentar = context.zsql.parlamentar_obter_zsql( + cod_parlamentar=autor.cod_parlamentar)[0] + dic["nom_autor"] = parlamentar.nom_parlamentar - elif autor.des_tipo_autor == "Comissao": - comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0] - dic["nom_autor"] = comissao.nom_comissao - else: - dic["nom_autor"] = autor.nom_autor + elif autor.des_tipo_autor == "Comissao": + comissao = context.zsql.comissao_obter_zsql( + cod_comissao=autor.cod_comissao)[0] + dic["nom_autor"] = comissao.nom_comissao + else: + dic["nom_autor"] = autor.nom_autor except: - pass - lst_relator = [] # lista contendo os relatores da matéria + pass + lst_relator = [] # lista contendo os relatores da matéria for relatoria in context.zsql.relatoria_obter_zsql(cod_materia=ordem.cod_materia): - parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=relatoria.cod_parlamentar)[0] - comissao = context.zsql.comissao_obter_zsql(cod_comissao=relatoria.cod_comissao)[0] - lst_relator.append(parlamentar.nom_parlamentar+" - "+comissao.nom_comissao) + parlamentar = context.zsql.parlamentar_obter_zsql( + cod_parlamentar=relatoria.cod_parlamentar)[0] + comissao = context.zsql.comissao_obter_zsql( + cod_comissao=relatoria.cod_comissao)[0] + lst_relator.append(parlamentar.nom_parlamentar + + " - " + comissao.nom_comissao) if not len(lst_relator): - lst_relator = [''] + lst_relator = [''] dic["lst_relator"] = lst_relator # adiciona o dicionário na pauta - pauta.append(dic) + pauta.append(dic) - # obtém as propriedades da casa legislativa para montar o cabeçalho e o rodapé da página - casa = {} - aux=context.sapl_documentos.props_sapl.propertyItems() + # obtém as propriedades da casa legislativa para montar o cabeçalho e o + # rodapé da página + casa = {} + aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: casa[item[0]] = item[1] # obtém a localidade - localidade = context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) - + localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) + # monta o cabeçalho da página - cabecalho = {} + cabecalho = {} estado = context.zsql.localidade_obter_zsql(tip_localidade="U") for uf in estado: if localidade[0].sgl_uf == uf.sgl_uf: @@ -99,40 +118,43 @@ if context.REQUEST['cod_sessao_plen']!='': break cabecalho["nom_casa"] = casa["nom_casa"] - cabecalho["nom_estado"] = "Estado do "+nom_estado + cabecalho["nom_estado"] = "Estado do " + nom_estado # tenta buscar o logotipo da casa LOGO_CASA - if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() + if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl[ + 'logo_casa.gif'].absolute_url() else: imagem = context.imagens.absolute_url() + "/brasao_transp.gif" - - # monta o rodapé da página + + # monta o rodapé da página num_cep = casa["num_cep"] if len(casa["num_cep"]) == 8: - num_cep=casa["num_cep"][:4]+"-"+casa["num_cep"][5:] - - linha1 = casa["end_casa"] - if num_cep!=None and num_cep!="": - if casa["end_casa"]!="" and casa["end_casa"]!=None: - linha1 = linha1 +" " - linha1 = linha1 +" CEP: "+num_cep - if localidade[0].nom_localidade!=None and localidade[0].nom_localidade!="": - linha1 = linha1 +" "+localidade[0].nom_localidade +" - "+localidade[0].sgl_uf - if casa["num_tel"]!=None and casa["num_tel"]!="": - linha1 = linha1 +" Tel.: "+casa["num_tel"] + num_cep = casa["num_cep"][:4] + "-" + casa["num_cep"][5:] + + linha1 = casa["end_casa"] + if num_cep != None and num_cep != "": + if casa["end_casa"] != "" and casa["end_casa"] != None: + linha1 = linha1 + " " + linha1 = linha1 + " CEP: " + num_cep + if localidade[0].nom_localidade != None and localidade[0].nom_localidade != "": + linha1 = linha1 + " " + \ + localidade[0].nom_localidade + " - " + localidade[0].sgl_uf + if casa["num_tel"] != None and casa["num_tel"] != "": + linha1 = linha1 + " Tel.: " + casa["num_tel"] linha2 = casa["end_web_casa"] - if casa["end_email_casa"]!=None and casa["end_email_casa"]!="": - if casa["end_web_casa"]!="" and casa["end_web_casa"]!=None: - linha2= linha2 + " - " - linha2 = linha2 +"E-mail: "+casa["end_email_casa"] + if casa["end_email_casa"] != None and casa["end_email_casa"] != "": + if casa["end_web_casa"] != "" and casa["end_web_casa"] != None: + linha2 = linha2 + " - " + linha2 = linha2 + "E-mail: " + casa["end_email_casa"] dat_emissao = DateTime().strftime("%d/%m/%Y") rodape = [linha1, linha2, dat_emissao] - - sessao=session.id - caminho = context.pdf_ordem_dia_gerar( sessao, imagem, dat_ordem, splen, pauta, cabecalho, rodape) - if caminho=='aviso': + + sessao = session.id + caminho = context.pdf_ordem_dia_gerar( + sessao, imagem, dat_ordem, splen, pauta, cabecalho, rodape) + if caminho == 'aviso': return response.redirect('mensagem_emitir_proc') else: response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_pauta_sessao_gerar.py b/sapl/relatorios/templates/pdf_pauta_sessao_gerar.py index b35aaadb3..621b8fb75 100755 --- a/sapl/relatorios/templates/pdf_pauta_sessao_gerar.py +++ b/sapl/relatorios/templates/pdf_pauta_sessao_gerar.py @@ -23,7 +23,9 @@ def cabecalho(inf_basicas_dic, imagem): tmp += '\t\t\t\t\n' tmp += '\t\t\t\tPauta da ' + str(inf_basicas_dic['num_sessao_plen']) + 'ª Reunião ' + str(inf_basicas_dic['nom_sessao']) + ' da ' + str( inf_basicas_dic['num_sessao_leg']) + 'ª Sessão Legislativa da \n' - tmp += '\t\t\t\t' + str(inf_basicas_dic['num_legislatura']) + ' Legislatura \n' + tmp += '\t\t\t\t' + \ + str(inf_basicas_dic['num_legislatura']) + \ + ' Legislatura \n' return tmp diff --git a/sapl/relatorios/templates/pdf_pauta_sessao_preparar_pysc.py b/sapl/relatorios/templates/pdf_pauta_sessao_preparar_pysc.py index 1db6443d4..d76545371 100755 --- a/sapl/relatorios/templates/pdf_pauta_sessao_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_pauta_sessao_preparar_pysc.py @@ -1,20 +1,22 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION -if context.REQUEST['data']!='': +if context.REQUEST['data'] != '': dat_inicio_sessao = context.REQUEST['data'] - pauta = [] # lista contendo a pauta da ordem do dia a ser impressa - data = context.pysc.data_converter_pysc(dat_inicio_sessao) # converte data para formato yyyy/mm/dd + pauta = [] # lista contendo a pauta da ordem do dia a ser impressa + # converte data para formato yyyy/mm/dd + data = context.pysc.data_converter_pysc(dat_inicio_sessao) codigo = context.REQUEST['cod_sessao_plen'] # seleciona as matérias que compõem a pauta na data escolhida for sessao in context.zsql.sessao_plenaria_obter_zsql(dat_inicio_sessao=data, cod_sessao_plen=codigo, ind_excluido=0): - inf_basicas_dic = {} # dicionário que armazenará as informacoes basicas da sessao plenaria + inf_basicas_dic = {} # dicionário que armazenará as informacoes basicas da sessao plenaria # seleciona o tipo da sessao plenaria - tipo_sessao = context.zsql.tipo_sessao_plenaria_obter_zsql(tip_sessao=sessao.tip_sessao,ind_excluido=0)[0] + tipo_sessao = context.zsql.tipo_sessao_plenaria_obter_zsql( + tip_sessao=sessao.tip_sessao, ind_excluido=0)[0] inf_basicas_dic["nom_sessao"] = tipo_sessao.nom_sessao inf_basicas_dic["num_sessao_plen"] = sessao.num_sessao_plen inf_basicas_dic["nom_sessao"] = tipo_sessao.nom_sessao @@ -24,139 +26,164 @@ if context.REQUEST['data']!='': inf_basicas_dic["hr_inicio_sessao"] = sessao.hr_inicio_sessao inf_basicas_dic["dat_fim_sessao"] = sessao.dat_fim_sessao inf_basicas_dic["hr_fim_sessao"] = sessao.hr_fim_sessao - + # Lista das matérias do Expediente, incluindo o status da tramitação - lst_expediente_materia=[] - for expediente_materia in context.zsql.votacao_expediente_materia_obter_zsql(dat_ordem=data,cod_sessao_plen=codigo,ind_excluido=0): - + lst_expediente_materia = [] + for expediente_materia in context.zsql.votacao_expediente_materia_obter_zsql(dat_ordem=data, cod_sessao_plen=codigo, ind_excluido=0): + # seleciona os detalhes de uma matéria - materia = context.zsql.materia_obter_zsql(cod_materia=expediente_materia.cod_materia)[0] + materia = context.zsql.materia_obter_zsql( + cod_materia=expediente_materia.cod_materia)[0] dic_expediente_materia = {} dic_expediente_materia["num_ordem"] = expediente_materia.num_ordem - dic_expediente_materia["id_materia"] = materia.sgl_tipo_materia+" - "+materia.des_tipo_materia+" No. "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) + dic_expediente_materia["id_materia"] = materia.sgl_tipo_materia + " - " + materia.des_tipo_materia + \ + " No. " + str(materia.num_ident_basica) + "/" + \ + str(materia.ano_ident_basica) dic_expediente_materia["txt_ementa"] = materia.txt_ementa - dic_expediente_materia["ordem_observacao"] = expediente_materia.ordem_observacao + dic_expediente_materia[ + "ordem_observacao"] = expediente_materia.ordem_observacao - dic_expediente_materia["des_numeracao"]="" - numeracao = context.zsql.numeracao_obter_zsql(cod_materia=expediente_materia.cod_materia) + dic_expediente_materia["des_numeracao"] = "" + numeracao = context.zsql.numeracao_obter_zsql( + cod_materia=expediente_materia.cod_materia) if len(numeracao): - numeracao = numeracao[0] - dic_expediente_materia["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia) + numeracao = numeracao[0] + dic_expediente_materia["des_numeracao"] = str( + numeracao.num_materia) + "/" + str(numeracao.ano_materia) dic_expediente_materia["nom_autor"] = '' - autoria = context.zsql.autoria_obter_zsql(cod_materia=expediente_materia.cod_materia, ind_primeiro_autor=1) - if len(autoria) > 0: # se existe autor + autoria = context.zsql.autoria_obter_zsql( + cod_materia=expediente_materia.cod_materia, ind_primeiro_autor=1) + if len(autoria) > 0: # se existe autor autoria = autoria[0] - autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor) + autor = context.zsql.autor_obter_zsql( + cod_autor=autoria.cod_autor) if len(autor) > 0: autor = autor[0] - + if autor.des_tipo_autor == "Parlamentar": - parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0] - dic_expediente_materia["nom_autor"] = parlamentar.nom_parlamentar + parlamentar = context.zsql.parlamentar_obter_zsql( + cod_parlamentar=autor.cod_parlamentar)[0] + dic_expediente_materia[ + "nom_autor"] = parlamentar.nom_parlamentar elif autor.des_tipo_autor == "Comissao": - comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0] + comissao = context.zsql.comissao_obter_zsql( + cod_comissao=autor.cod_comissao)[0] dic_expediente_materia["nom_autor"] = comissao.nom_comissao else: dic_expediente_materia["nom_autor"] = autor.nom_autor - - dic_expediente_materia["des_turno"]="" + + dic_expediente_materia["des_turno"] = "" dic_expediente_materia["des_situacao"] = "" - tramitacao = context.zsql.tramitacao_obter_zsql(cod_materia=expediente_materia.cod_materia, ind_ult_tramitacao=1) + tramitacao = context.zsql.tramitacao_obter_zsql( + cod_materia=expediente_materia.cod_materia, ind_ult_tramitacao=1) if len(tramitacao): tramitacao = tramitacao[0] - if tramitacao.sgl_turno != "": - for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("F","Final"), ("L","Suplementar"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações")]: + if tramitacao.sgl_turno != "": + for turno in [("P", "Primeiro"), ("S", "Segundo"), ("U", "Único"), ("F", "Final"), ("L", "Suplementar"), ("A", "Votação Única em Regime de Urgência"), ("B", "1ª Votação"), ("C", "2ª e 3ª Votações")]: if tramitacao.sgl_turno == turno[0]: dic_expediente_materia["des_turno"] = turno[1] dic_expediente_materia["des_situacao"] = tramitacao.des_status - if dic_expediente_materia["des_situacao"]==None: - dic_expediente_materia["des_situacao"] = " " + if dic_expediente_materia["des_situacao"] == None: + dic_expediente_materia["des_situacao"] = " " lst_expediente_materia.append(dic_expediente_materia) - # Lista das matérias da Ordem do Dia, incluindo o status da tramitação - lst_votacao=[] - for votacao in context.zsql.votacao_ordem_dia_obter_zsql(dat_ordem=data,cod_sessao_plen=codigo,ind_excluido=0): - + lst_votacao = [] + for votacao in context.zsql.votacao_ordem_dia_obter_zsql(dat_ordem=data, cod_sessao_plen=codigo, ind_excluido=0): + # seleciona os detalhes de uma matéria - materia = context.zsql.materia_obter_zsql(cod_materia=votacao.cod_materia)[0] + materia = context.zsql.materia_obter_zsql( + cod_materia=votacao.cod_materia)[0] dic_votacao = {} dic_votacao["num_ordem"] = votacao.num_ordem - dic_votacao["id_materia"] = materia.sgl_tipo_materia+" - "+materia.des_tipo_materia+" No. "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) + dic_votacao["id_materia"] = materia.sgl_tipo_materia + " - " + materia.des_tipo_materia + \ + " No. " + str(materia.num_ident_basica) + "/" + \ + str(materia.ano_ident_basica) dic_votacao["txt_ementa"] = materia.txt_ementa dic_votacao["ordem_observacao"] = votacao.ordem_observacao - dic_votacao["des_numeracao"]="" - numeracao = context.zsql.numeracao_obter_zsql(cod_materia=votacao.cod_materia) + dic_votacao["des_numeracao"] = "" + numeracao = context.zsql.numeracao_obter_zsql( + cod_materia=votacao.cod_materia) if len(numeracao): - numeracao = numeracao[0] - dic_votacao["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia) + numeracao = numeracao[0] + dic_votacao["des_numeracao"] = str( + numeracao.num_materia) + "/" + str(numeracao.ano_materia) dic_votacao["nom_autor"] = '' - autoria = context.zsql.autoria_obter_zsql(cod_materia=votacao.cod_materia, ind_primeiro_autor=1) - if len(autoria) > 0: # se existe autor + autoria = context.zsql.autoria_obter_zsql( + cod_materia=votacao.cod_materia, ind_primeiro_autor=1) + if len(autoria) > 0: # se existe autor autoria = autoria[0] - autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor) + autor = context.zsql.autor_obter_zsql( + cod_autor=autoria.cod_autor) if len(autor) > 0: autor = autor[0] - + if autor.des_tipo_autor == "Parlamentar": - parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0] + parlamentar = context.zsql.parlamentar_obter_zsql( + cod_parlamentar=autor.cod_parlamentar)[0] dic_votacao["nom_autor"] = parlamentar.nom_parlamentar elif autor.des_tipo_autor == "Comissao": - comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0] + comissao = context.zsql.comissao_obter_zsql( + cod_comissao=autor.cod_comissao)[0] dic_votacao["nom_autor"] = comissao.nom_comissao else: dic_votacao["nom_autor"] = autor.nom_autor - dic_votacao["des_turno"]="" + dic_votacao["des_turno"] = "" dic_votacao["des_situacao"] = "" - tramitacao = context.zsql.tramitacao_obter_zsql(cod_materia=votacao.cod_materia, ind_ult_tramitacao=1) + tramitacao = context.zsql.tramitacao_obter_zsql( + cod_materia=votacao.cod_materia, ind_ult_tramitacao=1) if len(tramitacao): tramitacao = tramitacao[0] - if tramitacao.sgl_turno != "": - for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("L","Suplementar"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações")]: + if tramitacao.sgl_turno != "": + for turno in [("P", "Primeiro"), ("S", "Segundo"), ("U", "Único"), ("L", "Suplementar"), ("A", "Votação Única em Regime de Urgência"), ("B", "1ª Votação"), ("C", "2ª e 3ª Votações")]: if tramitacao.sgl_turno == turno[0]: dic_votacao["des_turno"] = turno[1] dic_votacao["des_situacao"] = tramitacao.des_status - if dic_votacao["des_situacao"]==None: - dic_votacao["des_situacao"] = " " + if dic_votacao["des_situacao"] == None: + dic_votacao["des_situacao"] = " " lst_votacao.append(dic_votacao) - # obtém as propriedades da casa legislativa para montar o cabeçalho e o rodapé da página - cabecalho={} + # obtém as propriedades da casa legislativa para montar o cabeçalho e o + # rodapé da página + cabecalho = {} # tenta buscar o logotipo da casa LOGO_CASA - if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() + if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl[ + 'logo_casa.gif'].absolute_url() else: imagem = context.imagens.absolute_url() + "/brasao_transp.gif" - - #Abaixo é gerado o dic do rodapé da página (linha 7) - casa={} - aux=context.sapl_documentos.props_sapl.propertyItems() + + # Abaixo é gerado o dic do rodapé da página (linha 7) + casa = {} + aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] - localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) - data_emissao= DateTime().strftime("%d/%m/%Y") - rodape= casa - rodape['data_emissao']= data_emissao - - inf_basicas_dic['nom_camara']= casa['nom_casa'] - REQUEST=context.REQUEST - for local in context.zsql.localidade_obter_zsql(cod_localidade = casa['cod_localidade']): - rodape['nom_localidade']= " "+local.nom_localidade - rodape['sgl_uf']= local.sgl_uf + casa[item[0]] = item[1] + localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) + data_emissao = DateTime().strftime("%d/%m/%Y") + rodape = casa + rodape['data_emissao'] = data_emissao + + inf_basicas_dic['nom_camara'] = casa['nom_casa'] + REQUEST = context.REQUEST + for local in context.zsql.localidade_obter_zsql(cod_localidade=casa['cod_localidade']): + rodape['nom_localidade'] = " " + local.nom_localidade + rodape['sgl_uf'] = local.sgl_uf # return lst_votacao - sessao=session.id - caminho = context.pdf_pauta_sessao_gerar(rodape, sessao, imagem, inf_basicas_dic, lst_votacao, lst_expediente_materia) - if caminho=='aviso': + sessao = session.id + caminho = context.pdf_pauta_sessao_gerar( + rodape, sessao, imagem, inf_basicas_dic, lst_votacao, lst_expediente_materia) + if caminho == 'aviso': return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_protocolo_gerar.py b/sapl/relatorios/templates/pdf_protocolo_gerar.py index 114dc05d4..a3fc82dd1 100755 --- a/sapl/relatorios/templates/pdf_protocolo_gerar.py +++ b/sapl/relatorios/templates/pdf_protocolo_gerar.py @@ -1,4 +1,4 @@ -##parameters=sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro +# parameters=sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro """relatorio_protocolo.py External method para gerar o arquivo rml do resultado de uma pesquisa de protocolos @@ -11,118 +11,132 @@ import time from trml2pdf import parseString -def cabecalho(dic_cabecalho,imagem): +def cabecalho(dic_cabecalho, imagem): """Gera o codigo rml do cabecalho""" - tmp_data='' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t2cm 25.4cm 19cm 25.4cm\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t' + dic_cabecalho['nom_casa'] + '\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\tSistema de Apoio ao Processo Legislativo\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\tRelatório de Controle do Protocolo\n' + tmp_data = '' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t2cm 25.4cm 19cm 25.4cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + dic_cabecalho['nom_casa'] + '\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\tSistema de Apoio ao Processo Legislativo\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\tRelatório de Controle do Protocolo\n' return tmp_data + def rodape(lst_rodape): """Gera o codigo rml do rodape""" - tmp_data='' - tmp_data+='\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t' + lst_rodape[2] + '\n' - tmp_data+='\t\t\t\tPágina \n' - tmp_data+='\t\t\t\t' + lst_rodape[0] + '\n' - tmp_data+='\t\t\t\t' + lst_rodape[1] + '\n' + tmp_data = '' + tmp_data += '\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[2] + '\n' + tmp_data += '\t\t\t\tPágina \n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[0] + '\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[1] + '\n' return tmp_data + def paraStyle(): """Gera o codigo rml que define o estilo dos paragrafos""" - tmp_data='' - tmp_data+='\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\n' + tmp_data = '' + tmp_data += '\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\n' return tmp_data + def protocolos(lst_protocolos): """Gera o codigo rml do conteudo da pesquisa de protocolos""" - tmp_data='' + tmp_data = '' - #inicio do bloco que contem os flowables - tmp_data+='\t\n' + # inicio do bloco que contem os flowables + tmp_data += '\t\n' for dic in lst_protocolos: - #espaco inicial - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - - #condicao para a quebra de pagina - tmp_data+='\t\t\n' - - #protocolos - if dic['titulo']!=None: - tmp_data+='\t\tProtocolo ' + dic['titulo'] + '\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - if dic['txt_assunto']!=None: - txt_assunto = dic['txt_assunto'].replace('&','&') - tmp_data+='\t\t' + txt_assunto + '\n' - if dic['txt_interessado']!=None: - tmp_data+='\t\tInteressado: ' + dic['txt_interessado'] + '\n' - elif dic['nom_autor']!=None: - tmp_data+='\t\tAutor: ' + dic['nom_autor'] + '\n' - if dic['natureza']!=None: - tmp_data+='\t\tNatureza Processo: ' + dic['natureza'] + '\n' - if dic['processo']!=None: - tmp_data+='\t\tClassificação: ' + dic['processo'] + '\n' - if dic['data']!=None: - tmp_data+='\t\tData Protocolo: ' + dic['data'] + '\n' - if dic['anulado']!="": - tmp_data+='\t\t** PROTOCOLO ANULADO ** ' '\n' - - tmp_data+='\t\n' + # espaco inicial + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + + # condicao para a quebra de pagina + tmp_data += '\t\t\n' + + # protocolos + if dic['titulo'] != None: + tmp_data += '\t\tProtocolo ' + \ + dic['titulo'] + '\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + if dic['txt_assunto'] != None: + txt_assunto = dic['txt_assunto'].replace('&', '&') + tmp_data += '\t\t' + txt_assunto + '\n' + if dic['txt_interessado'] != None: + tmp_data += '\t\tInteressado: ' + \ + dic['txt_interessado'] + '\n' + elif dic['nom_autor'] != None: + tmp_data += '\t\tAutor: ' + \ + dic['nom_autor'] + '\n' + if dic['natureza'] != None: + tmp_data += '\t\tNatureza Processo: ' + \ + dic['natureza'] + '\n' + if dic['processo'] != None: + tmp_data += '\t\tClassificação: ' + \ + dic['processo'] + '\n' + if dic['data'] != None: + tmp_data += '\t\tData Protocolo: ' + \ + dic['data'] + '\n' + if dic['anulado'] != "": + tmp_data += '\t\t** PROTOCOLO ANULADO ** ' '\n' + + tmp_data += '\t\n' return tmp_data + def principal(imagem, lst_protocolos, dic_cabecalho, lst_rodape): """Funcao pricipal que gera a estrutura global do arquivo rml""" - arquivoPdf=str(int(time.time()*100))+".pdf" - - tmp_data='' - tmp_data+='\n' - tmp_data+='\n' - tmp_data+='\n' - tmp_data+='\t\n' - tmp_data+=paraStyle() - tmp_data+=protocolos(lst_protocolos) - tmp_data+='\n' - tmp_pdf=parseString(tmp_data) + arquivoPdf = str(int(time.time() * 100)) + ".pdf" + + tmp_data = '' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\t\n' + tmp_data += paraStyle() + tmp_data += protocolos(lst_protocolos) + tmp_data += '\n' + tmp_pdf = parseString(tmp_data) return tmp_pdf @@ -134,4 +148,5 @@ def principal(imagem, lst_protocolos, dic_cabecalho, lst_rodape): # return "/temp_folder/"+arquivoPdf -# return principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro) +# return +# principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro) diff --git a/sapl/relatorios/templates/pdf_protocolo_preparar_pysc.py b/sapl/relatorios/templates/pdf_protocolo_preparar_pysc.py index 6f53849e7..9a3a0d383 100755 --- a/sapl/relatorios/templates/pdf_protocolo_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_protocolo_preparar_pysc.py @@ -1,117 +1,126 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION -data=DateTime().strftime('%d/%m/%Y') +data = DateTime().strftime('%d/%m/%Y') -#Abaixo é gerada a string para o rodapé da página -casa={} -aux=context.sapl_documentos.props_sapl.propertyItems() +# Abaixo é gerada a string para o rodapé da página +casa = {} +aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] -localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) -if len(casa["num_cep"])==8: - cep=casa["num_cep"][:4]+"-"+casa["num_cep"][5:] + casa[item[0]] = item[1] +localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) +if len(casa["num_cep"]) == 8: + cep = casa["num_cep"][:4] + "-" + casa["num_cep"][5:] else: - cep="" - -linha1=casa["end_casa"] -if cep!="": - if casa["end_casa"]!="" and casa["end_casa"]!=None: - linha1 = linha1 + " - " - linha1 = linha1 + "CEP "+cep -if localidade[0].nom_localidade!="" and localidade[0].nom_localidade!=None: - linha1 = linha1 + " - "+localidade[0].nom_localidade+" "+localidade[0].sgl_uf -if casa["num_tel"]!="" and casa["num_tel"]!=None: - linha1 = linha1 + " Tel.: "+ casa["num_tel"] - -linha2=casa["end_web_casa"] -if casa["end_email_casa"]!="" and casa["end_email_casa"]!=None: - if casa["end_web_casa"]!="" and casa["end_web_casa"]!=None: - linha2 = linha2 + " - " - linha2 = linha2 + "E-mail: "+casa["end_email_casa"] - -data_emissao=DateTime().strftime("%d/%m/%Y") -rodape=[linha1,linha2,data_emissao] - -#Por fim, gera-se as entradas para o cabeçalho -estados=context.zsql.localidade_obter_zsql(tip_localidade="u") + cep = "" + +linha1 = casa["end_casa"] +if cep != "": + if casa["end_casa"] != "" and casa["end_casa"] != None: + linha1 = linha1 + " - " + linha1 = linha1 + "CEP " + cep +if localidade[0].nom_localidade != "" and localidade[0].nom_localidade != None: + linha1 = linha1 + " - " + \ + localidade[0].nom_localidade + " " + localidade[0].sgl_uf +if casa["num_tel"] != "" and casa["num_tel"] != None: + linha1 = linha1 + " Tel.: " + casa["num_tel"] + +linha2 = casa["end_web_casa"] +if casa["end_email_casa"] != "" and casa["end_email_casa"] != None: + if casa["end_web_casa"] != "" and casa["end_web_casa"] != None: + linha2 = linha2 + " - " + linha2 = linha2 + "E-mail: " + casa["end_email_casa"] + +data_emissao = DateTime().strftime("%d/%m/%Y") +rodape = [linha1, linha2, data_emissao] + +# Por fim, gera-se as entradas para o cabeçalho +estados = context.zsql.localidade_obter_zsql(tip_localidade="u") for uf in estados: - if localidade[0].sgl_uf==uf.sgl_uf: - nom_estado=uf.nom_localidade - break -cabecalho={} -cabecalho["nom_casa"]=casa["nom_casa"] -cabecalho["nom_estado"]="Estado de "+nom_estado + if localidade[0].sgl_uf == uf.sgl_uf: + nom_estado = uf.nom_localidade + break +cabecalho = {} +cabecalho["nom_casa"] = casa["nom_casa"] +cabecalho["nom_estado"] = "Estado de " + nom_estado # tenta buscar o logotipo da casa LOGO_CASA -if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() +if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() else: - imagem = context.imagens.absolute_url() + "/brasao_transp.gif" - -#Por fim, utiliza o PythonScript para pesquisar os protocolos e gerar os dados - -protocolos=[] -REQUEST=context.REQUEST -for protocolo in context.zsql.protocolo_pesquisar_zsql(tip_protocolo=REQUEST['rad_tip_protocolo'], - cod_protocolo=REQUEST['txt_num_protocolo'], ano_protocolo=REQUEST['txt_ano_protocolo'], - tip_documento=REQUEST['lst_tip_documento'], tip_processo=REQUEST['rad_tip_processo'], - tip_materia=REQUEST['lst_tip_materia'], des_assunto=REQUEST['txt_assunto'], - cod_autor=REQUEST['hdn_cod_autor'], des_interessado=REQUEST['txa_txt_interessado'], - dat_apres=REQUEST['dt_apres'], dat_apres2=REQUEST['dt_apres2']): - dic={} - - dic['titulo']=str(protocolo.cod_protocolo)+'/'+str(protocolo.ano_protocolo) - - dic['data']=context.pysc.iso_to_port_pysc(protocolo.dat_protocolo)+' - Horário:'+protocolo.hor_protocolo - - dic['txt_assunto']=protocolo.txt_assunto_ementa - - dic['txt_interessado']=protocolo.txt_interessado - - dic['nom_autor'] = " " - if protocolo.cod_autor!=None: - for autor in context.zsql.autor_obter_zsql(cod_autor=protocolo.cod_autor): - if autor.des_tipo_autor=='Parlamentar': - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): - dic['nom_autor']=parlamentar.nom_completo - elif autor.des_tipo_autor=='Comissao': - for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): - dic['nom_autor']=comissao.nom_comissao - else: - dic['nom_autor']=autor.nom_autor - - dic['natureza']='' - if protocolo.tip_processo==0: - dic['natureza']='Administrativo' - if protocolo.tip_processo==1: - dic['natureza']='Legislativo' - - dic['processo']=protocolo.des_tipo_materia or protocolo.des_tipo_documento - - dic['anulado']='' - if protocolo.ind_anulado==1: - dic['anulado']='Nulo' - - protocolos.append(dic) - -filtro={} # Dicionário que conterá os dados do filtro + imagem = context.imagens.absolute_url() + "/brasao_transp.gif" + +# Por fim, utiliza o PythonScript para pesquisar os protocolos e gerar os dados + +protocolos = [] +REQUEST = context.REQUEST +for protocolo in context.zsql.protocolo_pesquisar_zsql(tip_protocolo=REQUEST['rad_tip_protocolo'], + cod_protocolo=REQUEST['txt_num_protocolo'], ano_protocolo=REQUEST[ + 'txt_ano_protocolo'], + tip_documento=REQUEST['lst_tip_documento'], tip_processo=REQUEST[ + 'rad_tip_processo'], + tip_materia=REQUEST[ + 'lst_tip_materia'], des_assunto=REQUEST['txt_assunto'], + cod_autor=REQUEST['hdn_cod_autor'], des_interessado=REQUEST[ + 'txa_txt_interessado'], + dat_apres=REQUEST['dt_apres'], dat_apres2=REQUEST['dt_apres2']): + dic = {} + + dic['titulo'] = str(protocolo.cod_protocolo) + '/' + \ + str(protocolo.ano_protocolo) + + dic['data'] = context.pysc.iso_to_port_pysc( + protocolo.dat_protocolo) + ' - Horário:' + protocolo.hor_protocolo + + dic['txt_assunto'] = protocolo.txt_assunto_ementa + + dic['txt_interessado'] = protocolo.txt_interessado + + dic['nom_autor'] = " " + if protocolo.cod_autor != None: + for autor in context.zsql.autor_obter_zsql(cod_autor=protocolo.cod_autor): + if autor.des_tipo_autor == 'Parlamentar': + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar): + dic['nom_autor'] = parlamentar.nom_completo + elif autor.des_tipo_autor == 'Comissao': + for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao): + dic['nom_autor'] = comissao.nom_comissao + else: + dic['nom_autor'] = autor.nom_autor + + dic['natureza'] = '' + if protocolo.tip_processo == 0: + dic['natureza'] = 'Administrativo' + if protocolo.tip_processo == 1: + dic['natureza'] = 'Legislativo' + + dic['processo'] = protocolo.des_tipo_materia or protocolo.des_tipo_documento + + dic['anulado'] = '' + if protocolo.ind_anulado == 1: + dic['anulado'] = 'Nulo' + + protocolos.append(dic) + +filtro = {} # Dicionário que conterá os dados do filtro # Atribuições diretas do REQUEST -filtro['numero']=REQUEST.txt_num_protocolo -filtro['ano']=REQUEST.txt_ano_protocolo -filtro['tipo_protocolo']=REQUEST.rad_tip_protocolo -filtro['tipo_processo']=REQUEST.rad_tip_processo -filtro['assunto']=REQUEST.txt_assunto -filtro['autor']=REQUEST.hdn_cod_autor -filtro['interessado']=REQUEST.txa_txt_interessado - -sessao=session.id -caminho = context.pdf_protocolo_gerar(sessao,imagem,data,protocolos,cabecalho,rodape,filtro) -if caminho=='aviso': - return response.redirect('mensagem_emitir_proc') +filtro['numero'] = REQUEST.txt_num_protocolo +filtro['ano'] = REQUEST.txt_ano_protocolo +filtro['tipo_protocolo'] = REQUEST.rad_tip_protocolo +filtro['tipo_processo'] = REQUEST.rad_tip_processo +filtro['assunto'] = REQUEST.txt_assunto +filtro['autor'] = REQUEST.hdn_cod_autor +filtro['interessado'] = REQUEST.txa_txt_interessado + +sessao = session.id +caminho = context.pdf_protocolo_gerar( + sessao, imagem, data, protocolos, cabecalho, rodape, filtro) +if caminho == 'aviso': + return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py index 96fb7d581..119cdb761 100644 --- a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py +++ b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py @@ -26,7 +26,9 @@ def cabecalho(inf_basicas_dic, imagem): tmp += '\t\t\t\t\n' tmp += '\t\t\t\tResumo da ' + str(inf_basicas_dic['num_sessao_plen']) + 'ª Reunião ' + str(inf_basicas_dic['nom_sessao']) + ' da ' + str( inf_basicas_dic['num_sessao_leg']) + 'ª Sessão Legislativa da \n' - tmp += '\t\t\t\t' + str(inf_basicas_dic['num_legislatura']) + ' Legislatura \n' + tmp += '\t\t\t\t' + \ + str(inf_basicas_dic['num_legislatura']) + \ + ' Legislatura \n' return tmp @@ -159,7 +161,7 @@ def expedientes(lst_expedientes): for idx, expediente in enumerate(lst_expedientes): tmp += '\t\t' + '
' + \ expediente['nom_expediente'] + ':
\n' + \ - '' + \ + '' + \ expediente['txt_expediente'] + '\n' tmp += '\t\t\n' tmp += '\t\t\t \n' @@ -183,11 +185,12 @@ def expediente_materia(lst_expediente_materia): txt_ementa = expediente_materia['txt_ementa'].replace('&', '&') tmp += '' + txt_ementa + '\n' tmp += '' + \ - str(expediente_materia['nom_resultado']) + '\n' + '' + str(expediente_materia['nom_resultado']) + \ + '\n' + '' if expediente_materia['votacao_observacao'] != txt_ementa: - tmp += str(expediente_materia['votacao_observacao']) + tmp += str(expediente_materia['votacao_observacao']) else: - tmp += ' ' + tmp += ' ' tmp += '\n' tmp += '\t\t\n' @@ -242,11 +245,12 @@ def votacao(lst_votacao): txt_ementa = votacao['txt_ementa'].replace('&', '&') tmp += '' + txt_ementa + '\n' tmp += '' + \ - str(votacao['nom_resultado']) + '\n' + '' + str(votacao['nom_resultado']) + \ + '\n' + '' if votacao['votacao_observacao'] != txt_ementa: - tmp += str(votacao['votacao_observacao']) + tmp += str(votacao['votacao_observacao']) else: - tmp += ' ' + tmp += ' ' tmp += '\n' tmp += '\t\t\n' diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_preparar_pysc.py b/sapl/relatorios/templates/pdf_sessao_plenaria_preparar_pysc.py index 547e34b3f..b8f7adda2 100644 --- a/sapl/relatorios/templates/pdf_sessao_plenaria_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_sessao_plenaria_preparar_pysc.py @@ -1,20 +1,22 @@ import os -request=context.REQUEST -response=request.RESPONSE -session= request.SESSION +request = context.REQUEST +response = request.RESPONSE +session = request.SESSION -if context.REQUEST['data']!='': +if context.REQUEST['data'] != '': dat_inicio_sessao = context.REQUEST['data'] - pauta = [] # lista contendo a pauta da ordem do dia a ser impressa - data = context.pysc.data_converter_pysc(dat_inicio_sessao) # converte data para formato yyyy/mm/dd + pauta = [] # lista contendo a pauta da ordem do dia a ser impressa + # converte data para formato yyyy/mm/dd + data = context.pysc.data_converter_pysc(dat_inicio_sessao) codigo = context.REQUEST['cod_sessao_plen'] # seleciona as matérias que compõem a pauta na data escolhida for sessao in context.zsql.sessao_plenaria_obter_zsql(dat_inicio_sessao=data, cod_sessao_plen=codigo, ind_excluido=0): - inf_basicas_dic = {} # dicionário que armazenará as informacoes basicas da sessao plenaria + inf_basicas_dic = {} # dicionário que armazenará as informacoes basicas da sessao plenaria # seleciona o tipo da sessao plenaria - tipo_sessao = context.zsql.tipo_sessao_plenaria_obter_zsql(tip_sessao=sessao.tip_sessao,ind_excluido=0)[0] + tipo_sessao = context.zsql.tipo_sessao_plenaria_obter_zsql( + tip_sessao=sessao.tip_sessao, ind_excluido=0)[0] inf_basicas_dic["num_sessao_plen"] = sessao.num_sessao_plen inf_basicas_dic["nom_sessao"] = tipo_sessao.nom_sessao inf_basicas_dic["num_legislatura"] = sessao.num_legislatura @@ -23,11 +25,11 @@ if context.REQUEST['data']!='': inf_basicas_dic["hr_inicio_sessao"] = sessao.hr_inicio_sessao inf_basicas_dic["dat_fim_sessao"] = sessao.dat_fim_sessao inf_basicas_dic["hr_fim_sessao"] = sessao.hr_fim_sessao - + # Lista da composicao da mesa diretora lst_mesa = [] - for composicao in context.zsql.composicao_mesa_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0): - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=composicao.cod_parlamentar,ind_excluido=0): + for composicao in context.zsql.composicao_mesa_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=composicao.cod_parlamentar, ind_excluido=0): for cargo in context.zsql.cargo_mesa_obter_zsql(cod_cargo=composicao.cod_cargo, ind_excluido=0): dic_mesa = {} dic_mesa['nom_parlamentar'] = parlamentar.nom_parlamentar @@ -38,80 +40,98 @@ if context.REQUEST['data']!='': # Lista de presença na sessão lst_presenca_sessao = [] for presenca in context.zsql.presenca_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca.cod_parlamentar,ind_excluido=0): + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca.cod_parlamentar, ind_excluido=0): dic_presenca = {} dic_presenca["nom_parlamentar"] = parlamentar.nom_parlamentar dic_presenca['sgl_partido'] = parlamentar.sgl_partido lst_presenca_sessao.append(dic_presenca) - # Exibe os Expedientes + # Exibe os Expedientes lst_expedientes = [] dic_expedientes = None for tip_expediente in context.zsql.tipo_expediente_obter_zsql(): - for expediente in context.zsql.expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,cod_expediente=tip_expediente.cod_expediente, ind_excluido=0): + for expediente in context.zsql.expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, cod_expediente=tip_expediente.cod_expediente, ind_excluido=0): dic_expedientes = {} - dic_expedientes["nom_expediente"] = tip_expediente.nom_expediente + dic_expedientes[ + "nom_expediente"] = tip_expediente.nom_expediente dic_expedientes["txt_expediente"] = expediente.txt_expediente if dic_expedientes: lst_expedientes.append(dic_expedientes) - + # Lista das matérias do Expediente, incluindo o resultado das votacoes - lst_expediente_materia=[] - for expediente_materia in context.zsql.votacao_expediente_materia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): - + lst_expediente_materia = [] + for expediente_materia in context.zsql.votacao_expediente_materia_obter_zsql(dat_ordem=data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): + # seleciona os detalhes de uma matéria - materia = context.zsql.materia_obter_zsql(cod_materia=expediente_materia.cod_materia)[0] + materia = context.zsql.materia_obter_zsql( + cod_materia=expediente_materia.cod_materia)[0] dic_expediente_materia = {} dic_expediente_materia["num_ordem"] = expediente_materia.num_ordem - dic_expediente_materia["id_materia"] = materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) - dic_expediente_materia["des_numeracao"]="" + dic_expediente_materia["id_materia"] = materia.sgl_tipo_materia + " " + materia.des_tipo_materia + \ + " " + str(materia.num_ident_basica) + "/" + \ + str(materia.ano_ident_basica) + dic_expediente_materia["des_numeracao"] = "" - numeracao = context.zsql.numeracao_obter_zsql(cod_materia=expediente_materia.cod_materia) + numeracao = context.zsql.numeracao_obter_zsql( + cod_materia=expediente_materia.cod_materia) if len(numeracao): - numeracao = numeracao[0] - dic_expediente_materia["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia) + numeracao = numeracao[0] + dic_expediente_materia["des_numeracao"] = str( + numeracao.num_materia) + "/" + str(numeracao.ano_materia) - tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data) - dic_expediente_materia["des_turno"]="" + tram = context.zsql.tramitacao_turno_obter_zsql( + cod_materia=materia.cod_materia, dat_inicio_sessao=data) + dic_expediente_materia["des_turno"] = "" if len(tram): - tram_turno = tram[0] - if tram_turno.sgl_turno != "": - for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("L","Suplementar"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações"), ("F", "Final")]: - if tram_turno.sgl_turno == turno[0]: - dic_expediente_materia["des_turno"] = turno[1] + tram_turno = tram[0] + if tram_turno.sgl_turno != "": + for turno in [("P", "Primeiro"), ("S", "Segundo"), ("U", "Único"), ("L", "Suplementar"), ("A", "Votação Única em Regime de Urgência"), ("B", "1ª Votação"), ("C", "2ª e 3ª Votações"), ("F", "Final")]: + if tram_turno.sgl_turno == turno[0]: + dic_expediente_materia["des_turno"] = turno[1] dic_expediente_materia["txt_ementa"] = materia.txt_ementa - dic_expediente_materia["ordem_observacao"] = expediente_materia.ordem_observacao + dic_expediente_materia[ + "ordem_observacao"] = expediente_materia.ordem_observacao dic_expediente_materia["nom_autor"] = "" - autoria = context.zsql.autoria_obter_zsql(cod_materia=expediente_materia.cod_materia, ind_primeiro_autor=1) - if len(autoria) > 0: # se existe autor + autoria = context.zsql.autoria_obter_zsql( + cod_materia=expediente_materia.cod_materia, ind_primeiro_autor=1) + if len(autoria) > 0: # se existe autor autoria = autoria[0] - autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor) + autor = context.zsql.autor_obter_zsql( + cod_autor=autoria.cod_autor) if len(autor) > 0: autor = autor[0] try: - if autor.des_tipo_autor == "Parlamentar": - parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0] - dic_expediente_materia["nom_autor"] = parlamentar.nom_parlamentar - elif autor.des_tipo_autor == "Comissao": - comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0] - dic_expediente_materia["nom_autor"] = comissao.nom_comissao - elif autor.nom_autor != "": - dic_expediente_materia["nom_autor"] = autor.nom_autor - else: - dic_expediente_materia["nom_autor"] = autor.des_tipo_autor + if autor.des_tipo_autor == "Parlamentar": + parlamentar = context.zsql.parlamentar_obter_zsql( + cod_parlamentar=autor.cod_parlamentar)[0] + dic_expediente_materia[ + "nom_autor"] = parlamentar.nom_parlamentar + elif autor.des_tipo_autor == "Comissao": + comissao = context.zsql.comissao_obter_zsql( + cod_comissao=autor.cod_comissao)[0] + dic_expediente_materia[ + "nom_autor"] = comissao.nom_comissao + elif autor.nom_autor != "": + dic_expediente_materia[ + "nom_autor"] = autor.nom_autor + else: + dic_expediente_materia[ + "nom_autor"] = autor.des_tipo_autor except: - dic_expediente_materia["nom_autor"] = "NC-em" + dic_expediente_materia["nom_autor"] = "NC-em" - dic_expediente_materia["votacao_observacao"]="" + dic_expediente_materia["votacao_observacao"] = "" if expediente_materia.tip_resultado_votacao: - resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=expediente_materia.tip_resultado_votacao, ind_excluido=0) + resultado = context.zsql.tipo_resultado_votacao_obter_zsql( + tip_resultado_votacao=expediente_materia.tip_resultado_votacao, ind_excluido=0) for i in resultado: dic_expediente_materia["nom_resultado"] = i.nom_resultado if expediente_materia.votacao_observacao: - dic_expediente_materia["votacao_observacao"] = expediente_materia.votacao_observacao + dic_expediente_materia[ + "votacao_observacao"] = expediente_materia.votacao_observacao else: dic_expediente_materia["nom_resultado"] = "Matéria não votada" dic_expediente_materia["votacao_observacao"] = "Vazio" @@ -120,78 +140,97 @@ if context.REQUEST['data']!='': # Lista dos oradores do Expediente lst_oradores_expediente = [] for orador_expediente in context.zsql.oradores_expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador_expediente.cod_parlamentar,ind_excluido=0): + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador_expediente.cod_parlamentar, ind_excluido=0): dic_oradores_expediente = {} - dic_oradores_expediente["num_ordem"] = orador_expediente.num_ordem - dic_oradores_expediente["nom_parlamentar"] = parlamentar.nom_parlamentar - dic_oradores_expediente['sgl_partido'] = parlamentar.sgl_partido + dic_oradores_expediente[ + "num_ordem"] = orador_expediente.num_ordem + dic_oradores_expediente[ + "nom_parlamentar"] = parlamentar.nom_parlamentar + dic_oradores_expediente[ + 'sgl_partido'] = parlamentar.sgl_partido lst_oradores_expediente.append(dic_oradores_expediente) # Lista presença na ordem do dia lst_presenca_ordem_dia = [] - for presenca_ordem_dia in context.zsql.presenca_ordem_dia_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0): - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca_ordem_dia.cod_parlamentar,ind_excluido=0): + for presenca_ordem_dia in context.zsql.presenca_ordem_dia_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca_ordem_dia.cod_parlamentar, ind_excluido=0): dic_presenca_ordem_dia = {} - dic_presenca_ordem_dia['nom_parlamentar'] = parlamentar.nom_parlamentar + dic_presenca_ordem_dia[ + 'nom_parlamentar'] = parlamentar.nom_parlamentar dic_presenca_ordem_dia['sgl_partido'] = parlamentar.sgl_partido lst_presenca_ordem_dia.append(dic_presenca_ordem_dia) - - # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes - lst_votacao=[] - for votacao in context.zsql.votacao_ordem_dia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): - + + # Lista das matérias da Ordem do Dia, incluindo o resultado das + # votacoes + lst_votacao = [] + for votacao in context.zsql.votacao_ordem_dia_obter_zsql(dat_ordem=data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): + # seleciona os detalhes de uma matéria - materia = context.zsql.materia_obter_zsql(cod_materia=votacao.cod_materia)[0] + materia = context.zsql.materia_obter_zsql( + cod_materia=votacao.cod_materia)[0] dic_votacao = {} dic_votacao["num_ordem"] = votacao.num_ordem - dic_votacao["id_materia"] = materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica) - dic_votacao["des_numeracao"]="" - numeracao = context.zsql.numeracao_obter_zsql(cod_materia=votacao.cod_materia) + dic_votacao["id_materia"] = materia.sgl_tipo_materia + " " + materia.des_tipo_materia + \ + " " + str(materia.num_ident_basica) + "/" + \ + str(materia.ano_ident_basica) + dic_votacao["des_numeracao"] = "" + numeracao = context.zsql.numeracao_obter_zsql( + cod_materia=votacao.cod_materia) if len(numeracao): - numeracao = numeracao[0] - dic_votacao["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia) - dic_votacao["des_turno"]="" - tramitacao = context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia, ind_ult_tramitacao=1) + numeracao = numeracao[0] + dic_votacao["des_numeracao"] = str( + numeracao.num_materia) + "/" + str(numeracao.ano_materia) + dic_votacao["des_turno"] = "" + tramitacao = context.zsql.tramitacao_obter_zsql( + cod_materia=materia.cod_materia, ind_ult_tramitacao=1) if len(tramitacao): - tramitacao = tramitacao[0] - tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data) + tramitacao = tramitacao[0] + tram = context.zsql.tramitacao_turno_obter_zsql( + cod_materia=materia.cod_materia, dat_inicio_sessao=data) if len(tram): - tram_turno = tram[0] - if tram_turno.sgl_turno != "": - for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("L","Suplementar"), ("F","Final"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações")]: - if tram_turno.sgl_turno == turno[0]: - dic_votacao["des_turno"] = turno[1] + tram_turno = tram[0] + if tram_turno.sgl_turno != "": + for turno in [("P", "Primeiro"), ("S", "Segundo"), ("U", "Único"), ("L", "Suplementar"), ("F", "Final"), ("A", "Votação Única em Regime de Urgência"), ("B", "1ª Votação"), ("C", "2ª e 3ª Votações")]: + if tram_turno.sgl_turno == turno[0]: + dic_votacao["des_turno"] = turno[1] dic_votacao["txt_ementa"] = materia.txt_ementa dic_votacao["ordem_observacao"] = votacao.ordem_observacao dic_votacao["nom_autor"] = "" - autoria = context.zsql.autoria_obter_zsql(cod_materia=votacao.cod_materia, ind_primeiro_autor=1) - if len(autoria) > 0: # se existe autor + autoria = context.zsql.autoria_obter_zsql( + cod_materia=votacao.cod_materia, ind_primeiro_autor=1) + if len(autoria) > 0: # se existe autor autoria = autoria[0] - autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor) + autor = context.zsql.autor_obter_zsql( + cod_autor=autoria.cod_autor) if len(autor) > 0: autor = autor[0] - try: - if autor.des_tipo_autor == "Parlamentar": - parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0] - dic_votacao["nom_autor"] = parlamentar.nom_parlamentar - elif autor.des_tipo_autor == "Comissao": - comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0] - dic_votacao["nom_autor"] = comissao.nom_comissao - elif autor.nom_autor != "": - dic_votacao["nom_autor"] = autor.nom_autor - else: - dic_votacao["nom_autor"] = autor.des_tipo_autor - except: - dic_votacao["nom_autor"] = "NC-od" - - dic_votacao["votacao_observacao"]="" + try: + if autor.des_tipo_autor == "Parlamentar": + parlamentar = context.zsql.parlamentar_obter_zsql( + cod_parlamentar=autor.cod_parlamentar)[0] + dic_votacao[ + "nom_autor"] = parlamentar.nom_parlamentar + elif autor.des_tipo_autor == "Comissao": + comissao = context.zsql.comissao_obter_zsql( + cod_comissao=autor.cod_comissao)[0] + dic_votacao["nom_autor"] = comissao.nom_comissao + elif autor.nom_autor != "": + dic_votacao["nom_autor"] = autor.nom_autor + else: + dic_votacao["nom_autor"] = autor.des_tipo_autor + except: + dic_votacao["nom_autor"] = "NC-od" + + dic_votacao["votacao_observacao"] = "" if votacao.tip_resultado_votacao: - resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=votacao.tip_resultado_votacao, ind_excluido=0) + resultado = context.zsql.tipo_resultado_votacao_obter_zsql( + tip_resultado_votacao=votacao.tip_resultado_votacao, ind_excluido=0) for i in resultado: dic_votacao["nom_resultado"] = i.nom_resultado if votacao.votacao_observacao: - dic_votacao["votacao_observacao"] = votacao.votacao_observacao + dic_votacao[ + "votacao_observacao"] = votacao.votacao_observacao else: dic_votacao["nom_resultado"] = "Matéria não votada" dic_votacao["votacao_observacao"] = "Vazio" @@ -200,42 +239,46 @@ if context.REQUEST['data']!='': # Lista dos oradores nas Explicações Pessoais lst_oradores = [] for orador in context.zsql.oradores_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0): - for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador.cod_parlamentar,ind_excluido=0): + for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador.cod_parlamentar, ind_excluido=0): dic_oradores = {} dic_oradores["num_ordem"] = orador.num_ordem dic_oradores["nom_parlamentar"] = parlamentar.nom_parlamentar dic_oradores['sgl_partido'] = parlamentar.sgl_partido lst_oradores.append(dic_oradores) - # obtém as propriedades da casa legislativa para montar o cabeçalho e o rodapé da página - cabecalho={} + # obtém as propriedades da casa legislativa para montar o cabeçalho e o + # rodapé da página + cabecalho = {} # tenta buscar o logotipo da casa LOGO_CASA - if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'): - imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url() + if hasattr(context.sapl_documentos.props_sapl, 'logo_casa.gif'): + imagem = context.sapl_documentos.props_sapl[ + 'logo_casa.gif'].absolute_url() else: imagem = context.imagens.absolute_url() + "/brasao_transp.gif" - - #Abaixo é gerado o dic do rodapé da página (linha 7) - casa={} - aux=context.sapl_documentos.props_sapl.propertyItems() + + # Abaixo é gerado o dic do rodapé da página (linha 7) + casa = {} + aux = context.sapl_documentos.props_sapl.propertyItems() for item in aux: - casa[item[0]]=item[1] - localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"]) - data_emissao= DateTime().strftime("%d/%m/%Y") - rodape= casa - rodape['data_emissao']= data_emissao - - inf_basicas_dic['nom_camara']= casa['nom_casa'] - REQUEST=context.REQUEST - for local in context.zsql.localidade_obter_zsql(cod_localidade = casa['cod_localidade']): - rodape['nom_localidade']= " "+local.nom_localidade - rodape['sgl_uf']= local.sgl_uf + casa[item[0]] = item[1] + localidade = context.zsql.localidade_obter_zsql( + cod_localidade=casa["cod_localidade"]) + data_emissao = DateTime().strftime("%d/%m/%Y") + rodape = casa + rodape['data_emissao'] = data_emissao + + inf_basicas_dic['nom_camara'] = casa['nom_casa'] + REQUEST = context.REQUEST + for local in context.zsql.localidade_obter_zsql(cod_localidade=casa['cod_localidade']): + rodape['nom_localidade'] = " " + local.nom_localidade + rodape['sgl_uf'] = local.sgl_uf # return lst_votacao - sessao=session.id - caminho = context.pdf_sessao_plenaria_gerar(rodape, sessao, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores) - if caminho=='aviso': + sessao = session.id + caminho = context.pdf_sessao_plenaria_gerar(rodape, sessao, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao, + lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores) + if caminho == 'aviso': return response.redirect('mensagem_emitir_proc') else: - response.redirect(caminho) + response.redirect(caminho) diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index 48d4fee60..28e012817 100644 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -505,20 +505,20 @@ def get_sessao_plenaria(sessao, casa): # Lista de presença na sessão lst_presenca_sessao = [] presenca = SessaoPlenariaPresenca.objects.filter( - sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar') + sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar') for parlamentar in [p.parlamentar for p in presenca]: - dic_presenca = {} - dic_presenca["nom_parlamentar"] = parlamentar.nome_parlamentar - partido_sigla = filiacao_data(parlamentar, sessao.data_inicio) + dic_presenca = {} + dic_presenca["nom_parlamentar"] = parlamentar.nome_parlamentar + partido_sigla = filiacao_data(parlamentar, sessao.data_inicio) - dic_presenca['sgl_partido'] = partido_sigla - lst_presenca_sessao.append(dic_presenca) + dic_presenca['sgl_partido'] = partido_sigla + lst_presenca_sessao.append(dic_presenca) # Exibe os Expedientes lst_expedientes = [] expedientes = ExpedienteSessao.objects.filter( - sessao_plenaria=sessao).order_by('tipo__nome') + sessao_plenaria=sessao).order_by('tipo__nome') for e in expedientes: @@ -642,15 +642,15 @@ def get_sessao_plenaria(sessao, casa): # Lista presença na ordem do dia lst_presenca_ordem_dia = [] presenca_ordem_dia = PresencaOrdemDia.objects.filter( - sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar') + sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar') for parlamentar in [p.parlamentar for p in presenca_ordem_dia]: - dic_presenca_ordem_dia = {} - dic_presenca_ordem_dia['nom_parlamentar'] = ( - parlamentar.nome_parlamentar) - sigla = filiacao_data(parlamentar, sessao.data_inicio) + dic_presenca_ordem_dia = {} + dic_presenca_ordem_dia['nom_parlamentar'] = ( + parlamentar.nome_parlamentar) + sigla = filiacao_data(parlamentar, sessao.data_inicio) - dic_presenca_ordem_dia['sgl_partido'] = sigla - lst_presenca_ordem_dia.append(dic_presenca_ordem_dia) + dic_presenca_ordem_dia['sgl_partido'] = sigla + lst_presenca_ordem_dia.append(dic_presenca_ordem_dia) # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes lst_votacao = [] diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 8cc4d69d2..a1f65e960 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -52,6 +52,7 @@ ORDENACAO_RESUMO = [('cont_mult', 'Conteúdo Multimídia'), ('oradores_exped', 'Oradores do Expediente'), ('oradores_expli', 'Oradores das Explicações Pessoais')] + class SessaoPlenariaForm(ModelForm): class Meta: @@ -70,21 +71,22 @@ class SessaoPlenariaForm(ModelForm): sessoes = SessaoPlenaria.objects.filter(numero=num, sessao_legislativa=sl, legislatura=leg).\ - values_list('id', flat=True) + values_list('id', flat=True) qtd_sessoes = len(sessoes) error = ValidationError('Número de Sessão Plenária Existente') if qtd_sessoes > 0: - if instance.pk: # update + if instance.pk: # update if not instance.pk in sessoes or qtd_sessoes > 1: raise error - else: # create + else: # create raise error return self.cleaned_data + class BancadaForm(ModelForm): class Meta: diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index 6789d647d..dd136d3fd 100644 --- a/sapl/sessao/models.py +++ b/sapl/sessao/models.py @@ -406,15 +406,14 @@ class RegistroVotacao(models.Model): blank=True, verbose_name=_('Observações')) data_hora_criacao = models.DateTimeField( - blank=True, null=True, - auto_now_add=True, - verbose_name=_('Data Criação')) + blank=True, null=True, + auto_now_add=True, + verbose_name=_('Data Criação')) data_hora_atualizacao = models.DateTimeField( - blank=True, null=True, - auto_now=True, - verbose_name=_('Data')) - + blank=True, null=True, + auto_now=True, + verbose_name=_('Data')) class Meta: verbose_name = _('Votação') diff --git a/sapl/sessao/serializers.py b/sapl/sessao/serializers.py index c38509f93..b8e64358e 100644 --- a/sapl/sessao/serializers.py +++ b/sapl/sessao/serializers.py @@ -4,6 +4,7 @@ from .models import SessaoPlenaria class SessaoPlenariaSerializer(serializers.Serializer): + class Meta: model = SessaoPlenaria fields = ('tipo', diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 2c1d30403..3e47a6da4 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -81,6 +81,7 @@ def reordernar_materias_ordem(request, pk): return HttpResponseRedirect( reverse('sapl.sessao:ordemdia_list', kwargs={'pk': pk})) + def verifica_presenca(request, model, spk): if not model.objects.filter(sessao_plenaria_id=spk).exists(): msg = _('Votação não pode ser aberta sem presenças') @@ -118,7 +119,7 @@ def abrir_votacao_expediente_view(request, pk, spk): if verifica_presenca(request, SessaoPlenariaPresenca, spk): verifica_votacoes_abertas(request, ExpedienteMateria, pk) return HttpResponseRedirect( - reverse('sapl.sessao:expedientemateria_list', kwargs={'pk': spk})) + reverse('sapl.sessao:expedientemateria_list', kwargs={'pk': spk})) @permission_required('sessao.change_ordemdia') @@ -126,7 +127,7 @@ def abrir_votacao_ordem_view(request, pk, spk): if verifica_presenca(request, PresencaOrdemDia, spk): verifica_votacoes_abertas(request, OrdemDia, pk) return HttpResponseRedirect( - reverse('sapl.sessao:ordemdia_list', kwargs={'pk': spk})) + reverse('sapl.sessao:ordemdia_list', kwargs={'pk': spk})) def put_link_materia(context): @@ -172,8 +173,9 @@ class MateriaOrdemDiaCrud(MasterDetailCrud): self.initial['data_ordem'] = SessaoPlenaria.objects.get( pk=self.kwargs['pk']).data_inicio.strftime('%d/%m/%Y') max_numero_ordem = OrdemDia.objects.filter( - sessao_plenaria=self.kwargs['pk']).aggregate(Max('numero_ordem'))['numero_ordem__max'] - self.initial['numero_ordem'] = (max_numero_ordem if max_numero_ordem else 0) + 1 + sessao_plenaria=self.kwargs['pk']).aggregate(Max('numero_ordem'))['numero_ordem__max'] + self.initial['numero_ordem'] = ( + max_numero_ordem if max_numero_ordem else 0) + 1 return self.initial def get_success_url(self): @@ -370,7 +372,7 @@ class ExpedienteMateriaCrud(MasterDetailCrud): else: url = '' resultado = obj.registrovotacao_set.get( - materia_id=obj.materia_id) + materia_id=obj.materia_id) resultado_descricao = resultado.tipo_resultado_votacao.nome resultado_observacao = resultado.observacao if self.request.user.has_module_perms(AppConfig.label): @@ -422,8 +424,9 @@ class ExpedienteMateriaCrud(MasterDetailCrud): self.initial['data_ordem'] = SessaoPlenaria.objects.get( pk=self.kwargs['pk']).data_inicio.strftime('%d/%m/%Y') max_numero_ordem = ExpedienteMateria.objects.filter( - sessao_plenaria=self.kwargs['pk']).aggregate(Max('numero_ordem'))['numero_ordem__max'] - self.initial['numero_ordem'] = (max_numero_ordem if max_numero_ordem else 0) + 1 + sessao_plenaria=self.kwargs['pk']).aggregate(Max('numero_ordem'))['numero_ordem__max'] + self.initial['numero_ordem'] = ( + max_numero_ordem if max_numero_ordem else 0) + 1 return self.initial def get_success_url(self): @@ -618,12 +621,12 @@ class PresencaView(FormMixin, PresencaMixin, DetailView): if form.is_valid(): # Pegar os presentes salvos no banco presentes_banco = SessaoPlenariaPresenca.objects.filter( - sessao_plenaria_id=self.object.id).values_list( - 'parlamentar_id', flat=True).distinct() + sessao_plenaria_id=self.object.id).values_list( + 'parlamentar_id', flat=True).distinct() # Id dos parlamentares presentes marcados = request.POST.getlist('presenca_ativos') \ - + request.POST.getlist('presenca_inativos') + + request.POST.getlist('presenca_inativos') # Deletar os que foram desmarcados deletar = set(presentes_banco) - set(marcados) @@ -728,12 +731,12 @@ class PresencaOrdemDiaView(FormMixin, PresencaMixin, DetailView): if form.is_valid(): # Pegar os presentes salvos no banco presentes_banco = PresencaOrdemDia.objects.filter( - sessao_plenaria_id=self.object.id).values_list( - 'parlamentar_id', flat=True).distinct() + sessao_plenaria_id=self.object.id).values_list( + 'parlamentar_id', flat=True).distinct() # Id dos parlamentares presentes marcados = request.POST.getlist('presenca_ativos') \ - + request.POST.getlist('presenca_inativos') + + request.POST.getlist('presenca_inativos') # Deletar os que foram desmarcados deletar = set(presentes_banco) - set(marcados) @@ -1017,24 +1020,24 @@ def remove_parlamentar_composicao(request): '%s.delete_%s' % ( AppConfig.label, IntegranteMesa._meta.model_name)): - if 'composicao_mesa' in request.POST: - try: - composicao = IntegranteMesa.objects.get( - id=int(request.POST['composicao_mesa'])) - except ObjectDoesNotExist: - return JsonResponse( - {'msg': ( - 'Composição da Mesa não pôde ser removida!', 0)}) - - composicao.delete() - - return JsonResponse( - {'msg': ( - 'Parlamentar excluido com sucesso!', 1)}) - else: + if 'composicao_mesa' in request.POST: + try: + composicao = IntegranteMesa.objects.get( + id=int(request.POST['composicao_mesa'])) + except ObjectDoesNotExist: return JsonResponse( {'msg': ( - 'Selecione algum parlamentar para ser excluido!', 0)}) + 'Composição da Mesa não pôde ser removida!', 0)}) + + composicao.delete() + + return JsonResponse( + {'msg': ( + 'Parlamentar excluido com sucesso!', 1)}) + else: + return JsonResponse( + {'msg': ( + 'Selecione algum parlamentar para ser excluido!', 0)}) class ResumoOrdenacaoView(PermissionRequiredMixin, FormView): @@ -1255,20 +1258,20 @@ class ResumoView(DetailView): # Oradores nas Explicações Pessoais oradores_explicacoes = [] for orador in Orador.objects.filter(sessao_plenaria_id=self.object.id).order_by('numero_ordem'): - for parlamentar in Parlamentar.objects.filter( - id=orador.parlamentar.id): - partido_sigla = Filiacao.objects.filter( - parlamentar=parlamentar).last() - if not partido_sigla: - sigla = '' - else: - sigla = partido_sigla.partido.sigla - oradores = { - 'numero_ordem': orador.numero_ordem, - 'parlamentar': parlamentar, - 'sgl_partido': sigla - } - oradores_explicacoes.append(oradores) + for parlamentar in Parlamentar.objects.filter( + id=orador.parlamentar.id): + partido_sigla = Filiacao.objects.filter( + parlamentar=parlamentar).last() + if not partido_sigla: + sigla = '' + else: + sigla = partido_sigla.partido.sigla + oradores = { + 'numero_ordem': orador.numero_ordem, + 'parlamentar': parlamentar, + 'sgl_partido': sigla + } + oradores_explicacoes.append(oradores) context.update({'oradores_explicacoes': oradores_explicacoes}) # ===================================================================== From b4ba735fda5d1762267f693d58d59ffcf3e51e9a Mon Sep 17 00:00:00 2001 From: Mariana Mendes Date: Fri, 18 Aug 2017 15:38:30 -0300 Subject: [PATCH 5/8] Corrige erros de PEP 8 --- create_admin.py | 8 +++--- genkey.py | 4 ++- sapl/api/forms.py | 2 +- sapl/api/views.py | 2 +- sapl/base/templatetags/common_tags.py | 1 + sapl/base/tests/teststub_urls.py | 8 +++--- sapl/base/views.py | 3 +-- sapl/legacy/migracao_documentos.py | 4 +-- sapl/legacy/migration.py | 5 +--- sapl/legacy/scripts/street_sweeper.py | 3 ++- sapl/materia/forms.py | 7 +++--- sapl/materia/urls.py | 1 - sapl/materia/views.py | 10 +++----- sapl/norma/apps.py | 3 --- sapl/norma/signals.py | 3 --- sapl/painel/views.py | 5 ++-- sapl/protocoloadm/views.py | 7 +++--- sapl/relatorios/views.py | 5 ++-- sapl/sessao/forms.py | 2 +- sapl/sessao/views.py | 12 ++++++--- sapl/test_urls.py | 36 +++++++++++++-------------- sapl/urls.py | 3 ++- sapl/utils.py | 10 ++++---- 23 files changed, 67 insertions(+), 77 deletions(-) diff --git a/create_admin.py b/create_admin.py index 6b3d52709..6080fbd07 100644 --- a/create_admin.py +++ b/create_admin.py @@ -3,8 +3,6 @@ import sys import django -from sapl import settings - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sapl.settings") @@ -17,12 +15,14 @@ def create_superuser(): email = os.environ['ADMIN_EMAIL'] if 'ADMIN_EMAIL' in os.environ else '' if User.objects.filter(username=username).exists(): - print("[SUPERUSER] User %s already exists. Exiting without change." % username) + print("[SUPERUSER] User %s already exists." + " Exiting without change." % username) sys.exit('ADMIN_USER_EXISTS') else: if not password: print( - "[SUPERUSER] Environment variable $ADMIN_PASSWORD for user %s was not set. Leaving..." % username) + "[SUPERUSER] Environment variable $ADMIN_PASSWORD" + " for user %s was not set. Leaving..." % username) sys.exit('MISSING_ADMIN_PASSWORD') print("[SUPERUSER] Creating superuser...") diff --git a/genkey.py b/genkey.py index 248a67e8f..207989e92 100644 --- a/genkey.py +++ b/genkey.py @@ -2,7 +2,9 @@ import random def generate_secret(): - return ''.join([random.SystemRandom().choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)]) + return (''.join([random.SystemRandom().choice( + 'abcdefghijklmnopqrst' + 'uvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)])) if __name__ == '__main__': print(generate_secret()) diff --git a/sapl/api/forms.py b/sapl/api/forms.py index f8ad6fee7..e9900e0c0 100644 --- a/sapl/api/forms.py +++ b/sapl/api/forms.py @@ -1,4 +1,4 @@ -from django.db.models import F, Q +from django.db.models import Q from django.forms.fields import CharField, MultiValueField from django.forms.widgets import MultiWidget, TextInput from django.utils import timezone diff --git a/sapl/api/views.py b/sapl/api/views.py index 1eccaf5ef..2909d5a0a 100644 --- a/sapl/api/views.py +++ b/sapl/api/views.py @@ -7,7 +7,7 @@ from rest_framework.generics import ListAPIView from rest_framework.mixins import ListModelMixin, RetrieveModelMixin from rest_framework.permissions import (AllowAny, IsAuthenticated, IsAuthenticatedOrReadOnly) -from rest_framework.viewsets import GenericViewSet, ModelViewSet +from rest_framework.viewsets import GenericViewSet from sapl.api.forms import (AutorChoiceFilterSet, AutoresPossiveisFilterSet, AutorSearchForFieldFilterSet) diff --git a/sapl/base/templatetags/common_tags.py b/sapl/base/templatetags/common_tags.py index 928aeab5d..9f306d833 100644 --- a/sapl/base/templatetags/common_tags.py +++ b/sapl/base/templatetags/common_tags.py @@ -4,6 +4,7 @@ from django import template from sapl.base.models import AppConfig from sapl.materia.models import DocumentoAcessorio, MateriaLegislativa from sapl.norma.models import NormaJuridica +from sapl.parlamentares import Filiacao from sapl.utils import filiacao_data register = template.Library() diff --git a/sapl/base/tests/teststub_urls.py b/sapl/base/tests/teststub_urls.py index a105489c7..e81cbdb59 100644 --- a/sapl/base/tests/teststub_urls.py +++ b/sapl/base/tests/teststub_urls.py @@ -3,8 +3,6 @@ from django.views.generic.base import TemplateView from sapl.urls import urlpatterns as original_patterns -urlpatterns = original_patterns + patterns('', url(r'^zzzz$', - TemplateView.as_view( - template_name='index.html'), - name='zzzz') - ) +urlpatterns = original_patterns + patterns +('', url(r'^zzzz$', TemplateView.as_view( + template_name='index.html'), name='zzzz')) diff --git a/sapl/base/views.py b/sapl/base/views.py index f8c0832cf..b2ce6ad50 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -7,7 +7,7 @@ from django.contrib.auth.tokens import default_token_generator from django.core.exceptions import ObjectDoesNotExist from django.core.mail import send_mail from django.core.urlresolvers import reverse -from django.db.models import Count, Q +from django.db.models import Count from django.http import HttpResponseRedirect from django.utils.encoding import force_bytes from django.utils.http import urlsafe_base64_decode, urlsafe_base64_encode @@ -20,7 +20,6 @@ from sapl.base.forms import AutorForm, AutorFormForAdmin, TipoAutorForm from sapl.base.models import Autor, TipoAutor from sapl.crud.base import CrudAux from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa -from sapl.parlamentares.models import Parlamentar from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria, SessaoPlenariaPresenca) from sapl.utils import parlamentares_ativos, sapl_logger diff --git a/sapl/legacy/migracao_documentos.py b/sapl/legacy/migracao_documentos.py index ea29a9072..2e514942b 100644 --- a/sapl/legacy/migracao_documentos.py +++ b/sapl/legacy/migracao_documentos.py @@ -3,7 +3,6 @@ import os import re import magic -from django.db.models.signals import post_delete, post_save from sapl.base.models import CasaLegislativa from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa, @@ -86,7 +85,8 @@ DOCS = { DocumentoAcessorioAdministrativo: [( 'arquivo', 'administrativo/{}', - 'private/documentoacessorioadministrativo/{0}/{0}_acessorio_administrativo{1}') + 'private/documentoacessorioadministrativo/{0}/' + '{0}_acessorio_administrativo{1}') ], } diff --git a/sapl/legacy/migration.py b/sapl/legacy/migration.py index 791e6a7b5..7b31f00f9 100644 --- a/sapl/legacy/migration.py +++ b/sapl/legacy/migration.py @@ -14,15 +14,12 @@ from django.core.exceptions import ObjectDoesNotExist from django.db import OperationalError, ProgrammingError, connections, models from django.db.models import CharField, Count, Max, ProtectedError, TextField from django.db.models.base import ModelBase -from django.db.models.signals import post_delete, post_save from model_mommy import mommy from model_mommy.mommy import foreign_key_required, make from sapl.base.models import Argumento, Autor, Constraint, ProblemaMigracao from sapl.comissoes.models import Comissao, Composicao, Participacao -from sapl.legacy.models import Protocolo as ProtocoloLegado -from sapl.materia.models import (AcompanhamentoMateria, DocumentoAcessorio, - MateriaLegislativa, Proposicao, +from sapl.materia.models import (AcompanhamentoMateria, Proposicao, StatusTramitacao, TipoDocumento, TipoMateriaLegislativa, TipoProposicao, Tramitacao) diff --git a/sapl/legacy/scripts/street_sweeper.py b/sapl/legacy/scripts/street_sweeper.py index a33710b1a..d01fd3b52 100644 --- a/sapl/legacy/scripts/street_sweeper.py +++ b/sapl/legacy/scripts/street_sweeper.py @@ -12,7 +12,8 @@ DB = '' SELECT_EXCLUIDOS = "SELECT %s FROM %s WHERE ind_excluido = 1 ORDER BY %s" -REGISTROS_INCONSISTENTES = "DELETE FROM %s WHERE %s in (%s) AND ind_excluido = 0 " +REGISTROS_INCONSISTENTES = "DELETE FROM %s WHERE %s " +"in (%s) AND ind_excluido = 0 " EXCLUI_REGISTRO = "DELETE FROM %s WHERE ind_excluido=1" diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index 21d1845d8..f8aa30ea5 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -493,9 +493,10 @@ class MateriaLegislativaFilterSet(django_filters.FilterSet): autoria__autor = django_filters.CharFilter(widget=forms.HiddenInput()) - autoria__primeiro_autor = django_filters.BooleanFilter(required=False, - label='Primeiro Autor', - widget=forms.HiddenInput()) + autoria__primeiro_autor = django_filters.BooleanFilter( + required=False, + label='Primeiro Autor', + widget=forms.HiddenInput()) ementa = django_filters.CharFilter(lookup_expr='icontains') diff --git a/sapl/materia/urls.py b/sapl/materia/urls.py index 2cbb3a62b..e91505c24 100644 --- a/sapl/materia/urls.py +++ b/sapl/materia/urls.py @@ -23,7 +23,6 @@ from sapl.materia.views import (AcompanhamentoConfirmarView, TramitacaoEmLoteView, UnidadeTramitacaoCrud, proposicao_texto, recuperar_materia) -from . import receivers from .apps import AppConfig app_name = AppConfig.name diff --git a/sapl/materia/views.py b/sapl/materia/views.py index c7c1e2618..9182a220f 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -4,14 +4,11 @@ from string import ascii_letters, digits from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML -from django import forms from django.contrib import messages from django.contrib.auth.decorators import permission_required from django.contrib.auth.mixins import PermissionRequiredMixin -from django.contrib.contenttypes.models import ContentType -from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist +from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import reverse -from django.db.models import Q from django.http import HttpResponse, JsonResponse from django.http.response import Http404, HttpResponseRedirect from django.shortcuts import get_object_or_404, redirect @@ -1735,9 +1732,8 @@ class TramitacaoEmLoteView(PrimeiraTramitacaoEmLoteView): if ('tramitacao__status' in qr and 'tramitacao__unidade_tramitacao_destino' in qr and - qr['tramitacao__status'] and - qr['tramitacao__unidade_tramitacao_destino'] - ): + qr['tramitacao__status'] and + qr['tramitacao__unidade_tramitacao_destino']): lista = filtra_tramitacao_destino_and_status( qr['tramitacao__status'], qr['tramitacao__unidade_tramitacao_destino']) diff --git a/sapl/norma/apps.py b/sapl/norma/apps.py index c4d55ade0..effd4f271 100644 --- a/sapl/norma/apps.py +++ b/sapl/norma/apps.py @@ -6,6 +6,3 @@ class AppConfig(apps.AppConfig): name = 'sapl.norma' label = 'norma' verbose_name = _('Norma Jurídica') - - def ready(self): - from . import signals diff --git a/sapl/norma/signals.py b/sapl/norma/signals.py index 4a5472715..e69de29bb 100644 --- a/sapl/norma/signals.py +++ b/sapl/norma/signals.py @@ -1,3 +0,0 @@ -from django.db.models.signals import post_delete, post_save - -from .models import NormaJuridica diff --git a/sapl/painel/views.py b/sapl/painel/views.py index 13ee7883b..3183c61db 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -1,8 +1,8 @@ -from datetime import date + from django.contrib import messages from django.contrib.auth.decorators import user_passes_test -from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist +from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import reverse from django.db.models import Q from django.http import HttpResponse, JsonResponse @@ -12,7 +12,6 @@ from django.utils.translation import ugettext_lazy as _ from sapl.crud.base import Crud from sapl.painel.apps import AppConfig -from sapl.painel.models import Painel from sapl.parlamentares.models import Filiacao, Votante from sapl.sessao.models import (ExpedienteMateria, OrdemDia, PresencaOrdemDia, RegistroVotacao, SessaoPlenaria, diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index 4e7a946c6..fe2390a8c 100644 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -7,11 +7,10 @@ from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import reverse from django.db.models import Max, Q -from django.http import (Http404, HttpResponse, HttpResponseRedirect, - JsonResponse) +from django.http import Http404, HttpResponse, JsonResponse from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ -from django.views.generic import CreateView, DetailView, FormView, ListView +from django.views.generic import CreateView, DetailView, ListView from django.views.generic.base import TemplateView from django_filters.views import FilterView @@ -20,7 +19,7 @@ from sapl.base.models import Autor from sapl.comissoes.models import Comissao from sapl.crud.base import Crud, CrudAux, MasterDetailCrud, make_pagination from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa -from sapl.parlamentares.models import Parlamentar +from sapl.parlamentares.models import Legislatura, Parlamentar from sapl.protocoloadm.models import Protocolo from sapl.utils import create_barcode, get_client_ip diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index 28e012817..b40372d3f 100644 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -15,9 +15,8 @@ from sapl.protocoloadm.models import (DocumentoAdministrativo, Protocolo, TramitacaoAdministrativo) from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao, IntegranteMesa, Orador, OradorExpediente, - OrdemDia, PresencaOrdemDia, RegistroVotacao, - SessaoPlenaria, SessaoPlenariaPresenca, - TipoExpediente) + OrdemDia, PresencaOrdemDia, SessaoPlenaria, + SessaoPlenariaPresenca) from sapl.settings import STATIC_ROOT from sapl.utils import UF, filiacao_data diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index a1f65e960..150922f18 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -79,7 +79,7 @@ class SessaoPlenariaForm(ModelForm): if qtd_sessoes > 0: if instance.pk: # update - if not instance.pk in sessoes or qtd_sessoes > 1: + if instance.pk not in sessoes or qtd_sessoes > 1: raise error else: # create raise error diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 3e47a6da4..e29a9ee5e 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -173,7 +173,8 @@ class MateriaOrdemDiaCrud(MasterDetailCrud): self.initial['data_ordem'] = SessaoPlenaria.objects.get( pk=self.kwargs['pk']).data_inicio.strftime('%d/%m/%Y') max_numero_ordem = OrdemDia.objects.filter( - sessao_plenaria=self.kwargs['pk']).aggregate(Max('numero_ordem'))['numero_ordem__max'] + sessao_plenaria=(self.kwargs['pk']). + aggregate(Max('numero_ordem'))['numero_ordem__max']) self.initial['numero_ordem'] = ( max_numero_ordem if max_numero_ordem else 0) + 1 return self.initial @@ -424,7 +425,8 @@ class ExpedienteMateriaCrud(MasterDetailCrud): self.initial['data_ordem'] = SessaoPlenaria.objects.get( pk=self.kwargs['pk']).data_inicio.strftime('%d/%m/%Y') max_numero_ordem = ExpedienteMateria.objects.filter( - sessao_plenaria=self.kwargs['pk']).aggregate(Max('numero_ordem'))['numero_ordem__max'] + sessao_plenaria=(self.kwargs['pk']). + aggregate(Max('numero_ordem'))['numero_ordem__max']) self.initial['numero_ordem'] = ( max_numero_ordem if max_numero_ordem else 0) + 1 return self.initial @@ -1257,7 +1259,8 @@ class ResumoView(DetailView): # ===================================================================== # Oradores nas Explicações Pessoais oradores_explicacoes = [] - for orador in Orador.objects.filter(sessao_plenaria_id=self.object.id).order_by('numero_ordem'): + for orador in Orador.objects.filter( + sessao_plenaria_id=self.object.id).order_by('numero_ordem'): for parlamentar in Parlamentar.objects.filter( id=orador.parlamentar.id): partido_sigla = Filiacao.objects.filter( @@ -2171,7 +2174,8 @@ class VotacaoExpedienteEditView(SessaoPermissionMixin): expediente_id = kwargs['oid'] if(int(request.POST['anular_votacao']) == 1): - for r in RegistroVotacao.objects.filter(expediente_id=expediente_id): + for r in RegistroVotacao.objects.filter( + expediente_id=expediente_id): r.delete() expediente = ExpedienteMateria.objects.get( diff --git a/sapl/test_urls.py b/sapl/test_urls.py index 8b5207276..9daa58fab 100644 --- a/sapl/test_urls.py +++ b/sapl/test_urls.py @@ -174,24 +174,24 @@ apps_url_patterns_prefixs_and_users = { ]}, 'redireciona_urls': { 'prefixs': [ - '/default_index_html', - '/consultas/parlamentar/parlamentar_', - '/consultas/comissao/comissao_', - '/consultas/pauta_sessao/pauta_sessao_', - '/consultas/sessao_plenaria/', - '/relatorios_administrativos/relatorios_administrativos_index_html', - '/tramitacaoMaterias/tramitacaoMaterias', - '/tramitacaoMaterias/materia_mostrar_proc', - '/generico/materia_pesquisar_', - '/consultas/mesa_diretora/mesa_diretora_index_html', - '/consultas/mesa_diretora/parlamentar/parlamentar_', - '/generico/norma_juridica_pesquisar_', - '/consultas/norma_juridica/norma_juridica_mostrar_proc', - '/historicoTramitacoes/historicoTramitacoes', - '/atasSessao', - '/presencaSessao', - '/resumoPropositurasAutor', - '/propositurasAnoAutorTipo', + '/default_index_html', + '/consultas/parlamentar/parlamentar_', + '/consultas/comissao/comissao_', + '/consultas/pauta_sessao/pauta_sessao_', + '/consultas/sessao_plenaria/', + '/relatorios_administrativos/relatorios_administrativos_index_html', + '/tramitacaoMaterias/tramitacaoMaterias', + '/tramitacaoMaterias/materia_mostrar_proc', + '/generico/materia_pesquisar_', + '/consultas/mesa_diretora/mesa_diretora_index_html', + '/consultas/mesa_diretora/parlamentar/parlamentar_', + '/generico/norma_juridica_pesquisar_', + '/consultas/norma_juridica/norma_juridica_mostrar_proc', + '/historicoTramitacoes/historicoTramitacoes', + '/atasSessao', + '/presencaSessao', + '/resumoPropositurasAutor', + '/propositurasAnoAutorTipo', ]}, 'lexml': { 'prefixs': [ diff --git a/sapl/urls.py b/sapl/urls.py index 91d3adeb6..38667b4e7 100644 --- a/sapl/urls.py +++ b/sapl/urls.py @@ -35,7 +35,8 @@ import sapl.relatorios.urls import sapl.sessao.urls urlpatterns = [ - url(r'^$', TemplateView.as_view(template_name='index.html'), name='sapl_index'), + url(r'^$', TemplateView.as_view(template_name='index.html'), + name='sapl_index'), url(r'^message$', TemplateView.as_view(template_name='base.html')), url(r'^admin/', include(admin.site.urls)), diff --git a/sapl/utils.py b/sapl/utils.py index 90581bd99..7c5e1697e 100644 --- a/sapl/utils.py +++ b/sapl/utils.py @@ -4,8 +4,6 @@ import os import re from datetime import date from functools import wraps -from subprocess import PIPE, call -from threading import Thread from unicodedata import normalize as unicodedata_normalize import django_filters @@ -27,7 +25,7 @@ from floppyforms import ClearableFileInput from reversion.admin import VersionAdmin from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row -from sapl.settings import BASE_DIR, PROJECT_DIR +from sapl.settings import BASE_DIR sapl_logger = logging.getLogger(BASE_DIR.name) @@ -541,10 +539,12 @@ def texto_upload_path(instance, filename, subpath='', pk_first=False): if isinstance(instance, (DocumentoAdministrativo, Proposicao)): prefix = 'private' - str_path = './sapl/%(prefix)s/%(model_name)s/%(subpath)s/%(pk)s/%(filename)s' + str_path = ('./sapl/%(prefix)s/%(model_name)s/' + '%(subpath)s/%(pk)s/%(filename)s') if pk_first: - str_path = './sapl/%(prefix)s/%(model_name)s/%(pk)s/%(subpath)s/%(filename)s' + str_path = ('./sapl/%(prefix)s/%(model_name)s/' + '%(pk)s/%(subpath)s/%(filename)s') path = str_path %\ { From 1ccec7c98f7e07522c421583be8748aaada67d9e Mon Sep 17 00:00:00 2001 From: Mariana Mendes Date: Fri, 18 Aug 2017 16:20:28 -0300 Subject: [PATCH 6/8] Corrige erro do import de Filiacao --- sapl/base/templatetags/common_tags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sapl/base/templatetags/common_tags.py b/sapl/base/templatetags/common_tags.py index 9f306d833..ca8e3c40e 100644 --- a/sapl/base/templatetags/common_tags.py +++ b/sapl/base/templatetags/common_tags.py @@ -4,7 +4,7 @@ from django import template from sapl.base.models import AppConfig from sapl.materia.models import DocumentoAcessorio, MateriaLegislativa from sapl.norma.models import NormaJuridica -from sapl.parlamentares import Filiacao +from sapl.parlamentares.models import Filiacao from sapl.utils import filiacao_data register = template.Library() From 1454742993f72087063fed7bbe4d08d086a3a44e Mon Sep 17 00:00:00 2001 From: Mariana Mendes Date: Fri, 18 Aug 2017 16:41:59 -0300 Subject: [PATCH 7/8] =?UTF-8?q?Corrige=20identa=C3=A7=C3=A3o=20de=20acordo?= =?UTF-8?q?=20com=20a=20PEP=208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/base/tests/teststub_urls.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sapl/base/tests/teststub_urls.py b/sapl/base/tests/teststub_urls.py index e81cbdb59..a0ca479e4 100644 --- a/sapl/base/tests/teststub_urls.py +++ b/sapl/base/tests/teststub_urls.py @@ -3,6 +3,7 @@ from django.views.generic.base import TemplateView from sapl.urls import urlpatterns as original_patterns -urlpatterns = original_patterns + patterns -('', url(r'^zzzz$', TemplateView.as_view( - template_name='index.html'), name='zzzz')) +urlpatterns = original_patterns + patterns('', url(r'^zzzz$', + TemplateView.as_view( + template_name='index.html'), + name='zzzz')) From 114d24c53beb15d3726a7c11c1f3c781972f19e7 Mon Sep 17 00:00:00 2001 From: Mariana Mendes Date: Mon, 21 Aug 2017 16:37:20 -0300 Subject: [PATCH 8/8] Fix #1410 --- sapl/api/serializers.py | 1 - sapl/api/views.py | 2 -- sapl/compilacao/views.py | 1 - sapl/materia/apps.py | 3 --- sapl/materia/signals.py | 2 -- sapl/materia/views.py | 2 +- sapl/protocoloadm/views.py | 7 ++++--- sapl/sessao/views.py | 2 -- 8 files changed, 5 insertions(+), 15 deletions(-) diff --git a/sapl/api/serializers.py b/sapl/api/serializers.py index 9853d8718..9219bf0e4 100644 --- a/sapl/api/serializers.py +++ b/sapl/api/serializers.py @@ -110,7 +110,6 @@ class SessaoPlenariaSerializer(serializers.ModelSerializer): def __init__(self, *args, **kwargs): super(SessaoPlenariaSerializer, self).__init__(args, kwargs) - casa = CasaLegislativa.objects.first() def get_pk_sessao(self, obj): return obj.pk diff --git a/sapl/api/views.py b/sapl/api/views.py index 2909d5a0a..9853e6af0 100644 --- a/sapl/api/views.py +++ b/sapl/api/views.py @@ -173,8 +173,6 @@ class AutoresProvaveisListView(ListAPIView): serializer_class = ChoiceSerializer def get_queryset(self): - queryset = ListAPIView.get_queryset(self) - params = {'content_type__isnull': False} tipo = '' diff --git a/sapl/compilacao/views.py b/sapl/compilacao/views.py index 142b7f46d..c0071cdd2 100644 --- a/sapl/compilacao/views.py +++ b/sapl/compilacao/views.py @@ -142,7 +142,6 @@ class IntegracaoTaView(TemplateView): implemente, ou passe `None` para as chaves que são fixas. """) - map_fields = self.map_fields ta_values = getattr(self, 'ta_values', {}) item = get_object_or_404(self.model, pk=kwargs['pk']) diff --git a/sapl/materia/apps.py b/sapl/materia/apps.py index ecc8d09de..3ac053d1b 100644 --- a/sapl/materia/apps.py +++ b/sapl/materia/apps.py @@ -6,6 +6,3 @@ class AppConfig(apps.AppConfig): name = 'sapl.materia' label = 'materia' verbose_name = _('Matéria') - - def ready(self): - from . import signals diff --git a/sapl/materia/signals.py b/sapl/materia/signals.py index e774b0191..b9afb6ee9 100644 --- a/sapl/materia/signals.py +++ b/sapl/materia/signals.py @@ -1,6 +1,4 @@ import django.dispatch -from django.db.models.signals import post_delete, post_save -from .models import DocumentoAcessorio, MateriaLegislativa tramitacao_signal = django.dispatch.Signal(providing_args=['post', 'request']) diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 9182a220f..9e9b63e45 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -1,4 +1,4 @@ -from datetime import date, datetime +from datetime import datetime from random import choice from string import ascii_letters, digits diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index fe2390a8c..4804849b9 100644 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -10,7 +10,7 @@ from django.db.models import Max, Q from django.http import Http404, HttpResponse, JsonResponse from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ -from django.views.generic import CreateView, DetailView, ListView +from django.views.generic import CreateView, ListView from django.views.generic.base import TemplateView from django_filters.views import FilterView @@ -29,7 +29,7 @@ from .forms import (AnularProcoloAdmForm, DocumentoAcessorioAdministrativoForm, ProtocoloFilterSet, ProtocoloMateriaForm, TramitacaoAdmEditForm, TramitacaoAdmForm) from .models import (DocumentoAcessorioAdministrativo, DocumentoAdministrativo, - Protocolo, StatusTramitacaoAdministrativo, + StatusTramitacaoAdministrativo, TipoDocumentoAdministrativo, TramitacaoAdministrativo) TipoDocumentoAdministrativoCrud = CrudAux.build( @@ -470,7 +470,8 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView): autor_parlamentar = Autor.objects.filter( content_type=model_parlamentar, object_id__in=lista_parlamentares) - lista_comissoes = Comissao.objects.filter(Q(data_extincao__isnull=True) | Q( + lista_comissoes = Comissao.objects.filter(Q( + data_extincao__isnull=True) | Q( data_extincao__gt=date.today())).values_list('id', flat=True) model_comissao = ContentType.objects.get_for_model(Comissao) autor_comissoes = Autor.objects.filter( diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index e29a9ee5e..410f62ac7 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -728,8 +728,6 @@ class PresencaOrdemDiaView(FormMixin, PresencaMixin, DetailView): self.object = self.get_object() form = self.get_form() - pk = kwargs['pk'] - if form.is_valid(): # Pegar os presentes salvos no banco presentes_banco = PresencaOrdemDia.objects.filter(