26 Atendimento
Rodrigo Carvalho Benevides edited this page 1 day ago

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 em apps (no menu à esquerda) e installed 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
  • 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.

(É 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.

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:

  1. Anote os itens a exportar a partir da interface de conteúdo da raiz. (https://pm3demo.interlegis.leg.br/folder_contents)
  2. Lembre-se de pular itens que estejam corrompidos!
  3. Vá na interface de gerência da raiz. Exemplo: https://pm3demo.interlegis.leg.br/manage.
  4. Selecione um item da lista anotada e clique no botão Import/Export.
  5. Certifique-se que a primeira radio esteja em "Save to file on server" e aperte o botão Export.
  6. 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:

  1. Entre na tela de conteúdo de pasta da raiz do portal. Exemplo: https://novoportal.interlegis.leg.br/folder_contents.
  2. Crie uma pasta para este conteúdo. Use o botão Adicionar Item -> Pasta do interface. Exemplo de nome: old.
  3. Selecione os itens.
  4. Aperte o botão recortar.
  5. Entre no diretório recém-criado.
  6. 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:

  1. Ir no /manage do novo site (exemplo: https://novoportal.interlegis.leg.br/manage) e apertar o botão Import/Export, sem selecionar nenhum checkbox.
  2. Selecione o item na caixa de seleção Import file name.
  3. Mantenha a radio no item Take ownership of imported objects.
  4. 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!

  1. Solicite a desabilitação do Health Check do novo portal à SEIT/Sussumu.
  2. Normalmente eles têm de copiar novamente os arquivos exportados, pois eles são perdidos durante o processo de desabilitação.
  3. 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.

  1. Entre na página de conteúdo da raiz. Exemplo: https://novoportal.interlegis.leg.br/folder_contents.
  2. 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.

  1. Ir na raiz do novo site: https://novoportal.interlegis.leg.br/
  2. Clicar na aba Visão
  3. Clicar no item Exibição
  4. Clicar no item Alterar item usado como exibição padrão...
  5. 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.

  1. Ir na raiz do novo site: https://novoportal.interlegis.leg.br/
  2. Apertar o botão Gerenciar portlets do lado direito ou esquerdo da página.
  3. 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.

  1. Ir na raiz do novo site: https://novoportal.interlegis.leg.br/.
  2. No menu admin (canto direito superior), clicar em Configuração do Site.
  3. Item Discussion: desmarque a checkbox Ativar comentários globalmente.
  4. 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"
  5. Item Site, título e descrição: copie do site anterior.
  6. Item Site, logo do site. No site anterior, clique com o botão direito no logo do site e Salvar Imagem Como.... No novo site, use a opção Imagem do Logo - Replace with new image para usar a imagem salva
  7. Item Configuração do SAPL Sync: Nem sempre é usada. Copie do site anterior.
  8. 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:

  1. Clique no item
  2. Clique em Configuração
  3. 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:

  1. Site antigo pien.pr.leg.br
  2. Site novo novosite.leg.br
  3. Renomear pien.pr.leg.br para bkp.pien.pr.leg.br
  4. Renomear novosite.leg.br para pien.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:

Exemplo de chamado

Para implantar a barra, é necessário:

  1. Entrar como administrador

  2. Ir nas configurações de tema: canto superior direito, aperte "admin" -> "Configurações do Site" -> "Temas". (ou https://<site>/@@theming-controlpanel)

  3. Localizar o tema ativo e apertar em "Alterar o tema".

  4. Ir em /javascript/function.js. Este arquivo reúne todas as customizações de Javascript do site.

  5. 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

  6. 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.

  1. 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.