OpenERP – Programacion: Crear un modulo sin saber nada de python

Recuerden que no se un apice de python asi que de seguro voy a equicar mucho en esto, pero de que funciona funciona

Bien se que prometi hacer un post sobre launchpad y Bazaar pero la verdad me da mucha flojera hacerlo, asi que voy a lo que me gusta, el desarrollo de aplicaciones, bien dicho esto, a comenzar.

Primero que nada de lo poco que conosco esta herramienta puedo decir que antes que te sientes ha hacer un modulo, debes de hacer un buen diagrama de entidad relacion o de jerarquia de clases de lo que piensas desarrollar, vamos con algo basico:

Ahora veamos como funciona esto de los modulos:

Primero siempre deben de estar en un directorio, el nombre bueno no tiene importancia, pero es importante para el desarrollador asi que ponganle un nombre relativo a lo que contiene.

Luego para desarrollar un modulo se necesitan primero la definicion de las clases (codigo en python) cada clase que definas va a resultar en una tabla en la base de datos de postgresql y la defincion de la interface (codigo en XML.)

Bien debemos definir algunas cosas antes y es en si lo correspondiente a el nombre del modulo, dependencias, archivos que lo componen en fin cosas asi. esto se hace en dos archivos que son mandatorios y son __init__.py en el que defnes que archivos vaz a importar en tu modulo, incluido el actual, el otro archivo se llama __openerp__.py en este defines el nombre del modulo, las dependencias, que archivo de xml usas, si vaz a poner datos de ejemplo, bueno ya veremos esto a profundidad mas adelante.

Hay otras carpetas como el de la traduccion pero no son obligatorias si no desea que tu modulo sea traducible y que explicare en otro momento.

LA DOCUMENTACION

OpenERP tiene bastante documentacion pero para mi gusto insuficiente en ejemplos, pero aqui les van los links de la documentacion.

NOTA IMPORTANTE:No se asusten si la documentacion es para la version 6 eso es lo de menos en la 7 funcionan igual todos los conceptos.

Esta es la madre de la documentacion para desarrolladores: https://doc.openerp.com/v6.0/developer/

Aqui se encuentra la documentacion para tipos de campos y como se definen, no se preocupen mas adelante voy a explicar como se usan.

Para realizar las interfaces: https://doc.openerp.com/v6.0/developer/2_6_views_events/

Para los menus: https://doc.openerp.com/v6.0/developer/2_7_menu_action/

Vamos a comenzar con esto, lo primero crear una base de datos:

Esta la pantalla de inicio de openERP:

inicio

Le damos sobre “Gestionar Bases de datos” y veremos esta pantalla:

createdb

Alli le ponemos el nombre de nuestra base de datos para el caso del ejemplo le he puesto “notas” y bueno la contraseña que quieran es con la que vana entrar a la aplicacion web, no es la contraseña del postgresql que siempre es “openpgpwd” que es con la que instala por defecto claro puedes cambairla en la instalacion si lo prefieres, pero yo recomiendo no hacerlo en etapas de aprendizaje ya que te pueden dar dolores de cabeza, pero ese ya es otro cantar.

Cuando cargue va a mostrarte esta pantalla:

1

Lo primero que hacemos es darnos “super poderes” con esto me refiero a que vamos a activar las caracteristicas tecnicas del administrador, para ello vamos a user y seleccionamos el administrador, bueno es el unico usuario de nuestra aplicacion.

2

Alli le damos click sobre el nombre “Administrator” y en la pantalla que vemos le damos “editar” y en la pestaña “Access Rights” le marcamos “Technical Features” como en la imagen

3

Le damos en grabar “Save” y pulsamos F5 veran como aparecen muchas mas opciones ahora en el menu de la izquierda.

4

Antes que nada voy a empezar con lo basico, he leido muchos manuales de openERP y para un estudiante son una tortura pues se van siempre a lo complicado y no comienzan por donde comienza todo desde la interface, asi que lo primero que hare es hacer los menus. Pero openERP no permite hacer menus sin modulos o sin acciones, asi que ha definir nuestras clases y cosas similares.

Recuerden que no se un apice de python asi que de seguro voy a equicar mucho en esto, pero de que funciona funciona

Para definir una clase lo primero es importar la madre de todas las librerias from osv import osv, fields luego ya definimos una clase de esta manera (recuerden la indentacion que en python es muy importante en WordPress no me lo permite asi que todo se ve como se ve) voy acomentar liena a linea :

class ctrl_notas_profesores(osv.osv):
_name = “ctrl_notas.profesores”
_description = “Profesores”
_columns = {
‘nombre’: fields.char(“nombre”, size=64, required=True),
‘direccion’: fields.char(“nombre”, size=200, required=False),
‘telefono’: fields.char(“telefono”, size=64, required=False),
‘email’: fields.char(“nombre”, size=200, required=False),
}
ctrl_notas_profesores()

Bien ven cosestas etiquetas:

_name: es el nombre oficial de la clase, y va a ser el nombre de la tabla en postgresql asi nuestra tabla se va a llamar “ctrl_notas_profesores”

_descripcion: Es una etiqueta para la tabla

_columns: son las columnas de la tabla y las propiedades de nuestra clase.

Bien asi defino todas mis clases como podran verlo en el codigo mas adelante.

Bien ahora como definir la interface, pues para ello vamos a la filosofia de openerp para el existen vistas y las vistas tiene diferentes formatos pero como estamos basicos vamos por las vistas tipo listado que openerp llama “tree” y las de formularios que llama “form”, aqui la definicion de un tree:

<record model=”ir.ui.view” id=”notas_profesores_tree”>
<field name=”name”>ctrl_notas.profesores.tree</field>
<field name=”model”>ctrl_notas.profesores</field>
<field name=”type”>tree</field>
<field name=”arch” type=”xml”>
<tree string=”profesores”>
<field name=”nombre”/>
<field name=”direccion”/>
<field name=”telefono”/>
<field name=”email”/>
</tree>
</field>
</record>

Todas las vistas vienen del modelo “ir.ui.view” y debend e tener un id unico en este caso que en este caso es notas_profesores_tree: “notas” por el modulo, “profesores” por la clase que voy a definir y “tree” por que es un listado, supongo que se pued eponer cualquier otro nombre pero es mejor usar una nomenclatura.

Ahora el nombre este va con puntos en lugar de subguiones y tambien le puedes poner lo que te de la gana pero ponle algo que recuerdes y mejor si sigues la nomenclatura.

El model es el modelo en otras palabras lo que le pusistes a tu clase en el _name y este si es mandatorio no puedes ponerle otro que nosea el que le pusistes a tu clase.

Type: es el tipo en este caso defino un listaso asi que es “tree”, pero puede ser form si es un formulario u otro como “calendar” que no voy a tratar ahora.

Luego viene la etiqueta <tree string=”profesores”> siempre que pongas la etiqueta que abre el contenido de tu vista debes de seguirlo con string=”alguntexto” sino vaz a recibir mensajes de error.

Luego los campos cada uno en una etiqueta “field” y con la etiqueta name apuntado al nombre que le pusiste a la columna, puedes poner los campos que quieras, no tiene que ser todos los que van en el fomrulario (solo para el caso de tree).

Asi tenemos nuestra vista de listado “tree”, bueno definir un form es muy similar cmo lo pueden comprobar en el codigo siguiente para la definicion de un form:

<record model=”ir.ui.view” id=”notas_profesores_form”>
<field name=”name”>ctrl_notas.profesores.form</field>
<field name=”model”>ctrl_notas.profesores</field>
<field name=”type”>form</field>
<field name=”arch” type=”xml”>
<form string=”profesores”>
<field name=”nombre”/>
<field name=”direccion”/>
<field name=”telefono”/>
<field name=”email”/>
</form>
</field>
</record>

Si se fijan solo han cambiado el ID, el nombre y en lugar de decir <tree string=”profesores”> ahora dice <form string=”profesores”> es la unica diferencia.

Pero nos falta algo mas, definir las acciones para asi enlazarlas a un elemento del menu y se hace de esta manera:

<record id=”notas_profesores_action” model=”ir.actions.act_window”>
<field name=”name”>Profesores</field>
<field name=”res_model”>ctrl_notas.profesores</field>
<field name=”view_type”>form</field>
<field name=”view_mode”>tree,form</field>
</record>

Todas las acciones decienden del modelo ir.actions.act_window y lo resaltante de esta etiqueta xml son:

id=”nombre de la accion” : valido para el menu
name=”name”:nombre</field>
name=”res_model”: nombre de la clase
name=”view_type”: tipo de la vista mandatoria
name=”view_mode” es el orden que se muestra para mi primero tree y luego form

Por ultimo la definicion de los menus:

Menu principal (el que va en la barra principal de menus):

<menuitem name=”Control de Notas” id=”notas_menu” sequence=”1″/>

Como este menu no tiene parent osea elemento superio va a ser colocado en la parte principal, el nombre es la etiqueta del menu y el ID el que vamos a usar para referenciar los submenus.

Submenu principal:

Es obligatorio que si quieres tener un elemento que haga algo (muestre vistas) debe de depender de un submenu principal, nos e peuden definir menus sin submenus principales, son como ramas de arbol, no se puede definir una hoja sin rama en este caso el submenu seria la rama y se hace de esta manera:

<menuitem name=”Datos generales” id=”notas_menu_general” parent=”notas_menu”/>

Donde:

name: es la etique se muestra.
id: el identificador
parent: el menu del que depende, los submenus siempre dependen del un menu anterior, asi que en este caso dependen de el menu principal.

Ahora el menu que enrealidad hace algo, la hoja del arbol:

<menuitem action=”notas_profesores_action” id=”notas_profesores_menu” sequence=”1″ parent=”notas_menu_general”/>

Esta tiene un elemento mas que el anterior y es:

action: accion que va ejecutar el menu y que definimos antes y le dimos como id notas_profesores_action

En algunos puedes ver la etiqueta sequece estanos indica la posicion en que se va amostrar un elemento del menu, si antes o despues de alguno que tenga una secuencia meno o mayor.

Ya esta todo preparado para instalar nuestro modulo, para ello he creado los archivos necesarios y son estos:

__openerp__.py

# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<
http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <
http://www.gnu.org/licenses/>.
#
##############################################################################

{
‘name’: ‘Control de notas’,
‘version’: ‘0.1’,
‘description’: “””
Ejemplo de como desarollar modulos con openerp
“””,
‘author’: ‘Jorge Prado’,
‘depends’: [],
‘data’: [
‘ctrl_notas_vistas.xml’,
],
‘init_xml’: [],
‘demo_xml’: [],
‘update_xml’: [],
‘license’: ‘Other OSI approved licence’,
‘installable’: True,

‘active’: False,
}

# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

__init__.py

# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<
http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <
http://www.gnu.org/licenses/>.
#
##############################################################################

import ctrl_notas

# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

ctrl_notas.py

# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################

from osv import osv, fields

class ctrl_notas_profesores(osv.osv):
_name = “ctrl_notas.profesores”
_description = “Profesores”
_columns = {
‘nombre’: fields.char(“nombre”, size=64, required=True),
‘direccion’: fields.char(“nombre”, size=200, required=False),
‘telefono’: fields.char(“telefono”, size=64, required=False),
‘email’: fields.char(“nombre”, size=200, required=False),
}
ctrl_notas_profesores()

ctrl_notas.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<openerp>
<data>
<menuitem name=”Control de Notas” id=”notas_menu” sequence=”90″/>
<menuitem name=”Datos generales” id=”notas_menu_general” parent=”notas_menu”/>
<menuitem name=”Alumnos” id=”notas_alumnos_menu” parent=”notas_menu_general” />
<menuitem name=”Cursos” id=”notas_cursos_menu” parent=”notas_menu_general” />
<menuitem name=”Evaluaciones” id=”notas_evaluaciones_menu” parent=”notas_menu_general” />
<record model=”ir.ui.view” id=”notas_profesores_tree”>
<field name=”name”>ctrl_notas.profesores.tree</field>
<field name=”model”>ctrl_notas.profesores</field>
<field name=”type”>tree</field>
<field name=”arch” type=”xml”>
<tree string=”profesores”>
<field name=”nombre”/>
<field name=”direccion”/>
<field name=”telefono”/>
<field name=”email”/>
</tree>
</field>
</record>

<record model=”ir.ui.view” id=”notas_profesores_form”>
<field name=”name”>ctrl_notas.profesores.form</field>
<field name=”model”>ctrl_notas.profesores</field>
<field name=”type”>form</field>
<field name=”arch” type=”xml”>
<form string=”profesores”>
<field name=”nombre”/>
<field name=”direccion”/>
<field name=”telefono”/>
<field name=”email”/>
</form>
</field>
</record>
<record id=”notas_profesores_action” model=”ir.actions.act_window”>
<field name=”name”>Profesores</field>
<field name=”res_model”>ctrl_notas.profesores</field>
<field name=”view_type”>form</field>
<field name=”view_mode”>tree,form</field>
</record>

<menuitem action=”notas_profesores_action” id=”notas_profesores_menu” sequence=”1″ parent=”notas_menu_general”/>
</data>
</openerp>

Lo que voy a hacer es que me cree un menu principal, un submenu y dentro de el un elemento que depende de el, el porque del submenu es por que no te permite tener acciones directas sobre el menu sin un menu que lo agrupe, asi “Control de Notas” va en la barra de menus, “Datos generales“, va en la izquierda y colgados de el los demas.

Pero como hago que esto se instale en mi openERP pues tenemos que copiar el modulo en la carpeta donde estan los modulos en openERP y esta se encuentra en: <rutadondeinstalastesopenerp>\Server\server\openerp\addons\, alli copiamos la carpeta que contiene nuestros cuatro archivos. Luego reiniciamos el servidor, vamos a servicios y le damos reiniciar el por que pues openERP recompila los archivos .py cuando se carga el servicio de otra manera no lee los cambios en los modulos, si solo modificas el archivo xml no tienes por que reiniciar pues no se compila. Ve con calma despues de reiniciar pues como compila demora en responder, aun que el administrador de servicios te diga que ya reinicio puede tardar un poco en activarse y si te vaz al browser y quieres hacer algo te dira que no hay servicio, bueno en otras palabras pero lo dice.

Lugo ve a los modulos instalados, sigues en el menu de configuracion, luego borra el filtro que dice “Installed” y tu modulod ebe de aparecer en la pantalla, sino aparece es que algo ha fallado en el archivo __openerp__.py

5

Aqui sin el filtro y con nuestro modulo llamado control de notas:

1

Pues le damos sobre “Install” y si todo va bien vamos a ver que se refresca el browser y ahora aparece mi aplicacion como la diseñe:

1

Pero que ha pasado, tengo dos etiquetas llamadas “nombre” como puede ser eso, bien esto me da opcion para eplicar las clases un poquito mas.

class ctrl_notas_profesores(osv.osv):
_name = “ctrl_notas.profesores”
_description = “Profesores”
_columns = {
‘nombre’: fields.char(“nombre”, size=64, required=True),
‘direccion’: fields.char(“nombre”, size=200, required=False),
‘telefono’: fields.char(“telefono”, size=64, required=False),
‘email’: fields.char(“nombre”, size=200, required=False),
}
ctrl_notas_profesores()

Fijense en el codigo de arriba, en la definicion del campo “email” pues le he puesto como etiqueta “nombre”, alli esta la falla, debi ponerle “Email”, esta son las etiquetas, bien como se define una columna:

‘nombredelacolumna’: fields.tipodedato(“etiqueta”, size=tamanio, requiered=siesrequeridoono),

Donde:

‘nombredelacolumna’: es el nombre del campo en la base de datos y el nombre que usaremos para nuestras vistas, no olviden las comillas simples antes y despues.

fields.tipodedato: tipodedato es el tipo de dato y pueden ver los que soporta openerp en:https://doc.openerp.com/v6.0/developer/2_5_Objects_Fields_Methods/field_type.html/

Etiqueta: los tipos de datos siempre van a tener una etiqueta que es la que se va a nostrar en las vistas, asi que puedes ponerlo lo que quieras, menos signos de puntuacion que no sena del idioma ingles, en otras palabras las tildes y eñes estan prohibidas, pues sino te manda error al instalar/compilar, esas las puedes definir en las vistas con una etiqueta “string” dentro del elemento field asi: <field name=”anio” string=”Año”>

required: indica si el campo es requerido o no lo es, hace que en la tabla el campo sea marcado como nonull y que cuando salga de color azul en la vista de formulario bien hasta qui he llegado hoy, pero puedo mostrales como queda en formulario:

1

Como pueden ver, el framework se encarga de todo el resto, validaciones, hacer el inser, update, delete y listado, no hay nada mas que hacer ya tienen todo hecho.

Prometo regresar con mas y con el codigo del modulo para descargar, sino que esta fue una semana muy fregada en el trabajo y ando recontra cansado, felizmente es viernes y mañana no toca trabajar.

Acerca de

Antes que nada voy a dejar en claro algo, en este blog escribo como se me place, asi que no busquen errores de ortografia o de redaccion que los van a encontrar a montones y tampoco me critiquen o me digan nada sobre ellos pues no tengo intencion alguna de cambiarlos, lo que escribo lo dejo asi y no lo corrijo,claro esta a menos que sean lineas de codigo. Jorge Prado Anci, profesional en desarrollo de aplicaciones, en especial las dirigidas a bases de datos. He trabajado con VFP en casi todas sus versiones, se algo de Java (que no me gusta, es eso solo no me gusta, es bueno pero no me gusta), lo suficiente de PHP como para tener mi propio CMS(es que sigue sin gustarme por la capacidad de desorden que te permite este “lenguaje”), VB lo conoci y lo deteste tanto que lo olvide al punto de no querer adoptar ni por obligacion a su reemplazante VB .NET (por lo mismo de Java) y si C# este si me encanta y aun que conozco bastante bien el lenguaje, la verdad es que me falta mucho del Framework (del 100% estare en un 65%). Soy un apasionado por el orden (en los proyectos de desarrollo), de la programacion en capas (de MVC conozco pero no he aplicado mucho), los estandares y las condenadas pruebas unitaria. Venga creo que ya con esto fue suficiente.

Tagged with: , , , , , , , , , , , , , , , , ,
Publicado en OpenERP
23 comments on “OpenERP – Programacion: Crear un modulo sin saber nada de python
  1. muy bueno el mini tutorial se agradece pero tengo unas preguntas como puedo realizar pruebas en el modulo antes de instalarlo ? ,
    y no has pensado en un tutorial para los reportes eso se te agradeceria de por vida

    • xmeele dice:

      Gracias por el comentario, en respuesta a tu pregunta pues no he encontrado forma de hacerlo, lo que yo hago es crear una base detos nueva para pruebas y alli instalo los modulos en caso de querer saber algun valor a la mitad de un proceso pues nada uso el mensaje de alerta de error de openerp que es esta linea: raise osv.except_osv(‘titulo’ ‘mensaje’ )
      es la unica forma que he encontrado hasta ahora para depurar un modulo o buscar el error, tambien cuando te da errores es bueno consultar el log que esta en /server/server/openerp-server.log alli normalmente te dice donde estan los errores.
      En lo de los reportes estoy haciendolo ahora si lo termino para el lunes lo tienes en la web.

  2. gato_salvaj3 dice:

    Gracias amigo, ya me estaban saliendo canas con el memento oficial

  3. julian dice:

    gracias por la info amigo , te agradezo si tienes mas

  4. Fernando dice:

    hola:

    a la luz de los comentarios me imagino que seré el único, pero ya que llevo unas cuantas horas probándolo… a mi me da error. En principio el xml parece estar bien con lo cual es en los python y no tengo ni idea, he intentado cambiar las comillas como en el xml para que funcionase pero esa no era la solución.

    El módulo aparece en el openerp, pero no lo deja instalar, no sé alguna chorrada será, pero todo una pena

    • xmeele dice:

      Algunas cosas para que veas donde está el error:
      Primero debes de saber en que te da error si es en el xml o en .py openerp te va amostrar una pantalla con algun msg de por que no puede instalarlo, si es en el xml te va decir que hay un error en el xml y si en los py pues te sale un debug grandisimo.
      Cunado es falla del xml pues ve a la carpeta donde está el log (capetadondeinstalasteopenerp\Server\server\openerp-server.log) revizalo y al final del archivo veraz que está copiado la defincion de la vista que da el error y lees lineas arriba te indica algo referido al error.
      Si es en los .py pues en la ventana que te muestra busca el nombre de algun archivo que pertenesca tu modulo alli te va a indicar la linea que esta causando la falla.

      • Fernando dice:

        Al final he conseguido solucionarlo. Digamos que he buscado a alguien que leyera el tutorial mejor que yo xd. Muchas gracias por el tutorial por cierto, que me había olvidado en mi comentario y más aún por contestarme en tan poco tiempo.

        Sin pretender molestar demasiado tengo un par de dudas más, estas ya un pelín más de concepto.Aclarando que tal y como está el tutorial funciona perfectamenteSon en la vista xml:

        no entiendo porque el secuence “90” ¿se supone que es para que no llegue a mostrarse nunca? ¿se mostraría solo su hubiese 89 apartados más o es por alguna razón?

        y la siguiente es que justo debajo hay estos 3 que por lo que entiendo, no sirven para nada, es decir, sí si se crearan, pero no están creadas las vistas ni los objetos asociados a ellas ¿no?

        Reitero una vez más mi agradecimento porque gente como usted con tutoriales como este hacen que la vida de los que nos iniciamos resulte mucho más fácil, y al hacerlo en esta lengua aún más porque si ya es complejo de entender áun más si se añade la dificultad idiomática.

      • xmeele dice:

        SI he creado luego tres menus que no tienen referencias a vistas, es que en realidad tenia la idea de crerar un modulo con todos esos elementos pero al final no lo puse pues la verdad me dio flojera y bueno creo que con uno bastaba para explicar lo que me proponia.
        EN cuanto a la secuencia no es para que no se muestre nunca, lo que hace OpenErp es mostrar la secuencia mas baja que encuentre asi que en este caso pues si no encuentra un 89 pues va a mostrar primero el 90, no es que no lo vaya a mostrar nunca y los otros no se muestran por que no tienen action’s definidas.

  5. […] la que nacieron todos mis ancestros y en la que vivo pocos días despues de nacer, vino entonces el segundo post de OpenERP donde explico como desarrollar un módulo desde cero y que me deleito leyendolo y juro hacer uno […]

  6. Juan Carlos dice:

    Hola un saludo desde Ecuador, me encanto tu tutorial no hay mucha documentacion sobre openerp 7, yo he usado la version 6 y la arquitectura del frame respecto a la 7 ha variado mucho, ahora estoy utilizando openerp para un proyecto de fin de ciclo un modulo de gestion de becarios, estoy fascinado con esta tecnologia ademas segun lei en la version 8 que saldra vendra incorporado CSM *-*; bro sino fuera mucha molestia podrias facilitar el codigo yo tengo un error de XML: Architecture no se que estare haciendo mal me serviria para orientarme mejor tu app🙂

  7. Luis Felipe dice:

    Hola amig@s, xmeele el CRM que trae el OpenERP es bueno?, es q quiero integrar OpenERP con vtiger pero no encuentro nada de info sobre eso, me pudieras guiar si tienes algun conocimiento al respecto, por cierto muy bueno tu tutorial, gracias.

    • xmeele dice:

      La verdad que no conosco vtiger pero lo que acabo de leer es que integra el crm y control de inventarios y cosas similares, pues te diré que OpenERP contiene eso y mucho más por ahora en lo que he utilizado el CRM de OpenERP es unido a ventas, a proyectos y presupuestos, el CRM puro de OpenERP solo se encarga de manejar el proceso de los clientes y nada más, luego como OpenERP es modular puede integrarse con todos los otros módulos como ventas, almacenes (multiples) las ventas pueden integrarse con el proceso de facturación y el módulo contable (existen configuraciones para cada sistema contable de los diferentes paises), bueno existen un sin fin de módulos especializados para cada cosa que quieras, pero te recomendaría que esperes un poco si recién vas a implementarlo ya que la versión 8 está por salir y esta integra todo eso con un portal de ventas online.

  8. Luis Felipe dice:

    Gracias xmeele, inslate la v8 y se ve muy bien, al final mi jefe quiere q integre el vtiger CRM con el OpenERP asi q pasare un poco de trabajo, vamos a ver q tal me sale.

  9. […] hablar ahora de cosas básicas como los archivos __init__.py o __openerp__.py pues ya lo hice en el post anterior, sino que voy a ir al grano a los widgets, a los diferentes controles que se pueden usar […]

  10. may dice:

    actualmente hay algún modulo de ejecución presupuestaria? para projecterp- phyton ???

  11. neto dice:

    tengo un servidor centos 6.5 y openerp7 y no encuentro la carpeta addons para poner mi modulo me podria desir como lo encuentro para innstalar el modulo

    • xmeele dice:

      Trata con estos comandos:

      which openerp-server
      o
      whereis openerp-server

      Ahora podr{ias buscar entre los archivos de todo el disco el archivo openerp-server.conf y al abrirlo ver el parametoro “addons_path” ese te va adecir exactamente dond est{a la carpeta de addons.

  12. neto dice:

    hola existe un modulo de tickets de soporte
    yyyy como puedo lograr enviar una notificacion en openerp

  13. william tellez dice:

    Buenas noches, copie el codigo pero no me funciono, ni siquiera lo ve el openerp, sera porque instale la versión 8?????

    Si es esto sabes como solucionarlo para probar??

    Gracias

  14. DANIEL dice:

    EXCELENTE TRABAJO, HAY QUE PRACTICARLO PARA ENTENDERLO A TRABAJAR SE HA DICHO

  15. Juan dice:

    Excelente material, necesito un apoyo u orientaión como puedo hacer que un usuario logeado se muestre su nombre por default en todas las vistas del sistema como si fuera su propia sesión podrias orientarme en ello? algun ejemplo de una función donde pueda guiarme
    te lo agradeceria

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Escribe tu dirección de correo electrónico para suscribirte a este blog, y recibir notificaciones de nuevos mensajes por correo.

Únete a otros 441 seguidores

Blog Stats
  • 304,391 hits
A %d blogueros les gusta esto: