rgrp
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
1135 Changeset model for vdm vdm enhancement kindly assigned 2011-05-12T14:19:46Z 2012-06-25T13:51:07Z "Move to Changeset model for vdm.
A changeset model is like an Audit-Log model in which we just record Changesets with Change-Objects rather than have Revision-Objects for each Object that is revisioned.
This change would also incorporate significant simplication of vdm." rgrp
1137 Remove need for statefulness in vdm vdm enhancement kindly assigned 2011-05-12T14:47:08Z 2012-06-25T13:46:14Z "Statefulness, especially statefulness for relation (esp m2m) is cause of most of the complexity in vdm. It is ''required'' because, atm, revision objects have FKs to continuity objects.
This ticket proposes the following changes:
NB: this could be limited just to case of join tables (leaving state stuff on other tables)
* Remove FKs from revision to continuity (or allow for them to be nullable).
* We could just limit this to m2m stuff
* Delete of an object leads to:
* Deletion of continuity object
* Adding an entry in revision table with state set to deleted (we retain state on revision table)
If this is done we will no longer need to worry about filtering on state on relationships as join table will only contain ""active"" relationships.
If we do this on all tables we remove need for any state awareness in client (e.g. no need to filter tables on active state).
The only disadvantage of this change is that undeletion becomes more problematic (we have to recreate some continuity objects)." rgrp
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
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
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
1152 True support for generic CSW servers uklii ckan-backlog enhancement amercader new 2011-05-23T09:02:14Z 2011-08-15T12:37:02Z "The CSW harvesters implemented at the moment were developed with the DGU
project in mind, and they assume all remote CSW servers to implement the
Gemini 2 specification. Gemini 2 is the profile defined in the UK for
INSPIRE complying metadata, so obviously catalogs from other countries
or non-INSPIRE complying ones won't be able to be harvested.
The changes needed to support generic CSW servers (i.e. those
implementing the ISO 19139 profile) are:
* Handling the validators (right now are hardcoded in the harvester
code). This probably involves issues discussed in the CREP 3
(ticket #1134)
* Changes in the model to adapt the specification to ISO 19139
* Renaming objects and classes which are now Gemini-centric
List of CSW servers tested:
https://spreadsheets.google.com/spreadsheet/ccc?key=0Atp3cZFjuIOAdDBVQWRINnlfN1d0b2lleHVEdjBSb2c&hl=en_US&authkey=CNu4hsEB#gid=0" amercader
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
2268 UKLP Use same schema as form for harvested records uklii ckan-backlog enhancement thejimmyg new 2012-03-30T11:56:46Z 2012-03-30T11:56:46Z Datasets created via the harvesting (UKLP ones) and the ones created via the form use a different schema. That could lead to problems. We need to discuss the best approach. amercader
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
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
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
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
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
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
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
84 Revert support on versioned objects vdm ckan-future enhancement kindly assigned 2009-07-23T08:59:03Z 2012-06-25T12:13:05Z "Basic revert in the classic wiki form is already support by purging a Revision. However may wish to support:
1. Cases where multiple objects changed in a revision but only want to revert 1 (low priority)
2. Want to revert but have reversion as a new revision of that object.
Seems low priority at present.
Cost: ?" rgrp
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
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
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
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
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
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
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
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