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/rating/views | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/rating/views')
| -rw-r--r-- | addons/rating/views/assets.xml | 10 | ||||
| -rw-r--r-- | addons/rating/views/mail_message_views.xml | 15 | ||||
| -rw-r--r-- | addons/rating/views/rating_rating_views.xml | 174 | ||||
| -rw-r--r-- | addons/rating/views/rating_template.xml | 48 |
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> |
