ckan / ckanext-pages

A simple builtin CMS for CKAN sites
GNU General Public License v3.0
52 stars 102 forks source link

Pages extension with CKAN 2.3 #18

Closed manuelpalacin closed 9 years ago

manuelpalacin commented 9 years ago

I have installed pages plugin in CKAN 2.3. It seems that all works fine but when you try to create a new page, it brokes and CKAN throws a 500 error. After that, if you go to the pages menu, you can see all the created pages but when you click on them it throws again the 500 error. Any idea? I have checked the log but it only points to something wrong in "ckanext.pages.controller:PagesController"

Thanks

joetsoi commented 9 years ago

do you have a full traceback of the log? It's impossible to tell without more detail.

manuelpalacin commented 9 years ago

Error - <type 'exceptions.AttributeError'>: 'module' object has no attribute 'RowProxy' URL: http://opengovernment.cloudapp.net/pages/legal7 File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/weberror/errormiddleware.py', line 162 in call app_iter = self.application(environ, sr_checker) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/webob/dec.py', line 147 in call resp = self.call_func(req, _args, _self.kwargs) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, _args, _kwargs) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/fanstatic/publisher.py', line 234 in call return request.get_response(self.app) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/webob/dec.py', line 147 in call resp = self.call_func(req, _args, _self.kwargs) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, _args, _kwargs) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/fanstatic/injector.py', line 54 in call response = request.get_response(self.app) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/beaker/middleware.py', line 73 in call return self.app(environ, start_response) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/beaker/middleware.py', line 155 in call return self.wrap_app(environ, session_start_response) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/routes/middleware.py', line 131 in call response = self.app(environ, start_response) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 125 in call response = self.dispatch(controller, environ, start_response) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 324 in dispatch return controller(environ, start_response) File '/usr/lib/ckan/default/src/ckan/ckan/lib/base.py', line 338 in call res = WSGIController.call(self, environ, start_response) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 221 in call response = self._dispatch_call() File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call response = self._inspect_call(func) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 107 in _inspect_call result = self._perform_call(func, args) File '/usr/lib/ckan/default/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 60 in _perform_call return func(args) File '/usr/lib/ckan/default/src/ckanext-pages/ckanext/pages/controller.py', line 198 in pages_show 'page': page,} File '/usr/lib/ckan/default/src/ckan/ckan/logic/init.py', line 424 in wrapped result = _action(context, data_dict, kw) File '/usr/lib/ckan/default/src/ckanext-pages/ckanext/pages/actions.py', line 131 in pages_show return _pages_show(context, data_dict) File '/usr/lib/ckan/default/src/ckanext-pages/ckanext/pages/actions.py', line 46 in _pages_show out = db.table_dictize(out, context) File '/usr/lib/ckan/default/src/ckanext-pages/ckanext/pages/db.py', line 88 in table_dictize if isinstance(obj, sa.engine.base.RowProxy): AttributeError: 'module' object has no attribute 'RowProxy'

CGI Variables

AUTH_TYPE: 'cookie' CKAN_CURRENT_URL: '/pages/legal7' CKAN_LANG: 'en' CKAN_LANG_IS_DEFAULT: True CONTENT_LENGTH: '0' CONTENT_TYPE: '; charset=utf-8' HTTPACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/_;q=0.8' HTTP_ACCEPT_ENCODING: 'gzip, deflate, sdch' HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.8,es;q=0.6,ca;q=0.4' HTTP_CACHE_CONTROL: 'max-age=0' HTTP_CONNECTION: 'close' HTTP_COOKIE: 'auth_tkt="5491eae975a66c2ba32789fac53f658155201157admin!userid_type:unicode"; auth_tkt="5491eae975a66c2ba32789fac53f658155201157admin!userid_type:unicode"; ckan=5063bb3cf1c7e2b46a32ed02a646b67dfa1fa4722c2e424cc2904b8188a0deb5b4bb9c64' HTTP_HOST: 'opengovernment.cloudapp.net' HTTP_REFERER: 'http://opengovernment.cloudapp.net/pages_edit' HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36' HTTP_X_FORWARDED_FOR: '88.1.88.146' PATH_INFO: '/pages/legal7' REMOTE_ADDR: '127.0.0.1' REMOTE_USER: u'admin' REMOTE_USER_DATA: 'userid_type:unicode' REMOTE_USER_TOKENS: [''] REQUEST_METHOD: 'GET' SERVER_NAME: '0.0.0.0' SERVER_PORT: '8080' SERVER_PROTOCOL: 'HTTP/1.0'

WSGI Variables

application: <fanstatic.publisher.Delegator object at 0x7f50b4191cd0> beaker.cache: <beaker.cache.CacheManager object at 0x7f50afa97ed0> beaker.get_session: <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0x7f50b4174750>> beaker.session: {'_accessed_time': 1428173300.997455, '_creation_time': 1428165387.693406} fanstatic.needed: <fanstatic.core.NeededResources object at 0x7f50af946750> paste.cookies: (, 'auth_tkt="5491eae975a66c2ba32789fac53f658155201157admin!userid_type:unicode"; auth_tkt="5491eae975a66c2ba32789fac53f658155201157admin!userid_type:unicode"; ckan=5063bb3cf1c7e2b46a32ed02a646b67dfa1fa4722c2e424cc2904b8188a0deb5b4bb9c64') paste.httpserver.thread_pool: <paste.httpserver.ThreadPool object at 0x7f50b88da990> paste.registry: <paste.registry.Registry object at 0x7f50b409d450> paste.throw_errors: True pylons.action_method: <bound method PagesController.pages_show of <ckanext.pages.controller.PagesController object at 0x7f50af94db10>> pylons.controller: <ckanext.pages.controller.PagesController object at 0x7f50af94db10> pylons.environ_config: {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons: <pylons.util.PylonsContext object at 0x7f50af94dcd0> pylons.routes_dict: {'action': u'pages_show', 'controller': u'ckanext.pages.controller:PagesController', 'page': u'/legal7'} repoze.who.api: <repoze.who.api.API object at 0x7f50b4149ed0> repoze.who.identity: <repoze.who identity (hidden, dict-like) at 139984519944592> repoze.who.logger: <logging.Logger object at 0x7f50b41910d0> repoze.who.plugins: {'ckan.lib.authenticator:UsernamePasswordAuthenticator': <ckan.lib.authenticator.UsernamePasswordAuthenticator object at 0x7f50af9adad0>, 'friendlyform': <FriendlyFormPlugin 139984594654032>, 'auth_tkt': <CkanAuthTktCookiePlugin 139984594654096>} routes.route: <routes.route.Route object at 0x7f50af9ad450> routes.url: <routes.util.URLGenerator object at 0x7f50afb068d0> webob._parsed_query_vars: (GET([]), '') webob.adhoc_attrs: {'response': <Response at 0x7f50afb06890 200 OK>, 'language': 'en-us'} wsgi process: 'Multithreaded' wsgiorg.routing_args: (<routes.util.URLGenerator object at 0x7f50afb068d0>, {'action': u'pages_show', 'controller': u'ckanext.pages.controller:PagesController', 'page': u'/legal7'})

joetsoi commented 9 years ago

many thanks, this is supe rhelpful, this is the smae problem as #12

manuelpalacin commented 9 years ago

Dear @joetsoi I can offer you access to our VPS (http://opengovernment.cloudapp.net) if you want to reproduce the problem and see the log. It is a development server, so no problem if you want to debug on it. Send me an email to info@smartgovs.com

Best regards

manuelpalacin commented 9 years ago

SOLUTION for CKAN 2.3 in Ubuntu 14.04 LTS:

Dear all, I found the solution to this issue. As @joetsoi explained in #12, it seems that: sa.engine.base.RowProxy was moved to sa.engine.RowProxy

So, we just need to edit file: /usr/lib/ckan/default/src/ckanext-pages/ckanext/pages/db.py', line 88

and change "sa.engine.base.RowProxy" for "sa.engine.RowProxy"

This works fine for me in my servers using CKAN 2.3 and Ubuntu 14.04 LTS.

Can anyone fix the problem in ckan-pages extension github master branch? Or it is solved in other branches like travis? Let me know if I can help you.

Best regards!

joetsoi commented 9 years ago

done