diff --git a/addons/crm_partner_assign/res_partner_view.xml b/addons/crm_partner_assign/res_partner_view.xml
index 8227ead8cbe..3493b12a5b4 100644
--- a/addons/crm_partner_assign/res_partner_view.xml
+++ b/addons/crm_partner_assign/res_partner_view.xml
@@ -54,11 +54,18 @@
res.partner.grade
@@ -112,7 +119,6 @@
-
diff --git a/addons/website_crm_partner_assign/controllers/main.py b/addons/website_crm_partner_assign/controllers/main.py
index 190016c9a76..17bf0b6fc97 100644
--- a/addons/website_crm_partner_assign/controllers/main.py
+++ b/addons/website_crm_partner_assign/controllers/main.py
@@ -4,10 +4,11 @@ from openerp import SUPERUSER_ID
from openerp.addons.web import http
from openerp.addons.web.http import request
from openerp.addons.website.models.website import slug, unslug
+from openerp.addons.website_partner.controllers.main import WebsitePartnerPage
from openerp.tools.translate import _
-class WebsiteCrmPartnerAssign(http.Controller):
+class WebsiteCrmPartnerAssign(WebsitePartnerPage):
_references_per_page = 40
@http.route([
@@ -29,7 +30,9 @@ class WebsiteCrmPartnerAssign(http.Controller):
country_obj = request.registry['res.country']
search = post.get('search', '')
- base_partner_domain = [('is_company', '=', True), ('grade_id.website_published', '=', True), ('website_published', '=', True)]
+ base_partner_domain = [('is_company', '=', True), ('grade_id', '!=', False), ('website_published', '=', True)]
+ if request.registry['res.users'].has_group(request.cr, request.uid, 'base.group_website_publisher'):
+ base_partner_domain += [('grade_id.website_published', '=', True)]
if search:
base_partner_domain += ['|', ('name', 'ilike', search), ('website_description', 'ilike', search)]
@@ -132,7 +135,7 @@ class WebsiteCrmPartnerAssign(http.Controller):
# Do not use semantic controller due to SUPERUSER_ID
@http.route(['/partners/'], type='http', auth="public", website=True)
- def partners_detail(self, partner_id, partner_name='', **post):
+ def partners_detail(self, partner_id, **post):
_, partner_id = unslug(partner_id)
current_grade, current_country = None, None
grade_id = post.get('grade_id')
@@ -147,7 +150,8 @@ class WebsiteCrmPartnerAssign(http.Controller):
current_country = request.registry['res.country'].browse(request.cr, request.uid, country_ids[0], context=request.context)
if partner_id:
partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context)
- if partner.exists() and partner.website_published:
+ is_website_publisher = request.registry['res.users'].has_group(request.cr, request.uid, 'base.group_website_publisher')
+ if partner.exists() and (partner.website_published or is_website_publisher):
values = {
'main_object': partner,
'partner': partner,
diff --git a/addons/website_crm_partner_assign/models/res_partner.py b/addons/website_crm_partner_assign/models/res_partner.py
index 1287c4ff3cc..e88bdb77f3f 100644
--- a/addons/website_crm_partner_assign/models/res_partner.py
+++ b/addons/website_crm_partner_assign/models/res_partner.py
@@ -1,11 +1,18 @@
# -*- coding: utf-8 -*-
-from openerp.osv import osv, fields
+from openerp.osv import osv
+from openerp.addons.website.models.website import slug
+
class res_partner_grade(osv.osv):
- _inherit = 'res.partner.grade'
- _columns = {
- 'website_published': fields.boolean('Published On Website', copy=False),
- }
+ _name = 'res.partner.grade'
+ _inherit = ['res.partner.grade', 'website.published.mixin']
+
_defaults = {
- 'website_published': True,
+ 'website_published': True,
}
+
+ def _website_url(self, cr, uid, ids, field_name, arg, context=None):
+ res = super(res_partner_grade, self)._website_url(cr, uid, ids, field_name, arg, context=context)
+ for grade in self.browse(cr, uid, ids, context=context):
+ res[grade.id] = "/partners/grade/%s" % (slug(grade))
+ return res
diff --git a/addons/website_crm_partner_assign/views/partner_grade.xml b/addons/website_crm_partner_assign/views/partner_grade.xml
index 2acf8e1eb24..0605e8b6887 100644
--- a/addons/website_crm_partner_assign/views/partner_grade.xml
+++ b/addons/website_crm_partner_assign/views/partner_grade.xml
@@ -2,16 +2,21 @@
-
- res.partner.grade.website
- res.partner.grade
-
-
-
-
-
-
-
+
+ res.partner.grade.website
+ res.partner.grade
+
+
+
+
+
+
+
+
+
diff --git a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml
index eafebb00abe..c2eb98271aa 100644
--- a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml
+++ b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml
@@ -81,6 +81,10 @@
Partners
+
+
+
+
@@ -141,7 +145,7 @@