diff options
| author | Julien De Coster <jdc@odoo.com> | 2014-08-12 14:54:26 +0530 |
|---|---|---|
| committer | Julien De Coster <jdc@odoo.com> | 2014-12-17 17:14:33 +0100 |
| commit | ddac26cdbb3535239f5dbb41f5b464366065f3ba (patch) | |
| tree | b54e4d34060f1c7f80a8c6404f7f4fd56d914e52 /addons/website_links/views | |
| parent | 7f97bf4ec07329e58c818632bf23017b390bb099 (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.xml | 169 | ||||
| -rw-r--r-- | addons/website_links/views/website_links_graphs.xml | 179 | ||||
| -rw-r--r-- | addons/website_links/views/website_links_template.xml | 123 |
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> + |
