diff --git a/doc/_themes/odoodoc/__init__.py b/doc/_themes/odoodoc/__init__.py index 38ee122a8e1..dd825ca1586 100644 --- a/doc/_themes/odoodoc/__init__.py +++ b/doc/_themes/odoodoc/__init__.py @@ -15,6 +15,9 @@ def setup(app): app.add_node(exercise, html=( lambda self, node: self.visit_admonition(node, 'exercise'), lambda self, node: self.depart_admonition(node) + ), latex=( + lambda self, node: self.visit_admonition(node), + lambda self, node: self.depart_admonition(node) )) from docutils import nodes diff --git a/doc/api_integration.rst b/doc/api_integration.rst index 12c5b56737e..4a9835fa743 100644 --- a/doc/api_integration.rst +++ b/doc/api_integration.rst @@ -24,64 +24,66 @@ Connection and authentication .. kinda gross because it duplicates existing bits -.. rst-class:: setupcode hidden +.. only:: html - .. code-block:: python + .. rst-class:: setupcode hidden - import xmlrpclib - info = xmlrpclib.ServerProxy('https://demo.odoo.com/start').start() - url, db, username, password = \ - info['host'], info['database'], info['user'], info['password'] - common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url)) - uid = common.authenticate(db, username, password, {}) - models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url)) + .. code-block:: python - .. code-block:: ruby + import xmlrpclib + info = xmlrpclib.ServerProxy('https://demo.odoo.com/start').start() + url, db, username, password = \ + info['host'], info['database'], info['user'], info['password'] + common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url)) + uid = common.authenticate(db, username, password, {}) + models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url)) - require "xmlrpc/client" - info = XMLRPC::Client.new2('https://demo.odoo.com/start').call('start') - url, db, username, password = \ - info['host'], info['database'], info['user'], info['password'] - common = XMLRPC::Client.new2("#{url}/xmlrpc/2/common") - uid = common.call('authenticate', db, username, password, {}) - models = XMLRPC::Client.new2("#{url}/xmlrpc/2/object").proxy + .. code-block:: ruby - .. code-block:: php + require "xmlrpc/client" + info = XMLRPC::Client.new2('https://demo.odoo.com/start').call('start') + url, db, username, password = \ + info['host'], info['database'], info['user'], info['password'] + common = XMLRPC::Client.new2("#{url}/xmlrpc/2/common") + uid = common.call('authenticate', db, username, password, {}) + models = XMLRPC::Client.new2("#{url}/xmlrpc/2/object").proxy - require_once('ripcord.php'); - $info = ripcord::client('https://demo.odoo.com/start')->start(); - list($url, $db, $username, $password) = - array($info['host'], $info['database'], $info['user'], $info['password']); - $common = ripcord::client("$url/xmlrpc/2/common"); - $uid = $common->authenticate($db, $username, $password, array()); - $models = ripcord::client("$url/xmlrpc/2/object"); + .. code-block:: php - .. code-block:: java + require_once('ripcord.php'); + $info = ripcord::client('https://demo.odoo.com/start')->start(); + list($url, $db, $username, $password) = + array($info['host'], $info['database'], $info['user'], $info['password']); + $common = ripcord::client("$url/xmlrpc/2/common"); + $uid = $common->authenticate($db, $username, $password, array()); + $models = ripcord::client("$url/xmlrpc/2/object"); - final XmlRpcClient client = new XmlRpcClient(); + .. code-block:: java - final XmlRpcClientConfigImpl start_config = new XmlRpcClientConfigImpl(); - start_config.setServerURL(new URL("https://demo.odoo.com/start")); - final Map info = (Map)client.execute( - start_config, "start", Collections.emptyList()); + final XmlRpcClient client = new XmlRpcClient(); - final String url = info.get("host"), - db = info.get("database"), - username = info.get("user"), - password = info.get("password"); + final XmlRpcClientConfigImpl start_config = new XmlRpcClientConfigImpl(); + start_config.setServerURL(new URL("https://demo.odoo.com/start")); + final Map info = (Map)client.execute( + start_config, "start", Collections.emptyList()); - final XmlRpcClientConfigImpl common_config = new XmlRpcClientConfigImpl(); - common_config.setServerURL(new URL(String.format("%s/xmlrpc/2/common", url))); + final String url = info.get("host"), + db = info.get("database"), + username = info.get("user"), + password = info.get("password"); - int uid = (int)client.execute( - common_config, "authenticate", Arrays.asList( - db, username, password, Collections.emptyMap())); + final XmlRpcClientConfigImpl common_config = new XmlRpcClientConfigImpl(); + common_config.setServerURL(new URL(String.format("%s/xmlrpc/2/common", url))); - final XmlRpcClient models = new XmlRpcClient() {{ - setConfig(new XmlRpcClientConfigImpl() {{ - setServerURL(new URL(String.format("%s/xmlrpc/2/object", url))); - }}); - }}; + int uid = (int)client.execute( + common_config, "authenticate", Arrays.asList( + db, username, password, Collections.emptyMap())); + + final XmlRpcClient models = new XmlRpcClient() {{ + setConfig(new XmlRpcClientConfigImpl() {{ + setServerURL(new URL(String.format("%s/xmlrpc/2/object", url))); + }}); + }}; Configuration ------------- diff --git a/doc/conf.py b/doc/conf.py index 0b86706abb4..f31395a315c 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -166,6 +166,12 @@ html_sidebars = { # base URL from which the finished HTML is served. #html_use_opensearch = '' +latex_elements = { + 'papersize': r'a4paper', + 'preamble': u'''\\setcounter{tocdepth}{2} +''', +} + # default must be set otherwise ifconfig blows up todo_include_todos = False diff --git a/doc/howtos/backend.rst b/doc/howtos/backend.rst index bbf173cb5c4..c9715893614 100644 --- a/doc/howtos/backend.rst +++ b/doc/howtos/backend.rst @@ -1241,10 +1241,10 @@ Workflows are also used to track processes that evolve over time. In the session form, add a (read-only) field to visualize the state, and buttons to change it. The valid transitions are: - * Draft ➔ Confirmed - * Confirmed ➔ Draft - * Confirmed ➔ Done - * Done ➔ Draft + * Draft -> Confirmed + * Confirmed -> Draft + * Confirmed -> Done + * Done -> Draft .. only:: solutions