[FIX] signup_url_for_action(), use `redirect` url parameter and bring back `action` in fragment
bzr revid: fme@openerp.com-20140311205337-9vasnqx5cudbk3f3
This commit is contained in:
parent
233665197b
commit
9684f07735
|
@ -20,8 +20,8 @@
|
|||
##############################################################################
|
||||
from datetime import datetime, timedelta
|
||||
import random
|
||||
from urllib import urlencode
|
||||
from urlparse import urljoin
|
||||
import werkzeug
|
||||
|
||||
from openerp.addons.base.ir.ir_mail_server import MailDeliveryException
|
||||
from openerp.osv import osv, fields
|
||||
|
@ -53,7 +53,7 @@ class res_partner(osv.Model):
|
|||
(not partner.signup_expiration or dt <= partner.signup_expiration)
|
||||
return res
|
||||
|
||||
def _get_signup_url_for_action(self, cr, uid, ids, action='login', view_type=None, menu_id=None, res_id=None, model=None, context=None):
|
||||
def _get_signup_url_for_action(self, cr, uid, ids, action=None, view_type=None, menu_id=None, res_id=None, model=None, context=None):
|
||||
""" generate a signup url for the given partner ids and action, possibly overriding
|
||||
the url state components (menu_id, id, view_type) """
|
||||
if context is None:
|
||||
|
@ -80,6 +80,8 @@ class res_partner(osv.Model):
|
|||
continue # no signup token, no user, thus no signup url!
|
||||
|
||||
fragment = dict()
|
||||
if action:
|
||||
fragment['action'] = action
|
||||
if view_type:
|
||||
fragment['view_type'] = view_type
|
||||
if menu_id:
|
||||
|
@ -89,7 +91,10 @@ class res_partner(osv.Model):
|
|||
if res_id:
|
||||
fragment['id'] = res_id
|
||||
|
||||
res[partner.id] = urljoin(base_url, "/web/login?%s#%s" % (urlencode(query), urlencode(fragment)))
|
||||
if fragment:
|
||||
query['redirect'] = '/web#' + werkzeug.url_encode(fragment)
|
||||
|
||||
res[partner.id] = urljoin(base_url, "/web/login?%s" % werkzeug.url_encode(query))
|
||||
|
||||
return res
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class mail_mail(osv.Model):
|
|||
if partner and not partner.user_ids:
|
||||
contex_signup = dict(context, signup_valid=True)
|
||||
signup_url = partner_obj._get_signup_url_for_action(cr, SUPERUSER_ID, [partner.id],
|
||||
action='login', model=mail.model, res_id=mail.res_id,
|
||||
model=mail.model, res_id=mail.res_id,
|
||||
context=contex_signup)[partner.id]
|
||||
return _("""<span class='oe_mail_footer_access'><small>Access your messages and documents through <a style='color:inherit' href="%s">our Customer Portal</a></small></span>""") % signup_url
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue