From 8892c8f4d399daee3d8eb52c1dff43ac6a26a2aa Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Mon, 3 Mar 2014 21:34:25 +0100 Subject: [PATCH] [IMP] forum users bzr revid: fp@tinyerp.com-20140303203425-5jf71pg6uqviaz6r --- addons/website_forum/controllers/main.py | 11 +++++++---- addons/website_forum/data/forum_demo.xml | 9 ++++++++- addons/website_forum/models/website_forum.py | 10 +++++++++- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/addons/website_forum/controllers/main.py b/addons/website_forum/controllers/main.py index 0b8a5a8328e..2b3f568feeb 100644 --- a/addons/website_forum/controllers/main.py +++ b/addons/website_forum/controllers/main.py @@ -35,7 +35,6 @@ from openerp.addons.website.controllers.main import Website as controllers controllers = controllers() class website_forum(http.Controller): - @http.route(['/forum/', '/forum/page/'], type='http', auth="public", website=True, multilang=True) def questions(self, page=1, **searches): cr, uid, context = request.cr, request.uid, request.context @@ -138,7 +137,10 @@ class website_forum(http.Controller): @http.route('/forum/question/postanswer/', type='http', auth="user", multilang=True, methods=['POST'], website=True) def post_answer(self, post_id, forum_id=1, **question): + # TODO: set forum on user to True cr, uid, context = request.cr, request.uid, request.context + request.registry['res.users'].write(cr, uid, uid, {'forum': True}, context=context) + create_context = dict(context) new_question_id = request.registry['website.forum.post'].create( request.cr, request.uid, { @@ -153,6 +155,7 @@ class website_forum(http.Controller): @http.route(['/forum/question/editanswer'], type='http', auth="user", website=True, multilang=True) def edit_answer(self, post_id, **kwargs): cr, uid, context = request.cr, request.uid, request.context + request.registry['res.users'].write(cr, uid, uid, {'forum': True}, context=context) post = request.registry['website.forum.post'].browse(cr, uid, int(post_id), context=context) for answer in post.child_ids: if answer.create_uid.id == request.uid: @@ -167,8 +170,8 @@ class website_forum(http.Controller): @http.route('/forum/question/saveanswer/', type='http', auth="user", multilang=True, methods=['POST'], website=True) def save_edited_answer(self, forum_id=1, **post): cr, uid, context = request.cr, request.uid, request.context + request.registry['res.users'].write(cr, uid, uid, {'forum': True}, context=context) answer_id = int(post.get('answer_id')) - new_question_id = request.registry['website.forum.post'].write( cr, uid, [answer_id], { 'content': post.get('answer_content'), }, context=context) @@ -206,10 +209,10 @@ class website_forum(http.Controller): user_obj = request.registry['res.users'] step = 30 - tag_count = user_obj.search(cr, uid, [], count=True, context=context) + tag_count = user_obj.search(cr, uid, [('forum','=',True)], count=True, context=context) pager = request.website.pager(url="/forum/users/", total=tag_count, page=page, step=step, scope=30) - obj_ids = user_obj.search(cr, uid, [], limit=step, offset=pager['offset'], context=context) + obj_ids = user_obj.search(cr, uid, [('forum','=',True)], limit=step, offset=pager['offset'], context=context) users = user_obj.browse(cr, uid, obj_ids, context=context) searches['users'] = 'True' diff --git a/addons/website_forum/data/forum_demo.xml b/addons/website_forum/data/forum_demo.xml index c4931de2ce2..c07996455d1 100644 --- a/addons/website_forum/data/forum_demo.xml +++ b/addons/website_forum/data/forum_demo.xml @@ -155,7 +155,14 @@ Thank you in advance - + + + + + + + + diff --git a/addons/website_forum/models/website_forum.py b/addons/website_forum/models/website_forum.py index 8f4216dfb64..584a266b540 100644 --- a/addons/website_forum/models/website_forum.py +++ b/addons/website_forum/models/website_forum.py @@ -114,16 +114,24 @@ class Post(osv.Model): class Users(osv.Model): _inherit = 'res.users' _columns = { + # TODO: Remove these 3 field and compute number in /user controller 'question_ids':fields.one2many('website.forum.post', 'create_uid', 'Questions', domain=[('parent_id', '=', False)]), 'answer_ids':fields.one2many('website.forum.post', 'create_uid', 'Answers', domain=[('parent_id', '!=', False)]), 'vote_ids': fields.one2many('website.forum.post.vote', 'user_id', 'Votes'), + + # Field to remove 'tags': fields.many2many('website.forum.tag', 'forum_tag_rel', 'forum_id', 'forum_tag_id', 'Tag'), + 'create_date': fields.datetime('Create Date', select=True, readonly=True), - 'karma': fields.integer('Karma') # Use Gamification for this + 'karma': fields.integer('Karma'), # Use Gamification for this + 'forum': fields.boolean('Is Forum Member') # TODO: 'tag_ids':fields.function() # Badges : use the gamification module } + _defaults = { + 'forum': False + } class PostHistory(osv.Model): _name = 'website.forum.post.history'