Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions test-requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
odoo-addon-server_environment @ git+https://github.com/OCA/server-env.git@refs/pull/288/head#subdirectory=server_environment
2 changes: 1 addition & 1 deletion webservice_server_env/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
from . import models
from .hooks import uninstall_hook
from .hooks import post_init_hook, uninstall_hook
1 change: 1 addition & 0 deletions webservice_server_env/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"author": "Creu Blanca, Camptocamp, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/web-api",
"depends": ["web", "webservice", "server_environment"],
"post_init_hook": "post_init_hook",
"uninstall_hook": "uninstall_hook",
"auto_install": True,
}
51 changes: 28 additions & 23 deletions webservice_server_env/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,37 @@

from odoo.addons.server_environment.uninstall import restore_env_managed_columns

ENV_MANAGED_FIELDS = [
"protocol",
"url",
"auth_type",
"username",
"password",
"api_key",
"api_key_header",
"content_type",
"oauth2_flow",
"oauth2_scope",
"oauth2_clientid",
"oauth2_client_secret",
"oauth2_authorization_url",
"oauth2_token_url",
"oauth2_audience",
"oauth2_token_method",
"oauth2_client_auth_method",
"oauth2_client_auth_header",
"oauth2_client_auth_value",
]

def uninstall_hook(env):
"""Restore database columns dropped by server.env.mixin.

When the module is uninstalled, the columns managed by the server
environment mixin must be restored and repopulated with current values,
so the database remains usable.
"""
def post_init_hook(env):
env["webservice.backend"]._preserve_not_env_managed_data(ENV_MANAGED_FIELDS)


def uninstall_hook(env):
"""Restore database columns dropped by server.env.mixin."""
restore_env_managed_columns(
env,
"webservice.backend",
[
"protocol",
"url",
"auth_type",
"username",
"password",
"api_key",
"api_key_header",
"content_type",
"oauth2_flow",
"oauth2_scope",
"oauth2_clientid",
"oauth2_client_secret",
"oauth2_authorization_url",
"oauth2_token_url",
"oauth2_audience",
],
ENV_MANAGED_FIELDS,
)
Loading