diff --git a/document_page_reference/__manifest__.py b/document_page_reference/__manifest__.py
index b3df753a..73f7c73a 100644
--- a/document_page_reference/__manifest__.py
+++ b/document_page_reference/__manifest__.py
@@ -2,21 +2,18 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
- 'name': 'Document Page Reference',
- 'summary': """
+ "name": "Document Page Reference",
+ "summary": """
Include references on document pages""",
- 'version': '12.0.1.0.0',
- 'license': 'AGPL-3',
- 'author': 'Creu Blanca,Odoo Community Association (OCA)',
- 'website': 'https://github.com/OCA/knowledge',
- 'depends': [
- 'document_page',
- 'web_editor',
+ "version": "12.0.1.0.0",
+ "license": "AGPL-3",
+ "author": "Creu Blanca,Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/knowledge",
+ "depends": ["document_page", "web_editor"],
+ "data": [
+ "views/assets.xml",
+ "views/document_page.xml",
+ "views/report_document_page.xml",
],
- 'data': [
- 'views/assets.xml',
- 'views/document_page.xml',
- 'views/report_document_page.xml',
- ],
- 'maintainers': ['etobella'],
+ "maintainers": ["etobella"],
}
diff --git a/document_page_reference/models/document_page.py b/document_page_reference/models/document_page.py
index f75fa666..487e7f05 100644
--- a/document_page_reference/models/document_page.py
+++ b/document_page_reference/models/document_page.py
@@ -1,11 +1,12 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from odoo import api, fields, models, tools, _
+import logging
+
+from odoo import _, api, fields, models, tools
from odoo.exceptions import ValidationError
from odoo.tools.misc import html_escape
-import logging
_logger = logging.getLogger(__name__)
try:
@@ -14,14 +15,14 @@ try:
from jinja2.lexer import name_re as old_name_re
import re
- name_re = re.compile(u'^%s$' % old_name_re.pattern)
+ name_re = re.compile(u"^%s$" % old_name_re.pattern)
class Context(SandboxedEnvironment.context_class):
def resolve(self, key):
res = super().resolve(key)
if not isinstance(res, Undefined):
return res
- return self.parent['ref'](key)
+ return self.parent["ref"](key)
class Environment(SandboxedEnvironment):
context_class = Context
@@ -35,7 +36,7 @@ try:
comment_end_string="%doc>",
line_statement_prefix="%",
line_comment_prefix="##",
- trim_blocks=True, # do not output newline after blocks
+ trim_blocks=True, # do not output newline after blocks
autoescape=False,
)
except Exception:
@@ -44,34 +45,33 @@ except Exception:
class DocumentPage(models.Model):
- _inherit = 'document.page'
+ _inherit = "document.page"
reference = fields.Char(
help="Used to find the document, it can contain letters, numbers and _"
)
- content_parsed = fields.Html(compute='_compute_content_parsed')
+ content_parsed = fields.Html(compute="_compute_content_parsed")
- @api.depends('history_head')
+ @api.depends("history_head")
def _compute_content_parsed(self):
for record in self:
record.content_parsed = record.get_content()
- @api.constrains('reference')
+ @api.constrains("reference")
def _check_reference(self):
for record in self:
if not record.reference:
continue
if not name_re.match(record.reference):
- raise ValidationError(_('Reference is not valid'))
- if self.search([
- ('reference', '=', record.reference),
- ('id', '!=', record.id)]
+ raise ValidationError(_("Reference is not valid"))
+ if self.search(
+ [("reference", "=", record.reference), ("id", "!=", record.id)]
):
- raise ValidationError(_('Reference must be unique'))
+ raise ValidationError(_("Reference must be unique"))
def _get_document(self, code):
# Hook created in order to add check on other models
- document = self.search([('reference', '=', code)])
+ document = self.search([("reference", "=", code)])
if document:
return document
else:
@@ -79,23 +79,23 @@ class DocumentPage(models.Model):
def get_reference(self, code):
element = self._get_document(code)
- if self.env.context.get('raw_reference', False):
+ if self.env.context.get("raw_reference", False):
return html_escape(element.display_name)
text = """%s
"""
if not element:
- text = '%s' % text
+ text = "%s" % text
res = text % (
element._name,
- element and element.id or '',
+ element and element.id or "",
code,
html_escape(element.display_name or code),
)
return res
def _get_template_variables(self):
- return {'ref': self.get_reference}
+ return {"ref": self.get_reference}
def get_content(self):
try:
@@ -104,8 +104,7 @@ class DocumentPage(models.Model):
template = mako_env.from_string(tools.ustr(content))
return template.render(self._get_template_variables())
except Exception:
- _logger.error(
- 'Template from page %s cannot be processed' % self.id)
+ _logger.error("Template from page %s cannot be processed" % self.id)
return self.content
def get_raw_content(self):
diff --git a/document_page_reference/static/src/js/editor.js b/document_page_reference/static/src/js/editor.js
index 4ac073a9..90f53d62 100644
--- a/document_page_reference/static/src/js/editor.js
+++ b/document_page_reference/static/src/js/editor.js
@@ -1,37 +1,36 @@
-odoo.define('document_page_reference.backend', function (require) {
- 'use strict';
+odoo.define("document_page_reference.backend", function(require) {
+ "use strict";
- var field_registry = require('web.field_registry');
- var backend = require('web_editor.backend');
+ var field_registry = require("web.field_registry");
+ var backend = require("web_editor.backend");
var FieldTextHtmlSimple = backend.FieldTextHtmlSimple;
var FieldDocumentPage = FieldTextHtmlSimple.extend({
events: _.extend({}, FieldTextHtmlSimple.prototype.events, {
- 'click .oe_direct_line': '_onClickDirectLink',
+ "click .oe_direct_line": "_onClickDirectLink",
}),
- _onClickDirectLink: function (event) {
+ _onClickDirectLink: function(event) {
var self = this;
event.preventDefault();
event.stopPropagation();
- var element = $(event.target).closest('.oe_direct_line')[0];
+ var element = $(event.target).closest(".oe_direct_line")[0];
var default_reference = element.name;
- var model = $(event.target).data('oe-model');
- var id = $(event.target).data('oe-id');
+ var model = $(event.target).data("oe-model");
+ var id = $(event.target).data("oe-id");
var context = this.record.getContext(this.recordParams);
- if (default_reference){
- context['default_reference'] = default_reference
+ if (default_reference) {
+ context.default_reference = default_reference;
}
this._rpc({
model: model,
- method: 'get_formview_action',
- args: [[parseInt(id)]],
+ method: "get_formview_action",
+ args: [[parseInt(id, 10)]],
context: context,
- })
- .then(function (action) {
- self.trigger_up('do_action', {action: action});
+ }).then(function(action) {
+ self.trigger_up("do_action", {action: action});
});
},
});
- field_registry.add('document_page_reference', FieldDocumentPage);
+ field_registry.add("document_page_reference", FieldDocumentPage);
return FieldDocumentPage;
});
diff --git a/document_page_reference/tests/test_document_reference.py b/document_page_reference/tests/test_document_reference.py
index 4be351b4..ab972fe0 100644
--- a/document_page_reference/tests/test_document_reference.py
+++ b/document_page_reference/tests/test_document_reference.py
@@ -1,49 +1,41 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from odoo.tests.common import TransactionCase
from odoo.exceptions import ValidationError
+from odoo.tests.common import TransactionCase
class TestDocumentReference(TransactionCase):
-
def setUp(self):
super().setUp()
- self.page_obj = self.env['document.page']
- self.history_obj = self.env['document.page.history']
- self.page1 = self.page_obj.create({
- 'name': 'Test Page 1',
- 'content': '${r2}',
- 'reference': 'R1'
- })
- self.page2 = self.page_obj.create({
- 'name': 'Test Page 1',
- 'content': '${r1}',
- 'reference': 'r2'
- })
+ self.page_obj = self.env["document.page"]
+ self.history_obj = self.env["document.page.history"]
+ self.page1 = self.page_obj.create(
+ {"name": "Test Page 1", "content": "${r2}", "reference": "R1"}
+ )
+ self.page2 = self.page_obj.create(
+ {"name": "Test Page 1", "content": "${r1}", "reference": "r2"}
+ )
def test_constrains_01(self):
with self.assertRaises(ValidationError):
- self.page2.write({'reference': self.page1.reference})
+ self.page2.write({"reference": self.page1.reference})
def test_constrains_02(self):
with self.assertRaises(ValidationError):
- self.page2.write({'reference': self.page2.reference + '-02'})
+ self.page2.write({"reference": self.page2.reference + "-02"})
def test_no_contrains(self):
- self.page1.write({'reference': False})
- self.page2.write({'reference': False})
+ self.page1.write({"reference": False})
+ self.page2.write({"reference": False})
self.assertEqual(self.page1.reference, self.page2.reference)
def test_check_raw(self):
self.assertEqual(self.page2.display_name, self.page1.get_raw_content())
def test_check_reference(self):
- self.assertRegex(
- self.page1.content_parsed,
- '.*%s.*' % self.page2.display_name
- )
+ self.assertRegex(self.page1.content_parsed, ".*%s.*" % self.page2.display_name)
def test_no_reference(self):
- self.page2.reference = 'r3'
- self.assertRegex(self.page1.content_parsed, '.*r2.*')
+ self.page2.reference = "r3"
+ self.assertRegex(self.page1.content_parsed, ".*r2.*")
diff --git a/document_page_reference/views/assets.xml b/document_page_reference/views/assets.xml
index e292a0aa..cc24366f 100644
--- a/document_page_reference/views/assets.xml
+++ b/document_page_reference/views/assets.xml
@@ -1,8 +1,15 @@
-
+
-
+
-
+
diff --git a/document_page_reference/views/document_page.xml b/document_page_reference/views/document_page.xml
index f4bf3486..9a67c1ea 100644
--- a/document_page_reference/views/document_page.xml
+++ b/document_page_reference/views/document_page.xml
@@ -1,62 +1,64 @@
-
+
-
-
document.page.form (in knowledge_reference)
document.page
-
+
-
+
-
+
oe_edit_only
-
+
-
-
document.page.search (in knowledge_reference)
document.page
-
+
-
+
-
document.page.tree (in knowledge_reference)
document.page
-
+
-
+
-
diff --git a/document_page_reference/views/report_document_page.xml b/document_page_reference/views/report_document_page.xml
old mode 100755
new mode 100644
index 77946569..5ecaa150
--- a/document_page_reference/views/report_document_page.xml
+++ b/document_page_reference/views/report_document_page.xml
@@ -1,13 +1,14 @@
-
+
-
-
+
1==0
-
+
-