Skip to content

[18.0][MIG] base_external_system: Migration to version 18.0#422

Open
Andrii9090-tecnativa wants to merge 17 commits intoOCA:18.0from
Tecnativa:18.0-mig-base_external_system
Open

[18.0][MIG] base_external_system: Migration to version 18.0#422
Andrii9090-tecnativa wants to merge 17 commits intoOCA:18.0from
Tecnativa:18.0-mig-base_external_system

Conversation

@Andrii9090-tecnativa
Copy link

Migration to version 18.0

@pedrobaeza @sergio-teruel can you review?
TT60957
@Tecnativa

lasley and others added 16 commits February 17, 2026 09:40
* [ADD] base_external_system: Implement interface/adapter for external systems

* base_external_system: Fix OS model, add inherits, add validate

* base_external_system: Usability and private key pass

* base_external_system: Use contextmanager in adapter client

* base_external_system: Move contextmanager to interface

* base_external_system: Include contextmanager on adapter and system

* base_external_system: Unify client

* Use password widget for password field

* Add tests & security

* Fix lint

* Add plaintext note
* In cases of deep inheritance, it may be required to create an adapter directly. Add an override in the create via the env context to support this.
* Add default system type if creating from an interface
* Fix interface assignment during creation in adapter
* Perform standard v11 migration
Testing fingerprint, with ignore_finger_print set to False, caused an error, because it would first set
ignore_fingerprint to False, then validate, never getting to actually setting the fingerprint, causing the
following stacktrace:
Traceback (most recent call last):

  File "/home/travis/build/OCA/server-backend/base_external_system/tests/test_external_system.py", line 28, in test_check_fingerprint_allowed

    self.record.write({"ignore_fingerprint": False, "fingerprint": "Data"})

  File "/home/travis/odoo-13.0/odoo/models.py", line 3573, in write

    fields[0].determine_inverse(real_recs)

  File "/home/travis/odoo-13.0/odoo/fields.py", line 1122, in determine_inverse

    self.inverse(records)

  File "/home/travis/odoo-13.0/odoo/fields.py", line 594, in _inverse_related

    target[field.name] = record_value[record]

  File "/home/travis/odoo-13.0/odoo/models.py", line 5629, in __setitem__

    return self._fields[key].__set__(self, value)

  File "/home/travis/odoo-13.0/odoo/fields.py", line 1087, in __set__

    records.write({self.name: write_value})

  File "/home/travis/odoo-13.0/odoo/models.py", line 3568, in write

    real_recs._validate_fields(set(vals) - set(inverse_fields))

  File "/home/travis/odoo-13.0/odoo/models.py", line 1176, in _validate_fields

    check(self)
Currently translated at 100.0% (43 of 43 strings)

Translation: server-backend-16.0/server-backend-16.0-base_external_system
Translate-URL: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-base_external_system/es/
Currently translated at 100.0% (43 of 43 strings)

Translation: server-backend-16.0/server-backend-16.0-base_external_system
Translate-URL: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-base_external_system/it/
Copy link
Contributor

@sergio-teruel sergio-teruel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor comment

LGTM

@Andrii9090-tecnativa Andrii9090-tecnativa force-pushed the 18.0-mig-base_external_system branch from 6f001cb to 4f69d32 Compare February 18, 2026 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants