Repository
odoo/odoo · module folder
Module version
1.1
Category
Marketing
Folder size
1.38 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
None
Last tracking update
2026-08-15 22:44:17
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier Morel, Raphael Collet, Odoo Translation Bot, Julien Castiaux, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Dylan Kiss (dyki), Mayurrajsinh Rathod, omra-odoo, Julien Carion (juca), nihp-odoo, asno-odoo, Krzysztof Magusiak (krma), dhka-odoo, saurabh, ELCO, chpa-odoo, Romain ROSANO (rros)
Odoo dependencies
odoo/odoo:
- web
Python dependencies
None
System dependencies
None
Required by
crm, event, hr_recruitment, im_livechat, link_tracker, mass_mailing, partner_utm_source, sale, website
Description
Enable management of UTM trackers: campaign, medium, source.

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
utm_campaign_view_form utm.campaign.view.form utm.campaign form New
utm_campaign_view_form_quick_create utm.campaign.view.form.quick.create utm.campaign form New
utm_campaign_view_kanban utm.campaign.view.kanban utm.campaign kanban New
utm_campaign_view_tree utm.campaign.view.list utm.campaign list New
utm_medium_view_form utm.medium.view.form utm.medium form New
utm_medium_view_search utm.medium.view.search utm.medium search New
utm_medium_view_tree utm.medium.view.list utm.medium list New
utm_source_view_form utm.source.view.form utm.source form New
utm_source_view_tree utm.source.view.list utm.source list New
utm_stage_view_form utm.stage.view.form utm.stage form New
utm_stage_view_search utm.stage.view.search utm.stage search New
utm_stage_view_tree utm.stage.view.list utm.stage list New
utm_tag_view_tree utm.tag.view.list utm.tag list New
view_utm_campaign_view_search utm.campaign.view.search utm.campaign search New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (8)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (8)
  • active Boolean
    default=True args: 'Active'
  • color Integer
    string='Color Index'
  • is_auto_campaign Boolean
    default=False help='Allows us to filter relevant Campaigns' string='Automatically Generated Campaign'
  • name Char
    compute='_compute_name' precompute=True readonly=False required=True store=True string='Campaign Identifier' translate=False
  • stage_id Many2one → utm.stage
    copy=False default=<expr> group_expand='_group_expand_stage_ids' ondelete='restrict' required=True string='Stage' args: 'utm.stage'
  • tag_ids Many2many → utm.tag
    string='Tags' args: 'utm.tag', 'utm_tag_rel', 'tag_id', 'campaign_id'
  • title Char
    required=True string='Campaign Name' translate=True
  • user_id Many2one → res.users
    default=<expr> required=True string='Responsible' args: 'res.users'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Medium Name' translate=False
Public methods (2)
  • SELF_REQUIRED_UTM_MEDIUMS_REF(self)
    @property
  • create(self, vals_list)
    @api.model_create_multi

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special' index='btree_not_null' args: 'utm.campaign', 'Campaign'
  • medium_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' index='btree_not_null' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='This is the source of the link, e.g. Search Engine, another domain, or name of email list' index='btree_not_null' args: 'utm.source', 'Source'
Public methods (3)
  • default_get(self, fields)
    @api.model
  • find_or_create_record(self, model_name, name)
    @api.model
    Version of ``_find_or_create_record`` used in frontend notably in website_links. For UTM models it calls _find_or_create_record. For other models (as through inheritance custom models could be used notably in website links) it simply calls a create. In the end it relies on standard ACLs, and is mainly a wrapper for UTM models. :return: id of newly created or found record. As the magic of call_kw for create is not called anymore we have to manually return an id instead of a recordset.
  • tracking_fields(self)

New fields (1)
  • name Char
    required=True string='Source Name'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • name Char
    readonly=False related='source_id.name' args: 'Name'
  • source_id Many2one → utm.source
    copy=False ondelete='restrict' required=True string='Source' args: 'utm.source'
Public methods (4)
  • copy_data(self, default=None)
    Increment the counter when duplicating the source.
  • create(self, vals_list)
    @api.model_create_multi
    Create the UTM sources if necessary, generate the name based on the content in batch.
  • default_get(self, fields)
    @api.model
  • write(self, vals)

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
    default=1
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    default=<expr> help='Tag color. No color means no display in kanban to distinguish internal tags from public categorization tags.' string='Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…