TutorChat Docs

Docs › Para clientes › Guia do administrador

Guia do administrador

Configuração do Chat com tutor (local_tutorchat): configurações, papéis e permissões, onde o chat funciona, cartões de atividade, licença, diagnóstico, tarefas agendadas e solução de problemas. A instalação e a atualização estão em Requisitos e instalação. Quem usa o chat tem guias próprios: tutor, aluno e supervisor. Dúvidas frequentes: perguntas frequentes.

4. Configurações

Em Administração do site → Plugins → Plugins locais → Chat com tutor. Os campos aparecem nesta ordem; os quatro últimos formam o bloco Onde o chat funciona. Os campos numéricos aceitam só números inteiros; um valor menor que 1 (ou vazio) faz o plugin usar o padrão (exceto Dias depois do término, em que 0 é um valor válido).

ConfiguraçãoPadrãoO que faz
Papéis de tutornenhumUsuários com um destes papéis em um curso aparecem como tutores dele e podem atender seus alunos. Ao salvar, a capability "Atender alunos como tutor" é permitida para os papéis selecionados e removida de todos os outros no nível do site.
Intervalo de atualização com o chat aberto3Segundos entre as verificações de mensagens novas enquanto a conversa na tela está trocando mensagens. É também o menor intervalo do ritmo adaptativo.
Maior intervalo de atualização com a conversa em silêncio15Segundos entre as verificações quando a conversa na tela está em silêncio há mais de 1 minuto. O intervalo cresce do valor acima até este e volta ao menor assim que há uma mensagem. Nunca é menor que o intervalo com o chat aberto.
Intervalo de atualização em espera25Segundos entre as verificações para quem tem uma conversa aberta fora da tela (janela fechada ou na lista de tutores) e para o tutor com a aba do navegador oculta.
Expiração da disponibilidade90Segundos sem contato da Área do tutor após os quais o tutor deixa de aparecer como disponível.
Encerramento automático24Horas sem mensagens novas após as quais um atendimento é encerrado automaticamente.
Campos do perfil no painelnenhumCampos personalizados do perfil do aluno que o tutor vê no painel de contexto. Só aparece se o site tem campos personalizados de perfil.
Campos do curso no painelnenhumCampos personalizados do curso que o tutor vê no painel de contexto. Só aparece se o site tem campos personalizados de curso.
Mostrar desempenhoativadoMostra a nota e o progresso do aluno no curso no painel de contexto, para os tutores que podem vê-los.
Cor de disponível#357a32Ponto e etiqueta de um tutor disponível, no chat do aluno e na Área do tutor, e o botão "Tutor online".
Cor de indisponível#6a737bPonto e etiqueta de um tutor indisponível, e o botão "Deixar recado".
Cor de atenção#ca3120Contadores de mensagens não lidas e atendimentos aguardando resposta.
Avaliação do atendimentoativadoPede ao aluno que avalie cada atendimento quando ele é encerrado.
Prazo para avaliar7Número de dias, depois do encerramento, em que o aluno pode avaliar o atendimento (mínimo 1).
Meses para guardar as mensagens0Se for de 1 a 120, o texto das mensagens dos atendimentos encerrados há mais de tantos meses (de 30 dias) é apagado em definitivo por uma tarefa agendada. Com 0, nada é apagado. Veja "Sites grandes" (seção 9).
Categorias (bloco Onde o chat funciona)nenhumaCategorias onde o chat funciona, com as subcategorias. Veja a seção 5-A.
Cursos (bloco Onde o chat funciona)nenhumCursos onde o chat também funciona, além dos das categorias. Veja a seção 5-A.
Esconder o chat em cursos terminadosdesativadoDepois da data de término do curso (mais os dias abaixo), o chat some do curso e as conversas abertas dele são fechadas. Cursos sem data de término não são afetados.
Dias depois do término0De 0 a 365. Quantos dias depois da data de término o chat ainda funciona. Só tem efeito com a opção acima ligada.

Observações:

5. Papéis e permissões

Tutores

  1. Crie um papel para os tutores ou use um existente (por exemplo, "Professor"). Para criar: Administração do site → Usuários → Permissões → Definir papéis → Adicionar um novo papel, sem arquétipo, permitindo atribuí-lo no nível de Curso.
  2. Em Chat com tutor → Papéis de tutor, marque o papel e salve. Isso concede local/tutorchat:tutor ("Atender alunos como tutor") ao papel, no nível do site.
  3. Em cada curso, inscreva os tutores com esse papel (Participantes). Só tutores com inscrição ativa no curso são listados aos alunos.

Cada tutor passa a ver o link Área do tutor no menu principal.

Se você desmarcar um papel em Papéis de tutor, a capability é removida dele no nível do site. Alterações feitas em um curso (substituições de permissão) não são desfeitas.

Alunos

local/tutorchat:chat ("Conversar com os tutores de um curso") vem permitida por padrão ao papel Estudante. Quem a tem em um curso vê o botão do chat nas páginas dele, desde que o curso tenha ao menos um tutor que o aluno possa contatar.

Desligar o chat em um curso

Há dois caminhos. Para ligar o chat só onde você quer (por exemplo, ao colocá-lo em produção aos poucos), use Onde o chat funciona, descrito na seção 5-A: o curso fora da lista fica congelado e o histórico continua legível. Para tirar um curso do alcance das pessoas sem nenhuma tela, proíba local/tutorchat:chat (alunos) ou local/tutorchat:tutor (tutores) nas permissões desse curso; a proibição não deixa uma tela somente leitura com o histórico.

Tutores por grupo

Em cursos com grupos separados, o aluno só vê os tutores que pertencem a algum grupo dele; um aluno sem grupo não vê nenhum. Quem tem moodle/site:accessallgroups vê todos.

Supervisão

Duas capabilities, verificadas no contexto do sistema. Nenhuma delas é concedida a papel algum por padrão, nem a gerentes. Os administradores do site já têm ambas.

CapabilityO que permite
local/tutorchat:viewreports ("Ver a supervisão do chat com tutores")Abrir a página Supervisão do chat (abas Agora, Visão geral, Tutores e Atendimentos), com seus números, gráficos e exportações. Só ela basta para abrir a página; um link Supervisão do chat aparece então no menu principal.
local/tutorchat:viewconversations ("Ler conversas na supervisão do chat")Além disso, abrir Ver conversa, na aba Atendimentos, uma página somente de leitura com o texto das mensagens. Exige também viewreports.

Para conceder:

  1. Administração do site → Usuários → Permissões → Definir papéis → Adicionar um novo papel (arquétipo: nenhum).
  2. Permita viewreports (e, se quiser que o papel leia conversas, viewconversations) e marque o papel como atribuível no nível Sistema.
  3. Atribua o papel em Administração do site → Usuários → Permissões → Atribuir papéis do sistema.

A página também está em Administração do site → Relatórios → Supervisão do chat. Conceder essas permissões em um curso ou categoria não tem efeito.

O uso da página está descrito no guia do supervisor.

Ler conversas é um acesso a dados pessoais: cada abertura fica registrada no log do site (evento "Conversa lida pela supervisão"), e cada exportação também ("Relatório da supervisão exportado"). Veja privacidade.

5-A. Onde o chat funciona

Por padrão o chat funciona em todos os cursos do site. O bloco Onde o chat funciona, na página de configurações do plugin, deixa você ligá-lo só em algumas categorias e cursos (e ampliar aos poucos) e esconder o chat dos cursos terminados.

Bloco Onde o chat funciona nas configurações do plugin, com uma categoria e um curso escolhidos
Bloco Onde o chat funciona nas configurações do plugin, com uma categoria e um curso escolhidos

As quatro configurações

ConfiguraçãoPadrãoO que faz
Categorias (activecategories)vazioCampo com busca. O chat funciona nos cursos destas categorias, incluindo as subcategorias. A lista mostra o caminho completo da categoria.
Cursos (activecourses)vazioCampo com busca no servidor. O chat também funciona nestes cursos, além dos das categorias.
Esconder o chat em cursos terminados (hideended)desativadoCom ela ligada, o chat some dos cursos cuja data de término já passou e as conversas abertas deles são fechadas.
Dias depois do término (endedgracedays)0Número inteiro de 0 a 365: quantos dias depois da data de término o curso ainda conta como em andamento.

Os três estados de um curso

Cada curso está sempre em um destes estados, avaliados nesta ordem:

  1. Terminado: Esconder o chat em cursos terminados ligada, o curso tem data de término e essa data mais os dias de tolerância já passou. Um curso sem data de término nunca é terminado.
  2. Ativo: nenhuma categoria e nenhum curso escolhidos, ou o curso está em Cursos, ou está em uma categoria de Categorias (ou em uma subcategoria dela).
  3. Inativo: qualquer outro caso, isto é, há uma lista escolhida e o curso não consta dela.
AtivoInativoTerminado
Botão do alunocomo sempreaparece só se o aluno já tem conversa nesse curso; o painel abre somente leitura, com o aviso "O chat foi desativado neste curso. Você ainda pode ler suas conversas."não aparece
Abrir conversa novacomo semprerecusadorecusado
Enviar mensagem e encerrarcomo semprerecusadorecusado
Avaliar um atendimento já encerradocomo semprepermitidonão há tela para isso
Conversas que estavam abertasseguemficam abertas, congeladasa tarefa agendada as fecha
Lista do tutor (Área do tutor)como sempremarca "Chat desativado neste curso", somente leituramarca "Curso terminado", somente leitura
Conta para o link Área do tutorsimnãonão
Painel do aluno e curso, para o tutorcomo semprecontinuacontinua
Supervisãocomo sempresem mudançasem mudança
Widget do aluno somente leitura em um curso onde o chat está desativado
Widget do aluno somente leitura em um curso onde o chat está desativado

Congelamento (curso inativo)

Cursos terminados

Inscrição ativa para escrever

Enviar mensagem e encerrar uma conversa passam a exigir inscrição ativa de quem escreve:

5-B. Cartões de atividade e formatos de curso

O tutor pode enviar ao aluno um cartão de uma atividade, de um recurso ou de uma seção do curso, e o aluno pode anexar a página em que está (veja o guia do tutor e o guia do aluno). Não há configuração nova: o recurso vale onde o chat vale, e usa as permissões que o Moodle já aplica.

6. Rótulos de papel

Os alunos veem, ao lado de cada tutor (na lista e no cabeçalho da conversa), um rótulo com o nome do papel dele. O papel mostrado é o que concede a capability de tutor e vem primeiro na ordem de papéis do site; o nome respeita renomeações feitas no curso. A cor vem de uma paleta fixa de seis cores, igual em todos os cursos.

7. Tarefas agendadas

Em Administração do site → Servidor → Tarefas → Tarefas agendadas. O cron do Moodle precisa rodar com frequência (de preferência a cada minuto).

TarefaQuando rodaO que faz
Encerrar atendimentos inativos do chat com tutorA cada hora (minuto sorteado)Encerra os atendimentos sem mensagem nova há mais tempo que o Encerramento automático, inclusive os congelados de cursos inativos. Com Esconder o chat em cursos terminados ligada, encerra também os atendimentos abertos de cursos terminados (respeitando os dias de tolerância). Encerrar não apaga nada.
Atualizar o resumo de estatísticasTodo dia às 03:00Recalcula o resumo usado pelas abas Visão geral, Tutores e Atendimentos da supervisão.
Remover mensagens antigas do chat com tutorTodo dia às 03:30Se Meses para guardar as mensagens for maior que 0, apaga o texto das mensagens dos atendimentos encerrados há mais tempo que o prazo (seção 9). Com 0, não faz nada.
Enviar dados de diagnóstico do diaTodo diaEnvia o pacote de diagnóstico do dia anterior, se o envio estiver ligado (seção 7-B). Sem endereço de destino válido, nada sai do servidor.
Enviar erros novos de diagnósticoA cada horaEnvia só os erros novos, se o envio estiver ligado.

Sem o cron, os atendimentos inativos não são encerrados e o resumo só é atualizado pelo botão Atualizar agora da supervisão (que se recusa a rodar se os dados têm menos de 5 minutos). A aba Agora da supervisão não depende do resumo.

7-A. Licença

O TutorChat precisa de uma chave de licença, enviada pelo fornecedor. Sem chave, o plugin funciona em teste por 30 dias, contados a partir da instalação do plugin ou da atualização para esta versão.

Onde colar a chave: Administração do site → Plugins → Plugins locais → TutorChat → Licença. Cole a chave inteira (pode ter quebras de linha) e salve. A página mostra o cliente, o número da licença, o endereço do site, a validade e os dias de carência. A chave só vale para o endereço do site para o qual foi emitida. Antes de mudar o endereço do site (domínio ou caminho), peça uma chave nova; trocar http por https ou www. não exige chave nova.

EstadoO que significaO chat
VálidaDentro do prazo e com mais de 15 dias para vencer.Funciona.
VencendoFaltam 15 dias ou menos para vencer. O administrador vê um aviso nas páginas de administração.Funciona.
CarênciaA licença venceu, mas ainda está nos dias de carência (14 por padrão, ou o valor da chave). O aviso mostra quantos dias faltam.Funciona.
Teste de 30 diasNão há chave e o teste ainda não acabou. O aviso mostra quantos dias faltam.Funciona.
BloqueadaPassou a carência, o teste acabou, ou a chave está danificada, não é autêntica ou é de outro site.Desligado.

Quando está bloqueada: o botão do chat some para os alunos, o link "Área do tutor" some do menu, a supervisão (menu Relatórios) mostra a mensagem de que o chat não está disponível e nenhuma mensagem nova é enviada. Nada é apagado: as conversas ficam guardadas e as tarefas agendadas continuam rodando. Tudo volta a funcionar assim que o administrador colar uma chave válida. A página de licença continua acessível mesmo bloqueada.

Pela linha de comando (na pasta do Moodle):

Relógio do servidor: o plugin guarda a maior data já vista para não deixar ninguém "voltar o relógio" e prolongar a licença. Se o relógio do servidor andou para a frente por engano e a licença passou a aparecer como vencida, corrija o relógio e rode php admin/cli/cfg.php --component=local_tutorchat --name=licensemaxseen --unset.

Importante: a conferência da chave é feita só no seu servidor. O único contato com o fornecedor é o envio opcional de dados de diagnóstico, descrito na seção 7-B.

7-B. Diagnóstico (telemetria)

Por padrão o plugin envia ao fornecedor, uma vez por dia, contagens de uso, tempos de resposta, versões técnicas e erros. O plugin não foi feito para enviar dado de pessoa (nem mensagens, nomes, e-mails ou números de usuário, curso ou conversa), mas o texto livre de erros de fora do Moodle não dá para limpar com certeza. Para desligar, desmarque Enviar dados de diagnóstico ao fornecedor na página Licença; para ver o pacote exato, clique em Ver o que será enviado. Detalhes, a lista do que vai e do que nunca vai, e o limite da limpeza das mensagens de erro: dados de diagnóstico.

8. Dados e privacidade

O plugin guarda atendimentos, mensagens, avaliações, a disponibilidade dos tutores e um resumo estatístico. Os atendimentos nunca são apagados automaticamente: eles só saem pelas ferramentas de privacidade do Moodle ou quando o curso é excluído. O texto das mensagens só é apagado por conta própria se você ativar Meses para guardar as mensagens (seção 9). Veja privacidade e a lista do que informar a alunos e tutores.

9. Sites grandes

O custo do chat no servidor depende de quantos usuários têm uma conversa aberta, e não do tamanho do histórico. Para sites com muitos alunos e tutores:

Configurações que importam

ConfiguraçãoPadrãoEfeito em um site grande
Intervalo de atualização com o chat aberto (pollactive)3 sMenor espera entre as consultas de uma conversa na tela. Aumentá-lo reduz a carga e atrasa as mensagens.
Maior intervalo de atualização com a conversa em silêncio (pollquiet)15 sPara onde a espera cresce quando a conversa na tela fica 1 minuto sem mensagens. É o valor que mais pesa, porque a maioria das conversas abertas está em silêncio. Nunca é menor que o intervalo com o chat aberto.
Intervalo de atualização em espera (pollidle)25 sEspera para quem tem uma conversa aberta fora da tela e para o tutor com a aba oculta. Mantenha a Expiração da disponibilidade maior que ele, senão o tutor com a aba oculta parecerá indisponível.
Meses para guardar as mensagens (retentionmonths)0 (nunca apagar)Mantém a tabela de mensagens pequena. Veja abaixo.

Caches de aplicação

O plugin guarda em cache de aplicação do Moodle a lista de tutores de cada curso (coursetutors) e a informação "este usuário é tutor em algum curso" (tutoranywhere), por 10 minutos, e limpa o que for afetado quando papéis, inscrições, usuários ou permissões mudam, e também quando você salva a configuração Papéis de tutor. Em um site com mais de um servidor web, associe esses dois caches a um armazenamento compartilhado, como o Redis (Administração do site → Plugins → Armazenamento em cache → Configuração: adicione uma instância do Redis e, em Definições de mapeamento, mapeie as definições local_tutorchat / coursetutors e local_tutorchat / tutoranywhere a ela). Com o armazenamento padrão em arquivos, cada servidor monta e limpa a sua própria cópia, e uma mudança de papel pode demorar até 10 minutos para valer nos outros servidores.

Sessões somente leitura

Ative $CFG->enable_read_only_sessions = true; no config.php. As duas consultas periódicas do chat (local_tutorchat_sync e local_tutorchat_get_widget_state) são declaradas como somente leitura, então liberam a sessão do usuário logo no início e não atrasam as outras requisições dele (por exemplo, a página que ele está abrindo). Antes de ativar, o Moodle exige que todas as definições de cache de modo sessão sejam mapeadas para um armazenamento diferente do de sessão (Administração do site → Plugins → Armazenamento em cache → Configuração); sem isso ele recusa a sessão e mostra um erro que cita as definições, por exemplo core/coursecat. No teste do desenvolvimento, com a opção ativa, as consultas periódicas de um aluno e de um tutor, feitas de 66 a 77 segundos depois da última requisição que gravou a sessão, não gravaram o último acesso do usuário (user.lastaccess e user_lastaccess).

Retenção das mensagens antigas

Com Meses para guardar as mensagens maior que 0, a tarefa agendada Remover mensagens antigas do chat com tutor (todo dia às 03:30) apaga, em definitivo, o texto das mensagens dos atendimentos encerrados há mais tempo que o prazo (meses de 30 dias, contados a partir da última atividade do atendimento). Ela trabalha em lotes de 500 atendimentos, no máximo 20 lotes por execução, e continua de onde parou na execução seguinte; a primeira ativação em um site com muitos atendimentos antigos pode precisar de várias execuções (dias) para zerar o atraso. O que permanece: o atendimento (curso, aluno, tutor, datas), a avaliação e o resumo de estatísticas. Quem abre um atendimento apagado vê o aviso "As mensagens deste atendimento foram removidas pelo prazo de retenção." Atendimentos em andamento nunca são tocados. Não há como recuperar as mensagens apagadas, a não ser por backup. Veja privacidade.

Medir no seu servidor

O plugin traz um roteiro que mede as operações periódicas e só lê o banco (se alguma operação gravar, ele para com erro). A partir da pasta do Moodle:

php local/tutorchat/cli/benchmark.php --runs=50

Opções: --tutor=ID, --student=ID, --course=ID (sem elas, usa o tutor com mais atendimentos e o aluno e o curso do atendimento mais recente dele) e --runs=N. Para cada operação (sync_student, sync_tutor, visible_tutors, tutor_anywhere, nav_unread, widget_state e, desde a entrega B2, course_items e context_pending, que medem o seletor de atividades e o bloco de prazos e dependem do tamanho do curso) ele mostra as leituras e as gravações no banco de uma chamada e o tempo em milissegundos: a primeira chamada (cold, que enche os caches) e a mediana e o percentil 95 das seguintes (warm). Compare principalmente as leituras. As medições do desenvolvimento estão em parte interna da documentação (desempenho).

10. Solução de problemas

SintomaCausa provável e o que fazer
O botão não aparece para o alunoO botão só aparece em páginas de curso, para usuários autenticados (não convidados) com local/tutorchat:chat no curso, quando há ao menos um tutor que o aluno possa contatar. Não aparece na página inicial do site nem em páginas sem o layout normal (tentativas de prova seguras, impressão, janelas, etc.). Confira os papéis de tutor, a inscrição ativa do tutor e os grupos (seção 5), e se o curso está ativo (seção 5-A): em um curso fora da lista de Onde o chat funciona, ou terminado com a opção ligada, o botão só aparece (somente leitura) para quem já tem conversa nele, ou não aparece.
O tutor não aparece na lista do alunoO tutor precisa ter um dos Papéis de tutor no curso, com inscrição ativa, e a capability não pode estar proibida no curso. Em grupos separados, precisa dividir um grupo com o aluno. Um usuário nunca é tutor de si mesmo.
Não há link "Área do tutor"O usuário não tem local/tutorchat:tutor em nenhum curso ativo (seção 5-A). Mudanças de categoria ou de data de término do curso podem levar até 10 minutos para refletir no link. A página abre pelo endereço direto.
Tutor aparece como "Indisponível" mesmo com a chave ligadaA Área do tutor precisa estar aberta em uma aba do navegador; sem ela, a disponibilidade expira após o tempo de Expiração da disponibilidade (90 s por padrão).
Mensagens demoram a aparecerÉ o intervalo de atualização: 3 s com a conversa trocando mensagens, até 15 s depois de 1 minuto de silêncio, 25 s com a conversa fora da tela (valores padrão). O aluno sem atendimento aberto e com a janela fechada não consulta o servidor, e a janela do aluno também não consulta com a aba oculta.
"Reconectando…"O navegador não consegue falar com o servidor; ele tenta de novo com espera crescente (até 60 s). "Sua sessão expirou. Entre novamente." indica que o login expirou.
O chat sumiu e aparece "O chat não está disponível neste site"A licença está bloqueada (seção 7-A). Veja o motivo em Plugins locais → TutorChat → Licença ou com php local/tutorchat/cli/license.php --status e cole uma chave válida. As conversas continuam guardadas.
Atendimentos não são encerrados sozinhosO cron não está rodando ou a tarefa está desabilitada (seção 7). O encerramento ocorre na execução horária seguinte ao prazo.
"O chat foi desativado neste curso." ao tentar enviarO curso saiu da lista de Onde o chat funciona ou terminou (seção 5-A). A conversa passa a somente leitura.
Um aluno não consegue escrever e a inscrição parece normalEscrever exige inscrição ativa: confira se a inscrição não está suspensa nem encerrada (seção 5-A).
"Os dados ainda não foram calculados." na supervisãoO resumo nunca rodou: use Atualizar agora ou aguarde as 03:00 (com o cron).
A supervisão não aparece para alguémFalta viewreports no contexto do sistema (seção 5).
O aluno vê "Item indisponível" no cartãoO item foi apagado, ocultado para o aluno ou não é do curso da conversa. O texto da mensagem continua.
Ver no curso não destacou o itemO formato do curso não é um dos verificados (seção 5-B), o item está dentro de um bloco recolhido que o formato carrega depois, ou o navegador bloqueia o sessionStorage. O botão do chat mostra "Procure por: nome".
Os blocos Atrasadas e Próximos prazos não aparecem no painelO curso não tem atividades com prazo, o aluno já entregou tudo, ou o papel do tutor não vê as atividades.
"Você está enviando mensagens rápido demais."Limite de 20 mensagens por minuto por usuário.
O texto da mensagem é recusadoO limite é de 2000 caracteres por mensagem.