19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:30:27 +01:00
parent d1963a3c3a
commit 2d3ee4855a
7430 changed files with 2687981 additions and 2965473 deletions

View file

@ -9,11 +9,17 @@
<field name="tag_ids"/>
<field name="user_id"/>
<field name="is_auto_campaign"/>
<group expand="0" string="Group By">
<filter string="My Campaigns" name="filter_assigned_to_me" domain="[('user_id', '=', uid)]"
help="Campaigns that are assigned to me"/>
<separator/>
<filter string="Archived" name="filter_inactive" domain="[('active', '=', False)]"/>
<group>
<filter string="Stage" name="group_stage_id"
context="{'group_by': 'stage_id'}"/>
<filter string="Responsible" name="group_user_id"
context="{'group_by': 'user_id'}"/>
<filter string="Tags" name="group_tags_id"
context="{'group_by': 'tag_ids'}"/>
</group>
</search>
</field>
@ -30,10 +36,12 @@
<sheet>
<div class="oe_button_box d-flex justify-content-end" name="button_box">
</div>
<widget name="web_ribbon" title="Archived" bg_color="text-bg-danger" invisible="active"/>
<group id="top-group">
<field name="active" invisible="1"/>
<field class="text-break" name="title" string="Campaign Name" placeholder="e.g. Black Friday"/>
<field name="name" invisible="1"/>
<field name="user_id" domain="[('share', '=', False)]"/>
<field name="user_id" widget="many2one_avatar_user" domain="[('share', '=', False)]"/>
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}"/>
</group>
<notebook>
@ -44,16 +52,16 @@
</record>
<record model="ir.ui.view" id="utm_campaign_view_tree">
<field name="name">utm.campaign.view.tree</field>
<field name="name">utm.campaign.view.list</field>
<field name="model">utm.campaign</field>
<field name="arch" type="xml">
<tree string="UTM Campaigns" multi_edit="1" sample="1">
<field name="title" readonly="1"/>
<field name="name" invisible="1"/>
<field name="user_id"/>
<field name="stage_id"/>
<list string="UTM Campaigns" multi_edit="1" sample="1">
<field name="title" string="Name" readonly="1"/>
<field name="name" column_invisible="True"/>
<field name="user_id" widget="many2one_avatar_user"/>
<field name="stage_id" decoration-bf="1"/>
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
</tree>
</list>
</field>
</record>
@ -66,8 +74,8 @@
<group>
<field name="name" invisible="1"/>
<field class="o_text_overflow" name="title" string="Campaign Name" placeholder="e.g. Black Friday"/>
<field name="user_id" domain="[('share', '=', False)]"/>
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}"/>
<field name="user_id" widget="many2one_avatar_user" domain="[('share', '=', False)]"/>
<field name="tag_ids" widget="many2many_tags" class="o_field_highlight" options="{'color_field': 'color', 'no_create_edit': True}"/>
</group>
</form>
</field>
@ -77,47 +85,31 @@
<field name="name">utm.campaign.view.kanban</field>
<field name="model">utm.campaign</field>
<field name="arch" type="xml">
<kanban default_group_by='stage_id' class="o_utm_kanban" on_create="quick_create" quick_create_view="utm.utm_campaign_view_form_quick_create" examples="utm_campaign" sample="1">
<field name='color'/>
<kanban highlight_color="color" default_group_by='stage_id' class="o_utm_kanban" on_create="quick_create" quick_create_view="utm.utm_campaign_view_form_quick_create" examples="utm_campaign" sample="1">
<field name='user_id'/>
<field name="stage_id"/>
<field name='active'/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
<div class="o_dropdown_kanban dropdown">
<a role="button" class="dropdown-toggle o-no-caret btn" data-bs-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
<span class="fa fa-ellipsis-v"/>
</a>
<div class="dropdown-menu" role="menu">
<t t-if="widget.editable">
<a role="menuitem" type="edit" class="dropdown-item">Edit</a>
</t>
<t t-if="widget.deletable">
<a role="menuitem" type="delete" class="dropdown-item">Delete</a>
</t>
<div role="separator" class="dropdown-divider"/>
<ul class="oe_kanban_colorpicker" data-field="color"/>
</div>
</div>
<div class="oe_kanban_content">
<div class="o_kanban_record_top">
<div class="o_kanban_record_headings">
<h3 class="oe_margin_bottom_8 o_kanban_record_title"><field name="title"/></h3>
</div>
</div>
<div class="o_kanban_record_body">
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
<ul id="o_utm_actions" class="list-group list-group-horizontal my-0"/>
</div>
<div class="o_kanban_record_bottom h5 mt-2 mb-0">
<div id="utm_statistics" class="d-flex flex-grow-1 text-600 mt-1"/>
<div class="oe_kanban_bottom_right">
<field name="user_id" widget="many2one_avatar_user"/>
</div>
</div>
</div>
<div class="clearfix"></div>
</div>
<t t-name="menu">
<t t-if="widget.editable">
<a role="menuitem" type="open" class="dropdown-item">Edit</a>
</t>
<t t-if="widget.deletable">
<a role="menuitem" type="delete" class="dropdown-item">Delete</a>
</t>
<a role="menuitem" class="dropdown-item o_kanban_mailing_active" name="action_archive" type="object" t-if="record.active.raw_value">Archive</a>
<a role="menuitem" class="dropdown-item o_kanban_mailing_active" name="action_unarchive" type="object" t-if="!record.active.raw_value">Restore</a>
<div role="separator" class="dropdown-divider"/>
<field name="color" widget="kanban_color_picker"/>
</t>
<t t-name="card">
<field name="title" class="fw-bold fs-5"/>
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
<ul id="o_utm_actions" class="list-group list-group-horizontal my-0"/>
<footer class="mt-2 mb-0 pt-0">
<div class="py-auto"/>
<field name="user_id" widget="many2one_avatar_user" class="ms-auto"/>
</footer>
</t>
</templates>
</kanban>
@ -127,7 +119,7 @@
<record id="utm_campaign_action" model="ir.actions.act_window">
<field name="name">Campaigns</field>
<field name="res_model">utm.campaign</field>
<field name="view_mode">tree,kanban,form</field>
<field name="view_mode">list,kanban,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a campaign

View file

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="utm_medium_view_tree" model="ir.ui.view">
<field name="name">utm.medium.view.tree</field>
<field name="name">utm.medium.view.list</field>
<field name="model">utm.medium</field>
<field name="arch" type="xml">
<tree string="Mediums" editable="bottom" sample="1">
<field name="name"/>
<field name="active" invisible="1"/>
</tree>
<list string="Mediums" editable="bottom" sample="1">
<field name="name" placeholder='e.g. "Email"'/>
<field name="active" column_invisible="True"/>
</list>
</field>
</record>
@ -41,13 +41,13 @@
<record id="utm_medium_action" model="ir.actions.act_window">
<field name="name">Mediums</field>
<field name="res_model">utm.medium</field>
<field name="view_mode">tree,form</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="utm_medium_view_search"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a Medium
</p><p>
UTM Mediums track the mean that was used to attract traffic (e.g. "Website", "Twitter", ...).
UTM Mediums track the mean that was used to attract traffic (e.g. "Website", "X", ...).
</p>
</field>
</record>

View file

@ -3,7 +3,7 @@
<menuitem id="menu_link_tracker_root"
name="Link Tracker"
sequence="270"
web_icon="utm,static/description/icon.svg"
web_icon="utm,static/description/icon.png"
groups="base.group_no_one"/>
<menuitem id="marketing_utm"

View file

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="utm_source_view_tree" model="ir.ui.view">
<field name="name">utm.source.view.tree</field>
<field name="name">utm.source.view.list</field>
<field name="model">utm.source</field>
<field name="arch" type="xml">
<tree string="Source" editable="bottom" sample="1">
<field name="name"/>
</tree>
<list string="Source" editable="bottom" sample="1">
<field name="name" placeholder='e.g. "Christmas Mailing"'/>
</list>
</field>
</record>
@ -27,7 +27,7 @@
<record id="utm_source_action" model="ir.actions.act_window">
<field name="name">Sources</field>
<field name="res_model">utm.source</field>
<field name="view_mode">tree,form</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No Sources yet!

View file

@ -11,26 +11,42 @@
</record>
<record model="ir.ui.view" id="utm_stage_view_tree">
<field name="name">utm.stage.view.tree</field>
<field name="name">utm.stage.view.list</field>
<field name="model">utm.stage</field>
<field name="priority">10</field>
<field name="arch" type="xml">
<tree string="Stages" editable="top">
<list string="Stages" editable="top">
<field name="sequence" widget="handle"/>
<field name="name"/>
</tree>
</list>
</field>
</record>
<record id="utm_stage_view_form" model="ir.ui.view">
<field name="name">utm.stage.view.form</field>
<field name="model">utm.stage</field>
<field name="arch" type="xml">
<form string="Stages">
<sheet>
<group>
<group>
<field name="name" placeholder='e.g. "Brainstorming"'/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_view_utm_stage" model="ir.actions.act_window">
<field name="name">UTM Stages</field>
<field name="res_model">utm.stage</field>
<field name="view_mode">tree,form</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a stage for your campaigns
</p><p>
Stages allow you to organize your workflow (e.g. : plan, design, in progress, done, …).
Stages allow you to organize your workflow (e.g. plan, design, in progress, done, …).
</p>
</field>
</record>

View file

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="utm_tag_view_tree" model="ir.ui.view">
<field name="name">utm.tag.view.tree</field>
<field name="name">utm.tag.view.list</field>
<field name="model">utm.tag</field>
<field name="arch" type="xml">
<tree string="Campaign Tags" editable="top">
<list string="Campaign Tags" editable="top">
<field name="name"/>
</tree>
</list>
</field>
</record>