General error on editing a profile resulted in following traceback on karldev for UX1 under ux2/osf branch
Traceback (most recent call last):
File "/srv/karldev/dev/builds/ux2/src/karl/karl/errorpage.py", line 60, in __call__
resp = req.get_response(self.app)
File "/srv/karldev/dev/builds/ux2/eggs/WebOb-1.1.1-py2.7.egg/webob/request.py", line 1086, in get_response
application, catch_exc_info=False)
File "/srv/karldev/dev/builds/ux2/eggs/WebOb-1.1.1-py2.7.egg/webob/request.py", line 1055, in call_application
app_iter = application(self.environ, start_response)
File "/srv/karldev/dev/builds/ux2/src/karl/karl/errorlog.py", line 18, in middleware
return app(environ, start_response)
File "/srv/karldev/dev/builds/ux2/eggs/repoze.retry-0.9.4-py2.7.egg/repoze/retry/__init__.py", line 88, in __call__
app_iter = self.application(environ, replace_start_response)
File "/srv/karldev/dev/builds/ux2/eggs/repoze.zodbconn-0.14-py2.7.egg/repoze/zodbconn/connector.py", line 22, in __call__
self.next_app(environ, start_response),
File "/srv/karldev/dev/builds/ux2/eggs/repoze.tm2-1.0a5-py2.7.egg/repoze/tm/__init__.py", line 23, in __call__
result = self.application(environ, save_status_and_headers)
File "/srv/karldev/dev/builds/ux2/eggs/repoze.who-1.0.15-py2.7.egg/repoze/who/middleware.py", line 107, in __call__
app_iter = app(environ, wrapper.wrap_start_response)
File "/srv/karldev/dev/builds/ux2/eggs/pyramid-1.2.1-py2.7.egg/pyramid/router.py", line 176, in __call__
response = self.handle_request(request)
File "/srv/karldev/dev/builds/ux2/eggs/pyramid-1.2.1-py2.7.egg/pyramid/tweens.py", line 17, in excview_tween
response = handler(request)
File "/srv/karldev/dev/builds/ux2/eggs/pyramid-1.2.1-py2.7.egg/pyramid/router.py", line 153, in handle_request
response = view_callable(context, request)
File "/srv/karldev/dev/builds/ux2/eggs/pyramid-1.2.1-py2.7.egg/pyramid/config/views.py", line 523, in __call__
return view(context, request)
File "/srv/karldev/dev/builds/ux2/eggs/pyramid-1.2.1-py2.7.egg/pyramid/config/views.py", line 186, in _secured_view
return view(context, request)
File "/srv/karldev/dev/builds/ux2/eggs/pyramid-1.2.1-py2.7.egg/pyramid/config/views.py", line 292, in rendered_view
result = view(context, request)
File "/srv/karldev/dev/builds/ux2/eggs/pyramid_formish-0.2a1-py2.7.egg/pyramid_formish/zcml.py", line 168, in __call__
return controller()
File "/srv/karldev/dev/builds/ux2/src/osi/osi/views/people.py", line 40, in __call__
self.context, self.request
File "/srv/karldev/dev/builds/ux2/src/osi/osi/views/people.py", line 189, in _get_staff_change_password_url
'came_from': request.url})
TypeError: unsupported operand type(s) for +=: 'NoneType' and 'str'
This was due to the 'staff_ change_ password_ url', a setting specific to OSF, not being set in non-production environments. I have fixed the 'osi' customization package to return a '#' for the staff change password url in the event the setting is not present.