diff --git a/addons/website_forum/controllers/main.py b/addons/website_forum/controllers/main.py index 81cbfdcadc8..d2f86625e70 100644 --- a/addons/website_forum/controllers/main.py +++ b/addons/website_forum/controllers/main.py @@ -444,10 +444,10 @@ class WebsiteForum(http.Controller): User = request.registry['res.users'] step = 30 - tag_count = User.search(cr, SUPERUSER_ID, [('karma', '>', 1)], count=True, context=context) + tag_count = User.search(cr, SUPERUSER_ID, [('karma', '>', 1), ('website_published', '=', True)], count=True, context=context) pager = request.website.pager(url="/forum/%s/users" % slug(forum), total=tag_count, page=page, step=step, scope=30) - obj_ids = User.search(cr, SUPERUSER_ID, [('karma', '>', 1)], limit=step, offset=pager['offset'], order='karma DESC', context=context) + obj_ids = User.search(cr, SUPERUSER_ID, [('karma', '>', 1), ('website_published', '=', True)], limit=step, offset=pager['offset'], order='karma DESC', context=context) # put the users in block of 3 to display them as a table users = [[] for i in range(len(obj_ids)/3+1)] for index, user in enumerate(User.browse(cr, SUPERUSER_ID, obj_ids, context=context)): @@ -496,9 +496,9 @@ class WebsiteForum(http.Controller): Data = request.registry["ir.model.data"] user = User.browse(cr, SUPERUSER_ID, user_id, context=context) - if not user.exists() or (user_id != request.session.uid and user.karma < 1): - return werkzeug.utils.redirect("/forum/%s" % slug(forum)) - + values = self._prepare_forum_values(forum=forum, **post) + if not user.exists() or (user_id != request.session.uid and (not user.website_published or user.karma < 1)): + return request.website.render("website_forum.private_profile", values) # questions and answers by user user_questions, user_answers = [], [] user_post_ids = Post.search( @@ -549,13 +549,11 @@ class WebsiteForum(http.Controller): post['users'] = 'True' - values = self._prepare_forum_values(**post) values.update({ 'uid': uid, 'user': user, 'main_object': user, 'searches': post, - 'forum': forum, 'questions': user_questions, 'answers': user_answers, 'followed': followed, diff --git a/addons/website_forum/models/res_users.py b/addons/website_forum/models/res_users.py index 5d05f1f3bf3..fa59b8155d7 100644 --- a/addons/website_forum/models/res_users.py +++ b/addons/website_forum/models/res_users.py @@ -9,7 +9,7 @@ class Users(osv.Model): init_res = super(Users, self).__init__(pool, cr) self.SELF_WRITEABLE_FIELDS = list(set( self.SELF_WRITEABLE_FIELDS + \ - ['country_id', 'city', 'website', 'website_description'])) + ['country_id', 'city', 'website', 'website_description', 'website_published'])) return init_res def _get_user_badge_level(self, cr, uid, ids, name, args, context=None): diff --git a/addons/website_forum/views/res_users.xml b/addons/website_forum/views/res_users.xml index 40aa30ecefc..73d82e17784 100644 --- a/addons/website_forum/views/res_users.xml +++ b/addons/website_forum/views/res_users.xml @@ -11,6 +11,24 @@ + +
+ +
+
+ + + + + res.users.preferences.form + res.users + + + +
+ +
+
diff --git a/addons/website_forum/views/website_forum.xml b/addons/website_forum/views/website_forum.xml index a38c1a0756c..5a5eda9ba64 100644 --- a/addons/website_forum/views/website_forum.xml +++ b/addons/website_forum/views/website_forum.xml @@ -754,49 +754,63 @@ + + + @@ -805,6 +819,9 @@

profile + + +