diff --git a/addons/website_blog/views/website_blog_views.xml b/addons/website_blog/views/website_blog_views.xml index 114c9d6961f..cd62070b255 100644 --- a/addons/website_blog/views/website_blog_views.xml +++ b/addons/website_blog/views/website_blog_views.xml @@ -104,7 +104,7 @@ - + Blogs blog.blog diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py index 087e3a1e5ec..4809229db6c 100644 --- a/addons/website_forum/models/forum.py +++ b/addons/website_forum/models/forum.py @@ -27,59 +27,91 @@ import re from openerp.addons.website.models.website import slug -#class WebsiteForum(osv.Model): -# _inhrit = "website" +#TODO: do we need a forum object like blog object Need to check with BE team? +# class Forum(osv.Model): +# _name = 'blog.blog' +# _description = 'Blogs' +# _inherit = ['mail.thread', 'website.seo.metadata'] +# _order = 'name' +# +# _columns = { +# 'name': fields.char('Name', required=True), +# 'description': fields.text('Description'), +# 'forum_post_ids': fields.one2many( +# 'website.forum.post', 'forum_id', +# 'Posts', +# ), +# } -class website_form_post_rate(osv.Model): - _name = "website.forum.post.rate" - _column = { - 'post_id': fields.many2one('website.forum.post', 'Forum Post'), - 'user_id': fields.many2one('res.users', 'User'), - 'rate': fields.integer('rate'), - } - -class website_forum_post(osv.Model): +class Post(osv.Model): _name = "website.forum.post" - _description = "Website forum post" + _description = "Question" _inherit = ['mail.thread', 'website.seo.metadata'] _columns = { - #add version and category , instead of page use category in website, + #TODO: do we need a forum object like blog object Need to check with BE team? + #'forum_id': fields.many2one('website.forum', 'Forum'), + 'name': fields.char('Topic', size=64), 'body': fields.html('Contents', help='Automatically sanitized HTML contents'), - #'forum_id': fields.many2one('website.forum', 'Forum'), - 'create_date': fields.datetime('Created on', select=True, readonly=True), - 'create_uid': fields.many2one('res.users', 'Author', select=True, readonly=True ), - 'write_date': fields.datetime('Last Modified on', select=True, readonly=True ), - 'write_uid': fields.many2one('res.users', 'Last Contributor', select=True, readonly=True), + + 'create_date': fields.datetime('Asked on', select=True, readonly=True), + 'create_uid': fields.many2one('res.users', 'Asked by', select=True, readonly=True ), + 'write_date': fields.datetime('Update on', select=True, readonly=True ), + 'write_uid': fields.many2one('res.users', 'Update by', select=True, readonly=True), + 'tags': fields.many2many('website.forum.tag', 'forum_tag_rel', 'forum_id', 'forum_tag_id', 'Tag'), - 'up_votes': fields.many2many('res.users', 'forum_user_upvotes_rel', 'forum_id', 'user_id', 'Up votes'), - 'favourite_que_ids': fields.many2many('res.users', 'forum_user_fav_rel', 'forum_id', 'user_id', 'Down votes'), - 'views': fields.integer('Views'), + 'vote_ids':fields.one2many('website.forum.post.vote', 'Vote'), + + 'favourite_ids': fields.many2many('res.users', 'forum_favourite_rel', 'forum_id', 'user_id', 'Favourite'), + 'state': fields.selection([('active', 'Active'),('close', 'Close'),('offensive', 'Offensive')], 'Status'), + 'active': fields.boolean('Active'), + 'views': fields.integer('Views'), + 'parent_id': fields.many2one('website.forum.post', 'Parent'), 'child_ids': fields.one2many('website.forum.post', 'parent_id', 'Child'), + # TODO FIXME: when website_mail/mail_thread.py inheritance work -> this field won't be necessary 'website_message_ids': fields.one2many( 'mail.message', 'res_id', domain=lambda self: [ '&', ('model', '=', self._name), ('type', '=', 'comment') ], - string='Website Messages', - help="Website communication history", + string='Post Messages', + help="Comments on forum post", ), } _defaults = { 'state': 'active', + 'active': True } -class website_forum_tag(osv.Model): +class PostHistory(osv.Model): + _name = 'website.forum.post.history' + _description = "Post History" + _inherit = ['website.seo.metadata'] + _columns = { + 'post_id': fields.many2one('website.forum.post', 'Post'), + 'name': fields.char('Update Notes', size=64, required=True), + 'body': fields.html('Contents', help='Automatically sanitized HTML contents'), + 'tags': fields.many2many('website.forum.tag', 'forum_tag_rel', 'forum_id', 'forum_tag_id', 'Tag'), + } + +class Vote(osv.Model): + _name = "website.forum.post.vote" + _description = "Vote" + _column = { + 'post_id': fields.many2one('website.forum.post', 'Post'), + 'user_id': fields.many2one('res.users', 'User'), + 'vote': fields.integer('rate'), #Value in between wither +1 or -1 + } + +class Tags(osv.Model): _name = "website.forum.tag" - _description = "Website forum tag" + _description = "Tags" _inherit = ['website.seo.metadata'] _columns = { 'name': fields.char('Order Reference', size=64, required=True), - #'forum_id': fields.many2one('website.forum', 'Forum'), 'post_ids': fields.many2many('website.forum.post', 'forum_tag_que_rel', 'tag_id', 'forum_id', 'Question', readonly=True), - } - + } \ No newline at end of file