Editor on-line

Visão geral

O editor on-line permite que você edite o código-fonte de suas compilações a partir de um navegador da web. Ele também dá a possibilidade de abrir terminais, consoles Python, consoles Odoo Shell e Notebooks.

../../../_images/interface-editor.png

Você pode acessar o editor de uma compilação pelas abas de ramificações, pelo menu suspenso de compilações ou adicionando /odoo-sh/editor ao nome de domínio da compilação (ex.: https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor).

Editar o código-fonte

O diretório de trabalho é composto pelas seguintes pastas:

.
├── home
│    └── odoo
│         ├── src
│         │    ├── odoo                Odoo Community source code
│         │    │    └── odoo-bin       Odoo server executable
│         │    ├── enterprise          Odoo Enterprise source code
│         │    ├── themes              Odoo Themes source code
│         │    └── user                Your repository branch source code
│         ├── data
│         │    ├── filestore           database attachments, as well as the files of binary fields
│         │    └── sessions            visitors and users sessions
│         └── logs
│              ├── install.log         Database installation logs
│              ├── odoo.log            Running server logs
│              ├── update.log          Database updates logs
│              └── pip.log             Python packages installation logs

Você pode editar o código-fonte (arquivos em /src) nas compilações de desenvolvimento e de teste.

Nota

Suas alterações não serão propagadas para novas compilações; você deve fazer commit delas no código-fonte, se quiser que persistam.

Para compilações de produção, o código-fonte é somente leitura, pois aplicar alterações locais em um servidor de produção não é uma prática recomendada.

  • O código-fonte de seu repositório do Github está localizado em /src/user,

  • O código-fonte do Odoo está localizado em

Para abrir um arquivo no editor, basta clicar duas vezes nele no painel do navegador de arquivos à esquerda.

../../../_images/interface-editor-open-file.png

Em seguida, você pode começar a fazer suas alterações. Você pode salvar as alterações pelo menu Arquivo ‣ Salvar .. Arquivo ou pressionando o atalho Ctrl+S.

../../../_images/interface-editor-save-file.png

Se você salvar um arquivo Python que esteja no caminho dos complementos do seu servidor Odoo, o Odoo o detectará e recarregará automaticamente para que suas alterações sejam logo refletidas, sem a necessidade de reiniciar o servidor manualmente.

../../../_images/interface-editor-automaticreload.gif

Entretanto, se a alteração for um dado armazenado na base de dados, como o rótulo de um campo ou uma visualização, será necessário atualizar o módulo correspondente para aplicar a alteração. Você pode atualizar o módulo do arquivo aberto no momento usando o menu Odoo ‣ Atualizar módulo atual. Observe que o arquivo considerado como aberto no momento é o arquivo focalizado no editor de texto, não o arquivo destacado no navegador de arquivos.

../../../_images/interface-editor-update-current-module.png

Você também pode abrir um terminal e executar o comando:

$ odoo-bin -u <comma-separated module names> --stop-after-init

Fazer commit e enviar suas alterações

Você tem a possibilidade de fazer commit e enviar suas alterações para o repositório do Github.

  • Abra um terminal (Arquivo ‣ Novo ‣ Terminal),

  • Altere o diretório para ~/src/user usando cd ~/src/user,

  • Organize suas alterações usando git add,

  • Faça commit de suas alterações usando git commit,

  • Envie suas alterações usando git push https HEAD:<branch>.

Nesse último comando,

  • https é o nome do seu repositório remoto HTTPS do Github (por exemplo, https://github.com/username/repository.git),

  • HEAD é a referência da última revisão que você fez commit,

  • <branch> deve ser substituído pelo nome da ramificação para a qual você quer enviar as alterações – provavelmente a ramificação atual, se você trabalha em uma compilação de desenvolvimento.

../../../_images/interface-editor-commit-push.png

Nota

O controle remoto SSH do Github não é usado porque sua chave privada SSH não está hospedada em seus contêineres de compilação (por questões óbvias de segurança), nem é encaminhada através de um agente SSH (já que você acessa esse editor por um navegador da web) e, portanto, não pode se autenticar no Github com SSH. Você precisa usar o HTTPS remoto do seu repositório do Github para fazer push das alterações, o qual é adicionado automaticamente com o nome https nos seus controles remotos do Git. Você será solicitado a inserir seu nome de usuário e senha do Github. Se tiver ativado a autenticação de dois fatores no Github, você poderá criar um token de acesso pessoal e usá-lo como senha. Conceder a permissão repo é suficiente.

Nota

A pasta de código-fonte do Git ~/src/user não é verificada em uma ramificação, mas sim em uma revisão separada: Isso ocorre porque as compilações funcionam em revisões específicas e não em ramificações. Em outras palavras, isso significa que você pode ter várias compilações na mesma ramificação, mas em revisões diferentes.

Depois que suas alterações forem enviadas, de acordo com o comportamento de push da sua ramificação, uma nova compilação pode ser criada. Você pode continuar a trabalhar no editor do qual fez o push, pois ele terá a mesma revisão da nova compilação que foi criada, mas sempre se certifique de estar em um editor de uma compilação com a revisão mais recente da ramificação.

Consoles

Você pode abrir consoles Python, que são shells interativos IPython. Uma das vantagens mais interessantes de usar um console Python em vez de um shell Python em um terminal são os recursos de exibição rica. Com isso, é possível exibir objetos em HTML.

Você pode, por exemplo, exibir células de um arquivo CSV usando pandas.

../../../_images/interface-editor-console-python-read-csv.png

Você também pode abrir um console do Odoo Shell para brincar com o registro do Odoo e os métodos de modelo da sua base de dados. Também é possível ler ou gravar diretamente em seus registros.

Aviso

Em um console do Odoo, o commit das transações é feito automaticamente. Isso significa, por exemplo, que as alterações nos registros são aplicadas efetivamente na base de dados. Se você alterar o nome de um usuário, o nome do usuário também será alterado em sua base de dados. Portanto, você deve usar os consoles do Odoo com cuidado nas bases de dados de produção.

É possível usar env para invocar modelos do registro da sua base de dados, por exemplo, env['res.users'].

env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]

A classe Pretty oferece a possibilidade de exibir facilmente listas e ditados de uma forma bonita, usando a exibição rica mencionada acima.

../../../_images/interface-editor-console-odoo-pretty.png

Você também pode usar pandas para exibir gráficos.

../../../_images/interface-editor-console-odoo-graph.png