Commit a1ba28e1 by aagusti

get urls

1 parent 478e3296
...@@ -351,6 +351,16 @@ def get_menus(request): ...@@ -351,6 +351,16 @@ def get_menus(request):
return result return result
def get_urls(request, route_name, *elements, **kw):
url = request.route_url(route_name, *elements, **kw)
home = get_host(request)
urls = url.split(":")
homes = home.split(":")
if urls[0] != homes[0]:
return ":".join([homes[0], urls[1:]])
return url
def format_datetime(v): def format_datetime(v):
if v.time() != datetime.time(0, 0): if v.time() != datetime.time(0, 0):
return dmyhms(v) return dmyhms(v)
...@@ -462,6 +472,7 @@ def main(global_config, **settings): ...@@ -462,6 +472,7 @@ def main(global_config, **settings):
config.add_request_method(is_devel, 'devel', reify=True) config.add_request_method(is_devel, 'devel', reify=True)
config.add_request_method(get_host, '_host', reify=True) config.add_request_method(get_host, '_host', reify=True)
config.add_request_method(get_host, 'home', reify=True) config.add_request_method(get_host, 'home', reify=True)
config.add_request_method(get_urls, 'route_urls', reify=True)
config.add_request_method(google_signin_client_id, config.add_request_method(google_signin_client_id,
'google_signin_client_id', reify=True) 'google_signin_client_id', reify=True)
config.add_request_method(google_signin_client_ids, config.add_request_method(google_signin_client_ids,
......
...@@ -68,11 +68,11 @@ class Home(BaseView): ...@@ -68,11 +68,11 @@ class Home(BaseView):
log.info(request.session.peek_flash()) log.info(request.session.peek_flash())
if modules_default: if modules_default:
if request.user and request.has_permission(modules_default): if request.user and request.has_permission(modules_default):
return HTTPFound(location=request.route_url(modules_default)) return HTTPFound(location=request.route_urls(modules_default))
elif request.user and len(request.session.peek_flash('error')) < 2: elif request.user and len(request.session.peek_flash('error')) < 2:
return HTTPFound(location=request.route_url(modules_default)) return HTTPFound(location=request.route_urls(modules_default))
elif not request.user: elif not request.user:
return HTTPFound(location=request.route_url(modules_default)) return HTTPFound(location=request.route_urls(modules_default))
logo = get_params('logo', "static/img/logo.png") logo = get_params('logo', "static/img/logo.png")
home_tpl = get_params("home_tpl") home_tpl = get_params("home_tpl")
if home_tpl: if home_tpl:
...@@ -87,7 +87,7 @@ class Home(BaseView): ...@@ -87,7 +87,7 @@ class Home(BaseView):
@view_config(context=HTTPForbidden, renderer='templates/403.pt') @view_config(context=HTTPForbidden, renderer='templates/403.pt')
def http_forbidden(request): def http_forbidden(request):
if not request.is_authenticated: if not request.is_authenticated:
next_url = request.route_url('login', _query={'next': request.url}) next_url = request.route_urls('login', _query={'next': request.url})
return HTTPSeeOther(location=next_url) return HTTPSeeOther(location=next_url)
request.response.status = 403 request.response.status = 403
......
...@@ -153,7 +153,7 @@ class BaseView(object): ...@@ -153,7 +153,7 @@ class BaseView(object):
self.add_schema = "" self.add_schema = ""
self.upload_schema = UploadSchema self.upload_schema = UploadSchema
self.table = "" self.table = ""
self.home = self.req.route_url('home')[:-1] self.home = self.req._host
self.buttons = None self.buttons = None
self.headers = None self.headers = None
self.bindings = {} self.bindings = {}
...@@ -168,10 +168,10 @@ class BaseView(object): ...@@ -168,10 +168,10 @@ class BaseView(object):
if msg: if msg:
self.ses.flash(msg, error) self.ses.flash(msg, error)
if self.headers: if self.headers:
return HTTPFound(location=self.req.route_url(self.list_route), return HTTPFound(location=self.req.route_urls(self.list_route),
headers=self.headers) headers=self.headers)
else: else:
return HTTPFound(location=self.req.route_url(self.list_route)) return HTTPFound(location=self.req.route_urls(self.list_route))
def form_validator(self, form, value): def form_validator(self, form, value):
pass pass
...@@ -218,7 +218,7 @@ class BaseView(object): ...@@ -218,7 +218,7 @@ class BaseView(object):
schema = self.list_schema() schema = self.list_schema()
schema = schema.bind(request=self.req) schema = schema.bind(request=self.req)
table = DeTable(schema, table = DeTable(schema,
action=self.req.route_url(self.list_route), action=self.req.route_urls(self.list_route),
action_suffix="/grid/act", action_suffix="/grid/act",
buttons=self.list_buttons, buttons=self.list_buttons,
request=self.req, request=self.req,
...@@ -618,4 +618,4 @@ def need_verify(): ...@@ -618,4 +618,4 @@ def need_verify():
def get_url_captcha(request): def get_url_captcha(request):
captcha = get_captcha(request) captcha = get_captcha(request)
return os.path.join(request.route_url('home'), 'captcha', captcha) return os.path.join(request.route_urls('home'), 'captcha', captcha)
...@@ -80,14 +80,14 @@ class AddSchema(colander.Schema): ...@@ -80,14 +80,14 @@ class AddSchema(colander.Schema):
# missing=colander.drop, # missing=colander.drop,
# widget=AutocompleteInputWidget( # widget=AutocompleteInputWidget(
# size=60, min_length=3, # size=60, min_length=3,
# values=f"{request.route_url('departemen')}/hon/act"), # values=f"{request.route_urls('departemen')}/hon/act"),
# oid="parent_nm", # oid="parent_nm",
# title="Induk", ) # title="Induk", )
self["parent_nm"].widget = widget.AutocompleteInputWidget( self["parent_nm"].widget = widget.AutocompleteInputWidget(
size=60, min_length=3, size=60, min_length=3,
requirements=(("typeahead", None), ("deform", None), requirements=(("typeahead", None), ("deform", None),
{"js": "opensipkd.base:static/js/form/departemen.js"}), {"js": "opensipkd.base:static/js/form/departemen.js"}),
values=f"{request.route_url('departemen')}/hon/act") values=f"{request.route_urls('departemen')}/hon/act")
if request.user.company_id: if request.user.company_id:
self["company_id"].widget = widget.HiddenWidget() self["company_id"].widget = widget.HiddenWidget()
self["company_id"].default = request.user.company_id self["company_id"].default = request.user.company_id
......
...@@ -118,4 +118,4 @@ def save_request(request, values, row=None): ...@@ -118,4 +118,4 @@ def save_request(request, values, row=None):
def route_list(request): def route_list(request):
return HTTPFound(location=request.route_url('home')) return HTTPFound(location=request.route_urls('home'))
...@@ -75,14 +75,14 @@ class AddSchema(colander.Schema): ...@@ -75,14 +75,14 @@ class AddSchema(colander.Schema):
# missing=colander.drop, # missing=colander.drop,
# widget=AutocompleteInputWidget( # widget=AutocompleteInputWidget(
# size=60, min_length=3, # size=60, min_length=3,
# values=f"{request.route_url('menu')}/hon/act"), # values=f"{request.route_urls('menu')}/hon/act"),
# oid="parent_nm", # oid="parent_nm",
# title="Induk", ) # title="Induk", )
# self["parent_nm"].widget = widget.AutocompleteInputWidget( # self["parent_nm"].widget = widget.AutocompleteInputWidget(
# size=60, min_length=3, # size=60, min_length=3,
# requirements=(("typeahead", None), ("deform", None), # requirements=(("typeahead", None), ("deform", None),
# {"js": "opensipkd.base:static/js/form/menu.js"}), # {"js": "opensipkd.base:static/js/form/menu.js"}),
# values=f"{request.route_url('menu')}/hon/act") # values=f"{request.route_urls('menu')}/hon/act")
# if request.user.company_id: # if request.user.company_id:
# self["company_id"].widget = widget.HiddenWidget() # self["company_id"].widget = widget.HiddenWidget()
# self["company_id"].default = request.user.company_id # self["company_id"].default = request.user.company_id
......
...@@ -132,7 +132,7 @@ class PartnerSchema(NamaSchema): ...@@ -132,7 +132,7 @@ class PartnerSchema(NamaSchema):
def after_bind(self, schema, kwargs): def after_bind(self, schema, kwargs):
request = kwargs["request"] request = kwargs["request"]
prefix = request.route_url("home") prefix = request.route_urls("home")
self["provinsi_id"].slave_url=f"{prefix}/dati2/select/act?provinsi_id=" self["provinsi_id"].slave_url=f"{prefix}/dati2/select/act?provinsi_id="
self["dati2_id"].slave_url=f"{prefix}/kecamatan/select/act?dati2_id=" self["dati2_id"].slave_url=f"{prefix}/kecamatan/select/act?dati2_id="
self["kecamatan_id"].slave_url = f"{prefix}/desa/select/act?kecamatan_id=" self["kecamatan_id"].slave_url = f"{prefix}/desa/select/act?kecamatan_id="
......
...@@ -146,7 +146,7 @@ def _show_error(request, msg): ...@@ -146,7 +146,7 @@ def _show_error(request, msg):
def show_error(request, msg): def show_error(request, msg):
_show_error(request, msg) _show_error(request, msg)
return HTTPFound(location=request.route_url('home')) return HTTPFound(location=request.route_urls('home'))
# def reg_buttons(): # def reg_buttons():
...@@ -310,16 +310,16 @@ class Registrasi(BaseView): ...@@ -310,16 +310,16 @@ class Registrasi(BaseView):
def view_register(self): def view_register(self):
if "g_state" in self.req.cookies: if "g_state" in self.req.cookies:
if "id_info" not in self.ses or not self.ses["id_info"]: if "id_info" not in self.ses or not self.ses["id_info"]:
return HTTPFound(location=self.req.route_url("login")) return HTTPFound(location=self.req.route_urls("login"))
request = self.req request = self.req
reg_form = get_params("reg_form") reg_form = get_params("reg_form")
if reg_form: if reg_form:
return HTTPFound(location=self.req.route_url(reg_form)) return HTTPFound(location=self.req.route_urls(reg_form))
self.bindings = dict(user=None) self.bindings = dict(user=None)
if request.user: if request.user:
return HTTPFound(location=request.route_url("profile")) return HTTPFound(location=request.route_urls("profile"))
return super(Registrasi, self).view_add() return super(Registrasi, self).view_add()
...@@ -365,7 +365,7 @@ class Registrasi(BaseView): ...@@ -365,7 +365,7 @@ class Registrasi(BaseView):
self.buttons = (btn_save, btn_cancel) self.buttons = (btn_save, btn_cancel)
reg_form = get_params("reg_form") reg_form = get_params("reg_form")
if reg_form: if reg_form:
return HTTPFound(location=self.req.route_url(reg_form)) return HTTPFound(location=self.req.route_urls(reg_form))
self.bindings = dict(user=self.req.user) self.bindings = dict(user=self.req.user)
resp = super(Registrasi, self).view_edit() resp = super(Registrasi, self).view_edit()
if not resp: if not resp:
......
...@@ -246,7 +246,7 @@ ...@@ -246,7 +246,7 @@
# #
# #
# def route_list(request): # def route_list(request):
# return HTTPFound(location=request.route_url('home')) # return HTTPFound(location=request.route_urls('home'))
# #
# #
# def reg_buttons(): # def reg_buttons():
...@@ -260,12 +260,12 @@ ...@@ -260,12 +260,12 @@
# def view_add(self): # def view_add(self):
# request = self.req # request = self.req
# if 'id_info' not in request.session: # if 'id_info' not in request.session:
# return HTTPFound(location=request.route_url("login")) # return HTTPFound(location=request.route_urls("login"))
# #
# if request.user: # if request.user:
# partner = Partner.query_email(request.user.email).first() # partner = Partner.query_email(request.user.email).first()
# if partner: # if partner:
# return HTTPFound(location=request.route_url("profile-external", # return HTTPFound(location=request.route_urls("profile-external",
# id=partner.id)) # id=partner.id))
# #
# id_info = request.session['id_info'] # id_info = request.session['id_info']
...@@ -301,7 +301,7 @@ ...@@ -301,7 +301,7 @@
# request.session.flash('Registrasi Sukses.') # request.session.flash('Registrasi Sukses.')
# if 'captcha' in request.session: # if 'captcha' in request.session:
# del(request.session['captcha']) # del(request.session['captcha'])
# return HTTPFound(location=request.route_url('home'), headers=headers) # return HTTPFound(location=request.route_urls('home'), headers=headers)
# #
# values = dict() # values = dict()
# values['primari'] = dict( # values['primari'] = dict(
...@@ -328,7 +328,7 @@ ...@@ -328,7 +328,7 @@
# query = query_id(request) # query = query_id(request)
# row = query.first() # row = query.first()
# if not row: # if not row:
# return HTTPFound(location=request.route_url("register-external")) # return HTTPFound(location=request.route_urls("register-external"))
# #
# form = get_form(request, RegEditSchema) # form = get_form(request, RegEditSchema)
# if request.POST: # if request.POST:
......
...@@ -18,7 +18,7 @@ from pyramid.view import view_config ...@@ -18,7 +18,7 @@ from pyramid.view import view_config
# from unggah import DbUpload # from unggah import DbUpload
def route_list(request, p={}): def route_list(request, p={}):
q = dict_to_str(p) q = dict_to_str(p)
return HTTPFound(location=request.route_url('upload-logo', _query=q)) return HTTPFound(location=request.route_urls('upload-logo', _query=q))
########## ##########
......
...@@ -247,7 +247,7 @@ ...@@ -247,7 +247,7 @@
# #
# #
# def route_list(request): # def route_list(request):
# return HTTPFound(location=request.route_url('departemen-user')) # return HTTPFound(location=request.route_urls('departemen-user'))
# #
# #
# def query_id(request): # def query_id(request):
......
...@@ -160,7 +160,7 @@ def save_request(values, request, row=None): ...@@ -160,7 +160,7 @@ def save_request(values, request, row=None):
def route_list(request): def route_list(request):
return HTTPFound(location=request.route_url('user-group')) return HTTPFound(location=request.route_urls('user-group'))
def session_failed(request, session_name): def session_failed(request, session_name):
...@@ -186,7 +186,7 @@ def view_add(request): ...@@ -186,7 +186,7 @@ def view_add(request):
c = form.validate(controls) c = form.validate(controls)
except ValidationFailure as e: except ValidationFailure as e:
request.session[SESS_ADD_FAILED] = e.render() request.session[SESS_ADD_FAILED] = e.render()
return HTTPFound(location=request.route_url('user-group-add')) return HTTPFound(location=request.route_urls('user-group-add'))
save_request(controls_dicted, request) save_request(controls_dicted, request)
return route_list(request) return route_list(request)
elif SESS_ADD_FAILED in request.session: elif SESS_ADD_FAILED in request.session:
...@@ -225,7 +225,7 @@ def view_edit(request): ...@@ -225,7 +225,7 @@ def view_edit(request):
c = form.validate(controls) c = form.validate(controls)
except ValidationFailure as e: except ValidationFailure as e:
request.session[SESS_EDIT_FAILED] = e.render() request.session[SESS_EDIT_FAILED] = e.render()
return HTTPFound(location=request.route_url('user-group-edit', return HTTPFound(location=request.route_urls('user-group-edit',
id=row.id)) id=row.id))
save_request(dict(controls), request, row) save_request(dict(controls), request, row)
return route_list(request) return route_list(request)
......
...@@ -168,11 +168,11 @@ class ViewLogin(BaseView): ...@@ -168,11 +168,11 @@ class ViewLogin(BaseView):
next_url = request.params.get('next', request.referrer) next_url = request.params.get('next', request.referrer)
login_tpl = get_params('login_tpl', 'templates/login.pt') login_tpl = get_params('login_tpl', 'templates/login.pt')
if not next_url: if not next_url:
next_url = request.route_url('home') next_url = request.route_urls('home')
if request.authenticated_userid: # (request): if request.authenticated_userid: # (request):
request.session.flash('Anda sudah login', 'error') request.session.flash('Anda sudah login', 'error')
return HTTPFound(location=f"{request.route_url('home')}") return HTTPFound(location=f"{request.route_urls('home')}")
schema = Login(validator=login_validator) schema = Login(validator=login_validator)
form = Form(schema, buttons=('login',)) form = Form(schema, buttons=('login',))
...@@ -187,7 +187,7 @@ class ViewLogin(BaseView): ...@@ -187,7 +187,7 @@ class ViewLogin(BaseView):
msg = 'Login gagal' msg = 'Login gagal'
set_user_log(msg, request, log, identity) set_user_log(msg, request, log, identity)
request.session.flash(msg, 'error') request.session.flash(msg, 'error')
return HTTPFound(location=request.route_url('login')) return HTTPFound(location=request.route_urls('login'))
values = dict(c) values = dict(c)
# start cek external module # start cek external module
...@@ -206,19 +206,19 @@ class ViewLogin(BaseView): ...@@ -206,19 +206,19 @@ class ViewLogin(BaseView):
except Exception as e: except Exception as e:
log.warn(str(e)) log.warn(str(e))
request.session.flash(str(e), "error") request.session.flash(str(e), "error")
return HTTPFound(location=request.route_url('login')) return HTTPFound(location=request.route_urls('login'))
else: else:
login = LoginUser(self.req) login = LoginUser(self.req)
if not login.login(values, user): if not login.login(values, user):
request.session.flash(login.message, "error") request.session.flash(login.message, "error")
next_url = f"{request.route_url('login')}?next={next_url}" next_url = f"{request.route_urls('login')}?next={next_url}"
return HTTPFound(location=next_url) return HTTPFound(location=next_url)
return redirect_login(request, user) return redirect_login(request, user)
elif 'register' in request.POST: elif 'register' in request.POST:
register_form = get_params("register_form", 'register') register_form = get_params("register_form", 'register')
return HTTPFound(location=request.route_url(register_form)) return HTTPFound(location=request.route_urls(register_form))
elif 'login failed' in request.session: elif 'login failed' in request.session:
r = dict(form=request.session['login failed']) r = dict(form=request.session['login failed'])
...@@ -236,13 +236,13 @@ class ViewLogin(BaseView): ...@@ -236,13 +236,13 @@ class ViewLogin(BaseView):
login_tpl, dict( login_tpl, dict(
form=form.render(), form=form.render(),
message=message, message=message,
url=request.route_url('login'), url=request.route_urls('login'),
next_url=next_url, next_url=next_url,
login=login, ), login=login, ),
request=request) request=request)
except Oauth2UserExc as e: except Oauth2UserExc as e:
request.session.flash(str(e), 'error') request.session.flash(str(e), 'error')
return HTTPFound(location=request.route_url('login')) return HTTPFound(location=request.route_urls('login'))
if user and user.status == 1: if user and user.status == 1:
return redirect_login(request, user) return redirect_login(request, user)
...@@ -250,7 +250,7 @@ class ViewLogin(BaseView): ...@@ -250,7 +250,7 @@ class ViewLogin(BaseView):
if login_tpl == 'templates/login.pt': if login_tpl == 'templates/login.pt':
return dict(form=form.render(), return dict(form=form.render(),
message=message, message=message,
url=request.route_url('login'), url=request.route_urls('login'),
next_url=next_url, next_url=next_url,
login=login, ) login=login, )
...@@ -259,7 +259,7 @@ class ViewLogin(BaseView): ...@@ -259,7 +259,7 @@ class ViewLogin(BaseView):
request=request, request=request,
value=dict(form=form.render(), value=dict(form=form.render(),
message=message, message=message,
url=request.route_url('login'), url=request.route_urls('login'),
next_url=next_url, next_url=next_url,
login=login, ), login=login, ),
) )
...@@ -272,7 +272,7 @@ def redirect_login(request, user): ...@@ -272,7 +272,7 @@ def redirect_login(request, user):
next_url = request.params.get('next') next_url = request.params.get('next')
if not next_url and request.matched_route.name == 'login': if not next_url and request.matched_route.name == 'login':
url = get_params('modules_default', 'home') url = get_params('modules_default', 'home')
return HTTPFound(location=request.route_url(url), return HTTPFound(location=request.route_urls(url),
headers=headers) headers=headers)
return HTTPFound(location=next_url, headers=headers) return HTTPFound(location=next_url, headers=headers)
...@@ -299,8 +299,8 @@ class Logout(BaseView): ...@@ -299,8 +299,8 @@ class Logout(BaseView):
form = self.get_form(LogoutSchema, buttons=(btn_cancel, btn_logout)) form = self.get_form(LogoutSchema, buttons=(btn_cancel, btn_logout))
if 'cancel' in request.POST or "home" in request.POST: if 'cancel' in request.POST or "home" in request.POST:
log.info(request.route_url('home')) log.info(request.route_urls('home'))
return HTTPFound(location=f"{request.route_url('home')}", ) return HTTPFound(location=f"{request.route_urls('home')}", )
elif "logout" in request.POST: elif "logout" in request.POST:
form = self.get_form(LogoutSchema, buttons=(btn_home,)) form = self.get_form(LogoutSchema, buttons=(btn_home,))
...@@ -343,7 +343,7 @@ def change_password_validator(form, value): ...@@ -343,7 +343,7 @@ def change_password_validator(form, value):
def view_change_password(request): def view_change_password(request):
if request.authenticated_userid: if request.authenticated_userid:
request.session.flash('Anda sudah login', 'error') request.session.flash('Anda sudah login', 'error')
return HTTPFound(location=f"{request.route_url('home')}") return HTTPFound(location=f"{request.route_urls('home')}")
schema = ChangePassword(validator=change_password_validator) schema = ChangePassword(validator=change_password_validator)
btn_save = Button('save', _('Simpan')) btn_save = Button('save', _('Simpan'))
...@@ -353,7 +353,7 @@ def view_change_password(request): ...@@ -353,7 +353,7 @@ def view_change_password(request):
if not request.POST: if not request.POST:
return dict(form=form.render()) return dict(form=form.render())
if 'save' not in request.POST: if 'save' not in request.POST:
return HTTPFound(location=request.route_url('login')) return HTTPFound(location=request.route_urls('login'))
items = request.POST.items() items = request.POST.items()
try: try:
c = form.validate(items) c = form.validate(items)
...@@ -365,7 +365,7 @@ def view_change_password(request): ...@@ -365,7 +365,7 @@ def view_change_password(request):
if not user or \ if not user or \
create_now() - user.security_code_date > one_hour: create_now() - user.security_code_date > one_hour:
request.session.flash('Security code expired', 'error') request.session.flash('Security code expired', 'error')
return HTTPFound(location=request.route_url('login')) return HTTPFound(location=request.route_urls('login'))
user.security_code = None user.security_code = None
UserService.set_password(user, c['new_password']) UserService.set_password(user, c['new_password'])
...@@ -373,7 +373,7 @@ def view_change_password(request): ...@@ -373,7 +373,7 @@ def view_change_password(request):
headers = get_login_headers(request, user) headers = get_login_headers(request, user)
request.session.flash('Password baru Anda sudah disimpan.') request.session.flash('Password baru Anda sudah disimpan.')
set_user_log("Change Password", request, log) set_user_log("Change Password", request, log)
return HTTPFound(location=f"{request.route_url('home')}", headers=headers) return HTTPFound(location=f"{request.route_urls('home')}", headers=headers)
###################### ######################
...@@ -403,12 +403,12 @@ def view_recreate_api_key(request): ...@@ -403,12 +403,12 @@ def view_recreate_api_key(request):
d = dict(api_key=request.user.api_key) d = dict(api_key=request.user.api_key)
return dict(form=form.render(appstruct=d)) return dict(form=form.render(appstruct=d))
if 'recreate' not in request.POST: if 'recreate' not in request.POST:
return HTTPFound(location=f"{request.route_url('home')}") return HTTPFound(location=f"{request.route_urls('home')}")
request.user.api_key = api_key = generate_api_key() request.user.api_key = api_key = generate_api_key()
DBSession.add(request.user) DBSession.add(request.user)
msg = 'API Key Anda yang baru {}'.format(api_key) msg = 'API Key Anda yang baru {}'.format(api_key)
request.session.flash(msg) request.session.flash(msg)
return HTTPFound(location=f"{request.route_url('home')}") return HTTPFound(location=f"{request.route_urls('home')}")
################## ##################
...@@ -508,7 +508,7 @@ def regenerate_security_code(user, hour=1.0): ...@@ -508,7 +508,7 @@ def regenerate_security_code(user, hour=1.0):
renderer='templates/reset-password.pt') renderer='templates/reset-password.pt')
def view_reset_password(request): def view_reset_password(request):
if request.authenticated_userid: if request.authenticated_userid:
return HTTPFound(location=f"{request.route_url('home')}") return HTTPFound(location=f"{request.route_urls('home')}")
resp = dict(title=_('Reset password')) resp = dict(title=_('Reset password'))
schema = ResetPassword(validator=reset_password_validator) schema = ResetPassword(validator=reset_password_validator)
...@@ -530,7 +530,7 @@ def view_reset_password(request): ...@@ -530,7 +530,7 @@ def view_reset_password(request):
send_email_security_code( send_email_security_code(
request, user, remain, 'Reset password', 'reset-password-body', request, user, remain, 'Reset password', 'reset-password-body',
'reset-password-body.tpl') 'reset-password-body.tpl')
return HTTPFound(location=request.route_url('reset-password-sent')) return HTTPFound(location=request.route_urls('reset-password-sent'))
resp['form'] = form.render() resp['form'] = form.render()
return resp return resp
......
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
} }
} }
let ${tableid}Language = { let ${tableid}Language = {
"search": "Cari: ", "search": "Cari: ",
"paginate": { "paginate": {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!