Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
OpenObject On Python
Python
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
artwork
doc
examples
.gitignore
AUTHORS
COPYING
MANIFEST.in
README.md
ooop.py
setup.py
test.py
test_dot.py
test_improve.py
test_inherits.py

README.md

Warning: this is a very initial release.

Contacting us:

Discussion group: openerp-ooop Post Issues on github: GITHUB Issues

How to install?

python


$ python setup.py install

jython


$ jython setup.py install

Examples (python console):

Connecting to server


  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')

Retrieving all from model


  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> o.ResPartner.all()

Retrieving 1 record from model


  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> n = o.ResPartner.get(1)

Accesing attributes


  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> n = o.ResPartner.get(1)
  >>> print n.name

or in related objects:


  >>> print len(n.address) 
  >>> print n.address[0].name 

Deleting 1 record


  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> n = o.ResPartner.get(1)
  >>> n.delete()

Deleting multiple records

100 firsts


  >>> from ooop import OOOP
  >>> o = OOOP(dbname='demo')
  >>> n = o.ResPartner.all()
  >>> n[1:100].delete()

all


  >>> n.delete()

Filtering

You can extend arguments using ne, lt, lte, gt, gte, like and ilike:


  >>> o.ResPartner.filter(name='Guido')
  >>> o.ResPartner.filter(name__ne='Guido')
  >>> o.ResPartner.filter(name__lt='Guido')
  >>> o.ResPartner.filter(name__lte='Guido')
  >>> o.ResPartner.filter(name__gt='Guido')
  >>> o.ResPartner.filter(name__gte='Guido')
  >>> o.ResPartner.filter(name__like='Guido')
  >>> o.ResPartner.filter(name__ilike='guido')
  >>> o.ResPartner.filter(id__in=[1,2,5,8])
  >>> o.ResPartner.filter(id__not_in=[1,2,5,8])

Creating new


  >>> n = o.ResPartner.new()
  >>> n.name = 'Partner created with OOOP'
  >>> n.save()

  >>> n = o.ResPartner.new(name='Guido', active=True)
  >>> n.save()

with related objects

To save all related objects of an object:


  >>> n = o.ResPartner.new()
  >>> n.name = 'Partner created with OOOP'

  >>> addr = o.ResPartnerAddress.new()
  >>> addr.street = "Testing related objects"

  >>> n.address.append(addr)
  >>> n.save_all()

  >>> m = [o.ResPartnerAddress.new(name='New Address', street='New Street', active=True)]
  >>> n = o.ResPartner.new(name='Guido', address=m, active=True)
  >>> n.save_all()

Export Graph

Get a model graphviz file in dot, png, jpg or svg:


o.export(filename="file", filetype="dot", showfields=True, model="res.partner", deep=None)

or simply:


o.export("file", "png", False)

also you can do


o.ResPartner.export(filename="file", filetype="png", deep=0)

Also you can generate a jpg file (res.partner.jpg in the example) with just especific table definition


o.ResPartner.export()

but if you want to get deep in the tables just need:


o.ResPartner.export(deep=1)

The deep param its relative to the model param, deep means how far you want to get with the relations.

Something went wrong with that request. Please try again.