[FIX] website_partner remove controller, add support for negative ids

This commit is contained in:
Antony Lesuisse 2014-05-15 00:43:38 +02:00
parent cfefd04871
commit 1501c7e64b
4 changed files with 27 additions and 45 deletions

View File

@ -1,12 +1,11 @@
# -*- coding: utf-8 -*-
import re
import werkzeug
import openerp
from openerp import SUPERUSER_ID
from openerp.addons.web import http
from openerp.tools.translate import _
from openerp.addons.web.http import request
from openerp.addons.website_partner.controllers import main as website_partner
class WebsiteCrmPartnerAssign(http.Controller):
_references_per_page = 20
@ -106,10 +105,14 @@ class WebsiteCrmPartnerAssign(http.Controller):
return request.website.render("website_crm_partner_assign.index", values)
# Do not use semantic controller due to SUPERUSER_ID
@http.route(['/partners/<int:partner_id>', '/partners/<partner_name>-<int:partner_id>'], type='http', auth="public", website=True, multilang=True)
def partners_ref(self, partner_id, partner_name='', **post):
values = website_partner.get_partner_template_value(partner_id)
if not values:
return self.partners(**post)
values['main_object'] = values['partner']
return request.website.render("website_crm_partner_assign.partner", values)
@http.route(['/partners/<partner_id>'], type='http', auth="public", website=True, multilang=True)
def partners_detail(self, partner_id, partner_name='', **post):
mo = re.search('-([-0-9]+)$', str(partner_id))
if mo:
partner_id = int(mo.group(1))
partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context)
if partner.exists() and partner.website_published:
values = {}
values['main_object'] = values['partner'] = partner
return request.website.render("website_crm_partner_assign.partner", values)
return self.partners(**post)

View File

@ -1,10 +1,11 @@
# -*- coding: utf-8 -*-
import re
import openerp
from openerp import SUPERUSER_ID
from openerp.addons.web import http
from openerp.tools.translate import _
from openerp.addons.web.http import request
from openerp.addons.website_partner.controllers import main as website_partner
import werkzeug.urls
class WebsiteCustomer(http.Controller):
@ -80,11 +81,15 @@ class WebsiteCustomer(http.Controller):
}
return request.website.render("website_customer.index", values)
@http.route(['/customers/<int:partner_id>', '/customers/<partner_name>-<int:partner_id>'], type='http', auth="public", website=True, multilang=True)
def customer(self, partner_id, partner_name='', **post):
values = website_partner.get_partner_template_value(partner_id)
if not values:
return self.customers(**post)
values['main_object'] = values['partner']
return request.website.render("website_customer.details", values)
# Do not use semantic controller due to SUPERUSER_ID
@http.route(['/customers/<partner_id>'], type='http', auth="public", website=True, multilang=True)
def partners_detail(self, partner_id, **post):
mo = re.search('-([-0-9]+)$', str(partner_id))
if mo:
partner_id = int(mo.group(1))
partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context)
if partner.exists() and partner.website_published:
values = {}
values['main_object'] = values['partner'] = partner
return request.website.render("website_customer.details", values)
return self.customers(**post)

View File

@ -1 +0,0 @@
import main

View File

@ -1,25 +0,0 @@
# -*- coding: utf-8 -*-
import werkzeug
from openerp import SUPERUSER_ID
from openerp.addons.web import http
from openerp.addons.web.http import request
def get_partner_template_value(partner_id):
partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context)
if not partner.exists() or not partner.website_published:
return None
return {
'partner': partner,
}
class WebsitePartner(http.Controller):
@http.route(['/partners/<int:partner_id>', '/partners/<partner_name>-<int:partner_id>'], type='http', auth="public", website=True, multilang=True)
def partner(self, partner_id, partner_name='', **post):
""" Route for displaying a single partner / customer. """
values = get_partner_template_value(partner_id)
if not values:
raise werkzeug.exceptions.NotFound()
return request.website.render("website_partner.partner_page", values)