diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/website/views/website_visitor_views.xml | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/website/views/website_visitor_views.xml')
| -rw-r--r-- | addons/website/views/website_visitor_views.xml | 349 |
1 files changed, 349 insertions, 0 deletions
diff --git a/addons/website/views/website_visitor_views.xml b/addons/website/views/website_visitor_views.xml new file mode 100644 index 00000000..235f32ca --- /dev/null +++ b/addons/website/views/website_visitor_views.xml @@ -0,0 +1,349 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo><data> + <!--page history--> + <record id="website_visitor_page_view_tree" model="ir.ui.view"> + <field name="name">website.track.view.tree</field> + <field name="model">website.track</field> + <field name="arch" type="xml"> + <tree string="Visitor Page Views History" create="0"> + <field name="visitor_id"/> + <field name="page_id"/> + <field name="url"/> + <field name="visit_datetime"/> + </tree> + </field> + </record> + + <record id="website_visitor_page_view_graph" model="ir.ui.view"> + <field name="name">website.track.view.graph</field> + <field name="model">website.track</field> + <field name="arch" type="xml"> + <graph string="Visitor Page Views" sample="1"> + <field name="url"/> + </graph> + </field> + </record> + + <record id="website_visitor_page_view_search" model="ir.ui.view"> + <field name="name">website.track.view.search</field> + <field name="model">website.track</field> + <field name="arch" type="xml"> + <search string="Search Visitor"> + <field name="visitor_id"/> + <field name="page_id"/> + <field name="url"/> + <field name="visit_datetime"/> + <filter string="Pages" name="type_page" domain="[('page_id', '!=', False)]"/> + <filter string="Urls & Pages" name="type_url" domain="[('url', '!=', False)]"/> + <group string="Group By"> + <filter string="Visitor" name="group_by_visitor" domain="[]" context="{'group_by': 'visitor_id'}"/> + <filter string="Page" name="group_by_page" domain="[]" context="{'group_by': 'page_id'}"/> + <filter string="Url" name="group_by_url" domain="[]" context="{'group_by': 'url'}"/> + <filter string="Date" name="group_by_date" domain="[]" context="{'group_by': 'visit_datetime'}"/> + </group> + </search> + </field> + </record> + + <record id="website_visitor_page_action" model="ir.actions.act_window"> + <field name="name">Page Views History</field> + <field name="res_model">website.track</field> + <field name="view_mode">tree</field> + <field name="view_ids" eval="[(5, 0, 0), + (0, 0, {'view_mode': 'tree', 'view_id': ref('website_visitor_page_view_tree')}), + (0, 0, {'view_mode': 'graph', 'view_id': ref('website_visitor_page_view_graph')}), + ]"/> + <field name="domain">[('visitor_id', '=', active_id), ('url', '!=', False)]</field> + <field name="help" type="html"> + <p class="o_view_nocontent_empty_folder"> + No page views yet for this visitor + </p> + </field> + </record> + + <!--Website visitor actions--> + <record id="website.visitor_partner_action" model="ir.actions.act_window"> + <field name="name">Partners</field> + <field name="res_model">res.partner</field> + <field name="view_mode">tree,form</field> + <field name="domain">[('visitor_ids', 'in', [active_id])]</field> + <field name="help" type="html"> + <p class="o_view_nocontent_empty_folder"> + No partner linked for this visitor + </p> + </field> + </record> + + <!-- website visitor views --> + <record id="website_visitor_view_kanban" model="ir.ui.view"> + <field name="name">website.visitor.view.kanban</field> + <field name="model">website.visitor</field> + <field name="arch" type="xml"> + <kanban class="o_wvisitor_kanban" sample="1"> + <field name="id"/> + <field name="country_id"/> + <field name="country_flag"/> + <field name="email"/> + <field name="is_connected"/> + <field name="display_name"/> + <field name="last_visited_page_id"/> + <field name="page_ids"/> + <field name="partner_id"/> + <field name="partner_image"/> + <templates> + <t t-name="kanban-box"> + <div class="oe_kanban_global_click o_wvisitor_kanban_card"> + <!-- displayed in ungrouped mode --> + <div class="o_kanban_detail_ungrouped row mx-0"> + <div class="o_wvisitor_kanban_image"> + <img t-if="record.partner_image.raw_value" + t-att-src="kanban_image('res.partner', 'image_128', record.partner_id.raw_value)" + width="54px" height="54px" alt="Visitor"/> + <img t-else="" + t-attf-src="/base/static/img/avatar_grey.png" + width="54px" height="54px" alt="Visitor"/> + </div> + <div class="col o_wvisitor_name"> + <div> + <b><field name="display_name"/></b> + <div class="float-right"> + <span class="fa fa-circle text-success" t-if="record.is_connected.raw_value" aria-label="Online" title="Online"/> + <span class="fa fa-circle text-danger" t-else="" aria-label="Offline" title="Offline"/> + </div> + <!-- Double check is necessary for sample view (or error image are shown) --> + <div t-if="record.country_id.raw_value and record.country_flag.raw_value"> + <img t-att-src="record.country_flag.raw_value" + class="o_country_flag" alt="Country"/> + </div> + </div> + </div> + <div class="col"> + <b><field name="time_since_last_action"/></b> + <div>Last Action</div> + </div> + <div class="col"> + <b><field name="visit_count"/></b> + <div>Visits</div> + </div> + <div class="col"> + <b><field name="last_visited_page_id"/></b> + <div>Last Page</div> + </div> + <div id="wvisitor_visited_page" class="col"> + <b><field name="page_count"/></b> + <div>Visited Pages</div> + </div> + <div class="col-3 w_visitor_kanban_actions_ungrouped"> + <button name="action_send_mail" type="object" + class="btn btn-secondary border" attrs="{'invisible': [('email', '=', False)]}"> + Email + </button> + </div> + </div> + <!-- displayed in grouped mode --> + <div class="oe_kanban_details"> + <div class="float-right"> + <span class="fa fa-circle text-success" t-if="record.is_connected.raw_value" aria-label="Online" title="Online"/> + <span class="fa fa-circle text-danger" t-else="" aria-label="Offline" title="Offline"/> + </div> + <strong> + <img t-if="record.country_id.raw_value" + t-att-src="record.country_flag.raw_value" + class="o_country_flag" alt="Country"/> + <field name="display_name"/> + </strong> + <div class="mb-2">Active <field name="time_since_last_action"/></div> + <div>Last Page<span class="float-right font-weight-bold"><field name="last_visited_page_id"/></span></div> + <div>Visits<span class="float-right font-weight-bold"><field name="visit_count"/></span></div> + <div id="o_page_count">Visited Pages<span class="float-right font-weight-bold"><field name="page_count"/></span></div> + <div class="w_visitor_kanban_actions"> + <button name="action_send_mail" type="object" + class="btn btn-secondary" attrs="{'invisible': [('email', '=', False)]}"> + Email + </button> + </div> + </div> + </div> + </t> + </templates> + </kanban> + </field> + </record> + + <record id="website_visitor_view_form" model="ir.ui.view"> + <field name="name">website.visitor.view.form</field> + <field name="model">website.visitor</field> + <field name="arch" type="xml"> + <form string="Website Visitor"> + <header> + <button name="action_send_mail" type="object" class="btn btn-primary" + attrs="{'invisible': [('email', '=', False)]}" string="Send Email"/> + </header> + <sheet> + <div class="oe_button_box" name="button_box"> + <button class="oe_stat_button o_stat_button_info" attrs="{'invisible': [('is_connected', '=', False)]}"> + <i class="fa fa-fw o_button_icon fa-circle text-success"/> + <span>Connected</span> + </button> + <button class="oe_stat_button o_stat_button_info" attrs="{'invisible': [('is_connected', '=', True)]}"> + <i class="fa fa-fw o_button_icon fa-circle text-danger"/> + <span>Offline</span> + </button> + <button id="w_visitor_visit_counter" class="oe_stat_button o_stat_button_info" icon="fa-globe"> + <field name="visit_count" widget="statinfo" string="Visits"/> + </button> + <button name="%(website.website_visitor_page_action)d" type="action" + class="oe_stat_button" + icon="fa-tags"> + <field name="visitor_page_count" widget="statinfo" string="Page views"/> + </button> + </div> + <div class="float-right" attrs="{'invisible': [('country_id', '=', False)]}"> + <field name="country_flag" widget="image_url" options='{"size": [32, 32]}'/> + </div> + <div class="oe_title"> + <h1><field name="display_name"/></h1> + </div> + <group id="general_info"> + <group string="Visitor Information"> + <field name="active" invisible="1"/> + <field name="is_connected" invisible="1"/> + <field name="partner_id"/> + <field name="email"/> + <field name="mobile" class="o_force_ltr"/> + <field name="country_id" attrs="{'invisible': [('country_id', '=', False)]}"/> + <field name="lang_id"/> + </group> + <group id="visits" string="Visits"> + <field name="create_date"/> + <field name="last_connection_datetime"/> + <field name="page_ids" widget="many2many_tags"/> + </group> + </group> + </sheet> + </form> + </field> + </record> + + <record id="website_visitor_view_tree" model="ir.ui.view"> + <field name="name">website.visitor.view.tree</field> + <field name="model">website.visitor</field> + <field name="arch" type="xml"> + <tree string="Web Visitors" decoration-success="is_connected" decoration-danger="not is_connected" sample="1"> + <field name="country_flag" widget="image_url" options='{"size": [20, 20]}' nolabel="1"/> + <field name="display_name"/> + <field name="create_date"/> + <field name="last_connection_datetime"/> + <field name="lang_id"/> + <field name="visit_count"/> + <field name="page_ids" widget="many2many_tags"/> + <field name="is_connected" invisible="1"/> + <field name="email" invisible="1"/> + <button string="Send Email" name="action_send_mail" type="object" + icon="fa-comment" attrs="{'invisible': [('email', '=', False)]}"/> + </tree> + </field> + </record> + + <record id="website_visitor_view_search" model="ir.ui.view"> + <field name="name">website.visitor.view.search</field> + <field name="model">website.visitor</field> + <field name="arch" type="xml"> + <search string="Search Visitor"> + <field name="name"/> + <field name="lang_id"/> + <field name="country_id"/> + <field name="visit_count"/> + <field name="page_ids"/> + <filter string="Visitors" name="type_visitor" domain="[('partner_id', '=', False)]"/> + <filter string="Customers" name="type_customer" domain="[('partner_id', '!=', False)]"/> + <separator/> + <filter string="Archived" name="is_archived" domain="[('active', '=', False)]"/> + <separator/> + <filter string="Is Connected" name="is_connected" domain="[('last_connection_datetime', '>', datetime.datetime.now() - datetime.timedelta(minutes=5))]"/> + <filter name="filter_create_date" date="create_date"/> + <group string="Group By"> + <filter string="Country" name="group_by_country" context="{'group_by': 'country_id'}"/> + <filter string="Language" name="group_by_lang" context="{'group_by': 'lang_id'}"/> + </group> + </search> + </field> + </record> + + <record id="website_visitor_view_graph" model="ir.ui.view"> + <field name="name">website.visitor.view.graph</field> + <field name="model">website.visitor</field> + <field name="arch" type="xml"> + <graph string="Visitors" sample="1"> + <field name="create_date" type="row"/> + <field name="visit_count"/> + </graph> + </field> + </record> + + <record id="website_visitors_action" model="ir.actions.act_window"> + <field name="name">Visitors</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">website.visitor</field> + <field name="view_mode">kanban,tree,form,graph</field> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Wait for visitors to come to your website to see their history. + </p> + </field> + </record> + + <record id="website_visitor_track_view_tree" model="ir.ui.view"> + <field name="name">website.track.view.tree</field> + <field name="model">website.track</field> + <field name="arch" type="xml"> + <tree string="Visitor Views History" create="0" edit="0" sample="1"> + <field name="visitor_id"/> + <field name="page_id"/> + <field name="url"/> + <field name="visit_datetime"/> + </tree> + </field> + </record> + + <record id="website_visitor_track_view_graph" model="ir.ui.view"> + <field name="name">website.track.view.graph</field> + <field name="model">website.track</field> + <field name="arch" type="xml"> + <graph string="Visitor Views" sample="1"> + <field name="url"/> + </graph> + </field> + </record> + + <record id="website_visitor_view_action" model="ir.actions.act_window"> + <field name="name">Views</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">website.track</field> + <field name="view_mode">tree</field> + <field name="context">{'search_default_type_url': 1, 'create': False, 'edit': False, 'copy': False}</field> + <field name="view_ids" eval="[(5, 0, 0), + (0, 0, {'view_mode': 'tree', 'view_id': ref('website_visitor_track_view_tree')}), + (0, 0, {'view_mode': 'graph', 'view_id': ref('website_visitor_track_view_graph')}), + ]"/> + <field name="help" type="html"> + <p class="o_view_nocontent_smiling_face"> + Wait for visitors to come to your website to see the pages they viewed. + </p> + </field> + </record> + + <menuitem id="website_visitor_menu" + name="Visitors" + sequence="80" + parent="website.menu_website_configuration"/> + + <menuitem id="menu_visitor_sub_menu" name="Visitors" + sequence="1" + parent="website_visitor_menu" + action="website.website_visitors_action"/> + <menuitem id="menu_visitor_view_menu" name="Views" + sequence="2" + parent="website_visitor_menu" + action="website.website_visitor_view_action"/> +</data></odoo> |
