Atendimento ao Usuário e Troubleshooting
O atendimento aos usuários de Câmaras Municipais e Assembleias Legislativas é feito através do Sistema de Chamados "osTicket".
O primeiro atendimento é feito pela equipe da SEAPROD/COINTER. A equipe Portal Modelo/SPDT/COTIN faz o atendimento de segundo nível, quando necessário, com o apoio da equipe da SEITI/COTIN.
Verifique o grupo "COTIN", não "Abertos".
Troubleshooting / Problemas mais frequentes
Conseguir a senha de administrador em um Portal
Este não é um problema relatado pelos usuários e sim, um passo frequentemente necessário para atendimento de outros problemas. A senha pode ser conseguida diretamente no rancher ou usando rancher-cli.
Nos dois casos, é necessário estar na rede cabeada do Senado ou usando VPN.
Passos pelo rancher (nau.interlegis.leg.br
):
- A partir da tela inicial do rancher, clique no cluster
portalmodelo
e depois emapps
(no menu à esquerda) einstalled apps
. - Utilize o campo de filtro (acima, à direita) para achar o município desejado.
- Clique nos "3 pontinhos" e em
View YAML
. - Procure por "notes:"
Passos pelo rancher-cli:
- Instalar o rancher-cli. O mais fácil é através do homebrew (sim, mesmo em linux):
brew install rancher-cli
(no windows, use Windows Linux Subsystem, WLS) - Instalar o kubectl. Também dá pra ser pelo homebrew:
brew install kubectl
- Crie uma chave de API na interface do Rancher/Nau.
- Faça login no rancher-cli, usando o token Bearer gerado acima:
rancher login https://nau.interlegis.leg.br -t token-cs5cw:exemploaasadasdasdasdasdasdasfamg
- Execute o seguinte comando:
rancher kubectl get app -o yaml -n saojoaobatista-ma | grep -iA10 "notes"
(o nome do municipio deve ser informado em minúsculas, sem acentos, sem espaços, seguido de "-" e a sigla da unidade da federação)
Lentidão no Portal
Com frequência, é problema em um das bibliotecas Javascript configuradas no Portal. Durante a resolução do problema, costuma-se verificar algumas configurações que podem estar erradas.
Passos:
- Acessar o portal com problema com a senha de admin. Veja acima como conseguir a senha de administrador do Portal em questão.
- Colocar
/manage
no final da URL do portal para acessar a área de gerenciamento do Zope. - Buscar pelo
portal_javascripts
- Buscar pela URL
https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js
ouhttp://htmlshiv.googlecode.com/svn/trunk/html5.js
- Apagar e colocar a URL
https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js
- Página
/@@discussion-settings
: verifique se o comentário está habilitado, se sim, desmarcar. - Página
/@@mail-controlpanel
: verifique as configurações de SMTP do portal. Confira os seguintes campos:- Servidor SMTP:
smtp.interlegis.leg.br
- Porta SMTP: 25
- Usuário ESMTP: (em branco)
- Senha ESMTP: (em branco)
- Nome do 'Remetente' do site: deve estar preenchido.
- Servidor SMTP:
(É recomendável o botão "salvar e enviar email-teste" neste formulário, para validar as informações)
Falha ao fazer download de arquivos do portal
Em geral, arquivos PDF anexados em posts ou reclamações junto à Ouvidoria.
O erro é parecido com:
Traceback (innermost last):
Module ZPublisher.Publish, line 138, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 48, in call_object
Module Products.CMFCore.FSPythonScript, line 127, in __call__
Module Shared.DC.Scripts.Bindings, line 322, in __call__
Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
Module Products.PythonScripts.PythonScript, line 344, in _exec
Module script, line 2, in at_download
-
- Line 2
AttributeError: getWrappedField
O motivo do erro é a instalação de alguns plugins no portal. O plugin exato é algo a ver com attachment alguma coisa.
A solução mais correta é desfazer as instalações feitas pelo usuário. Note que os arquivos cujo upload foram feitos enquanto os plugins estavam instalados não tem correção. É necessário apagar e fazer novamente o upload.
Exemplo de chamado: https://suporte.interlegis.leg.br/scp/tickets.php?id=55624
Falha POSKeyError
Sintoma: ao cadastrar notícias (ou outra coisa), aparece tela toda branca com a mensagem parecida com:
POSKeyError('\x00\x00\x00\x00\x00\x00\x19\xd1',)(Além disso, o seguinte erro ocorreu ao tentar renderizar a mensagem de erro padrão. Consulte o log de eventos para obter detalhes completos: 0x19d1)
Correção:
Sem correção específica. Parece ser um corrompimento da base de dados. Única solução possível atualmente é restaurar o backup. É bom perguntar ao usuário se ele sabe quando começou a ocorrer, para conseguir um backup com data próxima.
Falha "METALError" ao abrir qualquer pasta
Ao clicar numa pasta contendo itens, aparece um erro parecido com este abaixo:
Warning: Compilation failed
Warning: zope.tal.taldefs.METALError: fill-slot must be within a use-macro, at line 53, column 9
PTRuntimeError: ['Compilation failed', 'zope.tal.taldefs.METALError: fill-slot must be within a use-macro, at line 53, column 9']
O motivo é que tem algum item na pasta fora do padrão (de outro tipo?) e o modo de exibição selecionado não suporta. Para resolver, pegue a url abaixo, ajuste para a câmara e pasta com problema e cole no browser:
https://www.matelandia.pr.leg.br/institucional/noticias/selectViewTemplate?templateId=folder_summary_view
Esta URL é uma URL de mudança de tipo de exibição. Pode ser conseguida em outra pasta, que esteja funcionando. No modo de edição, vá na aba "Visão" e depois "Exibição". Aparecerá um menu suspenso com vários tipos de exibição de pasta. Clique com o botão direito em algum dos tipos e copie o endereço do link. Se o primeiro tipo de exibição não resolver, tente outros até dar certo.
A url acima corresponde ao tipo de exibição "Visão Sumária".
Exemplo de chamado: 766058
Curiosamente, no exemplo acima, depois que achei um tipo de exibição que funcionasse, todos os outros tipos passaram a funcionar....
Erro ValueError: term values must be unique
em páginas da Ouvidoria
Sintoma: o seguinte erro aparece em todas as páginas de itens da ouvidoria (não na pasta):
...
Module Zope2.App.schema, line 33, in get
Module interlegis.portalmodelo.ombudsman.vocabulary, line 56, in AreasVocabulary
Module zope.schema.vocabulary, line 65, in __init__
ValueError: term values must be unique: 'ouvidoria'
Em geral, o usuário diz que acrescentou um novo usuário na Ouvidoria.
Isto ocorre porque o usuário não cadastrou o novo usuário com um id único. O campo do id é "Área".
Correção:
- Logue como admin e clique em "Ouvidoria" (nos links)
- Aperte em Edição
- A tela de edição da Ouvidoria é bem diferente, pois é um produto. Procure pela parte "Áreas".
- Verifique se o campo "Área" se repete nos usuários. Se estiver, mude para um valor único. Veja os exemplos abaixo:
Com falha:
Área | Responsável | |
---|---|---|
ouvidoria | João | joao@gmail.com |
ouvidoria | Maria | maria@gmail.com |
Corrigido:
Área | Responsável | |
---|---|---|
ouvidoria1 | João | joao@gmail.com |
ouvidoria2 | Maria | maria@gmail.com |
Falha em sites colocados como iFrame que funcionam fora de iFrames
Algumas câmaras colocam sites de transparência (entre outros) em iFrames, da mesma forma que fazem com o SAPL.
Alguns poucos sites dão erro nesta situação, apesar de funcionarem normalmente fora de iFrame.
Um exemplo é o seguinte site:
https://scpi-colnizamt.i7sgp.app.br/transparenciacamara/?AcessoIndividual=LnkTransf
A explicação é que atualmente os browsers bloqueiam o salvamento e envio de cookies em iFrames, a não ser que o site do iFrame explicitamente permita.
Explicação em https://medium.com/trabe/cookies-and-iframes-f7cca58b3b9e
A solução é pedir ao desenvolvedor do site que dê suporte a isso, como especificado no artigo.
Item de CSS "Notícias" não aparece
Esta reclamação é sobre o campo "Clase CSS" no cover (capa).
Resolução:
- Estando logando como admin, entre em configuração do site, cover (equivalente à URL "/@@cover-settings")
- No campo "estilos", acrescente "Noticias|tile-noticias".
- Para testar, vá na capa (página inicial).
- Aperte "layout".
- Em um tile de coleção, aperte a engrenagem (canto superior direito do tile).
- No campo "Clase CSS" (sic), veja se aparece "Notícias".
- Detalhe: o campo "tamanho da imagem" deve ser 768x768. Os outros tamanhos aparecerem quebrados para esta classe CSS.
- Lembre-se de salvar.
Demandas Frequentes
Cópia de Dados para Um Novo Portal
Em alguns raros casos em que um portal tem dados corrompidos, pode ser necessário copiar os dados do mesmo para um novo portal. Um exemplo é a falha POSKeyError.
O procedimento é complexo e demorado. Apenas o faça se estritamente necessário.
Alguns dos passos são feitos pela SEIT, normalmente na figura do Sussumu
Todos os passos são feitos usando o usuário
admin
. Veja aqui como obter a senha.
1. Pedir a SEIT a Preparação do Novo Portal
Antes de começar o procedimento, peça à SEIT/Sussumu para preparar um novo portal para ser destino da exportação. Só comece os próximos passos quando este novo portal estiver disponível. Isto porque os arquivos exportados nos próximos passos são perdidos em caso de reboot do container, é recomendável fazer tudo de uma vez.
2. Itens Avulsos na Raiz do Portal Com Problemas
Itens avulsos, isto é, que não são pastas, devem ser exportados e importados de uma vez só. Para isso, é necessário agrupar estes itens em uma pasta apenas para cópia.
Passos:
a. Entre na tela de conteúdo de pasta da raiz do portal. Exemplo: https://pm3demo.interlegis.leg.br/folder_contents
.
b. Crie uma pasta para este conteúdo. Use o botão Adicionar Item -> Pasta
do interface. Exemplo de nome: raiz
.
c. Selecione os itens.
d. Aperte o botão recortar
.
e. Entre no diretório recém-criado.
f. Aperte o botão `colar´.
3. Fazer a Exportação de Dados
Todas as pastas presentes na raiz devem ser exportadas individualmente. A exportação é feita pelo id do item, não o nome amigável. Para ver o item, passe o mouse por cima do link do item na página de conteúdo.
Exemplo: o item "Rodapé do Portal" tem id "footer-page".
Itens normalmente presentes:
- front-page ("Página Inicial")
- footer-page ("Rodapé do Portal")
- institucional ("Sobre a Câmara")
- processo-legislativo
- leis
- transparencia
- links-uteis
- imagens ("Banco de Imagens")
- boletins
- enquetes
- ouvidoria
- faq ("Perguntas Frequentes")
Passos:
- Anote os itens a exportar a partir da interface de conteúdo da raiz. (
https://pm3demo.interlegis.leg.br/folder_contents
) - Lembre-se de pular itens que estejam corrompidos!
- Vá na interface de gerência da raiz. Exemplo:
https://pm3demo.interlegis.leg.br/manage
. - Selecione um item da lista anotada e clique no botão
Import/Export
. - Certifique-se que a primeira radio esteja em "Save to file on server" e aperte o botão
Export
. - Repita os passos para todos os itens.
Os dados são exportados para o container do portal, veja no próximo passo o que fazer com eles
Resista à tentação de agrupar todos os itens num só e fazer a importação de uma vez só. Esta importação ficaria muito grande e a operação normalmente não se completa.
IMPORTANTE: na pasta
/manage
da raiz, há vários itens internos do Plone que NÃO devem ser copiados.
4. Mover os Itens que Serão Sobrepostos no Portal de Destino
Os itens que serão sobrepostos devem ser movidos da pasta raiz. Se isto não for feito, o procedimento acusa erro de id já existente.
Os passos são semelhantes aos do passo 2:
- Entre na tela de conteúdo de pasta da raiz do portal. Exemplo:
https://novoportal.interlegis.leg.br/folder_contents
. - Crie uma pasta para este conteúdo. Use o botão
Adicionar Item -> Pasta
do interface. Exemplo de nome:old
. - Selecione os itens.
- Aperte o botão
recortar
. - Entre no diretório recém-criado.
- Aperte o botão `colar´.
Os itens correspondentes a itens corrompidos no site original devem permanecer na raiz do novo site, já que não serão sobrepostos.
5. Pedir a SEIT a Cópia dos Arquivos Exportados
Peça à SEIT/Sussumu para copiar os arquivos exportados para o novo portal. Esta operação pode ser um pouco demorada.
6. Importação dos Itens
Agora todos os itens exportados no passo 3 devem ser importados.
Passos:
- Ir no /manage do novo site (exemplo:
https://novoportal.interlegis.leg.br/manage
) e apertar o botão Import/Export, sem selecionar nenhum checkbox. - Selecione o item na caixa de seleção
Import file name
. - Mantenha a radio no item
Take ownership of imported objects
. - Aperte o botão
Import
.
Alguns itens de tamanho elevado dão erro
504 Gateway Time-out
na importação. Neste caso, sigo o passo 6.1.
6.1 Desabilitação de Health Check
Este passo só é necessário se algum item der o erro 504 Gateway Time-out
, por demora na importação!
- Solicite a desabilitação do Health Check do novo portal à SEIT/Sussumu.
- Normalmente eles têm de copiar novamente os arquivos exportados, pois eles são perdidos durante o processo de desabilitação.
- Repita o passo 6 para o item.
7. Conferência e Ordenação dos Itens Importados
Após a importação, confira se todos os itens foram importados. Além disso, ordene os itens para ficarem na mesma ordem que no site original. Isto é para facilitar a adaptação dos usuários ao novo site.
- Entre na página de conteúdo da raiz. Exemplo:
https://novoportal.interlegis.leg.br/folder_contents
. - Use a área com pontinhos, à esquerda de cada checkbox, para arrastar o item para a sua ordem correta.
8. Configuração da Capa
É necessário configurar o novo site para a capa importada.
- Ir na raiz do novo site:
https://novoportal.interlegis.leg.br/
- Clicar na aba
Visão
- Clicar no item
Exibição
- Clicar no item
Alterar item usado como exibição padrão...
- Selecionar o item da capa (normalmente
Página Inicial
)
9. Configuração de Portlets
Caso os usuários tenham mexido na configuração de portlets do site antigo, é necessário refazer esta configuração no novo site.
- Ir na raiz do novo site:
https://novoportal.interlegis.leg.br/
- Apertar o botão
Gerenciar portlets
do lado direito ou esquerdo da página. - Conferir se a configuração está igual nos dois sites.
10. Configuração do Site
É necessário fazer a configuração do site, para bater com o site anterior.
- Ir na raiz do novo site:
https://novoportal.interlegis.leg.br/
. - No menu
admin
(canto direito superior), clicar emConfiguração do Site
. - Item
Discussion
: desmarque a checkboxAtivar comentários globalmente
. - Item
E-mail
:- Servidor SMTP: smtp.interlegis.leg.br
- Porta SMTP: 25
- Usuário ESMTP e Senha ESMTP: em branco
- Nome do 'Remetente' do Site:
Câmara Municipal de <cidade> - <UF>
. Exemplo: "Câmara Municipal de Itu - SP". - Endereço do 'Remetente' do Site: copiar do site antigo.
- clique em "Salvar e Enviar Email de Teste"
- Item
Site
, título e descrição: copie do site anterior. - Item
Site
, logo do site. No site anterior, clique com o botão direito no logo do site eSalvar Imagem Como...
. No novo site, use a opçãoImagem do Logo - Replace with new image
para usar a imagem salva - Item
Configuração do SAPL Sync
: Nem sempre é usada. Copie do site anterior. - Item
Recaptcha
: Copie os dados do site anterior.
11. Navegação Horizontal
Logo abaixo do cabeçalho do site, tem uma barra de navegação horizontal. Lá há links rápidos para alguns dos itens do site.
Confira se a navegação horizontal do novo site bate com o antigo (lembrando que itens corrompidos não aparecem na navegação horizontal).
Se tiver algum item a mais no novo site, ele pode ser desabilitado assim:
- Clique no item
- Clique em
Configuração
- Marque a checkbox
Excluir da navegação
12. Colocar o Novo Site no Ar
Peça a SEIT/Sussumu para colocar o novo site no ar, com o nome do site antigo. Lembre de pedir pro site antigo ser renomeado para um outro nome antes, como backup.
Exemplo:
- Site antigo
pien.pr.leg.br
- Site novo
novosite.leg.br
- Renomear
pien.pr.leg.br
parabkp.pien.pr.leg.br
- Renomear
novosite.leg.br
parapien.pr.leg.br
13. Avisar ao Solicitante do Ticket
Avise o solicitante do ticket que o site foi exportado para um novo e peça pra testar.
Lembre a ele que os usuários do site antigo não são exportados, caso eles tenham criado algum.
Barra de LGPD / Cookies
O solicitante pede para incluir uma barra de "concordo com os cookies/estou ciente dos cookies usados".
Exemplos de sites com a funcionalidade ativada:
Para implantar a barra, é necessário:
-
Ir nas configurações de tema: canto superior direito, aperte "admin" -> "Configurações do Site" -> "Temas". (ou
https://<site>/@@theming-controlpanel
) -
Localizar o tema ativo e apertar em "Alterar o tema".
-
Ir em
/javascript/function.js
. Este arquivo reúne todas as customizações de Javascript do site. -
O arquivo normalmente tem uma definição de função que executa quando a página carrega, iniciando com
$(document).ready(function() {
. Acrescente o seguinte código dentro desta função:$(function(){ if(!(localStorage.getItem('agreement'))){ $('#bannerWarningLgpd').removeClass('ocultar'); } }); $("body").append('<div id="bannerWarningLgpd" class="ocultar">\ <section class="contentWarningLgpd">\ <div>\ Este website não utiliza cookies opcionais ou de marketing\ e se limita a fazer uso de cookies analíticos do Google,\ que são obrigatórios para seu correto funcionamento.\ </div>\ <div>\ <button id="btnBannerWarnnerLgpdAgreement" class="btn-aviso">\ Ok\ </button>\ </div>\ </section>\ </div>');
Note que o texto pode ser alterado. No site da Assembleia Legislativa do Piaui, por exemplo, colocaram um link para a página de LGPD deles
-
Procure a função iniciando em `$(window).load(function() {´ e acrescente lá dentro:
$(function(){ $('#btnBannerWarnnerLgpdAgreement').click(function(){ localStorage.setItem('agreement', 'aware'); $('#bannerWarningLgpd').addClass('ocultar'); }); }); ´´´ > Parece-me que o código acima poderia ficar junto com os outros do passo 5.... testar um dia!
Pegadinha: Os códigos começando com
$(function(){
não podem ficar como(function(){
(sem o "$"). Cuidado nos copy/paste.
- Acrescente o CSS.
Pode ser no arquivo style.css
ou em arquivo próprio (lgpd.css
). Eu prefiro a segunda opção. Neste caso, é necessário importar o arquivo no style.css
, com @import url("lgpd.css");
.
CSS:
/*Css Banner Lgpd Inincio*/
.ocultar{
display: none;
}
.contentWarningLgpd{
display: flex;
margin: 0 1em;
flex-direction: row;
align-items: center;
justify-content: center;
}
.btn-aviso{
box-sizing: border-box;
padding: 0.4rem 1.5rem ;
margin: 0 0 0 3rem;
}
#bannerWarningLgpd a{
color: #F29F1F;
}
#bannerWarningLgpd{
position: fixed;
bottom: 0;
width: 85%;
z-index: 2;
margin: 1.5em auto; /* Will not center vertically and won't work in IE6/7. */
left: 0;
right: 0;
box-sizing: border-box;
background-color: #387147;
border-radius: 0.4rem;
color: #FFFFFF;
padding: 0.7rem;
text-align: justify;
box-shadow: 0 0 0.7rem black;
}
/*Css Banner Lgpd Fim*/
- Aperte o botão "Save File" (lado direito, acima da caixa de edição) e teste.
O status se o usuário apertou o botão alguma vez fica guardado no
localStorage
, chave "agreement". Apague se necessário.
Algumas vezes, demora para atualizar, mesmo usando CTRL+F5. Nestes casos, peça a SEITI (Sussumu) para reiniciar o portal.