From 195d45f5657ee950478c0d84d69cf1ba08aa3b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CJuan?= Date: Thu, 3 Sep 2026 19:10:43 +0000 Subject: [PATCH] [ADD] google_tag_manager_advanced_tracking: GA4 API Secret placeholder field Add a dummy `ga4_api_secret` Char on website (+ res.config.settings related field and its setting under Website > Tracking & SEO), mirroring the v19 field defined by website_sale_google_analytics_4. In v18 the field only stores the value: it lets clients generate and load their GA4 Measurement Protocol API Secret (server-side) before the v18->v19 upgrade. The GTM-deprecation Upgrade Line migrates the value to the homonymous field of website_sale_google_analytics_4 during the upgrade. Task #66923. X-original-commit: ee833fc191229a3d81f9840f03113ca6b5f4254a --- .../__init__.py | 1 + .../__manifest__.py | 10 ++++++ .../models/__init__.py | 6 ++++ .../models/res_config_settings.py | 16 ++++++++++ .../models/website.py | 25 +++++++++++++++ .../views/res_config_settings_view.xml | 31 +++++++++++++++++++ 6 files changed, 89 insertions(+) create mode 100644 google_tag_manager_advanced_tracking/models/__init__.py create mode 100644 google_tag_manager_advanced_tracking/models/res_config_settings.py create mode 100644 google_tag_manager_advanced_tracking/models/website.py create mode 100644 google_tag_manager_advanced_tracking/views/res_config_settings_view.xml diff --git a/google_tag_manager_advanced_tracking/__init__.py b/google_tag_manager_advanced_tracking/__init__.py index 3d8070cd..d0337769 100644 --- a/google_tag_manager_advanced_tracking/__init__.py +++ b/google_tag_manager_advanced_tracking/__init__.py @@ -2,3 +2,4 @@ # For copyright and license notices, see __manifest__.py file in module root # directory ############################################################################## +from . import models diff --git a/google_tag_manager_advanced_tracking/__manifest__.py b/google_tag_manager_advanced_tracking/__manifest__.py index c08f973a..409a0a0b 100644 --- a/google_tag_manager_advanced_tracking/__manifest__.py +++ b/google_tag_manager_advanced_tracking/__manifest__.py @@ -25,10 +25,20 @@ "website": "www.adhoc.com.ar", "license": "AGPL-3", "depends": [ + "website", "website_google_tag_manager", "website_sale_advanced_tracking", ], +<<<<<<< 09d5c13748170de4e74b6478395abdb1d583a484 "data": [], +||||||| 45ed18e46a1da84aaa581c3c7ddd9f8587e0ae94 + "data": ["views/snippets.xml"], +======= + "data": [ + "views/snippets.xml", + "views/res_config_settings_view.xml", + ], +>>>>>>> 1c5f85bd58c5be5fddcfdd7168c89249d05cace1 "assets": { "web.assets_frontend": [ "google_tag_manager_advanced_tracking/static/src/**/*.js", diff --git a/google_tag_manager_advanced_tracking/models/__init__.py b/google_tag_manager_advanced_tracking/models/__init__.py new file mode 100644 index 00000000..af938a73 --- /dev/null +++ b/google_tag_manager_advanced_tracking/models/__init__.py @@ -0,0 +1,6 @@ +############################################################################## +# For copyright and license notices, see __manifest__.py file in module root +# directory +############################################################################## +from . import website +from . import res_config_settings diff --git a/google_tag_manager_advanced_tracking/models/res_config_settings.py b/google_tag_manager_advanced_tracking/models/res_config_settings.py new file mode 100644 index 00000000..a71a21f7 --- /dev/null +++ b/google_tag_manager_advanced_tracking/models/res_config_settings.py @@ -0,0 +1,16 @@ +############################################################################## +# For copyright and license notices, see __manifest__.py file in module root +# directory +############################################################################## +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + ga4_api_secret = fields.Char( + string="GA4 API Secret", + related="website_id.ga4_api_secret", + readonly=False, + groups="base.group_system", + ) diff --git a/google_tag_manager_advanced_tracking/models/website.py b/google_tag_manager_advanced_tracking/models/website.py new file mode 100644 index 00000000..6b01175a --- /dev/null +++ b/google_tag_manager_advanced_tracking/models/website.py @@ -0,0 +1,25 @@ +############################################################################## +# For copyright and license notices, see __manifest__.py file in module root +# directory +############################################################################## +from odoo import fields, models + + +class Website(models.Model): + _inherit = "website" + + # Campo "dummy" (placeholder): en v18 solo almacena el valor. La integración + # GA4 server-side que lo consume vive en v19 (module website_sale_google_analytics_4, + # que define este mismo campo homónimo). Se agrega acá para que los clientes en + # v18 puedan generar y cargar su GA4 API Secret antes del pase de versión; el + # Upgrade Line de deprecación de GTM migra el valor al módulo nuevo. Ver tarea #66923. + ga4_api_secret = fields.Char( + string="GA4 API Secret", + copy=False, + groups="base.group_system", + help=( + "Measurement Protocol API Secret generated in GA4 admin.\n" + "Required to send server-side events (purchase, refund) after upgrading to v19.\n" + "Generate one at: Admin → Data Streams → your stream → Measurement Protocol API secrets." + ), + ) diff --git a/google_tag_manager_advanced_tracking/views/res_config_settings_view.xml b/google_tag_manager_advanced_tracking/views/res_config_settings_view.xml new file mode 100644 index 00000000..7ace4406 --- /dev/null +++ b/google_tag_manager_advanced_tracking/views/res_config_settings_view.xml @@ -0,0 +1,31 @@ + + + + + res.config.settings.view.form.ga4_api_secret + res.config.settings + + + + +
+
+
+
+
+
+
+
+