diff --git a/document_page/README.rst b/document_page/README.rst index fc061776..bbf73730 100644 --- a/document_page/README.rst +++ b/document_page/README.rst @@ -77,6 +77,7 @@ Contributors * Iván Todorovich * Jose Maria Alzaga * Lois Rilo +* Simone Orsi Other credits ~~~~~~~~~~~~~ diff --git a/document_page/__manifest__.py b/document_page/__manifest__.py index 6052cf01..582c46ef 100644 --- a/document_page/__manifest__.py +++ b/document_page/__manifest__.py @@ -4,7 +4,7 @@ { 'name': 'Document Page', - 'version': '12.0.1.0.0', + 'version': '12.0.1.1.0', 'category': 'Knowledge Management', 'author': 'OpenERP SA, Odoo Community Association (OCA)', 'images': [ diff --git a/document_page/i18n/document_page.pot b/document_page/i18n/document_page.pot index d7bdfa9f..8d566223 100644 --- a/document_page/i18n/document_page.pot +++ b/document_page/i18n/document_page.pot @@ -45,6 +45,11 @@ msgstr "" msgid "Author" msgstr "" +#. module: document_page +#: model:ir.model.fields,field_description:document_page.field_document_page__backend_url +msgid "Backend URL" +msgstr "" + #. module: document_page #: model_terms:ir.ui.view,arch_db:document_page.view_wiki_create_menu msgid "Cancel" @@ -517,13 +522,18 @@ msgstr "" msgid "Unread Messages Counter" msgstr "" +#. module: document_page +#: model:ir.model.fields,help:document_page.field_document_page__backend_url +msgid "Use it to link resources univocally" +msgstr "" + #. module: document_page #: model:ir.model,name:document_page.model_document_page_create_menu msgid "Wizard Create Menu" msgstr "" #. module: document_page -#: code:addons/document_page/models/document_page.py:108 +#: code:addons/document_page/models/document_page.py:128 #, python-format msgid "You cannot create recursive categories." msgstr "" diff --git a/document_page/models/document_page.py b/document_page/models/document_page.py index 0eff4ffc..4cfe4b42 100644 --- a/document_page/models/document_page.py +++ b/document_page/models/document_page.py @@ -101,6 +101,26 @@ class DocumentPage(models.Model): index=True, ondelete='cascade', ) + backend_url = fields.Char( + string='Backend URL', + help='Use it to link resources univocally', + compute='_compute_backend_url', + ) + + @api.depends('menu_id', 'parent_id.menu_id') + def _compute_backend_url(self): + tmpl = '/web#id={}&model=document.page&view_type=form' + for rec in self: + url = tmpl.format(rec.id) + # retrieve action + action = None + parent = rec + while not action and parent: + action = parent.menu_id.action + parent = parent.parent_id + if action: + url += '&action={}'.format(action.id) + rec.backend_url = url @api.constrains('parent_id') def _check_parent_id(self): @@ -116,8 +136,7 @@ class DocumentPage(models.Model): index += ["
  • " + subpage._get_page_index() + "
  • "] r = '' if link: - r = '%s' % (self.id, self.name) - + r = '{}'.format(self.backend_url, self.name) if index: r += "
      " + "".join(index) + "
    " return r diff --git a/document_page/readme/CONTRIBUTORS.rst b/document_page/readme/CONTRIBUTORS.rst index 835f2d15..2061bdb5 100644 --- a/document_page/readme/CONTRIBUTORS.rst +++ b/document_page/readme/CONTRIBUTORS.rst @@ -3,3 +3,4 @@ * Iván Todorovich * Jose Maria Alzaga * Lois Rilo +* Simone Orsi diff --git a/document_page/static/description/index.html b/document_page/static/description/index.html index 746e156e..2d87b65e 100644 --- a/document_page/static/description/index.html +++ b/document_page/static/description/index.html @@ -426,6 +426,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
  • Iván Todorovich <ivan.todorovich@gmail.com>
  • Jose Maria Alzaga <jose.alzaga@aselcis.com>
  • Lois Rilo <lois.rilo@eficent.com>
  • +
  • Simone Orsi <simone.orsi@camptocamp.com>
  • diff --git a/document_page/tests/test_document_page.py b/document_page/tests/test_document_page.py index c087623e..3a67f08e 100644 --- a/document_page/tests/test_document_page.py +++ b/document_page/tests/test_document_page.py @@ -37,3 +37,21 @@ class TestDocumentPage(common.TransactionCase): }) page.content = 'New content' self.assertIsNotNone(page.history_ids[0].diff) + + def test_page_link(self): + page = self.page_obj.create({ + 'name': 'Test Page 3', + 'content': 'Test content' + }) + self.assertEqual( + page.backend_url, + '/web#id={}&model=document.page&view_type=form'.format(page.id) + ) + menu = self.env.ref('knowledge.menu_document') + page.menu_id = menu + self.assertEqual( + page.backend_url, + '/web#id={}&model=document.page&view_type=form&action={}'.format( + page.id, menu.action.id + ) + )