Editor en línea

Información general

El editor en línea le permite editar el código fuente de sus compilaciones desde el navegador web. También le da la posibilidad de abrir terminales, consolas de Pyhton y Shell de Odoo y Notebooks.

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

Puede acceder al editor de una compilación a través de las pestañas de las ramas, el menú desplegable de las compilaciones o agregando /odoo-sh/editor al nombre del dominio de su compilación (por ejemplo, https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor).

Editar el código fuente

El directorio de trabajo está compuesto por las siguientes carpetas:

.
├── 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

Puede editar el código fuente (archivos en /src) en las compilaciones de desarrollo y de prueba.

Nota

Sus cambios no se propagarán a la nueva compilación, debe confirmarlas en su código fuente si quiere conservarlos.

Para compilaciones de producción, el código fuente deber ser de solo lectura porque aplicar cambios locales a un servidor de producción no es una buena práctica.

Para abrir un archivo en el editor, solo haga doble clic en panel de navegación de archivos ubicado a la izquierda.

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

Puede comenzar a hacer los cambios que desee. Puede guardarlos en el menú Archivo ‣ Guardar .. Archivo o presionando las teclas Ctrl+S para el atajo.

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

Si guarda un archivo Python que está en la ruta de complementos de su servidor de Odoo, este lo detectará y lo volverá a cargar en automático para que sus cambios se apliquen en seguida sin tener que reiniciar el servidor de forma manual.

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

Sin embargo, si el cambio es un dato almacenado en la base de datos, como la etiqueta de un campo o una vista, debe actualizar el módulo correspondiente para aplicar los cambios. Puede actualizar el módulo del archivo abierto en ese momento desde el menú Odoo ‣ Actualizar módulo actual. Tenga en cuenta que el archivo que se considera abierto en ese momento es el archivo resaltado en el editor de texto, no el archivo resaltado en el explorador de archivos.

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

También puede abrir una terminal y ejecutar el comando:

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

Confirmar y enviar cambios

Tiene la posibilidad de confirmar y subir sus cambios en su repositorio de Github.

  • Abra una terminal (Archivo ‣ Nuevo ‣ Terminal),

  • Cambie el directorio a ~/src/user usando cd ~/src/user,

  • Indique sus cambios usando git add,

  • Haga commit a sus cambios usando git commit,

  • Haga push a sus cambios usando git push https HEAD:<branch>.

En este último comando,

  • https es el nombre de su repositorio remoto Github HTTPS (por ejemplo, https://github.com/username/repository.git),

  • HEAD es la referencia de la última revisión que realizó,

  • <branch>debe reemplazarse por el nombre de la rama a la cuál quiera subir los cambios, probablemente sea la rama actual si trabaja en una compilación de desarrollo.

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

Nota

El remoto SSH Github no se usa porque su clave privada SSH no está alojada en sus contenedores de compilación (por obvias razones de seguridad) ni reenviado a través de un Agente SSH (al acceder al editor a través del navegador web) y por lo tanto, no puede autenticarse a Github usando SSH. Tiene que usar el remoto HTTPS para su repositorio de Github para subir sus cambios, que se agregan automáticamente con el nombre de https en sus remotos Git. Se le pedirá que introduzca su nombre de usuario de Github y su contraseña. Si activó la autenticación de dos pasos en Github, puede crear un, token de acceso personal y usarlo como contraaseña. Conceder el permiso repo es suficiente.

Nota

La carpeta fuente de Git ~/src/user no se comprueba en una rama sino en una revisión separada: esto es porque las compilaciones trabajan en revisiones específicas y no sobre ramas. En otras palabras, esto significa que puede tener varias compilaciones en la misma rama, pero en diferentes revisiones.

Una vez que los cambios se aplican, de acuerdo a su comportamiento push de la rama, es posible que se cree una nueva compilación. Puede continuar trabajando en el editor desde donde los aplico, pues tendrá la misma revisión que la nueva compilación que se creo. Siempre asegúrese de estar en el editor de una compilación usando la última revisión de su rama.

Consolas

Puede abrir las consolas de Python, que son shells IPython interactivas. Una de las adiciones más interesantes para usar una consola de Python en lugar de un shell IPhython dentro de una terminal son las capacidades display rich. Gracias a esto, será capaz de mostrar objetos en HTML.

Por ejemplo, puede mostrar celdas de un archivo CSV usando pandas.

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

También puede abrir la consola de Odoo Shell para jugar con el registro de Odoo y con los métodos del modelo de su base de datos. También puede leer o escribir directamente en sus registros.

Advertencia

En una consola de Odoo, las transacciones se confirman automáticamente. Esto significa, por ejemplo, que los cambios en los registros se aplican efectivamente a las bases de datos. Si cambia el nombre de un usuario, el nombre de ese usuario también cambia en la base de datos. Por lo tanto, debe usar las consolas de Odoo con cuidado en las bases de datos de producción.

Puede usar env para invocar modelos del registro de su base de datos, por ejemplo env['res.users'].

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

La clase Pretty le da la posibilidad de mostrar fácilmente listas y dicts de una manera bonita, usando el rich display mencionado anteriormente.

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

También puede usar pandas para mostrar gráficos.

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