[IMP] rating,rating_project,livechat: primary views

Rating is used on different objects that
don't have the same business needs.
We want rating module to provide the common
needs (filter, views, basic actions, ...) and
other module will extends these basic tools
to complete their specific business needs.
This commit is contained in:
dbh
2017-07-10 08:46:27 +02:00
committed by Jérome Maes
parent d55d168cd4
commit 145853c9c7
6 changed files with 76 additions and 20 deletions
+1
View File
@@ -21,6 +21,7 @@ Help your customers with this chat, and analyse their feedback.
'data': [
"security/im_livechat_channel_security.xml",
"security/ir.model.access.csv",
"views/rating_views.xml",
"views/mail_channel_views.xml",
"views/im_livechat_channel_views.xml",
"views/im_livechat_channel_templates.xml",
+30
View File
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="rating_rating_view_search_livechat" model="ir.ui.view">
<field name="name">rating.rating.search.livechat</field>
<field name="model">rating.rating</field>
<field name="inherit_id" ref="rating.rating_rating_view_search"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//filter[@name='resource']" position="after">
<field name="parent_res_name"/>
<filter string="Livechat Channel" name="groupby_livechat_channel" context="{'group_by': 'parent_res_name'}"/>
</xpath>
</field>
</record>
<record id="rating_rating_action_view_livechat_rating" model="ir.actions.act_window">
<field name="name">Ratings for livechat channel</field>
<field name="res_model">rating.rating</field>
<field name="view_mode">kanban,tree,graph,pivot,form</field>
<field name="domain">[('consumed','=',True)]</field>
<field name="search_view_id" ref="rating_rating_view_search_livechat"/>
<field name="help" type="html">
<p>
There is no rating for this object at the moment.
</p>
</field>
</record>
</odoo>
+1 -1
View File
@@ -111,7 +111,7 @@ class Project(models.Model):
@api.multi
def action_view_task_rating(self):
""" return the action to see all the rating about the tasks of the project """
action = self.env['ir.actions.act_window'].for_xml_id('rating', 'action_view_rating')
action = self.env['ir.actions.act_window'].for_xml_id('rating_project', 'rating_rating_action_view_project_rating')
action_domain = safe_eval(action['domain']) if action['domain'] else []
domain = ['&', ('res_id', 'in', self.tasks.ids), ('res_model', '=', 'project.task')]
if action_domain:
+41 -17
View File
@@ -2,27 +2,46 @@
<odoo>
<data>
<record id="rating_rating_action_task" model="ir.actions.act_window">
<field name="name">Customer Ratings</field>
<field name="res_model">rating.rating</field>
<field name="view_mode">kanban,tree,pivot,graph,form</field>
<field name="domain">[('res_model', '=', 'project.task'), ('res_id', '=', active_id), ('consumed', '=', True)]</field>
<field name="help" type="html">
<p>
Customer ratings on tasks. If you have no rating, change your project Settings to activate it.
</p>
</field>
</record>
<record id="rating_rating_view_search" model="ir.ui.view">
<field name="name">rating.rating.search.inherit</field>
<record id="rating_rating_view_search_project" model="ir.ui.view">
<field name="name">rating.rating.search.project</field>
<field name="model">rating.rating</field>
<field name="inherit_id" ref="rating.rating_rating_view_search" />
<field name="inherit_id" ref="rating.rating_rating_view_search"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//filter[@name='rating_unhappy']" position="after">
<separator />
<filter string="Rating for tasks" name="rating_tasks" domain="[('res_model', '=', 'project.task')]" />
</xpath>
<xpath expr="//filter[@name='resource']" position="after">
<field name="parent_res_name"/>
<filter string="Project" name="groupby_project" context="{'group_by': 'parent_res_name'}"/>
</xpath>
</field>
</record>
<record id="rating_rating_action_view_project_rating" model="ir.actions.act_window">
<field name="name">Rating</field>
<field name="res_model">rating.rating</field>
<field name="view_mode">kanban,tree,graph,pivot,form</field>
<field name="domain">[('consumed','=',True)]</field>
<field name="search_view_id" ref="rating_rating_view_search_project"/>
<field name="help" type="html">
<p>
There is no rating for this object at the moment.
</p>
</field>
</record>
<record id="rating_rating_action_task" model="ir.actions.act_window">
<field name="name">Customer Ratings from task</field>
<field name="res_model">rating.rating</field>
<field name="view_mode">kanban,tree,pivot,graph,form</field>
<field name="domain">[('res_model', '=', 'project.task'), ('res_id', '=', active_id), ('consumed', '=', True)]</field>
<field name="search_view_id" ref="rating_rating_view_search_project"/>
<field name="help" type="html">
<p>
Customer ratings on tasks. If you have no rating, change your project Settings to activate it.
</p>
</field>
</record>
@@ -149,18 +168,23 @@
</field>
</record>
<record id="rating_rating_action_project" model="ir.actions.act_window">
<record id="rating_rating_action_project_report" model="ir.actions.act_window">
<field name="name">Customer Ratings</field>
<field name="res_model">rating.rating</field>
<field name="view_mode">kanban,tree,pivot,graph,form</field>
<field name="domain">[('parent_res_model','=','project.project'), ('consumed', '=', True)]</field>
<field name="search_view_id" ref="rating_rating_view_search_project"/>
<field name="help" type="html">
<p>
Customer ratings on tasks/issues. If you have no rating, change your project Settings to activate it.
</p>
</field>
</record>
<menuitem id="rating_rating_menu_project" action="rating_rating_action_project" parent="project.menu_project_report" sequence="40"/>
<menuitem id="rating_rating_menu_project"
action="rating_rating_action_project_report"
parent="project.menu_project_report"
sequence="40"/>
</data>
</odoo>
@@ -82,7 +82,7 @@ class Project(models.Model):
@api.multi
def action_view_issue_rating(self):
""" return the action to see all the rating about the issues of the project """
action = self.env['ir.actions.act_window'].for_xml_id('rating', 'action_view_rating')
action = self.env['ir.actions.act_window'].for_xml_id('rating_project', 'rating_rating_action_view_project_rating')
issues = self.env['project.issue'].search([('project_id', 'in', self.ids)])
action_domain = safe_eval(action['domain']) if action['domain'] else []
domain = ['&', ('res_id', 'in', issues.ids), ('res_model', '=', 'project.issue')]
@@ -7,6 +7,7 @@
<field name="res_model">rating.rating</field>
<field name="view_mode">kanban,tree,pivot,graph,form</field>
<field name="domain">[('res_model','=','project.issue'),('res_id','=',active_id), ('consumed', '=', True)]</field>
<field name="search_view_id" ref="rating_project.rating_rating_view_search_project"/>
<field name="help" type="html">
<p>
Customer ratings on issues. If you have no rating, change your project Settings to activate it.
@@ -17,7 +18,7 @@
<record id="rating_rating_view_search" model="ir.ui.view">
<field name="name">rating.rating.search.inherit</field>
<field name="model">rating.rating</field>
<field name="inherit_id" ref="rating.rating_rating_view_search" />
<field name="inherit_id" ref="rating_project.rating_rating_view_search_project" />
<field name="arch" type="xml">
<xpath expr="//filter[@name='rating_tasks']" position="after">
<filter string="Rating for issues" domain="[('res_model', '=', 'project.issue')]" />