# mula - Moodle Update for Lazy Admins
<!-- toc -->
- [Instalação](#instalação)
- [Configurando acesso ao curso](#configurando-acesso-ao-curso)
- [Modo rápido](#modo-rápido)
- [Facilitando acesso](#facilitando-acesso)
- [Alias](#alias)
- [Arquivo de configuração](#arquivo-de-configuração)
- [Listando estrutura de um curso](#listando-estrutura-de-um-curso)
- [Adicionando](#adicionando)
- [Utilizando labels](#utilizando-labels)
- [Atualizando atividades em bloco](#atualizando-atividades-em-bloco)
- [Removendo](#removendo)
<!-- toc -->
## Vídeo de Apresentação (4 min)
[![image](https://gist.github.com/assets/4747652/d3fc3448-8766-41e9-8416-a3fae6044e3b)](https://youtu.be/BB8-IkU2X6U)
## Instalação
```bash
pip install mula
## se aparecerem mensagens que a pasta ~/.local/bin não está no PATH
echo "export PATH=$PATH:~/.local/bin" >> ~/.bashrc
```
## Configurando acesso ao curso
### Modo rápido
```bash
mula -u <usuario> -p <senha> -i <numero_do_curso> -d <fup | ed | poo> list
```
Para obter o número do curso, basta olhar o último número na URL do seu curso do moodle.
![image](https://gist.github.com/assets/4747652/f6f81a28-d3dc-4d30-ac20-e90ff85ddcdd)
Se não passar o parâmetro -p ou --password, a senha será perguntada de forma interativa.
Agora basta dar um `mula -u <usuario> -p <senha> -i <indice_do_curso> -d <fup | ed | poo> list` para listar o conteúdo do seu curso.
## Facilitando acesso
### Alias
Você pode criar um alias para o comando, para não precisar passar os parâmetros toda vez.
```bash
#arquivo .bashrc
alias meucurso='mula -u seu_login -p sua_senha -i indice_do_curso -d fup'
#exemplo
alias fupisfun='mula -u 00427166322 -p minha_senha -i 3 -d fup'
```
Então, basta dar um `meucurso list` para listar o conteúdo do seu curso.
### Arquivo de configuração
Se preferir, pode salvar os dados em um arquivo de configuração.
```json
{
"username": "seu_login",
"password": "sua_senha",
"index": "indice_do_curso",
"database": "fup | ed | poo",
}
```
Se não adicionar o password, o script vai perguntar sua senha em cada operação. Agora basta dar um:
```bash
mula -c arquivo.json list
```
## Listando estrutura de um curso
Supondo que você criou o alias `meucurso`, vamos continuar os exemplos com ele.
Para saber se está funcionando, você pode listar as questões do seu curso.
``` bash
meucurso list
```
## Adicionando
### Utilizando labels
O procedimento padrão para inserção é utilizando as questões do repositório remoto configurado no arquivo de configurações. Para FUP, o repositório padrão está no [github](https://github.com/qxcodefup/arcade#qxcodefup).
Para enviar as questão `A idade de Dona @monica` e `@opala bebedor` para a seção 5 do seu curso do moodle use:
``` bash
meucurso add -s 5 monica opala
# ou utilizando o modo compacto
meucurso add 5:monica 5:opala
```
Ou enviar questões para diferentes seções utilizando o modo compacto
``` bash
meucurso add 5:002 6:003
```
O comando `add` tem várias opções de personalização.
``` bash
-s SECTION, --section SECTION
-d DUEDATE, --duedate DUEDATE
duedate 0 to disable or duedate yyyy:m:d:h:m
-m MAXFILES, --maxfiles MAXFILES
max student files
-v VISIBLE, --visible VISIBLE
make entry visible 1 or 0
```
### Atualizando atividades em bloco
Você pode atualizar todas as questões de uma seção com o comando `update`.
``` bash
meucurso update <quais problemas> <o que queres atualizar>
```
Quais problemas pode ser
- `--all` ou `-a` para todas as questões do curso
- `--sections 4` ou `-s 4` para todas as questões da seção 4
- `--labels monica opala` ou `-l monica opala` para as questão de label monica e opala
Opções podem ser
- `--content` ou `-c` para atualizar o conteúdo das questões pelo conteúdo do repositório remoto
- `--duedate 2021:5:28:11:30` para definir o horário de fechamento da atividade, ou `0` para desabilitar
- `--exec` para habilitar as opções de execução (run, avaliate, debug)
- `--visible <0 | 1>` para mostrar ou esconder a questões.
- `--maxfiles 3` para definir o número máximo de arquivos que o aluno pode enviar.
Exemplos:
``` bash
# esconder todas as questões da sessão 3
meucurso update -s 3 --visible 0
# atualizar o conteúdo de todas as questões do curso usando o repositório remoto e também mudar o máximo de arquivos para 5
meucurso update --all --content --maxfiles 5
# mudar a data de fechamento das questões da seção 4
meucurso update -s 4 --duedate 2021:5:28:11:30
```
## Removendo
``` bash
# para remover todos os vpls da seção 4
$ meucurso rm -s 4
# para remover as questões passando os IDS
$ meucurso rm -i 19234 18234 19234
# para remover TODOS os vpls do curso
$ meucurso rm --all
```
Raw data
{
"_id": null,
"home_page": "https://github.com/senapk/mula",
"name": "mula",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7, <4",
"maintainer_email": "",
"keywords": "programming,learning",
"author": "David Sena Oliveira",
"author_email": "sena@ufc.br",
"download_url": "https://files.pythonhosted.org/packages/13/01/9f0cdd29ecf1e6294a54ffc67425a721cf0af9e9b8e24c0dfde7296ff494/mula-0.0.5.tar.gz",
"platform": null,
"description": "# mula - Moodle Update for Lazy Admins\n\n<!-- toc -->\n- [Instala\u00e7\u00e3o](#instala\u00e7\u00e3o)\n- [Configurando acesso ao curso](#configurando-acesso-ao-curso)\n - [Modo r\u00e1pido](#modo-r\u00e1pido)\n- [Facilitando acesso](#facilitando-acesso)\n - [Alias](#alias)\n - [Arquivo de configura\u00e7\u00e3o](#arquivo-de-configura\u00e7\u00e3o)\n- [Listando estrutura de um curso](#listando-estrutura-de-um-curso)\n- [Adicionando](#adicionando)\n - [Utilizando labels](#utilizando-labels)\n - [Atualizando atividades em bloco](#atualizando-atividades-em-bloco)\n- [Removendo](#removendo)\n<!-- toc -->\n\n## V\u00eddeo de Apresenta\u00e7\u00e3o (4 min)\n\n[![image](https://gist.github.com/assets/4747652/d3fc3448-8766-41e9-8416-a3fae6044e3b)](https://youtu.be/BB8-IkU2X6U)\n\n## Instala\u00e7\u00e3o\n\n```bash\n\npip install mula\n\n## se aparecerem mensagens que a pasta ~/.local/bin n\u00e3o est\u00e1 no PATH\necho \"export PATH=$PATH:~/.local/bin\" >> ~/.bashrc\n```\n\n## Configurando acesso ao curso\n\n### Modo r\u00e1pido\n\n```bash\nmula -u <usuario> -p <senha> -i <numero_do_curso> -d <fup | ed | poo> list\n```\n\nPara obter o n\u00famero do curso, basta olhar o \u00faltimo n\u00famero na URL do seu curso do moodle.\n\n![image](https://gist.github.com/assets/4747652/f6f81a28-d3dc-4d30-ac20-e90ff85ddcdd)\n\nSe n\u00e3o passar o par\u00e2metro -p ou --password, a senha ser\u00e1 perguntada de forma interativa.\n\nAgora basta dar um `mula -u <usuario> -p <senha> -i <indice_do_curso> -d <fup | ed | poo> list` para listar o conte\u00fado do seu curso.\n\n## Facilitando acesso\n\n### Alias\n\nVoc\u00ea pode criar um alias para o comando, para n\u00e3o precisar passar os par\u00e2metros toda vez.\n\n```bash\n#arquivo .bashrc\nalias meucurso='mula -u seu_login -p sua_senha -i indice_do_curso -d fup'\n\n#exemplo\nalias fupisfun='mula -u 00427166322 -p minha_senha -i 3 -d fup'\n```\n\nEnt\u00e3o, basta dar um `meucurso list` para listar o conte\u00fado do seu curso.\n\n### Arquivo de configura\u00e7\u00e3o\n\nSe preferir, pode salvar os dados em um arquivo de configura\u00e7\u00e3o.\n\n```json\n{\n \"username\": \"seu_login\",\n \"password\": \"sua_senha\",\n \"index\": \"indice_do_curso\",\n \"database\": \"fup | ed | poo\",\n}\n```\n\nSe n\u00e3o adicionar o password, o script vai perguntar sua senha em cada opera\u00e7\u00e3o. Agora basta dar um:\n\n```bash\nmula -c arquivo.json list\n```\n\n## Listando estrutura de um curso\n\nSupondo que voc\u00ea criou o alias `meucurso`, vamos continuar os exemplos com ele.\n\nPara saber se est\u00e1 funcionando, voc\u00ea pode listar as quest\u00f5es do seu curso.\n\n``` bash\nmeucurso list\n```\n\n## Adicionando\n\n### Utilizando labels\n\nO procedimento padr\u00e3o para inser\u00e7\u00e3o \u00e9 utilizando as quest\u00f5es do reposit\u00f3rio remoto configurado no arquivo de configura\u00e7\u00f5es. Para FUP, o reposit\u00f3rio padr\u00e3o est\u00e1 no [github](https://github.com/qxcodefup/arcade#qxcodefup).\n\nPara enviar as quest\u00e3o `A idade de Dona @monica` e `@opala bebedor` para a se\u00e7\u00e3o 5 do seu curso do moodle use:\n\n``` bash\nmeucurso add -s 5 monica opala\n\n# ou utilizando o modo compacto\n\nmeucurso add 5:monica 5:opala\n```\n\nOu enviar quest\u00f5es para diferentes se\u00e7\u00f5es utilizando o modo compacto\n\n``` bash\nmeucurso add 5:002 6:003 \n```\n\nO comando `add` tem v\u00e1rias op\u00e7\u00f5es de personaliza\u00e7\u00e3o.\n\n``` bash\n -s SECTION, --section SECTION\n -d DUEDATE, --duedate DUEDATE\n duedate 0 to disable or duedate yyyy:m:d:h:m\n -m MAXFILES, --maxfiles MAXFILES\n max student files\n -v VISIBLE, --visible VISIBLE\n make entry visible 1 or 0\n```\n\n### Atualizando atividades em bloco\n\nVoc\u00ea pode atualizar todas as quest\u00f5es de uma se\u00e7\u00e3o com o comando `update`.\n\n``` bash\nmeucurso update <quais problemas> <o que queres atualizar>\n```\n\nQuais problemas pode ser\n\n- `--all` ou `-a` para todas as quest\u00f5es do curso\n- `--sections 4` ou `-s 4` para todas as quest\u00f5es da se\u00e7\u00e3o 4\n- `--labels monica opala` ou `-l monica opala` para as quest\u00e3o de label monica e opala\n\nOp\u00e7\u00f5es podem ser\n\n- `--content` ou `-c` para atualizar o conte\u00fado das quest\u00f5es pelo conte\u00fado do reposit\u00f3rio remoto\n- `--duedate 2021:5:28:11:30` para definir o hor\u00e1rio de fechamento da atividade, ou `0` para desabilitar\n- `--exec` para habilitar as op\u00e7\u00f5es de execu\u00e7\u00e3o (run, avaliate, debug)\n- `--visible <0 | 1>` para mostrar ou esconder a quest\u00f5es.\n- `--maxfiles 3` para definir o n\u00famero m\u00e1ximo de arquivos que o aluno pode enviar.\n\nExemplos:\n\n``` bash\n# esconder todas as quest\u00f5es da sess\u00e3o 3\nmeucurso update -s 3 --visible 0\n\n# atualizar o conte\u00fado de todas as quest\u00f5es do curso usando o reposit\u00f3rio remoto e tamb\u00e9m mudar o m\u00e1ximo de arquivos para 5\nmeucurso update --all --content --maxfiles 5\n\n# mudar a data de fechamento das quest\u00f5es da se\u00e7\u00e3o 4\nmeucurso update -s 4 --duedate 2021:5:28:11:30\n```\n\n## Removendo\n\n``` bash\n# para remover todos os vpls da se\u00e7\u00e3o 4\n$ meucurso rm -s 4\n\n# para remover as quest\u00f5es passando os IDS\n$ meucurso rm -i 19234 18234 19234\n\n# para remover TODOS os vpls do curso\n$ meucurso rm --all\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "mula: Tool for moodle vpl operations",
"version": "0.0.5",
"project_urls": {
"Bug Reports": "https://github.com/senapk/mula/issues",
"Homepage": "https://github.com/senapk/mula",
"Source": "https://github.com/senapk/mula/"
},
"split_keywords": [
"programming",
"learning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6d53bc0051463032d65eb45f12b97087805b165264e9bfb603ffb9caf81a0f7b",
"md5": "1921b8a98eed73786e8e4513768ed3c3",
"sha256": "9bf079cb53fda927c17aae7bb630b896db1730200b8367499a8dfbf56770f9e3"
},
"downloads": -1,
"filename": "mula-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1921b8a98eed73786e8e4513768ed3c3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7, <4",
"size": 16991,
"upload_time": "2024-03-16T12:47:24",
"upload_time_iso_8601": "2024-03-16T12:47:24.902266Z",
"url": "https://files.pythonhosted.org/packages/6d/53/bc0051463032d65eb45f12b97087805b165264e9bfb603ffb9caf81a0f7b/mula-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "13019f0cdd29ecf1e6294a54ffc67425a721cf0af9e9b8e24c0dfde7296ff494",
"md5": "99a9253ad10c3404db3f1562fe3ce85e",
"sha256": "8171a0be5d386a8740f7ab6fde4e7c888ebe8d4403546c1893051b51e9fe2dd5"
},
"downloads": -1,
"filename": "mula-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "99a9253ad10c3404db3f1562fe3ce85e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7, <4",
"size": 16823,
"upload_time": "2024-03-16T12:47:27",
"upload_time_iso_8601": "2024-03-16T12:47:27.115463Z",
"url": "https://files.pythonhosted.org/packages/13/01/9f0cdd29ecf1e6294a54ffc67425a721cf0af9e9b8e24c0dfde7296ff494/mula-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-16 12:47:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "senapk",
"github_project": "mula",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "mula"
}