From 9e6b6555c447212674ddf02c17cef64e20111395 Mon Sep 17 00:00:00 2001 From: Miquel Date: Fri, 21 Nov 2025 14:10:42 +0100 Subject: [PATCH 1/2] Added option to use - in page reference. --- document_page_reference/models/document_page.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/document_page_reference/models/document_page.py b/document_page_reference/models/document_page.py index 0fa4b68b750..d95c8e9e252 100644 --- a/document_page_reference/models/document_page.py +++ b/document_page_reference/models/document_page.py @@ -39,7 +39,7 @@ def _check_reference_validity(self): for rec in self: if not rec.reference: continue - regex = r"^[a-zA-Z_][a-zA-Z0-9_]*$" + regex = r"^[a-zA-Z_][a-zA-Z0-9_-]*$" if not re.match(regex, rec.reference): raise ValidationError(_("Reference is not valid")) domain = [("reference", "=", rec.reference), ("id", "!=", rec.id)] From 674e8029463a213dc111d89e301a0f610e9adb24 Mon Sep 17 00:00:00 2001 From: Miquel Rosell Date: Wed, 20 May 2026 16:51:21 +0200 Subject: [PATCH 2/2] [FIX] document_page_tag: convert create to api.model_create_multi Odoo 17 recommends batch-compatible create methods for better performance when creating records in bulk. --- document_page_tag/models/document_page_tag.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/document_page_tag/models/document_page_tag.py b/document_page_tag/models/document_page_tag.py index cb5bf89b82e..dae62d6aea5 100644 --- a/document_page_tag/models/document_page_tag.py +++ b/document_page_tag/models/document_page_tag.py @@ -15,10 +15,14 @@ class DocumentPageTag(models.Model): ("unique_name", "unique(name)", "Tags must be unique"), ] - @api.model - def create(self, vals): + @api.model_create_multi + def create(self, vals_list): """Be nice when trying to create duplicates""" - existing = self.search([("name", "=ilike", vals["name"])], limit=1) - if existing: - return existing - return super().create(vals) + result = self.env['document.page.tag'] + for vals in vals_list: + existing = self.search([("name", "=ilike", vals.get("name", ""))], limit=1) + if existing: + result |= existing + else: + result |= super(DocumentPageTag, self).create(vals) + return result