{22} Trac tickets (2647 matches)
Results (2301 - 2400 of 2647)
Id | Type | Owner | Reporter | Milestone | Status | Resolution | Summary | Description | Posixtime | Modifiedtime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#1144 | enhancement | timmcnamara | ckan-backlog | new | Support DSPL |
DSPL, the Dataset Publishing Language, is being promoted by Google for its "Google Public Data Explorer" system. It is an XML format with metadata. The format is described on the developer docs ofthe Google Code site. Google provides a Python script which reads CSV data and generates DSPL Sample from http://code.google.com/apis/publicdata/docs/dspl_sample.html: <?xml version="1.0" encoding="UTF-8"?> <dspl xmlns="http://schemas.google.com/dspl/2010" xmlns:geo="http://www.google.com/publicdata/dataset/google/geo" xmlns:geo_usa="http://www.google.com/publicdata/dataset/google/geo/us" xmlns:time="http://www.google.com/publicdata/dataset/google/time" xmlns:quantity="http://www.google.com/publicdata/dataset/google/quantity" xmlns:entity="http://www.google.com/publicdata/dataset/google/entity"> <import namespace="http://www.google.com/publicdata/dataset/google/time"/> <import namespace="http://www.google.com/publicdata/dataset/google/quantity"/> <import namespace="http://www.google.com/publicdata/dataset/google/entity"/> <import namespace="http://www.google.com/publicdata/dataset/google/geo"/> <info> <name> <value>My statistics</value> </name> <description> <value>Some very interesting statistics about countries</value> </description> <url> <value>http://www.stats-bureau.com/mystats/info.html</value> </url> </info> <provider> <name> <value>Bureau of Statistics</value> </name> <url> <value>http://www.stats-bureau.com</value> </url> </provider> <topics> <topic id="geography"> <info> <name><value>Geography</value></name> </info> </topic> <topic id="social_indicators"> <info> <name><value>Social indicators</value></name> </info> <topic id="population_indicators"> <info> <name><value>Population indicators</value></name> </info> </topic> <topic id="poverty_and_income"> <info> <name><value>Poverty & income</value></name> </info> </topic> <topic id="health"> <info> <name><value>Health</value></name> </info> </topic> </topic> </topics> <concepts> <!-- As noted in the tutorial, this concept should extend quantity:amount.--> <concept id="population"> <info> <name> <value>Population</value> </name> <description> <value>Size of the resident population.</value> </description> </info> <topic ref="population_indicators"/> <type ref="integer"/> </concept> <!-- This country concept is defined for educational purposes only. A country concept exists in the Google geo dataset. See: http://code.google.com/apis/publicdata/docs/canonical/geo.html --> <concept id="country" extends="geo:location"> <info> <name> <value>Country</value> </name> <description> <value>My list of countries</value> </description> </info> <type ref="string"/> <property id="name"> <info> <name><value xml:lang="en">Country name</value></name> <description> <value xml:lang="en">The official name of the country</value> </description> </info> <type ref="string"/> </property> <table ref="countries_table"/> </concept> <!-- This US state concept is defined for educational purposes only. A US state concept exists in the Google geo US dataset. See: http://code.google.com/apis/publicdata/docs/canonical/geo.us.html --> <concept id="state" extends="geo:location"> <info> <name> <value>State</value> </name> <description> <value>US states</value> </description> </info> <type ref="string"/> <property concept="country" isParent="true"/> <table ref="states_table"/> </concept> <concept id="gender" extends="entity:entity"> <info> <name> <value>Gender</value> </name> <description> <value>Gender, Male or Female</value> </description> <pluralName><value>Genders</value></pluralName> <totalName><value>Both genders</value></totalName> </info> <type ref="string"/> <table ref="genders_table"/> </concept> <concept id="unemployment_rate" extends="quantity:rate"> <info> <name> <value>unemployment rate</value> </name> <description> <value>The percent of the labor force that is unemployed, not seasonally adjusted.</value> </description> <url><value>http://www.bls.gov/cps/cps_htgm.htm</value></url> </info> <topic ref="social_indicators"/> <type ref="float"/> <attribute id="is_percentage"> <type ref="boolean"/> <value>true</value> </attribute> </concept> </concepts> <slices> <slice id="countries_slice"> <dimension concept="country"/> <dimension concept="time:year"/> <metric concept="population"/> <table ref="countries_slice_table"/> </slice> <slice id="states_slice"> <dimension concept="state"/> <dimension concept="time:year"/> <metric concept="population"/> <metric concept="unemployment_rate"/> <table ref="states_slice_table"/> </slice> <slice id="countries_gender_slice"> <dimension concept="country"/> <dimension concept="gender"/> <dimension concept="time:year"/> <metric concept="population"/> <table ref="countries_gender_slice_table"/> </slice> </slices> <tables> <table id="countries_table"> <column id="country" type="string"/> <column id="name" type="string"/> <column id="latitude" type="float"/> <column id="longitude" type="float"/> <data> <file format="csv" encoding="utf-8">countries.csv</file> </data> </table> <table id="countries_slice_table"> <column id="country" type="string"/> <column id="year" type="date" format="yyyy"/> <column id="population" type="integer"/> <data> <file format="csv" encoding="utf-8">country_slice.csv</file> </data> </table> <table id="states_table"> <column id="state" type="string"/> <column id="name" type="string"/> <column id="country" type="string"> <value>US</value> </column> <column id="latitude" type="float"/> <column id="longitude" type="float"/> <data> <file format="csv" encoding="utf-8">states.csv</file> </data> </table> <table id="states_slice_table"> <column id="state" type="string"/> <column id="year" type="date" format="yyyy"/> <column id="population" type="integer"/> <column id="unemployment_rate" type="float"/> <data> <file format="csv" encoding="utf-8">state_slice.csv</file> </data> </table> <table id="genders_table"> <column id="gender" type="string"/> <column id="name" type="string"/> <data> <file format="csv" encoding="utf-8">genders.csv</file> </data> </table> <table id="countries_gender_slice_table"> <column id="country" type="string"/> <column id="gender" type="string"/> <column id="year" type="date" format="yyyy"/> <column id="population" type="integer"/> <data> <file format="csv" encoding="utf-8">gender_country_slice.csv</file> </data> </table> </tables> </dspl> |
1305763609000000 | 1339774517000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1145 | enhancement | timmcnamara | ckan-backlog | new | Support the Handle System |
The Handle System is an initiative to provide persistent references for resources. That is, it's basically a proxy system for preventing link rot. Its documentation is here: http://www.handle.net/. Servers running CKAN could host a "Local Handle Service", which redirects a hash of a resource to an actual URL. Some suggested use cases:
|
1305764775000000 | 1339774502000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1152 | enhancement | amercader | amercader | ckan-backlog | new | True support for generic CSW servers |
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:
code). This probably involves issues discussed in the CREP 3 (ticket #1134)
List of CSW servers tested: |
1306141334000000 | 1313411822000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1163 | enhancement | rgrp | rgrp | ckan-backlog | new | Improvements to Storage Extension |
Storage is now working but there are
Different Backend IssuesLocal file store is rather different from 'remote' storage in various ways:
|
1306408778000000 | 1310133808000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1165 | enhancement | nils.toedtmann | ckan-future | new | Add multi-site support to ckan |
Currently, each ckan site needs its own ckan wsgi process. That eats a lot of resources where many ckan sites are served from one machine (e.g. eu3). That would dramatically change if a ckan process could behave like multiple ckans (e.g. like Apache's "<VirtualHost?>", or tracd). Depending on the "Host:" header in the HTTP1.1 request, it would choose which local ckan ini file to obey. I see two ways to constitute the map hostname-to-ini-file map:
In either case there should be a global ckan ini having the default settings for all local ckan sites. Each site ini could be very short then, just having e.g. title, name, database credentials, active plugins etc. |
1306413667000000 | 1339774466000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1179 | enhancement | timmcnamara | ckan-backlog | new | Support tag aliases |
A small number of tags are near-duplicates of each other. Perhaps we could support word stemming from NLTK and/or manual tag aliases:
|
1307429221000000 | 1339774332000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1182 | defect | timmcnamara | ckan-backlog | new | Comments from deleted packages appear in "Recent Comments" feed |
When a package has been deleted, say for spam moderation, comments still appear in the recent comments section. This is a problem because non-admin users will be shown a warning that they're not authorised to view the package if they click on the link. At CKAN.net currently, this affects the most recent comment. |
1307658251000000 | 1339774319000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1184 | enhancement | timmcnamara | ckan-backlog | new | Support Wuala as CKAN storage option |
Most of CKANs storage options are tied to the USA. This brings concerns of data security for some organisations who may wish to adopt the system. Wuala is a distributed file system that stores data in a peer-to-peer manner. The company behind it, LaCie? sells storage for a fee. However, they also enable clients to have 'free' storage space when machines act as a storage node. In order to be a storage node, a machine needs to be online for more than 14% of the time - roughly 4h per day. Most CKAN servers are likely to have a far greater uptime than this. Supporting Wuala would go some way to enabling CKAN to be used in a secure manner. That is, CKAN could be promoted for organisational use where there is lots of data to be stored and large geographic distances to be managed. There is a Python client available and a fairly long Google Tech Talk that overviews the system. |
1308034751000000 | 1339774306000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1185 | defect | timmcnamara | ckan-backlog | new | Administrators can't delete packages from web UI |
Administrators have "View", "Edit" and "History" tabs. However, I can't see a way to delete a package from the web UI. Version: CKAN.net as of today |
1308111818000000 | 1339774289000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1188 | enhancement | nickstenning | ckan-backlog | new | Allow diffing against initial (blank) package version |
Currently the history page only allows diffing between different versions of a package, but there doesn't appear to be any easy way to see the changes introduced by the first version of a package. I'm requesting the ability to diff against a "blank slate" initial state of a project, so I can see the content of the first project commit. Not sure if this is a vdm feature, so I'm putting this ticket in against ckan. |
1308153160000000 | 1339774275000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1198 | enhancement | dread | ckan-backlog | new | Publisher hierarchy |
'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:
(This feature deprecates authorization groups) |
1308820592000000 | 1339774200000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1201 | enhancement | kindly | ckan-backlog | new | seperate out logic in atom feeds to logic layer. |
Simplify the logic in the atom feed an make all feeds use logic layer to return lists. |
1308928892000000 | 1310124297000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1203 | defect | johnglover | rolf | ckan-backlog | new | Moderated edits: html code shows as "changed" although it is not |
I've installed the Moderated Edits extension (ckanext-moderatededits) and am editing a package imported from IATIregistry.org, with an extra field which contains a bit of HTML. The editor indicates the field has changed, although the content hasn't (see screenshot). All I can find so far is a minor difference: in the field content, there is a code — and in the rendered table that is an — |
1309274970000000 | 1313401579000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1227 | enhancement | timmcnamara | ckan-backlog | new | Display packages' tags in search results |
In when displaying search results, it would be useful to also display the tags of a package. Sometimes it's difficult to infer the scope of what the package does from the title and the first sentence of the description. Tags are quite concise way to display rich information. ENV=datacatalos.org, with CKAN 1.4.2a |
1311034262000000 | 1339774147000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1232 | enhancement | thejimmyg | ckan-backlog | new | [super] Interface improvements |
Child tickets:
|
1311178296000000 | 1315948536000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1233 | enhancement | thejimmyg | ckan-backlog | new | [super] Improve wiki-style functionality for history |
At the moment we have a good revisioning system but a poor history interface. We need to improve this in a number of areas:
|
1311179392000000 | 1315948668000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1235 | enhancement | thejimmyg | ckan-future | new | [super] Search Improvements |
Child tickets:
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. |
1311182641000000 | 1311182641000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1257 | enhancement | dread | ckan-backlog | new | Anti-Spam tools |
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:
Systems to consider:
General thoughts:
|
1312283565000000 | 1339774129000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1259 | enhancement | johnglover | pudo | ckan-backlog | new | "Add a row" for Extras on Package form |
The default package form offers 4 empty extras fields. Like the resource section, it should have an "add more" button to add another row. |
1312302693000000 | 1312907056000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1260 | enhancement | pudo | ckan-backlog | new | Remove duplicate functions from _util.html |
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. |
1312366652000000 | 1313401499000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1261 | defect | pudo | ckan-backlog | new | Investigate dots in extras search |
It seems that searching for extras_foo:value works with solr, but extras_foo.bar:value doesn't. No theory on why. |
1312366768000000 | 1312366768000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1262 | enhancement | pudo | ckan-backlog | new | Enforce "create-user" permission |
This does not seem to have any implications at the moment, it should lock down registration and remove all related links. |
1312375296000000 | 1323090112000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1273 | requirement | amercader | ckan-backlog | new | Create docs for API v3 | 1313412083000000 | 1313412083000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1278 | enhancement | amercader | ckan-backlog | new | Refactor authorized_query calls |
There are some functions that still use the Auhtorizer().authorized_query method: ./ckan/controllers/authorization_group.py:24: query = ckan.authz.Authorizer().authorized_query(c.user, model.AuthorizationGroup) ./ckan/lib/base.py:237: groups = ckan.authz.Authorizer.authorized_query(c.user, model.Group, ./ckan/lib/search/sql.py:55: q = authz.Authorizer().authorized_query(username, model.Group) ./ckan/lib/search/sql.py:118: q = authz.Authorizer().authorized_query(self.options.get('username'), model.Package) ./ckan/logic/action/get.py:154: query = Authorizer().authorized_query(user, model.Group, model.Action.EDIT) ./ckan/tests/test_authz.py:158: q = self.authorizer.authorized_query(self.notadmin.name, model.Package) ./ckan/tests/test_authz.py:353: q = self.authorizer.authorized_query(self.notmember.name, model.Package) ./ckan/tests/test_authz.py:357: q = self.authorizer.authorized_query(self.member.name, model.Package) ./ckan/tests/functional/test_authorization_group.py:44: group_count = Authorizer.authorized_query(u'russianfan', model.AuthorizationGroup).count() |
1313415177000000 | 1313415177000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1286 | enhancement | rgrp | ckan-backlog | new | Remove remaining formalchemy stuff |
Stuff I've spotted:
This can go once new DGU form is in. |
1314116996000000 | 1342436420000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1288 | defect | dread | ckan-backlog | new | Package edit/creation can't include 'relationships' field |
When you create or edit a package (via the API), you aren't able to specify the relationships it has. (If you do you get 409 {"__junk": ["The input field __junk was not expected."]} ) The normal way to create relationships is via /api/rest/relationships/ and this works. But when you GET a package, the dictionary lists all relationship details. So this bug creates a problem for editing a package that has relationships - you want to GET it, make any edits and then PUT it back. The work-around is to delete the 'relationships' key from the dict before you PUT it back. OptionsIdeally, CKAN would read the 'relationships' key and make the necessary changes. This is a chunk of work. Another good option is to allow an unchanged 'relationships' value, but barf it is edited. This is also a chunk of work. A bad option would be to just ignore the 'relationships' value, since users will get frustrated changing this value and wonder why it never saves, not understanding it is different to all the rest, without error message. A final option is to get rid of relationships altogether. |
1314203695000000 | 1339774098000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1311 | enhancement | rgrp | rgrp | ckan-backlog | new | Modal user register and login form |
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
Implementation
|
1315297227000000 | 1315297227000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1326 | enhancement | thejimmyg | ckan-backlog | new | Write a set of auth plugin functions to integrate with Druapl |
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. |
1315821084000000 | 1315821084000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1336 | defect | johnglover | dread | ckan-backlog | new | License fudge |
cset:4b59ab34137d ckan/logic/action/get.py: - isopen = model.Package.get_license_register()[license_id].isopen() - result_dict['isopen'] = isopen + try: + isopen = model.Package.get_license_register()[license_id].isopen() + result_dict['isopen'] = isopen + except KeyError: + # TODO: create a log message this error? + result_dict['isopen'] = False This change hides problems with the license server and returns potentially incorrect values for openness. This has been noted as 'temporary fix' but seems to be forgotten about, since it has been merged to default and gone into release 1.4.3. I suggest the licenses are cached (I thought this was already the case when CKAN first requests them after start-up?). I suggest failure would return 503. |
1315912057000000 | 1323173073000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1343 | enhancement | rgrp | rgrp | ckan-backlog | new | [super] User related improvements (login, user pages etc) | 1316017098000000 | 1318528138000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1352 | enhancement | amercader | ckan-backlog | new | Use logic functions instead of as_dict when indexing entities |
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) |
1316615397000000 | 1339774086000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1355 | defect | amercader | ckan-backlog | new | Package extras property does not include the newly created ones |
The extras in the package object sent to the extensions after editing (https://bitbucket.org/okfn/ckan/src/01efd5649c10/ckan/logic/action/update.py#cl-226) do not include the newly added. |
1317034126000000 | 1339774056000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1382 | defect | thejimmyg | thejimmyg | ckan-backlog | new | Deleted resources are present for harvested package |
Perhaps the importer deletes them before re-importing. We shouldn't have deleted resources, so let's investigate. |
1318337889000000 | 1318337889000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1384 | task | rgrp | shevski | ckan-backlog | new | CKAN wiki needs updating to refer to thedatahub.org instead of ckan.net and datasets instead of packages |
Most articles still refer and link to ckan.net, wiki.ckan.net and to packages |
1318414077000000 | 1318414077000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1403 | enhancement | zephod | zephod | ckan-backlog | new | Refactor groups index page |
Groups are listed alphabetically with paging - not an ideal user experience. We would like to list groups in order of 'popularity': The number of datasets they contain. Following this chain of thought, then, it would be nice to rearrange the groups table by clicking on column headers and having it sort by that column. Furthermore, then, we'd like to implement a full-fledged groups search feature (if this is at all feasible). The forthcoming groups refactor will probably have some bearing on this task. |
1318847512000000 | 1318847566000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1406 | enhancement | zephod | ckan-backlog | new | Re-enable RSS subscriptions |
RSS 'subscribe' buttons appeared in many places on the site but were not very helpful. They took (confused) users pointed to the raw feed code, and Google Reader could not understand the feed. Safari, however, could interpret it correctly. Their presentation needs to be clear and consistent; the RSS feed really needs testing in a variety of readers; and we need to decide exactly which items should get a feed. (Package updates? Groups?) |
1318861327000000 | 1320930088000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1411 | enhancement | zephod | rgrp | ckan-backlog | new | Force resource format to be lower case (also mimetype) |
Format should be lowercase. Automatically lower case (for extra points have a bit of javascript to force lower case when entering).
|
1319319604000000 | 1319319604000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1414 | enhancement | shevski | ckan-backlog | new | track user log-ins on thedatahub.org |
Set up tracking for user logins so that we have stats about how many active users of thedatahub exist want to be able to see who logged in the the last x months |
1319454782000000 | 1319454782000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1423 | enhancement | markbrough | ckan-backlog | new | Edit resources suggestions |
|
1319641906000000 | 1338203678000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1424 | enhancement | dread | ckan-backlog | new | Openness notice should be clearer |
ckan-discuss discussion suggests changes to the 'openness' indicator ( http://lists.okfn.org/pipermail/ckan-discuss/2011-October/001786.html ) Dataset view page:
|
1319648089000000 | 1319648089000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1429 | enhancement | rgrp | rgrp | ckan-backlog | new | Provide DOIs for datasets in a CKAN instance |
DOI = digital object identifier = http://www.doi.org/ As a Publisher I want a DOI for my dataset so that it can be cited by and linked to by others in a standard and easy way. Details
|
1319977305000000 | 1319977305000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1432 | enhancement | rgrp | ckan-backlog | new | [super] Data processing system for CKAN and Webstore |
Super ticket: #1190 A data processing system which utilizes the Webstore. One could get a long way with simple javascript running in the browser for development with this javascript then run offline using something like nodejs. Alternatively one could allow one to specify a url to e.g. a python file which would then be run in a sandbox (with access to some specified set of python modules) |
1320142747000000 | 1339774041000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1438 | enhancement | dread | ckan-future | new | Action API - parameter discovery/checking |
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. implementationHow 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. |
1320161890000000 | 1338205050000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1439 | enhancement | dread | ckan-backlog | new | Action API discoverablility |
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.)
/api/action/{action_name} should also return the help text / parameters allowable. (Currently this returns 400 error) |
1320161970000000 | 1325474974000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1457 | defect | jilly.mathews | ckan-future | new | Bug with DataNL instance |
n the manual it says an API key kan be created via http://test.ckan.net/user/me /. However, when I try the corresponding http://register.data.overheid.nl/user/me, I get a 404 error (not found). |
1320925041000000 | 1320925041000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1459 | enhancement | rgrp | rgrp | ckan-backlog | new | Featured Dataset feature |
Provide way to mark a dataset as featured. Featured database show up on the front page. TODO: detail this more. |
1321113012000000 | 1321113012000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1466 | enhancement | thejimmyg | ckan-backlog | new | Need to support https login for multiple instances as part of the CKAN package install | 1321375978000000 | 1328529062000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1534 | enhancement | rgrp | ckan-backlog | new | Change revisions to record userid rather than username |
The use of username is problematic because username's can change.
|
1323278790000000 | 1338205050000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1535 | enhancement | dread | ckan-backlog | new | Plump for auth header of: X-CKAN-API-KEY |
When using the API, the apikey needs to be supplied in a header called 'Authorization'. Because some proxys / deployments use this header for other things, a configurable header was provided as an alternative, with default "X-CKAN-API-KEY". Rufus suggests having *one* way for this. a) making this not configurable any more b) making X-CKAN-API-KEY the default (keep Authorization allowed, but not documented, for backwards compatibility) |
1323279082000000 | 1339774019000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1542 | enhancement | dread | ckan-backlog | new | Buttons to purge spam datasets and groups |
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. |
1323364930000000 | 1339774000000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1544 | task | dread | ckan-backlog | new | delete old git branches |
We have 150 odd branches (git branch -a) - most of them old - we should prune them. At very least, branches that have been merged in should be deleted. Look at old branches that haven't been merged in and wonder why. May be of some use: git branch --merged git branch --no-merged |
1323702610000000 | 1323702610000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1557 | enhancement | David Rasnik | jilly mathews | ckan-future | new | Complete Webstore Preview Extension |
Finish any work out standing on web store preview extension to be able to package and release. Ref James and I going through existing features and trying to mention any polishing that needed doing to get exiting features ready for release with projects such as CKAN hosted. |
1324291253000000 | 1324291253000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1558 | enhancement | David Raznik | jilly mathews | ckan-future | new | Publisher Tools |
Summarise final set of requirements for this and finish development and test. Estimated 10 working days. |
1324291573000000 | 1324291573000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1560 | enhancement | David Raznik | jilly mathews | ckan-future | new | Follow extension |
Estimate 2 days to finish dev and test. David can you add any info needed here? |
1324291879000000 | 1324291879000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1561 | enhancement | David Raznik | jilly mathews | ckan-future | new | To do extension |
Can we finish this ready for release on data hub and CKAN Hosted. |
1324291972000000 | 1324291972000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1562 | enhancement | Adria | jilly mathews | ckan-future | new | Finish Geo Spatial |
Estimated 4 weeks of Adria's time. I guess this will need to be broken down into more tickets. This feature is being requested by a number of potential customers and we have some ideas of requirements between Rufus and Jilly for this. This is the most popular new feature we talk about to new clients. |
1324292193000000 | 1324292193000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1564 | enhancement | David Raznik | jilly mathews | ckan-future | new | Structured Data (Data API) |
Basic websotre exists but this may be not what is described yet. CKAN provides a rich API for the data itself, allowing users to query retrieve and use data instantly from datasets in CKAN without needing to download or process it first. |
1324292834000000 | 1324292834000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1565 | enhancement | Rufus Pollock | jilly mathews | ckan-future | new | Admin dashboard finished? |
Is testing complete and ready for release? |
1324293092000000 | 1324293092000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1567 | enhancement | David Raznik | jilly mathews | ckan-future | new | Finish QA extension |
Requires change to celeryd. Estimated 4 weeks. |
1324293599000000 | 1324293599000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1569 | enhancement | David Raznik | jilly mathews | ckan-future | new | Wordpressser |
How much effort will this be to be ready to use? |
1324294056000000 | 1324294056000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1572 | enhancement | David Raznik | jilly mathews | ckan-future | new | Meta data Harvester |
Need to write custom harvesters for each client. Is it worth having one for data hub? |
1324294509000000 | 1324294509000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1573 | enhancement | David Raznik | jilly mathews | ckan-future | new | Apps and Ideas |
Estimate 2 weeks for someone to finish and test. |
1324294593000000 | 1324294593000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1577 | defect | rgrp | dread | ckan-backlog | new | Can't upload file with foreign chars in filename |
Looks like uploading a file with foreign characters fails due to encoding reasons. URL: http://thedatahub.org/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ%C3%AD-%C4%8Cesk%C3%A9-republiky-_-P%C5%99%C3%ADprava-rozpo%C4%8Dtu.pdf Module weberror.errormiddleware:162 in __call__ << __traceback_supplement__ = Supplement, self, environ sr_checker = ResponseStartChecker(start_response) app_iter = self.application(environ, sr_checker) return self.make_catching_iter(app_iter, environ, sr_checker) except: >> app_iter = self.application(environ, sr_checker) Module beaker.middleware:73 in __call__ << self.cache_manager) environ[self.environ_key] = self.cache_manager return self.app(environ, start_response) >> return self.app(environ, start_response) Module beaker.middleware:152 in __call__ << headers.append(('Set-cookie', cookie)) return start_response(status, headers, exc_info) return self.wrap_app(environ, session_start_response) def _get_session(self): >> return self.wrap_app(environ, session_start_response) Module routes.middleware:130 in __call__ << environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1] response = self.app(environ, start_response) # Wrapped in try as in rare cases the attribute will be gone already >> response = self.app(environ, start_response) Module pylons.wsgiapp:125 in __call__ << controller = self.resolve(environ, start_response) response = self.dispatch(controller, environ, start_response) if 'paste.testing_variables' in environ and hasattr(response, >> response = self.dispatch(controller, environ, start_response) Module pylons.wsgiapp:324 in dispatch << if log_debug: log.debug("Calling controller class with WSGI interface") return controller(environ, start_response) def load_test_env(self, environ): >> return controller(environ, start_response) Module ckan.lib.base:123 in __call__ << # available in environ['pylons.routes_dict'] try: return WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> return WSGIController.__call__(self, environ, start_response) Module pylons.controllers.core:221 in __call__ << return response(environ, self.start_response) response = self._dispatch_call() if not start_response_called: self.start_response = start_response >> response = self._dispatch_call() Module pylons.controllers.core:172 in _dispatch_call << req.environ['pylons.action_method'] = func response = self._inspect_call(func) else: if log_debug: >> response = self._inspect_call(func) Module pylons.controllers.core:107 in _inspect_call << func.__name__, args) try: result = self._perform_call(func, args) except HTTPException, httpe: if log_debug: >> result = self._perform_call(func, args) Module pylons.controllers.core:60 in _perform_call << """Hide the traceback for everything above this method""" __traceback_hide__ = 'before_and_this' return func(**args) def _inspect_call(self, func): >> return func(**args) Module ckanext.storage.controller:2 in auth_form Module ckan.lib.jsonp:26 in jsonpify << Very much modelled after pylons.decorators.jsonify . """ data = func(*args, **kwargs) return to_jsonp(data) >> data = func(*args, **kwargs) Module ckanext.storage.controller:301 in auth_form << method = 'POST' authorize(method, bucket, label, c.userobj, self.ofs) data = self._get_form_data(label) return data >> authorize(method, bucket, label, c.userobj, self.ofs) Module ckanext.storage.controller:79 in authorize << if method != 'GET': # do not allow overwriting if ofs.exists(bucket, key): abort(409) # now check user stuff >> if ofs.exists(bucket, key): Module ofs.remote.botostore:53 in exists << if bucket is None: return False return (label is None) or (label in bucket) def claim_bucket(self, bucket): >> return (label is None) or (label in bucket) Module boto.s3.bucket:87 in __contains__ << def __contains__(self, key_name): return not (self.get_key(key_name) is None) def startElement(self, name, attrs, connection): >> return not (self.get_key(key_name) is None) Module boto.s3.bucket:144 in get_key << response = self.connection.make_request('HEAD', self.name, key_name, headers=headers, query_args=query_args) # Allow any success status (2xx) - for example this lets us # support Range gets, which return status 206: >> query_args=query_args) Module boto.s3.connection:388 in make_request << if isinstance(key, Key): key = key.name path = self.calling_format.build_path_base(bucket, key) boto.log.debug('path=%s' % path) auth_path = self.calling_format.build_auth_path(bucket, key) >> path = self.calling_format.build_path_base(bucket, key) Module boto.s3.connection:88 in build_path_base << def build_path_base(self, bucket, key=''): return '/%s' % urllib.quote(key) class SubdomainCallingFormat(_CallingFormat): >> return '/%s' % urllib.quote(key) Module urllib:1222 in quote << safe_map[c] = (c in safe) and c or ('%%%02X' % i) _safemaps[cachekey] = safe_map res = map(safe_map.__getitem__, s) return ''.join(res) >> res = map(safe_map.__getitem__, s) KeyError: u'\xed' CGI Variables AUTH_TYPE 'cookie' CONTENT_TYPE '; charset=utf-8' DOCUMENT_ROOT '/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT '*/*' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.3' HTTP_ACCEPT_ENCODING 'gzip,deflate,sdch' HTTP_ACCEPT_LANGUAGE 'en-US,en;q=0.8' HTTP_CACHE_CONTROL 'max-age=259200' HTTP_CONNECTION 'keep-alive' HTTP_COOKIE 'thedatahub_net=27a7f095fcca1ea6b36df996d595e3278b16f4538862bf7f88d49e2000b9246547c8fd0e; auth_tkt="f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode"; auth_tkt="f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode"; ckan_user=elenaibp; ckan_display_name="Elena Mondo"; ckan_apikey=decd48b1-49ee-4250-bff4-98ccca9c02a5; hide_welcome_message=1; __utma=119670349.1809834699.1323782464.1324293066.1324298316.4; __utmb=119670349.3.10.1324298316; __utmc=119670349; __utmz=119670349.1323782464.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' HTTP_HOST 'thedatahub.org' HTTP_REFERER 'http://thedatahub.org/dataset/edit/budget-library-czeck-republic' HTTP_USER_AGENT 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7' HTTP_VIA '1.1 localhost (squid/3.0.STABLE19)' HTTP_X_FORWARDED_FOR '87.114.74.190' HTTP_X_REQUESTED_WITH 'XMLHttpRequest' PATH '/usr/local/bin:/usr/bin:/bin' PATH_INFO '/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf' PATH_TRANSLATED '/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf' REMOTE_ADDR '193.34.146.142' REMOTE_PORT '55419' REMOTE_USER u'elenaibp' REMOTE_USER_DATA 'userid_type:unicode' REMOTE_USER_TOKENS [''] REQUEST_METHOD 'GET' REQUEST_URI '/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ%C3%AD-%C4%8Cesk%C3%A9-republiky-_-P%C5%99%C3%ADprava-rozpo%C4%8Dtu.pdf' SCRIPT_FILENAME '/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py' SCRIPT_URI 'http://thedatahub.org/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf' SCRIPT_URL '/api/storage/auth/form/2011-12-19T124447/Ministerstvo-financ\xc3\xad-\xc4\x8cesk\xc3\xa9-republiky-_-P\xc5\x99\xc3\xadprava-rozpo\xc4\x8dtu.pdf' SERVER_ADDR '193.34.146.146' SERVER_ADMIN '[no address given]' SERVER_NAME 'thedatahub.org' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.0' SERVER_SIGNATURE '<address>Apache/2.2.14 (Ubuntu) Server at thedatahub.org Port 80</address>\n' SERVER_SOFTWARE 'Apache/2.2.14 (Ubuntu)' WSGI Variables application <beaker.middleware.CacheMiddleware object at 0x7f22601c7dd0> beaker.cache <beaker.cache.CacheManager object at 0x7f22601c7b50> beaker.get_session <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0x7f22601c7a90>> beaker.session {'_accessed_time': 1324298703.071357, '_creation_time': 1324293077.4139669} mod_wsgi.application_group 'ckan.net|' mod_wsgi.callable_object 'application' mod_wsgi.listener_host '' mod_wsgi.listener_port '80' mod_wsgi.process_group 'ckan.net' mod_wsgi.reload_mechanism '1' mod_wsgi.script_reloading '1' mod_wsgi.version (2, 8) paste.cookies (<SimpleCookie: __utma='119670349.1809834699.1323782464.1324293066.1324298316.4' __utmb='119670349.3.10.1324298316' __utmc='119670349' __utmz='119670349.1323782464.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode' ckan_apikey='decd48b1-49ee-4250-bff4-98ccca9c02a5' ckan_display_name='Elena Mondo' ckan_user='elenaibp' hide_welcome_message='1' thedatahub_net='27a7f095fcca1ea6b36df996d595e3278b16f4538862bf7f88d49e2000b9246547c8fd0e'>, 'thedatahub_net=27a7f095fcca1ea6b36df996d595e3278b16f4538862bf7f88d49e2000b9246547c8fd0e; auth_tkt="f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode"; auth_tkt="f9c6ab2b0d9fcd71c4c2408bc12fab544eef1c45elenaibp!userid_type:unicode"; ckan_user=elenaibp; ckan_display_name="Elena Mondo"; ckan_apikey=decd48b1-49ee-4250-bff4-98ccca9c02a5; hide_welcome_message=1; _ _utma=119670349.1809834699.1323782464.1324293066.1324298316.4; __utmb=119670349.3.10...)|utmcmd=(none)') paste.registry <paste.registry.Registry object at 0x7f226194df50> paste.throw_errors True pylons.action_method <bound method StorageAPIController.auth_form of <ckanext.storage.controller.StorageAPIController object at 0x7f2261dad990>> pylons.controller <ckanext.storage.controller.StorageAPIController object at 0x7f2261dad990> pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons <pylons.util.PylonsContext object at 0x7f2261daddd0> pylons.routes_dict {'action': u'auth_form', 'controller': u'ckanext.storage.controller:StorageAPIController', 'label': u'2011-12-19T124447/Ministerstvo-financ\xed-\u010cesk\xe9-republiky-_-P\u0159\xedprava-rozpo\u010dtu.pdf'} repoze.who.identity <repoze.who identity (hidden, dict-like) at 139785645747120> repoze.who.logger <logging.Logger instance at 0x7f225e23c098> repoze.who.plugins {'openid': <OpenIdIdentificationPlugin 139785625065680>, 'friendlyform': <FriendlyFormPlugin 139785618095248>, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': <ckan.lib.authenticator.UsernamePasswordAuthenticator object at 0x7f2260874c10>, 'auth_tkt': <AuthTktCookiePlugin 139785625065808>, 'ckan.lib.authenticator:OpenIDAuthenticator': <ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f2260874c90>} routes.route <routes.route.Route object at 0x7f22601a1090> routes.url <routes.util.URLGenerator object at 0x7f2261dadf50> webob._parsed_query_vars (GET([]), '') webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multiprocess' wsgi.file_wrapper <built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f2261da9af8> wsgiorg.routing_args (<routes.util.URLGenerator object at 0x7f2261dadf50>, {'action': u'auth_form', 'controller': u'ckanext.storage.controller:StorageAPIController', 'label': u'2011-12-19T124447/Ministerstvo-financ\xed-\u010cesk\xe9-republiky-_-P\u0159\xedprava-rozpo\u010dtu.pdf'}) |
1324317659000000 | 1325473564000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1578 | enhancement | rgrp | ckan-backlog | new | [super] Re-enable and refactor ratings | 1324322443000000 | 1325473015000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1581 | enhancement | mark.wainwright@… | johnglover | ckan-future | new | Blog post about Google Analytics extension for CKAN |
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) |
1324402800000000 | 1325474274000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1584 | enhancement | johnglover | johnglover | ckan-backlog | new | QA report improvements - 2.5d |
Super: #1594
|
1324459433000000 | 1338981975000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1588 | enhancement | johnglover | johnglover | ckan-backlog | new | QA - Give SPARQL endpoints a 4 star rating |
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. |
1324480405000000 | 1325475178000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1589 | enhancement | johnglover | johnglover | ckan-backlog | new | QA - Give 5 star rating to datasets with link metadata |
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. |
1324480600000000 | 1325475095000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1596 | enhancement | dread | ckan-future | new | Refactor authz roles |
Suggestions from rgrp:
(This ticket is split off from #1065) |
1324549888000000 | 1338205019000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1598 | enhancement | rgrp | ckan-backlog | new | Reinstate Ratings |
Ratings were disabled approximately a year ago because:
Both problems are solvable and it would be nice to have this feature reinstated.
|
1325177524000000 | 1325474818000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1604 | enhancement | dread | ckan-backlog | new | Get ckanext-moderatededits working with CKAN 1.5+ templates |
ckanext-moderatededits requires an old and possibly development version of CKAN. It would be good to update it for later CKAN versions. According to the README, you need CKAN from branch feature-1141-moderated-edits-ajax but the changelog suggests this branch went into version 1.4.2. So it possibly works with 1.4.2 and 1.4.3(.1). But CKAN 1.5 has revamped templates, so the genshi stream filters definitely don't work. BTW history_ajax/read_ajax calls have been deprecated in CKAN since 1.5.2a and will need fixing up to use the Action API too as part of this. |
1325352429000000 | 1325352429000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1606 | enhancement | dread | ckan-backlog | new | metadata license config option |
Add a config option to choose the metadata licence. Set default to Open Database License. Currently the dataset edit form says "Important: By submitting content, you agree to release your contributions under the Open Database License." This is hard-coded, but not suitable for when DGU uses the CKAN form - they use the OGL. |
1325501130000000 | 1339773981000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1635 | enhancement | seanh | seanh | ckan-backlog | new | Email notifications (e.g. for activity streams) |
CKAN should be able to send email notifications to users. Maybe have a notifications table in the db, and a server-side job that runs periodically and consumes rows from this table, mailing them to the users. One thing that we may want to send users notifications of is activity stream events. So the activity streams code would have to add rows to the notifications table for the mailer job to consume. But remember that email notifications feature is separate from activity streams - we may want to send notifications of other things as well. Need to implement (at least some of) #1634 before this can be implemented, in order to have something to send notifications about. Analysis here: http://ckan.okfnpad.org/27 |
1326304587000000 | 1355141157000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1642 | defect | pudo | ckan-backlog | new | Extra link generators generate garbled HTML |
I had a package descriptions with URLs that contain "group:foo". This produces garbled output as the system tries to generate two sets of links: the outer link and an inner link. Need to fix the parser. Text: Webdienst basierende Bereitstellung von Geobasisdaten der Freien und Hansestadt Hamburg. Folgende Geobasisdaten werden als WebMapTileService? (WMT-S) für die Dauer des Wettbewerbs netzbasiert unter der Creative Commons Lizenz zur Verfügung gestellt: Digitale Orthophotos 40 cm Auflösung (Layer: apps4d_DOP40), Digitale Stadtkarte (Layer: apps4d_DISK), Digitale Regionalkarte (Layer: apps4d_DIRK), Digitale Karte 1:5000 (Layer: apps4d_DK5). Metadateneinträge zu den Daten im PortalU:
One fix is quoting the URLs |
1326382171000000 | 1339773967000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1643 | enhancement | shevski | ckan-backlog | new | Add fixed tags to thedatahub for better browsing |
Similar to publicdata.eu, want to have themed areas such as finance, environment, census, etc and country tags |
1326393293000000 | 1326393293000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1644 | enhancement | shevski | ckan-backlog | new | Order default dataset page by most downloaded resources on thedatahub |
Instead of alphabetically as we do currently, alternatively by most viewed datasets |
1326393542000000 | 1326393542000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1647 | enhancement | shevski | ckan-backlog | new | add links to ckan discuss & dev to thedatahub |
In the footer as well as more clearly & directly on the About page |
1326673852000000 | 1326707383000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1667 | enhancement | seanh | seanh | ckan-future | new | Add an extension point for rendering activity streams |
Currently rendering of activity stream events to HTML works by looking up a rendering function in a dictionary that maps activity types ('new package', 'changed group', etc.) to rendering functions that take an activity stream event and return the rendered HTML. There needs to be an extension point where extensions can register their own rendering functions for particular activity types. |
1326796151000000 | 1338204295000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1668 | defect | dread | ckan-backlog | new | repoze version discrepency |
There's a discrepency in repoze.who versions between the source and package installs:
We get a test failure [1] with the 1.0b3 version (from the ubuntu 10.04 python-repoze.who-plugins package). But we've not noticed any problems on s057 instances (br, no, ie etc) which have the package versions of repoze.who. The reason the package install uses the earlier packaged versions rather than the ones we'd like is that repoze uses all sorts of horrendous import hacks, making it too difficult to put into our 'ckan-conflict' source package. James suggests we 'do something horrible like dynamically patch repoze on CKAN import'. [1] http://buildbot.okfn.org/builders/builder-ckan/builds/1371/steps/shell/logs/stdio ERROR: ckan.tests.functional.test_user.TestUserController?.test_user_create_unicode |
1326801746000000 | 1326801746000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1679 | enhancement | dread | ckan-backlog | new | Default roles problem |
The 'editor', 'anon_editor' and 'reader' roles are intended to have immutable actions. This was designed to prevent their names being subverted - e.g. an editor should always be able to edit! It also meant that when we add Actions (e.g. DELETE-PACKAGE) then it can be added sensibly to these roles in an upgrade just by changing the defaults table (ckan/model/authz.py). The problem is that this immutability is only enforced on 'db upgrade'. So you can happily change the editor role using the paster command and it works, right up until you do an upgrade and realise permissions are different. We should stop the paster commands being able to edit these roles. Or get rid of the immutability completely. Views? |
1326823042000000 | 1339773923000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1697 | enhancement | rgrp | ckan-backlog | new | A Configurable list of states for a Dataset |
Currently have 'active' and 'deleted' suggest also:
(Do we need both). Also write out workflows related to these. |
1327400630000000 | 1338204189000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1717 | enhancement | shevski | ckan-backlog | new | [super] Search UX improvements |
|
1327603981000000 | 1330088539000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1740 | enhancement | seanh | ckan-future | new | Get rid of `from module import ...` |
It's really bad to do from module import * and CKAN has a lot of them. I suggest a three-pronged approach:
We should also get rid of most or all of the from module import foo and from module import foo, bar statements. I think the right thing to do is just import module and then use module.foo in your code. But if you find yourself doing module.foo.bar then you may have a code smell. |
1328094369000000 | 1328094884000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1745 | enhancement | rgrp | ckan-v1.9 | new | Dataset search UX improvements as of Jan 2012 |
Changes to make search both more exploratory and more satisfying to use
Probably would involve to pure JS and HTML implementation. ImplementationProbably require
|
1328224941000000 | 1340033358000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1747 | enhancement | seanh | ckan-backlog | new | Expire old activities |
Currently the activity streams database tables just get longer and longer over time. Do we want to eventually delete the oldest activities, to keep the length of the table within limits? |
1328446589000000 | 1339773859000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1748 | enhancement | seanh | seanh | ckan-future | new | Make activity streams conform to http://activitystrea.ms/ standard |
At the very least we should make our JSON output conform to their spec: |
1328450784000000 | 1338204337000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1750 | enhancement | seanh | ckan-backlog | new | Move ckan/lib/activity.py into the model |
Move ckan/lib/activity.py moved to into the model - say ckan/model/activity_extension.py, because it's so tightly knit with the model code, whereas most of the lib code is used in the controllers. |
1328465888000000 | 1339773840000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1782 | enhancement | zephod | rgrp | ckan-future | new | Improvements to datasets page UX (Feb 2012) |
|
1328609441000000 | 1338205232000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1787 | enhancement | dread | ckan-future | new | [super] Improve RESTful API |
This could be v3 of the RESTful interface. |
1328702082000000 | 1328702082000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1789 | enhancement | seanh | ckan-backlog | new | Implement a tag_update() logic action function |
So users can rename a tag and/or move it between vocabularies using the API. Currently we have create_tag() and delete_tag(), but if you were to 'update' a tag by deleting it and then recreating it all the datasets that had that tag will have lost it and you'll have to re-add it to them all. What should happen to datasets that have the tag, if the tag gets moved between vocabularies? All the datasets just keep the tag with the new vocabulary? This will become a problem if/when we support 'radio button'-style vocabularies (where each dataset can only have one tag from the vocabulary). |
1328805413000000 | 1339773812000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1790 | enhancement | dread | ckan-future | new | Click to delete tags, rather than have all existing tags in the tag text box |
From Pablo: Editing the tags field is clumsy when there are too many tags. Could show existing effectively as tags (like delicious), then allow clicks to delete. New tags added via text box. |
1328888674000000 | 1328888674000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1800 | refactor | seanh | ckan-future | new | Tidy up *_list() and *_search() functions in ckan/logic/action/get.py |
For consistency all the *_list() functions should list objects only and not accept an optional search query. There should be *_search() functions whenever search is needed. Currently it is inconsistent, e.g. package_list() and resource_list() do not accept a search query option and there are package_search() and resource_search(), but user_list() does accept a query and there is no user_search(). tag_list() also accepts a query, and there is also a tag_search() that apparently duplicates the search functionality. |
1329405129000000 | 1338204886000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1815 | task | amercader | amercader | ckan-future | new | Reenable Sparql endpoint on publicdata.eu |
Estimate: ? The 4store Sparql endpoint has been down for a long time. It needs to be reenabled and we need to check that the necessary informtion is pushed when creating /editing a dataset. |
1329757723000000 | 1338204641000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1818 | enhancement | amercader | amercader | ckan-future | new | Spatial metadata editor |
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:
[1] http://openlayers.org/dev/examples/draw-feature.html [2] http://openlayers.org/dev/examples/modify-feature.html |
1329763941000000 | 1338203195000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1823 | enhancement | rgrp | ckan-backlog | new | Spring clean bin directory |
Huge number of accumulated (and likely unnecessary) scripts in /bin directory. |
1329773331000000 | 1338203554000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1824 | enhancement | seanh | ckan-future | new | Add vocabulary pages |
For a free tag foo you can visit the page at /tag/foo and see a list of all the datasets that have the tag foo, and when the tag appears on dataset view pages etc. it's linked to this tag page. We should do the same thing for vocabulary tags. A tag bar in vocabulary baz should be hyperlinked to a page /tag/baz/bar, or perhaps /vocab/baz/bar. |
1329845089000000 | 1338204958000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1827 | enhancement | dread | ckan-backlog | new | 'Register' link should be hidden if you not allowed to register |
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. |
1329924939000000 | 1339773730000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2200 | enhancement | seanh | seanh | ckan-future | new | Add vocabulary_id option to tag_show() logic action function |
Currently tag_show() only works with free tags, it's not possible to get a tag_show for a vocabulary tag. |
1330533678000000 | 1338204900000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2235 | enhancement | rgrp | ckan-future | new | Group drop down on dataset edit should use chosen and sort groups by name | 1331907357000000 | 1338204726000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2244 | enhancement | toby | toby | ckan-future | new | clean up auth |
|
1332177771000000 | 1338205402000000 |