{22} Trac tickets (2647 matches)
Results (1501 - 1600 of 2647)
Id | Type | Owner | Reporter | Milestone | Status | Resolution | Summary | Description | Posixtime | Modifiedtime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#1200 | enhancement | pudo | closed | duplicate | Port PDEU theme to CKAN.net |
PDEU has a newer layout which could be adapted to also be used on ckan.net. For this, things should be cleaned up, copied to the ckanext-ckan.net repo as needed and re-colored the core CKAN color scheme. Maybe we could have this coincide with a CKAN rename? |
1308824017000000 | 1311180218000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1202 | enhancement | rgrp | rolf | closed | invalid | Links to datapkg utility don't lead to info about it |
In the presentation of data packages, the link in "The information on this page and the downloads / resources are also available using the datapkg command line utility." (http://knowledgeforge.net/ckan/doc/datapkg/install.html) ends up at the home page of ckan.org Perhaps link it to https://bitbucket.org/okfn/datapkg/overview for now, to save some searching for people who want to find out more? |
1309263613000000 | 1315821804000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1204 | enhancement | timmcnamara | closed | invalid | renaming packages seems to result in a server error |
When renaming a package, and doing other changes at the same time an error is reported. However, the changes seem to go through fine. ENV:
|
1309303816000000 | 1311179980000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1205 | defect | kindly | dread | closed | fixed | db upgrade problem on cz.ckan.net |
When upgrading database for cz.ckan.net (psql.okfn.org/cz.okfn.org) an error occurred (see below). cz.ckan.net has been running on eu3 and this updrade was part of moving it to eu19, with a more recent version of ckan. In the meantime I've reverted the db to the old version (pre-upgrade). cz.ckan.net is not working properly until this is fixed. okfn@eu19:~$ paster --plugin ckan db upgrade --config=/etc/ckan/cz/cz.ini /usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/url.py:105: SADeprecationWarning: The SQLAlchemy PostgreSQL dialect has been renamed from 'postgres' to 'postgresql'. The new URL format is postgresql[+driver]://<user>:<pass>@<host>/<dbname> module = __import__('sqlalchemy.dialects.%s' % (dialect, )).dialects 2011-06-29 09:07:41,294 INFO [migrate.versioning.api] 28 -> 29... /usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/reflection.py:46: SAWarning: Skipped unsupported reflection of expression-based index idx_pkg_lname ret = fn(self, con, *args, **kw) /usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/reflection.py:46: SAWarning: Skipped unsupported reflection of expression-based index idx_pkg_slname ret = fn(self, con, *args, **kw) /usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/reflection.py:46: SAWarning: Skipped unsupported reflection of expression-based index idx_pkg_suname ret = fn(self, con, *args, **kw) /usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/reflection.py:46: SAWarning: Skipped unsupported reflection of expression-based index idx_pkg_uname ret = fn(self, con, *args, **kw) Traceback (most recent call last): File "/usr/bin/paster", line 18, in <module> command.run() File "/usr/lib/pymodules/python2.6/paste/script/command.py", line 84, in run invoke(command, command_name, options, args[1:]) File "/usr/lib/pymodules/python2.6/paste/script/command.py", line 123, in invoke exit_code = runner.run(args) File "/usr/lib/pymodules/python2.6/paste/script/command.py", line 218, in run result = self.command() File "/usr/lib/pymodules/python2.6/ckan/lib/cli.py", line 84, in command model.repo.upgrade_db() File "/usr/lib/pymodules/python2.6/ckan/model/__init__.py", line 163, in upgrade_db mig.upgrade(self.metadata.bind, self.migrate_repository, version=version) File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/api.py", line 185, in upgrade return _migrate(url, repository, version, upgrade=True, err=err, **opts) File "<string>", line 2, in _migrate File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/util/__init__.py", line 160, in with_engine return f(*a, **kw) File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/api.py", line 364, in _migrate schema.runchange(ver, change, changeset.step) File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/schema.py", line 83, in runchange change.run(self.engine, step) File "/usr/lib/pymodules/python2.6/ckan_deps/migrate/versioning/script/py.py", line 140, in run script_func(engine) File "/usr/lib/pymodules/python2.6/ckan/migration/versions/029_version_groups.py", line 152, in upgrade migrate_engine.execute(q) File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1788, in execute return connection.execute(statement, *multiparams, **params) File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1191, in execute params) File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1271, in _execute_clauseelement return self.__execute_context(context) File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1302, in __execute_context context.parameters[0], context=context) File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1401, in _cursor_execute context) File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/base.py", line 1394, in _cursor_execute context) File "/usr/lib/pymodules/python2.6/ckan_deps/sqlalchemy/engine/default.py", line 299, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.IntegrityError: (IntegrityError) insert or update on table "package_group_revision" violates foreign key constraint "package_group_revision_continuity_id_fkey" DETAIL: Key (continuity_id)=(7f373978-40a0-4848-bdc9-018ad213aa0b) is not present in table "package_group". 'INSERT INTO package_group_revision (id, package_id, group_id, state, revision_id, continuity_id) VALUES (%(id)s, %(package_id)s, %(group_id)s, %(state)s, %(revision_id)s, %(continuity_id)s)' {'state': u'active', 'package_id': u'14d76e9e-028c-49c1-955b-ef30d4abb970', 'continuity_id': u'7f373978-40a0-4848-bdc9-018ad213aa0b', 'revision_id': u'24a11f58-2ff9-46f3-b113-0bf7f0baf254', 'group_id': u'4b832199-b8e3-4989-9b5d-de8dd6322612', 'id': u'7a3863bd-3054-40c8-bb3d-68b73096c108'} |
1309339700000000 | 1310568631000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1206 | defect | wwaites | dread | closed | fixed | "Content-Type json" header scuppers package POST |
Compare these two requests to create a package: curl http://test.ckan.net/api/rest/package -d '{name:"test"}' -H 'Content-Type: application/json' -H 'X-CKAN-API-KEY: tester' curl http://test.ckan.net/api/rest/package -d '{name:"test"}' -H 'X-CKAN-API-KEY: tester' The second one gets the payload through (ckan log): Retrieving request params: UnicodeMultiDict([('{name:"test"}', u'')]) But the first one causes a ServerError? because the payload (name:"test") doesn't make it to request.POST or request.params: Retrieving request params: UnicodeMultiDict([]) The only difference is the "ContentType?: application/json" header, which seems a reasonable thing to include. Javascript lib backbone.js (for example) inserts this automatically. So why does this header cause the payload to not get through to the request object? |
1309344348000000 | 1309450216000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1207 | enhancement | dread | dread | closed | fixed | ckanclient.package_entity_get should raise more specific exception |
When package does not exist in ckan catalogue, ckanclient.package_entity_get should raise more specific exception, such as CkanNotFoundError? instead of generic CkanApiError?. |
1309515582000000 | 1311325343000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1208 | enhancement | rgrp | rgrp | ckan-sprint-2011-10-28 | closed | fixed | Webstore: a datastore with web API |
Current code is here: https://github.com/okfn/webstore. API SpecReadTwo basic ways to query:: GET: /{owner}/{db-name}/?sql=... GET: /{owner}/{db-name}/?table=...&attr=value&attr=value&limit=... Returns:: { u'keys': [u'id', u'name'], u'data': [ [1, u'jones'], [u'aaa', u'jones'] ] } WritePOST to::
Payload is json data structured as follows::
Authentication and AuthorizationAuthentication: use basic auth header. Authorization:
Possible future: config file can specify a python method (TODO: method signature) Integration with Other SystemsTODO: Specify how to delegate authenatication to user database in some other system. |
1309804460000000 | 1312191646000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1209 | defect | kindly | closed | fixed | sort out rendering of formalchemy package preview |
Got broken due to the moderated edits changes #1141. Need to make sure preview works. |
1309817240000000 | 1310571715000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1210 | defect | dread | dread | ckan-v1.5-sprint-4 | closed | fixed | POST application/json error handling with newer WebOb |
WebOb? from v1.0.7 has some interesting new behaviour with reading request data for different Content-Types:
Example: Module ckan.controllers.api:206 in create << log.debug('create: %s' % (context)) try: request_data = self._get_request_data() except ValueError, inst: response.status_int = 400 >> request_data = self._get_request_data() Module ckan.lib.base:149 in _get_request_data << cls.log.debug('Retrieving request params: %r' % request.params) cls.log.debug('Retrieving request POST: %r' % request.POST) cls.log.debug('Retrieving request POST body: %r' % request.body) if request.POST: try: >> cls.log.debug('Retrieving request POST body: %r' % request.body) Module paste.registry:137 in __getattr__ << def __getattr__(self, attr): return getattr(self._current_obj(), attr) def __setattr__(self, attr, value): >> return getattr(self._current_obj(), attr) Module webob.request:470 in _body__get << Return the content of the request body. """ self.make_body_seekable() # we need this to have content_length r = self.body_file.read(self.content_length) self.body_file.seek(0) >> self.make_body_seekable() # we need this to have content_length Module webob.request:697 in make_body_seekable << self.body_file_raw.seek(0) else: self.copy_body() >> self.copy_body() Module webob.request:714 in copy_body << self.body = self.body_file_raw.read(length) elif self.is_body_readable: self.body = self.body_file_raw.read() self._copy_body_tempfile() else: >> self.body = self.body_file_raw.read() Module webob.request:1190 in read << def read(self, size=-1): body = self._get_body() if size < 0: v = body[self.position:] >> body = self._get_body() Module webob.request:1207 in _get_body << self._body = _encode_multipart(self.vars, self.content_type) else: assert 0, ('Bad content type: %r' % self.content_type) return self._body >> assert 0, ('Bad content type: %r' % self.content_type) AssertionError: Bad content type: '; charset=utf-8' |
1309949451000000 | 1309974781000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1211 | enhancement | kindly | kindly | ckan-v1.5 | closed | fixed | [super] Drupal integration |
Sub-tasks / tickets:
|
1309958442000000 | 1315948703000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1214 | defect | dread | dread | closed | worksforme | API improvements (following javascript use) |
Notes on the CKAN API from Aron:
|
1309975222000000 | 1314029628000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1215 | defect | dread | closed | fixed | Edit Resources table - removing all rows prevents adding them again |
I'm not sure if this was reported earlier, but I have found a minor bug in the "Add new package" form. As far as I can see this bug exists in v1.3.2 and also in v1.4.1a (that runs on ckan.net). This is a problem with adding new resources in "Resources" section. To reproduce the bug do the following:
The simplest solution to this bug will be to hide the "Remove this row" link if there is only one row. |
1310133224000000 | 1310385485000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1217 | defect | dread | dread | ckan-sprint-2011-11-07 | closed | invalid | Diff exception |
Exception raised doing this particular diff. ... Module ckan.controllers.revision:142 in diff << if c.diff_entity == 'package': c.pkg = model.Package.by_name(id) diff = c.pkg.diff(c.revision_to, c.revision_from) elif c.diff_entity == 'group': c.group = model.Group.by_name(id) >> diff = c.pkg.diff(c.revision_to, c.revision_from) Module ckan.model.package:449 in diff << display_id = to_obj_rev.tag.name elif obj_class.__name__ == 'PackageExtra': display_id = to_obj_rev.key else: display_id = related_obj_id[:4] >> display_id = to_obj_rev.key AttributeError: 'NoneType' object has no attribute 'key' Seems to be to do with this particular extra key: [<PackageExtraRevision id=ba1f3b3e-f61f-4924-bae0-ec3dd2163ae4 package_id=febe4da9-5874-4411-a7da-b497fdebf739 key=namespace value=http://www.sudoc.fr/ state=active revision_id=5ec8e730-c73d-4f1c-989b-2e015eb3d315 continuity_id=ba1f3b3e-f61f-4924-bae0-ec3dd2163ae4 expired_id=None revision_timestamp=2011-07-08 13:48:11.027260 expired_timestamp=9999-12-31 00:00:00 current=True>] Is it because it was created between the from_revision and to_revision? |
1310375498000000 | 1320663277000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1218 | enhancement | dread | minspamboks@… | ckan-sprint-2011-10-28 | closed | fixed | Colour the History tab icon |
Change the color of the "History" tab icon to yellowish, like the rest of the icons in the other tabs ("View" and "Edit", "Authorization"). ReasoningWhen you view a data package, for instance http://ckan.net/package/thesaurus-w, you will see "View", "Edit", "History" tabs on the top. "History" tab has a black-and-white icon which makes it look like an inactive/disabled tab (since the text is also grayed out when the tab is not selected). This is not a major issue, but it is a little bit confusing for the users. This icon exists in v1.3.2 and also in v1.4.1a (that runs on ckan.net). The simple solution would be to change the color of the "History" tab icon and give it the same yellowish color like the rest of the icons in the other tabs (e.g. "View" and "Edit"). |
1310375768000000 | 1310389390000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1219 | defect | timmcnamara | closed | fixed | CSS issues on IE7 |
As reported on ckan-dev:
|
1310423688000000 | 1310740534000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1221 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Password reset tidy up |
|
1310475661000000 | 1310556607000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1222 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Mailer has no tests | 1310479136000000 | 1310556618000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1223 | enhancement | pudo | pudo | closed | fixed | Caching of static files |
StaticURLParser can have caching - use it |
1310573854000000 | 1310573893000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1225 | enhancement | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Tool for mass tag changes |
Using ckanapi |
1310642161000000 | 1310642407000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1226 | defect | dread | closed | worksforme | Genshi stream exception |
IndexError? exception in genshi.filters.i18n keeps popping up daily. e.g. ... Module ckan.controllers.authorization_group:28 in index << items_per_page=20 ) return render('authorization_group/index.html') def read(self, id): >> return render('authorization_group/index.html') Module ckan.lib.base:74 in render << return cached_template(template_name, render_template, cache_key=cache_key, cache_type=cache_type, cache_expire=cache_expire) #, ns_options=('method'), method=method) >> cache_type=cache_type, cache_expire=cache_expire) Module pylons.templating:249 in cached_template << return content else: return render_func() >> return render_func() Module ckan.lib.base:63 in render_template << stream = item.filter(stream) return literal(stream.render(method=method, encoding=None)) if 'Pragma' in response.headers: >> return literal(stream.render(method=method, encoding=None)) Module genshi.core:183 in render << method = self.serializer or 'xml' generator = self.serialize(method=method, **kwargs) return encode(generator, method=method, encoding=encoding, out=out) def select(self, path, namespaces=None, variables=None): >> return encode(generator, method=method, encoding=encoding, out=out) Module genshi.output:57 in encode << _encode = lambda string: string if out is None: return _encode(''.join(list(iterator))) for chunk in iterator: out.write(_encode(chunk)) >> return _encode(''.join(list(iterator))) Module genshi.output:339 in __call__ << for filter_ in self.filters: stream = filter_(stream) for kind, data, pos in stream: cached = cache_get((kind, data)) if cached is not None: >> for kind, data, pos in stream: Module genshi.output:670 in __call__ << _gen_prefix = _gen_prefix().next for kind, data, pos in stream: output = cache_get((kind, data)) if output is not None: >> for kind, data, pos in stream: Module genshi.output:771 in __call__ << push_text = textbuf.append pop_text = textbuf.pop for kind, data, pos in chain(stream, [(None, None, None)]): if kind is TEXT: >> for kind, data, pos in chain(stream, [(None, None, None)]): Module genshi.output:586 in __call__ << def __call__(self, stream): prev = (None, None, None) for ev in stream: if prev[0] is START: if ev[0] is END: >> for ev in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.filters.transform:686 in _unmark << def _unmark(self, stream): for mark, event in stream: kind = event[0] if not (kind is None or kind is ATTR or kind is BREAK): >> for mark, event in stream: Module genshi.filters.transform:1145 in __call__ << :param stream: The marked event stream to filter """ for mark, event in stream: yield mark, event if mark is ENTER: >> for mark, event in stream: Module genshi.filters.transform:714 in __call__ << stream = iter(stream) next = stream.next for mark, event in stream: if mark is None: yield mark, event >> for mark, event in stream: Module genshi.filters.transform:682 in _mark << def _mark(self, stream): for event in stream: yield OUTSIDE, event >> for event in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.filters.transform:686 in _unmark << def _unmark(self, stream): for mark, event in stream: kind = event[0] if not (kind is None or kind is ATTR or kind is BREAK): >> for mark, event in stream: Module ckanext.googleanalytics.plugin:62 in download_adder << (downloaded %s times)</span>''' count = None for mark, (kind, data, pos) in stream: if mark and kind == START: href = data[1].get('href') >> for mark, (kind, data, pos) in stream: Module genshi.filters.transform:714 in __call__ << stream = iter(stream) next = stream.next for mark, event in stream: if mark is None: yield mark, event >> for mark, event in stream: Module genshi.filters.transform:682 in _mark << def _mark(self, stream): for event in stream: yield OUTSIDE, event >> for event in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.filters.transform:686 in _unmark << def _unmark(self, stream): for mark, event in stream: kind = event[0] if not (kind is None or kind is ATTR or kind is BREAK): >> for mark, event in stream: Module genshi.filters.transform:1175 in __call__ << """ callable_value = hasattr(self.value, '__call__') for mark, (kind, data, pos) in stream: if mark is ENTER: if callable_value: >> for mark, (kind, data, pos) in stream: Module genshi.filters.transform:714 in __call__ << stream = iter(stream) next = stream.next for mark, event in stream: if mark is None: yield mark, event >> for mark, event in stream: Module genshi.filters.transform:682 in _mark << def _mark(self, stream): for event in stream: yield OUTSIDE, event >> for event in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.filters.transform:686 in _unmark << def _unmark(self, stream): for mark, event in stream: kind = event[0] if not (kind is None or kind is ATTR or kind is BREAK): >> for mark, event in stream: Module genshi.filters.transform:1145 in __call__ << :param stream: The marked event stream to filter """ for mark, event in stream: yield mark, event if mark is ENTER: >> for mark, event in stream: Module genshi.filters.transform:714 in __call__ << stream = iter(stream) next = stream.next for mark, event in stream: if mark is None: yield mark, event >> for mark, event in stream: Module genshi.filters.transform:682 in _mark << def _mark(self, stream): for event in stream: yield OUTSIDE, event >> for event in stream: Module genshi.template.base:618 in _include << tmpl = self.loader.load(href, relative_to=event[2][0], cls=cls or self.__class__) for event in tmpl.generate(ctxt, **vars): yield event except TemplateNotFound: >> for event in tmpl.generate(ctxt, **vars): Module genshi.template.base:618 in _include << tmpl = self.loader.load(href, relative_to=event[2][0], cls=cls or self.__class__) for event in tmpl.generate(ctxt, **vars): yield event except TemplateNotFound: >> for event in tmpl.generate(ctxt, **vars): Module genshi.template.base:618 in _include << tmpl = self.loader.load(href, relative_to=event[2][0], cls=cls or self.__class__) for event in tmpl.generate(ctxt, **vars): yield event except TemplateNotFound: >> for event in tmpl.generate(ctxt, **vars): Module genshi.template.base:605 in _include << from genshi.template.loader import TemplateNotFound for event in stream: if event[0] is INCLUDE: href, cls, fallback = event[1] >> for event in stream: Module genshi.template.markup:378 in _match << for event in self._match(self._flatten(template, ctxt, **vars), ctxt, start=idx + 1, **vars): yield event >> ctxt, start=idx + 1, **vars): Module genshi.template.markup:327 in _match << break for event in stream: # We (currently) only care about start and end events for matching >> for event in stream: Module genshi.template.base:545 in _flatten << while 1: for kind, data, pos in stream: if kind is START and data[1]: >> for kind, data, pos in stream: Module genshi.filters.i18n:177 in _generate << msgbuf.append(*previous) previous = None for event in msgbuf.translate(gettext(msgbuf.format())): yield event if previous: >> for event in msgbuf.translate(gettext(msgbuf.format())): Module genshi.filters.i18n:1029 in translate << ) parts = parse_msg(string) parts_counter = {} for order, string in parts: >> parts = parse_msg(string) Module genshi.filters.i18n:1143 in parse_msg << if string: parts.append((stack[-1], string)) return parts >> parts.append((stack[-1], string)) IndexError: list index out of range |
1311008861000000 | 1314029434000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1228 | enhancement | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Display OpenID login errors |
When there are errors when logging into OpenID, these don't get displayed. You just get the login screen again. |
1311086562000000 | 1311325161000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1229 | enhancement | dread | thejimmyg | ckan-sprint-2011-10-24 | closed | fixed | Refactor all database code out of the controllers and into the logic layer |
Progress can be tracked in this document: |
1311093924000000 | 1319645778000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1230 | enhancement | kindly | ckan-sprint-2011-10-28 | closed | fixed | Make sure plugins tables work in tests. |
Dgu tests failed as harvesting table are not created at the correct point. |
1311100811000000 | 1311154142000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1231 | requirement | kindly | thejimmyg | ckan-backlog | closed | wontfix | [super] Management Information Reporting |
Child tickets:
We have a spreadsheet from UKLP of statistics we'd like to generate |
1311173919000000 | 1325474447000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1234 | enhancement | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Setting locale error conditions handled badly |
Needs tests for error conditions for bad locale and redirect parameters. |
1311179871000000 | 1311183328000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1236 | enhancement | dread | dread | ckan-sprint-2011-11-07 | closed | fixed | View a package at a given revision |
As a user I want to view a package at a given revision:
|
1311269333000000 | 1330019788000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1238 | defect | kindly | dread | ckan-sprint-2011-10-28 | closed | invalid | Viewing a package @date misses non-PackageRevisions |
There's a problem with getting old versions of packages using @date. The query looks for the PackageRevision? related to the date, but ignores TagRevisions? etc. So for example if you compare this table: http://ckan.net/package/history/osm with this view: http://ckan.net/package/osm%402010-11-30%2000%3A21%3A49.627830 you actually see the 2010-01-13 11:13 revision - the wrong revision. |
1311351303000000 | 1311759784000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1239 | defect | rgrp | rgrp | ckan-sprint-2011-10-28 | closed | fixed | Remove and re-add tag on package not working |
See reports on list at:
Tracked this to issue in dictization/model_save whereby was ignoring case where Package Tag already there but in deleted state. Rather than describe at length see fix. |
1311441020000000 | 1312453156000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1241 | task | timmcnamara | timmcnamara | closed | wontfix | Overview video of http://thedatahub.org |
Produce a video explaining some of the things which can be done on the datahub.org |
1311567813000000 | 1340632688000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1242 | enhancement | timmcnamara | closed | fixed | thedatahub.org's login page |
The right hand side of thedatahub.org login screen is a little confusing: Not a member? Join CKAN to contribute packages under your own name. - Register - Reset your password - Privacy Policy Suggested improvements to make:
|
1311569218000000 | 1323173292000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1243 | enhancement | timmcnamara | closed | invalid | [thedatahub.org] "Upload Data" should provide a nicer |
If someone who is not logged in clicks on "Upload Data", they are presented with Not authorized to upload files. This is in emboldened red text. That is, the system is telling a user that they're doing something illegitimate, even though they're actually following an invitation from the main menu. I propose two options for resolving this:
ENV: thedatahub.org, CKAN 1.4.2b |
1311577466000000 | 1328000405000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1245 | task | rgrp | ckan-v1.5 | closed | fixed | Reorganise ckan.org pages |
Here is Rufus' plan for ckan.org reorganisation from http://ckan.okfnpad.org/documentation (22/7/11) (ticket made by dread): /solutions /overview <--- current 'about' page (the software) /customers <-- say "in addition to our clients..." /features <-- needs most work (pictures etc) /pricing/ <-- simplest thing possible ... talk with Ira (cover pricing and support) /developers <--- links to http://docs.ckan.org/, getting the software, the wiki, the mailing list /contact /blog Tasks:
|
1311861708000000 | 1317422640000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1246 | defect | pudo | adrian.pohl@… | ckan-sprint-2011-10-28 | closed | fixed | Search results on ckan.net are mistakenly all 'open' |
All package search results on ckan.net are labelled as 'open' even when their license is closed or unknown: http://ckan.net/package |
1311863353000000 | 1311892816000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1247 | task | rgrp | dread | ckan-sprint-2011-10-28 | closed | fixed | Put docs on ReadTheDocs |
Put docs on ReadTheDocs? instead of eu13. |
1311941948000000 | 1311955185000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1248 | defect | dread | dread | ckan-sprint-2011-11-07 | closed | fixed | License exception |
Exception received on test.ckan.net at 10.12 on 29/7/11 http://test.ckan.net/package?__cache=2759373&page=4 Module pylons.controllers.core:60 in _perform_call << """Hide the traceback for everything above this method""" __traceback_hide__ = 'before_and_this' return func(**args) def _inspect_call(self, func): >> return func(**args) Module ckan.controllers.package:153 in search << } query = get.package_search(context,data_dict) c.page = h.Page( >> query = get.package_search(context,data_dict) Module ckan.logic.action.get:514 in package_search << for package in query.results: result_dict = table_dictize(package, context) result_dict = _extend_package_dict(result_dict,context) results.append(result_dict) >> result_dict = _extend_package_dict(result_dict,context) Module ckan.logic.action.get:537 in _extend_package_dict << license_id = package_dict['license_id'] if license_id: isopen = model.Package.get_license_register()[license_id].isopen() package_dict['isopen'] = isopen else: >> isopen = model.Package.get_license_register()[license_id].isopen() Module ckan.model.license:59 in __getitem__ << return default else: raise KeyError, "License not found: %s" % key def get(self, key, default=None): >> raise KeyError, "License not found: %s" % key KeyError: u'License not found: None' and a similar one: http://test.ckan.net/tag/barbecue Module pylons.wsgiapp:324 in dispatch << if log_debug: log.debug("Calling controller class with WSGI interface") return controller(environ, start_response) def load_test_env(self, environ): >> return controller(environ, start_response) Module ckan.lib.base:118 in __call__ << # available in environ['pylons.routes_dict'] try: return WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> return WSGIController.__call__(self, environ, start_response) Module pylons.controllers.core:221 in __call__ << return response(environ, self.start_response) response = self._dispatch_call() if not start_response_called: self.start_response = start_response >> response = self._dispatch_call() Module pylons.controllers.core:172 in _dispatch_call << req.environ['pylons.action_method'] = func response = self._inspect_call(func) else: if log_debug: >> response = self._inspect_call(func) Module pylons.controllers.core:107 in _inspect_call << func.__name__, args) try: result = self._perform_call(func, args) except HTTPException, httpe: if log_debug: >> result = self._perform_call(func, args) Module pylons.controllers.core:60 in _perform_call << """Hide the traceback for everything above this method""" __traceback_hide__ = 'before_and_this' return func(**args) def _inspect_call(self, func): >> return func(**args) Module ckan.controllers.tag:2 in read Module ckan.lib.cache:167 in wrapper << log = __import__("logging").getLogger("proxy_cache") def wrapper(func, *args, **kwargs): result = func(*args, **kwargs) pylons = get_pylons(args) >> result = func(*args, **kwargs) Module ckan.controllers.tag:64 in read << data_dict = {'id':id} try: c.tag = get.tag_show(context,data_dict) except NotFound: abort(404, _('Tag not found')) >> c.tag = get.tag_show(context,data_dict) Module ckan.logic.action.get:341 in tag_show << extended_packages = [] for package in tag_dict['packages']: extended_packages.append(_extend_package_dict(package,context)) tag_dict['packages'] = extended_packages >> extended_packages.append(_extend_package_dict(package,context)) Module ckan.logic.action.get:537 in _extend_package_dict << license_id = package_dict['license_id'] if license_id: isopen = model.Package.get_license_register()[license_id].isopen() package_dict['isopen'] = isopen else: >> isopen = model.Package.get_license_register()[license_id].isopen() Module ckan.model.license:59 in __getitem__ << return default else: raise KeyError, "License not found: %s" % key def get(self, key, default=None): >> raise KeyError, "License not found: %s" % key KeyError: u'License not found: CreativeCommonsAttributionCCBY25' |
1311954136000000 | 1319797763000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1249 | enhancement | pudo | rgrp | ckan-v1.5 | closed | fixed | Exclude script tag from extraction for i18n |
Currently have this script section put in for i18n. It shouldn't be. <script type="text/javascript"> //<![CDATA[ (function($){ $.fn.ajaxCreateSlug = function(name, url) { var title = this; var updater = { init: function(title, name) { // Add a new element where the validity of the package name can be displayed this.name_field = name; this.title_field = title; this.name_field.parent().append('<div id="package_name_valid_msg"></div>'); this.title_field.blur(this.title_change_handler()) this.title_field.keyup(this.title_change_handler()) this.name_field.keyup(this.name_change_handler()); this.name_field.blur(this.name_blur_handler()); this.url = url; }, .... |
1311958536000000 | 1311959356000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1250 | enhancement | pudo | rgrp | ckan-v1.5 | closed | fixed | Search results should be sorted by score rather than alphabetical |
At the moment we sort search results alphabetically. While this is useful for doing 'browse' case where no search bad for all other cases. Adopt default sort order of 'score' though may wish to keep alphabetical for no search term (i.e. wildcard). Options:
Aside: may also wish to support search in query api but that is for later! |
1311964752000000 | 1312370201000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1251 | enhancement | rgrp | rgrp | ckan-backlog | closed | fixed | Rename wiki.ckan.net to wiki.ckan.org |
Inline with general naming policy going forward. |
1311965147000000 | 1317315159000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1252 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | Deprecate ckan.net in favour of thedatahub.org |
Deprecate ckan.net in favour of thedatahub.org
Also redirect wiki.ckan.net to wiki.ckan.org |
1311965339000000 | 1318160334000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1253 | enhancement | amercader | amercader | ckan-sprint-2011-10-28 | closed | fixed | Authz refactor |
We agreed on a system that allows overriding the authz checks at a logic function level (e.g. package_create, user_show) and supports the old (current) authz system. |
1312199491000000 | 1313401367000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1254 | task | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Feature sheet |
Compose a feature list for CKAN. Use the existing Feature Matrix. Basic explanation of terms. For use by customers. |
1312211925000000 | 1313401629000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1256 | defect | kindly | kindly | ckan-sprint-2011-10-28 | closed | fixed | fix modification extension for moderation |
Solr is not working for moderation, pending changes are not being indexed. |
1312280026000000 | 1319812556000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1258 | enhancement | kindly | kindly | ckan-sprint-2011-10-28 | closed | fixed | Bring purge revision into ckan repo from vdm |
In order to make purge revision work correctly with the moderated edits we need to modify purge revision in vdm. This is best modified in ckan so we will override the vdm one in the reposotory. |
1312289539000000 | 1319812452000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1263 | enhancement | dread | dread | closed | fixed | Bad name for logic action in API causes Exception |
A bad action name: e.g. curl http://test.ckan.net/api/action/user_showaa -d '{}' causes 500 response. Occurs only on 1.4.3 beta. |
1312479020000000 | 1314029279000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1264 | enhancement | zephod | rgrp | ckan-sprint-2011-10-10 | closed | fixed | Merge ckanext-admin into core |
This extension should be in core now -- functionality is basic and very useful. Copy across from here: http://bitbucket.org/okfn/ckanext-admin Suggest this no longer even be an extension. |
1312480783000000 | 1318245716000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1265 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | user/edit error conditions cause exceptions |
We get exceptions on these occasions:
These are a problem only on 1.4.3b. Introduced in #1229 - merge of branch feature-1229-db-out-of-controllers |
1312565788000000 | 1312566052000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1266 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Timestamps without microseconds causing exception |
I'm not sure why some timestamps are missing microseconds in the ckan.net data, but plenty seem to. This causes this exception when viewing the package rss feed: URL: http://ckan.net/package/history/sfk_publishing?format=atom&days=7 In Module ckan.lib.helpers:227 in date_str_to_datetime WebApp Error: <type 'exceptions.ValueError'>: time data '2008-04-13T20:40:20' does not match format '%Y-%m-%dT%H:%M:%S.%f' Only seen with ckan 1.4.3b |
1312794831000000 | 1312797477000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1267 | defect | dread | dread | closed | fixed | Random exception: cannot set the body to a unicode value |
Occasionally see this problem when producing an error page. Here's an example WebApp Error: <type 'exceptions.TypeError'>: You cannot set the body to a unicode value without a charset URL: http://at.ckan.net/authorizationgroup/new Module weberror.errormiddleware:162 in __call__ << __traceback_supplement__ = Supplement, self, environ sr_checker = ResponseStartChecker(start_response) app_iter = self.application(environ, sr_checker) return self.make_catching_iter(app_iter, environ, sr_checker) except: >> app_iter = self.application(environ, sr_checker) Module beaker.middleware:73 in __call__ << self.cache_manager) environ[self.environ_key] = self.cache_manager return self.app(environ, start_response) >> return self.app(environ, start_response) Module beaker.middleware:152 in __call__ << headers.append(('Set-cookie', cookie)) return start_response(status, headers, exc_info) return self.wrap_app(environ, session_start_response) def _get_session(self): >> return self.wrap_app(environ, session_start_response) Module routes.middleware:130 in __call__ << environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1] response = self.app(environ, start_response) # Wrapped in try as in rare cases the attribute will be gone already >> response = self.app(environ, start_response) Module pylons.wsgiapp:125 in __call__ << controller = self.resolve(environ, start_response) response = self.dispatch(controller, environ, start_response) if 'paste.testing_variables' in environ and hasattr(response, >> response = self.dispatch(controller, environ, start_response) Module pylons.wsgiapp:324 in dispatch << if log_debug: log.debug("Calling controller class with WSGI interface") return controller(environ, start_response) def load_test_env(self, environ): >> return controller(environ, start_response) Module ckan.lib.base:117 in __call__ << # available in environ['pylons.routes_dict'] try: return WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> return WSGIController.__call__(self, environ, start_response) Module pylons.controllers.core:284 in __call__ << if log_debug: log.debug("Calling Response object to return WSGI data") return response(environ, self.start_response) if log_debug: >> return response(environ, self.start_response) Module webob.exc:248 in __call__ << return [] if not self.body and not self.empty_body: return self.generate_response(environ, start_response) return Response.__call__(self, environ, start_response) >> return self.generate_response(environ, start_response) Module webob.exc:239 in generate_response << status=self.status, headerlist=headerlist, content_type=content_type ) return resp(environ, start_response) >> content_type=content_type Module webob.response:94 in __init__ << if charset is None: raise TypeError( "You cannot set the body to a unicode value without a charset") body = body.encode(charset) self._body = body >> "You cannot set the body to a unicode value without a charset") TypeError: You cannot set the body to a unicode value without a charset |
1312889084000000 | 1312897724000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1268 | enhancement | kindly | rgrp | ckan-sprint-2011-10-10 | closed | fixed | Speed up listing users by revisions by adding db index |
At the moment this appears to be slow (kindly suggests because missing index in db). Page is /user on a ckan instance. Would this also speed up user page where we recent changes? |
1312906592000000 | 1318279592000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1269 | defect | johnglover | rgrp | ckan-backlog | closed | wontfix | User view page shows the packages followed by viewing user not user being viewed |
This overlaps with Sean's follow support (for activity streams) and so will be dealt with there. |
1312906598000000 | 1335875028000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1270 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Default site www.ckan.net is a redirect and loses POSTs |
The default site was www.ckan.net, which had an Apache 301 redirect to ckan.net, but the problem was urllib was not rePOSTing stuff. This affected search parameters: In [1]: import ckanclient In [2]: c = ckanclient.CkanClient() In [3]: c2 = ckanclient.CkanClient('http://ckan.net/api') In [4]: c.package_search('', search_options={'groups':'openspending'}) Out[4]: {u'count': 2102, u'results': <generator object _result_generator at 0x10168b1e0>} In [5]: c2.package_search('', search_options={'groups':'openspending'}) Out[5]: {u'count': 29, u'results': <generator object _result_generator at 0x10168b410>} Thanks to borior for finding this and raising it. |
1312911847000000 | 1312912188000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1271 | enhancement | rgrp | rgrp | ckan-sprint-2011-10-28 | closed | fixed | CORS support |
CORS - http://www.w3.org/TR/cors/ - support. This is what you do in Apache. Should do this in lib/base.py or similar. Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Allow-Methods "POST, PUT, GET, OPTIONS" Header always set Access-Control-Allow-Headers "X-CKAN-API-KEY, Content-Type" # Respond to all OPTIONS requests with 200 OK # This could be done in the webapp # This is need for pre-flighted requests (POSTs/PUTs) RewriteEngine On RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ $1 [R=200,L] |
1313241839000000 | 1313753663000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1272 | enhancement | amercader | ckan-sprint-2011-10-10 | closed | fixed | Store spatial extents provided in the package form |
Consolidate the extra spatial as the field for providing information about the geographic extent of the package. This will integrate automatically with the spatial search and give developers a single point to develop geospatial features. |
1313411787000000 | 1317381996000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1274 | enhancement | johnglover | johnglover | ckan-sprint-2011-10-28 | closed | fixed | Testing solr search |
Copy ckan core postgres package search tests to the ckanext-solr extension and update them so that they use the solr search backend. |
1313413202000000 | 1313429049000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1275 | enhancement | johnglover | johnglover | ckan-sprint-2011-09-26 | closed | fixed | Move solr search extension to ckan core | 1313413597000000 | 1319812967000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1276 | enhancement | johnglover | johnglover | ckan-sprint-2011-09-12 | closed | fixed | Apply weighting to search fields in solr |
For example:
|
1313414353000000 | 1315948394000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1277 | enhancement | johnglover | johnglover | ckan-sprint-2011-09-12 | closed | fixed | Use solr query parser for search instead of ckan query parser |
See http://ckan.okfnpad.org/search for details/discussion |
1313414446000000 | 1315948417000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1279 | enhancement | ross | amercader | ckan-v1.8 | closed | duplicate | Refactor or deprecate Authorization Groups |
Authorization Groups are going to be deprecated in 1.8 It is still unclear how Authorization Groups fit in the new authz model, so they have been left out of the logic and auth refactoring (Tickets #1229 and #1253) |
1313415367000000 | 1338212028000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1280 | defect | kindly | ckan-backlog | closed | fixed | fix sqlalchemy so that it works with postgres 9.0 |
After the ckan migrate process, sqlalcehmy reflect does not work and causes an error when reflecting indexes. A bug report needs to be put into sqlalchemy. |
1313513090000000 | 1328786670000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1281 | defect | pudo | pudo | ckan-sprint-2011-10-28 | closed | fixed | Locale change flash message in wrong language |
When you change the locale, it displays a flash message "Language has been set to: English" in the original language, not the one we have just changed to. |
1314021656000000 | 1314021919000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1282 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | JS and WUI tidy up |
Consolidate js. Remove cruft.
Possible:
|
1314090389000000 | 1314404540000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1283 | enhancement | dread | dread | ckan-backlog | closed | fixed | Deleted packages shouldn't be searchable or browsable |
A package in deleted state doesn't show to general users, but admins DO see them. The idea is that they can resurrect them if they want. But now we have the trash can that lists deleted packages. So we don't want admins to see the deleted packages anywhere else. (But an admin should still be able to READ and EDIT a deleted package, so if he clicks on it in the trash list he can see it to decide whether to resurrect and actually be able to change its state.) Same in the Web interface and API. This ticket ties in with #948 highlighting a package being deleted (when viewing or editing) and follows on from the introduction of the trash can #1076. |
1314112481000000 | 1330083933000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1284 | defect | dread | rgrp | closed | fixed | Lots of revisions being created on datahub.org |
Revisions aren't assigned to packages. Where are they coming from? This seems to have been occurring since the upgrade to 1.4.3b a couple of weeks ago? |
1314113015000000 | 1315215626000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1289 | CREP | dread | ckan-backlog | closed | wontfix | Remove 'relationships' |
AbstractPackage Relationships have not taken off in the 18 months we've had them in the API. There are some issues with them and we need to spend more time improving them or consider getting rid of them. The ProblemOriginal use cases are expressed here: #253 Here are comments about how we could handle these specific examples better:
3&5. derived resource - better to have some sort of resource relationship perhaps?
Outstanding issues needing serious effort to fix:
SpecificationRemove relationships from model, API, tests, Web UI. Data migration to remove from db. Why do it this wayGetting frustrated having problems with the code, when it's not used much. Often asked about what it's for, but rarely used. Seems an overly complicated design. Backwards Compatibilityn/a Implementation planDeliverablesSee Specification Risks and mitigationsRisk: a customer suddenly wants this, and the new ways to relate resources are not in place yet. Mitigation: discuss this decision thoroughly to make sure we are confident the use cases are not important. Discuss with team, ckan-discuss and specifically the LOD people who have some related packages on thedatahub.org. ParticipantsDavid Read ProgressNot yet. |
1314206502000000 | 1317315211000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1290 | enhancement | dread | dread | ckan-backlog | closed | fixed | Better error when blank database |
When installing CKAN, when doing "paster serve development.ini", lots of users encounter the error for every request: ProgrammingError: (ProgrammingError) relation "user" does not exist This is because the database tables have not been created - they have forgotten or missed the "paster db init" step. Can we provide a better error to say that the database is not initialised yet? Implementation options
|
1314264255000000 | 1314270894000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1291 | enhancement | kindly | kindly | ckan-sprint-2011-09-12 | closed | fixed | Add activity and activity detail tables. |
Add tables described in http://ckan.okfnpad.org/notifications |
1314267572000000 | 1315950394000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1292 | enhancement | dread | dread | ckan-sprint-2011-11-07 | closed | fixed | Internationalization improvements |
|
1314303314000000 | 1320145732000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1293 | enhancement | zephod | rgrp | ckan-sprint-2011-09-12 | closed | fixed | Rename Package to Dataset throughout WUI, API |
Changes
Leave
Notes
|
1314405700000000 | 1317649968000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1294 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | [super] Package creation and editing UX improvements |
Largely an integration of work from ckanjs
|
1314405811000000 | 1315948257000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1295 | enhancement | rgrp | rgrp | ckan-sprint-2011-09-12 | closed | fixed | Simplify package create form |
Sub ticket of #1294
|
1314406014000000 | 1315948009000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1296 | enhancement | zephod | rgrp | ckan-sprint-2011-09-12 | closed | fixed | Improved resource adding/editing on dataset/page page |
Subticket of #1294.
|
1314406093000000 | 1315948224000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1297 | enhancement | zephod | rgrp | ckan-sprint-2011-09-12 | closed | fixed | In-place preview of edited description markdown on edit dataset form |
Subticket of #1294. Can integrate from working system on ckanjs. |
1314406183000000 | 1317649974000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1298 | enhancement | kindly | kindly | ckan-sprint-2012-01-09 | closed | fixed | Generate activites to be put into activities table. |
This should be done from the logic layer or automatically from a session extension. |
1314696442000000 | 1325591582000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1299 | enhancement | seanh | kindly | ckan-sprint-2012-01-23 | closed | fixed | Activity streams table migration |
Migrate tables for activity streams |
1314696635000000 | 1327322739000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1300 | enhancement | rgrp | rgrp | ckan-sprint-2011-11-07 | closed | fixed | Core changes to base theme |
Core changes to theme in order to make it easier to re-theme:
|
1314862223000000 | 1319794520000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1301 | defect | amercader | amercader | ckan-sprint-2011-09-12 | closed | fixed | Give access to extensions from the old formalchemy controllers |
This was removed during the auth refactoring, but it's needed in the old controllers |
1314882888000000 | 1314893744000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1302 | refactor | johnglover | johnglover | ckan-sprint-2011-09-26 | closed | fixed | Move Resource and Tag search code to logic layer |
Resource and Tag search is currently still using the old ckan query parser which is unnecessary. Refactor this out and move to the logic layer. |
1314886102000000 | 1317131948000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1303 | defect | amercader | amercader | ckan-sprint-2011-09-12 | closed | fixed | User can not login again if he has edited his profile |
Only happens if the user does not update the password. Most probably introduced during #1229. |
1314889472000000 | 1314978842000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1304 | enhancement | amercader | amercader | ckan-sprint-2011-09-12 | closed | fixed | Show more descriptive error messages when sending emails |
Sending emails is failing in some cases, and the error message just says 'Could not send reset link'. |
1314893206000000 | 1314893749000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1305 | defect | nils.toedtmann | amercader | ckan-backlog | closed | fixed | SMTP config for thedatahub.org and IATI |
The email sending functionality (e.g for password reset) does not work on thedatahub.org and IATI (and probably some other instances) when using an address which is not a okfn.org one. Could not send reset link: SMTPRecipientsRefused({u'amercadero@…': (550, 'relay not permitted')},) As I said, adria.mercader@… works fine. The SMTP server used mail.okfn.org |
1314956657000000 | 1315317033000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1306 | enhancement | kindly | rgrp | ckan-backlog | closed | wontfix | Tests for the logic layer |
AFAICT there are no tests for the logic layer at the moment. I imagine this is an issue (if it is not please explain and close as wontfix). |
1315153267000000 | 1319797204000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1307 | enhancement | zephod | rgrp | ckan-sprint-2011-09-12 | closed | fixed | Implement captcha for signup |
Est cost: 1d |
1315153860000000 | 1317649963000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1308 | defect | shevski | dread | closed | fixed | 'create package' user case failure |
On the CKAN home page there is no suggestion that you can add or register a dataset. The 'Register a dataset' option has been removed at some point! (only visible to users that have registered - why would they do that when the benefits aren't described?) |
1315219500000000 | 1323174312000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1309 | enhancement | zephod | zephod | ckan-sprint-2011-09-12 | closed | duplicate | Registering new user requires immediate login |
Registering a new user directs you to that user's profile page but does not log you in. There is an empty set of "Recent changes" and no ability to modify the page. Users must follow the login link in the top-right corner to continue. Registering a new user should immediately log you in. |
1315225510000000 | 1315586335000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1310 | defect | dread | dread | ckan-sprint-2011-09-12 | closed | fixed | API GET of a revision that has been approved causes exception |
e.g. this particular revision on ckan.net: http://ckan.net/api/rest/revision/9601fbcb-03a7-4ebc-981d-5aa16df4852c (most others have not been approved) Causes 500 error. |
1315234899000000 | 1315820419000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1312 | enhancement | dread | florian.marienfeld@… | ckan-sprint-2011-10-28 | closed | invalid | Particular characters in JSON cause exception creating package on API |
From Florian: I am having trouble with the characters "=&;". if they occur e.g. in the title of a package, I get a 400-Bad-Request when I try to register a package by POSTing to ckan/rest/api/package However, when I PUT the same package as an edit to ckan/rest/api/package/existing_package, it works and the title shows correctly on the front end and API. Reproduced(pyenv-ckan)dread@dread-laptop:~/hgroot/ckan$ curl -i http://localhost:5000/api/rest/package -d '{"name": "test3", "title": "Test &"}' -H "Authorization:tester" HTTP/1.0 400 Bad Request Server: PasteWSGIServer/0.5 Python/2.6.5 Date: Tue, 06 Sep 2011 14:09:31 GMT Pragma: no-cache Cache-Control: no-cache Content-Type: application/json;charset=utf-8 Content-Length: 87 "Bad request - JSON Error: Unterminated string starting at: line 1 column 27 (char 27)" |
1315318863000000 | 1315327743000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1313 | enhancement | zephod | dread | closed | duplicate | Tweaks to captcha configuration |
Awesome to have the captcha implementation and running on thedatahub.org! Here are some further suggestions concerning the config options, before this goes into a release:
I'm not sure why - might be something to do with the maintenance on the server, but worth double checking, since we don't want exceptions, say if one or other config variable is not defined. |
1315395185000000 | 1317076432000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1315 | enhancement | dread | dread | ckan-sprint-2011-11-07 | closed | fixed | Document /api/action |
We need some documentation for the /api/action. Even though it's beta and subject to change it would be good to have a guide. |
1315396722000000 | 1320173768000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1316 | defect | kindly | dread | closed | fixed | /api/action uncaught exception if missing necessary parameter |
curl http://ckan.net/api/action/package_show -d '{"name": "uk-quango-data"}' This gives 500 error due to KeyError? (it looked for the 'id' param), rather than 400. |
1315397224000000 | 1338193724000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1318 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | 'Register user' doesn't log you in |
When you register a user, it doesn't seem to be logged in properly straight away. Top-right it invites you to "log in" and "register". Also the "create package" menu option doesn't appear. Going to /user/me sends you to login page. If you then login, then all these things are corrected. |
1315415783000000 | 1315569362000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1319 | enhancement | rgrp | dread | ckan-sprint-2011-10-24 | closed | fixed | Require an email address on User registration |
Superticket: #1343 This avoids difficulties when they forget their password.
|
1315415932000000 | 1324036947000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1320 | enhancement | zephod | rgrp | ckan-sprint-2011-10-10 | closed | fixed | Extend basic markdown to support normal http / https links |
It is very annoying that you have to wrap links in <...> and most people don't bother. Extend h.markdown in code and markdown in js to fix this. (We should also support 'package' links etc in javascript?) *ADDITIONAL*
|
1315422000000000 | 1318164603000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1321 | defect | dread | dread | ckan-sprint-2011-10-24 | closed | fixed | Flash message deferred |
When you reset a password, the flash message saying "check your email" sometimes doesn't display on the next page. You then click on the link in your email and it displays on that page (i.e. too late). Seen this on thedatahub.org. To do with the proxy caching? |
1315474657000000 | 1319814460000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1323 | enhancement | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | GET /authorizationgroup causes Exception when logged in |
on thedatahub.org |
1315475685000000 | 1315594333000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1324 | enhancement | kindly | kindly | ckan-sprint-2011-09-12 | closed | fixed | Add extra fields to resource table |
add extra fields to resource as outlined in http://wiki.ckan.net/Domain_Model/Resource Specifically (all unicode strings except for those noted):
|
1315578976000000 | 1315948336000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1325 | defect | dread | dread | ckan-sprint-2011-09-12 | closed | fixed | python 2.5 incompatibilities |
We claim to support Python 2.5 (useful for Lenny), yet a few problems have crept in:
|
1315580452000000 | 1315587113000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1327 | enhancement | rgrp | ckan-v1.6 | closed | duplicate | [super] Dataset Archiving |
Split out of #852. Automated archiving of datasets (related to QA). Automated archiving using worker process |
1315821490000000 | 1320662446000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1329 | defect | dread | amercader | ckan-sprint-2011-10-28 | closed | fixed | i18n poor in some templates - missing i18n tags |
Just a tip for developers regarding translations:
i18:msg attribute, otherwise the messages don't get extracted properly. Good: https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/templates/home/about.html#cl-40 <p i18n:msg="">More about CKAN, and the background to its creation can be found in <a href="http://m.okfn.org/files/talks/opentech_20080705/">these slides</a>.</p> gives this: https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/i18n/ca/LC_MESSAGES/ckan.po#cl-1238 <p class="hints"> <strong>Important:</strong> By submitting content, you agree to release your contributions under the <a href="http://opendatacommons.org/licenses/odbl/1.0/">Open Database License</a>. Please <strong>refrain</strong> from editing this page if you are <strong>not</strong> happy to do this. </p> gives this: https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/i18n/ca/LC_MESSAGES/ckan.po#cl-1384 The message is split in different parts that not necessarily match the grammar or syntax of the translated language. |
1315824288000000 | 1317404566000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1330 | enhancement | rgrp | ckan-backlog | closed | invalid | Deprecate / Remove test_authz.py |
test_authz.py appears to test in great detail some very specific additional authz (related to total site lock-down it seems -- introduced I think for hri project). I think there are simpler ways to get total site lockdown (use external auth!) and this test is slow and delicate (e.g. depends on specific words in templates). Suggest removing. If we don't remove we should at least refactor tests for access to certain pages to use a proper method of testing (e.g. agreed html comments in each page) rather than being depending on the presence of absence of specific wording. |
1315899129000000 | 1327060201000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1331 | defect | dread | dread | closed | worksforme | Setting a tag twice causes exception |
To reproduce:
|
1315905959000000 | 1325355631000000 |