Skip to content

Permite que questões em uso sejam editadas#80

Open
mirele-ufc wants to merge 78 commits intodevelopmentfrom
allow-edit-in-use-questions-ii
Open

Permite que questões em uso sejam editadas#80
mirele-ufc wants to merge 78 commits intodevelopmentfrom
allow-edit-in-use-questions-ii

Conversation

@mirele-ufc
Copy link
Copy Markdown
Collaborator

@mirele-ufc mirele-ufc commented Jan 14, 2026

Overview

Atualmente questões que são adicionadas à provas, ainda que em rascunho, não podem ser editadas, somente duplicadas. Assim, não é possível atualizar diretamente questões em prova, incluindo correções e mudanças na pontuação da questão. Nessa PR, são criadas verificações para que, em determinados cenários, questões em prova possam ser editadas.

No código, uma questão é relacionado ao objeto question. Ao ser adicionada à uma prova, cria-se um objeto exam_question. Assim, uma mesma questão pode estar em várias provas.

Funcionalidades implementadas

Além dos ajustes nas permissões, foram implementadas as seguintes funcionalidades e ajustes:

  • Notificação por e-mail dos editores da turma caso uma questão em prova seja editada (a partir dos cenários previamente definidos);
  • Criação da função fork_copy, que gera uma cópia da questão somente naquela prova;
  • Edição somente da pontuação da questão na prova (a partir dos cenários previamente definidos);
  • Ajustes no comportamento de "Cálculo da pontuação para o tipo selecionado" em ambas as telas.

Fluxograma de Permissões

Considerando a complexidade dos cenários propostos nessa PR, criei fluxogramas que descrevem qual o comportamento esperando a partir dos parâmetros da questão a ser editada e das permissões do usuário. Dependendo da tela em que seja feita a edição (tela de Repositório ou tela de Provas) os comportamentos esperados também mudam.

image

Configurações de Teste

  • Para realizar os testes relacionados ao envio de notificações por e-mail é necessário ajustar algumas configurações locais, além do uso de uma ferramenta específica para teste, como o Mailcatcher ou o MailHog. No meu caso, utilizei o MailHog por considerar mais prático e criei um tutorial de instalação para ele na wiki do GitLab .
  • Atualmente o banco de questões padrão criado pelo seed contém somente questões do user editor. Para realizar os testes são necessárias questões de ao menos 2 usuários diferentes. No meu caso, entrei com o perfil Admin, mudei as permissões do perfil de Prof. Titular para permitir todas as edições necessárias e utilizei os users prof e editor na maioria dos testes feitos.

Copy link
Copy Markdown
Member

@biancastephani biancastephani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(o erro encontrado no request changes foi um engano)

vou dar prosseguimento a revisão.

até então, o que foi identificado é que faltou uma verificação no fluxograma original no seguinte caso:

  • tela de repositório
  • usada em 1 prova
  • situação B
  • faltou verificar se é pública ou não, se sou autor ou não

Erro encontrado

Situação:

  • autor/usuário editor
  • criei uma questão no repositório
  • adicionei em uma prova
  • voltei pro repositório, tentei editar a questão, ao salvar, deu erro: [ERROR] [APP] [2026-01-14 15:41:15 -0300] [undefined local variable or method `text_changed' for #QuestionsController:0x00007689de089768] [Não foi possível realizar a ação desejada]
    Ele chegou a salvar a mudança, mas retornou erro. Aparentemente, a variável "text_changed" na linha 96 de questions_controller não foi definida em nenhum canto
  • editando fora do repositório, dá certo sem erro

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