mirror of https://github.com/interlegis/sapl.git
Marcio Mazza
8 years ago
18 changed files with 904 additions and 11 deletions
@ -0,0 +1,11 @@ |
|||
from django.core.management.base import BaseCommand |
|||
|
|||
from sapl.legacy.migracao_documentos import migrar_documentos |
|||
|
|||
|
|||
class Command(BaseCommand): |
|||
|
|||
help = u'Migração documentos do SAPL 2.5 para o SAPL 3.1' |
|||
|
|||
def handle(self, *args, **options): |
|||
migrar_documentos() |
@ -0,0 +1,188 @@ |
|||
import mimetypes |
|||
import os |
|||
import re |
|||
|
|||
import magic |
|||
|
|||
from sapl.base.models import CasaLegislativa |
|||
from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa, |
|||
Proposicao) |
|||
from sapl.norma.models import NormaJuridica |
|||
from sapl.parlamentares.models import Parlamentar |
|||
from sapl.protocoloadm.models import DocumentoAdministrativo |
|||
from sapl.sessao.models import SessaoPlenaria |
|||
from sapl.settings import MEDIA_ROOT |
|||
|
|||
# MIGRAÇÃO DE DOCUMENTOS ################################################### |
|||
EXTENSOES = { |
|||
'application/msword': '.doc', |
|||
'application/pdf': '.pdf', |
|||
'application/vnd.oasis.opendocument.text': '.odt', |
|||
'application/vnd.openxmlformats-officedocument.wordprocessingml.document': '.docx', # noqa |
|||
'application/xml': '.xml', |
|||
'application/zip': '.zip', |
|||
'image/jpeg': '.jpeg', |
|||
'image/png': '.png', |
|||
'text/html': '.html', |
|||
'text/rtf': '.rtf', |
|||
'text/x-python': '.py', |
|||
|
|||
# sem extensao |
|||
'application/octet-stream': '', # binário |
|||
'inode/x-empty': '', # vazio |
|||
} |
|||
|
|||
DOCS = { |
|||
CasaLegislativa: [( |
|||
'logotipo', |
|||
'props_sapl/logo_casa.gif', |
|||
'casa/logotipo/logo_casa.gif')], |
|||
Parlamentar: [( |
|||
'fotografia', |
|||
'parlamentar/fotos/{}_foto_parlamentar', |
|||
'parlamentar/{0}/{0}_foto_parlamentar{1}')], |
|||
MateriaLegislativa: [( |
|||
'texto_original', |
|||
'materia/{}_texto_integral', |
|||
'materialegislativa/{0}/{0}_texto_integral{1}')], |
|||
DocumentoAcessorio: [( |
|||
'arquivo', |
|||
'materia/{}', |
|||
'documentoacessorio/{0}/{0}{1}')], |
|||
NormaJuridica: [( |
|||
'texto_original', |
|||
'norma_juridica/{}_texto_integral', |
|||
'normajuridica/{0}/{0}_texto_integral{1}')], |
|||
SessaoPlenaria: [ |
|||
('upload_ata', |
|||
'ata_sessao/{}_ata_sessao', |
|||
'sessaoplenaria/{0}/ata/{0}_ata_sessao{1}'), |
|||
('upload_anexo', |
|||
'anexo_sessao/{}_texto_anexado', |
|||
'sessaoplenaria/{0}/anexo/{0}_texto_anexado{1}') |
|||
], |
|||
Proposicao: [( |
|||
'texto_original', |
|||
'proposicao/{}', |
|||
'proposicao/{0}/{0}{1}')], |
|||
DocumentoAdministrativo: [( |
|||
'texto_integral', |
|||
'administrativo/{}_texto_integral', |
|||
'documentoadministrativo/{0}/{0}_texto_integral{1}')], |
|||
} |
|||
|
|||
DOCS = {tipo: [(campo, |
|||
os.path.join('sapl_documentos', origem), |
|||
os.path.join('sapl', destino)) |
|||
for campo, origem, destino in campos] |
|||
for tipo, campos in DOCS.items()} |
|||
|
|||
|
|||
def em_media(caminho): |
|||
return os.path.join(MEDIA_ROOT, caminho) |
|||
|
|||
|
|||
def mover_documento(origem, destino): |
|||
origem, destino = [em_media(c) if not os.path.isabs(c) else c |
|||
for c in (origem, destino)] |
|||
os.makedirs(os.path.dirname(destino), exist_ok=True) |
|||
os.rename(origem, destino) |
|||
|
|||
|
|||
def get_casa_legislativa(): |
|||
casa = CasaLegislativa.objects.first() |
|||
if not casa: |
|||
casa = CasaLegislativa.objects.create(**{k: 'PREENCHER...' for k in [ |
|||
'codigo', 'nome', 'sigla', 'endereco', 'cep', 'municipio', 'uf', |
|||
]}) |
|||
return casa |
|||
|
|||
|
|||
def migrar_docs_logo(): |
|||
print('#### Migrando logotipo da casa ####') |
|||
[(_, origem, destino)] = DOCS[CasaLegislativa] |
|||
props_sapl = os.path.dirname(origem) |
|||
# a pasta props_sapl deve conter apenas o origem e metadatas! |
|||
assert set(os.listdir(em_media(props_sapl))) < { |
|||
'logo_casa.gif', '.metadata', 'logo_casa.gif.metadata'} |
|||
mover_documento(origem, destino) |
|||
casa = get_casa_legislativa() |
|||
casa.logotipo = destino |
|||
casa.save() |
|||
|
|||
|
|||
def get_extensao(caminho): |
|||
mime = magic.from_file(caminho, mime=True) |
|||
try: |
|||
return EXTENSOES[mime] |
|||
except KeyError as e: |
|||
raise Exception('\n'.join([ |
|||
'Extensão não conhecida para o arquivo:', |
|||
caminho, |
|||
'E mimetype:', |
|||
mime, |
|||
' Algumas possibilidades são:', ] + |
|||
[" '{}': '{}',".format(mime, ext) |
|||
for ext in mimetypes.guess_all_extensions(mime)] + |
|||
['Atualize o código do dicionário EXTENSOES!'] |
|||
)) from e |
|||
|
|||
|
|||
def migrar_docs_por_ids(tipo): |
|||
for campo, base_origem, base_destino in DOCS[tipo]: |
|||
print('#### Migrando {} de {} ####'.format(campo, tipo.__name__)) |
|||
|
|||
dir_origem, nome_origem = os.path.split(em_media(base_origem)) |
|||
pat = re.compile('^{}$'.format(nome_origem.format('(\d+)'))) |
|||
|
|||
if not os.path.isdir(dir_origem): |
|||
print(' >>> O diretório {} não existe! Abortado.'.format( |
|||
dir_origem)) |
|||
continue |
|||
|
|||
for arq in os.listdir(dir_origem): |
|||
match = pat.match(arq) |
|||
if match: |
|||
origem = os.path.join(dir_origem, match.group(0)) |
|||
id = match.group(1) |
|||
extensao = get_extensao(origem) |
|||
destino = base_destino.format(id, extensao) |
|||
mover_documento(origem, destino) |
|||
|
|||
# associa documento ao objeto |
|||
try: |
|||
obj = tipo.objects.get(pk=id) |
|||
setattr(obj, campo, destino) |
|||
obj.save() |
|||
except tipo.DoesNotExist: |
|||
msg = ' {} (pk={}) não encontrado para documento em [{}]' |
|||
print(msg.format( |
|||
tipo.__name__, id, destino)) |
|||
|
|||
|
|||
def migrar_documentos(): |
|||
# aqui supomos que uma pasta chamada sapl_documentos está em MEDIA_ROOT |
|||
# com o conteúdo da pasta de mesmo nome do zope |
|||
# Os arquivos da pasta serão movidos para a nova estrutura e a pasta será |
|||
# apagada |
|||
migrar_docs_logo() |
|||
for tipo in [ |
|||
Parlamentar, |
|||
MateriaLegislativa, |
|||
DocumentoAcessorio, |
|||
NormaJuridica, |
|||
SessaoPlenaria, |
|||
Proposicao, |
|||
DocumentoAdministrativo, |
|||
]: |
|||
migrar_docs_por_ids(tipo) |
|||
|
|||
sobrando = [os.path.join(dir, file) |
|||
for (dir, _, files) in os.walk(em_media('sapl_documentos')) |
|||
for file in files] |
|||
if sobrando: |
|||
print('\n#### Encerrado ####\n\n' |
|||
'{} documentos sobraram sem ser migrados!!!'.format( |
|||
len(sobrando))) |
|||
for doc in sobrando: |
|||
print(' {}'. format(doc)) |
@ -0,0 +1,11 @@ |
|||
estilo.css:DTML Method |
|||
indicacao.xsl:File |
|||
mocao.xsl:File |
|||
mocao2.xsl:File |
|||
parecer.xsl:File |
|||
pedido.xsl:File |
|||
pedido2.xsl:File |
|||
pl.xsl:File |
|||
pl2.xsl:File |
|||
requerimento.xsl:File |
|||
requerimento2.xsl:File |
@ -0,0 +1,95 @@ |
|||
body { |
|||
font-family: Times; |
|||
text-align: justify; |
|||
font-size: 12 pt; |
|||
margin: 5px 1cm 20px 2cm; |
|||
} |
|||
|
|||
p, |
|||
.p{ |
|||
font-family: Times; |
|||
text-align: justify; |
|||
font-size: 12pt; |
|||
text-indent: 1.5cm; |
|||
margin: 40px 0 20px 0; |
|||
} |
|||
|
|||
.pequeno { |
|||
font-family: Times; |
|||
text-align: left; |
|||
font-size: 13pt; |
|||
margin: 0px 0 0px 0; |
|||
} |
|||
|
|||
.cabecalho { |
|||
font-family: Times; |
|||
font-weight:bold; |
|||
text-align: left; |
|||
font-size: 15pt; |
|||
margin: 10px 0 0px 0; |
|||
} |
|||
|
|||
.texto { |
|||
font-family: Times; |
|||
text-align: justify; |
|||
font-size: 12pt; |
|||
margin: 0px 0px 0px 0px; |
|||
} |
|||
|
|||
.data { |
|||
text-align: right; |
|||
} |
|||
|
|||
.autor { |
|||
text-align: center; |
|||
} |
|||
|
|||
.center { |
|||
text-align: center; |
|||
} |
|||
|
|||
.semrecuo { |
|||
text-indent: 0; |
|||
} |
|||
|
|||
.ementa { |
|||
text-align: justify; |
|||
margin-left: 50%; |
|||
text-indent: 0; |
|||
} |
|||
|
|||
.titulos1 { |
|||
text-align: center; |
|||
margin: 10px 0 0px 0; |
|||
} |
|||
|
|||
.titulos2 { |
|||
text-align: center; |
|||
margin: 0px 0 0px 0; |
|||
} |
|||
|
|||
p.artigo { |
|||
text-align: justify; |
|||
text-indent: 1cm; |
|||
margin: 10px 0 0px 0; |
|||
} |
|||
|
|||
|
|||
#imagem { |
|||
float:left; |
|||
} |
|||
|
|||
#autores |
|||
{ |
|||
-moz-column-count:3; /* Firefox */ |
|||
-webkit-column-count:3; /* Safari and Chrome */ |
|||
width:50px; |
|||
|
|||
} |
|||
|
|||
#col1 { width: 33%; float: left; center: 10px; } |
|||
#col2 { width: 33%; float: left; center: 10px; } |
|||
#col3 { width: 33%; float: left; center: 10px; } |
|||
|
|||
|
|||
|
@ -0,0 +1,51 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" |
|||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|||
xmlns:ind="/XSD/Indicacao"> |
|||
|
|||
|
|||
<xsl:template match="/"> |
|||
<html> |
|||
<head> |
|||
<link href="/XSLT/HTML/estilo.css" rel="stylesheet" type="text/css"/> |
|||
</head> |
|||
<body> |
|||
|
|||
|
|||
<xsl:apply-templates /> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:ementa_text"> |
|||
<div> |
|||
<div id="imagem"> |
|||
<img border="0" src="http://sapl.agudo.rs.leg.br/generico/sapl_documentos/props_sapl/logo_casa"/><br></br> |
|||
</div><br></br> |
|||
<p class ="cabecalho">Câmara Municipal de Agudo</p> |
|||
<p class ="pequeno"> Estado do Rio Grande do Sul <br></br><br></br><br></br></p> |
|||
</div> |
|||
<p class="autor"><strong><xsl:value-of select="text()" /></strong></p> |
|||
|
|||
</xsl:template> |
|||
<xsl:template match="ind:autoria_text"> |
|||
<p class="semrecuo"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:destinatario_text"> |
|||
<p class="semrecuo"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:indicacao_text"> |
|||
<p><xsl:value-of select="text()" /></p> |
|||
|
|||
</xsl:template> |
|||
<xsl:template match="ind:data_text"> |
|||
<p><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:autor_text"> |
|||
<p class="autor"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
</xsl:stylesheet> |
@ -0,0 +1,41 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" |
|||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|||
xmlns:moc="/XSD/Mocao"> |
|||
|
|||
<xsl:template match="/"> |
|||
<html> |
|||
<body> |
|||
<table> |
|||
<xsl:apply-templates /> |
|||
</table> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="moc:ementa_text"> |
|||
<tr> |
|||
<td width="50%"></td> |
|||
<td width="50%" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="moc:mocao_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="moc:data_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="moc:autor_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
</xsl:stylesheet> |
@ -0,0 +1,45 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" |
|||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|||
xmlns:ind="/XSD/Mocao"> |
|||
|
|||
|
|||
<xsl:template match="/"> |
|||
<html> |
|||
<head> |
|||
<link href="/sapl/XSLT/HTML/estilo.css" rel="stylesheet" type="text/css"/> |
|||
</head> |
|||
<body> |
|||
<div> |
|||
<div id="imagem"> |
|||
<img border="0" src="/sapl/sapl_documentos/props_sapl/logo_casa"/> |
|||
</div><br></br> |
|||
<p class ="cabecalho">Câmara Municipal de Agudo</p> |
|||
<p class ="pequeno">Estado do Rio Grande do Sul<br></br><br></br><br></br> </p> |
|||
</div> |
|||
<xsl:apply-templates /> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:ementa_text"> |
|||
<p class ="autor"><strong><xsl:value-of select="text()" /></strong></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:mocao_text"> |
|||
<p class ="texto"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:justificativa_text"> |
|||
<p class ="texto"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:data_text"> |
|||
<p><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:autor_text"> |
|||
<p class="autor"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
</xsl:stylesheet> |
@ -0,0 +1,41 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" |
|||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|||
xmlns:par="/XSD/Parecer"> |
|||
|
|||
<xsl:template match="/"> |
|||
<html> |
|||
<body> |
|||
<table> |
|||
<xsl:apply-templates /> |
|||
</table> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="par:ementa_text"> |
|||
<tr> |
|||
<td width="50%"></td> |
|||
<td width="50%" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="par:parecer_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="par:data_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="par:autor_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
</xsl:stylesheet> |
@ -0,0 +1,47 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" |
|||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|||
xmlns:req="/XSD/Requerimento"> |
|||
|
|||
<xsl:template match="/"> |
|||
<html> |
|||
<body> |
|||
<table> |
|||
<xsl:apply-templates /> |
|||
</table> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:ementa_text"> |
|||
<tr> |
|||
<td width="50%"></td> |
|||
<td width="50%" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:requisicao_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:justificativa_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:data_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:autor_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
</xsl:stylesheet> |
@ -0,0 +1,53 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" |
|||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|||
xmlns:ind="/XSD/Pedido"> |
|||
|
|||
|
|||
<xsl:template match="/"> |
|||
<html> |
|||
<head> |
|||
<link href="/sapl/XSLT/HTML/estilo.css" rel="stylesheet" type="text/css"/> |
|||
</head> |
|||
<body> |
|||
<div> |
|||
<div id="imagem"> |
|||
<img border="0" src="/sapl/sapl_documentos/props_sapl/logo_casa"/> |
|||
</div><br></br> |
|||
<p class ="cabecalho">Câmara Municipal de Agudo</p> |
|||
<p class ="pequeno">Estado do Rio Grande do Sul<br></br><br></br><br></br> </p> |
|||
</div> |
|||
<xsl:apply-templates /> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:ementa_text"> |
|||
<p class ="autor"><strong><xsl:value-of select="text()" /></strong></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:autoria_text"> |
|||
<p class="semrecuo"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:destinatario_text"> |
|||
<p class="semrecuo"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:solicitacao_text"> |
|||
<p class="texto"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:alinea_text"> |
|||
<p class="texto"><xsl:value-of select="concat(../@Rotulo,' ',text())"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:data_text"> |
|||
<p><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:autor_text"> |
|||
<p class="autor"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
</xsl:stylesheet> |
@ -0,0 +1,105 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pl="/XSD/ProjLei"> |
|||
<xsl:output encoding="ISO-8859-1"/> |
|||
<xsl:template match="/pl:pl"> |
|||
<html> |
|||
<head> |
|||
<title> |
|||
<xsl:value-of select="@id"/> |
|||
</title> |
|||
<style type="text/css"> |
|||
body {margin-left: 2cm; margin-right: 1cm;} |
|||
p {font-family: Times; font-size: 12pt;} |
|||
p.epigrafe {text-align: center; text-transform: uppercase;} |
|||
p.ementa {text-align: justify; margin-left: 50%;} |
|||
p.preambulo {text-transform: uppercase; text-indent: 1cm;} |
|||
p.artigo {text-align: justify; text-indent: 1cm;} |
|||
p.paragrafo {text-align: justify; text-indent: 1cm;} |
|||
p.inciso {text-align: justify; text-indent: 1cm;} |
|||
p.alinea {text-align: justify; text-indent: 1cm;} |
|||
p.item {text-align: justify; text-indent: 1cm;} |
|||
p.justificativa {text-align: justify; text-indent: 1cm;} |
|||
p.mensagem {text-align: justify;} |
|||
p.data_apresentacao {text-align: justify; text-indent: 1cm;} |
|||
p.autor {text-align: center; text-transform: uppercase;} |
|||
h3.cab_secao {text-align: center; font-size: 12pt;} |
|||
</style> |
|||
</head> |
|||
<body> |
|||
<xsl:apply-templates/> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
<xsl:template match="pl:proposicao"> |
|||
<hr/> |
|||
<h3 class="cab_secao">PROPOSIÇÃO</h3> |
|||
<hr/> |
|||
<xsl:apply-templates select="./*"/> |
|||
</xsl:template> |
|||
<xsl:template match="pl:epigrafe"> |
|||
<p class="epigrafe"> |
|||
<xsl:value-of select="pl:epigrafe_text"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:ementa"> |
|||
<p class="ementa"> |
|||
<xsl:value-of select="pl:ementa_text"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:preambulo"> |
|||
<p class="preambulo"> |
|||
<xsl:value-of select="pl:preambulo_text"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:artigo_text"> |
|||
<p class="artigo"> |
|||
<xsl:value-of select="concat(../@Rotulo,' ',text())"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:paragrafo_text"> |
|||
<p class="paragrafo"> |
|||
<xsl:value-of select="concat(../@Rotulo,' ',text())"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:inciso_text"> |
|||
<p class="inciso"> |
|||
<xsl:value-of select="concat(../@Rotulo,' - ',text())"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:alinea_text"> |
|||
<p class="alinea"> |
|||
<xsl:value-of select="concat(../@Rotulo,' ',text())"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:item_text"> |
|||
<p class="item"> |
|||
<xsl:value-of select="concat(../@Rotulo,' ',text())"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:data_apresentacao_text"> |
|||
<p class="data_apresentacao"> |
|||
<xsl:value-of select="text()"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:autor_text"> |
|||
<p class="autor"> |
|||
<xsl:value-of select="text()"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:justificativa"> |
|||
<hr/> |
|||
<h3 class="cab_secao">JUSTIFICATIVA</h3> |
|||
<hr/> |
|||
<p class="justificativa"> |
|||
<xsl:value-of select="pl:justificativa_text"/> |
|||
</p> |
|||
</xsl:template> |
|||
<xsl:template match="pl:mensagem"> |
|||
<hr/> |
|||
<h3 class="cab_secao">MENSAGEM</h3> |
|||
<hr/> |
|||
<p class="mensagem"> |
|||
<xsl:value-of select="pl:mensagem_text"/> |
|||
</p> |
|||
</xsl:template> |
|||
</xsl:stylesheet> |
@ -0,0 +1,100 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" |
|||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|||
xmlns:ind="/XSD/ProjLei"> |
|||
|
|||
|
|||
<xsl:template match="/"> |
|||
<html> |
|||
<head> |
|||
<link href="/sapl/XSLT/HTML/estilo.css" rel="stylesheet" type="text/css"/> |
|||
</head> |
|||
<body> |
|||
<div> |
|||
<div id="imagem"> |
|||
<img border="0" src="/sapl/sapl_documentos/props_sapl/logo_casa"/> |
|||
</div><br></br> |
|||
<p class ="cabecalho">Câmara Municipal de Agudo</p> |
|||
<p class ="pequeno">Estado do Rio Grande do Sul<br></br><br></br><br></br> </p> |
|||
</div> |
|||
|
|||
<xsl:apply-templates /> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:epigrafe_text"> |
|||
<p class ="autor"><strong><xsl:value-of select="text()" /></strong></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:ementa_text"> |
|||
<p class ="ementa"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:preambulo_text"> |
|||
<p class ="artigo"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:parte_text"> |
|||
<p class ="titulos1"><xsl:value-of select="concat(../@Rotulo,' ')"/></p> |
|||
<p class ="titulos2"><xsl:value-of select="text()"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:livro_text"> |
|||
<p class ="titulos1"><xsl:value-of select="concat(../@Rotulo,' ')"/></p> |
|||
<p class ="titulos2"><xsl:value-of select="text()"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:titulo_text"> |
|||
<p class ="titulos1"><xsl:value-of select="concat(../@Rotulo,' ')"/></p> |
|||
<p class ="titulos2"><xsl:value-of select="text()"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:capitulo_text"> |
|||
<p class ="titulos1"><xsl:value-of select="concat(../@Rotulo,' ')"/></p> |
|||
<p class ="titulos2"><xsl:value-of select="text()"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:secao_text"> |
|||
<p class ="titulos1"><xsl:value-of select="concat(../@Rotulo,' ')"/></p> |
|||
<p class ="titulos2"><xsl:value-of select="text()"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:subsecao_text"> |
|||
<p class ="titulos1"><xsl:value-of select="concat(../@Rotulo,' ')"/></p> |
|||
<p class ="titulos2"><xsl:value-of select="text()"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:artigo_text"> |
|||
<p class="artigo"><xsl:value-of select="concat(../@Rotulo,' ',text())"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:paragrafo_text"> |
|||
<p class="artigo"><xsl:value-of select="concat(../@Rotulo,' ',text())"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:inciso_text"> |
|||
<p class="artigo"><xsl:value-of select="concat(../@Rotulo,' ',text())"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:alinea_text"> |
|||
<p class="artigo"><xsl:value-of select="concat(../@Rotulo,' ',text())"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:item_text"> |
|||
<p class="artigo"><xsl:value-of select="concat(../@Rotulo,' ',text())"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:data_apresentacao_text"> |
|||
<p class="artigo"><xsl:value-of select="concat(../@Rotulo,' ',text())"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:autor_text"> |
|||
<p class="artigo"><xsl:value-of select="concat(../@Rotulo,' ',text())"/></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:justificativa_text"> |
|||
<p class="artigo"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
</xsl:stylesheet> |
@ -0,0 +1,52 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" |
|||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|||
xmlns:req="/XSD/Requerimento"> |
|||
|
|||
<xsl:template match="/"> |
|||
<html> |
|||
<body> |
|||
<table> |
|||
<xsl:apply-templates /> |
|||
</table> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
<xsl:template match="req:destinatario_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:ementa_text"> |
|||
<tr> |
|||
<td width="50%"></td> |
|||
<td width="50%" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:requisicao_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:justificativa_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:data_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="req:autor_text"> |
|||
<tr> |
|||
<td colspan="2" align="left"><xsl:value-of select="text()" /></td> |
|||
</tr> |
|||
</xsl:template> |
|||
|
|||
</xsl:stylesheet> |
@ -0,0 +1,57 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
<xsl:stylesheet version="1.0" |
|||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|||
xmlns:ind="/XSD/Requerimento"> |
|||
|
|||
|
|||
<xsl:template match="/"> |
|||
<html> |
|||
<head> |
|||
<link href="/sapl/XSLT/HTML/estilo.css" rel="stylesheet" type="text/css"/> |
|||
</head> |
|||
<body> |
|||
<div> |
|||
<div id="imagem"> |
|||
<img border="0" src="/sapl/sapl_documentos/props_sapl/logo_casa"/> |
|||
</div><br></br> |
|||
<p class ="cabecalho">Câmara Municipal de Agudo</p> |
|||
<p class ="pequeno">Estado do Rio Grande do Sul<br></br><br></br><br></br> </p> |
|||
</div> |
|||
<xsl:apply-templates /> |
|||
</body> |
|||
</html> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:ementa_text"> |
|||
<p class="autor"><strong><xsl:value-of select="text()" /></strong></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:formatratamento_text"> |
|||
<p class="semrecuo"><xsl:value-of select="text()"/> </p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:parlamentar_text"> |
|||
<p class="semrecuo"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:cargofuncao_text"> |
|||
<p class="semrecuo"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:requisicao_text"> |
|||
<p class="texto"><xsl:value-of select="text()" /></p> |
|||
|
|||
</xsl:template> |
|||
<xsl:template match="ind:justificativa_text"> |
|||
<p class="texto"><xsl:value-of select="text()" /></p> |
|||
|
|||
</xsl:template> |
|||
<xsl:template match="ind:data_text"> |
|||
<p><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
<xsl:template match="ind:autor_text"> |
|||
<p class="autor"><xsl:value-of select="text()" /></p> |
|||
</xsl:template> |
|||
|
|||
</xsl:stylesheet> |
Loading…
Reference in new issue