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 google_tag_manager_advanced_tracking/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
# For copyright and license notices, see __manifest__.py file in module root
# directory
##############################################################################
from . import models
10 changes: 10 additions & 0 deletions google_tag_manager_advanced_tracking/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
6 changes: 6 additions & 0 deletions google_tag_manager_advanced_tracking/models/__init__.py
Original file line number Diff line number Diff line change
@@ -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
16 changes: 16 additions & 0 deletions google_tag_manager_advanced_tracking/models/res_config_settings.py
Original file line number Diff line number Diff line change
@@ -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",
)
25 changes: 25 additions & 0 deletions google_tag_manager_advanced_tracking/models/website.py
Original file line number Diff line number Diff line change
@@ -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."
),
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
Add a GA4 API Secret (server-side) field in Website Settings, right after
the native Google Analytics (Measurement ID) setting. In v18 this is a
placeholder so clients can load the value before upgrading to v19, where
website_sale_google_analytics_4 consumes it. See task #66923.
-->
<record id="res_config_settings_view_form_ga4_secret" model="ir.ui.view">
<field name="name">res.config.settings.view.form.ga4_api_secret</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="website.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//setting[@id='google_analytics_setting']" position="after">
<setting
id="ga4_api_secret_setting"
string="GA4 API Secret (Server-side)"
invisible="not has_google_analytics"
help="Measurement Protocol API Secret for server-side purchase and refund events. Generate at: GA4 Admin → Data Streams → your stream → Measurement Protocol API secrets."
>
<div class="content-group">
<div class="row mt16">
<label class="col-lg-4 o_light_label" for="ga4_api_secret"/>
<field name="ga4_api_secret" password="True" placeholder="Your API secret"/>
</div>
</div>
</setting>
</xpath>
</field>
</record>
</odoo>
Loading