summaryrefslogtreecommitdiff
path: root/addons/website_links/views
diff options
context:
space:
mode:
authorJulien De Coster <jdc@odoo.com>2014-08-12 14:54:26 +0530
committerJulien De Coster <jdc@odoo.com>2014-12-17 17:14:33 +0100
commitddac26cdbb3535239f5dbb41f5b464366065f3ba (patch)
treeb54e4d34060f1c7f80a8c6404f7f4fd56d914e52 /addons/website_links/views
parent7f97bf4ec07329e58c818632bf23017b390bb099 (diff)
[ADD] Add the website_links module.
This module tracks clicks in mass mailing mails and allow the generation of trackable links in a website interface. Modules modifications --------------------- Refractoring of the crm_tracking_* classes in a new module. * Extract the crm_tracking_* from the crm module into a new module "utm" * Remove the crm_mass_mailing bridge module * New dependencies of mass_mailing and website_links to utm.
Diffstat (limited to 'addons/website_links/views')
-rw-r--r--addons/website_links/views/website_links.xml169
-rw-r--r--addons/website_links/views/website_links_graphs.xml179
-rw-r--r--addons/website_links/views/website_links_template.xml123
3 files changed, 471 insertions, 0 deletions
diff --git a/addons/website_links/views/website_links.xml b/addons/website_links/views/website_links.xml
new file mode 100644
index 00000000000..9ea8f83d271
--- /dev/null
+++ b/addons/website_links/views/website_links.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+ <record model="ir.actions.act_window" id="action_view_click_statistics">
+ <field name="name">Statistics of Clicks</field>
+ <field name="res_model">website.links.click</field>
+ <field name="view_mode">graph</field>
+ <field name="domain">[('link_id', 'IN', ids)]</field>
+ </record>
+
+ <!-- Search -->
+ <record id="view_website_links_filter" model="ir.ui.view">
+ <field name="name">Links</field>
+ <field name="model">website.links</field>
+ <field name="arch" type="xml">
+ <search string="Tracked Link">
+ <field name="title"/>
+ <field name="url" string="Title and URL" filter_domain="['|', ('title', 'ilike', self), ('url', 'ilike', self)]"/>
+ </search>
+ </field>
+ </record>
+
+ <!-- Website links views -->
+ <record id="view_website_links_form" model="ir.ui.view">
+ <field name="name">website.links.form</field>
+ <field name="model">website.links</field>
+ <field name="arch" type="xml">
+ <form string="Website Link">
+ <sheet>
+ <div class="oe_button_box pull-right">
+ <button type="object" icon="fa-sign-out" name="action_visit_page"
+ string="Visit Page" class="oe_stat_button"/>
+
+ <button type="object" class="oe_stat_button" name="action_view_statistics" icon="fa-bar-chart">
+ <field name="count" string="Clicks" widget="statinfo"/>
+ </button>
+
+ </div>
+ <group>
+ <field name="title"/>
+ <field name="url"/>
+ <field name="short_url"/>
+ </group>
+
+ <group>
+ <field name="campaign_id"/>
+ <field name="medium_id"/>
+ <field name="source_id"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+
+ <record id="view_website_links_form_stats" model="ir.ui.view">
+ <field name="name">website.links.my.form</field>
+ <field name="model">website.links</field>
+ <field name="arch" type="xml">
+ <form string="Website Link Graph">
+ <sheet>
+ <field name="link_click_ids">
+ <graph>
+ <field name="link_id"/>
+ <field name="ip"/>
+ <field name="country_id"/>
+ </graph>
+ </field>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="action_website_links_stats">
+ <field name="name">website.links.form.graph.action</field>
+ <field name="res_model">website.links</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="view_website_links_form_stats"/>
+ </record>
+
+ <record id="view_website_links_tree" model="ir.ui.view">
+ <field name="name">website.links.tree</field>
+ <field name="model">website.links</field>
+ <field name="arch" type="xml">
+ <tree string="Website Links">
+ <field name="create_date"/>
+ <field name="title"/>
+ <field name="url"/>
+ <field name="short_url"/>
+ <field name="count"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="view_website_links_graph" model="ir.ui.view" >
+ <field name="name">website.links.graph</field>
+ <field name="model">website.links</field>
+ <field name="arch" type="xml">
+ <graph string="Website Links" type="bar">
+ <field name="url" type="row"/>
+ <field name="count" type="measure"/>
+ </graph>
+ </field>
+ </record>
+
+ <!-- Action for website links-->
+ <record model="ir.actions.act_window" id="action_website_links">
+ <field name="name">Link Tracker</field>
+ <field name="res_model">website.links</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form,graph</field>
+ </record>
+
+ <!-- Website links click views -->
+ <record id="view_website_links_click_form" model="ir.ui.view">
+ <field name="name">website.links.click.form</field>
+ <field name="model">website.links.click</field>
+ <field name="arch" type="xml">
+ <form string="Website Link Clicks">
+ <header>
+ </header>
+ <sheet>
+ <group>
+ <field name="link_id"/>
+ <field name="ip"/>
+ <field name="country_id"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record id="view_website_links_click_tree" model="ir.ui.view">
+ <field name="name">website.links.click.tree</field>
+ <field name="model">website.links.click</field>
+ <field name="arch" type="xml">
+ <tree string="Website Links Clicks">
+ <field name="link_id"/>
+ <field name="ip"/>
+ <field name="country_id"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="view_website_links_click_graph" model="ir.ui.view" >
+ <field name="name">website.links.click.graph</field>
+ <field name="model">website.links.click</field>
+ <field name="arch" type="xml">
+ <graph string="Website Link Clicks">
+ <field name="link_id"/>
+ <field name="ip"/>
+ <field name="country_id"/>
+ </graph>
+ </field>
+ </record>
+
+ <!-- Action for website links click-->
+ <record model="ir.actions.act_window" id="action_website_links_click">
+ <field name="name">Tracked Links</field>
+ <field name="res_model">website.links.click</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">graph,tree,form</field>
+ </record>
+
+ <menuitem id="menu_url_shortener_main" name="Link Tracker" parent="base.marketing_menu" groups="base.group_no_one"/>
+ <menuitem id="menu_url_shortener_links" name="Tracked Links" parent="menu_url_shortener_main" action="action_website_links"/>
+ </data>
+</openerp>
diff --git a/addons/website_links/views/website_links_graphs.xml b/addons/website_links/views/website_links_graphs.xml
new file mode 100644
index 00000000000..4c71baf669e
--- /dev/null
+++ b/addons/website_links/views/website_links_graphs.xml
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+ <template id="assets_website_links_charts" inherit_id="website.assets_frontend">
+ <xpath expr="." position="inside">
+ <script type="text/javascript" src="/web/static/lib/moment/moment.js"/>
+ <script type="text/javascript" src="/website_links/static/src/js/website_links_charts.js"/>
+ <script type="text/javascript" src="/website_links/static/src/js/ZeroClipboard.js"/>
+ <link rel="stylesheet" type="text/css" href="/website_links/static/src/css/website_links.css" />
+ </xpath>
+ </template>
+
+ <template id="assets_nvd3">
+ <link href="/web_graph/static/src/css/nv.d3.css" rel="stylesheet" type="text/css"></link>
+ <script src="/web_graph/static/lib/nvd3/d3.v3.js"></script>
+ <script src="/web_graph/static/lib/nvd3/nv.d3.js"></script>
+ </template>
+
+ <template id="graphs" name="Link Statistics">
+ <t t-call="website.layout">
+ <t t-set="head">
+ <t t-call-assets="website_links.assets_nvd3"/>
+ </t>
+
+ <div class="o_website_links_chart">
+ <div class="container">
+ <div class="row mt8">
+ <div class="col-sm-12">
+ <ol class="breadcrumb">
+ <li><a href="/r">Link Tracker</a></li>
+ <li class="active"><t t-esc="title"/></li>
+ </ol>
+ </div>
+ </div>
+
+ <input type="hidden" id="code" t-att-value="code" />
+ <input type="hidden" id="link_id" t-att-value="id" />
+
+ <h1 class="page-header mt0"><t t-esc="title"/></h1>
+
+ <div class="row">
+ <div class="col-sm-8">
+ <div class="row">
+ <div class="col-sm-4 col-xs-11">
+ <p><strong>Original URL</strong></p>
+ </div>
+ <div class="col-sm-8 col-xs-11">
+ <p class="truncate_text"><a t-att-href="url"><t t-esc="url"/></a></p>
+ </div>
+ </div>
+
+ <div class="row">
+ <div class="col-sm-4">
+ <p><strong>Tracked Link</strong></p>
+ </div>
+ <div class="col-sm-8">
+ <p>
+ <span class="o_website_links_short_url" id="short_url"><span id="short-url-host"><t t-esc="short_url_host"/></span><span id="o_website_links_code"><t t-esc="code"/></span></span>
+ <span class="o_website_links_edit_tools" style="display:none;">
+ <a class="o_website_links_ok_edit btn btn-xs btn-primary" href="#">ok</a> or
+ <a class="o_website_links_cancel_edit" href="#">cancel</a>
+ </span>
+ <a class="o_website_links_edit_code"><span class="fa fa-pencil gray"></span></a>
+ <a class="copy-to-clipboard" t-att-data-clipboard-text="short_url">copy</a>
+
+ </p>
+ <p class='o_website_links_code_error' style='color:red;font-weight:bold;display:none'></p>
+ </div>
+ </div>
+
+ <div class="row">
+ <div class="col-sm-4 col-xs-12">
+ <p><strong>Redirected URL</strong></p>
+ </div>
+ <div class="col-sm-8 col-xs-11" style="word-wrap:break-word;">
+ <t t-esc="redirected_url"/>
+ </div>
+ </div>
+ </div>
+ <div class="col-sm-4">
+ <t t-if="campaign_id">
+ <div class="row">
+ <div class="col-sm-4">
+ <p><strong>Campaign</strong></p>
+ </div>
+ <div class="col-sm-8">
+ <p><t t-esc="campaign_id[1]"/></p>
+ </div>
+ </div>
+ </t>
+
+ <t t-if="medium_id">
+ <div class="row">
+ <div class="col-sm-4">
+ <p><strong>Medium</strong></p>
+ </div>
+ <div class="col-sm-8">
+ <p><t t-esc="medium_id[1]"/></p>
+ </div>
+ </div>
+ </t>
+
+ <t t-if="source_id">
+ <div class="row">
+ <div class="col-sm-4">
+ <p><strong>Source</strong></p>
+ </div>
+ <div class="col-sm-8">
+ <p><t t-esc="source_id[1]"/></p>
+ </div>
+ </div>
+ </t>
+ </div>
+ </div>
+
+ <h1 class="page-header">Statistics
+ <small class="pull-right hidden-xs mt16" id="filters">
+ <ul class="nav nav-tabs nav-tabs-inline graph-tabs" role="tablist">
+ <li class="active"><a href="#all_time_charts" role="tab" data-toggle="tab">All Time</a></li>
+ <li><a href="#last_month_charts" role="tab" data-toggle="tab">Last Month</a></li>
+ <li><a href="#last_week_charts" role="tab" data-toggle="tab">Last Week</a></li>
+ </ul>
+ </small>
+ </h1>
+
+ <div class="row">
+ <div class="col-sm-12 mb8">
+ <div class="tab-content">
+
+ <!-- All Time Charts -->
+ <div class="tab-pane active" id="all_time_charts">
+ <div class="row">
+ <div class="col-sm-7 website_links_click_chart" id="all_time_clicks_chart">
+ <h3 class="title"></h3>
+ <svg style="height:20em;"></svg>
+ </div>
+ <div class="col-sm-5 website_links_click_chart" id="all_time_countries_charts">
+ <h3 class="title"></h3>
+ <svg style="height:20em;"></svg>
+ </div>
+ </div>
+ </div>
+
+ <!-- Last Month Charts -->
+ <div class="tab-pane" id="last_month_charts">
+ <div class="row">
+ <div class="col-sm-7 website_links_click_chart" id="last_month_clicks_chart">
+ <h3 class="title"></h3>
+ <svg style="height:20em;"></svg>
+ </div>
+ <div class="col-sm-5 website_links_click_chart" id="last_month_countries_charts">
+ <h3 class="title"></h3>
+ <svg style="height:20em;"></svg>
+ </div>
+ </div>
+ </div>
+
+ <!-- Last Week Charts -->
+ <div class="tab-pane" id="last_week_charts">
+ <div class="row">
+ <div class="col-sm-7 website_links_click_chart" id="last_week_clicks_chart">
+ <h3 class="title"></h3>
+ <svg style="height:20em;"></svg>
+ </div>
+ <div class="col-sm-5 website_links_click_chart" id="last_week_countries_charts">
+ <h3 class="title"></h3>
+ <svg style="height:20em;"></svg>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </t>
+ </template>
+ </data>
+</openerp> \ No newline at end of file
diff --git a/addons/website_links/views/website_links_template.xml b/addons/website_links/views/website_links_template.xml
new file mode 100644
index 00000000000..7b019403ba5
--- /dev/null
+++ b/addons/website_links/views/website_links_template.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+ <template id="assets_website_links" inherit_id="website.assets_frontend">
+ <xpath expr="." position="inside">
+ <script type="text/javascript" src="/website_links/static/src/js/website_links.js"/>
+ <script type="text/javascript" src="/website_links/static/src/js/ZeroClipboard.js"/>
+ <link rel="stylesheet" type="text/css" href="/website_links/static/src/css/website_links.css" />
+ <script type="text/javascript" src="/website_links/static/src/js/website_links_code_editor.js"/>
+ </xpath>
+ </template>
+
+ <template id="share_page_menu" inherit_id="website.user_navbar">
+ <xpath expr="//li[@groups='base.group_website_designer']" position="replace">
+ <li groups="base.group_website_designer">
+ <a id="promote-menu-button" class="dropdown-toggle" data-toggle="dropdown" href="#">
+ Promote <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu oe_content_menu" role="menu">
+ <li>
+ <a data-action="promote-current-page" href="#">
+ <span title="Promote page on the web">Optimise SEO...</span>
+ </a>
+ </li>
+ <li>
+ <a href="/r" id="o_website_links_share_page">
+ <span title="Track this page to count clicks">Share this Page</span>
+ </a>
+ </li>
+ </ul>
+ </li>
+ </xpath>
+ </template>
+
+ <template id="asset_website_links_menu" inherit_id="website.assets_editor">
+ <xpath expr="." position="inside">
+ <script type="text/javascript" src="/website_links/static/src/js/website_links_menu.js"></script>
+ </xpath>
+ </template>
+
+ <template id="create_shorten_url">
+ <div class="o_website_links_create_tracked_url">
+ <div class="container">
+ <h1 class="page-header">Link Tracker</h1>
+ <div class="notification"></div>
+
+ <div class="row">
+ <div class="col-sm-7">
+ <form class="form-horizontal" id="o_website_links_link_tracker_form">
+
+ <div class="form-group" id="url-form-group">
+ <label class="col-sm-3 control-label text-left">URL</label>
+
+ <div class="col-sm-9">
+ <input type="text" id="url" class="form-control required-form-control" required="True" placeholder="e.g. https://www.odoo.com/page/contactus" t-att-value="u"/>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">Campaign <i class="fa fa-info-circle" data-toggle="tooltip" data-placement="top" title="Defines the context of your link. It might be an event you want to promote or a special promotion."></i></label>
+
+ <div class="col-sm-9">
+ <input type="hidden" class="form-control" id="campaign-select"/>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">Medium <i class="fa fa-info-circle" data-toggle="tooltip" data-placement="top" title="Defines the medium used to share your link. It might be an email, or a Facebook Ads for instance."></i></label>
+
+ <div class="col-sm-9">
+ <input type="hidden" class="form-control" id="channel-select" />
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">Source <i class="fa fa-info-circle" data-toggle="tooltip" data-placement="top" title="Defines the source from which your traffic will come from, Facebook or Twitter for instance."></i></label>
+
+ <div class="col-sm-9">
+ <input type="hidden" class="form-control" id="source-select" />
+ </div>
+ </div>
+
+ <div class="form-group">
+ <div class="col-sm-offset-3 col-sm-9">
+ <button type="submit" class="btn btn-primary" id="btn_shorten_url" data-clipboard-text="">Get tracked link</button>
+
+ <span id="generated_tracked_link" style="display:none;" class="text-muted"></span>
+ </div>
+ </div>
+ </form>
+ </div>
+
+ <div class="col-sm-offset-1 col-sm-3 hidden-xs">
+ <p class="text-muted text-justify">Share this page with a <strong>short link</strong> that includes <strong>analytics trackers</strong>.</p>
+ <p class="text-muted text-justify">Thoses trackers can be used in Google Analytics to track clicks and visitors, or in Odoo reports to track opportunities and related revenues.</p>
+ </div>
+ </div>
+
+ <h2 class="page-header">Your tracked links
+ <small class="pull-right hidden-xs mt16" id="filters">
+ <ul class="nav nav-tabs nav-tabs-inline graph-tabs" role="tablist">
+ <li class="active"><a href="#" id="filter-newest-links" role="tab" data-toggle="tab">Newest</a></li>
+ <li><a href="#" id="filter-most-clicked-links" role="tab" data-toggle="tab">Most Clicked</a></li>
+ <li><a href="#" id="filter-recently-used-links" role="tab" data-toggle="tab">Recently Used</a></li>
+ </ul>
+ </small>
+ </h2>
+
+ <div id="o_website_links_recent_links">
+ <div class="o_website_links_recent_links_notification"></div>
+ </div>
+ </div>
+ </div>
+ </template>
+
+ <template id="page_shorten_url" name="Link Tracker">
+ <t t-call="website.layout">
+ <t t-call="website_links.create_shorten_url"/>
+ </t>
+ </template>
+ </data>
+</openerp>
+