{22} Trac tickets (2647 matches)
Results (2401 - 2500 of 2647)
Id | Type | Owner | Reporter | Milestone | Status | Resolution | Summary | Description | Posixtime | Modifiedtime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#128 | enhancement | dread | rgrp | v0.11 | closed | fixed | Add ckan_url attribute to REST JSON representation of a Package |
Add ckan_url attribute to REST JSON representation of a Package pointing to the (read) url of package on CKAN. Cost: 30m |
1253866713000000 | 1275694573000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#333 | enhancement | dread | v1.1 | closed | wontfix | CKAN front end requirements for package notifications |
Use case: new package
The notification message (step 5) has to get through to the front-end that the new package is created before the redirect (step 6). This suggests that the message sending needs to be *synchronous*, i.e. acknowledged by the front-end, before CKAN redirects the user to the front-end package listing page (step 6). In addition, this use case suggests the front-end listens for package notifications, to save another call to CKAN to get the package details, before the displaying the list of packages. If this isn't possible (see next use case) and it must listen for revision notifications instead, then perhaps it is worth including the full package details in the payload for the revision notification message. Would there be a problem with such a large message in the next use case, with 100 packages? Use case: CKAN imports packages
The package addition could be achieved in 1 revision, 100 revisions or some compromise:
This use case suggests a bulk import of packages should go into one revision, and therefore generate one revision notification message and 100 package notification messages. The front-end client should listen to only revision messages. |
1275324042000000 | 1275407987000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#313 | enhancement | rgrp | dread | v1.1 | closed | fixed | Allow packages to be specified by IDs in REST interface |
If a package name changes, a simple CKAN client may not be aware of this (not monitoring the push notifications, revisions or feed), so it is preferable to refer to the package by its (invariant) ID. It is still useful to refer to a package by its name though, so both should be valid arguments in the REST interface. |
1273606248000000 | 1275404524000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#328 | enhancement | dread | rgrp | v1.1 | closed | fixed | Mention code libraries in API documentation |
Should prominently (at the top?) mention existing code libraries for working with ckan api. Have:
|
1274988106000000 | 1275318745000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#330 | defect | dread | dread | closed | fixed | getdata/ons timezone not recognised on non-British servers |
The python time module is supposed to recognise timezones such as 'UTC', 'GMT' and 'BST' using the %Z parameter. This works fine on British installs, but the buildbot (for example) gives this error: DateConvertError?: Could not read date as ISO format "%a, %d %b %Y %H:%M:%S %Z". Date provided: "Mon, 04 Jan 2010 09:30:00 BST" It turns out that it only recognises local names of timezones. The ONS import doesn't care much about timezone, so we should just ignore it, avoiding these problems. |
1275300271000000 | 1275303122000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#308 | enhancement | rgrp | rgrp | closed | duplicate | Autocomplete package names & tags in package search |
Extracted from ticket:216. Dubious of its merit. |
1273050549000000 | 1275302577000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#329 | defect | rgrp | dread | v1.1 | closed | fixed | Bad dates cause exception on Gov form |
ReproductionUsing the government form, create a new package with name 'test' and date released of '23/5/0210'. The result is a 500 error and 'Server Error' message. Affects all versions of CKAN. Why it's happeningThe dates module is raising an exception on the invalid date when saving the date, which is not being caught. The exception should have been raised only during the earlier 'validation' step and that would be caught. |
1275060617000000 | 1275079189000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#326 | task | dread | dread | v1.1 | closed | fixed | Centralise importation of json library |
Later versions of python use json which is better than simplejson, but it must be kept as an option for compatibility. So centralise the import of json to ckan.lib.helpers. |
1274784223000000 | 1274789296000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#319 | defect | dread | dread | closed | fixed | Local Authority license misnamed in migration script 18 |
Migration script 18 converts license "OKD Compliant::Local Authority Copyright with data.gov.uk rights" into "uklocalauthority-withrights" when it should be "localauth-withrights", according to the license service SoS 2. This causes clients difficulties looking it up. |
1274349714000000 | 1274366882000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#311 | defect | dread | rgrp | v1.1 | closed | fixed | Reordering of package resources can lead to integri |
Created a new package resource line and then moved it up above existing one and hit save. Result: 500 error. In logs have: [Sat May 08 21:55:41 2010] [error] [client 86.26.8.30] Error - <class 'sqlalchemy.exceptions.IntegrityError'>: (IntegrityError) duplicate key value violates unique constraint "package_resource_revision_pkey", referer: http://ckan.net/package/edit/cofog [Sat May 08 21:55:41 2010] [error] [client 86.26.8.30] 'INSERT INTO package_resource_revision (id, package_id, url, format, description, hash, position, state, revision_id, continuity_id) VALUES (%(id)s, %(package_id)s, %(url)s, %(format)s, %(description)s, %(hash)s, %(position)s, %(state)s, %(revision_id)s, %(continuity_id)s)' {'hash': '', 'description': 'The Treasury record of COFOG functions. ', 'format': 'XLS', 'url': 'http://www.hm-treasury.gov.uk/d/cofog_definitions_coins250609.xls', 'package_id': '8482334d-fe2e-4285-9114-5243130f80c0', 'state': 'active', 'continuity_id': '8bf302db-8a80-47d3-b5dc-bc07512a3928', 'position': 3, 'revision_id': 'e4e2cb2d-4bd5-414e-b646-e484f174d9ab', 'id': '8bf302db-8a80-47d3-b5dc-bc07512a3928'}, referer: http://ckan.net/package/edit/cofog |
1273348968000000 | 1274282065000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#254 | enhancement | dread | dread | v1.0 | closed | fixed | Package relationships - 1. model |
New domain object: PackageRelationship? (revisioned) Attributes:
Relationship type values: depends_on (dependency_of) derives_from (has_derivation) child_of (parent_of) Relationship type is stored as a string, as given in the first column. The reverse relationship (bracketed) is given just for display purposes only. Subject / Object - as in a sentence: "Dracos is derived from OSM" is <subject> <predicate> <object>. We'll use 'type' instead of 'predicate' as that is a more familiar word. |
1266928449000000 | 1273596180000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#255 | enhancement | dread | dread | v1.0 | closed | fixed | Package relationships - 2. Read in WUI |
WUI:
|
1266928542000000 | 1273596174000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#257 | enhancement | dread | dread | v1.0 | closed | fixed | Package relationships - 4. Read in API |
API:
|
1266928630000000 | 1273596170000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#258 | enhancement | rgrp | dread | v1.0 | closed | fixed | Add uuids into package in REST |
Add uuids into package in REST interface. |
1266954722000000 | 1273596163000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#259 | defect | rgrp | dread | v1.0 | closed | fixed | isitopen enquiry broken |
Pressing the 'make an enquiry' link on the package read page gives 404. (Also links should also be changed from isitopen.ckan.net to isitopendata.org) Example link is: http://isitopen.ckan.net/enquiry/create/?ckan_package=zeno which gets forwarded to: http://www.isitopendata.org/enquiry/create/?ckan_package=zeno which gives 404 |
1267012666000000 | 1273596153000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#271 | enhancement | johnbywater | johnbywater | v1.0 | closed | fixed | The system shall support distributing changes. |
See DistributingChanges for analysis and functional requirements. |
1268672137000000 | 1273596144000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#223 | enhancement | nickstenning | dread | v1.0 | closed | fixed | UI Review - Tag |
Tags landing page tag
|
1260880276000000 | 1273596111000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#216 | enhancement | nickstenning | dread | v1.0 | closed | fixed | UI Review - Search |
|
1260879802000000 | 1273596102000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#291 | defect | rgrp | dread | closed | worksforme | Investigate search options encoding |
On ckan.net there is this unchecked-in 'temporary hack'. It seems to be to do with foreign characters in search options. See what its doing and if necessary, put check it in. diff -r 813ad8b5de0b ckan/lib/search.py --- a/ckan/lib/search.py Mon Mar 01 22:23:36 2010 +0100 +++ b/ckan/lib/search.py Thu Apr 15 19:11:42 2010 +0200 @@ -63,6 +63,9 @@ def query(self, options): '''For the given search options, returns a query object.''' self._options = options + # temporary hack! + if self._options.q: + self._options.q = self._options.q.encode('utf8') general_terms, field_specific_terms = self._parse_query_string() if not general_terms and \ |
1271351670000000 | 1273254895000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#132 | defect | rgrp | dread | closed | fixed | Security hole - read package/group list (REST) |
Using REST interface you can list packages and groups without authorization being checked. Can be fixed using more advanced query to check authz. |
1254389493000000 | 1273254514000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#133 | defect | rgrp | dread | closed | fixed | Security hole - search package/group (WUI & REST) |
Using WUI or REST interface you can search packages and groups without authorization being checked. On the REST interface you can also read all the attributes of the packages using the 'all-fields' option. Can be fixed using more advanced query to check authz. |
1254390168000000 | 1273253977000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#233 | enhancement | rgrp | rgrp | v1.1 | closed | fixed | Allow simple site-specific customization/overriding of templates |
Options:
Can do this using: <xi:include href="base.html"><xi:fallback /></xi:include> |
1263000396000000 | 1273080352000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#59 | enhancement | johnbywater | rgrp | v1.0 | closed | fixed | Provide a basic guide to CKAN on the site |
|
1239018583000000 | 1273080019000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#177 | enhancement | rgrp | dread | closed | invalid | Service documentation |
This is docs for users of a CKAN service (e.g. ckan.net), as opposed to someone installing / administering the software. (The latter has docs on knowledgeforge. Editability - wiki? |
1257243285000000 | 1273050236000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#276 | defect | dread | rgrp | v1.0 | closed | fixed | Resources in Package form seen multiple times upon preview |
Create a new package with a name 'blah' and resource format 'blah'. Hit preview. There is an error because of the lack of resource url, but in the resource input boxes, there are now four resources with format 'blah'. |
1269255399000000 | 1272996237000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#305 | defect | johnbywater | johnbywater | v1.0 | closed | fixed | Search result pagination is broken |
Expect to page through results. Only page 1 is shown, all other pages fail to display. Reproduce by searching for something common and browsing to the second page. |
1272468229000000 | 1272994804000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#303 | defect | dread | dread | v1.0 | closed | fixed | Package history & diff & feed to show changes to tags, extras and resources |
Currently a package's history page (/package/history/xyz) and related feed only shows changes to the core package i.e. ones which create a PackageResource?. This doesn't include changes to tags, extras and resources. These need to be added. There is the complication that the 'diff' function doesn't currently work beyond PackageResource?. Unless this is quick and simple to fix, I suggest we let the diff remain slightly broken for now. Rufus suggests alongside the existing methods: pkg.all_revisions() pkg.diff() we have ones which also include the related objects (tags, extras, resources): pkg.all_revisions_full() pkg.diff_full() You could have a function which returned these related objects. Ideas: revobjlist = [ self, resources, extras ] list of tuples: (revobj, changed_revobjs) list of tuples: (revobj, {objtype: [changed_revobjs]}) tuple: (rev1, {Package: [ object_id, object_id], PackageTag: [object_id, object_id2] ...} |
1272370659000000 | 1272989728000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#267 | defect | johnbywater | rgrp | vdm-0.7 | closed | fixed | Diffs for object that is created in that revision |
Currently this raises an exception because there is no package/package_revision in existence at from_revision. |
1268041383000000 | 1272960518000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#302 | enhancement | johnbywater | dread | v1.0 | closed | fixed | Advertise a package's feed visually |
Visual display of a package's feed in the Package Read (/package/xyz) and Package History (/package/history/xyz) pages. Motivation: each package's Atom feed is mentioned in the <link rel="alternate" type="application/atom+xml" ...> tag, which Firefox displays with a feed icon, but the other 3/4 of users may not discover it. The Repo History (/revision) page has a visual link the feed. PS It would be nice to display the feed icon in both these places too. |
1272370397000000 | 1272453821000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#279 | enhancement | johnbywater | dread | v1.0 | closed | fixed | Ensure package's license is an option when it's edited |
With forms configurable to show a subset of licenses and ckan instances moving packages from server to server, there is a chance that a user will edit a package and the existing package's license is not displayed in the form. If the user submits this form without touching the license dropdown, then the value is lost. So for this case we should add the package's license to the list displayed. |
1270205931000000 | 1272451384000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#304 | defect | johnbywater | johnbywater | v1.0 | closed | fixed | Previewing package with resource with missing url is broken |
Intended outcome: See resource url validation error when previewing package with a resources that has no url. Recurring Error: URL: http://127.0.0.1:5000/package/new File 'pyenv-ckan/lib/python2.5/site-packages/weberror/evalexception.py', line 431 in respond app_iter = self.application(environ, detect_start_response) File 'pyenv-ckan/lib/python2.5/site-packages/repoze/who/middleware.py', line 107 in __call__ app_iter = app(environ, wrapper.wrap_start_response) File 'pyenv-ckan/lib/python2.5/site-packages/beaker/middleware.py', line 73 in __call__ return self.app(environ, start_response) File 'pyenv-ckan/lib/python2.5/site-packages/beaker/middleware.py', line 152 in __call__ return self.wrap_app(environ, session_start_response) File 'pyenv-ckan/lib/python2.5/site-packages/Routes-1.10.3-py2.5.egg/routes/middleware.py', line 130 in __call__ response = self.app(environ, start_response) File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/wsgiapp.py', line 125 in __call__ response = self.dispatch(controller, environ, start_response) File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/wsgiapp.py', line 324 in dispatch return controller(environ, start_response) File 'pyenv-ckan/src/ckan/ckan/lib/base.py', line 50 in __call__ return WSGIController.__call__(self, environ, start_response) File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/controllers/core.py', line 221 in __call__ response = self._dispatch_call() File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/controllers/core.py', line 172 in _dispatch_call response = self._inspect_call(func) File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/controllers/core.py', line 107 in _inspect_call result = self._perform_call(func, args) File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/controllers/core.py', line 60 in _perform_call return func(**args) File 'pyenv-ckan/src/ckan/ckan/controllers/package.py', line 216 in new clear_session=True) File 'pyenv-ckan/src/ckan/ckan/controllers/package.py', line 357 in _render_edit_form edit_form_html = fs.render() File 'pyenv-ckan/src/ckan/ckan/forms/builder.py', line 13 in render return render(self.form_template) File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/templating.py', line 663 in render format=format, namespace=kargs, **cache_args) File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/templating.py', line 546 in render **options) File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/plugin.py', line 110 in render File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py', line 179 in render File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 60 in encode File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 425 in __call__ File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 592 in __call__ File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 698 in __call__ File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 532 in __call__ File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py', line 283 in _ensure File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 569 in _include File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/markup.py', line 245 in _match File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 543 in _exec File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 533 in _eval File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 520 in _eval File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 286 in _eval_expr File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/eval.py', line 180 in evaluate File 'pyenv-ckan/src/ckan/ckan/templates/package/form_fields.html', line 52 in <Expression u'h.literal(field.render())'> ${h.literal(field.render())} File 'pyenv-ckan/lib/python2.5/site-packages/FormAlchemy-1.3.4-py2.5.egg/formalchemy/fields.py', line 1217 in render return self.renderer.render(**opts) File 'pyenv-ckan/src/ckan/ckan/forms/common.py', line 311 in render return render('package/form_resources') File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/templating.py', line 663 in render format=format, namespace=kargs, **cache_args) File 'pyenv-ckan/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/pylons/templating.py', line 546 in render **options) File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/plugin.py', line 110 in render File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py', line 179 in render File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 60 in encode File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 425 in __call__ File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 592 in __call__ File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 698 in __call__ File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py', line 532 in __call__ File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py', line 283 in _ensure File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 569 in _include File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/markup.py', line 245 in _match File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 543 in _exec File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 510 in _eval File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 520 in _eval File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py', line 286 in _eval_expr File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/eval.py', line 180 in evaluate File 'pyenv-ckan/src/ckan/ckan/templates/package/form_resources.html', line 14 in <Expression u"res['id'] if res else ''"> <td><input name="${c.id}-${i}-id" type="hidden" value="${res['id'] if res else ''}" /></td> File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/eval.py', line 335 in lookup_item File 'pyenv-ckan/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/eval.py', line 405 in undefined UndefinedError: {'url': u'a', 'hash': u'a', 'description': u'a', 'format': u'a'} has no member named "id" How to reproduce:
|
1272379550000000 | 1272447296000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#264 | defect | dread | rgrp | v1.0 | closed | fixed | Investigate why there are revisions with no associated packages |
Revision.packages should not include all changes so why are we getting revisions with no associated changes? See e.g. http://ckan.net/revision/read/814e39e1-2540-4449-90d1-ac9a92ab40fb? Investigate and fix. NB: if this is bugfix this should go against stable or metastable branch if at all possible and then be merged into default. Cost: 1.5h (?) |
1267605428000000 | 1272390013000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#295 | enhancement | dread | dread | v1.0 | closed | fixed | Add multiple packages when editing a group |
In Group edit page, you can only add one package at a time. It would be better to use some scripting to allow adding more than one at once, to make it easier and quicker when you have a long list to add. Ticket is split off from ticket:221 See also ticket:155 (duplicate). |
1271756713000000 | 1272384758000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#300 | defect | rgrp | dread | v1.0 | closed | fixed | Resource ordering issue |
Failing test: ckan.tests.models.test_resource.TestResourceLifecycle?.test_03_reorder_resources Not clear how visible this is to the user. Related to ticket:292 |
1272285994000000 | 1272384474000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#240 | defect | johnbywater | rgrp | v1.0 | closed | fixed | Do not allow creation of PackageResource object without a url |
Currently it is possible (v0.11) to have a PackageResource? object without a url. This should be impossible to do (either at creation time or via modification). |
1265399747000000 | 1272383770000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#292 | defect | dread | dread | v1.0 | closed | fixed | PackageResources are created new on every package edit |
When you edit a package, all of its resources are deleted and a fresh set created. This causes all history of them to be lost. |
1271755964000000 | 1272286005000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#156 | enhancement | johnbywater | dread | v1.0 | closed | fixed | Whitelist for html in mark-down field |
Not just links that need to be displayed. Other html should be displayed too, such as tables which can't be represented in markdown. Do a search of the existing fields to see what is needed. |
1255623973000000 | 1271962871000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#293 | defect | johnbywater | dread | v1.0 | closed | fixed | REST PackageResource update causes exception |
This is caused by editing a package with resources over the REST interface. Exception: URL: http://de.ckan.net/api/rest/package/destatis 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 repoze.who.middleware:107 in __call__ << wrapper = StartResponseWrapper(start_response) app_iter = app(environ, wrapper.wrap_start_response) # The challenge decider almost(?) always needs information from the >> app_iter = app(environ, wrapper.wrap_start_response) 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:51 in __call__ << # available in environ['pylons.routes_dict'] try: return WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> return WSGIController.__call__(self, environ, start_response) Module pylons.controllers.core:221 in __call__ << return response(environ, self.start_response) response = self._dispatch_call() if not start_response_called: self.start_response = start_response >> response = self._dispatch_call() Module pylons.controllers.core:172 in _dispatch_call << req.environ['pylons.action_method'] = func response = self._inspect_call(func) else: if log_debug: >> response = self._inspect_call(func) Module pylons.controllers.core:107 in _inspect_call << func.__name__, args) try: result = self._perform_call(func, args) except HTTPException, httpe: if log_debug: >> result = self._perform_call(func, args) Module pylons.controllers.core:60 in _perform_call << """Hide the traceback for everything above this method""" __traceback_hide__ = 'before_and_this' return func(**args) def _inspect_call(self, func): >> return func(**args) Module ckan.controllers.rest:145 in update << fs = ckan.forms.group_fs_combined fs = fs.bind(entity, data=request_fa_dict) validation = fs.validate_on_edit(entity.name, entity.id) if not validation: response.status_int = 409 >> validation = fs.validate_on_edit(entity.name, entity.id) Module ckan.forms.package:385 in validate_on_edit << temp_name = orig_pkg_name self.data['Package-%s-name' % record_id] = u'something_unique' validation = self.validate() if temp_name: # restore it >> validation = self.validate() Module formalchemy.forms:175 in validate << if self.readonly: raise Exception('Cannot validate a read-only FieldSet') return AbstractFieldSet.validate(self) def sync(self): >> return AbstractFieldSet.validate(self) Module formalchemy.forms:104 in validate << success = True for field in self.render_fields.itervalues(): success = field._validate() and success # run this _after_ the field validators, since each field validator # resets its error list. we want to allow the global validator to add >> success = field._validate() and success Module formalchemy.fields:763 in _validate << try: value = self._deserialize() except validators.ValidationError, e: self.errors.append(e) >> value = self._deserialize() Module formalchemy.fields:1354 in _deserialize << if self.is_composite_foreign_key: return self.query(self.relation_type()).get(python_pk(self.renderer.deserialize())) return self.renderer.deserialize() >> return self.renderer.deserialize() Module formalchemy.fields:183 in deserialize << if self.field.is_collection: return [self._deserialize(subdata) for subdata in self._serialized_value()] return self._deserialize(self._serialized_value()) def _deserialize(self, data): >> return self._deserialize(self._serialized_value()) Module formalchemy.fields:167 in _serialized_value << if self.field.is_collection: return self._params.getall(self.name) return self._params.getone(self.name) def deserialize(self): >> return self._params.getone(self.name) Module formalchemy.base:63 in getone << if v is None or isinstance(v, basestring) or isinstance(v, cgi.FieldStorage): return v return v[0] def getall(self, key): v = dict.get(self, key) >> return v[0] TypeError: 'int' object is unsubscriptable Thanks to Friedrich for spotting this. |
1271756102000000 | 1271940083000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#284 | defect | johnbywater | rgrp | v1.0 | closed | fixed | Move tag/read/xxx to simple tag/xxx like package and group |
Also put in redirect from old locations (see examples with plurals in routing.py) Estimated cost: 20m Actual cost: 40m |
1270664552000000 | 1271852451000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#155 | enhancement | dread | dread | v1.0 | closed | duplicate | Adding multiple packages to a group |
Ability to add multiple packages to a group in one go (e.g. with 'add' link which makes drop down menu appear - so can add one after another - then submit simultaneously) Use a bit of javascript to add more dropdowns. Suggested by Jonathan Gray |
1255621779000000 | 1271760041000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#221 | enhancement | dread | dread | v1.0 | closed | fixed | UI Review - Package edit |
Package edit page package/edit/mypackagename
|
1260880175000000 | 1271756757000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#290 | defect | johnbywater | dread | v1.0 | closed | fixed | Revision API - docs |
doc/api.rst needs to cover the new Revision REST interface. |
1271268759000000 | 1271636910000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#266 | enhancement | johnbywater | dread | v1.0 | closed | fixed | Package feed |
As a user I want to track changes to a particular package. Provide an Atom feed, linked from the package read page. |
1267716417000000 | 1271636901000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#265 | enhancement | johnbywater | dread | v1.0 | closed | fixed | More detail shown in Atom feed |
Use caseAs a user I want to stay abreast of package changes, such as a new package being created, newer data is available for a package or a new download is available for a package. ImplementationAdd into the Atom feed:
|
1267708364000000 | 1271636891000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#251 | enhancement | johnbywater | johnbywater | v1.0 | closed | fixed | Present in the API a list of revision IDs, and present individual revisions when referenced by ID |
Want to have:
Support querying by "since time" and "since revision". Each individual revision should be available in the REST API (read-only):
|
1266519743000000 | 1271423917000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#164 | enhancement | wwaites | dread | v1.0 | closed | fixed | Creating RDF data from CKAN |
Related to: ticket:90 Link to RDF version of CKAN data and ticket:163 (regularly convert CKAN data to RDF). Convert ckan data to RDF with suitable ontology and put on semantic.ckan.net. |
1256052643000000 | 1271251422000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#207 | enhancement | dread | nickstenning | v1.0 | closed | fixed | Reimplement tag selection in jQuery |
Remove the current dependency on Yahoo YUI toolkit for doing tag autocompletion on package edit forms. The (KForge-derived) behaviour files for CKAN can easily be switched to the new jQuery-based ones: see ticket:212. Once this is done, it would make sense to implement the tag-selection code with jQuery. Relevant pages include: |
1260200340000000 | 1271250740000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#289 | enhancement | rgrp | dread | v1.0 | closed | fixed | Document config options | 1271248690000000 | 1271249368000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#244 | defect | rgrp | dread | closed | fixed | Several links preceded by link URL |
e.g. Text on ckan.net home page: "All material available under an /licenseopen license" Also seen on the package edit page: "/user/loginClick here to sign in" I believe this is due to the i18n additions from Benoit. Maybe needs new Genshi. Maybe best to work round in the meantime. |
1265750419000000 | 1271248968000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#247 | enhancement | dread | rgrp | v1.0 | closed | fixed | Alternative formats links on package page |
"Alternative formats". Has logo for RDF (link to RDF) and JSON (link via CKAN REST i/f).
Cost: 1h |
1265890326000000 | 1271248813000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#288 | defect | dread | dread | v1.0 | closed | fixed | Foreign and escaped characters in extras fields |
These don't work. |
1271171899000000 | 1271173777000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#280 | defect | dread | dread | v1.0 | closed | fixed | Disappearing extra fields |
When I edit a package on no.ckan.net with lots of extra fields, lots of them completely disappear. Metastable branch. |
1270209684000000 | 1271173769000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#278 | defect | dread | dread | v1.0 | closed | fixed | Spaces in extra field keys |
If the key to an extra field has a space in it then various form code doesn't work. Either need to disallow spaces or cope with them. |
1269520845000000 | 1271173752000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#287 | enhancement | dread | dread | v1.0 | closed | fixed | Customise Canadian package edit form |
Spec - see attached, which is a copy of the Pirate Pad from Lauren: http://piratepad.net/2C2iwiLDhd |
1270801086000000 | 1270801210000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#248 | enhancement | dread | rgrp | v1.0 | closed | fixed | i18n of forms |
Need to do i18n of forms (not in templates but in code). Should consult with tonfa about this. |
1265892313000000 | 1270745304000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#281 | enhancement | dread | dread | v1.0 | closed | fixed | Refactor forms to be plugin-able | 1270542248000000 | 1270723675000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#286 | enhancement | dread | dread | v1.0 | closed | fixed | Refactor forms templates |
Use Nick's examples as a basis to revamp the formalchemy usage, principally in the package edit form. |
1270723513000000 | 1270723629000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#241 | defect | rgrp | dread | v1.0 | closed | fixed | License doesn't preview correctly |
4 failing tests, including 2 in misc/package_saver and 2 in functional/test_package. |
1265625546000000 | 1270569769000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#182 | enhancement | rgrp | v1.0 | closed | fixed | Improve openness icons |
Tick and cross aren't clear enough. Propose:
Cost: 2h (?) |
1257534590000000 | 1270567116000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#81 | enhancement | rgrp | rgrp | vdm-0.7 | closed | fixed | Support for sqlalchemy 0.5 | 1248285433000000 | 1268487327000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#129 | enhancement | rgrp | dread | ckan-backlog | closed | invalid | Secure db access by channelling query generation through authz module |
Controllers and templates should not access db objects directly - they should do all access via authz module giving username. They are handed by a query that has already been filtered by the packages they are authorized to read. (Additional idea to be discussed: When they request a package object, they are handed an copy of the db object - disconnected from the database - so it the db object can't be changed.) A couple of tests can be reenabled when this is done: ckan.tests.functional.test_authz.TestUsage?.test_admin_list_deleted ckan.tests.functional.test_authz.TestUsage?.test_search_deleted |
1253886136000000 | 1267719162000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#199 | defect | rgrp | casbon | closed | fixed | Fix failing tests and provide documentation on how to run tests in datapkg |
As of 80:099bdc5b07a6 datapkg has 4 test fails and 1 test error. There is no documentation on how to run them, so I am using 'python setup.py test'. datapkg.tests.test_cli.TestCLI.test_ckan ... FAIL datapkg.tests.test_cli.TestCLI.test_walkthrough ... FAIL datapkg.tests.test_index.TestDbIndex.test_get ... /Users/james/Documents/virtualenvs/okfn/src/datapkg/datapkg/index.py:97: SADeprecationWarning: Use session.add() self.session.update(pkg) FAIL datapkg.tests.test_index.TestDbIndex.test_get_when_loaded_as_new_and_init_not_called ... /Users/james/Documents/virtualenvs/okfn/src/datapkg/datapkg/tests/test_index.py:57: SADeprecationWarning: Use session.expunge_all() self.index.session.clear() FAIL |
1259087361000000 | 1267649255000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#101 | enhancement | rgrp | rgrp | closed | fixed | (Improved) Download support |
Once on disk should uncompress (if necessary). Details
Cost: 1d |
1249988866000000 | 1267648607000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#50 | task | rgrp | rgrp | closed | fixed | Investigate apt-get in more detail |
Research apt-get especially wajig and python wrappers for apt-get. Post results on the wiki. |
1215456052000000 | 1267648356000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#83 | enhancement | rgrp | rgrp | vdm-0.6 | closed | fixed | Allow "ignored" fields on versioned objects |
Allow 'ignored' fields on versioned objects (i.e. attributes which are not 'versioned'). This is not hard to do as we already have most of the necessary mechanisms set up in the Revisioner object. Cost: 2h |
1248339384000000 | 1267648301000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#261 | defect | dread | rgrp | v1.0 | closed | fixed | License does not work through REST API |
Presence of license_id field in JSON input show below breaks REST API (with weird error about int not being subscriptable as if license_id field is being subscripted). Using normal license field does not cause breakage but has no effect. (Also think we should remove license_id from the API since there is no guarantee this cross system compatible since locally generated on install). ourjson = '''{ "maintainer" : "Applications Division", "version" : "1999-01-01", "license_id" : 9, "name" : "geogratiswaterfraction1km_v100", "author_email" : "...", "author" : "Dissemination Branch", "tags" : [ "GeoGratis", "Canada", "GCMD", "Hydrosphere", "Ground Water", "Surface Water", "Hydropattern", "Earth Science", "Land Surface", "Land Cover", "Landscape" ], "extras" : { "License" : "http://geogratis.ca/geogratis/en/licence.jsp", "Ministry" : "Natural Resources Canada", "Level of Government" : "Federal" }, "maintainer_email" : "[email protected]", "notes" : "This product is a raster coverage", "url" : "http://geogratis.cgdi.gc.ca/geogratis/en/collection/metadata.do?id=67", "title" : "Geogratis - 1-km Water Fraction From National Topographic Data Base Maps, Canada" } ''' def test_15_random(self): offset = '/api/rest/package' import urllib tmpjson = simplejson.dumps(simplejson.loads(self.ourjson)) postparams = urllib.urlencode({tmpjson: 1}) res = self.app.post(offset, params=postparams, status=[200], extra_environ=self.extra_environ) model.Session.remove() |
1267134778000000 | 1267207776000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#260 | enhancement | dread | rgrp | v1.0 | closed | fixed | Display group package list in standard (richer) way |
Currently use old "bullet-point" style. Should change to now standard style used on e.g. package search results page. Cost: 0.5h |
1267100660000000 | 1267122137000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#224 | enhancement | nickstenning | dread | v0.11 | closed | fixed | UI Review - Groups |
Groups landing page group
|
1260880360000000 | 1267100560000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#176 | enhancement | dread | dread | closed | duplicate | Package dependencies |
(Related to ticket:169 - Package derivations) A 'dependency' relationship can be applied from one package to another. It implies that a package requires the download or existence of another package which it 'depends on'. (Analogous to software package dependencies.) e.g. london-traffic-visualisation depends on road-map 'Dependency' relationship is:
'dependency' table columns:
Further tickets:
Issues
|
1257162812000000 | 1266928721000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#169 | enhancement | dread | dread | closed | duplicate | Package derivations |
A 'Derived' relationship can be applied from one package to another. e.g. sussex-demography is derived from census-2001 'Derived' relationship is:
'derived' table columns:
Further tickets:
|
1256304927000000 | 1266928708000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#243 | defect | rgrp | dread | closed | worksforme | Repetition of number of packages in a group |
http://ckan.net/group/publicdomain has: "There is 16 package in this group. There are 16 packages in this group." |
1265750250000000 | 1266837796000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#198 | enhancement | rgrp | dread | closed | fixed | Change package and tag ids to uuids |
See how we did it already for other things. Note: on ckan.net older PackageRevision?.id might not be identical to Package.id but this may need sorting at this point. |
1258980613000000 | 1266837606000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#184 | enhancement | dread | rgrp | closed | fixed | Stats page |
Create /stats/ page displaying main statistics, e.g:
Related to ticket:181 - Stats side-bar Details
|
1257534756000000 | 1266837414000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#215 | enhancement | rgrp | dread | v1.0 | closed | fixed | UI Review - Home page |
Also, what about ticket:143 ? |
1260879732000000 | 1266513523000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#73 | enhancement | rgrp | rgrp | closed | invalid | Put enquiry template in db so it can be edited by admins |
Currently stored in the python controller file. This is not the right place and putting it in db will allow editing by admins. May also want to do this for the footer (also in the controller file). Details:
Cost: 2h. |
1247705786000000 | 1266510385000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#211 | enhancement | johnbywater | johnbywater | closed | invalid | User login |
Native login scenario: Complete login form, require email address. Any session is resumed. Mandated technical requirement: use Repoze (see plugin:form of repoze.who); borrow from BlastOff?. See CKAN or Microfacts for usage of repose with openid. |
1260292624000000 | 1266509848000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#238 | enhancement | johnbywater | johnbywater | closed | invalid | The system shall accept submissions from unauthenticated users of the data openness enquiry form by creating an anonymous pending enquiry action, and by redirecting the user to login form, passing a reference to the pending action | 1264157814000000 | 1266509806000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#210 | enhancement | johnbywater | johnbywater | closed | invalid | User registration |
Native registration scenario: Complete registration form, require unique email address (indicate this not displayed on site), full name (indicate this is displayed on site), password. Dispatch email confirmation message. Respond to email confirmation message causes user to be logged in. Users are assigned a uuid. |
1260292578000000 | 1266509788000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#89 | enhancement | nickstenning | rgrp | closed | fixed | Tag cloud for package tags |
Should not be hard to do (lots of existing libraries) but not sure that this is very important. |
1248693939000000 | 1265892698000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#187 | enhancement | rgrp | rgrp | v0.11 | closed | fixed | Full-text search |
Standard search should search notes field in addition to name, title and tags (discussed in ticket:108 but not done). For this to work we need proper text search since o/w we get poor ordering and lots of bad results. If we do this we need:
Easiest way to do this is to use existing facilities in dbs e.g. postgres has full text support since 8.3: http://www.postgresql.org/docs/8.3/static/textsearch.html Using this with sqlalchemy: http://lowmanio.co.uk/blog/entries/postgresql-full-text-search-and-sqlalchemy/ Issues with fulltext search:
|
1257869950000000 | 1265892403000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#202 | enhancement | tonfa | dread | v0.11 | closed | fixed | Internationalization (i18n) try-out |
Try i18n for one language (German) for ckan (de.ckan.net). Basic approach to i18n is well-covered in Pylons book: http://pylonsbook.com/en/1.1/internationalization-and-localization.html However, we need to integrate with our Genshi templates. Details on how to do this in comment: http://wiki.pylonshq.com/display/pylonsdocs/Internationalization+and+Localization Steps
|
1260179192000000 | 1265892368000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#21 | enhancement | somebody | johnbywater | v0.11 | closed | fixed | Undelete a package | 1152550936000000 | 1265891796000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#46 | enhancement | rgrp | johnbywater | v0.9 | closed | fixed | Return error documents that look and feel like normal CKAN pages | 1201111018000000 | 1265891789000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#229 | enhancement | dread | dread | v0.11 | closed | fixed | Resource hashes |
New field for resources - hash of the resource file.
Questions for the field's value:
Thanks to Julien D'Assanges for the suggestion. |
1262686287000000 | 1265891612000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#88 | enhancement | rgrp | rgrp | v0.11 | closed | fixed | Download (link) metadata |
Support for download metadata (file size, file formats, version information). See also: ticket:87 (multiple download links) |
1248693385000000 | 1265891491000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#163 | enhancement | rgrp | dread | v0.11 | closed | fixed | Regularly put CKAN RDF on Talis CC |
Related to: ticket:90 Link to RDF version of CKAN data on Talis Connected Commons ticket:164 Creating RDF data from CKAN Regularly re-upload the CKAN RDF data to Talis CC. In the long run may wish to only re-convert packages changed since the last upload. However given relatively smaller size of full dataset this optimization is probably not yet required. Cost: ? (1d+ depending on e.g. how easy integration with Talis CC is) |
1256052587000000 | 1265891374000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#166 | enhancement | dread | dread | v0.11 | closed | fixed | Add extras editing to ckanclient |
Ensure logging is working on server. |
1256203581000000 | 1265891199000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#167 | defect | dread | dread | v0.11 | closed | fixed | REST interface you can't update multiple tags |
Only first tag is updated. |
1256209993000000 | 1265891178000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#170 | enhancement | rgrp | dread | v0.11 | closed | fixed | Paginate search results |
e.g. http://www.ckan.net/package/search?q=science&search=Search+Packages+%C2%BB Results are capped at 20, but can't see past first page. |
1256313584000000 | 1265891157000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#174 | defect | rgrp | dread | v0.11 | closed | fixed | Packages search broken for 'only openly licensed' |
the "only openly licensed packages" tick box seems to return blank page every time - as do queries for only openly licensed and only downloadable packages. The "only downloadable packages" tick box by itself seems to work fine. E.g. try searching for 'science'. Raised by Jonathan Gray |
1256650867000000 | 1265891093000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#203 | enhancement | dread | dread | v0.11 | closed | fixed | show package counts for groups in WUI |
In two places in the WUI
Cost: 1h |
1260187690000000 | 1265891080000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#208 | enhancement | dread | rgrp | v0.11 | closed | fixed | Obfuscate author email and maintainer email field |
Obfuscate author email and maintainer email field. Use: webhelpers.html.tools.mail_to e.g. webhelpers.html.tools.mail_to('mike@…', encode='javascript') Do we want to? Surely only public addresses should be on CKAN in which case why obfuscate? |
1260203938000000 | 1265891070000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#213 | enhancement | dread | dread | v0.11 | closed | fixed | Automate CKAN deployment |
fabric script to automate ckan deployment |
1260811707000000 | 1265891061000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#80 | enhancement | dread | rgrp | v0.10 | closed | fixed | Refactor or remove modes code |
Get rid of modes in the RESTful API. Do json stuff directly in controllers.
|
1247844263000000 | 1265890912000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#79 | enhancement | dread | rgrp | v0.10 | closed | fixed | Improvements to package search |
Several things:
Since we should be moving to a more sophisticated search solution anyway (to allow prioritisation etc) maybe we should cautious as to what we do now. |
1247829864000000 | 1265890806000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#61 | enhancement | rgrp | rgrp | v0.10 | closed | fixed | When dumping data to json do not dump private information like API keys |
Cost: 1h |
1239123529000000 | 1265890790000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#90 | enhancement | nickstenning | rgrp | v0.11 | closed | fixed | Link to RDF versions of CKAN data |
We should link to representations on semantic.ckan.net
Cost: 3h Future
|
1248943742000000 | 1265890334000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#140 | enhancement | rgrp | ckan-backlog | new | News section on front page |
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:
Cost: 4h? |
1254902541000000 | 1265625159000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#196 | defect | dread | dread | v1.0 | closed | fixed | RDF URI to resolve on CKAN |
Provide RDF version of a package at the RDF URI: http://ckan.net/package/rdf/32000-naples-florida-businesses-kml See email on OKFN help: For the information to be Linked Data, the following URI (from the api.talis.com SPARQL call) should be resolvable to RDF, or an RDFa enhanced HTML page. |
1258727988000000 | 1265389771000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#160 | enhancement | dread | rgrp | v0.11 | closed | fixed | Implement internal links in CKAN notes markup |
Suggest form is: key:value (with optional space after ':'. Keys would be for an object, i.e. 'package', 'tag', 'group'. Becomes a link. This would be implemented by implementing a 'Parser' or 'Processor' object which is run before markdown is done. Regex replace. Cost: 4h |
1256030751000000 | 1265312986000000 |