Remove required on before/after carrier column of incoterm

We must rely only on the selection validation to require a value to permit to
create new incoterm in incoterm module when carrier_carriage is already
activated.

Closes #14440
This commit is contained in:
Cédric Krier
2025-12-20 10:23:56 +01:00
parent ae06fe3f47
commit 9f88144394
2 changed files with 23 additions and 2 deletions
+12
View File
@@ -17,6 +17,18 @@ a database from another series.
7.8 7.8
--- ---
Before
~~~~~~
* If ``carrier_carriage`` module is activated, remove ``NOT NULL`` to
``before_carrier`` and ``after_carrier``:
.. code-block:: SQL
ALTER TABLE "incoterm_incoterm" ALTER COLUMN "before_carrier" DROP NOT NULL;
ALTER TABLE "incoterm_incoterm" ALTER COLUMN "after_carrier" DROP NOT NULL;
After After
~~~~~ ~~~~~
+11 -2
View File
@@ -11,10 +11,19 @@ class Incoterm(metaclass=PoolMeta):
before_carrier = fields.Selection([ before_carrier = fields.Selection([
('buyer', "Buyer"), ('buyer', "Buyer"),
('seller', "Seller"), ('seller', "Seller"),
], "Before Carrier", required=True, ], "Before Carrier",
help="Who contracts carriages before main carriage.") help="Who contracts carriages before main carriage.")
after_carrier = fields.Selection([ after_carrier = fields.Selection([
('buyer', "Buyer"), ('buyer', "Buyer"),
('seller', "Seller"), ('seller', "Seller"),
], "After Carrier", required=True, ], "After Carrier",
help="Who contracts carriages after main carriage.") help="Who contracts carriages after main carriage.")
@classmethod
def __register__(cls, module_name):
table_h = cls.__table_handler__(module_name)
super().__register__(module_name)
# Migration from 7.6: remove required on before/after_carrier
# to permit to create new incoterm in incoterm module
table_h.not_null_action('before_carrier', 'remove')
table_h.not_null_action('after_carrier', 'remove')