TryDoc documentation¶
Installation¶
This extension requires the following packages:
- Sphinx >= 1.2
- proteus 3.2.x
- path.py
- tryton 3.2.x (optional if you don’t need
view
directive)
Use pip
to install this extension straight from the Python Package Index:
pip install trydoc
Configuration¶
In order to use trydoc you should add it to the list of extensions in conf.py:
extensions = ['sphinxcontrib.trydoc']
You should also configure proteus in conf.py with the required parameters. The following example will create a new sqlite database automatically:
import proteus
proteus.config.set_trytond(database_type='sqlite')
If you use ‘sqlite’ memory database (like the example) you must define the list of modules to install to be able to reference their elements (models, fields, views, menus...).:
trydoc_modules = ['party', 'sale']
You can use a persistent PostgreSQL database (the customer’s database tipically). The configuration will be something like this::
proteus_config = proteus.config.set_trytond(database_name='trydoc',
database_type='postgresql', language='es_ES', password='admin',
config_file='~/trytond/etc/trytond.conf')
Tryton Documentation project: Provided Scripts¶
If you want to prepare an User and/or Administrator manual, this packages provide some useful scripts to prepare and mantain it.
It have some extra requirements:
- sphinxcontrib-inheritance: another Sphinx extension (available on PyPI) that provides inheritance funcionality. It’s used to compile the documentation in modular way.
- trytond-doc: project with the documentation of Tryton’s core (server, client and core modules) available on Bitbucket.
- Third party modules sources: each module should include its own documentation in doc/<language> directory.
The provided scripts:
- trydoc-quickstart: as sphinx-quickstart it helps you to prepare a new Sphinx project. Based on the answers during the script execution, it will leave the conf.py and other required files prepared.
- trydoc-symlinks: put into the documentation project directory required symlinks to the language specific documentation of Tryton modules.
- trydoc-update-modules: trydoc-quickstart prepare conf.py to get the trydoc_modules from modules.cfg. This script upates this file with the installed modules in specified Tryton database.
If you don’t want to include the base documentation from trytond-doc project, you should customize the index.rst file generated by trydoc-quickstart scripts.
Usage¶
TryDoc adds the following set of directives to be used in the docs:
Model¶
You can refer to any model with the following directive:
.. model:: model.name
which will print the given model name inside an _span_ with the class trydocfield. You can change this default class with the configuration option trydoc_fieldclass.
Optionally the :info:
flag can be added to get the Info field of ir.model.
It isn’t translated so provably it isn’t very useful:
.. model:: account.tax
:info:
It also have another optional option :class: CLASSLIST
. It adds the
specified classes to the _span_ (not replace the default class). An example::
.. model:: ir.cron
:class: admin
It will generate the following code::
<span class="trydocmodel admin">Cron</span>
Field¶
You can refer to any field with the following directive:
.. field:: model/field
which will print the given field name inside an _span_ with the class trydocfield. You can change this default class with the configuration option trydoc_fieldclass.
Optionally the :help:
flag can be added. See the following example:
.. field:: ir.cron/user
:help:
It will print the help text of field despite of the field name (if the field doesn’t have help text it will print a message advertising it.
It also have the optional option :class: CLASSLIST
.
Tryref¶
To show any data introduced in a XML file you can use the tryref directive.
You can refer to any menu entry with the following directive:
.. tryref:: reference_to_menu_xml_id/fieldname
The following code shows the full menu entry:
.. tryref:: ir.menu_cron_form/complete_name
which will output Administration / Scheduler / Scheduled Actions. You can also access any field of the record, for example:
.. tryref:: ir.menu_cron_form/name
will output Scheduled Actions. tryref can be used to access any field of any record with an ir.model.data if you know its XML id.
Like field directive, it will output the text inside an _span_ tag with the
class trydocref. This default class could be changed with the configuration
option trydoc_refclass. And if you want to add another classes to an specific
entry you could use the :class: CLASSLIST
option.
View¶
You can add a screenshot of any model view with the following directive:
.. view:: reference_to_view_xml_id
:field: fieldname
:show_menu: menu_xml_id
:domain: [CLAUSES]
where :field:
is optional and will ensure the given field name is shown in
the generated screenshot.
.. view:: party.party_party_form
:field: name
and :show_menu:
is another option which toggle, for this screenshot, the
menu to make it visible (by default, it is closed) and it expand the menu to
show the specified menu item (it doesn’t close previous opened menus).
and :domain:
option must to be a valid Tryton domain. It will be appended
to the URL to open the propper window what will force the values of fields in
domain.
Warning
All values in the domain must to be in quotes, even True/False.
It also has all options of figure directive: alt, height, width, scale,
align, name, target, class... the :class: CLASSLIST
option adds the
specified class to the default class trydocview (which can be changed with
the configuration option trydoc_viewclass).
Inline usage¶
Inline usage is also available either using Sphinx’s replace mechanism. As it uses the directive it has all options and the same behaviour than directives:
This is a reference to field |cron_user|.
.. |cron_user| field:: ir.cron/user
or one provided by trydoc, which is shorter (but it doesn’t put the text inside and _span_ tag and it doesn’t support any option):
This is a reference to a field @field:ir.cron/user@.