summaryrefslogtreecommitdiff
path: root/addons/rating/views
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/rating/views
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/rating/views')
-rw-r--r--addons/rating/views/assets.xml10
-rw-r--r--addons/rating/views/mail_message_views.xml15
-rw-r--r--addons/rating/views/rating_rating_views.xml174
-rw-r--r--addons/rating/views/rating_template.xml48
4 files changed, 247 insertions, 0 deletions
diff --git a/addons/rating/views/assets.xml b/addons/rating/views/assets.xml
new file mode 100644
index 00000000..baacbe9a
--- /dev/null
+++ b/addons/rating/views/assets.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <template id="assets_frontend" inherit_id="web.assets_frontend" name="Rating: Frontend Assets">
+ <xpath expr="link[last()]" position="after">
+ <link rel="stylesheet" type="text/scss" href="/rating/static/src/scss/rating.scss"/>
+ </xpath>
+ </template>
+
+</odoo>
diff --git a/addons/rating/views/mail_message_views.xml b/addons/rating/views/mail_message_views.xml
new file mode 100644
index 00000000..887c7684
--- /dev/null
+++ b/addons/rating/views/mail_message_views.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<odoo><data>
+ <record id="mail_message_view_form" model="ir.ui.view">
+ <field name="name">mail.message.view.form.inherit.rating</field>
+ <field name="model">mail.message</field>
+ <field name="inherit_id" ref="mail.mail_message_view_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//page[@name='page_tracking']" position="after">
+ <page string="Ratings" name="page_rating">
+ <field name="rating_ids"/>
+ </page>
+ </xpath>
+ </field>
+ </record>
+</data></odoo>
diff --git a/addons/rating/views/rating_rating_views.xml b/addons/rating/views/rating_rating_views.xml
new file mode 100644
index 00000000..94fd479d
--- /dev/null
+++ b/addons/rating/views/rating_rating_views.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <record id="rating_rating_view_tree" model="ir.ui.view">
+ <field name="name">rating.rating.tree</field>
+ <field name="model">rating.rating</field>
+ <field name="arch" type="xml">
+ <tree string="Rating" create="false" edit="false" sample="1">
+ <field name="res_name"/>
+ <field name="parent_res_name"/>
+ <field name="rated_partner_id"/>
+ <field name="partner_id"/>
+ <field name="rating_text" decoration-danger="rating_text == 'highly_dissatisfied'" decoration-warning="rating_text == 'not_satisfied'" decoration-success="rating_text == 'satisfied'"/>
+ <field name="feedback"/>
+ <field name="create_date"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="rating_rating_view_form" model="ir.ui.view">
+ <field name="name">rating.rating.form</field>
+ <field name="model">rating.rating</field>
+ <field name="arch" type="xml">
+ <form string="Rating" create="false">
+ <sheet>
+ <group>
+ <group>
+ <field name="resource_ref" string="Document"/>
+ <field name="res_name" string="Document" invisible="1"/>
+ <field name="parent_ref" string="Parent Holder"/>
+ <field name="parent_res_name" string="Parent Holder" invisible="1"/>
+ <field name="rated_partner_id"/>
+ <field name="rating" invisible="1"/>
+ <field name="is_internal"/>
+ </group>
+ <group>
+ <field name="partner_id"/>
+ <div colspan="2" class="text-center" name="rating_image_container">
+ <field name="rating_image" widget='image'/>
+ <div class="mt4">
+ <strong><field name="rating_text"/></strong>
+ </div>
+ </div>
+ <field name="create_date"/>
+ <field name="feedback" attrs="{'invisible': [('feedback','=',False)]}"/>
+ </group>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record id="rating_rating_view_kanban" model="ir.ui.view">
+ <field name="name">rating.rating.kanban</field>
+ <field name="model">rating.rating</field>
+ <field name="arch" type="xml">
+ <kanban create="false" sample="1">
+ <field name="rating"/>
+ <field name="res_name"/>
+ <field name="feedback"/>
+ <field name="partner_id"/>
+ <templates>
+ <t t-name="kanban-box">
+ <div class="oe_kanban_global_click">
+ <div class="o_kanban_image">
+ <field name="rating_image" widget="image"/>
+ </div>
+ <div class="oe_kanban_details">
+ <strong>
+ <field name="rated_partner_id" />
+ </strong>
+ <ul>
+ <li t-if="record.partner_id.value">
+ <span class="o_text_overflow">
+ by
+ <span t-att-title="record.partner_id.value">
+ <field name="partner_id" />
+ </span>
+ </span>
+ </li>
+ <li>
+ <span class="o_text_overflow">
+ for
+ <a type="object" name="action_open_rated_object" t-att-title="record.res_name.raw_value">
+ <field name="res_name" />
+ </a>
+ </span>
+ </li>
+ <li>
+ on <field name="create_date" />
+ </li>
+ </ul>
+ <i t-if="record.feedback.raw_value" class="fa fa-comment float-right mt4" t-att-title="record.feedback.raw_value" t-att-aria-label="record.feedback.raw_value" role="img"/>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </record>
+
+ <record id="rating_rating_view_pivot" model="ir.ui.view">
+ <field name="name">rating.rating.pivot</field>
+ <field name="model">rating.rating</field>
+ <field name="arch" type="xml">
+ <pivot string="Rating Average" display_quantity="true" sample="1">
+ <field name="rated_partner_id" type="row"/>
+ <field name="create_date" type="col"/>
+ <field name="rating" type="measure"/>
+ </pivot>
+ </field>
+ </record>
+
+ <record id="rating_rating_view_graph" model="ir.ui.view">
+ <field name="name">rating.rating.graph</field>
+ <field name="model">rating.rating</field>
+ <field name="arch" type="xml">
+ <graph string="Rating Average" type="bar" sample="1">
+ <field name="create_date" type="row"/>
+ <field name="rating" type="measure"/>
+ </graph>
+ </field>
+ </record>
+
+ <record id="rating_rating_view_search" model="ir.ui.view">
+ <field name="name">rating.rating.search</field>
+ <field name="model">rating.rating</field>
+ <field name="arch" type="xml">
+ <search string="Ratings">
+ <field name="rated_partner_id"/>
+ <field name="rating"/>
+ <field name="partner_id"/>
+ <field name="res_name" filter_domain="[('res_name','ilike',self)]"/>
+ <field name="res_id"/>
+ <field name="parent_res_name" filter_domain="[('parent_res_name','ilike',self)]"/>
+ <filter string="Satisfied" name="rating_happy" domain="[('rating_text', '=', 'satisfied')]"/>
+ <filter string="Not satisfied" name="rating_okay" domain="[('rating_text', '=', 'not_satisfied')]"/>
+ <filter string="Highly dissatisfied" name="rating_unhappy" domain="[('rating_text', '=', 'highly_dissatisfied')]"/>
+ <separator/>
+ <filter string="My Ratings" name="my_ratings" domain="[('rated_partner_id.user_ids', 'in', [uid])]"/>
+ <separator/>
+ <filter name="filter_create_date" date="create_date"/>
+ <group expand="0" string="Group By">
+ <filter string="Rated Operator" name="responsible" context="{'group_by':'rated_partner_id'}"/>
+ <filter string="Customer" name="customer" context="{'group_by':'partner_id'}"/>
+ <filter string="Rating" name="rating_text" context="{'group_by':'rating_text'}"/>
+ <filter string="Resource" name="resource" context="{'group_by':'res_name'}"/>
+ <filter string="Date" name="month" context="{'group_by':'create_date:month'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
+ <record id="rating_rating_view" model="ir.actions.act_window">
+ <field name="name">Ratings</field>
+ <field name="res_model">rating.rating</field>
+ <field name="view_mode">kanban,tree,graph,pivot,form</field>
+ <field name="help" type="html">
+ <p class="o_view_nocontent_empty_folder">
+ No rating yet
+ </p><p>
+ There is no rating for this object at the moment.
+ </p>
+ </field>
+ </record>
+
+ <!-- Add menu entry in Technical/Discuss -->
+ <menuitem name="Ratings"
+ id="rating_rating_menu_technical"
+ parent="mail.mail_menu_technical"
+ action="rating_rating_view"
+ sequence="30"/>
+
+</odoo>
diff --git a/addons/rating/views/rating_template.xml b/addons/rating/views/rating_template.xml
new file mode 100644
index 00000000..f182d248
--- /dev/null
+++ b/addons/rating/views/rating_template.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+ <!-- External page : thanks message -->
+ <template id="rating_external_page_view" name="Rating Page Done">
+ <t t-call="web.frontend_layout">
+ <div class="container pt-5">
+ <div class="text-center mt-5 pt-5">
+ <h3 class="d-inline">Thank you, we appreciate your feedback!</h3>
+ </div>
+ <div class="text-center">
+ <a role="button" t-att-href="web_base_url" class="btn btn-primary my-5">Go back to the Homepage</a>
+ </div>
+ </div>
+ </t>
+ </template>
+
+ <!-- External page: rate and submit feedback -->
+ <template id="rating_external_page_submit" name="Rating Page Submit">
+ <t t-call="web.frontend_layout">
+ <div class="container card mb-5 mt-4 o_rating_page_submit">
+ <div class="card-body">
+ <div class="row text-center justify-content-center">
+ <h1 class="col-12 mt-5">Thank you for rating our services!</h1>
+ <form t-attf-action="/rate/#{token}/submit_feedback" method="post">
+ <div class="btn-group btn-group-toggle row" data-toggle="buttons">
+ <t t-foreach="rate_names" t-as="rate_name">
+ <label t-attf-class="col-xs-12 btn o_rating_label shadow-none {{rate == rate_name and 'active' or ''}}">
+ <input type="radio" name="rate" t-attf-id="rate_{{rate_name}}" t-att-value="rate_name" t-att-checked="rate == rate_name"/>
+ <a class="o_rating" href="#">
+ <img t-attf-src='/rating/static/src/img/rating_#{rate_name}.png' t-att-alt="rate_name_value" t-att-title="rate_name_value"/>
+ </a>
+ </label>
+ </t>
+ </div>
+ <div class="clearfix"></div>
+ <p class="mt-5">
+ Feel free to write a feedback on your experience:
+ </p>
+ <input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
+ <textarea class="form-control" name="feedback" rows="8" t-att-value="rating.feedback"></textarea>
+ <button type="submit" class="btn btn-primary" style="margin-top:8px;">Send Feedback</button>
+ </form>
+ </div>
+ </div>
+ </div>
+ </t>
+ </template>
+</odoo>