diff --git a/document_page_reference/__manifest__.py b/document_page_reference/__manifest__.py index f28596ea..9ca95755 100644 --- a/document_page_reference/__manifest__.py +++ b/document_page_reference/__manifest__.py @@ -5,7 +5,7 @@ "name": "Document Page Reference", "summary": """ Include references on document pages""", - "version": "15.0.1.1.0", + "version": "16.0.1.0.0", "license": "AGPL-3", "author": "Creu Blanca,Odoo Community Association (OCA)", "website": "https://github.com/OCA/knowledge", diff --git a/document_page_reference/models/document_page.py b/document_page_reference/models/document_page.py index 3c5460bc..5dea1ea4 100644 --- a/document_page_reference/models/document_page.py +++ b/document_page_reference/models/document_page.py @@ -135,16 +135,16 @@ class DocumentPage(models.Model): def get_raw_content(self): return self.with_context(raw_reference=True).get_content() - @api.model - def create(self, vals): - if not vals.get("reference"): - # Propose a default reference - reference = slugify(vals.get("name")).replace("-", "_") - try: - self._validate_reference(reference=reference) - vals["reference"] = reference - except ValidationError: # pylint: disable=W7938 - # Do not fill reference. - pass - - return super(DocumentPage, self).create(vals) + @api.model_create_multi + def create(self, vals_list): + for vals in vals_list: + if not vals.get("reference"): + # Propose a default reference + reference = slugify(vals.get("name")).replace("-", "_") + try: + self._validate_reference(reference=reference) + vals["reference"] = reference + except ValidationError: # pylint: disable=W7938 + # Do not fill reference. + pass + return super(DocumentPage, self).create(vals_list) diff --git a/document_page_reference/tests/test_document_reference.py b/document_page_reference/tests/test_document_reference.py index 8c5d41f8..cdaea885 100644 --- a/document_page_reference/tests/test_document_reference.py +++ b/document_page_reference/tests/test_document_reference.py @@ -6,14 +6,15 @@ 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( + @classmethod + def setUpClass(cls): + super(TestDocumentReference, cls).setUpClass() + cls.page_obj = cls.env["document.page"] + cls.history_obj = cls.env["document.page.history"] + cls.page1 = cls.page_obj.create( {"name": "Test Page 1", "content": "${r2}", "reference": "R1"} ) - self.page2 = self.page_obj.create( + cls.page2 = cls.page_obj.create( {"name": "Test Page 1", "content": "${r1}", "reference": "r2"} ) @@ -55,3 +56,23 @@ class TestDocumentReference(TransactionCase): } ) self.assertFalse(new_page_duplicated_name.reference) + + def test_get_formview_action(self): + res = self.page1.get_formview_action() + view_id = self.env.ref("document_page.view_wiki_form").id + expected_result = { + "type": "ir.actions.act_window", + "context": {}, + "res_model": "document.page", + "res_id": self.page1.id, + "view_mode": "form", + "view_type": "form", + "target": "current", + "views": [(view_id, "form")], + } + self.assertEqual(res, expected_result) + + def test_compute_content_parsed(self): + self.page1.content = "

" + self.page1._compute_content_parsed() + self.assertEqual(str(self.page1.content_parsed), "

")