diff options
| author | Fabien Pinckaers <fp@openerp.com> | 2014-12-02 20:53:39 +0100 |
|---|---|---|
| committer | Fabien Pinckaers <fp@openerp.com> | 2014-12-02 20:53:39 +0100 |
| commit | 072ea499acd5376f157e9de2f6a41aec51d06e5e (patch) | |
| tree | 907546fa81cfb7a3b1cdcdbd959ffd55fcce9182 | |
| parent | ac6412ce20141d8a60f7fe5562c94ccd8005823e (diff) | |
| parent | 42dc857f3f77af735363fb71b64ef66ce4aa3519 (diff) | |
Merge branch 'odoo-dev-master-forum-statistic-report-jsh'
| -rw-r--r-- | addons/website_forum/models/forum.py | 16 | ||||
| -rw-r--r-- | addons/website_forum/views/forum.xml | 18 |
2 files changed, 23 insertions, 11 deletions
diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py index 2c1c2ab9919..6c517ce3a44 100644 --- a/addons/website_forum/models/forum.py +++ b/addons/website_forum/models/forum.py @@ -210,15 +210,13 @@ class Post(models.Model): uid_has_answered = fields.Boolean('Has Answered', compute='_get_uid_has_answered') has_validated_answer = fields.Boolean('Is answered', compute='_get_has_validated_answer', store=True) - @api.multi + @api.one @api.depends('create_uid', 'parent_id') def _is_self_reply(self): - self_replies = self.search([('parent_id.create_uid', '=', self._uid)]) - for post in self: - post.is_self_reply = post in self_replies + self.self_reply = self.parent_id.create_uid.id == self._uid @api.one - @api.depends('child_ids', 'website_message_ids') + @api.depends('child_ids.create_uid', 'website_message_ids') def _get_child_count(self): def process(node): total = len(node.website_message_ids) + len(node.child_ids) @@ -231,12 +229,10 @@ class Post(models.Model): def _get_uid_has_answered(self): self.uid_has_answered = any(answer.create_uid.id == self._uid for answer in self.child_ids) - @api.multi - @api.depends('child_ids', 'is_correct') + @api.one + @api.depends('child_ids.is_correct') def _get_has_validated_answer(self): - correct_posts = [ans.parent_id for ans in self.search([('parent_id', 'in', self._ids), ('is_correct', '=', True)])] - for post in self: - post.is_correct = post in correct_posts + self.has_validated_answer = any(answer.is_correct for answer in self.child_ids) # closing closed_reason_id = fields.Many2one('forum.post.reason', string='Reason') diff --git a/addons/website_forum/views/forum.xml b/addons/website_forum/views/forum.xml index 2c6f037b27d..421d76e37e2 100644 --- a/addons/website_forum/views/forum.xml +++ b/addons/website_forum/views/forum.xml @@ -167,6 +167,11 @@ <field name="name" string="Content" filter_domain="['|', ('name', 'ilike', self), ('content', 'ilike', self)]"/> <field name="create_uid"/> <field name="forum_id"/> + <field name="tag_ids" string="Tag"/> + <filter string="Question" domain="[('parent_id', '=', False)]" /> + <filter string="Answers" domain="[('parent_id', '!=', False)]" /> + <filter string="Accepted Answer" domain="[('is_correct' , '!=', False), ('parent_id', '!=', False)]" /> + <filter string="Answered Questions" domain="[('child_count', '!=', 0), ('parent_id', '=', False)]" /> <group expand="0" string="Group By"> <filter string="Forum" domain="[]" context="{'group_by': 'forum_id'}"/> <filter string="Author" domain="[]" context="{'group_by': 'create_uid'}"/> @@ -175,11 +180,22 @@ </field> </record> + <record model="ir.ui.view" id="view_forum_post_graph"> + <field name="name">forum.post.graph</field> + <field name="model">forum.post</field> + <field name="arch" type="xml"> + <graph string="Graph of Posts" type="pivot"> + <field name="write_date" interval="month" type="col" /> + <field name="forum_id" type="row" /> + </graph> + </field> + </record> + <record id="action_forum_post" model="ir.actions.act_window"> <field name="name">Forum Posts</field> <field name="res_model">forum.post</field> <field name="view_type">form</field> - <field name="view_mode">tree,form</field> + <field name="view_mode">tree,form,graph</field> <field name="view_id" ref="view_forum_post_list"/> <field name="search_view_id" ref="view_forum_post_search"/> </record> |
