[FIX] website_forum: mooooore baaaaaadges
bzr revid: mat@openerp.com-20140415101842-yf6vndw7h62q0b42
This commit is contained in:
parent
9f3a2f84e0
commit
14ff39f96e
|
@ -304,7 +304,11 @@ 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)
|
||||
if field_name == 'id':
|
||||
user_ids = obj.search(cr, uid, subquery_domain, context=context)
|
||||
user_values = [{'id': user_id, 'id_count': 1} for user_id in user_ids]
|
||||
else:
|
||||
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:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<data>
|
||||
|
||||
<!-- Biography: complet your profile -->
|
||||
<!-- <record id="badge_p_1" model="gamification.badge">
|
||||
<record id="badge_p_1" model="gamification.badge">
|
||||
<field name="name">Autobiographer</field>
|
||||
<field name="description">Completed own biography</field>
|
||||
<field name="level">bronze</field>
|
||||
|
@ -14,11 +14,15 @@
|
|||
<field name="computation_mode">count</field>
|
||||
<field name="display_mode">boolean</field>
|
||||
<field name="model_id" eval="ref('base.model_res_users')" />
|
||||
<field name="domain">[('id','=',user.id),
|
||||
('partner_id.country_id', '!=', False),
|
||||
('partner_id.city', '!=', False),
|
||||
('partner_id.email', '!=', False)]</field>
|
||||
<field name="condition">higher</field>
|
||||
<field name="domain">[
|
||||
('partner_id.country_id', '!=', False),
|
||||
('partner_id.city', '!=', False),
|
||||
('partner_id.email', '!=', False)
|
||||
]</field>
|
||||
<field name="batch_mode">True</field>
|
||||
<field name="batch_distinctive_field" eval="ref('base.field_res_users_id')" />
|
||||
<field name="batch_user_expression">user.id</field>
|
||||
</record>
|
||||
<record model="gamification.challenge" id="challenge_configure_profile">
|
||||
<field name="name">Complete own biography</field>
|
||||
|
@ -26,6 +30,7 @@
|
|||
<field name="visibility_mode">personal</field>
|
||||
<field name="report_message_frequency">never</field>
|
||||
<field name="reward_id" eval="ref('badge_p_1')"/>
|
||||
<field name="reward_realtime">True</field>
|
||||
<field name="autojoin_group_id" eval="ref('base.group_user')"/>
|
||||
<field name="state">inprogress</field>
|
||||
<field name="category">forum</field>
|
||||
|
@ -34,10 +39,10 @@
|
|||
<field name="definition_id" eval="ref('definition_configure_profile')"/>
|
||||
<field name="challenge_id" eval="ref('challenge_configure_profile')"/>
|
||||
<field name="target_goal">1</field>
|
||||
</record> -->
|
||||
</record>
|
||||
|
||||
<!-- Commentator: at least 10 comments posted on posts -->
|
||||
<!-- <record id="badge_p_2" model="gamification.badge">
|
||||
<record id="badge_p_2" model="gamification.badge">
|
||||
<field name="name">Commentator</field>
|
||||
<field name="description">Posted 10 comments</field>
|
||||
<field name="level">bronze</field>
|
||||
|
@ -48,8 +53,11 @@
|
|||
<field name="computation_mode">count</field>
|
||||
<field name="display_mode">boolean</field>
|
||||
<field name="model_id" eval="ref('mail.model_mail_message')"/>
|
||||
<field name="domain" eval="[('author_id', '=', user.partner_id.id), ('type', '=', 'comment'), ('subtype_id', '=', ref('mail.mt_comment')), ('model', '=', 'forum post')]"/>
|
||||
<field name="condition">higher</field>
|
||||
<field name="domain" eval="[('type', '=', 'comment'), ('subtype_id', '=', ref('mail.mt_comment')), ('model', '=', 'forum.post')]"/>
|
||||
<field name="batch_mode">True</field>
|
||||
<field name="batch_distinctive_field" eval="ref('mail.field_mail_message_author_id')" />
|
||||
<field name="batch_user_expression">user.partner_id.id</field>
|
||||
</record>
|
||||
<record model="gamification.challenge" id="challenge_commentator">
|
||||
<field name="name">Commentator</field>
|
||||
|
@ -57,6 +65,7 @@
|
|||
<field name="visibility_mode">personal</field>
|
||||
<field name="report_message_frequency">never</field>
|
||||
<field name="reward_id" eval="ref('badge_p_2')"/>
|
||||
<field name="reward_realtime">True</field>
|
||||
<field name="autojoin_group_id" eval="ref('base.group_user')"/>
|
||||
<field name="state">inprogress</field>
|
||||
<field name="category">forum</field>
|
||||
|
@ -65,33 +74,24 @@
|
|||
<field name="definition_id" eval="ref('definition_commentator')"/>
|
||||
<field name="challenge_id" eval="ref('challenge_commentator')"/>
|
||||
<field name="target_goal">10</field>
|
||||
</record> -->
|
||||
</record>
|
||||
|
||||
<!-- Pundit: 10 comments with at least score of 10 -->
|
||||
<!-- <record id="badge_25" model="gamification.badge">
|
||||
<record id="badge_25" model="gamification.badge">
|
||||
<field name="name">Pundit</field>
|
||||
<field name="description">Left 10 comments with score of 10 or more</field>
|
||||
<field name="description">Left comments with score of 10 or more</field>
|
||||
<field name="level">silver</field>
|
||||
</record>
|
||||
<record model="gamification.goal.definition" id="definition_pundit">
|
||||
<field name="name">Pundit</field>
|
||||
<field name="description">Post 10 comments with score of 10 or more</field>
|
||||
<field name="computation_mode">python</field>
|
||||
<field name="compute_code">def get_count(cr, uid, context=None):
|
||||
res = 1
|
||||
Message = self.pool['mail.message']
|
||||
Post = self.pool['website.forum.post']
|
||||
user_message = Message.read_group(cr, uid,[('create_uid','=',object.user_id.id), ('type', '=', 'comment'), ('model', '=', 'website.forum.post')], ['res_id'], groupby=['res_id'], context=context)
|
||||
for rec in user_message:
|
||||
if rec.get('res_id_count') >= 10:
|
||||
post = Post.browse(cr, uid, rec.get('res_id'), context=context)
|
||||
if post.vote_count >= 10:
|
||||
res += 1
|
||||
return res
|
||||
result = get_count(cr, uid, context=context)
|
||||
</field>
|
||||
<field name="display_mode">boolean</field>
|
||||
<field name="condition">higher</field>
|
||||
<field name="model_id" eval="ref('website_forum.model_forum_post')"/>
|
||||
<field name="domain" eval="[('parent', '!=', False), ('vote_count' '>=', 10)]"/>
|
||||
<field name="batch_mode">True</field>
|
||||
<field name="batch_distinctive_field" eval="ref('website_forum.field_forum_post_create_uid')" />
|
||||
<field name="batch_user_expression">user.id</field>
|
||||
</record>
|
||||
<record model="gamification.challenge" id="challenge_pundit">
|
||||
<field name="name">Pundit</field>
|
||||
|
@ -99,18 +99,19 @@ result = get_count(cr, uid, context=context)
|
|||
<field name="visibility_mode">personal</field>
|
||||
<field name="report_message_frequency">never</field>
|
||||
<field name="reward_id" eval="ref('badge_25')" />
|
||||
<field name="reward_realtime">True</field>
|
||||
<field name="autojoin_group_id" eval="ref('base.group_user')" />
|
||||
<field name="state">inprogress</field>
|
||||
<field name="category">forum</field>
|
||||
</record>
|
||||
<record model="gamification.challenge.line" id="line_pundit">
|
||||
<field name="definition_id" eval="ref('definition_pundit')" />
|
||||
<field name="target_goal">2</field>
|
||||
<field name="target_goal">10</field>
|
||||
<field name="challenge_id" eval="ref('challenge_pundit')" />
|
||||
</record> -->
|
||||
</record>
|
||||
|
||||
<!-- Chief Commentator: 100 comments -->
|
||||
<!-- <record id="badge_p_4" model="gamification.badge">
|
||||
<record id="badge_p_4" model="gamification.badge">
|
||||
<field name="name">Chief Commentator</field>
|
||||
<field name="description">Posted 100 comments</field>
|
||||
<field name="level">silver</field>
|
||||
|
@ -121,6 +122,7 @@ result = get_count(cr, uid, context=context)
|
|||
<field name="visibility_mode">personal</field>
|
||||
<field name="report_message_frequency">never</field>
|
||||
<field name="reward_id" eval="ref('badge_p_4')"/>
|
||||
<field name="reward_realtime">True</field>
|
||||
<field name="autojoin_group_id" eval="ref('base.group_user')"/>
|
||||
<field name="state">inprogress</field>
|
||||
<field name="category">forum</field>
|
||||
|
@ -129,7 +131,7 @@ result = get_count(cr, uid, context=context)
|
|||
<field name="definition_id" eval="ref('definition_commentator')"/>
|
||||
<field name="challenge_id" eval="ref('challenge_chief_commentator')"/>
|
||||
<field name="target_goal">100</field>
|
||||
</record> -->
|
||||
</record>
|
||||
|
||||
<!-- Expert: tag-based activity -->
|
||||
<!-- <record id="badge_10" model="gamification.badge">
|
||||
|
@ -171,38 +173,39 @@ result = get_counter(cr, uid, context=context)
|
|||
<field name="challenge_id" eval="ref('challenge_expert')" />
|
||||
</record> -->
|
||||
|
||||
<!-- <record id="badge_32" model="gamification.badge">
|
||||
<record id="badge_32" model="gamification.badge">
|
||||
<field name="name">Taxonomist</field>
|
||||
<field name="description">Created a tag used by 15 questions</field>
|
||||
<field name="level">silver</field>
|
||||
</record>
|
||||
|
||||
<record model="gamification.goal.definition" id="definition_taxonomist">
|
||||
<field name="name">Taxonomist</field>
|
||||
<field name="description">Create a tag which can used in minimum 15 questions</field>
|
||||
<field name="computation_mode">count</field>
|
||||
<field name="display_mode">boolean</field>
|
||||
<field name="model_id" eval="ref('website_forum.model_website_forum_tag')" />
|
||||
<field name="domain">[('create_uid','=',user.id), ('posts_count', '>=', 15)]</field>
|
||||
<field name="model_id" eval="ref('website_forum.model_forum_tag')" />
|
||||
<field name="condition">higher</field>
|
||||
<field name="domain">[('posts_count', '>=', 15)]</field>
|
||||
<field name="batch_mode">True</field>
|
||||
<field name="batch_distinctive_field" eval="ref('website_forum.field_forum_tag_create_uid')" />
|
||||
<field name="batch_user_expression">user.id</field>
|
||||
</record>
|
||||
|
||||
<record model="gamification.challenge" id="challenge_taxonomist">
|
||||
<field name="name">Taxonomist</field>
|
||||
<field name="period">once</field>
|
||||
<field name="visibility_mode">personal</field>
|
||||
<field name="report_message_frequency">never</field>
|
||||
<field name="reward_id" eval="ref('badge_32')" />
|
||||
<field name="reward_realtime">True</field>
|
||||
<field name="autojoin_group_id" eval="ref('base.group_user')" />
|
||||
<field name="state">inprogress</field>
|
||||
<field name="category">forum</field>
|
||||
</record>
|
||||
|
||||
<record model="gamification.challenge.line" id="line_taxonomist">
|
||||
<field name="definition_id" eval="ref('definition_taxonomist')" />
|
||||
<field name="target_goal">1</field>
|
||||
<field name="challenge_id" eval="ref('challenge_taxonomist')" />
|
||||
</record> -->
|
||||
<field name="target_goal">1</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -293,4 +293,5 @@ class Tags(osv.Model):
|
|||
'forum.post': (_get_tag_from_post, ['tag_ids'], 10),
|
||||
}
|
||||
),
|
||||
'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue