diff --git a/addons/website_contract/__init__.py b/addons/website_contract/__init__.py index 3749654a3b9..ee5959455ad 100644 --- a/addons/website_contract/__init__.py +++ b/addons/website_contract/__init__.py @@ -1,2 +1 @@ import controllers -import website_contract \ No newline at end of file diff --git a/addons/website_contract/__openerp__.py b/addons/website_contract/__openerp__.py index ef434effc93..80a9b80eb14 100644 --- a/addons/website_contract/__openerp__.py +++ b/addons/website_contract/__openerp__.py @@ -9,7 +9,7 @@ OpenERP Blog """, 'author': 'OpenERP SA', - 'depends': ['website', 'sale', 'website_google_map'], + 'depends': ['website_partner', 'sale', 'website_google_map'], 'data': [ 'views/website_contract.xml', ], diff --git a/addons/website_contract/controllers/main.py b/addons/website_contract/controllers/main.py index 3b0fcc94442..3b58756854a 100644 --- a/addons/website_contract/controllers/main.py +++ b/addons/website_contract/controllers/main.py @@ -7,6 +7,7 @@ from openerp.addons.web.http import request from openerp.addons.website.models import website import urllib + class website_contract(http.Controller): @website.route(['/references/', '/references/page//'], type='http', auth="public") @@ -23,9 +24,13 @@ class website_contract(http.Controller): domain = ['|', ('id', "in", contract_project_ids), ('id', "child_of", contract_project_ids)] if post.get('search'): - domain += ['|', + domain += [ + '|', ('name', 'ilike', "%%%s%%" % post.get("search")), - ('website_description', 'ilike', "%%%s%%" % post.get("search"))] + ('website_description', 'ilike', "%%%s%%" % post.get("search")) + ] + if request.context['is_public_user']: + domain = ['&'] + domain + [('website_published', '=', True)] # public partner profile partner_ids = partner_obj.search( @@ -33,12 +38,6 @@ class website_contract(http.Controller): domain + [('website_published', '=', True)], context=request.context) google_map_partner_ids = ",".join([str(p) for p in partner_ids]) - if not request.context['is_public_user']: - # search without website_published - partner_ids += partner_obj.search(request.cr, request.uid, - domain, context=request.context) - partner_ids = list(set(partner_ids)) - # group by country countries = partner_obj.read_group( request.cr, request.uid, domain, ["id", "country_id"], @@ -75,22 +74,28 @@ class website_contract(http.Controller): } return request.website.render("website_contract.index", values) - @website.route(['/references//'], type='http', auth="public") - def references_ref(self, ref_id=0, **post): + @website.route(['/references//'], type='http', auth="public") + def references_ref(self, partner_id=None, **post): + """ Route for displaying a single partner. + + :param integer partner_id: partner to display. If not set or not valid + call basic references method. + """ partner_obj = request.registry['res.partner'] - partner_ids = partner_obj.search( - request.cr, openerp.SUPERUSER_ID, [ - ('website_published', '=', True), - ('id', '=', ref_id) - ], context=request.context) - if not request.context['is_public_user']: - partner_ids += partner_obj.search( - request.cr, request.uid, [('id', '=', ref_id)], - context=request.context) + if request.context['is_public_user']: + partner_ids = partner_obj.search( + request.cr, openerp.SUPERUSER_ID, [ + ('website_published', '=', True), + ('id', '=', partner_id) + ], context=request.context) + partner_id = partner_ids and partner_ids[0] or None + + if not partner_id: + return self.references(post) values = { 'partner_id': partner_obj.browse( - request.cr, openerp.SUPERUSER_ID, partner_ids[0], + request.cr, openerp.SUPERUSER_ID, partner_id, dict(request.context, show_address=True)), } diff --git a/addons/website_contract/views/website_contract.xml b/addons/website_contract/views/website_contract.xml index ff30881a036..5038ce26e59 100644 --- a/addons/website_contract/views/website_contract.xml +++ b/addons/website_contract/views/website_contract.xml @@ -101,7 +101,8 @@
-
+
+
@@ -110,11 +111,11 @@ - - - - - + + + + +
Address
Website
Tel
Tel
Fax
Email
Website
Tel
Tel
Fax
Email
diff --git a/addons/website_contract/website_contract.py b/addons/website_contract/website_contract.py deleted file mode 100644 index 1d89a2bdf4e..00000000000 --- a/addons/website_contract/website_contract.py +++ /dev/null @@ -1,13 +0,0 @@ -# -*- coding: utf-8 -*- - -from openerp.osv import osv, fields - -class res_partner(osv.osv): - _inherit = 'res.partner' - _columns = { - 'website_description': fields.html('Description for the website'), - 'website_short_description': fields.text('Sort description for the website'), - } - - def img(self, cr, uid, ids, field='image_small', context=None): - return "/website/image?model=%s&field=%s&id=%s" % (self._name, field, ids[0]) diff --git a/addons/website_partner/__openerp__.py b/addons/website_partner/__openerp__.py index 94596478756..18e7e153713 100644 --- a/addons/website_partner/__openerp__.py +++ b/addons/website_partner/__openerp__.py @@ -28,6 +28,7 @@ 'author': 'OpenERP SA', 'depends': ['website'], 'data': [ + 'views/res_partner_view.xml', ], 'css': [ ], diff --git a/addons/website_partner/views/res_partner_view.xml b/addons/website_partner/views/res_partner_view.xml new file mode 100644 index 00000000000..818b78380b6 --- /dev/null +++ b/addons/website_partner/views/res_partner_view.xml @@ -0,0 +1,21 @@ + + + + + + + view.res.partner.form.website + res.partner + + + + + + + + + + + + +