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

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')])
>>> party_module.click('activate')
>>> Wizard('ir.module.activate_upgrade').execute('upgrade')

Creating a party

First instanciate a new Party:

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

Fill the fields:

>>> party.name = 'ham'

Save the instance into the server:

>>> party.save()
>>> party.name
'ham'
>>> party.id > 0
True

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.save()
>>> party.lang.code
'en'

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 = party.addresses.new(zip='42')
>>> party.save()
>>> party.addresses #doctest: +ELLIPSIS
[proteus.Model.get('party.address')(...)]

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()
>>> category.name = 'spam'
>>> category.save()

Append it to categories of the party

>>> party.categories.append(category)
>>> party.save()
>>> party.categories #doctest: +ELLIPSIS
[proteus.Model.get('party.category')(...)]

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 = party.addresses.new(zip='69')
>>> party.save()
>>> address = party.addresses.new(zip='23')
>>> party.save()

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.save()
>>> party.addresses == reversed_addresses
True

Project details


Release history Release notifications | RSS feed

This version

5.4.1

Download files

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

Source Distribution

proteus-5.4.1.tar.gz (40.6 kB view details)

Uploaded Source

Built Distribution

proteus-5.4.1-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file proteus-5.4.1.tar.gz.

File metadata

  • Download URL: proteus-5.4.1.tar.gz
  • Upload date:
  • Size: 40.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.23.3 CPython/2.7.16

File hashes

Hashes for proteus-5.4.1.tar.gz
Algorithm Hash digest
SHA256 f770a3b1f7d578ac5c8dba4716349fc4d26a9f5bf8c397098669bb2900aff06e
MD5 4764af2f74d8b83d1de718d861ab91e3
BLAKE2b-256 bfd469b9987e493d30cb33fe49b99db9923ed97d4291caebceeb283de449f5ff

See more details on using hashes here.

Provenance

File details

Details for the file proteus-5.4.1-py3-none-any.whl.

File metadata

  • Download URL: proteus-5.4.1-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.23.3 CPython/2.7.16

File hashes

Hashes for proteus-5.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c47e62ea13151958356b4ff294912fabca9f248311c8be08fc955e36111c644e
MD5 e6a194b87135457ae8b31936eb5bb134
BLAKE2b-256 120dfad392400ae3fedd3b9038040f956d418756611d123eacb3c65d30e62417

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page