diff --git a/addons/website/website.py b/addons/website/website.py index aa446d7a1f8..f2a7f0fddda 100644 --- a/addons/website/website.py +++ b/addons/website/website.py @@ -69,11 +69,12 @@ class website(osv.osv): return values def render(self, template, values={}): + view = request.registry.get("ir.ui.view") context = { 'inherit_branding': values.get('editable', False), } try: - return request.registry.get("ir.ui.view").render(request.cr, request.uid, template, values, context=context) + return view.render(request.cr, request.uid, template, values, context=context) except (osv.except_osv, orm.except_orm), err: logger.error(err) values['error'] = err[1] @@ -82,12 +83,13 @@ class website(osv.osv): # logger.error("Website Rendering Error.\n\n%s" % (traceback.format_exc())) # return self.render('website.404', values) except Exception: - logger.error("Website Rendering Error.\n\n%s" % (traceback.format_exc())) + trace = traceback.format_exc() + logger.error("Website Rendering Error.\n\n%s" % trace) if values['editable']: - values['traceback'] = traceback.format_exc() - return self.render('website.500', values) + values['traceback'] = trace + return view.render(request.cr, request.uid, 'website.500', values, context=context) else: - return self.render('website.404', values) + return view.render(request.cr, request.uid, 'website.404', values, context=context) def pager(self, url, total, page=1, step=30, scope=5, url_args=None): # Compute Pager diff --git a/addons/website_contract/__openerp__.py b/addons/website_contract/__openerp__.py index 9a6de074518..3be38778530 100644 --- a/addons/website_contract/__openerp__.py +++ b/addons/website_contract/__openerp__.py @@ -9,7 +9,7 @@ OpenERP Blog """, 'author': 'OpenERP SA', - 'depends': ['website', 'project'], + 'depends': ['website', 'sale'], 'data': [ 'views/website_contract.xml', ], diff --git a/addons/website_contract/controllers/main.py b/addons/website_contract/controllers/main.py index fe7bb0f1f4a..674fef25343 100644 --- a/addons/website_contract/controllers/main.py +++ b/addons/website_contract/controllers/main.py @@ -10,10 +10,17 @@ class website_contract(http.Controller): def blog(self, **post): website = request.registry['website'] partner_obj = request.registry['res.partner'] + account_obj = request.registry['account.analytic.account'] + project_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, [('website_testimonial', "!=", False), ('website_published', '=', True)]) + if request.uid != website.get_public_user().id: - project_ids += partner_obj.search(request.cr, request.uid, [(1, "=", 1)]) + contract_ids = account_obj.search(request.cr, openerp.SUPERUSER_ID, [(1, "=", 1)]) + for contract in account_obj.browse(request.cr, openerp.SUPERUSER_ID, contract_ids): + if contract.partner_id: + project_ids.append(contract.partner_id.id) project_ids = list(set(project_ids)) + values = website.get_rendering_context({ 'partner_ids': partner_obj.browse(request.cr, openerp.SUPERUSER_ID, project_ids) })