Odoo10 -Construccion Modulo

March 27, 2019 | Author: cristian | Category: X Path, Server (Computing), Tecnología, World Wide Web, Information Science
Share Embed Donate


Short Description

Como construir un modulo de odoo 10 en español...

Description

Construcción de modulo en Odoo 10 Iniciar/detener el servidor Odoo Odoo utiliza una arquitectura cliente / servidor en el que los clientes son los navegadores web que acceden al servidor Odoo a través de RPC. La lógica de negocio y la extensión se lleva a cabo generalmente en el lado del servidor, aunque apoyan las funciones del cliente (por ejemplo, una nueva representación de datos tales como mapas interactivos) puede ser añadido al cliente. Con el fin de iniciar el servidor, basta con invocar el comando  odoo-bin en la cáscara, la adición de la ruta completa al archivo si es necesario:

odoo - bin El servidor es detenido por golpear Ctrl-C dos veces desde el terminal, o matando el proceso OS correspondiente.

Construir un módulo Odoo  Ambas extensiones de servidor y cliente c liente se empaquetan como módulos que módulos que se cargan opcionalmente en una base de datos. datos. Los módulos Odoo puede agregar nueva lógica de negocio a un sistema, o modificar y ampliar la lógica de negocio existente: un módulo puede ser creado para añadir reglas de contabilidad de su país para el apoyo de la contabilidad general de Odoo, mientras que el siguiente módulo añade soporte para la visualización en tiempo real de una flota de autobuses. Todo en Odoo por lo tanto comienza y termina con módulos.

Composición de un módulo Un módulo Odoo puede contener una serie de elementos:

Objetos de negocio (Business ( Business objects) objects) Declarado como clases de Python, estos recursos se conservan automáticamente por Odoo basado en su configuración

Archivos de información (Data ( Data files) files) XML o CSV archivos de metadatos que declaran (vistas o flujos de trabajo), los datos de configuración (módulos de parametrización), datos de demostración y más

Controladores web (Web (Web controllers) controllers) Manejar las solicitudes de los navegadores Web

Datos de la web estática (Static (Static web data) data) Imágenes, archivos CSS o Javascript empleado por la interfaz web o sitio web

Estructura del módulo Cada módulo es un directorio dentro de un directorio de módulos. módulos . Los directorios módulo se especifican mediante el uso de la -addons-path opción.

Tip La mayoría de las opciones de línea de comandos también se pueden configurar mediante un archi archi vo de config uración .

Un módulo Odoo se declara por su manifiesta su manifiesta (manifest). Consulte la documentación la documentación de manifiesto al respecto. Un módulo es también un paquete de Python con un archivo __init__.py , que contiene instrucciones de importación para diversos archivos de Python en el módulo. Por ejemplo, si el módulo tiene un solo mymodule.py archivo __init__.py  puede contener: from . import mymodule Odoo proporciona un mecanismo para ayudar subcomando scaffold para crear un módulo vacío:

a

$ odoo-bin scaffold

configurar

un

nuevo

módulo,  odoo-bin tiene

un

El comando crea un subdirectorio para su módulo, y crea automáticamente un montón de archivos estándar para un módulo. La mayoría de ellos simplemente contener código XML o comentado. El uso de la mayor parte de esos archivos se explicará a lo largo de este tutorial.

Ejercicio Creación de módulos Utilice la línea de comandos anterior para crear un módulo vacío abierto Academia, e instalarlo en Odoo. 1. 2. 3.

Invocar el comando odoo-bin scaffold openacademy addons . Adaptar el archivo de manifiesto a su módulo. No preocuparse por los demás archivos.

Mapeo objeto-relac objeto-relacional ional Un componente clave de Odoo es la capa ORM. Esta capa evita tener que escribir la mayor parte de SQL con la mano y proporciona servicios de extensibilidad y seguridad (  2 ). Los objetos de negocio se declaran como clases de Python que se extienden Model, que los integra en el sistema automatizado de persistencia. Los modelos pueden ser configurados mediante el establecimiento de una serie de atributos bajo su definición. El atributo más importante es  _name que se requiere y define el nombre para el modelo en el sistema Odoo. He aquí una definición mínimamente completa de un modelo:

from odoo import models class MinimalModel MinimalModel(models (models. .Model): _name = 'test.model'

Campos del modelo Los campos que se utilizan para definir lo que el modelo puede almacenar y dónde. Los campos son definidos como atributos en la clase del modelo:

from odoo import models, fields class LessMinimalModel LessMinimalModel(models (models. .Model): _name = 'test.model2' name = fields fields. .Char()

Los atributos comunes  Al igual que el modelo en sí, sus campos se pueden configurar, mediante el paso de configuración de atributos como parámetros:

name = field field. .Char(required Char(required= =True)  Algunos atributos están disponibles en todos los campos, estos son los más comunes:

string( unicode, Por defecto: el nombre del campo) La etiqueta del campo en la interfaz de usuario (visible por los usuarios).

required( bool, Por defecto: False) Si el campo True no puede estar vacío, o bien debe tener un valor por defecto o que siempre se le da un valor al crear un registro.

help( unicode, Por defecto: '') Formato largo, proporciona una información sobre herramientas ayuda a los usuarios en la interfaz de usuario.

index( bool, Por defecto: False) Pide que Odoo crear un índice un  índice de base de datos en la columna. Por defecto en Odoo se escribe default.

Campos simples Hay dos amplias categorías de campos: campos "simples", que son valores atómicos almacenados directamente en la mesa del modelo y campos "relacionales" vinculación de registros (del mismo modelo o de diferentes modelos). Ejemplo de campos simples son Boolean, Date, Char .

Campos reservados Odoo crea algunos campos en todos los modelos (  1 ). Estos campos son gestionados por el sistema y no se deben escribirse. Pueden ser leídos si útil o necesario:

id(( Id id Id)) El identificador único para un registro en su modelo.

create_date(( Datetime create_date Datetime)) Fecha de creación del registro.

create_uid(( Many2one create_uid Many2one)) Usuario que creó el registro.

write_date(( Datetime write_date Datetime)) Fecha de la última modificación del registro.

write_uid(( Many2one write_uid Many2one)) Usuario que modificó por última vez el registro.

Los cam campos pos especia especiale less Por defecto, Odoo también requiere un campo name en todos los modelos para diferentes comportamientos de visualización y búsqueda. El campo que se utiliza para estos fines puede ser anulado por el ajuste  _rec_name.

Ejercicio

Definir un modelo Definir un nuevo modelo de datos curso en el módulo openacademy . Un curso tiene un título y una descripción. Los cursos deben tener un título. Editar el archivo openacademy/models/models.py para incluir un curso de clases. openacademy/models.py from odoo import models, fields, api class Course Course(models (models. .Model): _name = 'openacademy.course' name = fields fields. .Char(string Char(string= ="Title" "Title", , required required= =True) description = fields fields. .Text()

 Archivos  Archivo s de información información Odoo es un sistema altamente impulsado por datos. Aunque el comportamiento se personaliza mediante código Python, una parte del valor de un módulo se encuentra en los datos que establece al cargarse. Existen algunos módulos únicamente para añadir datos en Odoo Tip Los módulos de datos se declara a través de data files, files ,  archivos XML con elementos . Cada elemento crea o actualiza un registro de base de datos.

identifier}" > {a value} value}

 



model es el nombre del modelo Odoo para el registro. id es un identificador externo , permite referír al registro (sin necesidad de conocer su identificador en la base de datos). elementos tienen un name que es el nombre del campo en el modelo (por ejemplo description). Su cuerpo es el valor del campo.

Los archivos de información tienen que ser declarados en el archivo de manifiesto para ser cargados, pueden ser declaradas en la lista 'data' (siempre cargado) o en la lista 'demo' (sólo se cargan en modo de demostración).

Ejercicio

Definir los datos de demostrac demostración ión Crear datos de demostración llenando el modelo de Cursos con unos cuantos cursos de demostración. Editar el archivo openacademy/demo/demo.xml para incluir algunos datos.

openacademy/demo.xml  > >Course 0 0 >Course 0's description Can have multiple lines > >Course 1 1 > >Course 2 2 >Course 2's descriptio description n

 Acciones y Menús Menús  Acciones y menús son registros regulares en la base de datos, normalmente declarados a través de archivos de datos. Las acciones pueden ser activadas de tres maneras: 1. 2. 3.

haciendo clic en los elementos elementos de menú (vinculado a acciones acciones específicas) haciendo clic en los botones en las vistas (si éstos están conectados a las acciones) como acciones contextuales en objetos

Debido a que los menús son algo complejas, para declarar hay un acceso directo para declarar una ir.ui.menu y conectarlo a la acción correspondiente con mayor facilidad.

> >Ideas Ideas >idea.idea idea.idea >tree,form tree,form />

Peligro La acción debe ser declarado antes de su correspondiente menú en el archivo XML. Los archivos de datos se ejecutan secuencialmente, el id de la acción debe estar presente en en la base de datos antes de que se puede crear el menú.

Ejercicio

Definir nuevas entradas de menú

Definir nuevas entradas de menú para acceder a los cursos bajo la entrada del menú OpenAcademy. Un usuario debe ser capaz de:  

mostrar una lista de todos los cursos crear / modificar cursos 1. 2.

Crear openacademy/views/openacademy.xml con una acción y los menús que desencadenan la acción Añadirlo a la lista data de openacademy/__manifest__.py

openacademy/__manifest__.py  'data': [ 'data': # 'security/ir.model.access.csv', 'templates.xml' , 'views/openacademy.xml', 'views/openacademy.xml' , ], # only loaded in demonstration mode 'demo': 'demo' : [

openacademy/views/openacademy.xml  >Courses Courses >openacademy.course >form form >tree,form tree,form > Create the first course
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF