Cédric Krier 61068e220c class name must be string and not unicode
The class name in reference could be unicode but type accept only string as
name.

review724002
(transplanted from c9ee01676c6b858cc2572e532f141de11e315e6c)
2013-03-22 17:40:15 +01:00
2012-09-10 18:29:25 +02:00
2012-05-07 11:28:30 +02:00
2010-06-12 16:55:24 +02:00
2010-06-12 16:55:24 +02:00
2010-12-24 23:48:48 +01:00
2010-11-11 17:57:54 +01:00

proteus
=======

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

Installing
----------

See INSTALL

Example of usage
----------------

    >>> from proteus import config, Model, Wizard

Creating a database
~~~~~~~~~~~~~~~~~~~

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

    >>> config = config.set_trytond(':memory:', database_type='sqlite')

When connecting to a database that doesn't exist, Proteus will create it.

Installing a module
~~~~~~~~~~~~~~~~~~~

Find the module, call the install button and run the install wizard.

    >>> Module = Model.get('ir.module.module')
    >>> (party,) = Module.find([('name', '=', 'party')])
    >>> Module.button_install([party.id], config.context)
    >>> Wizard('ir.module.module.install_upgrade').execute('start')

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
    u'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_US')])
    >>> party.lang = en
    >>> party.save()
    >>> party.lang.code
    u'en_US'

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 = Model.get('party.address')
    >>> address = Address()
    >>> party.addresses.append(address)
    >>> 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')(...)]

Support
-------

If you encounter any problems with Tryton, please don't hesitate to ask
questions on the Tryton bug tracker, mailing list, wiki or IRC channel:

  http://bugs.tryton.org/
  http://groups.tryton.org/
  http://wiki.tryton.org/
  irc://irc.freenode.net/tryton

License
-------

See LICENSE

Copyright
---------

See COPYRIGHT


For more information please visit the Tryton web site:

  http://www.tryton.org/
S
Description
Private Tryton customization repository for reviewed Dominican localization and controlled upstream integration.
Readme
390 MiB
Languages
Python 88.1%
JavaScript 11%
Less 0.5%
HTML 0.2%
NSIS 0.1%