Merge README and doc and remove INSTALL

issue7397
review253271002
This commit is contained in:
Cédric Krier
2019-04-06 17:38:58 +02:00
parent c1aa464b8b
commit b3d69f7000
6 changed files with 137 additions and 185 deletions
-27
View File
@@ -1,27 +0,0 @@
Installing proteus
==================
Prerequisites
-------------
* Python 3.4 or later (http://www.python.org/)
* python-dateutil (http://labix.org/python-dateutil)
* Optional: trytond (http://www.tryton.org/)
Installation
------------
Once you've downloaded and unpacked the proteus source release, enter the
directory where the archive was unpacked, and run:
python setup.py install
Note that you may need administrator/root privileges for this step, as
this command will by default attempt to install module to the Python
site-packages directory on your system.
For advanced options, please refer to the easy_install and/or the distutils
documentation:
http://setuptools.readthedocs.io/en/latest/easy_install.html
http://docs.python.org/inst/inst.html
+4 -4
View File
@@ -1,5 +1,5 @@
include LICENSE
include COPYRIGHT
include README
include INSTALL
include CHANGELOG
include COPYRIGHT
include LICENSE
include README.rst
include doc/*
-152
View File
@@ -1,152 +0,0 @@
proteus
=======
A library to access Tryton's models like a client.
Installing
----------
See INSTALL
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')(...)]
Print party label
~~~~~~~~~~~~~~~~~
There is a label report on `Party`.
>>> label = Report('party.label')
The report is executed with a list of records and some extra data.
>>> type_, data, print_, name = label.execute([party], {})
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
Support
-------
If you encounter any problems with Tryton, please don't hesitate to ask
questions on the Tryton forum or IRC channel:
http://www.tryton.org/forum
License
-------
See LICENSE
Copyright
---------
See COPYRIGHT
For more information please visit the Tryton web site:
http://www.tryton.org/
Symlink
+1
View File
@@ -0,0 +1 @@
doc/index.rst
+125 -1
View File
@@ -1 +1,125 @@
.. include:: ../README
=======================
Tryton Scripting Client
=======================
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')(...)]
Print party label
~~~~~~~~~~~~~~~~~
There is a label report on `Party`.
>>> label = Report('party.label')
The report is executed with a list of records and some extra data.
>>> type_, data, print_, name = label.execute([party], {})
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
+7 -1
View File
@@ -48,11 +48,17 @@ if minor_version % 2:
setup(name=name,
version=version,
description='Library to access Tryton server as a client',
long_description=read('README'),
long_description=read('README.rst'),
author='Tryton',
author_email='bugs@tryton.org',
url='http://www.tryton.org/',
download_url=download_url,
project_urls={
"Bug Tracker": 'https://bugs.tryton.org/',
"Documentation": 'https://docs.tryton.org/',
"Forum": 'https://www.tryton.org/forum',
"Source Code": 'https://hg.tryton.org/proteus',
},
keywords='tryton library cli',
packages=find_packages(),
classifiers=[