ticket summary component version milestone type owner status created _changetime _description _reporter
2859 Fix the build ckan ckan-v1.8 defect icmurray new 2012-08-16T09:26:57Z 2012-08-16T09:26:57Z "The requires files have been removed. These were required by buildkit.
We've lost the information regarding which packages were already in ubuntu repos, which conflicted and which were missing. But perhaps we can just package everything up." icmurray
2582 Do not hide notes / readme on dataset pages ckan ckan-v1.9 enhancement new 2012-06-21T20:59:00Z 2012-06-25T11:50:09Z "Current we hide most of readme and then let users reveal it. Stop doing this and if necessary add a quick link down to resources section. (Maybe also rename resources to Data and Resources ...?)
Aside: believe I have mentioned this somewhere a month + ago but could not find the ticket." rgrp
2766 prevent draft datasets making it to activity stream ckan demo phase 4 enhancement seanh assigned 2012-07-26T16:06:35Z 2012-08-09T20:13:13Z "The new ckan creates datasets as part of a 3 phase process. To allow for this partially created datasets can have a state that is 'draft' or 'draft-complete'. These datasets should not be seen as active by the activity stream.
If we click 'add dataset' and then complete the first phase of adding a dataset then we end up having a activity stream created. When we add a resource in the next phase (add data) again an activity stream item xxx added resource to dataset is created
We do not want these adding. Essentially if a dataset has a state.startswith('draft') then we want the activity stream to ignore all actions involving it.
finally when the state is changed form state.startswith('draft') to state=='active' we want a xxx has created dataset ... to be added to the stream.
The best way to do this would be to branch from 2375-demo-theme-stable and get it to work there.
Let me know if you need any help with this ticket or a better explanation of the problem." shevski
2686 enabling datastore & data API breaks recline ckan ckan-backlog defect assigned 2012-07-17T09:06:51Z 2012-09-03T09:08:20Z "First I noticed that the gold prices dataset preview was not displaying & has data API enabled
Secondly I tried enabling datastore for http://datahub.io/dataset/adur_district_spending/resource/281dffa6-ea9b-4446-be41-05dced06591f and after I saved the preview no longer worked. Unticking the datastore & data api checkbox brought it back
Is this a known issue?" shevski
1198 Publisher hierarchy ckan ckan-backlog enhancement new 2011-06-23T09:16:32Z 2012-06-15T15:30:00Z "'Publisher' entities in the model. They are hierarchical.
'User-Publisher' connections with one or more roles (e.g. drafter, moderator).
Authorization settings can control who can set what values in a 'published by' type field.
Publishers and User-Publishers available to read in the API.
Future tickets will provide:
* API to write Publishers and User-Publishers
* UI to edit Publishers and User-Publishers
(This feature deprecates authorization groups)" dread
1466 Need to support https login for multiple instances as part of the CKAN package install ckan ckan-backlog enhancement new 2011-11-15T16:52:58Z 2012-02-06T11:51:02Z thejimmyg
1832 dataset purge API ckan ckan-backlog enhancement assigned 2012-02-24T10:02:25Z 2012-06-15T15:21:46Z "Purging datasets (deleting them fully, not just changing the state to 'deleted') is important for users testing dataset creation over the API on a test CKAN instance.
Without this, they need to resort to more difficult methods such as:
* cleaning and reloading the database
* setting the test datasets to state 'deleted' and also appending a suffix '_00' and incrementing the number until there is no clash of names.
Requested for NHSIC.
== Implementation ==
* This could slot into the Action API.
* Of course we would need to ensure the user's had been given the specific right to purge.
* I suggest we log the full details of the dataset being purged." dread
2751 check translations for full demo site ckan demo phase 5 enhancement toby new 2012-07-25T11:40:43Z 2012-08-06T08:50:46Z need to check everything gets translated - sean did this before so will have info toby
2949 Reenable Data API button on the new theme ckan defect amercader new 2012-10-01T16:04:24Z 2012-10-01T16:04:24Z The checks to show or not the button need to be updated for the latest datastore version amercader
1244 Notes field carriage-returns converted to CRLF ckan enhancement assigned 2011-07-26T14:10:56Z 2012-06-20T11:20:53Z "When you edit a package in the web form, if the notes field had {{{\n}}} as the End Of Line symbol, it gets lost when you preview or save the package, and the notes field is displayed all on one line.
This can be seen when editing annakarenina (as created by 'paster create-test-data'). The diff shows for example:
{{{
- Some test notes
+ Some test notes
? +
}}}
but it would more clearly be shown as:
{{{
- Some test notes\n
+ Some test notes
? ++
}}}
This is a significant problem with DGU, since a lot comes in via the API.
It's not clear what we should do about it. We could standardise on \n or \r\n when the form submission comes in. Do different browsers on different platforms do different things with EOLs?
== Analysis ==
Displaying the package: the Markdown processor respects both EOLs when displaying the field, putting each line in a
tag.
Creating the package edit form: placed into .
Browser displaying package edit form: displays \n and \r\n as EOL. But \n\n gets compressed to one EOL. But on submission, both are returned as \r\n.
Receiving the edited package: Somewhere along the line the EOL gets converted to \n\n.
" dread
1322 Action API improvements ckan enhancement assigned 2011-09-08T09:39:09Z 2012-06-20T11:18:08Z "Focusing on improving Action API as the v3 API:
* have an optional parameter of the data_dict called ""options"". Options would contain items that would get passed into the context. e.g. {{{{""options"" : {""ref_package_by"": ""id""}}. }}}
* instead of using API version to change the way packages are referenced, use the ref_package_by.
* All package_show, group_show etc. to accept an object 'name' as an alternative to object 'id'.
* Action API is v3 of api, replacement for v1 & v2. Default for most urls is still v1, but if url is /api/action then default to v3.
Next steps:
* Add search API (package, resource,
* Add Util API
* Clarify JSONP still applies
* Add doc strings, clarifying parameters" dread
1460 Improve extensions documentation ckan enhancement assigned 2011-11-12T16:15:23Z 2012-06-20T11:16:41Z "Current extensions documentation needs some work: http://docs.ckan.org/en/latest/plugins.html
* Queue extension section may now be out of date (?)
* Think about how it integrates with https://github.com/okfn/ckanext-example (especially tutorial and example extension)
* Document all plugin points (auto-extract from CKAN source??)" rgrp
1689 List deleted datasets in API ckan enhancement kindly assigned 2012-01-20T12:23:34Z 2012-06-20T11:00:40Z "The admin extension allows deleted datasets to be viewed, but there is no equivalent in the API. The package_list API call filters to just 'state=active' datasets.
'state' could be a parameter on the package_list call
* Easy to call and implement
* But getting permissions right for the different state values may not be easy - maybe a separate logic function is better?
" dread
2635 Non-destructive SOLR reindex ckan enhancement new 2012-07-09T10:23:14Z 2012-07-09T10:23:14Z "You can't run the search-index reindex on a live server because it will give us bad results for 2 to 3 hours while it runs. Can there be an option that doesn't delete the entire index at the start?
Instead it could just delete any items that don't exist any more, then delete them and regenerate them one by one. So the total number of datasets doesn't change much." dread
3019 Cannot delete dataset extras ckan ckan 2.0 defect new 2012-11-14T18:44:38Z 2012-11-14T18:44:38Z Deleting extras in the web interface is broken seanh
3011 Recline fixes and updates for CKAN 2.0 ckan ckan 2.0 enhancement johnglover new 2012-11-07T11:40:55Z 2012-11-07T11:40:55Z Fixes and updates to Recline / Datapreview for CKAN 2.0. johnglover
3017 New stable branch for the demo server ckan ckan 2.0 enhancement johnglover new 2012-11-13T15:04:48Z 2012-11-13T15:04:48Z johnglover
1134 CREP0003: Description and Configuration of Harvesters ckan ckan-backlog CREP new 2011-05-11T10:14:28Z 2012-06-15T15:35:54Z "'''Proposer''': Adrià Mercader
== Abstract ==
The new harvester interface allows to create harvesters for different
sources, but right now harvesters don't have many ways to describe and
configure themselves. We need a way of allowing them to:
* Expose their type and other details so they can be used internally
and on the UI.
* Define configuration settings for particular harvester instances.
== The Problem ==
=== Harvester description ===
The current UI for adding and editing harvest sources is the same used
in ckanext-dgu, and thus the 3 harvester types used in DGU to harvest
various GEMINI realted sources are hardcoded in the form. The form will
be migrated to a DGU-independent one, so we need the harvesters to
provide all the necessary data. There is a current {{{get_type}}} method
that returns the harvester type, but for make it compatible with the DGU
forms, it returns a machine-readable string (e.g. ""CSW Server""), making
it error prone.
=== Arbitrary configuration ===
In the current implementation, when the harvest process is started,
ckanext-harvest looks for all the available plugins that implement the
{{{IHarvester}}} interface and calls the appropiate methods for the
current stage ({{{gather_stage}}},{{{fetch_stage}}},{{{import_stage}}}).
At these stages, harvesters have no way of applying arbitrary
configuration options, so all harvesters of the same type behave on the
same way.
For instance, the CKAN harvester needs a way to define the API version
to use when harvesting remote instances (Right now, the version 2 is
hardcoded on the code).
== Specification ==
=== Harvester description ===
Harvesters will need to provide the following information so the UI form
can be built:
* name: machine-readable name (e.g. ""waf""). This will be the value
stored in the database, and the one used by ckanext-harvest to
call the appropiate harvester.
* title: human-readable name (e.g. ""Web Accessible Folder (WAF)"").
This will appear in the form's select box.
* description: a description of what the harvester does (e.g. ""A Web
Accessible Folder (WAF) displaying a list of GEMINI 2.1
documents""). This will appear on the form as a guidance to the
user.
The way to provide it will be an {{{info}}} method that all harvesters
must implement, which will return a dictionary with the previous
elements:
{{{
{
'name': 'csw',
'title': 'CSW Server',
'description': 'A server that implements OGC's Catalog Service
for the Web (CSW) standard'
}
}}}
=== Arbitrary configuration ===
As different harvesters will have very different needs, we need to
provide a way to persist arbitrary configuration flags for each harvest
source. The more flexible way given the current architecture in my
opinion would be to store the configuration options as a JSON encoded
object as a property of the harvest source (There already is an unused
DB field called {{{config}}} in the database) (Maybe using JsonType?).
This will mean adding an extra field in the harvest source form to allow
entering the configuration. This could be just a simple text field where
users enter the JSON encoded object or a more clever mechanism (i.e an
""Add a configuration flag"" link that adds two new text fields for the
key and value for each flag, and a mechanism to later build the JSON
object). In any case, this should probably be hidden in an ""Advance
options"" section.
== Why do it this way ==
=== Harvester description ===
The {{{info}}} method would provide a single point to get all the
information related to the harvester, and future properties could be
added to the dictionary returned without having to modify the interface.
=== Arbitrary configuration ===
There is an already existing {{{config}}} field in the database, so we
won't need to change the model.
Harvesters could access the config object at any of the stages. Of
course they could provide default values in their implementations so
users don't need to enter them everytime.
== Implementation plan ==
=== Deliverables ===
=== Risks and mitigations ===
The highest risk on the harvesters {{{info}}} method side is that
harvester implementation don't offer one of the necessary properties
(namely name and title). This could fire a warning when showing the
UI form or using the CLI.
=== Participants ===
Adrià Mercader to do it.
=== Progress ===
None yet." amercader
1447 disk space leakage ckan ckan-backlog defect kindly assigned 2011-11-07T11:54:03Z 2012-06-26T16:15:30Z "Periodically we see some CKAN servers fall over because they run out of disk space. We need to find out if there is a common cause and fix it.
One problem in the past has been file handles running out when creating lots of tiny files in the data directory.
Another problem has been several enourmous backups being created every day - pdeu on eu25." dread
1577 Can't upload file with foreign chars in filename ckan ckan-backlog defect rgrp new 2011-12-19T18:00:59Z 2012-01-02T03:06:04Z "Looks like uploading a file with foreign characters fails due to encoding reasons.
{{{
URL: http://thedatahub.org/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ%C3%AD-%C4%8Cesk%C3%A9-republiky-_-P%C5%99%C3%ADprava-rozpo%C4%8Dtu.pdf
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:123 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 ckanext.storage.controller:2 in auth_form
Module ckan.lib.jsonp:26 in jsonpify
<< Very much modelled after pylons.decorators.jsonify .
""""""
data = func(*args, **kwargs)
return to_jsonp(data)
>> data = func(*args, **kwargs)
Module ckanext.storage.controller:301 in auth_form
<< method = 'POST'
authorize(method, bucket, label, c.userobj, self.ofs)
data = self._get_form_data(label)
return data
>> authorize(method, bucket, label, c.userobj, self.ofs)
Module ckanext.storage.controller:79 in authorize
<< if method != 'GET':
# do not allow overwriting
if ofs.exists(bucket, key):
abort(409)
# now check user stuff
>> if ofs.exists(bucket, key):
Module ofs.remote.botostore:53 in exists
<< if bucket is None:
return False
return (label is None) or (label in bucket)
def claim_bucket(self, bucket):
>> return (label is None) or (label in bucket)
Module boto.s3.bucket:87 in __contains__
<< def __contains__(self, key_name):
return not (self.get_key(key_name) is None)
def startElement(self, name, attrs, connection):
>> return not (self.get_key(key_name) is None)
Module boto.s3.bucket:144 in get_key
<< response = self.connection.make_request('HEAD', self.name, key_name,
headers=headers,
query_args=query_args)
# Allow any success status (2xx) - for example this lets us
# support Range gets, which return status 206:
>> query_args=query_args)
Module boto.s3.connection:388 in make_request
<< if isinstance(key, Key):
key = key.name
path = self.calling_format.build_path_base(bucket, key)
boto.log.debug('path=%s' % path)
auth_path = self.calling_format.build_auth_path(bucket, key)
>> path = self.calling_format.build_path_base(bucket, key)
Module boto.s3.connection:88 in build_path_base
<< def build_path_base(self, bucket, key=''):
return '/%s' % urllib.quote(key)
class SubdomainCallingFormat(_CallingFormat):
>> return '/%s' % urllib.quote(key)
Module urllib:1222 in quote
<< safe_map[c] = (c in safe) and c or ('%%%02X' % i)
_safemaps[cachekey] = safe_map
res = map(safe_map.__getitem__, s)
return ''.join(res)
>> res = map(safe_map.__getitem__, s)
KeyError: u'\xed'
CGI Variables
AUTH_TYPE 'cookie'
CONTENT_TYPE '; charset=utf-8'
DOCUMENT_ROOT '/htdocs'
GATEWAY_INTERFACE 'CGI/1.1'
HTTP_ACCEPT '*/*'
HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'
HTTP_ACCEPT_ENCODING 'gzip,deflate,sdch'
HTTP_ACCEPT_LANGUAGE 'en-US,en;q=0.8'
HTTP_CACHE_CONTROL 'max-age=259200'
HTTP_CONNECTION 'keep-alive'
HTTP_COOKIE 'thedatahub_net=27a7f095fcca1ea6b36df996d595e3278b16f4538862bf7f88d49e2000b9246547c8fd0e; auth_tkt=""f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode""; auth_tkt=""f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode""; ckan_user=elenaibp; ckan_display_name=""Elena Mondo""; ckan_apikey=decd48b1-49ee-4250-bff4-98ccca9c02a5; hide_welcome_message=1; __utma=119670349.1809834699.1323782464.1324293066.1324298316.4; __utmb=119670349.3.10.1324298316; __utmc=119670349; __utmz=119670349.1323782464.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)'
HTTP_HOST 'thedatahub.org'
HTTP_REFERER 'http://thedatahub.org/dataset/edit/budget-library-czeck-republic'
HTTP_USER_AGENT 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7'
HTTP_VIA '1.1 localhost (squid/3.0.STABLE19)'
HTTP_X_FORWARDED_FOR '87.114.74.190'
HTTP_X_REQUESTED_WITH 'XMLHttpRequest'
PATH '/usr/local/bin:/usr/bin:/bin'
PATH_INFO '/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf'
PATH_TRANSLATED '/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf'
REMOTE_ADDR '193.34.146.142'
REMOTE_PORT '55419'
REMOTE_USER u'elenaibp'
REMOTE_USER_DATA 'userid_type:unicode'
REMOTE_USER_TOKENS ['']
REQUEST_METHOD 'GET'
REQUEST_URI '/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ%C3%AD-%C4%8Cesk%C3%A9-republiky-_-P%C5%99%C3%ADprava-rozpo%C4%8Dtu.pdf'
SCRIPT_FILENAME '/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py'
SCRIPT_URI 'http://thedatahub.org/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf'
SCRIPT_URL '/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf'
SERVER_ADDR '193.34.146.146'
SERVER_ADMIN '[no address given]'
SERVER_NAME 'thedatahub.org'
SERVER_PORT '80'
SERVER_PROTOCOL 'HTTP/1.0'
SERVER_SIGNATURE 'Apache/2.2.14 (Ubuntu) Server at thedatahub.org Port 80\n'
SERVER_SOFTWARE 'Apache/2.2.14 (Ubuntu)'
WSGI Variables
application
beaker.cache
beaker.get_session >
beaker.session {'_accessed_time': 1324298703.071357, '_creation_time': 1324293077.4139669}
mod_wsgi.application_group 'ckan.net|'
mod_wsgi.callable_object 'application'
mod_wsgi.listener_host ''
mod_wsgi.listener_port '80'
mod_wsgi.process_group 'ckan.net'
mod_wsgi.reload_mechanism '1'
mod_wsgi.script_reloading '1'
mod_wsgi.version (2, 8)
paste.cookies (, 'thedatahub_net=27a7f095fcca1ea6b36df996d595e3278b16f4538862bf7f88d49e2000b9246547c8fd0e; auth_tkt=""f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode""; auth_tkt=""f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode""; ckan_user=elenaibp; ckan_display_name=""Elena Mondo""; ckan_apikey=decd48b1-49ee-4250-bff4-98ccca9c02a5; hide_welcome_message=1; _ _utma=119670349.1809834699.1323782464.1324293066.1324298316.4; __utmb=119670349.3.10...)|utmcmd=(none)')
paste.registry
paste.throw_errors True
pylons.action_method >
pylons.controller
pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons
pylons.routes_dict {'action': u'auth_form', 'controller': u'ckanext.storage.controller:StorageAPIController', 'label': u'2011-12-19T124447/Ministerstvo-financ\xed-\u010cesk\xe9-republiky-_-P\u0159\xedprava-rozpo\u010dtu.pdf'}
repoze.who.identity
repoze.who.logger
repoze.who.plugins {'openid': , 'friendlyform': , 'ckan.lib.authenticator:UsernamePasswordAuthenticator': , 'auth_tkt': , 'ckan.lib.authenticator:OpenIDAuthenticator': }
routes.route
routes.url
webob._parsed_query_vars (GET([]), '')
webob.adhoc_attrs {'language': 'en-us'}
wsgi process 'Multiprocess'
wsgi.file_wrapper
wsgiorg.routing_args (, {'action': u'auth_form', 'controller': u'ckanext.storage.controller:StorageAPIController', 'label': u'2011-12-19T124447/Ministerstvo-financ\xed-\u010cesk\xe9-republiky-_-P\u0159\xedprava-rozpo\u010dtu.pdf'})
}}}" dread
1661 Wrong Routes version installed by CKAN package ckan ckan-backlog defect assigned 2012-01-16T12:47:41Z 2012-06-15T15:25:49Z "Jaakko Louhio reported that the wrong Routes version got installed during CKAN's package install.
He is using Ubuntu 10.04 and he believes it install Routes 1.12.3 instead of what we use which is 1.11." dread
1041 Start Using the CKAN Wiki for Tutorial-style documentation ckan ckan-backlog enhancement thejimmyg assigned 2011-03-16T14:11:55Z 2011-08-03T11:52:47Z "For example, I will document the following:
* A specific guide on using mercurial when working with our branching and merging policy
* DONE - http://wiki.ckan.net/Becoming_a_CKAN_Developer
* Policy document on how we use tickets, plan sprints and make releases
* DONE - http://wiki.ckan.net/Becoming_a_CKAN_Developer
* How to package software as .deb file for project deployment
I'd love if someone else would write:
* An authorisation tutorial covering the core model, the command line tools and examples of every possible way of using the system
* A HOWTO guide with screenshots for adding a package
" thejimmyg
1163 Improvements to Storage Extension ckan ckan-backlog enhancement rgrp new 2011-05-26T11:19:38Z 2011-07-08T14:03:28Z "Storage is now working but there are
* Integrate with Resources (e.g. create a resource for each file upload and give option to associate with a package)
* Should we introduce rule that files *not* associated with a Resource are periodically deleted?
* Allow setting of a file name/path before upload
* Allow for file overwriting/deleting etc (how should this work -- do we want to allow this sort of thing)
* Integrate local file upload stuff in api/auth/*
== Different Backend Issues ==
Local file store is rather different from 'remote' storage in various ways:
* For remote you don't want to use many buckets as there are bucket limits while for local you want to. Should we there have a single path that users provide which we then partition differently for different backends.
" rgrp
1168 Test system for deb packaging ckan ckan-backlog enhancement thejimmyg assigned 2011-05-26T20:33:14Z 2012-03-05T23:33:43Z "Get buildbot to:
* build the deb packages
* install them into a fresh virtual machine
* run smoke tests on the installed ckan" dread
1257 Anti-Spam tools ckan ckan-backlog enhancement new 2011-08-02T11:12:45Z 2012-06-15T15:28:49Z "We are getting more and more spam on ckan.net and we need to improve our strategy of combating it. It is bad because google ranks who we link to (which we do want for legitimate links), and our front page contains the latest package edits, so spam is immediately very visible.
Spam:
* Package creation
* Package edit
* User creation
* Group creation
Systems to consider:
* Automatic
* captcha
* bayesian scoring
* Sysadmin
* a tool to quickly analyse and remove packages, edits and users
* Helpful users
* button to click indicating spam, leading to any/all of:
* add TODO item (which emails package admin and sysadmins)
* quarantine the package/user so it doesn't show up on the front page and a warning is shown when you view it
General thoughts:
* We should learn from the wikipedia tools, as they are the experts
* This is a serious problem that is only going to get worse and is a threat to the whole site." dread
1262 "Enforce ""create-user"" permission" ckan ckan-backlog enhancement new 2011-08-03T12:41:36Z 2011-12-05T13:01:52Z This does not seem to have any implications at the moment, it should lock down registration and remove all related links. pudo
1286 Remove remaining formalchemy stuff ckan ckan-backlog enhancement new 2011-08-23T16:29:56Z 2012-07-16T11:00:20Z "Stuff I've spotted:
* forms/*
* template/group/edit_form.html
* template/package/edit_form.html
This can go once new DGU form is in." rgrp
1311 Modal user register and login form ckan ckan-backlog enhancement rgrp new 2011-09-06T08:20:27Z 2011-09-06T08:20:27Z "Subticket of: #1294
Rather than having to visit a dedicated page it would be good if registration and login could be done from a modal form (separate or combined ...).
== Why ==
* It could be used from dataset creation page in situations where user needs to be registered / logged in to create a dataset (so we could allow someone to start creating a dataset and only get them to login at the end ...)
* It allows for quicker and easier logging in
== Implementation ==
* See Friedrich's work on the datahub" rgrp
1343 [super] User related improvements (login, user pages etc) ckan ckan-backlog enhancement rgrp new 2011-09-14T16:18:18Z 2011-10-13T17:48:58Z " * Disallow account creation via openid - #1386
* Require email field - #1319
* Require email confirmation to be activated (?)
* Improvements to user page (e.g. show activity and more info about user) - #1396
* Modal user login - #1311" rgrp
1352 Use logic functions instead of as_dict when indexing entities ckan ckan-backlog enhancement new 2011-09-21T14:29:57Z 2012-06-15T15:28:06Z "The current search implementation uses the output of the the as_dict method of the domain Package object to update the index
https://bitbucket.org/okfn/ckan/src/56c79e3fc44c/ckan/lib/search/index.py#cl-48
It also uses package_to_api1 in the SynchronousSearch plugin:
https://bitbucket.org/okfn/ckan/src/f9dfb0506594/ckan/lib/search/__init__.py#cl-93
This prevents extensions from being able to index custom properties (e.g. faceting by custom extras not included in the model).
The search should use the logic function to get the package properties:
{{{
get_action('package_show')(context,data_dict)
}}}
" amercader
1439 Action API discoverablility ckan ckan-backlog enhancement new 2011-11-01T15:39:30Z 2012-01-02T03:29:34Z "A good service API needs to be discoverable, so you are not always having to refer to the documentation html.
Maybe /api/action should return a list of actions available? (Currently this returns a 404.)
* It would be nice to sort these into get/create/update/delete.
* #1438 Parameters for each of the actions must be discoverable too
/api/action/{action_name} should also return the help text / parameters allowable. (Currently this returns 400 error)" dread
1489 Updating example theme/extension ckan ckan-backlog enhancement assigned 2011-11-24T12:32:00Z 2011-12-19T10:59:44Z "ckanext-example needs updating for CKAN 1.5:
* theme changes
* new forms
About: 'ckanext-exampletheme' was created in Spring 2011 as an example CKAN extension that showed how to customise the look & operation of CKAN. This moved to github and renamed 'ckanext-example'. " dread
1534 Change revisions to record userid rather than username ckan ckan-backlog enhancement new 2011-12-07T17:26:30Z 2012-05-28T11:37:30Z "The use of username is problematic because username's can change.
* Change all revision creation code to use user id (simplest is to change c.author field in lib/base.py (?))
* (?) Add a field ipaddr for ip address of anonymous users? (or just keep putting this in author field on Revision and then acception that those won't match when we do a look up against user table)
* Change user view page to look up against user id rather than name
* Perform migration on existing Revision objects
* Match should probably be against both openid and username when searching Revisions' author field (especially true on CKAN where some people have already changed their username from being their openid)" rgrp
1542 Buttons to purge spam datasets and groups ckan ckan-backlog enhancement new 2011-12-08T17:22:10Z 2012-06-15T15:26:40Z "A sysadmin should be able to easily examine a suspect group or package, determine if it was created by a spammer (as opposed to being a legitimate object that has been graffitied by a spammer) and purge it.
The existing two-stage revision delete is currently unreliable and perhaps too laborious.
Olav and Richard have needs along this line." dread
1584 QA report improvements - 2.5d ckan ckan-backlog enhancement johnglover new 2011-12-21T09:23:53Z 2012-06-06T11:26:15Z "Super: #1594
* qa/{username}
* qa/{groupname}
* paginate QA results
* search / filter QA results
* ~~list organisation report by default, but can disable via config option~~ (done)
* UX tidy up of report pages - hide border if no sidebar, etc" johnglover
1588 QA - Give SPARQL endpoints a 4 star rating ckan ckan-backlog enhancement johnglover new 2011-12-21T15:13:25Z 2012-01-02T03:32:58Z "Super: #1594
From Richard Cyganiak on the CKAN Discuss list:
Besides considering the media type of resources, it would also make sense to check for the presence of a SPARQL endpoint. SPARQL endpoints are recorded for more than 300 datasets on the Data Hub using the pseudo-type ""api/sparql"". A few more are recorded with the format ""SPARQL"". I suggest that datasets with such resources should also be considered for the fourth star." johnglover
1589 QA - Give 5 star rating to datasets with link metadata ckan ckan-backlog enhancement johnglover new 2011-12-21T15:16:40Z 2012-01-02T03:31:35Z "Super: #1594
From Richard Cyganiak on the CKAN Discuss list:
Regarding the fifth star (is the dataset linked to others?). This cannot be automatically determined just by looking at the format. It either requires inspection of the actual data, or information about links in the metadata. As you're probably aware, we've established conventions for recording information on data links in CKAN [1], as part of the work of the lodcloud group on the Data Hub. Link information is captured for hundreds of datasets. I would claim that we have the majority of four-star datasets covered there, and hence you can determine if they should get the fifth star by checking for the presence of a links:xxx field." johnglover
1827 'Register' link should be hidden if you not allowed to register ckan ckan-backlog enhancement new 2012-02-22T15:35:39Z 2012-06-15T15:22:10Z "{{{
I have just deny visitors the create-user permission:
sudo -u ckanstd paster --plugin=ckan roles deny reader create-user -c /etc/ckan/std/std.ini
sudo -u ckanstd paster --plugin=ckan roles deny anon_editor create-user -c /etc/ckan/std/std.ini
and after restarting, the register link is *not* hidden, but now when you access the register page, it shows you this message ""Unauthorized to create a user"" (when not logged in). But anyway that is an improvement.
}}}" dread
256 Package relationships - 3. Edit in WUI ckan ckan-backlog requirement assigned 2010-02-23T12:36:01Z 2012-06-15T15:38:34Z "WUI:
* Editable as part of package or separately? (e.g. like authz)
* Do we normalize to only one type name of the pair?
* Do we allow create of relationship from both ends (e.g. only from dependency to dependent or either way?)
" dread
1366 Search inside extra fields ckan ckan-future defect assigned 2011-09-29T10:09:52Z 2012-05-28T12:05:07Z "SOLR search doesn't support searching for part of an extra field, but it does for other fields.
i.e. title=""One Two Three"" matches q=one AND q=title:one
and geographic_coverage=""England Scotland"" matches q=England BUT NOT q=geographic_coverage:England
This problem emerged when we went to SOLR in #1275 (CKAN 1.5a). Tests were skipped.
This is could be a problem for DGU and maybe elsewhere.
" dread
989 Extending the model from plugins ckan ckan-future enhancement kindly new 2011-02-14T13:22:04Z 2012-06-18T15:45:11Z "We need to support extending the model from plugins. This could involve:
* Adding a plugin hook to extend the mapper
* Adding an upgrade hook for plugin schema migrations
* Documenting how this is to be done
* Find a way to avoid conflicts " pudo
1235 [super] Search Improvements ckan ckan-future enhancement new 2011-07-20T17:24:01Z 2011-07-20T17:24:01Z "Child tickets:
* #234 UI Review - Autocomplete package names & tags in search
* #193 Searching by time-related field
* #191 Searching by modification date
* #905 Unable to search with accented characters in package names
* #906 Ability to search without accents for accented words
* #924 Search box has no search button
Broadly speaking though we need to choose PostgreSQL, Solr or something else. We don't want to invest our time maintaining two search backends with a limited abstraction layer between the two." thejimmyg
1438 Action API - parameter discovery/checking ckan ckan-future enhancement new 2011-11-01T15:38:10Z 2012-05-28T11:37:30Z "Many actions in the Action API require parameters. What params are needed should be listed and checked. Because currently, if you get them wrong you simply get a useless 500 error.
Currently they are listed in the docs, extracted from the code manually.
So you could GET /action/api/package_list to receive not only the help text, but a list of arguments.
And if you send an extra or missing argument then an intelligent error message can be returned.
= implementation =
How about some sort of decorator on the action function:
{{{
@logic_params(id, offset, limit)
def get_package_list(context, data_dict):
...
}}}
This would do the param checking, and is there a way to extract these params from the function? Or do a registration of the logic function?
I'd certainly like to keep the list of the list of params for the function with the function, for ease of reading the code.
Another good thing would be to pass in the params named as themselves, rather than having them contained in the data_dict." dread
1818 Spatial metadata editor ckan ckan-future enhancement amercader new 2012-02-20T18:52:21Z 2012-05-28T11:06:35Z "Estimate 2.5d
Right now users need to manually enter a geojson value in the 'spatial' extra field in order to define a geometry for a dataset.
We need a map widget on the edit form that allows users to draw the geometry on top of a map. This will be based on the draw functions offered by OpenLayers [1], [2].
Things to take into account:
* Integration with the form sections.
* Allow some degree of configuration (default extent, limit geometry types...)
[1] http://openlayers.org/dev/examples/draw-feature.html
[2] http://openlayers.org/dev/examples/modify-feature.html
" amercader
2331 Search should AND terms not OR terms ckan ckan-sprint-2012-05-29 defect kindly reopened 2012-04-28T18:24:45Z 2012-12-25T22:25:44Z "Appears current default search in CKAN ORs terms rather than ANDing them (i.e. adding more terms increasing number of items found rather than reducing it).
Not sure when this crept in or if it has been there for a long time." rgrp
2412 More than one resource invalidatiing breaks dataset edit form ckan ckan-sprint-2012-06-25 defect zephod assigned 2012-05-22T20:05:48Z 2012-05-28T11:07:14Z "When attempting to add more than one resource at once, if more than one resource invalidates, this results in a js error, leaving the form in an inconsistent state.
Repro:
1. Go to /dataset/new
2. Add a new resource. Fill in one of the fields with an invalid value. eg - last_modified, or size...
3. Add another resource, doing the same thing: make one of the fields invalid.
4. Try to save the dataset.
5. The entered resource information will be lost, and a js error ""Uncaught Error: Can't add the same model to a set twice,: backbone.js:586"" will be thrown." icmurray
2963 Timeout on tag pages with lots of datasets ckan ckan-v1.8 defect new 2012-10-15T10:13:19Z 2012-10-15T10:13:19Z "e.g. http://thedatahub.org/tag/lod
Tags with less datasets work fine (e.g. http://thedatahub.org/tag/railways)" amercader
2279 Write tutorial for our DataStore API / Data Explorer ckan ckan-v1.8 enhancement rgrp new 2012-04-03T19:44:23Z 2012-05-28T11:43:46Z "Unfortunately ES is a little bit complex / opaque to newcomers. Need to write a simple tutorial walking through this.
This is documentation / example only (no code!)" rgrp
2363 Documentation of best caching practice. ckan ckan-v1.8 enhancement toby new 2012-05-01T16:16:57Z 2012-06-19T09:56:34Z Need better documentation on best practices in making page loads faster for non logged in users. kindly
2887 """Welcome to CKAN!"" on front page is untranslatable" ckan ckan-v1.8.1 defect new 2012-08-22T09:17:59Z 2012-08-22T09:20:33Z "ckan/templates/home/index.html contains:
Welcome to ${g.site_title}!
which means that just ""Welcome to"" ends up in the ckan.po files for
translation. This makes the phrase untranslatable in languages that have a different word ordering than English where the site title needs to be somewhere other than at the end of the sentence." seanh
2405 Improvements to data viewer embed ckan ckan-v1.9 defect icmurray assigned 2012-05-21T06:59:25Z 2012-06-25T14:53:01Z " * Decent powered by icon for the Embed for the DataHub? (make this text customizable and allow html ...)
* Current icon and text looks really bad
* Embed link uses uuid rather than dataset name (this goes to perma-url question ...)
* Data viewer embed url includes all the resource info (not needed -- just url and backend info ...)
* Embed extension urls do not respect original domain but instead use site_url (I'm guessing). E.g. datahub.io domain ends up with links to embed on thedatahub.org
" rgrp
2745 Password reset returns an exception if the key parameter is missing ckan ckan-v1.9 defect new 2012-07-24T16:05:31Z 2012-07-24T16:05:31Z "Instead of showing a notice, the password reset page throws an exception if the key parameter is missing:
{{{
Module ckan.controllers.user:329 in perform_reset
c.reset_key = request.params.get('key')
if not mailer.verify_reset_link(user_obj, c.reset_key):
h.flash_error(_('Invalid reset key. Please try again.'))
abort(403)
if not mailer.verify_reset_link(user_obj, c.reset_key):
Module ckan.lib.mailer:100 in verify_reset_link
if not user.reset_key or len(user.reset_key) < 5:
return False
return key.strip() == user.reset_key
return key.strip() == user.reset_key
AttributeError: 'NoneType' object has no attribute 'strip'
}}}
Apart from the obvious fix of checking for the 'key' parameter, it seems like is quite common to get these reset urls without the key parameter, so I suspect some email clients might strip the query params when building the links. We could avoid this problem by making the key part of the url instead of a param:
http://thedatahub.org/en/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d/b4c2d03fa8
instead of:
http://thedatahub.org/en/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key=b4c2d03fa8
" amercader
2430 Look into marking tickets as dependent on other tickets in trac ckan ckan-v1.9 enhancement seanh accepted 2012-05-25T11:58:06Z 2012-07-02T13:05:46Z seanh
2431 Trac git integration ckan ckan-v1.9 enhancement seanh accepted 2012-05-25T11:58:48Z 2012-07-02T13:06:02Z seanh
2733 Datastore logic functions ckan ckan-v1.9 enhancement johnglover new 2012-07-23T15:54:46Z 2012-07-30T13:48:25Z "== Where does the data go? ==
In a postgres database configured by the ckan.datastore_write_url config option which is a sqlalchemy url.
The user should have rights to create tables.
== Whats the api like? ==
We will just implement it as logic functions like the rest of CKAN and will part of core. After that we may add some nicer api functions that use these but that is a secondary concern.
== What are the initial logic functions? ==
* datastore_create
* datastore_delete
* datastore_show
== What is the JSON input format for datastore_create ==
To begin with it can have the following keys. It is fairly consistent with Max Ogdens' gut servers. Except adds resource_id.
{{{
{
resource_id: resource_id # the data is going to be stored against.
fields: a list of dictionaries of fields/columns and their extra metadata.
records: a list of dictionaries of the data eg [{""dob"": ""2005"", ""some_stuff"": ['a', b']}, ..]
}
}}}
* The first row will be used to guess types not in the fields and the guessed types will be added to the headers permanently. Consecutive rows have to conform to the field definitions.
* rows: can be empty so that you can just set the fields
* fields are optional but needed if you want to do type hinting or add extra information for certain columns or to explicitly define ordering.
eg: [{""id"": ""dob"", ""type"": ""timestamp"" }, {""id"": ""some_stuff"", ""type"": ""text""}, ...].
A header items values can not be changed after it has been defined nor can the ordering of them be changed. They can be extended though.
* Any error results in total failure!! For now pass back the actual error.
* Should be transactional
== What json does datastore_delete take? ==
{{{
{
resource_id: resource_id # the data is going to be deleted.
filters: dictionary of matching conditions to delete
e.g {'key1': 'a. 'key2': 'b'} this will be equivalent to ""delete from table where key1 = 'a' and key2 = 'b' "".
No filters (either not present or not defined) then delete the table. If we want truncate then add truncate: true to truncate the table.
}
}}}
== What json does datastore_search take? ==
{{{
{
resource_id: resource_id # the data is going to be selected.
filters : dictionary of matching conditions to select
e.g {'key1': 'a. 'key2': 'b'} this will be equivalent to ""select * from table where key1 = 'a' and key2 = 'b' ""
q: full text query
limit: limit the amount of rows to size default 100
offset: offset the amount of rows
fields: list of fields return in that order, defaults (empty or not present) to all fields in fields order.
sort: comma separated field names with ordering e.g ""fieldname1, fieldname2 desc""
}
}}}
Some free code: https://gist.github.com/3163864
== What json does datastore_search return? ==
{{{
{
fields: same type as datastore_create accepts (i.e. with metadata)
offset: The same offset that was supplied in datastore_show
limit: The original limit
filters: The filters that were applied in data_show
total: # total matching records without size or offset
records: [same as data_create] # list of matching results
}
}}}
On error will return:
{{{
{
__error__: … sql error …
}
}}}
== What types are allowed? ==
Aim to support as many postgres/postgis types that have string representations.
http://www.postgresql.org/docs/9.1/static/datatype.html
http://www.postgresql.org/docs/9.1/static/sql-createdomain.html
== IDs ==
Each row in a table will be given an _id column which has an id generated by us which you can use in queries.
== Other Features ==
Each row will store the _full_text index of all the data in the row. At some later point there will most likely be a way to index fields add constraints etc." johnglover
2466 Fix spam handling on trac ckan ckan-v1.9 task seanh accepted 2012-05-28T13:51:43Z 2012-07-02T13:08:59Z seanh
2818 Improve related item schema ckan demo phase 4 defect seanh assigned 2012-08-09T09:22:56Z 2012-08-29T09:15:18Z "Problem: When creating a related item (e.g. a Visualisation), if you don't put in a URL it succeeds, but on the related items and apps pages it renders it as a link to the same page.
Expected: Always require a URL and it should only submit
if one is added" danieljohnlewis
2790 logic.action.user_show is slow ckan demo phase 4 enhancement kindly new 2012-08-01T20:21:23Z 2012-08-15T09:42:14Z "This is a very slow call it would benefit from the sort of speed-ups that package-search received
for me locally this is taking 6 seconds for rufus using the datahub data I have. I think a lot of this is the dataset retrival/dictization
can we just grab json blobs from solr?
also is it possible to specify a sort order/paging?
I've put this as a demo-theme ticket as it is an big issue on the demo we are at 25 second page loads - which i can get down to about 8.8 secs so this is the main pain point now" toby
2357 Create build script for front-end resources ckan demo phase 5 enhancement aron.carroll accepted 2012-05-01T15:29:41Z 2012-07-25T12:48:44Z Should minify and concatenate JavaScript and CSS as part of #2354 aron.carroll
2641 Adapt spatial widgets to new theme ckan demo phase 5 enhancement johnmartin assigned 2012-07-09T15:02:27Z 2012-11-11T18:34:14Z Dataset extent map and spatial filter need to adapted to the new theme, as they are not showing up now amercader
1328 Unicode & paster commands ckan defect assigned 2011-09-12T10:25:10Z 2012-06-20T11:17:45Z "A possible bug in CKAN when I tried deleting users using ""paster --plugin=ckan user delete"" command.
To reproduce the bug do the following:
1. Create a user with an ID (which in my case was a user's full name)
that contains non-unicode caracters like Norwegian ""æ"", ""ø"", or ""å"".
2. Make sure that you can see something like the example below:
(pyenv) rm@mycomputer:$ paster --plugin=ckan user
Users:
name=Rustæm
3. Then try deleting the user with following command:
(pyenv) rm@mycomputer:$ paster --plugin=ckan user delete ""Rustæm""
You should now get a python encoding error. I know that this is quite
rare case, but in our case it caused some trouble. Could you guys have
a look at this bug?
CKAN ver. 1.3.3." minspamboks@…
1509 Mis-dated old revisions of datasets ckan defect assigned 2011-12-05T13:06:38Z 2012-06-20T11:13:34Z "e.g. http://thedatahub.org/dataset/osm%402011-07-12T12%3A16%3A47.590358 gives:
{{{
This is the current revision of this dataset, as edited at 2011-07-12 12:16.
}}}
but it should say the date 2011-07-12 (which is the data being displayed).
The problem is looking at PackageRevision, when it might be a tag or extra." dread
2719 Feeds controller does not catch NotAuthorized exception ckan defect new 2012-07-21T12:14:23Z 2012-07-21T12:14:23Z Results in bad user experience and WebApp errors emailed out. Seen in 1.7.1 dread
2673 simplify set of options for resources ckan enhancement new 2012-07-14T21:15:59Z 2012-07-14T21:15:59Z Far too many resource options. Lets restrict back to data file and API. Visualizations etc can either get linked in description or in the Related items. rgrp
2947 Redirect to the resource page from /resource/{res-id} ckan enhancement new 2012-10-01T13:15:25Z 2012-10-01T13:15:25Z "Use story:
As a user of the datasore I want to be able to put the resource id without the dataset name in a url and see the resource page.
Proposed redirect:
/resource/{res-id} -> dataset/foo-bar/resource/{res-id}" dominik
3026 Support icons on nav_named_link ckan enhancement amercader new 2012-11-30T18:51:56Z 2012-11-30T18:51:56Z nav_named_link won't include the nice icon even when passing the icon keyword param. amercader
2959 Changing a Group's name through the action api disassociates it from its datasets in the index ckan ckan 2.0 defect icmurray new 2012-10-04T15:18:55Z 2012-10-04T15:18:55Z "Repro:
- Create a new Group, named ""test-group"".
- Add a dataset to it.
- Verify the dataset belongs to the group by visiting the Group's read-page
- Update the Group through the action api (group_update), using the uid in the ""id"" field, and a new name in the ""name"" field.
- Visit the group's read-page. The list of datasets will be empty.
This was an issue when editing a Group through the web interface, which was fixed in [1]. However it only fixes the issue in the group controller.
[1] https://github.com/okfn/ckan/commit/dbe25d8b8d7fabfc40c5d794a920b91cec349335" icmurray
1171 Citation instructions on dataset and resource view pages ckan ckan 2.0 enhancement mark.wainwright assigned 2011-06-01T09:33:19Z 2012-09-11T10:18:25Z "Some sort of citation helper. Something small on the dataset and resource page that would show how to cite.
wwaites: Some related thoughts on this from opb: http://homepages.inf.ed.ac.uk/opb/papers/ssdbm2006.pdf
timclicks: I'm looking at Dataverse for the first time[0]. It seems very popular in the social sciences. I noticed that there is a recommended citation for each dataset. For example, [1] is has this one: ""Targeted Input Programme (TIP) 2000-01"", http://hdl.handle.net/1902.1/SSC-MWI-TIP2000-01-M1 V1 [Version]""
== Implementation ==
Add a small box at bottom of dataset / resource page (or in sidebar on dataset page) with title ""Cite this"" with contents like:
%title. %author. Retrieved %date. %site_title.
For resource: %title = %dataset_title. %resource_name.
Could also add export to ref managers (e.g. to bibtex) but that is for later." dread
2831 Create a limited subset of markdown that's supported ckan ckan 2.0 enhancement new 2012-08-09T11:41:07Z 2012-08-09T11:41:07Z "Allowing people to use the full range of markdown results in extremely messy output across the site. I'd suggest limiting support to only a subset of common use cases.
* Allow all inline elements, this allows bold, italic, code and links.
* Allow lists.
Disallow
* Horizontal Rules
* Headings
* Block quote and code (this may turn out to be useful and so could be included)
This way you get markdowns paragraph handling and a few inline styles without breaking the entire layout of the page.
Here's the full syntax if anyone is interested http://daringfireball.net/projects/markdown/syntax" aron.carroll
2951 Paster command for building css from less ckan ckan 2.0 enhancement new 2012-10-01T19:12:20Z 2012-10-02T10:50:30Z "With the latest template, css and js changes in 2.0, there are a number of things that need preparation prior to a production deployment. One of these is:
- the less files should be compiled to css (main.css, not just main.debug.css)
This ticket is to provide a paster command which will compile the .less into the main.css file. The idea of the paster command is that it will be run by developers, and they will check in the resulting .css files. It will also provide a convenient mechanism for production scenarios with node.js installed on the production server, as they will be able to compile the .less there as well.
## Background
The .css files that need to be served are built using `less`. The css files that are generated *are* checked-in to the repo; but they are a build artifact. So the general workflow is:
- commit changes to the less files
- build the main.css file and commit
This paster command slots into the above workflow for convenience.
## Notes
- doc/frontend-development.rst
- bin/less
to run this paster command, `Node` will be required. So that dependency should be checked.
## The paster command
This is the proposed behaviour of the paster command:
- ensure `custom.less` does not exist
- for each colour in{fuchsia,green,maroon,red}:
- generate a `custom.less` file for $colour. There's a paster command that does this already: `paster color .
- generate the `css` from the `less` files. ie - the equivelant of running `bin/less --production`.
- this will generate a `main.css` file, which should be renamed to `$color.css`.
- ensure `custom.less` does not exist
- generate the `css` from the `less` files. This will create a `main.css` with the default colour scheme.
- call the paster command that minifies css and js files. (This command does not exist yet, see #2950)" icmurray
2952 incorporate javascriopt translations into translations workflow ckan ckan 2.0 enhancement seanh new 2012-10-01T19:15:45Z 2012-10-01T19:15:45Z There are now javascript translations. There's a paster command, `trans js`. This is a ticket to ensure that using `trans js` is documented in the normal ckan translation workflow (which is followed after a feature freeze, prior to release). And to see if there's any need for further incorporation into the current translation process. icmurray
2996 Fix behaviour of View Profile button in user popover when already on user's profile ckan ckan 2.0 enhancement new 2012-10-17T14:30:38Z 2012-10-17T14:30:38Z "The user popovers that appear when you hover the mouse over a user in an activity stream include a View Profile button that takes you to that user's profile page. If you are already on that user's profile page then it simply reloads the same page, but it sends you to the Datasets tab if you were on another tab.
Possible solutions:
Don't show button if already on user's page?
Button just makes popover disappear, if already on user's page?
Button does reload the page, but reloads the same tab (datasets, followers, activity stream) that you were on.
Marking this low priority" seanh
1062 Data preview encoding error ckan ckan-backlog defect johnglover assigned 2011-03-29T10:55:43Z 2011-07-27T13:35:31Z "The preview of ""Species Misc Turtle Download"" at http://ckan.net/package/taxonconcept results in the following error:
Unable to Preview - Had an error from dataproxy:
Data Transformation Error (Data transformation failed. Reason: 'utf8' codec can't decode byte 0x8b in position 1: unexpected code byte
" sebbacon
1288 Package edit/creation can't include 'relationships' field ckan ckan-backlog defect new 2011-08-24T16:34:55Z 2012-06-15T15:28:18Z "When you create or edit a package (via the API), you aren't able to specify the relationships it has. (If you do you get 409 {{{ {""__junk"": [""The input field __junk was not expected.""]} }}})
The normal way to create relationships is via /api/rest/relationships/ and this works. But when you GET a package, the dictionary lists all relationship details. So this bug creates a problem for editing a package that has relationships - you want to GET it, make any edits and then PUT it back. The work-around is to delete the 'relationships' key from the dict before you PUT it back.
== Options ==
Ideally, CKAN would read the 'relationships' key and make the necessary changes. This is a chunk of work.
Another good option is to allow an unchanged 'relationships' value, but barf it is edited. This is also a chunk of work.
A bad option would be to just ignore the 'relationships' value, since users will get frustrated changing this value and wonder why it never saves, not understanding it is different to all the rest, without error message.
A final option is to get rid of relationships altogether." dread
1336 License fudge ckan ckan-backlog defect johnglover new 2011-09-13T11:07:37Z 2011-12-06T12:04:33Z "cset:4b59ab34137d ckan/logic/action/get.py:
{{{
- isopen = model.Package.get_license_register()[license_id].isopen()
- result_dict['isopen'] = isopen
+ try:
+ isopen = model.Package.get_license_register()[license_id].isopen()
+ result_dict['isopen'] = isopen
+ except KeyError:
+ # TODO: create a log message this error?
+ result_dict['isopen'] = False
}}}
This change hides problems with the license server and returns potentially incorrect values for openness.
This has been noted as 'temporary fix' but seems to be forgotten about, since it has been merged to default and gone into release 1.4.3.
I suggest the licenses are cached (I thought this was already the case when CKAN first requests them after start-up?). I suggest failure would return 503." dread
2395 paster db clean/init don't work when spatial extension enabled ckan ckan-backlog defect new 2012-05-16T09:16:33Z 2012-06-15T14:41:53Z "If you have a spatial enabled database then if you don't disable the spatial extension in the CKAN config temporarily then you get errors when you run paster db clean and paster db init.
Can't you just modify the clean and init functions to run without extensions enabled?
The wider problem is that extensions do their own inits every time you do load_environment, which seems crazy and inefficient to me, since this occurs every time a request comes into CKAN. But that is another problem/ticket." dread
143 Most active users listed on homepage ckan ckan-backlog enhancement thejimmyg assigned 2009-10-08T13:59:33Z 2011-08-03T11:53:01Z Display league of users' recent activity on homepage. dread
924 Search box has no search button ckan ckan-backlog enhancement new 2011-01-24T11:12:13Z 2011-12-06T11:20:36Z "The search box at the top-right of CKAN's page doesn't have a 'go' button. I feel that a larger percentage of users expect a 'go' or 'search' button on the right-hand side of the box to press to start searching. Techies tend to know the keyboard shortcut of pressing 'carriage-return' but it might be better to follow standard practise on this.
Examples with 'search' button: Internet Explorer, Firefox, Google, Amazon, trac
Examples without: ?" dread
1259 """Add a row"" for Extras on Package form" ckan ckan-backlog enhancement johnglover new 2011-08-02T16:31:33Z 2011-08-09T16:24:16Z "The default package form offers 4 empty extras fields. Like the resource section, it should have an ""add more"" button to add another row. " pudo
1314 ckanclient search - generator improvements ckan ckan-backlog enhancement assigned 2011-09-07T11:36:50Z 2012-06-20T11:20:33Z "Apparently the search generator always makes two requests, even if you don't want to see the search results, which might be slow. Can this be optimised?
Maybe we should also provide a second search function that doesn't use the generator - the original simple search function (that leaves the user to deal with limit & offset)." dread
1326 Write a set of auth plugin functions to integrate with Druapl ckan ckan-backlog enhancement new 2011-09-12T09:51:24Z 2011-09-12T09:51:24Z Ticket #787 described join auth between CKAN and Drupal. The authentication part is live and implemented. This ticket is a placeholder for work that will be needed in the new auth system to link authorization functions to Drupal. It is dependent on the groups refactor. thejimmyg
1393 Don't skip search tests ckan ckan-backlog enhancement johnglover assigned 2011-10-13T11:30:53Z 2011-11-01T13:19:50Z Now we don't use postgres search, all the tests involving search now don't need to be skipped when running on sqlite. Should help coders spot earlier if these tests break. dread
1424 Openness notice should be clearer ckan ckan-backlog enhancement new 2011-10-26T16:54:49Z 2011-10-26T16:54:49Z "ckan-discuss discussion suggests changes to the 'openness' indicator
( http://lists.okfn.org/pipermail/ckan-discuss/2011-October/001786.html )
Dataset view page:
* If there is an explicit but non-OKD compliant license, such as CC-BY-NC, then this should be stated explicitly, perhaps: “This dataset is Not Open. License: Creative Commons Attribution Noncommerical. This is not an open license as it does not meet the Open Knowledge Definition.”
* If the license is marked as “Other::License Not Specified”, then this should be stated explicitly, perhaps:
“This dataset is Not Open. It is published without an explicit license, the publisher reserves all rights to the dataset.”
* 3. If the license field was left empty by the contributor of the Data Hub record, then again this should be stated explicitly, perhaps: “This dataset is Not Open. The license of this dataset is unknown or unspecified. Start an enquiry on IsItOpenData »
* There is a bug so that non-open licenses doesn't have an openness notice.
* If downloadable resources are not available, this should not affect 'openness' - check this has been removed." dread
2247 Resource preview glitch in some browsers ckan ckan-backlog enhancement new 2012-03-20T12:30:14Z 2012-03-20T12:30:14Z "From Ira:
Preview for google spreadsheets are not displaying correctly for me in Firefox v.10.0.02, fine in Chrome.
http://i.imgur.com/KJaqz.png" zephod
2310 Refactor the search-query construction in feeds.py ckan ckan-backlog enhancement icmurray new 2012-04-16T16:01:31Z 2012-05-16T09:09:46Z "The feeds controller, used to construct atom feeds, duplicates code found in the package controller's search action (in order to construct the custom feed).
Refactor this to remove duplication." icmurray
2277 Use the new atom feeds in IATI ckan ckan-backlog refactor icmurray new 2012-04-02T17:10:28Z 2012-04-02T17:10:28Z Atom feeds have been implemented in core in #1593. The IATI-specific implementation can now be removed when IATI move to CKAN >= 1.6.1 icmurray
1544 delete old git branches ckan ckan-backlog task new 2011-12-12T15:10:10Z 2011-12-12T15:10:10Z "We have 150 odd branches ({{{git branch -a}}}) - most of them old - we should prune them. At very least, branches that have been merged in should be deleted. Look at old branches that haven't been merged in and wonder why.
May be of some use:
{{{
git branch --merged
git branch --no-merged
}}}" dread
763 Read-only mode - Setup ckan ckan-future enhancement assigned 2010-10-26T11:11:46Z 2012-05-28T11:56:44Z "Admin configures entering read-only mode in one of two places:
* CKAN config file (e.g. ckan.ini)
* environment variable from Apache config
Once enabled, no writes can occur to the database (including user ratings and other usage stats)." dread
948 Highlight (to a sysadmin) which packages are deleted ckan ckan-future enhancement assigned 2011-02-02T11:32:49Z 2012-05-28T11:58:00Z "When a customer logs in as a sysadmin then he/she see all packages, including deleted and pending ones. These are hidden to the average user, but the sysadmin has no idea of this until he clicks on the package and sees at the bottom 'state: deleted'.
It should be more obvious than that on the search view - an icon, message or crossed-out name to packages are deleted." dread
1285 Errors cause emails ckan ckan-future enhancement assigned 2011-08-23T16:29:04Z 2012-05-28T11:55:51Z "Currently a sysadmin gets an email when an exception is not caught. But there are occasions when we DO want to catch an exception so we can fail nicely for the user, but the sysadmin STILL gets an email to know to fix something.
e.g. if there is an exception when search indexes a package. You want to catch the exception and still run any other notify calls.
" dread
1581 Blog post about Google Analytics extension for CKAN ckan ckan-future enhancement mark.wainwright@… new 2011-12-20T17:40:00Z 2012-01-02T03:17:54Z "The CKAN Google Analytics extension has been updated to work with the latest version of CKAN, could make for a nice blog post.
Can ping John Glover in January for any details required.
Key link is: http://thedatahub.org/analytics/dataset/top though this should probably move to be under stats (e.g. http://thedatahub.org/stats/usage)" johnglover
2301 Replace old-style string formatting with format() method (at least in strings marked for translation) ckan ckan-future enhancement seanh new 2012-04-16T12:27:44Z 2012-06-25T14:50:12Z "Some strings in CKAN are passed to gettext with more than one %s in them, this is no good as translators may need to change the order of substituted words.
Strings should not use the old style % substitution, they should use the new format method in Python 2.6+, e.g.:
'This {food} is {adjective}.'.format(food='spam', adjective='absolutely horrible')
http://docs.python.org/release/2.6.8/tutorial/inputoutput.html#fancier-output-formatting
We should probably only change strings that are marked for translation and that contain multiple %s, don't want to make too much work or cause too many strings to change and need to be re-translated." seanh
2326 dataset permalinks ckan ckan-future enhancement toby new 2012-04-25T16:39:06Z 2012-05-28T13:46:39Z "create permalinks
eg \dataset\~a5-DQ\nice-name
~XXXXX defines the permalink the nice-name is ignored
* packages table needs a new field for this data
* existing datasets need updating
* new datasets need the identifier creating
* routing needs updating
* needs to work for all urls like edit
Once this is implemented we can decide when we will use permalinks vs the normal urls." toby
2348 Java client library for CKAN ckan ckan-future enhancement assigned 2012-05-01T13:46:20Z 2012-09-03T11:00:24Z "Start a Java library for interacting with the CKAN Action API.
Currently requires support for Groups, Tags, Resources, and Search.
An example app would be very useful." ross
2433 API uses name not id for some version 3 calls ckan ckan-v1.8 defect toby new 2012-05-25T14:54:08Z 2012-06-19T09:57:00Z see https://github.com/okfn/ckan/pull/5 toby
3002 API v1/2 'legacy' search parameters must be escaped before they are put into a Solr query string ckan ckan-v1.8 defect new 2012-10-19T09:32:22Z 2012-10-19T09:32:22Z "Just to track @tauberer patch on Github.
Would be nice to write a test for it. Probably going to 1.8.1" amercader
2294 Unauthorized action on Data API gets 302 rather than 401 or similar ckan ckan-v1.9 defect kindly assigned 2012-04-14T19:35:04Z 2012-06-25T11:33:23Z "Well known issue that 401 *in API* end up with 302 redirect to login page (which makes no sense and is very confusing for clients).
Fix this by ensuring that error messsages on API get passed through correctly.
Minor because affect is annoying but not terminal" rgrp
2203 Data Viewer support for PDF ckan ckan-v1.9 enhancement kindly assigned 2012-03-04T11:24:53Z 2012-09-25T10:29:21Z " * Boot viewer for format/mimetype: application/pdf, application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf
* propose we use pdf.js - https://github.com/mozilla/pdf.js
* We could also try iframing for browsers with native support but this seems more complex" rgrp
2243 Fix ckanext-example ckan ckan-v1.9 enhancement seanh reopened 2012-03-19T15:58:30Z 2012-06-25T14:49:28Z seanh
2298 Add sort-by controls to the search results page ckan ckan-v1.9 enhancement icmurray new 2012-04-16T09:39:22Z 2012-06-25T14:52:27Z "Sort-by functionality was exposed through the package controller in [1]. But no controls were added to the search-page.
* What should the sortBy controls/widget look like?
* Which fields should be exposed?
The above commit is in the release-1.6.1 branch, so this work is dependant upon release-1.6.1 from being merged into master.
[1] https://github.com/okfn/ckan/commit/8685c6000d1cb211928b4dbc63990fb72d884f8c" icmurray
2341 Fix Jenkins issue when testing branches that contain model changes ckan ckan-v1.9 enhancement seanh accepted 2012-05-01T12:46:36Z 2012-06-25T15:51:12Z seanh
2342 Fix Jenkins issue when testing branches with different solr schema versions ckan ckan-v1.9 enhancement seanh accepted 2012-05-01T12:47:25Z 2012-06-25T15:51:34Z seanh
2350 Hooks in package controller for validating form data ckan ckan-v1.9 enhancement icmurray new 2012-05-01T14:16:01Z 2012-06-25T14:52:46Z "When the validation schema was moved from the package controller into the logic layer, the schema's role was changed from that of processing a form and validating data; to just validating data. Whilst is makes sense to have a schema for validating data as it comes in and leaves the logic layer; there's no longer the hook available to PackageController subclasses to do form validation/processing.
Add a hook into _save_new() and save_edit() prior to the logic-layer call which subclasses can then override.
NB - form processing/validation *is* different to validating data. For example, many data can be inferred from a user's input; or there may be aspects of the form that need to be filled in, but do not make sense to pass as data into the logic-layer, eg. agreeing to T&Cs.
- [ ] Add hooks
- [ ] Use in ckanext-example" icmurray
2530 DataHub purge fails on some revisions ckan ckan-v1.9 enhancement kindly new 2012-06-15T08:54:58Z 2012-07-02T22:31:20Z "See http://datahub.io/ckan-admin/trash and try to purge revisions (*not* datasets). It will fail on some of the revisions with errors like:
Problem purging revision 391db9e8-df57-4e0e-8fe6-d4e0c2318344: (IntegrityError) update or delete on table ""revision"" violates foreign key constraint ""group_extra_revision_revision_id_fkey"" on table ""group_extra_revision"" DETAIL: Key (id)=(391db9e8-df57-4e0e-8fe6-d4e0c2318344) is still referenced from table ""group_extra_revision"". 'DELETE FROM revision WHERE revision.id = %(id)s' {'id': u'391db9e8-df57-4e0e-8fe6-d4e0c2318344'}" rgrp
2679 Change default behaviour of TemplateController.view to 404. ckan ckan-v1.9 enhancement icmurray new 2012-07-16T10:55:33Z 2012-07-16T10:55:33Z "The current behaviour of TemplateController.view() (which is the fallback controller should all others fail) is to attempt to render (as a genshi template) the requested file.
Although this may be a feature that some instances want. In general, it leads to:
- 500s when attempting to access a normal template (eg - http://datahub.io/importer/preview)
- A way of inadvertantly serving things you may not want to serve. (Small risk, as it needs to be renderable as a genshi template).
Solution:
- Change the controller to 404
- Ensure there's a way for existing ckan instances to override that behaviour should they need it." icmurray
2603 Remove deprecated 'fields' parameter from resource_search ckan ckan-v1.9 refactor icmurray new 2012-06-26T17:10:01Z 2012-06-26T17:10:01Z The fields parameter of resource_search was deprecated when fixing #2438. It can be removed in release 1.9, and the action tidied up as a result. icmurray
2621 Remove the deprecated 'fields' parameter from tag_search and tag_autocomplete ckan ckan-v1.9 refactor icmurray new 2012-06-28T16:22:49Z 2012-06-28T16:22:49Z "This was deprecated in 1.8 as it wasn't accessible via GET requests due to being a dict. See #2439
In a future release of CKAN (probably 1.9) it can be removed.
Internal uses of it were removed in #2439, but there are tests that still use it." icmurray
2336 Move Jenkins' install script into ckan core so it can be versioned ckan ckanbuild enhancement seanh accepted 2012-04-30T13:35:14Z 2012-06-25T15:53:57Z seanh
2446 Create demo dataset history/comparison page ckan demo phase 4 enhancement johnmartin assigned 2012-05-28T13:12:18Z 2012-11-11T18:33:39Z "This is a low priority for the demo site.
Discussion:
https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62414120/comments
Implementation:
http://s031.okserver.org:2375/dataset/history/adur_district_spending" aron.carroll
2457 Create demo tags list page ckan demo phase 4 enhancement johnmartin assigned 2012-05-28T13:28:55Z 2012-11-11T18:34:38Z "This includes the tag page as well for now.
Discussion:
https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62998445/comments
Implementation:
http://s031.okserver.org:2375/en/tag" aron.carroll
2461 Create demo revisions page ckan demo phase 4 enhancement toby assigned 2012-05-28T13:34:15Z 2012-08-09T20:23:58Z "I believe this is to be merged in with site activity.
Discussion:
https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts
Implementation:
http://s031.okserver.org:2375/en/revision" aron.carroll
2698 markdown preview ckan demo phase 4 enhancement toby assigned 2012-07-18T14:01:25Z 2012-08-09T20:14:12Z for description / other fields with markdown support shevski
2775 Add bin/less to paster serve command ckan demo phase 4 enhancement toby new 2012-07-30T22:01:26Z 2012-08-09T20:26:02Z "Ideally the ./bin/less command would be run when the server is started.
* Also it would be good to have a paster command to build the production CSS with {{{ ./bin/less --production }}
* The command could also detect missing node binaries and redirect to the documentation." aron.carroll
2822 Resource additional info titles format/i18n ckan demo phase 4 enhancement toby new 2012-08-09T09:30:20Z 2012-08-09T20:26:25Z "the title for additional info should be translated
capitalised etc" toby
2834 Defer all publish calls until all modules have been initialised ckan demo phase 4 enhancement new 2012-08-09T17:08:13Z 2012-08-13T11:18:12Z "Currently if a module uses sandbox.publish() in its initilaize() function then any modules initialised afterwards will miss the event.
We should queue all calls to .publish() in the pubsub module in an array until all modules have loaded then iterate over and execute them." aron.carroll
2850 Add JSON support for IE7 ckan demo phase 4 enhancement new 2012-08-14T10:38:12Z 2012-08-14T10:38:12Z "The JavaScript just isn't going to work without it. Look into either the newer JSON3:
http://bestiejs.github.com/json3/
or the old faithful:
https://github.com/douglascrockford/JSON-js/" aron.carroll
2674 Data preview not loading on s031 ckan demo phase 5 defect kindly assigned 2012-07-16T10:38:22Z 2012-08-07T14:22:04Z "Not loading for all resources as far as I can tell; e.g. http://s031.okserver.org:2375/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360
Fine on demo.ckan.org" shevski
2906 Wrong flags in language dropdown ckan demo phase 5 defect new 2012-09-05T16:05:44Z 2012-09-05T16:34:49Z "The flags in the dropdown on details pages are not right.
You can see the error on http://s031.okserver.org:2375/dataset/malawi-aid-projects/resource/b717c20e-2006-4ad4-82d2-59b57ebc1ab0." dominik
2416 Normalise resource/data types ckan demo phase 5 enhancement toby accepted 2012-05-23T17:09:06Z 2012-07-18T13:23:22Z "Currently we have far too many types that are essentially the same format. The new demo theme is using icons for common types. So we need to normalise the common formats into pretty strings. e.g. application/json, JSON, .json and json all should be output as “json”
See the following Basecamp thread for UI examples and discussion.
https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61906351/comments#comment_179681056" aron.carroll
2451 Create demo user list page ckan demo phase 5 enhancement johnmartin assigned 2012-05-28T13:20:13Z 2012-11-11T18:35:02Z "Discussion:
https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/62268474/comments
Implementation:
http://s031.okserver.org:2375/user" aron.carroll
2493 Demo site 404 needs some love ckan demo phase 5 enhancement aron.carroll accepted 2012-06-06T12:34:41Z 2012-07-24T13:16:55Z "templates/error_document_template.html
I've converted the 404 page to the new style but we probably want to serve this as a 'full page' ie content is 100% page width not sidebar and primary content
just go to a non-existant url to see
Discusion:
https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/63374042/
Implementation:
http://s031.okserver.org:2375/404" toby
2555 Demo site needs a breadcrumb helper ckan demo phase 5 enhancement toby new 2012-06-18T13:43:03Z 2012-07-18T13:33:04Z Something to make building breadcrumbs a bit nicer aron.carroll
2644 user dashboard for demo theme ckan demo phase 5 enhancement shevski assigned 2012-07-10T09:00:21Z 2012-08-06T12:23:56Z "we now have a user dashboard that needs theming not sure if we need sam to look at it
http://localhost:5000/user/dashboard" toby
2785 Allow resources to be re-ordered ckan demo phase 5 enhancement johnmartin assigned 2012-08-01T10:22:03Z 2012-08-29T10:25:16Z "Not sure where this functionality should be added, possibly in one of the sidebar widgets when editing a resource?
Ira, what are your thoughts?" aron.carroll
2823 resource additional info title order ckan demo phase 5 enhancement toby new 2012-08-09T09:32:53Z 2012-08-09T09:32:53Z "Order the items so that none user fields are first from ticket #2707
" toby
2833 Load module templates before calling .initialize() ckan demo phase 5 enhancement new 2012-08-09T17:05:39Z 2012-08-09T17:05:39Z "I think this would be a nice feature for remote loading templates if the options.template value ends in "".html"".
{{{
ckan.module('my-module', {
options: {
template: 'my-template.html'
},
initialize: function () {
this.template // This is the loaded template.
}
});
}}}" aron.carroll
2835 Client module needs a template loading method ckan demo phase 5 enhancement new 2012-08-09T17:10:33Z 2012-08-09T17:10:33Z "{{{
Client#getTemplate(name, params, success, error);
}}}
Where params, success and error are optional arguments. test/index.html already has an implementation called loadFixture()." aron.carroll
2901 Language Dropdown bug in footer with IE7 ckan demo phase 5 enhancement new 2012-09-04T10:31:14Z 2012-09-04T10:31:14Z "The language dropdown in Internet Explorer 7 behaves oddly. Essentially I think the problem is with the way that the dropdown decides to go into ""drop-up mode"" (e.g there aint enough screen space below the initial state so it has to drop up)." johnmartin
2656 Feed with few results has bad paging link, causing exception ckan defect seanh new 2012-07-11T10:05:12Z 2012-07-11T10:05:12Z "This page http://thedatahub.org/feeds/custom.atom?q=wombat has 0 results and contains a link to http://thedatahub.org/feeds/custom.atom?q=wombat&page=0 which the page=0 causes this exception:
{{{
ckan.lib.search.common.SearchError'>: SOLR returned an error running query
Error: ""'start' parameter cannot be negative""
}}}" dread
1261 Investigate dots in extras search ckan ckan-backlog defect new 2011-08-03T10:19:28Z 2011-08-03T10:19:28Z It seems that searching for extras_foo:value works with solr, but extras_foo.bar:value doesn't. No theory on why. pudo
1317 password reset - improve user search ckan ckan-backlog defect assigned 2011-09-07T17:12:19Z 2012-06-20T11:20:21Z "In password reset, it gets confused if you have two similar users. This is because with the string the user provides, it searches several fields, not just name but also fullname and email address, allowing you to search for these. But only name is unique.
Specific problem:
Ira searches for ""Irina"" then it finds both:
{{{}}}
(I think)
Maybe need to choose which field it searches?" dread
1260 Remove duplicate functions from _util.html ckan ckan-backlog enhancement new 2011-08-03T10:17:32Z 2011-08-15T09:44:59Z There seems to be both a list view for dictized and non dictized data structures for all entities in _util.html at the moment. Probably in the back of someone's mind already, but cleanup here would be nice. pudo
1647 add links to ckan discuss & dev to thedatahub ckan ckan-backlog enhancement new 2012-01-16T00:30:52Z 2012-01-16T09:49:43Z In the footer as well as more clearly & directly on the About page shevski
1823 Spring clean bin directory ckan ckan-backlog enhancement new 2012-02-20T21:28:51Z 2012-05-28T11:12:34Z Huge number of accumulated (and likely unnecessary) scripts in /bin directory. rgrp
2622 Login fails in Opera 12 ckan defect new 2012-06-28T16:56:42Z 2012-06-28T16:56:42Z "Try to login to CKAN using Opera 12, get ""Login failed. Bad username or password. (Or if using OpenID, it hasn't been associated with a user account.)""" seanh
2784 model dictize sensitive data ckan defect icmurray new 2012-08-01T09:51:25Z 2012-08-01T09:51:25Z The model dictize layer doesn't consistently remove sensitive data from the dictized models. It should use the current context to decide whether to include sensitive data or not. icmurray
3013 common-error-messages is unreadable ckan defect dominik new 2012-11-10T13:18:25Z 2012-11-10T13:18:25Z "Since the update of the doc theme, the page became unreadable.
http://docs.ckan.org/en/latest/common-error-messages.html" dominik
3029 JSONP parameter scuppers Search in API ckan defect seanh assigned 2012-12-11T15:00:35Z 2012-12-11T16:37:04Z "{{{http://datahub.io/api/2/search/package?jsonp=jsonpcallback&q=canada}}} returns
{{{
{""count"": 0, ""results"": []}
}}}
I believe this worked in CKAN 1.4 or 1.5, but it is broken on 1.7.1, 1.8 and whatever demo.ckan.org is running. I suspect the jsonpcallback parameter is getting sent to SOLR.
This bug prevents using javascript on another site to search CKAN (although hopefully the action API would work)." dread
285 Paginate list of packages on tag read page ckan enhancement assigned 2010-04-07T18:23:26Z 2012-06-25T13:45:23Z "Is this worth doing? On hmg.ckan.net start to have a lot of packages with a given tag ...
" rgrp
301 Package discussion pages ckan enhancement assigned 2010-04-26T16:57:13Z 2012-06-25T13:47:35Z "A package discussion page is like a wikipedia discussion page: an editable free text page for people to have discussion/post comments about a given package.
It provides a way for people to make suggestions about a package without needing access to main package." rgrp
1069 Stub datasets (request for datasets) ckan enhancement tobes assigned 2011-04-01T14:08:39Z 2012-06-25T13:50:15Z "Idea is to have stubs for datasets that someone wants but don't yet exist (or haven't been discovered) in the way one has stub pages on a wiki.
We could do this within the existing model by a slight 'abuse' - create a dataset and mark it with a special tag e.g. todo.does-not-yet-exist or similar ...
(Just as we have datasets listed that exist but aren't available ...)
Alternative would be to have a request for datasets subsystem.
I prefer the stub dataset model because it's simpler, provides a simple workflow (as a dataset is found or comes into existence), and the package page provides a natural space in which to accumulate information about what is wanted and what exists.
== Implementation ==
* Agree a new dedicated tag. e.g. todo.does-not-exist
== Related ==
* This ticket has clear links to http://getthedata.org/" rgrp
1130 First time users ckan enhancement assigned 2011-05-09T10:59:21Z 2012-06-25T14:11:54Z Send users to FAQ first time on CKAN lucychambers
2535 SSL certificate for DataHub + https by default ckan enhancement assigned 2012-06-15T11:00:27Z 2012-09-03T08:48:02Z "DataHub is increasingly used and we should ensure it uses ssl as part of general security.
See also #1446 (Need to support https login for multiple instances as part of the CKAN package install)" rgrp
2683 Add no-cache header to _tracking API call's response to make sure it doesn't get cached ckan enhancement new 2012-07-16T13:49:37Z 2012-07-16T13:49:37Z seanh
2688 Allow ordering of groups in WUI ckan enhancement new 2012-07-17T10:27:55Z 2012-07-17T10:27:55Z Currently the group_index page just shows the entire list of groups, forcing the ordering to be by name. It would be better if it could be sortable by name (or reversed) or by package_count (or reversed) ross
2709 Atom feeds are undocumented ckan enhancement icmurray new 2012-07-18T15:11:50Z 2012-07-18T15:43:32Z There doesn't seem to be any documentation yet for Atom feeds. markw
2731 Some sites permanently 'down for maintenance' ckan enhancement new 2012-07-23T12:06:08Z 2012-07-23T13:53:28Z "A large number of XXX.ckan.net sites give the following message:
""This Site is Down for Maintenance
We apologize for the inconvenience.
~ The Open Knowledge Foundation sysadmins.""
The message is unhelpful and patently false - the sites do not exist. Some of them were supposed to have been redirected to a relevant group at thedatahub.org in this ticket (now closed):
http://trac.okfn.org/ticket/933
However, the redirection only seems to have worked in one case, http://si.ckan.net.
The problem still affects the following sites - the first 4 of which have supposedly been merged:
* http://lt.ckan.net
* http://hu.ckan.net
* http://be.ckan.net
* http://gr.ckan.net
* http://nz.ckan.net
* http://bg.ckan.net
* http://fi.ckan.net
* http://katalogdanych.centrumcyfrowe.pl
* http://pl.ckan.net
* http://southampton.ckan.net
* http://sl.ckan.net
Please sort this out by redirecting, removing the sites, giving a more helpful (and accurate) failure message, etc, as appropriate." markw
2777 bug: user attributes ckan enhancement new 2012-07-31T09:19:23Z 2012-07-31T09:19:23Z icmurray
2796 Need a datahub one-pager ckan enhancement mark.wainwright new 2012-08-02T16:28:36Z 2012-08-16T15:04:55Z "A one-pager explaining what the datahub is and with howto/examples for new users. This would make it much easier to explain the value in using the datahub for storing data.
" ross
2814 Demo: upload file behaves oddly ckan enhancement shevski assigned 2012-08-08T10:06:00Z 2012-09-03T11:06:21Z "3. Uploading a file behaves counter-intuitively (I would suggest wrongly).
When adding a new resource by uploading a file, I select a file called
say create-group.png. I expect the following to happen:
* the pathname of that file is filled in the box;
* nothing is actually uploaded till I hit 'add' (confirming that I've got the right file etc).
Instead of this,
* the file is immediately and, seemingly, irrevocably uploaded;
* the box is filled with a mysterious URL (https://commondatastorage.googleapis.com/ckan-demo ...)
* the mysterious URL is so long I can't even see the final element, which is my file name.
" markw
2844 SQL-only (no solr) version of CKAN ckan enhancement new 2012-08-13T11:59:28Z 2012-08-20T09:22:07Z " * ~~Search needs to run of local DB (again)~~
* paster db clean attemps to connect to SOLR (still works as does db first but then excepts which is not nice UX)" rgrp
2851 Preview of PDF tries to connect to datastore ckan enhancement new 2012-08-15T12:12:46Z 2012-08-15T12:12:46Z "e.g. http://datahub.io/dataset/ccc-gistemp/resource/80ebdbd6-d91b-4fef-9db4-d3dfbd7e868e
CKAN attempts to render the PDF as a datastore tabular date even though the mimetype of the PDF is correctly specified." ross
2870 1.8 tag_list not defined ckan enhancement seanh new 2012-08-16T10:58:52Z 2012-08-16T10:58:52Z "From:
Date: Thu, Aug 16, 2012 at 3:20 AM
Subject: WebApp Error: : ""tag_list"" not defined
To: ckan-sysadmin@okfn.org, kindly@gmail.com
URL: http://ckan.net/dataset/uk-postboxes
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:155 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:131 in __call__
<< r'\1', oldpath)
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:239 in __call__
<< try:
res = WSGIController.__call__(self, environ, start_response)
finally:
model.Session.remove()
>> res = 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.package:322 in read
<< template = template[:template.index('.') + 1] + format
return render(template, loader_class=loader)
def comments(self, id):
>> return render(template, loader_class=loader)
Module ckan.lib.base:153 in render
<< try:
return cached_template(template_name, render_template,
loader_class=loader_class)
except ckan.exceptions.CkanUrlException, e:
raise
>> loader_class=loader_class)
Module pylons.templating:249 in cached_template
<< return content
else:
return render_func()
>> return render_func()
Module ckan.lib.base:102 in render_template
<< if loader_class == NewTextTemplate:
return literal(stream.render(method=""text"", encoding=None))
return literal(stream.render(method=method, encoding=None,
>> return literal(stream.render(method=""text"", 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:569 in __call__
<< def __call__(self, stream):
strip_markup = self.strip_markup
for event in stream:
if event[0] is TEXT:
data = event[1]
>> 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.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 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 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:93 in download_adder
<< [downloaded %s times]'''
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: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.base:565 in _flatten
<< elif kind is EXPR:
result = _eval_expr(data, ctxt, vars)
if result is not None:
# First check for a string, otherwise the iterable test
>> result = _eval_expr(data, ctxt, vars)
Module genshi.template.base:277 in _eval_expr
<< if vars:
ctxt.push(vars)
retval = expr.evaluate(ctxt)
if vars:
ctxt.pop()
>> retval = expr.evaluate(ctxt)
Module genshi.template.eval:178 in evaluate
<< __traceback_hide__ = 'before_and_this'
_globals = self._globals(data)
return eval(self.code, _globals, {'__data__': data})
>> return eval(self.code, _globals, {'__data__': data})
Module ?:51 in
<<
Tags
${tag_list(c.pkg_dict.get('tags', ''))}
>> ${tag_list(c.pkg_dict.get('tags', ''))}
Module genshi.template.eval:309 in lookup_name
<< val = BUILTINS.get(name, val)
if val is UNDEFINED:
val = cls.undefined(name)
return val
>> val = cls.undefined(name)
Module genshi.template.eval:410 in undefined
<< """"""Raise an ``UndefinedError`` immediately.""""""
__traceback_hide__ = True
raise UndefinedError(key, owner=owner)
>> raise UndefinedError(key, owner=owner)
UndefinedError: ""tag_list"" not defined
CGI Variables
CKAN_CURRENT_URL '/dataset/uk-postboxes'
CKAN_LANG 'en'
CKAN_LANG_IS_DEFAULT True
CKAN_PAGE_CACHABLE True
CONTENT_TYPE '; charset=utf-8'
DOCUMENT_ROOT '/etc/apache2/htdocs'
GATEWAY_INTERFACE 'CGI/1.1'
HTTP_ACCEPT 'text/html,text/plain,text/xml'
HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING 'gzip'
HTTP_ACCEPT_LANGUAGE 'vi,en-us;q=0.7,en;q=0.3'
HTTP_CONNECTION 'close'
HTTP_HOST 'ckan.net'
HTTP_USER_AGENT 'coccoc/1.0 ()'
PATH_INFO '/dataset/uk-postboxes'
PATH_TRANSLATED '/etc/ckan/datahub/apache.wsgi/dataset/uk-postboxes'
REMOTE_ADDR '127.0.0.1'
REMOTE_PORT '47065'
REQUEST_METHOD 'GET'
REQUEST_URI '/dataset/uk-postboxes'
SCRIPT_FILENAME '/etc/ckan/datahub/apache.wsgi'
SERVER_ADDR '127.0.0.1'
SERVER_ADMIN '[no address given]'
SERVER_NAME 'ckan.net'
SERVER_PORT '80'
SERVER_PROTOCOL 'HTTP/1.0'
SERVER_SIGNATURE 'Apache/2.2.22 (Ubuntu) Server at ckan.net Port 80\n'
SERVER_SOFTWARE 'Apache/2.2.22 (Ubuntu)'
WSGI Variables
application
beaker.cache
beaker.get_session >
beaker.session {'_accessed_time': 1345083636.079552, '_creation_time': 1345083636.079552}
mod_wsgi.application_group 'ckan.net|'
mod_wsgi.callable_object 'application'
mod_wsgi.handler_script ''
mod_wsgi.input_chunked '0'
mod_wsgi.listener_host ''
mod_wsgi.listener_port '8080'
mod_wsgi.process_group 'datahub'
mod_wsgi.request_handler 'wsgi-script'
mod_wsgi.script_reloading '1'
mod_wsgi.version (3, 3)
paste.cookies (, '')
paste.registry
paste.throw_errors True
pylons.action_method >
pylons.controller
pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons
pylons.routes_dict {'action': u'read', 'controller': u'package', 'id': u'uk-postboxes'}
repoze.who.logger
repoze.who.plugins {'openid': , 'friendlyform': , 'ckan.lib.authenticator:UsernamePasswordAuthenticator': , 'auth_tkt': , 'ckan.lib.authenticator:OpenIDAuthenticator': }
routes.route
routes.url
webob._parsed_query_vars (GET([]), '')
webob.adhoc_attrs {'language': 'en-us'}
wsgi process 'Multi process AND threads (?)'
wsgi.file_wrapper
wsgi.version (1, 1)
wsgiorg.routing_args (, {'action': u'read', 'controller': u'package', 'id': u'uk-postboxes'})
" ross
2874 Clean up bin directory ckan enhancement rgrp assigned 2012-08-17T08:01:48Z 2012-08-17T08:01:55Z Full of obsolete material rgrp
2877 Bugs with datastore v2 ckan enhancement kindly assigned 2012-08-18T00:33:22Z 2012-08-30T09:53:15Z "In progress
1. ~~[major] q does not seem to work reliably. e.g. using the setup from this gist https://gist.github.com/1930806 and doing a ?q=DE yields no results (does not work with ""q=de"" either)~~
* ~~q=second does work ...~~
1. [major] q does not work with 2 values (see below)
2. Query on search with limit 0 results in total of 0 (should either be null or correct total). Queries with other limits yield correct total AFAICT
* Also weird fact that limit is returned but as as as string - should it not be an integer
3. Types on fields: could these not be canonical and as per recline (or is it important to allow exact sql types ...)
=== Multiple query values ===
Try a query such as: ""second UK"" and you will get 500 error:
http://localhost:5000/api/3/action/datastore_search?resource_id=4f1299ab-a100-4e5f-ba81-e6d234a2f3bd&q=second%20UK
{{{
ProgrammingError: (ProgrammingError) syntax error in tsquery: ""second UK"" 'select ""_id"", ""id"", ""date"", ""x"", ""y"", ""z"", ""country"", ""title"", ""lat"", ""lon"", count(*) over() as ""_full_count""\n from ""4f1299ab-a100-4e5f-ba81-e6d234a2f3bd"" where _full_text @@ to_tsquery(%s) limit 100 offset 0' (u'second UK',)
}}}
=== Suggestions ===
Filter support: should think in more detail about this (may want to follow recline style)
Simple filters in query parameters would be nice too ..." rgrp
2888 Datapreview in Iframe ckan enhancement new 2012-08-23T18:11:01Z 2012-08-23T18:11:01Z Try and put datapreview in Iframe. kindly
2895 QA pages (e.g. broken resource links) are not paginated ckan enhancement new 2012-08-28T17:38:05Z 2012-08-28T17:38:05Z And as a result timeout on e.g. the datahub ... rgrp
2911 Internal documentation of Organization Groups ckan enhancement new 2012-09-06T14:23:04Z 2012-09-06T14:23:04Z A summary/user story doc of how organizations and groups are expected to work. kindly
2934 Webtests for CKAN ckan enhancement new 2012-09-18T11:10:47Z 2012-09-19T13:10:01Z "The tests in CKAN only test single pages (functional tests) or single methods (unit tests). In order to make sure that the whole system still works as expected, we need tests that cover whole processes.
An example user story to be tested would be:
""As a user with create permissions I want to be able to log in, create a new resource, save it and then make sure that it is in the system.""
or:
""As a user I want to use the search functionality and open a resource from the search page.""
These user stories require a different testing system with interaction and processes. " Dominik
2938 Explain bundling in doc/resources.rst ckan enhancement Toby new 2012-09-24T12:13:55Z 2012-09-24T12:13:55Z "Since it makes sense to bundle resources into one js file that are commonly used together, there should be some explanations on how separate js scripts are merged into one file for production.
Explanations could include how groups are handled or different resource files." dominik
2939 Orgs are groups ckan enhancement toby new 2012-09-25T09:07:14Z 2012-09-25T09:07:14Z holder for ticket number toby
2943 Chrome does not resize preview ckan enhancement new 2012-10-01T11:08:06Z 2012-10-01T11:25:59Z Chrome does not resize iframe after a full refresh/ on first load dominik
2944 Recline preview does not work in Opera ckan enhancement new 2012-10-01T11:26:42Z 2012-10-01T11:26:42Z Opera cannot show a recline preview. I shows 0 records. dominik
2945 Pdf preview does not load in IE ckan enhancement new 2012-10-01T11:27:49Z 2012-10-01T11:27:49Z The pdf preview does not load in IE 9. dominik
2948 Negative range breaks datastore backend ckan enhancement new 2012-10-01T14:30:54Z 2012-10-01T14:31:05Z Recline allows negative ranges. The backend returns an error 500 for that which breaks the recline preview. dominik
2992 Delete resource should send me back to edit dataset page ckan enhancement new 2012-10-16T17:19:16Z 2012-10-16T17:19:16Z johnmartin
3012 data.gov auth ckan enhancement toby new 2012-11-08T16:50:09Z 2012-11-08T16:50:09Z toby
3020 Update CKAN coding standards ckan enhancement new 2012-11-16T20:11:51Z 2012-11-16T20:11:51Z seanh
3021 Logout doesn't work without JS ckan enhancement johnmartin accepted 2012-11-20T11:19:10Z 2012-11-20T11:46:08Z "Essentially, the functionality should be as follows:
- Add logout link that has `.js-hide` attached to it within the header that isn't hidden within a dropdown
See http://plus.google.com/ (when logged in) with and without JS to see an example of the actual sign-out working without JS" johnmartin
3023 New methods on IPackageController to provide access to the data_dict ckan enhancement amercader new 2012-11-22T17:00:57Z 2012-11-22T17:00:57Z Extension hooking into the edit and create methods of the IPackageController interface receive the package object. This may not include all the fields that came from the form. The new extension points will pass the validated data_dict so extensions can have access to it amercader
3025 Add requests to core requirements ckan enhancement amercader new 2012-11-27T21:35:24Z 2012-11-27T21:35:24Z Because yes please amercader
3027 solr for 2.0 ckan enhancement kindly new 2012-12-04T02:22:09Z 2012-12-04T02:22:09Z "change mm
support solr 3 and 4
add *_date field" kindly
3030 clean up helper functions ckan enhancement new 2012-12-18T12:33:58Z 2012-12-18T12:33:58Z toby
2957 New datastore on postgres prior to 9.0 ckan task new 2012-10-03T19:23:34Z 2012-10-03T19:23:34Z The ``GRANT SELECT ON ALL`` and ``ALTER DEFAULT PRIVILEGES`` are not available in Postgres prior to version 9.0. dominik
2913 IGroupForm has package_form() method ckan ckan 2.0 defect new 2012-09-11T14:45:39Z 2012-10-15T12:22:59Z Should be group_form() I think seanh
2920 Genshi text template message extractor no longer needed? ckan ckan 2.0 defect new 2012-09-13T09:57:29Z 2012-09-13T09:57:29Z "In setup.py, do we still need:
('templates/**.txt', 'genshi', {
'template_class': 'genshi.template:TextTemplate'
}),
in message_extractors? Doesn't like there are any txt files in there
anymore." seanh
2921 Add docstring to top of lib/extract.py file ckan ckan 2.0 defect new 2012-09-13T10:00:07Z 2012-09-13T10:00:07Z "I think it couldn't hurt for this module to have a docstring at the top
of the file explaining what the module is for. I know from setup.py that
it's there to provide the extract_ckan() string extractor function for
Babel, but I think looking at the file on its own it's not so obvious.
Also a couple of other small fixes:
jinja2_cleaner looks like a helper function only meant to be used by
extract_ckan(), might make things clearer if it was called
_jinja2_cleaner(), just so it doesn't look like a public function the
module wants to export.
jinja_extensions seems to be a module-level variable that is only used
in one function, could be moved into the function, unless you think
there might be more functions that want it in future." seanh
2922 Better docstring for CKANInternationalizationExtension ckan ckan 2.0 defect new 2012-09-13T10:01:47Z 2012-09-13T10:01:47Z "I'm unsure about what's going on here. As I understand it, when we run
`python setup.py extract_messages` it's going to use the extract_ckan()
function from ckan/lib/extract.py to process the HTML files. For the
HTML files that are jinja2 templates, extract_ckan() will call
jinja2_cleaner() which will call regularise_html() on the strings. So
the strings are regularised when they are extracted from the source
files.
But then we have the parse() method of CkanInternationalizationExtension
also calling regularise_html(). I don't get what's happening here. Why
do the strings need to be regularised twice?
My guess is that CkanInternationalizationExtension is used when the
strings are extracted from the templates at runtime, and they need to be
regularised at this time in order to match them against the regularised
strings in the mo files to find the translations to output?
Maybe CkanInternationalizationExtension needs a better docstring saying
what it does?" seanh
2923 Change regularise -> regularize ckan ckan 2.0 defect new 2012-09-13T10:03:02Z 2012-09-13T10:03:02Z The function is called regularise_html(), can't remember what file it's in. seanh
2924 Better docs for trans js command, and add to release process ckan ckan 2.0 defect new 2012-09-13T10:04:31Z 2012-09-13T10:04:31Z "Add a better docstring to for trans js command explaining what it does and why, and how to use it.
Also add this command to the CKAN Release Process as it's needed there" seanh
2925 Remove trans mangle paster command? ckan ckan 2.0 defect new 2012-09-13T10:06:08Z 2012-09-13T10:06:08Z "- Is `trans mangle` really necessary? If you upload a pot file to
Transifex, it can generate a po file for you with 100% strings
translated into a fictional pseudo language where everything is really
long strings of unicode characters. I found this worked well for
coverage testing, and also tests handling of unicode and long strings
all over the place." seanh
2964 Last organization admin can remove herself ckan ckan 2.0 defect new 2012-10-15T10:14:18Z 2012-10-15T10:14:18Z "If you are the only admin of an organization you can edit the organization's members and demote yourself, then the org has no admins and no one (except sysadmins maybe) can edit it.
Last admin should not be able to remove or demote herself.
Also applies to groups." seanh
2967 Organization members edit page reloads after demoting self ckan ckan 2.0 defect new 2012-10-15T10:17:07Z 2012-10-15T10:17:07Z Edit an organizations members page and demote yourself from organization admin, after saving the members edit page reloads even though you are no longer an admin and should no longer be able to access this page. seanh
2968 Anyone can access organization members page ckan ckan 2.0 defect new 2012-10-15T10:19:15Z 2012-10-15T10:31:10Z The button will not show if you are not authorized but browse to /organization/members/foo and you can edit the members, it does stop you when you try to save your changes, but you shouldn't be able to get to the page at all seanh
2969 Group members page 500s ckan ckan 2.0 defect new 2012-10-15T10:20:54Z 2012-10-15T10:20:54Z The group members page (e.g. /group/members/roger) seems broken, IDs instead of user names are shown for the members, and clicking on a member 500s seanh
2970 Organization and group member links use id not name ckan ckan 2.0 defect new 2012-10-15T10:22:11Z 2012-10-15T10:22:11Z e.g. it the 'Members' button links to /organization/members/0a44... instead of /organization/members/foobar seanh
2993 """logged_in"" and ""visitor"" show in user list at /users" ckan ckan 2.0 defect new 2012-10-17T09:42:02Z 2012-10-17T14:40:26Z seanh
3001 Multilingual plugin crashes CKAN on add dataset when some languages are default ckan ckan 2.0 defect new 2012-10-18T16:50:48Z 2012-10-18T16:50:48Z "Enable the multilingual plugins:
ckan.plugins = stats synchronous_search multilingual_dataset multilingual_group multilingual_tag
and set your default language to one not supported by the multilingual plugin, e.g.
ckan.locale_default = cs_CZ
now run CKAN and try to add a dataset:
File '/home/seanh/Projects/ckan171/ckan/ckanext/multilingual/plugin.py', line 141 in before_index
text_field_items['text_' + default_lang].extend(all_terms)
KeyError: 'text_cs_CZ'
It doesn't matter what language you are viewing the site in in your browser, the default language setting in the ini file determines whether it crashed or not.
A number of supported languages are defined at the top of ckanext/multilingual/plugin.py. I think if the default language is not one of these it crashes.
I think this affects all versions of CKAN since the multilingual plugin was added so at least 1.7, 1.8 and 2.0" seanh
3014 Crash when deleting a non-empty vocabulary ckan ckan 2.0 defect new 2012-11-13T10:50:08Z 2012-11-13T10:50:08Z "From Knud Möller:
when I try to delete a non-empty tag vocabulary via the API (through HTTP), I get an internal server error. Checking
the logs, this turns out to be a consistency error raised by sqlalchemy:
Error - : (IntegrityError) update or delete on table ""vocabulary"" violates
foreign key constraint ""tag_vocabulary_id_fkey"" on table ""tag""
DETAIL: Key (id)=(21421955-7560-467c-af30-9f790b73e6ae) is still referenced from table ""tag"".
'DELETE FROM vocabulary WHERE vocabulary.id = %(id)s' {'id': u'21421955-7560-467c-af30-9f790b73e6ae'}
URL: http://33.33.33.10:5000/api/action/vocabulary_delete
The error makes sense, but I'm wondering if it would be useful to extend the API to also allow the deletion of
non-empty vocabularies, possibly via a parameter (not sure what best practice in API design is). At the very least, it
would be cool if the error message coming back in the response had more information in it." seanh
2329 Add back in RSS/Atom links on relevant pages ckan ckan 2.0 enhancement assigned 2012-04-26T12:15:40Z 2012-09-03T09:24:31Z E.g. on dataset page, on revision page, on user page and on search results. rgrp
2654 UI support for ordering groups on group_read page ckan ckan 2.0 enhancement assigned 2012-07-10T18:11:31Z 2012-09-03T08:49:16Z "The group_index page has no support in WUI for ordering the groups displayed. Should allow sorting by name
Add support for this for datahub now, and discuss for new 1.9 UI" ross
2886 Configurable related items ckan ckan 2.0 enhancement new 2012-08-22T08:55:18Z 2012-08-22T08:55:18Z "Related items (Apps & Ideas) have a collection of types, which are currently fixed. Some of these types are ambiguous, such as ideas in that they may not have a link - and if they do it is likely to be to a blog post - another existing type.
Whilst the URL is required, and we think this should stay required, we should also allow users to change the types found in Apps & Ideas to a shortened list that suits their requirements." ross
2902 genshi is used in Group controller ckan ckan 2.0 enhancement new 2012-09-04T18:10:30Z 2012-09-04T18:10:30Z "The Group controller uses the genshi module where it may be better for it to use Markup() in the template.
See https://github.com/okfn/ckan/pull/117/files#r1524863" ross
2917 Organization admins can delete themselves ckan ckan 2.0 enhancement johnmartin new 2012-09-12T12:10:43Z 2012-09-12T13:13:56Z Organization administrators can delete themselves from the user management pages. We should disable this on the front-end as well as the back-end. ross
2926 I*Form tests for per-type templates ckan ckan 2.0 enhancement new 2012-09-13T16:01:21Z 2012-09-13T16:01:21Z "Finish the tests for the per-package-type custom template support in IPackageForm, IGroupForm and IOrganizationForm (i.e. the new_template(), read_template() etc. methods).
The new way that template inheritance works in jinja looks like it should allow this to be tested nicely without duplicating entire templates in the example extensions." seanh
2927 Test new package/group/organization type URLs support ckan ckan 2.0 enhancement new 2012-09-13T16:02:33Z 2012-09-13T16:02:33Z IPackageForm, IGroupForm and IOrganizationForm allow you to define e.g. new package types with new top-level URLs, but the example extensions don't have tests for this yet. seanh
2928 Run CKAN tests with example_i*form extensions enabled ckan ckan 2.0 enhancement new 2012-09-13T16:05:34Z 2012-09-13T16:05:34Z Before releasing CKAN 2.0 we need to run all the CKAN tests with a modified test-core.ini with the example_idatasetform, example_igroupform and example_iorganizationform plugins enabled. If any tests fail, fix the bugs. This needs to be done for each release so add it to the release process. seanh
2929 Remove is_fallback() from I*Form extension interfaces? ckan ckan 2.0 enhancement new 2012-09-13T16:09:57Z 2012-09-13T16:09:57Z "If a plugin wants to take over the default package type for example, it can return ['dataset'] from its package_types() method. I don't see how there can be a package type that is not the default 'package' and is not returned by the package_types() method of a plugin, because the URLs for such a package type would not be mapped. Am I missing something or is is_fallback() not needed?
Same for IGroupForm and IOrganizationForm" seanh
2931 Better docstring for app_globals.py ckan ckan 2.0 enhancement new 2012-09-17T14:13:14Z 2012-09-17T14:16:18Z "''' The application's Globals object ''' is not very informative.
" seanh
2932 Add docstring to system_info.py ckan ckan 2.0 enhancement new 2012-09-17T14:50:29Z 2012-09-17T14:50:29Z What is the system_info table for? It looks like a way to override config file settings in the database, perhaps so that admins can use a web interface to change site title etc. Could do with a docstring explaining the intended purpose of the table. seanh
2933 Update theming docs ckan ckan 2.0 enhancement new 2012-09-17T15:21:12Z 2012-09-17T15:21:12Z "There's quite a lot of custom stuff going on, with all the custom jinja extensions, and the use of Fanstatic plus custom fanstatic extensions. People who are new to CKAN wanting to write CKAN themes are likely to be confused. I think the whole lot could do with documentation, maybe in the Theming and Customizing chapter in the sphinx docs.
I suggest completely replacing the contents of doc/theming.rst, and putting a 'legacy theming' link at the bottom linking to a doc/legacy_theming.rst file with the old contents." seanh
2956 Allow for resource editing in CKAN 2.0 ckan ckan 2.0 enhancement shevski assigned 2012-10-03T15:11:40Z 2012-10-04T10:27:22Z On the edit dataset page... there needs to be a way for users to be able to see all the resources associated to the dataset and edit them individually. johnmartin
2961 Preview plugin endpoint ckan ckan 2.0 enhancement dominik assigned 2012-10-08T11:39:27Z 2012-10-18T16:33:10Z "Users could write ckan extensions that offer previews for a certain datatype.
Advantages:
- We can say that you can add your own previews
- Every preview would have to define it's own dependencies
- External development (community creates new extensions?)
Questions to answer:
- Specification of the interface
- Precedence of previews for the same data types
- Plugins only define the datatype that they are responsible for or do we call a function that returns whether the extension is responsible.
As far as I can see, this should be fairly easy to implement by following these instructions: http://docs.ckan.org/en/latest/writing-extensions.html#writing-a-plugin-interface" dominik
2966 'Add' button text is wrong when editing organization members ckan ckan 2.0 enhancement new 2012-10-15T10:15:49Z 2012-10-15T10:15:49Z e.g. if I just changed a member's capacity I am not adding anything 'save' is better maybe seanh
2971 """Are ytou sure you want to delete this member?"" should say which member" ckan ckan 2.0 enhancement new 2012-10-15T10:27:20Z 2012-10-15T10:27:20Z when deleting members from groups and orgs seanh
2972 Remove any imports of authz.py and delete file ckan ckan 2.0 enhancement new 2012-10-15T10:37:22Z 2012-10-15T10:37:22Z it is no longer used seanh
2973 Move new_authz.py into logic/auth/__init__.py ckan ckan 2.0 enhancement new 2012-10-15T10:39:05Z 2012-10-15T10:39:05Z "Makes sense to keep all auth stuff under logic/auth.
Also decide which functions from new_authz.pu should be marked private with _.
Also decide which functions from new_authz.py are really helpers for the auth functions in get.py, update.py and delete.py, and should maybe moved to another file, e.g. logic/auth/helpers.py" seanh
2974 General of all auth functions ckan ckan 2.0 enhancement new 2012-10-15T10:40:12Z 2012-10-15T10:40:12Z "From Toby:
A general cleanup of all auth functions (in logic/auth) to check their fitness, error messages, etc." seanh
2975 Tests for auth functions and new actions ckan ckan 2.0 enhancement new 2012-10-15T10:41:00Z 2012-10-15T10:41:00Z "From Toby: tests around the auth functions and new actions - probably needs an improved testing mechanism and things like test data creation on via actions
" seanh
2976 Polish group and organization member pages ckan ckan 2.0 enhancement new 2012-10-15T10:41:49Z 2012-10-15T10:41:49Z "From Toby: A little polish to the member pages and probably a little hardening of
the controller and logic actions" seanh
2977 Fix user autocomplete on group and organization member pages ckan ckan 2.0 enhancement new 2012-10-15T10:42:29Z 2012-10-15T10:42:29Z "From Toby: @johnmartin the user autocomplete on
member add needs fixing it gets data but does not understand what to do
with it
" seanh
2978 Tests for permissions for organizations and groups ckan ckan 2.0 enhancement new 2012-10-15T10:43:26Z 2012-10-15T10:43:26Z "From Toby: checking the logic around the who can do what from the user stories -
via some tests may be a good approach
" seanh
2979 Requesting membership to groups and organizations ckan ckan 2.0 enhancement new 2012-10-15T10:44:04Z 2012-10-15T10:44:04Z "From Toby: The requesting membership user stories and implementation remain needed
" seanh
2988 UI functional tests for CKAN 2.0 ckan ckan 2.0 enhancement new 2012-10-15T11:02:15Z 2012-10-15T11:02:15Z Afaik the new CKAN 2.0 frontend has no functional tests seanh
2989 """Add dataset to organization"" should auto-select the organization" ckan ckan 2.0 enhancement new 2012-10-15T11:04:12Z 2012-10-15T11:04:12Z "'Add dataset to organization' button, when you get through to the third stage of the new dataset form the organization you came from is not selected.
I don't see any option to choose the group when adding or updating a dataset, but if I add a dataset via the ""Add dataset to group"" button on a group's page, then the dataset seems to get added to that group. (And I can also add/remove existing datasets by editing the group.) I wonder if organizations should work the same way, instead of having an Organization drop-down when creating or updating a dataset. The add dataset page needs to somehow indicate that you're adding a dataset to a certain group or organization though, doesn't currently." seanh
2990 Fix descriptions of groups and organizations on /groups and /organizations pages ckan ckan 2.0 enhancement new 2012-10-15T11:04:51Z 2012-10-15T11:04:51Z seanh
2991 Add blocks to header.html template ckan ckan 2.0 enhancement new 2012-10-16T11:10:20Z 2012-10-16T11:10:20Z Currently if you want to customise the header.html template you have to copy the whole thing, it isn't broken up into blocks like other templates are. seanh
2994 Add dataset and user popovers throughout the site ckan ckan 2.0 enhancement new 2012-10-17T14:26:04Z 2012-10-17T14:26:04Z "If you hover the mouse over a dataset or user in an activity stream, you now get a popover with some info about that dataset or user and a follow/unfollow button.
These popovers should appear wherever datasets or users are listed, throughout the site." seanh
2995 Popovers for resources, groups, organizations, tags... ckan ckan 2.0 enhancement new 2012-10-17T14:27:21Z 2012-10-17T14:27:21Z "If you hover the mouse over a dataset or user in an activity stream, you now get a popover with some info about that dataset or user and a follow/unfollow button.
It would be nice to add similar popovers for other types of object in CKAN, e.g. resources, groups, organizations, tags..." seanh
2997 Add activity streams to dataset pages ckan ckan 2.0 enhancement new 2012-10-17T14:31:46Z 2012-10-17T14:31:46Z Add an activity stream tab to dataset pages, like we have on user profile pages. Dataset activity streams are already implemented in the backend. seanh
2998 Add activity streams to group pages ckan ckan 2.0 enhancement new 2012-10-17T14:33:14Z 2012-10-17T14:33:14Z Before we do this we should implement smarter group activity streams (i.e. what activities should appear in a group's activity stream?) and following of groups. seanh
2999 Add activity streams to organization pages ckan ckan 2.0 enhancement new 2012-10-17T14:34:17Z 2012-10-17T14:34:17Z Before we do this we need to merge the organizations branch into master, we need to implement smarter activity streams for organizations, and we need to implement following of organizations. seanh
3000 Add number of followers to dataset pages ckan ckan 2.0 enhancement new 2012-10-17T14:36:00Z 2012-10-17T14:36:00Z User profile pages now show some interesting stats about the user: num. datasets, num. edits and num. followers. Would be nice to add some similar info to dataset pages. At least num. followers can be done (already implemented in backend). seanh
3005 Add following/unfollowing of groups: model, API, frontend, tests ckan ckan 2.0 enhancement seanh new 2012-10-23T17:35:44Z 2012-10-23T17:35:44Z seanh
3007 Adding a dataset creates multiple activities ckan ckan 2.0 enhancement new 2012-10-29T13:15:07Z 2012-10-29T13:23:39Z Adding a new dataset creates multiple activity stream activities, e.g. seanh created the dataset foo, seanh add the resource bar to the dataset foo, and seanh updated the dataset foo are all created when I add a new dataset. I wonder if these can be collapsed into a single activity. seanh
3010 Pin images don't appear in data explorer ckan ckan 2.0 enhancement new 2012-10-31T17:45:06Z 2012-10-31T17:45:06Z "When minified files are in use (set debug = false in ini file) the pin images for points don't show up in the data explorer map view when viewing a resource with geolocation data.
set debug = true will fix the problem by using unminified files instead but also turns on a bunch of debug stuff you wouldn't want on a production site.
middleware.py, around line 73, is where the decision to turn minified files on or off based on the debug setting is made. This can be hacked on a production site to run with unminified files but otherwise run on production mode thereby getting around the issue with the pins. But that doesn't fix the underlying bug." seanh
3016 CKAN 2.0 template tweaks ckan ckan 2.0 enhancement johnmartin new 2012-11-13T13:30:17Z 2012-11-13T13:30:17Z Just a ticket to keep track of a few suggested template changes. johnmartin
3018 Load more in activity streams ckan ckan 2.0 enhancement johnmartin new 2012-11-14T13:34:11Z 2012-12-10T12:02:30Z Activity streams should be able to load more than 15 items within them. Suggest the default amount of loading is around 30 and then click to load more. johnmartin
3028 Feature: dashboard activity stream filtering ckan ckan 2.0 enhancement seanh new 2012-12-10T12:07:24Z 2012-12-10T12:07:24Z https://github.com/okfn/ckanext-pdeu/issues/13 seanh
2915 Refactor form_to_db_schema_options() ckan ckan 2.0 refactor new 2012-09-12T10:37:49Z 2012-09-12T10:59:48Z "Having two methods form_to_db_schema(self) and form_to_db_schema_options(self, options) seems unnecessary, why not just have form_to_db_schema(self, options=None)?
Fixing this might break existing extensions although I don't think any are using form_to_db_schema_options() so it should be okay.
The same thing goes for db_to_form_schema_options().
Also why are we passing a dict 'options' that always contains the same three keys 'api', 'context' and 'type'? Why not three params api=None, contenxt=None, type=None?" seanh
2981 Remove config from jinja templates ckan ckan 2.0 refactor new 2012-10-15T10:46:00Z 2012-10-15T10:46:00Z "From Toby: remove the config from jinja2 templates get all such stuff via g. (before 2.0)
" seanh
2982 Move functionality from controllers into template helpers ckan ckan 2.0 refactor new 2012-10-15T10:46:42Z 2012-10-15T10:46:42Z "From Toby: strip more functionality from controllers and add via template helpers
eg activity streams
" seanh
2983 Refactor lib/base.py to remove circular import issues ckan ckan 2.0 refactor new 2012-10-15T10:47:24Z 2012-10-15T10:47:24Z "From Toby: c) refactor lib/base.py to remove the circular import issues (render
functions to lib/render.py - would fix much of that)
" seanh
2984 Auto-populate context with user, model, session, etc. ckan ckan 2.0 refactor new 2012-10-15T10:48:21Z 2012-10-15T10:48:21Z "From Toby: make the context auto-populated with things like user/model/session if
not user supplied - especially for extensions (pre 2.0) maybe via a helper
or else a decorator on the action - helper seems nicer maybe done via
get_action()" seanh
2985 Make lib/helpers.py more template-specific ckan ckan 2.0 refactor new 2012-10-15T10:49:48Z 2012-10-15T10:49:48Z "From Toby: make lib/helpers more template specific and less generally shared with
none template uses (some functions are shared but many shouldn't be) -
again help avoid circular imports
" seanh
2986 Make lib/base.py more like it was originally intended ckan ckan 2.0 refactor new 2012-10-15T10:50:45Z 2012-10-15T10:50:45Z "From Toby: make lib/base.py be more like it was originally intended eg defines
stuff that is shared eg _ but maybe try to include stuff like
render/get_action if the circular import stuff can be solved - which should
be doable if hard and likely needs an extra file or two for the externals _
etc
" seanh
2987 Remove all direct calls to logic action and auth functions ckan ckan 2.0 refactor new 2012-10-15T10:51:27Z 2012-10-15T10:51:27Z From Toby seanh
811 Extra field editing form layout breaks when there are long field names ckan ckan-backlog defect new 2010-11-17T11:53:32Z 2011-12-06T11:18:09Z The layout of the editing section for extra fields breaks when a field name is slightly too long. Field names jump over to the right. See http://ckan.net/package/edit/dbpedia for examples. cygri
812 Package edit form only allows three extra fields ckan ckan-backlog defect new 2010-11-17T11:56:50Z 2011-07-20T15:48:37Z "= Rationale =
The package edit form is restricted to three extra fields. To enter more than three fields, one has to save the package and hit edit again (or hit preview).
= Implementation =
A mechanism similar to the one for resources (where you can add lines as you go) would solve this. So, have a button that adds more extra field rows via JS. (Extra fields don't need up/down buttons that the Resource table has)
Nice to have: a blank field is added when you tab from the last filled-in field in the table." cygri
895 Add version number (or simular) to css/js includes query string ckan ckan-backlog defect new 2011-01-06T19:49:42Z 2012-06-15T15:36:33Z "Updates to css after a new deploy don't come through without a hard refresh. Adding the version number to the include urls will solve this e.g.
mycssfile.css?v=12345678" memespring
1182 "Comments from deleted packages appear in ""Recent Comments"" feed" ckan ckan-backlog defect new 2011-06-09T22:24:11Z 2012-06-15T15:31:59Z "When a package has been deleted, say for spam moderation, comments still appear in the recent comments section.
This is a problem because non-admin users will be shown a warning that they're not authorised to view the package if they click on the link.
At CKAN.net currently, this affects the most recent comment." timmcnamara
1185 Administrators can't delete packages from web UI ckan ckan-backlog defect new 2011-06-15T04:23:38Z 2012-06-15T15:31:29Z "Administrators have ""View"", ""Edit"" and ""History"" tabs. However, I can't see a way to delete a package from the web UI.
Version: CKAN.net as of today" timmcnamara
1203 "Moderated edits: html code shows as ""changed"" although it is not" ckan ckan-backlog defect johnglover new 2011-06-28T15:29:30Z 2011-08-15T09:46:19Z "I've installed the Moderated Edits extension (ckanext-moderatededits) and am editing a package imported from IATIregistry.org, with an extra field which contains a bit of HTML.
The editor indicates the field has changed, although the content hasn't (see screenshot). All I can find so far is a minor difference: in the field content, there is a code — and in the rendered table that is an —" rolf
1355 Package extras property does not include the newly created ones ckan ckan-backlog defect new 2011-09-26T10:48:46Z 2012-06-15T15:27:36Z "The extras in the package object sent to the extensions after editing (https://bitbucket.org/okfn/ckan/src/01efd5649c10/ckan/logic/action/update.py#cl-226) do not include the newly added.
" amercader
1642 Extra link generators generate garbled HTML ckan ckan-backlog defect new 2012-01-12T15:29:31Z 2012-06-15T15:26:07Z "I had a package descriptions with URLs that contain ""group:foo"". This produces garbled output as the system tries to generate two sets of links: the outer link and an inner link.
Need to fix the parser.
Text:
Webdienst basierende Bereitstellung von Geobasisdaten der Freien und Hansestadt Hamburg. Folgende Geobasisdaten werden als WebMapTileService (WMT-S) für die Dauer des Wettbewerbs netzbasiert unter der Creative Commons Lizenz zur Verfügung gestellt: Digitale Orthophotos 40 cm Auflösung (Layer: apps4d_DOP40), Digitale Stadtkarte (Layer: apps4d_DISK), Digitale Regionalkarte (Layer: apps4d_DIRK), Digitale Karte 1:5000 (Layer: apps4d_DK5).
Metadateneinträge zu den Daten im PortalU:
* [apps4d_DOP40](http://www.portalu.de/trefferanzeige?docuuid=D6082285-6CAC-49C5-B7ED-B5A72BC17DEC&plugid=/kug-group:kug-iplug-udk-db_hh)
* [apps4d_DISK](http://www.portalu.de/trefferanzeige?docuuid=D2DA3359-3DC9-4CA4-AE9B-7C63D53B220F&plugid=/kug-group:kug-iplug-udk-db_hh)
* [apps4d_DIRK](http://www.portalu.de/trefferanzeige?docuuid=B7DDD599-F677-4C80-BED5-F11D82D5D1DD&plugid=/kug-group:kug-iplug-udk-db_hh)
* [apps4d_DK5](http://www.portalu.de/trefferanzeige?docuuid=2AE6D23E-48A5-4D85-BC0A-160737E0C8D2&plugid=/kug-group:kug-iplug-udk-db_hh)
One fix is quoting the URLs" pudo
1668 repoze version discrepency ckan ckan-backlog defect new 2012-01-17T12:02:26Z 2012-01-17T12:02:26Z "There's a discrepency in repoze.who versions between the source and package installs:
* repoze.who - package 1.0.18 vs source 1.0.19
* repoze.who-friendlyform - package 1.0b3 vs source 1.0.8
We get a test failure [1] with the 1.0b3 version (from the ubuntu 10.04 python-repoze.who-plugins package). But we've not noticed any problems on s057 instances (br, no, ie etc) which have the package versions of repoze.who.
The reason the package install uses the earlier packaged versions rather than the ones we'd like is that repoze uses all sorts of horrendous import hacks, making it too difficult to put into our 'ckan-conflict' source package.
James suggests we 'do something horrible like dynamically patch repoze on CKAN import'.
[1] http://buildbot.okfn.org/builders/builder-ckan/builds/1371/steps/shell/logs/stdio
ERROR: ckan.tests.functional.test_user.TestUserController.test_user_create_unicode" dread
2197 Storage Metadata API: add/update not working with local file storage (Pairtree) ckan ckan-backlog defect assigned 2012-02-28T09:29:37Z 2012-09-03T08:48:48Z "If OFS is configured with Pairtree to use a local file storage, all POST requests to add/update metadata ( /api/storage/metadata/{label} ) will fail.
This is due to the use of [https://github.com/okfn/ofs/blob/master/ofs/remote/botostore.py BotoOFS] specific ''private'' methods in [https://github.com/okfn/ckan/blob/master/ckan/controllers/storage.py StorageAPIController.set_metadata()], eg: self.ofs.'''_require_bucket'''(bucket), self.ofs.'''_get_key'''(b, label), self.ofs.'''_update_key_metadata'''(k, metadata) ... those methods can't be found in [https://github.com/okfn/ofs/blob/master/ofs/local/pairtreestore.py POTFS] and this causes errors.
The API should use only [https://github.com/okfn/ofs/blob/master/ofs/base.py OFSInterface] methods, or should conditionally make calls based off the actual type of ''self.ofs''.
''PS: I did set ""ckan"" as ""Component"" in the ticket because storage has been integrated back into the core in CKAN 1.6''" zydio
2486 Should be able to use . in dataset names ckan ckan-backlog defect new 2012-06-02T16:46:23Z 2012-06-15T14:36:18Z seanh
2607 'Upload a file' appears on resource form when storage not enabled ckan ckan-backlog defect assigned 2012-06-27T13:30:08Z 2012-09-03T09:09:43Z "if the user tries to upload a file they will get ""Failed to get credentials for storage upload. Upload cannot proceed""
Maybe add a test for it this time, this bug has appeared and reappeared before" seanh
140 News section on front page ckan ckan-backlog enhancement new 2009-10-07T08:02:21Z 2010-02-08T10:32:39Z "Have a news section (suggest as a sidebar item).
News section will link to latest 3/4 blog posts on CKAN from blog.okfn.org.
Details:
* Suggest pulling via rss or similar.
* Will want to cache this ...
Cost: 4h?" rgrp
253 Package relationships ckan ckan-backlog enhancement assigned 2010-02-22T16:05:21Z 2012-06-15T15:38:46Z "= Overview =
Functionality to formally associate packages. We see a need for specific parent-child, inheriting or dependency relations. Not only should this help navigation between packages in the web interface, but it also provides a mechanism to automatically pull dependencies when downloading a data package, in a similar manner as we see in software package management.
= Examples =
1. There are 27 packages in data.gov.uk to do with the Data4NR's Health Poverty Index. There is currently no common link between these, unless you search for 'HPI' (which also brings up House Price Index), or look under tag 'health' (which also has 600 other results). There should be a link on each HPI package page to navigate to the other 'sibling' HPI packages, and to a 'root' package that has info about the set. This could be partially achieved using the existing tag or group concepts, but a more explicit/official/obvious marking of their relationship could be beneficial.
2. In ckan.net is freedict, a collection of translation dictionaries. You could make each dictionary a child package and use this system. But it would probably be better to make each dictionary a different resource in the same package. (There are other ideas to denote a resource as the data making up a 'portion' of package, or a 'whole' of the package, to help people downloading datasets in the software package style.)
3. OSM has had some Naptan data imported (bus stops), with special permission - i.e. a more liberal license. It would be useful to show this link on both OSM and Naptan packages in CKAN: OSM 'derives from' Naptan with a comment about the license change. I'm not sure this is useful to an automatic download or use of these datasets, but may aid exploration on the CKAN website and understanding the provenance of the bus stop data on it.
4. IPCC collection of data linked / mirrored. Not sure if there are useful relationships here?
5. Dracos gets postbox locations from crowd sourcing and OSM. We could say Dracos 'derives from' OSM.
See more examples discussed here: http://trac.ckan.org/ticket/253
= Implementation =
This is split into four tickets:
* Model: ticket:254
* Read in WUI: ticket:255
* Edit in WUI: ticket:256
* API: ticket:257
No need for write access to be provided API for the moment.
This ticket also encompasses ticket:169 (Package derivations) and ticket:176 (Package dependencies)." dread
277 Set some config options / settings in WUI (extension) ckan ckan-backlog enhancement zephod assigned 2010-03-22T16:21:01Z 2011-10-10T11:45:21Z "== Use case ==
As a ckan administrator I want to easily change options about the CKAN install.
== Implementation ==
=== Settings to be in DB ===
Suggested:
{{{
## Title of site (using in several places including templates and tag
ckan.site_title = CKAN
## Logo image to use (replaces site_title string on front page if defined)
ckan.site_logo = http://assets.okfn.org/p/ckan/img/ckan_logo_box.png
## Site tagline / description (used on front page)
ckan.site_description =
## Used in creating some absolute urls (such as rss feeds, css files) and
## dump filenames
ckan.site_url =
## Favicon (default is the CKAN software favicon)
ckan.favicon = http://assets.okfn.org/p/ckan/img/ckan.ico
## An 'id' for the site (using, for example, when creating entries in a common search index)
## If not specified derived from the site_url
# ckan.site_id = ckan.net
## API url to use (e.g. in AJAX callbacks)
## Enable if the API is at a different domain
# ckan.api_url = http://www.ckan.net
## html content to be inserted just before