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}) # =====================================================================