From c40318a46a1fa8ebc5f8e66fc4d5e3cd094c40b4 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Mon, 14 Apr 2014 16:54:15 +0200 Subject: [PATCH] [ADD] website_forum: self_reply field and some badges bzr revid: mat@openerp.com-20140414145415-8g9jtp95d173183i --- addons/gamification/models/goal.py | 2 +- addons/website_forum/data/badges_answer.xml | 56 +++++++++++++-------- addons/website_forum/models/forum.py | 10 ++++ 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/addons/gamification/models/goal.py b/addons/gamification/models/goal.py index a24df6e5c2d..268f27e3fe7 100644 --- a/addons/gamification/models/goal.py +++ b/addons/gamification/models/goal.py @@ -304,7 +304,7 @@ class gamification_goal(osv.Model): if end_date: subquery_domain.append((field_date_name, '>=', end_date)) - user_values = obj.read_group(cr, uid, subquery_domain, fields=[field_name], groupby=[field_name], context=context) + user_values = obj.read_group(cr, uid, subquery_domain, fields=[field_name], groupby=[field_name], context=context) for goal in [g for g in goals if g.id in query_goals.keys()]: for user_value in user_values: diff --git a/addons/website_forum/data/badges_answer.xml b/addons/website_forum/data/badges_answer.xml index b88ac0945d1..fa367e70ce8 100644 --- a/addons/website_forum/data/badges_answer.xml +++ b/addons/website_forum/data/badges_answer.xml @@ -61,6 +61,7 @@ personal never + True inprogress forum @@ -94,6 +95,7 @@ personal never + True inprogress forum @@ -127,6 +129,7 @@ personal never + True inprogress forum @@ -139,7 +142,7 @@ - + - + - + \ No newline at end of file diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py index 74f4d9e5393..cd22992f6b3 100644 --- a/addons/website_forum/models/forum.py +++ b/addons/website_forum/models/forum.py @@ -97,6 +97,12 @@ class Post(osv.Model): res[post.id] = any(answer.create_uid.id == uid for answer in post.child_ids) return res + def _is_self_reply(self, cr, uid, ids, field_name, arg, context=None): + res = dict.fromkeys(ids, False) + for post in self.browse(cr, uid, ids, context=context): + res[post.id] = post.parent_id and post.parent_id.create_uid == post.create_uid or False + return res + _columns = { 'name': fields.char('Title', size=128), 'forum_id': fields.many2one('forum.forum', 'Forum', required=True), @@ -137,6 +143,10 @@ class Post(osv.Model): }), # hierarchy 'parent_id': fields.many2one('forum.post', 'Question', ondelete='cascade'), + 'self_reply': fields.function(_is_self_reply, 'Reply to own question', type='boolean', + store={ + 'forum.post': (lambda self, cr, uid, ids, c={}: ids, ['parent_id', 'create_uid'], 10), + }), 'child_ids': fields.one2many('forum.post', 'parent_id', 'Answers'), 'child_count': fields.function( _get_child_count, string="Answers", type='integer',