From d57c6a90bbdf7d475ad792580f46423eef60e803 Mon Sep 17 00:00:00 2001 From: Suherdy Yacob Date: Fri, 23 Jan 2026 13:40:05 +0700 Subject: [PATCH] fix error on odoo 19 --- __manifest__.py | 5 ----- models/sign_item_type.py | 6 ++++++ tests/__init__.py | 1 + tests/test_sign_item_type.py | 31 +++++++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/test_sign_item_type.py diff --git a/__manifest__.py b/__manifest__.py index a844fd1..d6fcd73 100755 --- a/__manifest__.py +++ b/__manifest__.py @@ -15,11 +15,6 @@ This module extends the Odoo Sign module to allow users to upload images as a fi 'data/sign_item_type_data.xml', ], 'assets': { - 'web.assets_frontend': [ - 'sign_image_field/static/src/css/sign_image_field.css', - 'sign_image_field/static/src/js/sign_image_upload.js', - 'sign_image_field/static/src/xml/sign_items_image.xml', - ], 'web.assets_backend': [ 'sign_image_field/static/src/css/sign_image_field.css', 'sign_image_field/static/src/js/sign_image_upload.js', diff --git a/models/sign_item_type.py b/models/sign_item_type.py index 58db8e6..a5d0f26 100755 --- a/models/sign_item_type.py +++ b/models/sign_item_type.py @@ -8,3 +8,9 @@ class SignItemType(models.Model): _inherit = "sign.item.type" item_type = fields.Selection(selection_add=[('image', "Image")], ondelete={'image': 'cascade'}) + + def _compute_dimensions(self): + super(SignItemType, self.filtered(lambda r: r.item_type != 'image'))._compute_dimensions() + for record in self.filtered(lambda r: r.item_type == 'image'): + record.default_width = 0.2 + record.default_height = 0.05 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..9104e48 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1 @@ +from . import test_sign_item_type diff --git a/tests/test_sign_item_type.py b/tests/test_sign_item_type.py new file mode 100644 index 0000000..55faf52 --- /dev/null +++ b/tests/test_sign_item_type.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +from odoo.tests.common import TransactionCase + +class TestSignItemType(TransactionCase): + + def test_image_item_type_dimensions(self): + """ Test that creating a sign item type of type 'image' computes dimensions correctly without error """ + image_type = self.env['sign.item.type'].create({ + 'name': 'Test Image Field', + 'item_type': 'image', + 'field_size': 'regular_text', # Should be ignored for non-text types but required + }) + + # Trigger computation if not already done + image_type._compute_dimensions() + + self.assertEqual(image_type.default_width, 0.2, "Default width for image should be 0.2") + self.assertEqual(image_type.default_height, 0.05, "Default height for image should be 0.05") + + def test_other_item_type_dimensions(self): + """ Ensure standard types still work as expected """ + signature_type = self.env['sign.item.type'].create({ + 'name': 'Test Signature', + 'item_type': 'signature', + 'field_size': 'regular_text', + }) + signature_type._compute_dimensions() # Should rely on super + + # Values from standard Odoo: 'signature': [0.2, 0.05] + self.assertEqual(signature_type.default_width, 0.2) + self.assertEqual(signature_type.default_height, 0.05)