Permitir editar apenas disponibilidade de tarefas

Permitir editar apenas disponibilidade de tarefas

por Eduardo Rey -
Número de respostas: 3

Olá,

Gostaria de habilitar, para um perfil específico, a edição de tarefas, mas apenas para a seção "disponibilidade". Podem me indicar o caminho para fazer isso, por favor?

Este perfil não deve ser capaz de incluir nem excluir tarefas nos cursos, nem editar as configurações das tarefas, exceto a parte de disponibilidade.

Para isso, pensei em criar uma capability específica, com a qual a tela de edição de tarefas exibiria apenas a seção disponibilidade. Dei uma olhada na documentação e fórum, mas só encontrei instruções de como definir capabilities para um módulo novo.

Também não descobri como editar a tela de edição de tarefas, principalmente de uma forma que não entre em conflito com atualizações futuras do Moodle.

Abraços!

Contagem das avaliações:  -
Em resposta à Eduardo Rey

Re: Permitir editar apenas disponibilidade de tarefas

por Daniel Neis Araujo -
Imagem de Core developers Imagem de Plugin developers Imagem de Translators

Olá, Eduardo


na minha opinião, o melhor jeito de você fazer isso

é criando uma nova capability em

mod/assign/db/access.php

depois fazer o que você quiser em

mod/assign/mod_form.php

E então dar uma olhada na documentação:

https://docs.moodle.org/dev/Working_with_the_Community

https://docs.moodle.org/dev/Contributing_to_Moodle#Development

https://docs.moodle.org/dev/Main_Page

https://docs.moodle.org/dev/Process

https://docs.moodle.org/dev/How_to_create_a_patch

E então abrir uma "issue" como "improvement" via tracker:

http://tracker.moodle.org/

E sempre vale postar no fórum geral de desenvolvedores

para coletar mais opiniões e "fazer propaganda":

https://moodle.org/mod/forum/view.php?id=55


Se precisar de ajuda em alguma parte, só avisar aqui.


Abraço!

Contagem das avaliações:  -
Em resposta à Daniel Neis Araujo

Re: Permitir editar apenas disponibilidade de tarefas

por Eduardo Rey -

Obrigado pela orientação, Daniel.

Consegui exibir apenas a parte de disponibilidade na tela de edição, mas o link "Editar configurações" em "Administração de tarefas" continua sendo exibido apenas para quem tem a capability moodle/course:manageactivities.

Pode me dizer como faço para exibir esse link quando o usuário tiver a capability que eu criei, por favor?

As alterações que fiz foram as seguintes:
  1. Criei a capability mod/assign:editavailability.
  2. Incluí um nome para essa capability em mod/assign/lang/en/assign.php (não sei como incluir o nome em português, não há pasta mod/assign/lang/pt).
  3. Em course/modlib.php, ajustei a função can_update_moduleinfo, trocando require_capability pelo seguinte:
    if (!has_capability('moodle/course:manageactivities', $context) and !has_capability('mod/assign:editavailability', $context)) {
        require_capability('moodle/course:manageactivities', $context);
    }
  4. Incluí a maior parte dos elementos de mod_form.php (exceto a parte de disponibilidade) dentro do seguinte if:
    if (has_capability('moodle/course:manageactivities', $ctx))
  5. Em mod/assign/locallib.php, ajustei a função update_instance para atualizar apenas os itens de disponibilidade quando o usuário não tiver manageactivities (incluí a maior parte dos campos no mesmo if do passo 3).

Abraço!

Contagem das avaliações:  -
Em resposta à Eduardo Rey

Re: Permitir editar apenas disponibilidade de tarefas

por Daniel Neis Araujo -
Imagem de Core developers Imagem de Plugin developers Imagem de Translators

Oi, Eduardo


fico feliz que conseguiste evoluir.

Acredito que já tenhas feito isso,

mas se usares o "grep" para procurar por essa capability no código,

vais achar fácil onde ela é utilizada para condicionar a exibição do botão.


Abraço!

Contagem das avaliações:  -