[ADD] slug() helper to rendering context
bzr revid: fme@openerp.com-20131202125652-5e30xd3ym6nww44o
This commit is contained in:
parent
de0401e043
commit
a5ed3f8b42
|
@ -5,11 +5,10 @@ import werkzeug.routing
|
||||||
|
|
||||||
import openerp
|
import openerp
|
||||||
from openerp.addons.base import ir
|
from openerp.addons.base import ir
|
||||||
|
from openerp.addons.website.models.website import slug
|
||||||
from openerp.http import request
|
from openerp.http import request
|
||||||
from openerp.osv import orm
|
from openerp.osv import orm
|
||||||
|
|
||||||
from ..utils import slugify
|
|
||||||
|
|
||||||
class ir_http(orm.AbstractModel):
|
class ir_http(orm.AbstractModel):
|
||||||
_inherit = 'ir.http'
|
_inherit = 'ir.http'
|
||||||
|
|
||||||
|
@ -112,12 +111,7 @@ class ModelConverter(ir.ir_http.ModelConverter):
|
||||||
self.regex = r'(?:[A-Za-z0-9-_]+?-)?(\d+)(?=$|/)'
|
self.regex = r'(?:[A-Za-z0-9-_]+?-)?(\d+)(?=$|/)'
|
||||||
|
|
||||||
def to_url(self, value):
|
def to_url(self, value):
|
||||||
if isinstance(value, orm.browse_record):
|
return slug(value)
|
||||||
[(id, name)] = value.name_get()
|
|
||||||
else:
|
|
||||||
# assume name_search result tuple
|
|
||||||
id, name = value
|
|
||||||
return "%s-%d" % (slugify(name), id)
|
|
||||||
|
|
||||||
def generate(self, cr, uid, query=None, context=None):
|
def generate(self, cr, uid, query=None, context=None):
|
||||||
return request.registry[self.model].name_search(
|
return request.registry[self.model].name_search(
|
||||||
|
|
|
@ -14,7 +14,7 @@ import werkzeug.exceptions
|
||||||
import werkzeug.wrappers
|
import werkzeug.wrappers
|
||||||
|
|
||||||
import openerp
|
import openerp
|
||||||
from openerp.osv import osv, fields
|
from openerp.osv import orm, osv, fields
|
||||||
from openerp.tools.safe_eval import safe_eval
|
from openerp.tools.safe_eval import safe_eval
|
||||||
|
|
||||||
from openerp.addons.web import http
|
from openerp.addons.web import http
|
||||||
|
@ -58,6 +58,15 @@ def url_for(path_or_uri, lang=None, keep_query=None):
|
||||||
|
|
||||||
return location
|
return location
|
||||||
|
|
||||||
|
def slug(value):
|
||||||
|
if isinstance(value, orm.browse_record):
|
||||||
|
# [(id, name)] = value.name_get()
|
||||||
|
id, name = value.id, value[value._rec_name]
|
||||||
|
else:
|
||||||
|
# assume name_search result tuple
|
||||||
|
id, name = value
|
||||||
|
return "%s-%d" % (slugify(name), id)
|
||||||
|
|
||||||
def urlplus(url, params):
|
def urlplus(url, params):
|
||||||
if not params:
|
if not params:
|
||||||
return url
|
return url
|
||||||
|
@ -198,6 +207,7 @@ class website(osv.osv):
|
||||||
json=simplejson,
|
json=simplejson,
|
||||||
website=request.website,
|
website=request.website,
|
||||||
url_for=url_for,
|
url_for=url_for,
|
||||||
|
slug=slug,
|
||||||
res_company=request.website.company_id,
|
res_company=request.website.company_id,
|
||||||
user_id=user.browse(cr, uid, uid),
|
user_id=user.browse(cr, uid, uid),
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue