Editor en línea¶
Información general¶
El editor en línea te permite editar el código fuente de tus compilaciones desde un navegador web, así como abrir terminales, consolas de Python, consolas del shell de Odoo y Notebooks.

Puedes acceder al editor de una compilación desde las pestañas de las ramas, el menú desplegable de las compilaciones o si agregas /odoo-sh/editor al nombre del dominio de tu 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
Puedes editar el código fuente (los archivos en /src) en las compilaciones de desarrollo y de prueba.
Nota
Tus cambios no pasarán a la nueva compilación. Si quieres conservarlos deberás confirmarlos en tu código fuente mediante commits.
El código fuente en las compilaciones de producción es de solo lectura, ya que aplicar cambios locales en un servidor de producción no es una buena práctica.
El código fuente de tu repositorio de GitHub está ubicado en /src/user.
El código fuente de Odoo está ubicado en:
/src/odoo (odoo/odoo),
/src/enterprise (odoo/enterprise) y
/src/themes (odoo/design-themes).
Para abrir un archivo en el editor solo tienes que hacer doble clic sobre él en el panel del explorador de archivos ubicado a la izquierda.

Haz los cambios necesarios y luego ve al menú
para guardarlos o usa el atajo Ctrl+S.
Si guardas un archivo Python que está en la ruta de complementos de tu servidor de Odoo, el sistema lo detectará y lo volverá a cargar de manera automática para aplicar tus cambios de inmediato sin que tengas que reiniciar el servidor manualmente.

Sin embargo, si el cambio es un dato almacenado en la base de datos, como la etiqueta de un campo o una vista, es necesario que actualices el módulo correspondiente para aplicar el cambio. Puedes actualizar el módulo del archivo que está abierto con el menú
. Ten en cuenta que el archivo considerado como abierto en ese momento es el que está resaltado en el editor de texto y no en el explorador de archivos.
También puedes abrir una terminal y ejecutar el siguiente comando:
$ odoo-bin -u <comma-separated module names> --stop-after-init
Confirmar y enviar cambios¶
Puedes confirmar y subir tus cambios a tu repositorio de GitHub.
Abre una terminal (
).Cambia al directorio ~/src/user con
cd ~/src/user
.Prepara tus cambios con
git add
.Confirma tus cambios con
git commit
.Sube tus cambios con
git push https HEAD:<branch>
.
En este último comando:
https es el nombre de tu repositorio remoto de GitHub en HTTPS (por ejemplo, https://github.com/username/repository.git).
HEAD hace referencia a la última revisión que confirmaste.
<branch> debe ser el nombre de la rama a la que quieres subir los cambios. Es muy probable que sea la rama actual si estás trabajando en una compilación de desarrollo.

Nota
El repositorio remoto de GitHub por SSH no se usa porque tu clave privada SSH no está alojada en los contenedores de tu compilación (por obvios motivos de seguridad) ni se reenvía a través de un agente SSH (ya que accedes a este editor desde un navegador web) y, por lo tanto, no puedes usar SSH en GitHub para autenticarte. Debe usar el HTTPS remoto de tu repositorio de GitHub para poder subir tus cambios, que se agregan en automático con el nombre https en tus remotos de Git. Tendrás que escribir tu nombre de usuario y tu contraseña de GitHub. Si activaste la autenticación de dos factores en GitHub puedes crear un token de acceso personal y usarlo como contraseña. Basta con conceder el permiso repo
.
Nota
La carpeta fuente de Git ~/src/user no está vinculada a una rama, sino a una revisión separada, pues las compilaciones trabajan en revisiones específicas y no sobre ramas. En otras palabras, esto significa que puedes tener varias compilaciones en la misma rama, pero en diferentes revisiones.
Es posible que se cree una nueva compilación después de que subas los cambios, todo depende del comportamiento de subida de las ramas. Puedes seguir trabajando en el editor desde donde los subiste, pues tendrá la misma revisión que la nueva compilación creada, pero siempre asegúrate de estar en el editor de una compilación que use la revisión más reciente de tu rama.
Consolas¶
Puedes abrir consolas de Python, que son shells interactivos de IPython. Una de las ventajas más interesantes de usar una consola de Python en lugar de un shell de IPhython dentro de una terminal es la capacidad de visualización enriquecida y gracias a ella podrás mostrar objetos en HTML.
Por ejemplo, puedes mostrar las celdas de un archivo CSV con pandas.

También puedes abrir la consola del shell de Odoo para probar el registro de Odoo y los métodos de modelo de tu base de datos. También puedes leer o escribir directamente en tus 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 de forma inmediata en la base de datos. Si cambias el nombre de un usuario, el nombre del usuario también cambiará en tu base de datos, así que debes usar las consolas de Odoo con precaución en las bases de datos de producción.
Puedes usar env para invocar modelos del registro de tu 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
te permite mostrar listas y diccionarios con facilidad de forma llamativa mediante la visualización enriquecida antes mencionada.

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