Skip to main content

Library to access Tryton server as a client

Project description

A library to access Tryton’s models like a client.

Example of usage

>>> from proteus import config, Model, Wizard, Report


Configuration to connect to a sqlite memory database using trytond as module.

>>> config = config.set_trytond('sqlite:///:memory:')

Installing a module

Find the module, call the activate button and run the upgrade wizard.

>>> Module = Model.get('ir.module')
>>> party_module, = Module.find([('name', '=', 'party')])
>>> Wizard('ir.module.activate_upgrade').execute('upgrade')

Creating a party

First instanciate a new Party:

>>> Party = Model.get('')
>>> party = Party()
>>> < 0

Fill the fields:

>>> = 'ham'

Save the instance into the server:

>>> > 0

Setting the language of the party

The language on party is a Many2One relation field. So it requires to get a Model instance as value.

>>> Lang = Model.get('ir.lang')
>>> en, = Lang.find([('code', '=', 'en')])
>>> party.lang = en
>>> party.lang.code

Creating an address for the party

Addresses are store on party with a One2Many field. So the new address just needs to be appended to the list addresses.

>>> address ='42')
>>> party.addresses #doctest: +ELLIPSIS

Adding category to the party

Categories are linked to party with a Many2Many field.

So first create a category

>>> Category = Model.get('party.category')
>>> category = Category()
>>> = 'spam'

Append it to categories of the party

>>> party.categories.append(category)
>>> party.categories #doctest: +ELLIPSIS

Sorting addresses and register order

Addresses are ordered by sequence which means they can be stored following a specific order. The set_sequence method stores the current order.

>>> address ='69')
>>> address ='23')

Now changing the order.

>>> reversed_addresses = list(reversed(party.addresses))
>>> while party.addresses:
...     _ = party.addresses.pop()
>>> party.addresses.extend(reversed_addresses)
>>> party.addresses.set_sequence()
>>> party.addresses == reversed_addresses

Project details

Release history Release notifications | RSS feed

This version


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for proteus, version 5.6.0
Filename, size File type Python version Upload date Hashes
Filename, size proteus-5.6.0-py3-none-any.whl (38.8 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size proteus-5.6.0.tar.gz (41.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page