-
-
Save oventura/73f4838448c86b71f0c4 to your computer and use it in GitHub Desktop.
Has no member named "resources"
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class DatalocaleDatasetForm(SingletonPlugin): | |
""" | |
- ``IConfigurer`` allows us to override configuration normally | |
found in the ``ini``-file. Here we use it to specify where the | |
form templates can be found. | |
- ``IDatasetForm`` allows us to provide a custom form for a dataset | |
based on the type_name that may be set for a package. Where the | |
type_name matches one of the values in package_types then this | |
class will be used. | |
- ``IGenshiStreamFilter`` hook into Pylons template rendering. | |
- ``IActions`` Allow adding of actions to the logic layer (API). | |
""" | |
implements(IDatasetForm, inherit=True) | |
implements(IConfigurer) | |
def update_config(self, config): | |
""" | |
This IConfigurer implementation causes CKAN to look in the | |
```templates``` directory when looking for the package_form() | |
""" | |
here = os.path.dirname(__file__) | |
rootdir = os.path.dirname(os.path.dirname(here)) | |
template_dir = os.path.join(rootdir, 'ckanext', | |
'datalocale', 'theme', 'templates') | |
config['extra_template_paths'] = ','.join([template_dir, | |
config.get('extra_template_paths', '')]) | |
def package_form(self): | |
return 'forms/dataset_form.html' | |
def new_template(self): | |
return 'package/new.html' | |
def comments_template(self): | |
return 'package/comments.html' | |
def search_template(self): | |
return 'package/search.html' | |
def read_template(self): | |
return 'forms/read.html' | |
def history_template(self): | |
return 'package/history.html' | |
def is_fallback(self): | |
return True | |
def package_types(self): | |
return ["dataset"] | |
def setup_template_variables(self, context, data_dict, package_type=None): | |
from pylons import config | |
''' Translation ''' | |
ckan_lang = pylons.request.environ['CKAN_LANG'] | |
ckan_lang_fallback = pylons.config.get('ckan.locale_default', 'fr') | |
c.groups_available = c.userobj and c.userobj.get_groups('organization') or [] | |
c.licences = [('', '')] + base.model.Package.get_license_options() | |
c.is_sysadmin = authz.Authorizer().is_sysadmin(c.user) | |
c.publishers_available = c.groups_available | |
c.contributor = c.userobj | |
def db_to_form_schema(data, package_type=None): | |
schema = logic.schema.package_form_schema() | |
schema.update({ | |
'id': [ignore_missing, unicode], | |
'tags': { | |
'__extras': [keep_extras, free_tags_only] | |
}, | |
'isopen': [ignore_missing] | |
}) | |
schema['groups'].update({ | |
'name': [not_empty, unicode], | |
'title': [ignore_missing], | |
'capacity': [ignore_missing, unicode] | |
}) | |
schema['resources'].update({ | |
'created': [ignore_missing], | |
'position': [not_empty], | |
'last_modified': [ignore_missing], | |
'cache_last_updated': [ignore_missing], | |
'webstore_last_updated': [ignore_missing] | |
}) | |
return schema | |
def check_data_dict(self, data_dict): | |
return |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-------------------- Restarting -------------------- | |
Starting server in PID 4618. | |
serving on 0.0.0.0:5000 view at http://127.0.0.1:5000 | |
2012-05-23 11:46:23,855 INFO [ckan.new_authz] Using auth profile at ckan.logic.auth.publisher | |
/home/atos/pyenv/lib/python2.6/site-packages/sqlalchemy/sql/expression.py:1802: SAWarning: The IN-predicate on "term_translation.term" was invoked with an empty sequence. This results in a contradiction, which nonetheless can be expensive to evaluate. Consider alternative strategies for improved performance. | |
return self._in_impl(operators.in_op, operators.notin_op, other) | |
Error - <class 'genshi.template.eval.UndefinedError'>: {u'maintainer': u'', u'name': u'test2', 'isopen': False, u'author': u'', u'author_email': u'', u'notes': u'', u'title': u'test2', u'maintainer_email': u'', u'url': u'', u'state': u'active', u'version': u'', 'groups': [{u'title': u'Atos', u'capacity': u'public', u'id': u'b917850d-53fa-4c8c-a0df-2b4ff239c9e7', u'name': u'atos'}], u'license_id': u'', u'id': u'1881914f-995d-4588-8521-fc32eec25aa5', 'extras': [{u'value': '"oceane"', u'key': u'dct:contributor', '__extras': {u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7', u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5'}}, {u'value': '""', u'key': u'dct:creator', '__extras': {u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7', u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5'}}, {u'value': '""', u'key': u'dct:publisher', '__extras': {u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7', u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5'}}, {u'value': '""', u'key': u'dct:temporal', '__extras': {u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5', u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7'}}, {u'value': '""', u'key': u'dcterms:references', '__extras': {u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7', u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5'}}, {u'value': '""', u'key': u'maj', '__extras': {u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5', u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7'}}]} has no member named "resources" | |
URL: http://192.168.56.101:5000/user/oceane | |
File '/usr/lib/pymodules/python2.6/weberror/errormiddleware.py', line 162 in __call__ | |
app_iter = self.application(environ, sr_checker) | |
File '/usr/lib/pymodules/python2.6/beaker/middleware.py', line 73 in __call__ | |
return self.app(environ, start_response) | |
File '/usr/lib/pymodules/python2.6/beaker/middleware.py', line 152 in __call__ | |
return self.wrap_app(environ, session_start_response) | |
File '/usr/lib/pymodules/python2.6/routes/middleware.py', line 130 in __call__ | |
response = self.app(environ, start_response) | |
File '/usr/lib/pymodules/python2.6/pylons/wsgiapp.py', line 125 in __call__ | |
response = self.dispatch(controller, environ, start_response) | |
File '/usr/lib/pymodules/python2.6/pylons/wsgiapp.py', line 324 in dispatch | |
return controller(environ, start_response) | |
File '/home/atos/pyenv/src/ckan/ckan/lib/base.py', line 218 in __call__ | |
res = WSGIController.__call__(self, environ, start_response) | |
File '/usr/lib/pymodules/python2.6/pylons/controllers/core.py', line 221 in __call__ | |
response = self._dispatch_call() | |
File '/usr/lib/pymodules/python2.6/pylons/controllers/core.py', line 172 in _dispatch_call | |
response = self._inspect_call(func) | |
File '/usr/lib/pymodules/python2.6/pylons/controllers/core.py', line 107 in _inspect_call | |
result = self._perform_call(func, args) | |
File '/usr/lib/pymodules/python2.6/pylons/controllers/core.py', line 60 in _perform_call | |
return func(**args) | |
File '/home/atos/pyenv/src/ckan/ckan/controllers/user.py', line 109 in read | |
return render('user/read.html') | |
File '/home/atos/pyenv/src/ckan/ckan/lib/base.py', line 145 in render | |
return cached_template(template_name, render_template, loader_class=loader_class) | |
File '/usr/lib/pymodules/python2.6/pylons/templating.py', line 249 in cached_template | |
return render_func() | |
File '/home/atos/pyenv/src/ckan/ckan/lib/base.py', line 99 in render_template | |
return literal(stream.render(method=method, encoding=None, strip_whitespace=True)) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/core.py', line 183 in render | |
return encode(generator, method=method, encoding=encoding, out=out) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 57 in encode | |
return _encode(''.join(list(iterator))) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 339 in __call__ | |
for kind, data, pos in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 670 in __call__ | |
for kind, data, pos in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 771 in __call__ | |
for kind, data, pos in chain(stream, [(None, None, None)]): | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 586 in __call__ | |
for ev in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/core.py', line 288 in _ensure | |
for event in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 618 in _include | |
for event in tmpl.generate(ctxt, **vars): | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 618 in _include | |
for event in tmpl.generate(ctxt, **vars): | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 618 in _include | |
for event in tmpl.generate(ctxt, **vars): | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 605 in _include | |
for event in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/markup.py', line 378 in _match | |
ctxt, start=idx + 1, **vars): | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/markup.py', line 327 in _match | |
for event in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 565 in _flatten | |
result = _eval_expr(data, ctxt, vars) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 277 in _eval_expr | |
retval = expr.evaluate(ctxt) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/eval.py', line 178 in evaluate | |
return eval(self.code, _globals, {'__data__': data}) | |
File '/home/atos/pyenv/src/ckan/ckan/templates/_util.html', line 63 in <Expression u"h.snippet('snippets/package_list.html', packages=packages)"> | |
${h.snippet('snippets/package_list.html', packages=packages)} | |
File '/home/atos/pyenv/src/ckan/ckan/lib/helpers.py', line 767 in snippet | |
return base.render_snippet(template_name, **kw) | |
File '/home/atos/pyenv/src/ckan/ckan/lib/base.py', line 58 in render_snippet | |
output = render(template_name, extra_vars=kw, cache_force=cache_force) | |
File '/home/atos/pyenv/src/ckan/ckan/lib/base.py', line 145 in render | |
return cached_template(template_name, render_template, loader_class=loader_class) | |
File '/usr/lib/pymodules/python2.6/pylons/templating.py', line 249 in cached_template | |
return render_func() | |
File '/home/atos/pyenv/src/ckan/ckan/lib/base.py', line 99 in render_template | |
return literal(stream.render(method=method, encoding=None, strip_whitespace=True)) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/core.py', line 183 in render | |
return encode(generator, method=method, encoding=encoding, out=out) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 57 in encode | |
return _encode(''.join(list(iterator))) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 339 in __call__ | |
for kind, data, pos in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 670 in __call__ | |
for kind, data, pos in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 771 in __call__ | |
for kind, data, pos in chain(stream, [(None, None, None)]): | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/output.py', line 586 in __call__ | |
for ev in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/core.py', line 288 in _ensure | |
for event in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 605 in _include | |
for event in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/markup.py', line 327 in _match | |
for event in stream: | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 585 in _flatten | |
stream = _apply_directives(data[1], data[0], ctxt, vars) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 262 in _apply_directives | |
stream = directives[0](iter(stream), directives[1:], ctxt, **vars) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/directives.py', line 400 in __call__ | |
value = _eval_expr(self.expr, ctxt, vars) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/base.py', line 277 in _eval_expr | |
retval = expr.evaluate(ctxt) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/eval.py', line 178 in evaluate | |
return eval(self.code, _globals, {'__data__': data}) | |
File '/home/atos/pyenv/src/ckan/ckan/templates/snippets/package_list.html', line 18 in <Expression u'package.resources'> | |
<py:if test="package.resources"> | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/eval.py', line 324 in lookup_attr | |
val = cls.undefined(key, owner=obj) | |
File '/home/atos/pyenv/lib/python2.6/site-packages/genshi/template/eval.py', line 410 in undefined | |
raise UndefinedError(key, owner=owner) | |
UndefinedError: {u'maintainer': u'', u'name': u'test2', 'isopen': False, u'author': u'', u'author_email': u'', u'notes': u'', u'title': u'test2', u'maintainer_email': u'', u'url': u'', u'state': u'active', u'version': u'', 'groups': [{u'title': u'Atos', u'capacity': u'public', u'id': u'b917850d-53fa-4c8c-a0df-2b4ff239c9e7', u'name': u'atos'}], u'license_id': u'', u'id': u'1881914f-995d-4588-8521-fc32eec25aa5', 'extras': [{u'value': '"oceane"', u'key': u'dct:contributor', '__extras': {u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7', u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5'}}, {u'value': '""', u'key': u'dct:creator', '__extras': {u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7', u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5'}}, {u'value': '""', u'key': u'dct:publisher', '__extras': {u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7', u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5'}}, {u'value': '""', u'key': u'dct:temporal', '__extras': {u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5', u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7'}}, {u'value': '""', u'key': u'dcterms:references', '__extras': {u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7', u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5'}}, {u'value': '""', u'key': u'maj', '__extras': {u'package_id': u'1881914f-995d-4588-8521-fc32eec25aa5', u'revision_id': u'e69b657b-6282-42df-94bd-5e8b8274b6c7'}}]} has no member named "resources" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment