diff --git a/addons/mail/static/src/js/models/threads/mailbox.js b/addons/mail/static/src/js/models/threads/mailbox.js index 9523ad46517..f3e0754ee20 100644 --- a/addons/mail/static/src/js/models/threads/mailbox.js +++ b/addons/mail/static/src/js/models/threads/mailbox.js @@ -20,10 +20,8 @@ var Mailbox = SearchableThread.extend({ * @override * @param {Object} params * @param {Object} params.data - * @param {string} params.data.id the ID of the mailbox, without the - * 'mailbox_' prefix. - * @param {integer} [params.data.mailboxCounter=0] the initial mailbox - * counter of this mailbox. + * @param {string} params.data.id the ID of the mailbox, without the ``mailbox_`` prefix. + * @param {integer} [params.data.mailboxCounter=0] the initial mailbox counter of this mailbox. */ init: function (params) { var data = params.data; diff --git a/addons/web/static/src/js/core/dom.js b/addons/web/static/src/js/core/dom.js index 115cc5fcf0c..9280b9a0884 100644 --- a/addons/web/static/src/js/core/dom.js +++ b/addons/web/static/src/js/core/dom.js @@ -438,7 +438,7 @@ return { } }, /** - * Cleans what has been done by `initAutoMoreMenu'. + * Cleans what has been done by ``initAutoMoreMenu``. * * @param {jQuery} $el */ diff --git a/addons/web/static/src/js/core/domain.js b/addons/web/static/src/js/core/domain.js index 5ebc6bd22c9..01d9aaee8ff 100644 --- a/addons/web/static/src/js/core/domain.js +++ b/addons/web/static/src/js/core/domain.js @@ -458,7 +458,7 @@ var Domain = collections.Tree.extend({ * Converts python condition to a JS prefix-array representation of a domain * * @static - * @param {string} domain + * @param {string} condition * @returns {Array} */ conditionToDomain: function (condition) { diff --git a/addons/web/static/src/js/views/search/filters_menu.js b/addons/web/static/src/js/views/search/filters_menu.js index e15d9bf282a..8f58316e092 100644 --- a/addons/web/static/src/js/views/search/filters_menu.js +++ b/addons/web/static/src/js/views/search/filters_menu.js @@ -47,9 +47,7 @@ var FiltersMenu = DropdownMenu.extend({ * defaultOptionId: string refers to an optionId (optional) * currentOptionId: string refers to an optionId that is activated if item is active (optional) * } - * @param {Object[]} periodOptions determines the options available for filter with date attribute - * @param {Object} fields 'field_get' of a model: mapping from field name - * to an object with its properties + * @param {Object} fields */ init: function (parent, filters, fields) { // determines where the filter menu is displayed and its style diff --git a/doc/_extensions/autojsdoc/parser/jsdoc.py b/doc/_extensions/autojsdoc/parser/jsdoc.py index ff6d3196254..eb9d595330a 100644 --- a/doc/_extensions/autojsdoc/parser/jsdoc.py +++ b/doc/_extensions/autojsdoc/parser/jsdoc.py @@ -62,6 +62,11 @@ class CommentDoc(pyjsdoc.CommentDoc): d['name'] = self.name return d + # don't resolve already resolved docs (e.g. a literal dict being + # include-ed in two different classes because I don't even care anymore + def become(self, modules): + return self + class PropertyDoc(CommentDoc): @classmethod def from_param(cls, s, sourcemodule=None): diff --git a/doc/_extensions/autojsdoc/parser/parser.py b/doc/_extensions/autojsdoc/parser/parser.py index d979170bbc9..a5eb45a8e85 100644 --- a/doc/_extensions/autojsdoc/parser/parser.py +++ b/doc/_extensions/autojsdoc/parser/parser.py @@ -60,7 +60,7 @@ ref = collections.namedtuple('Ref', 'object property') def _name(r): bits = [] while isinstance(r, ref): - bits.append(r.property) + bits.append(str(r.property)) r = r.object return '.'.join(reversed(bits)) def deref(item, prop=None): @@ -348,7 +348,8 @@ class ModuleExtractor(Visitor): def resolve_extension(modules): t = target.become(modules) if not isinstance(t, jsdoc.ClassDoc): - raise ValueError("include() subjects should be classes, %s is %s" % (target_name, type(t))) + return # FIXME: log warning + # raise ValueError("include() subjects should be classes, %s is %s" % (target_name, type(t))) # TODO: note which module added these for it in items: if isinstance(it, dict): diff --git a/doc/_extensions/odoo_ext/translator.py b/doc/_extensions/odoo_ext/translator.py index da4e8731628..cf6c149d063 100644 --- a/doc/_extensions/odoo_ext/translator.py +++ b/doc/_extensions/odoo_ext/translator.py @@ -190,6 +190,18 @@ class BootstrapTranslator(nodes.NodeVisitor, object): def depart_compact_paragraph(self, node): pass + def visit_problematic(self, node): + if node.hasattr('refid'): + self.body.append('' % node['refid']) + self.context.append('') + else: + self.context.append('') + self.body.append(self.starttag(node, 'span', CLASS='problematic')) + + def depart_problematic(self, node): + self.body.append('') + self.body.append(self.context.pop()) + def visit_literal_block(self, node): if node.rawsource != node.astext(): # most probably a parsed-literal block -- don't highlight diff --git a/doc/reference/orm.rst b/doc/reference/orm.rst index a7febdc7c7b..14dfdb4c058 100644 --- a/doc/reference/orm.rst +++ b/doc/reference/orm.rst @@ -288,7 +288,7 @@ Common ORM methods >>> self.create([{'name': "Jack"}, {'name': "William"}, {'name': "Averell"}]) res.partner(79, 80, 81) - See :ref:`how to define method `create` with one API or the other + See :ref:`how to define method \`create\` with one API or the other `. :meth:`~odoo.models.Model.write` diff --git a/doc/setup/enterprise.rst b/doc/setup/enterprise.rst index 66f8fe82671..0051b1fafc1 100644 --- a/doc/setup/enterprise.rst +++ b/doc/setup/enterprise.rst @@ -1,4 +1,5 @@ :banner: banners/enterprise.jpg + .. _setup/enterprise: ============================