From 2b28dd89b8b76761108391023a0cc51900c0a816 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 May 2019 12:47:18 +0000 Subject: [FIX] doc: Sphinx 2.0 compatibility * order of parameters to translator swapped * context['meta'] always set, defaulting to None if the document has no metadata * [3.0 prep] modifying script_files deprecated, use add_javascript / add_js_file * remove deprecated call to l_ (which was useless anyway as the documentation is not translated) Fixes #33107 closes odoo/odoo#33187 Signed-off-by: Xavier Morel (xmo) --- doc/_extensions/exercise_admonition.py | 4 ++-- doc/_extensions/odoo_ext/__init__.py | 8 +++++++- doc/_extensions/odoo_ext/layout.html | 7 ------- doc/_extensions/odoo_ext/translator.py | 9 +++++++-- 4 files changed, 16 insertions(+), 12 deletions(-) (limited to 'doc/_extensions') diff --git a/doc/_extensions/exercise_admonition.py b/doc/_extensions/exercise_admonition.py index 4256ca73b78..07cb11a5389 100644 --- a/doc/_extensions/exercise_admonition.py +++ b/doc/_extensions/exercise_admonition.py @@ -20,5 +20,5 @@ class exercise(nodes.Admonition, nodes.Element): pass class Exercise(admonitions.BaseAdmonition): node_class = exercise -from sphinx.locale import admonitionlabels, l_ -admonitionlabels['exercise'] = l_('Exercise') +from sphinx.locale import admonitionlabels +admonitionlabels['exercise'] = 'Exercise' diff --git a/doc/_extensions/odoo_ext/__init__.py b/doc/_extensions/odoo_ext/__init__.py index 3cca5f7c435..16b4a5326f7 100644 --- a/doc/_extensions/odoo_ext/__init__.py +++ b/doc/_extensions/odoo_ext/__init__.py @@ -21,6 +21,10 @@ def setup(app): location="odoo extension") app.config.html_translator_class = 'odoo_ext.translator.BootstrapTranslator' + add_js_file = getattr(app, 'add_js_file', None) or app.add_javascript + for f in ['jquery.min.js', 'bootstrap.js', 'doc.js', 'jquery.noconflict.js']: + add_js_file(f) + switcher.setup(app) app.add_config_value('odoo_cover_default', None, 'env') app.add_config_value('odoo_cover_external', {}, 'env') @@ -28,7 +32,9 @@ def setup(app): app.connect('html-page-context', update_meta) def update_meta(app, pagename, templatename, context, doctree): - meta = context.setdefault('meta', {}) + meta = context.get('meta') + if meta is None: + meta = context['meta'] = {} meta.setdefault('banner', app.config.odoo_cover_default) def navbarify(node, navbar=None): diff --git a/doc/_extensions/odoo_ext/layout.html b/doc/_extensions/odoo_ext/layout.html index 47efef8dc84..9f25d7b4c55 100644 --- a/doc/_extensions/odoo_ext/layout.html +++ b/doc/_extensions/odoo_ext/layout.html @@ -1,12 +1,5 @@ {% extends "basic/layout.html" %} -{% set script_files = script_files + [ -'_static/jquery.min.js', -'_static/bootstrap.js', -'_static/doc.js', -'_static/jquery.noconflict.js', -] %} - {% set classes = [] %} {% if pagename == master_doc %} {% set classes = classes + ['index'] %} diff --git a/doc/_extensions/odoo_ext/translator.py b/doc/_extensions/odoo_ext/translator.py index 491f02a2ad3..0914b0e319e 100644 --- a/doc/_extensions/odoo_ext/translator.py +++ b/doc/_extensions/odoo_ext/translator.py @@ -10,7 +10,7 @@ except ImportError: from urllib import url2pathname # pylint: disable=deprecated-module from docutils import nodes -from sphinx import addnodes, util +from sphinx import addnodes, util, builders from sphinx.locale import admonitionlabels from odoo.tools import pycompat @@ -43,7 +43,12 @@ class BootstrapTranslator(nodes.NodeVisitor, object): '' ] - def __init__(self, builder, document): + def __init__(self, document, builder): + # order of parameter swapped between Sphinx 1.x and 2.x, check if + # we're running 1.x and swap back + if not isinstance(builder, builders.Builder): + builder, document = document, builder + super(BootstrapTranslator, self).__init__(document) self.builder = builder self.body = [] -- cgit v1.2.3