Modulo de Odoo


##Comenzamos el tutorial del modulo de odoo para la versión 9.0

Lo primero que debemos hacer es abrir la terminal turkey postgres y ahí obtener la dirección IP Después abrimos un putty con esta dirección y nos logueamos. Ahora lo que debemos hacer es ir a la carpeta addons : cd opt/odoo/addons ahí pondremos : ./odoo.py scaffold openacademy addons , esto nos creara en addons una carpeta llamada openacademy podremos verlo con ls.

Ahora vamos al proyecto Creamos el proyecto de netbeans

  1. Php aplication from remote server next
  2. Cambiamos el nombre del proyecto y next
  3. En Project URLEscribimos la dirección IP y editamos manage:
  4. Creamos una conexión SFTP si no la tenemos y rellenamos el formulario
  5. Ahora comprobamos la conexión y ok
  6. En upload directory pondremos la dirección de addons y le damos a next
  7. Nos saldrán unas carpetas y elegimos solo la de openacademy

y listo ya tenemos el proyecto creado.

##Definimos un Modelo Vamos a definir el modelo llamado Course. El curso tiene un titulo (obligatorio) y una descripción. Para ello editamos el archivo models.py

##Definimos los datos de demostración. Creamos unos datos como ejemplo cumpliendo el modelo Courses con unos pocos cursos de demostración Para ello editamos el archivo demo.xml

##Definimos nuevas entradas de menú Definimos estas entradas para acceder Courses y Sessions desde el menú de Open Academy.El usuario podrá ver todos los cursos y crear/editar cursos.

Crear el archivo openacademy.xml y modificar el código data de openerp.py

##Editar form view usando XML Views define la forma en que se muestran los registros de un modelo. LA vista es declarada como un registro del modelo ir.ui.view. El campo arch indica que tipo de vista va a tener el modelo (el campoarch debe ser declarado como type=”xml”) . Podremos elegir varios tipos form,tree,graph etc

Tree views muestra los registros de la tabla y Forms se usa para crear y editar esos registros

Creamos nuestra vista de course que mostrara los nombres y las descripciones.

##Notebooks En el form view del curso pondremos la descripción de campo en otra etiqueta, después sera fácil añadir otras tablas que añadan información. Modificamos el openacademy.xml

##Buscar los cursos Los podremos encontrar por su titulo o descripción Modificaremos de nuevo opneacademy.xml

#Relaciones entre modelos

##Creamos un modelo Session Este modelo permitirá apuntarse a personas en los cursos y podrán elegir el día la duración y el numero de asientos. Para ello tendrá que escribir su nombre

  • Creamos la clase Session en models.py
  • Añadimos el acceso a la session en openacademy.xml

##Relaciones Many2one Usando many2one ,modificamos los modelos curso y sesión para reflejar la relación con otros modelos

  • Cada curso tiene un usuario responsable; el valor del campo es un registro del modelo incorporado res.users.
  • Cada sesión tiene un instructor; el valor del campo es un registro del modelo incorporado res.partner.
  • Cada sesión se relaciona con un curso; el valor del campo es un registro del modelo openacademy.course y es necesario. *Adaptamos la vista
  1. Modificamos el models.py y le añadimos los many2one relevantes
  2. Los añadimos en openacademy.xml en las vistas

##Relaciones One2many Es la inversa de many2one , modifica los modelos para reflejar la relacione entre cursos y sesiones

  1. modificamos la clase course 2.Añadimos el campo en la vista

##Relación múltiple many2many Cada registro de un modelo puede relacionarse con cualquier numero de registros del otro modelo.

Usamos many2many, para modificar el modelo Session y así relacionar cada sesión con unos asistentes. Los asistentes serán representados por un registro.

  • Modificamos la clase Session *añadimos a la vista

##Editar el contenido existente

  • Ahora usaremos el modelo herencia para modificar el modelo del socio y añadiremos un instructor de tipo booleano, y usaremos many2many para relacionar la sesión con el socio
  • Usaremos la vista de herencia, para que se vean las casillas

Para ello:

  1. Crearemos un fichero partner.py y lo añadiremos al inti.py 2.Crearemos un fichero partner.xml y lo añadiremos al openerp.py

##Dominios en los campos relacionales Cuando seleccionamos el instructor en la session, solo los instructores(instructor=True) deben ser visibles

##Dominios mas complejos Creamos un nuevo socio con categorías Teacher / Level 1 y Teacher / Level 2. El instructor puede ser instructor o profesor dependiendo de la session

  1. Modificamos el dominio en la sesión en models.py 2.Modificamos partner xml para obtener el acceso a las categorías del asociado

Campos computados

  • Añadimos el porcentaje de coger sitios en la session
  • Lo mostramos en las vistas
  • Creamos la barra de porcentaje
  1. Añadimos un campo computado a la session en models.py
  2. Mostramos el campo en la vista en openacademy.xml

##Valores por defecto Marcaremos por defecto la fecha de hoy a crear la session

  • Para ello definimos start_date como today
  • Añadiremos el campo active en la clase session,y pondremos la session active por defecto ##Relaciones Many2one Usando many2one ,modificamos los modelos curso y sesión para reflejar la relación con otros modelos
  • Cada curso tiene un usuario responsable; el valor del campo es un registro del modelo incorporado res.users.
  • Cada sesión tiene un instructor; el valor del campo es un registro del modelo incorporado res.partner.
  • Cada sesión se relaciona con un curso; el valor del campo es un registro del modelo openacademy.course y es necesario. *Adaptamos la vista
  1. Modificamos el models.py y le añadimos los many2one relevantes
  2. Los añadimos en openacademy.xml en las vistas

##ONCHANGE

La siguiente parte de código no sirve para conseguir una advertencia cuando se introducen valores no válidos, como por ejemplo, un número nativo de asientos o más participantes que asientos.

##RESTRICCIONES DE UN MÓDULO

De nuevo introduciremos código en Models.py, referente a restricciones, en este caso servirá para advertirnos si el instructor no está presente en los asientos de su propia sesión. Continuamos en Models.py. En este caso se añadirá una limitación, la cual comprueba que la descripción del curso y el título del curso son diferentes, y también que el nombre del curso es único. Debido a lo introducido anteriormente se ha deshabilitado la posibilidad de utilizar la función “duplicar”, por ello debemos volver a implementarla (con el siguiente código):

##VISTAS AVANZADAS En el siguiente paso, nos dedicaremos a darle formato a diferentes partes. Para la primera haremos una modificación en el apartado Sesion de tal forma que las sesiones que duren menos de cinco días serán de color azul , y las que duren más de quince días, de color rojo. Continuamos con la agregación de un calendario para el apartado Sesion que nos permitirá ver los eventos asociados a cada curso abierto. Puntos de vista de la búsqueda, con esto nos referimos a añadir un botón para filtrar los cursos para los cuales el usuario actual es el responsable en la vista de búsqueda de cursos que se ha seleccionado por defecto. Lo siguiente que agregaremos serán los diagramas de Gantt, que permitirá al usuario ver la programación de sesiones relacionada con el módulo openacademy. Para continuar, agregaremos una vista de gráficos en sesión que muestre, para cada curso, el número de asistentes bajo la forma de un gráfico de barras. Por último, en este tutorial añadiremos la vista kanba, una vista que muestra las sesiones agrupadas por columnas.