Medical para OpenERP

Dentro de OpenERP y las verticalizaciones existentes existe un desarrollo interesante que es el poryecto Medical, fue abandonado por sus desarrolladores iniciales, ahora he decidido darle soporte.

Las razones:

El proyecto habla por si mismo y se debe mantener vivo.
Creo en OpenERP y todas las mejoras que se van implementando, brinda a cualquier proyecto que se construya sobre su suite evolucionar muy bien e crecer en el mercado.
Algunas otras que por no generar discusión no las detallo.

Dejo el link de proyecto, este incluye una breve descripción y de la intención del mismo.

https://launchpad.net/openerpmedical

Actualmente existe solo en launchpad luego crearé un proyecto en github.com

Saludos !

Anuncios

Nueva Notacion para Domain

Revisando el codigo, me encontre con algomuy interesante sobre las expresiones y nuevas notaciones aceptadas en openobject, en especial con los dominios.

La notacion anterior era (aun soportada) una tupla con 3 elementos:

un campo, un operador, un valor.

Ahora usan la notacion con el operador como prefijo[1], entonces los operadores soportados son AND, OR y NOT (&, |, !), con aridad 2 los primeros y aridad 1 el NOT (se aplica AND por defecto).

Entonces como seria lo nuevo?

['&', ('active', '=', True), ('value', '!=', 'foo')]
['|', ('active', '=', True), ('state', 'in', ['open', 'draft'])
['&', ('active', '=', True), '|', '!', ('state', '=', 'closed'), ('state', '=', 'draft')]
['|', '|', ('state', '=', 'open'), ('state', '=', 'closed'), ('state', '=', 'draft')]
['!', '&', '!', ('id', 'in', [42, 666]), ('active', '=', False)]

Talves el ejemplo con su traduccion en SQL para aclarar su funcionamiento:

[('foo', '=', 'bar')]
foo = 'bar'

[('id', 'in', [1,2,3])]
id in (1, 2, 3)

[('field', '=', 'value'), ('field', '<>', 42)]
( field = 'value' AND field <> 42 )

[('&', ('field', '<', 'value'), ('field', '>', 'value'))]
( field < 'value' AND field > 'value' )

[('|', ('field', '=', 'value'), ('field', '=', 'value'))]
( field = 'value' OR field = 'value' )

[('&', ('field1', '=', 'value'), ('field2', '=', 'value'), ('|', ('field3', '<>', 'value'), ('field4', '=', 'value')))]
( field1 = 'value' AND field2 = 'value' AND ( field3 <> 'value' OR field4 = 'value' ) )

[('&', ('|', ('a', '=', 1), ('b', '=', 2)), ('|', ('c', '=', 3), ('d', '=', 4)))]
( ( a = 1 OR b = 2 ) AND ( c = 3 OR d = 4 ) )

[('|', (('a', '=', 1), ('b', '=', 2)), (('c', '=', 3), ('d', '=', 4)))]
( ( a = 1 AND b = 2 ) OR ( c = 3 AND d = 4 ) )

Espero les sea de mucha utilidad.

Tomado de: http://christophe-simonis-at-tiny.blogspot.com/2008/08/new-new-domain-notation.html

[1]http://en.wikipedia.org/wiki/Polish_notation