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 @@