summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2014-11-17 17:40:38 +0100
committerXavier Morel <xmo@openerp.com>2014-11-17 17:43:26 +0100
commit5ed0739e7368d6525ee5e7b22cd8fa621cb0ae20 (patch)
tree1c4e966ad4b786854b745644d299d4f1a0709e82
parent86a6619dc8cd473342b8fbbffb48363d154df416 (diff)
[FIX] doc: latex building
* add latex support for exercise admonition * latex freezes/crashes on {HEAVY WIDE-HEADED RIGHTWARDS ARROW} so replace them by more manual arrows * add some preamble configuration, may not even be necessary * generate WS setup code only in HTML output. WS doc in latex still isn't great as it displays all 4 languages one after the other, ideally they should be tagged or something, so only one language at a time is generated in non-HTML outputs
-rw-r--r--doc/_themes/odoodoc/__init__.py3
-rw-r--r--doc/api_integration.rst92
-rw-r--r--doc/conf.py6
-rw-r--r--doc/howtos/backend.rst8
4 files changed, 60 insertions, 49 deletions
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<String, String> info = (Map<String, String>)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<String, String> info = (Map<String, String>)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