@@ -1340,7 +1340,7 @@
-
+
diff --git a/addons/warning/warning.py b/addons/warning/warning.py
index d582478113a..539316482d2 100644
--- a/addons/warning/warning.py
+++ b/addons/warning/warning.py
@@ -62,14 +62,14 @@ class sale_order(osv.osv):
message = False
partner = self.pool.get('res.partner').browse(cr, uid, part, context=context)
if partner.sale_warn != 'no-message':
- if partner.sale_warn == 'block':
- raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.sale_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.sale_warn_msg
warning = {
'title': title,
'message': message,
}
+ if partner.sale_warn == 'block':
+ return {'value': {'partner_id': False}, 'warning': warning}
result = super(sale_order, self).onchange_partner_id(cr, uid, ids, part, context=context)
@@ -90,14 +90,15 @@ class purchase_order(osv.osv):
message = False
partner = self.pool.get('res.partner').browse(cr, uid, part)
if partner.purchase_warn != 'no-message':
- if partner.purchase_warn == 'block':
- raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.purchase_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.purchase_warn_msg
warning = {
'title': title,
'message': message
}
+ if partner.purchase_warn == 'block':
+ return {'value': {'partner_id': False}, 'warning': warning}
+
result = super(purchase_order, self).onchange_partner_id(cr, uid, ids, part)
if result.get('warning',False):
@@ -123,15 +124,16 @@ class account_invoice(osv.osv):
message = False
partner = self.pool.get('res.partner').browse(cr, uid, partner_id)
if partner.invoice_warn != 'no-message':
- if partner.invoice_warn == 'block':
- raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.invoice_warn_msg)
-
title = _("Warning for %s") % partner.name
message = partner.invoice_warn_msg
warning = {
'title': title,
'message': message
}
+
+ if partner.invoice_warn == 'block':
+ return {'value': {'partner_id': False}, 'warning': warning}
+
result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id,
date_invoice=date_invoice, payment_term=payment_term,
partner_bank_id=partner_bank_id, company_id=company_id)
@@ -154,14 +156,15 @@ class stock_picking(osv.osv):
title = False
message = False
if partner.picking_warn != 'no-message':
- if partner.picking_warn == 'block':
- raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.picking_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.picking_warn_msg
warning = {
'title': title,
'message': message
}
+ if partner.picking_warn == 'block':
+ return {'value': {'partner_id': False}, 'warning': warning}
+
result = super(stock_picking, self).onchange_partner_in(cr, uid, ids, partner_id, context)
if result.get('warning',False):
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
@@ -183,14 +186,15 @@ class stock_picking_in(osv.osv):
title = False
message = False
if partner.picking_warn != 'no-message':
- if partner.picking_warn == 'block':
- raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.picking_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.picking_warn_msg
warning = {
'title': title,
'message': message
}
+ if partner.picking_warn == 'block':
+ return {'value': {'partner_id': False}, 'warning': warning}
+
result = super(stock_picking_in, self).onchange_partner_in(cr, uid, ids, partner_id, context)
if result.get('warning',False):
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
@@ -209,14 +213,15 @@ class stock_picking_out(osv.osv):
title = False
message = False
if partner.picking_warn != 'no-message':
- if partner.picking_warn == 'block':
- raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.picking_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.picking_warn_msg
warning = {
'title': title,
'message': message
}
+ if partner.picking_warn == 'block':
+ return {'value': {'partner_id': False}, 'warning': warning}
+
result = super(stock_picking_out, self).onchange_partner_in(cr, uid, ids, partner_id, context)
if result.get('warning',False):
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
@@ -256,12 +261,12 @@ class sale_order_line(osv.osv):
message = False
if product_info.sale_line_warn != 'no-message':
- if product_info.sale_line_warn == 'block':
- raise osv.except_osv(_('Alert for %s!') % (product_info.name), product_info.sale_line_warn_msg)
title = _("Warning for %s") % product_info.name
message = product_info.sale_line_warn_msg
warning['title'] = title
warning['message'] = message
+ if product_info.sale_line_warn == 'block':
+ return {'value': {'product_id': False}, 'warning': warning}
result = super(sale_order_line, self).product_id_change( cr, uid, ids, pricelist, product, qty,
uom, qty_uos, uos, name, partner_id,
@@ -288,12 +293,12 @@ class purchase_order_line(osv.osv):
message = False
if product_info.purchase_line_warn != 'no-message':
- if product_info.purchase_line_warn == 'block':
- raise osv.except_osv(_('Alert for %s!') % (product_info.name), product_info.purchase_line_warn_msg)
title = _("Warning for %s") % product_info.name
message = product_info.purchase_line_warn_msg
warning['title'] = title
warning['message'] = message
+ if product_info.purchase_line_warn == 'block':
+ return {'value': {'product_id': False}, 'warning': warning}
result = super(purchase_order_line, self).onchange_product_id(cr, uid, ids, pricelist, product, qty, uom,
partner_id, date_order, fiscal_position_id)
diff --git a/addons/website/security/ir.model.access.csv b/addons/website/security/ir.model.access.csv
index 1a9ccccba5c..8682a349f70 100644
--- a/addons/website/security/ir.model.access.csv
+++ b/addons/website/security/ir.model.access.csv
@@ -2,6 +2,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_website_public,website,website.model_website,,1,0,0,0
access_website,website,website.model_website,base.group_website_designer,1,1,1,1
access_website_menu,access_website_menu,model_website_menu,,1,0,0,0
+access_website_menu_designer,Web Menu Manager,model_website_menu,base.group_website_designer,1,1,1,1
access_website,web menu manager,website.model_website,base.group_website_designer,1,1,1,1
access_website_converter_test,access_website_converter_test,model_website_converter_test,,1,1,1,1
access_website_converter_test_sub,access_website_converter_test_sub,model_website_converter_test_sub,,1,1,1,1
diff --git a/addons/website_forum/controllers/main.py b/addons/website_forum/controllers/main.py
index 365221f9574..cd36a802422 100644
--- a/addons/website_forum/controllers/main.py
+++ b/addons/website_forum/controllers/main.py
@@ -124,6 +124,7 @@ class WebsiteForum(http.Controller):
values.update({
'main_object': tag or forum,
'question_ids': question_ids,
+ 'question_count': question_count,
'pager': pager,
'tag': tag,
'filters': filters,
@@ -134,7 +135,7 @@ class WebsiteForum(http.Controller):
@http.route(['/forum//faq'], type='http', auth="public", website=True, multilang=True)
def forum_faq(self, forum, **post):
- values = self._prepare_forum_values(forum=forum, searches=dict(), **post)
+ values = self._prepare_forum_values(forum=forum, searches=dict(), header={'is_guidelines': True}, **post)
return request.website.render("website_forum.faq", values)
@http.route('/forum/get_tags', type='http', auth="public", multilang=True, methods=['GET'], website=True)
@@ -147,7 +148,7 @@ class WebsiteForum(http.Controller):
def tags(self, forum, page=1, **post):
cr, uid, context = request.cr, request.uid, request.context
Tag = request.registry['forum.tag']
- obj_ids = Tag.search(cr, uid, [('forum_id', '=', forum.id)], limit=None, context=context)
+ obj_ids = Tag.search(cr, uid, [('forum_id', '=', forum.id), ('posts_count', '>', 0)], limit=None, order='posts_count DESC', context=context)
tags = Tag.browse(cr, uid, obj_ids, context=context)
values = self._prepare_forum_values(forum=forum, searches={'tags': True}, **post)
values.update({
@@ -426,7 +427,7 @@ class WebsiteForum(http.Controller):
tag_count = User.search(cr, SUPERUSER_ID, [('karma', '>', 1)], count=True, context=context)
pager = request.website.pager(url="/forum/users", total=tag_count, page=page, step=step, scope=30)
- obj_ids = User.search(cr, SUPERUSER_ID, [('karma', '>', 1)], limit=step, offset=pager['offset'], context=context)
+ obj_ids = User.search(cr, SUPERUSER_ID, [('karma', '>', 1)], limit=step, offset=pager['offset'], order='karma DESC', context=context)
users = User.browse(cr, SUPERUSER_ID, obj_ids, context=context)
searches['users'] = 'True'
@@ -590,12 +591,13 @@ class WebsiteForum(http.Controller):
@http.route('/forum//post//comment//convert_to_answer', type='http', auth="public", multilang=True, website=True)
def convert_comment_to_answer(self, forum, post, comment, **kwarg):
- values = {
- 'content': comment.body,
- }
+ body = comment.body
request.registry['mail.message'].unlink(request.cr, request.uid, [comment.id], context=request.context)
question = post.parent_id if post.parent_id else post
- return self.post_new(forum, question, **values)
+ for answer in question.child_ids:
+ if answer.create_uid.id == request.uid:
+ return self.post_comment(forum, answer, comment=html2plaintext(body))
+ return self.post_new(forum, question, content=body)
@http.route('/forum//post//convert_to_comment', type='http', auth="user", multilang=True, website=True)
def convert_answer_to_comment(self, forum, post, **kwarg):
diff --git a/addons/website_forum/data/forum_data.xml b/addons/website_forum/data/forum_data.xml
index 245169c23e9..a387a8de7ae 100644
--- a/addons/website_forum/data/forum_data.xml
+++ b/addons/website_forum/data/forum_data.xml
@@ -13,10 +13,7 @@
35
-
- auth_signup.allow_uninvited
-
-
+
diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py
index 7a8385d1a82..061b9e55eb8 100644
--- a/addons/website_forum/models/forum.py
+++ b/addons/website_forum/models/forum.py
@@ -70,6 +70,7 @@ class Post(osv.Model):
_name = 'forum.post'
_description = 'Forum Post'
_inherit = ['mail.thread', 'website.seo.metadata']
+ _order = "is_correct DESC, vote_count DESC"
def _get_user_vote(self, cr, uid, ids, field_name, arg, context):
res = dict.fromkeys(ids, 0)
diff --git a/addons/website_forum/static/src/css/website_forum.css b/addons/website_forum/static/src/css/website_forum.css
index ab8ea684aae..b90c1786e24 100644
--- a/addons/website_forum/static/src/css/website_forum.css
+++ b/addons/website_forum/static/src/css/website_forum.css
@@ -21,6 +21,9 @@
background-color: #cccccc;
margin-left: 4px;
}
+.question .badge-active {
+ background-color: #428bca;
+}
.oe_grey {
background-color: #eeeeee;
diff --git a/addons/website_forum/static/src/css/website_forum.sass b/addons/website_forum/static/src/css/website_forum.sass
index da2df1460aa..f8e46f06b79 100644
--- a/addons/website_forum/static/src/css/website_forum.sass
+++ b/addons/website_forum/static/src/css/website_forum.sass
@@ -17,6 +17,8 @@
.badge
background-color: #ccc
margin-left: 4px
+ .badge-active
+ background-color: #428bca
.oe_grey
background-color: #eeeeee
diff --git a/addons/website_forum/views/website_forum.xml b/addons/website_forum/views/website_forum.xml
index bd8b47f0817..c73486d7d39 100644
--- a/addons/website_forum/views/website_forum.xml
+++ b/addons/website_forum/views/website_forum.xml
@@ -92,7 +92,8 @@