Skip to content

bugfix: log de ações relacionadas à prova#90

Open
JailsonPLima03 wants to merge 17 commits intodevelopmentfrom
bugfix/exam-log
Open

bugfix: log de ações relacionadas à prova#90
JailsonPLima03 wants to merge 17 commits intodevelopmentfrom
bugfix/exam-log

Conversation

@JailsonPLima03
Copy link
Copy Markdown
Collaborator

@JailsonPLima03 JailsonPLima03 commented Feb 27, 2026

Situações

  • Ao alterar questão de prova, o "changed" sempre aparece, mas se não for no enunciado da questão em si, ele fica sempre vazio, mesmo mexendo nos descendentes;
  • Publicar questão não cria log;
  • Aluno iniciar prova não cria log;
  • As mudanças não impactaram na resolução da prova pelo aluno (não é registrado e, quando é, não registra o que o estudante marcou ou deixou de marcar. seria interessante registrar o exam_responses_question_item conforme altera um exam_response).

Soluções

  • Ao alterar questão de prova, o "changed" sempre aparece, mas se não for no enunciado da questão em si, ele fica sempre vazio, mesmo mexendo nos descendentes;
    Problema nativo do Rails, alterações em associações "filhas" não geram um estado de mudança no elemento "pai". Esse problema pode ser resolvido com a substituição da tática de log já consoildada ou com o auxílio de gems que fazem a auditoria completa do elemento.
  • Publicar questão não cria log;
    É feita a chamada de um método de criação de log na action publish, localizada no arquivo exam_questions_controller.rb.
  • Aluno iniciar prova não cria log;
    Foi adicionado um método de criação de log dentro das actions open e complete, seguindo as condições corretas o log é criado ao iniciar e ao finalizar uma prova.
  • As mudanças não impactaram na resolução da prova pelo aluno (não é registrado e, quando é, não registra o que o estudante marcou ou deixou de marcar. seria interessante registrar o exam_responses_question_item conforme altera um exam_response).
    Agora no log é possível verificar alterações nas respostas, além de mostrar a questão e a alternativa marcada.

Resultado

  • Código de sys_log.rb foi refatorado para um melhor entendimento;
  • Ao publicar uma questão e ao iniciar ou finalizar uma prova é feito o registro conforme a ação realizada.

Testes

  • Entrar como editor e criar ou acessar uma prova não publicada;
  • Visualizar as questões da prova, criar e publicar uma nova questão;
  • Entrar como admin e ir em logs, buscar por 'ações' e pelo nome "editor", depois basta verificar se houve o registro da publicação da questão;
  • Entrar como aluno e realizar alguma prova;
  • Entrar como admin e ir em logs, buscar por 'ações' e pelo nome "Aluno 1"(caso tenha feito a prova como aluno1), depois basta verificar se houve o registro de início e finalização da prova.

@biancastephani
Copy link
Copy Markdown
Member

biancastephani commented Apr 7, 2026

  • criação de prova não criou log
    o método log_description utilizado para recuperar informações da prova no log estava com inconsistências (por exemplo, referência a "question" quando uma prova pode ter N "questions"; referência a "exam_id" em vez de "id" e falta da informação das datas de início e fim) que foram corrigidas no commit 7d7b0b4
  • publicação de questão não criou log
    publicação de questão chama o método change_status de questão; foi removido o "unless" change_status no sys_log.rb

(não relacionado ao PR)
erro com a ordenação de questões (#79):

  • ao criar ou editar questão, não renderizava na tela, pois esperava parâmetro que não era passado
  • a ordenação só funciona quando dá refresh na tela

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants