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)] 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