{22} Trac tickets (2647 matches)
Results (2001 - 2100 of 2647)
Id | Type | Owner | Reporter | Milestone | Status | Resolution | Summary | Description | Posixtime | Modifiedtime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#2366 | enhancement | ross | amercader | ckan-sprint-2012-06-25 | closed | fixed | Remove Authorization Groups |
1.7 will hide the link on the footer and put a deprecation notice on the related pages, but they should be completely removed on 1.8. |
1335892563000000 | 1346316322000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2856 | defect | toby | shevski | demo phase 3 | closed | fixed | server error when clicking on deleted app link |
|
1345049684000000 | 1345107503000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2722 | defect | aron.carroll | shevski | demo phase 3 | closed | fixed | Ordering or search of datasets of a group brings up 'no results' |
http://s031.okserver.org:2375/group/data-explorer?q=&sort=views_recent+desc |
1342948854000000 | 1344510010000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1194 | defect | dread | closed | fixed | "Welcome back" message for newly registered user |
|
1308563392000000 | 1317053688000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2724 | enhancement | toby | shevski | demo phase 3 | closed | fixed | Inconsistent labelling / UX on draft datasets |
|
1342949402000000 | 1343319009000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1717 | enhancement | shevski | ckan-backlog | new | [super] Search UX improvements |
|
1327603981000000 | 1330088539000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#60 | enhancement | rgrp | rgrp | v0.9 | closed | fixed | Front page usability improvements |
|
1239094266000000 | 1246434921000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#66 | enhancement | rgrp | rgrp | v0.10 | closed | fixed | Improve user account UI |
We can think of a bunch of other stuff that could go on their (recent edits, packages you own etc) but these will be separate tickets. |
1245263685000000 | 1250785405000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#315 | defect | dread | rgrp | v1.1 | closed | fixed | Improvements and fixes to csv dump |
<quote> In the latest dump there were 116(!) sets of the three columns (“resource-[n]-url”, “resource-[n]-format”, and “resource-[n]-description”). However, these are an extract of the packed “resource” column and I’m not sure whether they’re needed. Also, they irritatingly don’t appear in order in the CSV serialisation. If the resource columns could be ordered in the file that would be great; if a second version without the unpacked resource data would be excellent. </quote> |
1274100887000000 | 1275846764000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2726 | enhancement | toby | shevski | demo phase 5 | new | confusing logic on data preview formats |
|
1342949927000000 | 1343030906000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#923 | defect | rgrp | dread | closed | worksforme | Search box doesn't work in leaderboard page |
Tried in: chrome, firefox |
1295867328000000 | 1340632144000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#918 | defect | memespring | dread | closed | invalid | Package preview doesn't show tags or groups |
Notice that the preview at the bottom doesn't show what tags or groups the package is in. This is because the new design of the package view only has this info in the sidebar, which is not displayed in the preview. One might argue that this is ok because the tag is not a central part of the metadata, only used for searching, so it is ok not to preview it. But I wanted to check that this change was a conscious decision. |
1295346496000000 | 1315911507000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#919 | enhancement | dread | dread | ckan-v1.4-sprint-6 | closed | fixed | Package preview contains API & datapkg instructions |
The preview contains the section "CKAN API / datapkg" which seems irrelevant at this point. Looking at ckan.net previews, the Comments section only appears when you view a package and not when you preview it. This seems more sensible - can this be done for the "CKAN API / datapkg" section too? |
1295346730000000 | 1303202627000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#823 | defect | dread | dread | closed | fixed | Etags cache doesn't update when only non-core package fields changed. |
Reason: hash doesn't change because package.revision only takes account of core fields. |
1290505078000000 | 1290506116000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2609 | enhancement | toby | aron.carroll | opendatasuite 1 | closed | fixed | Demo theme errors when creating a dataset without a resource |
Page errors. URL: http://localhost:5000/dataset/new_resource/asdasd File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/weberror/evalexception.py', line 431 in respond app_iter = self.application(environ, detect_start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__ resp = self.call_func(req, *args, **self.kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, *args, **kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/publisher.py', line 234 in __call__ return request.get_response(self.app) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__ resp = self.call_func(req, *args, **self.kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, *args, **kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/injector.py', line 52 in __call__ response = request.get_response(self.app) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 73 in __call__ return self.app(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 152 in __call__ return self.wrap_app(environ, session_start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/routes/middleware.py', line 130 in __call__ response = self.app(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 125 in __call__ response = self.dispatch(controller, environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 324 in dispatch return controller(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/lib/base.py', line 258 in __call__ res = WSGIController.__call__(self, environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 221 in __call__ response = self._dispatch_call() File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call response = self._inspect_call(func) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 107 in _inspect_call result = self._perform_call(func, args) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 60 in _perform_call return func(**args) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 495 in new_resource get_action('resource_create')(context, data) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/logic/action/create.py', line 240 in resource_create raise ValidationError(errors, _error_summary(errors)) ValidationError: {u'URL': u'Missing value'} |
1340810211000000 | 1340900271000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1486 | defect | seanh | seanh | closed | fixed | "allow_partial_update" option does not work with resource lists of packages |
=> All of the package's resource will have their statuses changed to "deleted". The "allow_partial_update" option should apply to the resource lists of packages, but it does not. |
1322061318000000 | 1323172027000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#178 | enhancement | rgrp | dread | v0.11 | closed | fixed | Excel package importer |
/tool New 'tools' section of the WUI with 'Excel package import' page. /tool/import Import page allows you to upload a file. The format of the required Excel file is described here. List of licenses provided for copy&paste. /tool/import/preview When you upload it, it gives you a simple preview of the file, offering import. Text as per Package Preview. 'import button' for completing process. File format: First row to have a cell value of 'name' or 'title' in it is the Title Row. It contains the field names, as per package. It includes:
When importing, values are bound into the package fieldset, validated and displayed for the preview and synced to complete. User has to log in to use importer. Auth is checked for putting into groups. |
1257244034000000 | 1265305558000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2762 | defect | seanh | ckan-v1.8 | new | test_related.py crashes |
/home/seanh/Projects/ckan/ckan/ckan/tests/functional/test_related.py ImportError? (cannot import name assert_regexp_matches) |
1343303753000000 | 1343303753000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1173 | enhancement | amercader | amercader | pdeu-1 | closed | fixed | Offer a DCat representation for packages in the API |
/api/rest/package/foo.rdf should return a DCat representation of the package. To create it, we will use the functions in ckanext-rdf. |
1306939639000000 | 1307615271000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#739 | requirement | thejimmyg | johnbywater | ckan-v1.3 | closed | fixed | The system shall support retrieving a copy of the harvested metadata for a given package |
...obviously, not all packages will have a harvested metadata document. |
1287779710000000 | 1296592842000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2241 | refactor | seanh | seanh | ckan-sprint-2012-04-02 | closed | fixed | Look into making test_activity.py faster |
...but only if it can be done reasonably quickly. |
1332172354000000 | 1332426423000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1666 | enhancement | seanh | seanh | ckan-sprint-2012-02-06 | closed | fixed | Add activity stream events for tags |
...and show them on the tag pages. This means adding tag_activity_list() and tag_activity_list_html() logic functions, adding the templating to render tags as HTML, and adding the tag HTML into the tag pages. What exactly should go into a tag's activity stream? As with datasets we may want a more complex SQL query, where events from objects related to the tag (datasets, users, etc.) appear in the tag's stream. |
1326795985000000 | 1328527113000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#719 | story | pudo | pudo | iati-3 | closed | fixed | Improve overall layout of IATI |
... probably by adapting aidtransparency.net |
1287584092000000 | 1289910497000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1117 | defect | thejimmyg | nils.toedtmann | closed | invalid | Depend deb package "ckan" against ubuntu package "python-pastescript" |
... otherwise the scripts fails. |
1304089619000000 | 1304277240000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1123 | requirement | dread | nils.toedtmann | closed | fixed | Please re-package CKAN packages as "noarch" |
... or, if the CKAN packages do contain architecture-specific binary code, build packages for i386 too. Currently, http://apt-alpha.ckan.org/debian only offers packages for amd64, but e.g. "m1.small" EC2 instances are i386. We would need this in order to migrate the community instances to a packaged based CKAN. Rufus, pls prioritise. |
1304530050000000 | 1311863806000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#693 | requirement | wwaites | ckan-v1.2 | closed | fixed | Support ETag in cache decorator |
... and make cache-control header optional |
1286831051000000 | 1286831188000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#860 | defect | wwaites | wwaites | ckan-v1.3 | closed | fixed | full text indexing for semantic.ckan.net |
... |
1291726029000000 | 1291726067000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1105 | defect | nils.toedtmann | closed | invalid | test ticket, please ignore |
. |
1303508261000000 | 1303508330000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2925 | defect | seanh | ckan 2.0 | new | Remove trans mangle paster command? |
|
1347530768000000 | 1347530768000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2312 | enhancement | ross | ross | ckan-future | closed | duplicate | Analysis of how datasets could belong to users instead of Groups |
DUPLICATE OF #2548 Currently datasets can only be part of a group but that is quite heavyweight when a single user wants to upload a single dataset. To resolve this it would be great if a dataset could be attached to a user directly - find out how. |
1334663770000000 | 1340188765000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2244 | enhancement | toby | toby | ckan-future | new | clean up auth |
|
1332177771000000 | 1338205402000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2437 | task | icmurray | icmurray | ckan-v1.8 | closed | fixed | Add coding standards to CKAN docs |
|
1338196895000000 | 1343124799000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#677 | task | dread | dread | ckan-v1.3 | closed | fixed | License change script |
|
1286384756000000 | 1292587315000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#955 | defect | dread | dread | ckan-v1.3 | closed | fixed | Tidy up tests |
|
1296819300000000 | 1297342534000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#865 | defect | pudo | pudo | ckan-v1.3-sprint-1 | closed | fixed | Support external strings in JS |
|
1291801938000000 | 1295259773000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#443 | task | dread | dread | ckan-v1.2 | closed | fixed | Get DGU daily dump working (local) |
|
1282299046000000 | 1282735977000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#411 | requirement | pudo | pudo | ckan-v1.2 | closed | fixed | Deploy and test Varnish on eu3 |
|
1281349275000000 | 1287393033000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1649 | enhancement | ross | ross | ckan-sprint-2012-03-19 | closed | fixed | Verify RDF Extension (ckanext-rdf) works |
|
1326709096000000 | 1338205274000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2355 | enhancement | toby | toby | closed | fixed | [super] make extensions cleaner |
|
1335885051000000 | 1338212946000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#444 | task | dread | closed | duplicate | Discuss package relationships ideas with JF |
|
1282299238000000 | 1294414008000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#408 | requirement | pudo | pudo | ckan-v1.2 | closed | fixed | Integrate CMS via proxying |
Why: CMS are great at creating content and have very good editors and theme support ... Previous workhttp://groups.google.com/group/pylons-discuss/browse_thread/thread/f8969e28b0a007c7
http://knowledgeforge.net/shakespeare/hg/file/677eef9402e6/shakespeare/controllers/template.py
Extreme version:
1 frontend/proxy app which re-themes everything Owned by CKAN:
Everything else proxied. |
1281348581000000 | 1281609572000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2561 | enhancement | aron.carroll | aron.carroll | demo phase 1 | closed | fixed | Demo theme edit dataset is missing functionality |
|
1340035457000000 | 1341497328000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#358 | enhancement | rgrp | dread | ckan-v1.5 | closed | duplicate | Resources in REST API |
(spun out of ticket:336) Resource added to model API at: api/rest/resource Example model requestGET to: /api/2/rest/resource/a3dd8f64-9078-4f04-845c-e3f047125028 returns: [{"id": "a3dd8f64-9078-4f04-845c-e3f047125028", "package_id": "b8a325c8-af2a-43f3-8245-9db7d73dfbfe", "URL": "http://scraperwiki.com/lincolnshire-councillors", "format": "CSV", "Description": "Scrape of www.lincs.gov/councillors.pdf by ScraperWiki.", "hash": "", "position": 2 }] Authorization
Mixed model Create / Edit: if resource associated to package: check_permissions(package, update) else: check_system_permissions(c.user, model.Action.Resouce Create/Update, model.System) |
1277483282000000 | 1310128782000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#983 | defect | dread | dread | ckan-v1.3 | closed | fixed | 'db upgrade' creates system priviledges |
(should leave priviledges alone) |
1297518265000000 | 1297773407000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1552 | enhancement | dread | dread | ckan-sprint-2011-12-19 | closed | fixed | Be able to set password on the command line when creating users |
(instead of using the prompt) - needed for deployment |
1324056178000000 | 1324056240000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#150 | enhancement | dread | dread | v0.11 | closed | fixed | Loader for esw data uses REST API |
(instead of sqlalchemy interface, to facilitate general usage of the loader)
Follows on from ticket:148 and ticket:149 |
1255440828000000 | 1256751974000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1039 | enhancement | dread | dread | ckan-v1.4 | closed | fixed | Default user roles read from config |
(instead of being hard coded) |
1300212822000000 | 1300212856000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#341 | enhancement | dread | closed | fixed | Web UI accepts package IDs in URLs |
(in the same way that we can refer to packages in the API by ID as well as name.) As aclient of CKAN I want tolink to a package page in the UI, referring to it by ID |
1276162400000000 | 1277483030000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1585 | enhancement | dread | closed | fixed | Security fix |
(details embargoed until 31/1/2012) |
1324473465000000 | 1340633128000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1089 | enhancement | dread | dread | ckan-v1.4-sprint-6 | closed | fixed | Check for "--ckan" when running nosetests |
(because if you forget, you get difficult to understand errors, and more than one person has tripped up on this) |
1302631189000000 | 1302631733000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1637 | enhancement | seanh | seanh | ckan-v1.6 | closed | fixed | API call for getting the list of activity detail items for a given activty stream item |
(and add test cases for it) |
1326304817000000 | 1326737169000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#781 | task | thejimmyg | dread | ckan-v1.3 | closed | duplicate | Package edit form - 'extra' fields have 'add' and 'delete' buttons |
(Just like resource table, but extra fields don't need up/down buttons) Nice to have: a blank field is added when you tab from the last filled-in field in the table. |
1288630935000000 | 1294415081000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1240 | enhancement | kindly | rgrp | ckan-backlog | assigned | [super] API v4 |
(Just creating this ticket as somewhere to keep notes)
|
1311525660000000 | 1325473312000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1018 | task | dread | dread | ckan-v1.4-sprint-3 | closed | fixed | Remove gov form |
(It has been moved into ckanext-dgu) |
1299072516000000 | 1299073340000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#186 | enhancement | rgrp | rgrp | closed | duplicate | Automated upload to archive.org s3 |
(Follows on from ticket:107). We want to provide facility for users to automatically upload material.
|
1257803430000000 | 1296341182000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1394 | defect | dread | dread | ckan-sprint-2012-01-09 | closed | fixed | Resource validation error messages misleading |
(Editing a dataset) If the second resource contains any validation error then it says "Resources: Package resource(s) incomplete" and "Resource 1:". |
1318515262000000 | 1325604784000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#97 | enhancement | rgrp | rgrp | closed | duplicate | Do not create a distribution on a path is something already exists there |
(2009-03-09) Do not create a distribution at path X if path X already exists and contains material (unless forced via a force option). Cost: 1h |
1249983557000000 | 1318181317000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#100 | enhancement | rgrp | rgrp | closed | fixed | Convert existing data on disk to a datapkg distribution |
(2008-10-29) convert existing directory on disk to a datapkg distribution (PythonDistribution? by default). This would be presented in the CLI as a convert command. Details:
Cost: 4h |
1249986628000000 | 1318181227000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#96 | defect | rgrp | rgrp | closed | invalid | info command must give up to date information for python-type distributions |
(2008-09-10) at present when setup.py is edited info command may not give up to date information if pkg-info (in egg.info) is not rebuilt. Suggest: info command needs to rebuilds pkg-info in python-type distributions. |
1249982410000000 | 1311176063000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2728 | defect | toby | shevski | demo phase 4 | new | deleted group shows on search index - for admins |
'test-group', which has been deleted,shows up on main search page under groups - and can be filtered by - see http://s031.okserver.org:2375/dataset?groups=test-group |
1342950784000000 | 1345023944000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#112 | enhancement | rgrp | dread | v0.11 | closed | wontfix | Test db schema created via migration scripts |
'paster db upgrade' should result in the same database as 'paster db create' on a clean system. In particular, all tests should pass. Note: equivalent of paster db upgrade isn't being run from tests at the moment (we haven't been able to get this to work). |
1252316495000000 | 1265294069000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#175 | enhancement | rgrp | dread | v0.11 | closed | fixed | Creation date |
'created' attribute on User, Group and Rating datetime object: default=datetime.datetime.now() See example on revision Requires migrate script |
1256754070000000 | 1265291037000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2989 | enhancement | seanh | ckan 2.0 | new | "Add dataset to organization" should auto-select the organization |
'Add dataset to organization' button, when you get through to the third stage of the new dataset form the organization you came from is not selected. I don't see any option to choose the group when adding or updating a dataset, but if I add a dataset via the "Add dataset to group" button on a group's page, then the dataset seems to get added to that group. (And I can also add/remove existing datasets by editing the group.) I wonder if organizations should work the same way, instead of having an Organization drop-down when creating or updating a dataset. The add dataset page needs to somehow indicate that you're adding a dataset to a certain group or organization though, doesn't currently. |
1350299052000000 | 1350299052000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1127 | CREP | sebbacon | closed | fixed | CREP0001: Formalise new feature discussion and definition using CREPs |
Proposer: Seb Bacon AbstractWhen adding major new features to CKAN, a longer, more formal discussion will improve software design quality and documentation, better engage the wider community, and ensure the core team are up to date with latest developments. I propose a formal process (CREP -- CKAN Revision and Enhancement Proposal) for making this happen. The ProblemThe current workflow for introducing major new features into CKAN is very informal, typically based around one person's great idea, which they've discussed with one or two other people in the team. The originator of the idea is typically the only person with access to all the input they've had through such discussions. Often, the only location of this information is in that person's head. However, there is a lot of experience embodied in the CKAN community which should be drawn on before making large design decisions. This will lead to better software. Additionally, building consensus in the community around a proposal before implementation ensures positive community engagement and buy-in to new features, making them more likely to be a success. We aren't great at documenting new features. Documentation after coding is complete is an unrewarding experience for most programmers. Requiring skeleton documentation before code is written is a good discipline that can form the basis of better documentation in the future (e.g. by a writer rather than a programmer). SpecificationMinor features don't require a CREP, and can just be entered in the issue tracking system as a bug or feature. As a rule of thumb, a feature is major if it will take more than a day to implement, or is likely to involve matters of opinion in its design. A developer may decide that a CREP is too formal and long-winded. The decision to write a CREP is at at their discretion; however, new features MUST always be proposed via email, even if this is just a couple of sentences. If a feature requires a CREP, the proposer should find a seconder for their idea. This sanity check step happens before a CREP is written to ensure at least the possibility of consensus on the CREP. Next the proposer should write a CREP, starting by copying and pasting the template on the wiki into a new Trac ticket. This will be with a status of "new" and Type of "CREP". The proposer should notify the ckan-dev mailing list, and possibly the ckan-discuss list for less technical CREPs. The draft can be discussed via email, verbally, or via the trac ticket. In any case, it is the proposer's responsibility to keep the CREP updated to reflect the current consensus. Once consensus has been reached, the ticket should be marked with the "accepted" status and assigned to a CKAN release milestone. When an accepted CREP has been implemented, it should be resolved as "fixed". If no consensus can be reached on a draft CREP, or for some reason an accepted CREP doesn't get completed, it should be marked as or "wontfix". If a completed CREP becomes obsolete, it should be marked as "invalid", with a note pointing to the obsoleting ticket(s) Why do it this wayGiven the distributed nature of the core team plus other volunteers, some kind of written procedure is necessary to ensure a fully documented and discussed proposal. The idea of "Enhancement Proposals" which can be semi-formally proposed and discussed prior to implementation is common in the Open Source world (PEPs, DEPs, PLIPs, to name three). Existing historic proposals exist, called CEPs. The proposed system is called CREP (CKAN revision or enhancement proposal) to disambiguate it from the legacy proposals, and from the delicious fungus Boletus Edulis. Giving a formal structure to the proposal is useful as it gives the community a means to identify a CREP that's not had sufficient thought or discussion. An informal email thread can easily be lost and important questions (such as backwards compatibility) overlooked. The use of the proposed template empowers any community member to ask the proposer to expand on rationale, deliverables, etc. The structure chosen is somewhere between Debian's and Plone's. It aims to give a structure to the debate, a clear start at documentation, and also prompt some thinking about implementation and timescales. All this policy about structure should not be construed as mandatory. In particular, the later fields in the CREP template regarding Implementation Plan may be omitted if the author doesn't find them helpful. Some projects (e.g. Debian) keep their enhancement proposals in a versioning repository; others (e.g. Plone) keep them in an issue tracking system. Trac is proposed for CKAN because we already use it for small feature proposals and for team planning. It seems unlikely that change tracking on an individual CREP will be useful; a CREP that changes sufficiently from its original form should probably be marked "obselete" and a new CREP started. Using an issue tracking system also means we can easily track CREPs by state. Backwards CompatibilitySome [https://bitbucket.org/okfn/ceps/src/76b274888bcf/cep/ legacy enhancement proposals], called CEPs, have previously been started. They are currently all marked as "active". Any which require discussion should be altered by the proposer to match the new CREP specification and submitted to trac. The original CEP should be updated with a banner at the top pointing a reader to the new CREP. Any that are now obselete should be clearly marked as such in a banner at the top, pointing a reader to the trac for new CREPs. Implementation planDeliverables
Risks and mitigations
ParticipantsSeb Bacon: as current Documentation Czar (May 2011), responsible for ensuring CREPs are up to date. ProgressThis document is the entire proposal. |
1304601313000000 | 1305622850000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1129 | CREP | kindly | ckan-v1.5 | closed | fixed | CREP0002: Moderated Edits |
Proposer: David Raznick Abstract.We are trying to achieve these goals.
In order to achieve this, a feature which lets anyone edit a package but only let the moderator/owner accept it. The moderator should be able to look at a list of changes and accept the ones that This cep is not about 'if' we need such a feature, it is about 'how' we go about implementing it. Another cep may needed for the 'if' case. The ProblemWe need the following to be possible.
Solutions.
This method requires there to be a change in the way we use VDM, so that we manage statefulness ourselves. We will need to add other states such as 'waiting for approval'.
Implementation details.1.
2.
ParticipantsDavid Raznick to do it. Progress.Decided to go with option 2. However we will change the revisioning system to be like the schema attached. This gets rid of difficult querying problems caused by querying the revision tables by adding an end date, meaning you can do range queries. The better and more normalized version of a revisioning system is outlined https://docs.google.com/drawings/d/1Y7nMgVsrs081Pame2RdbZHlCAlV33ddTZ8VAsab1j-0/edit?hl=en_GB&authkey=CJfd8vsB. We will be a step closer to that, with this change, but we will keep the current vdm more or less, intact. |
1304851498000000 | 1325268100000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1141 | CREP | johnglover | ckan-backlog | closed | fixed | [super] Moderated Edits User Interface |
Proposer: John Glover AbstractWe are trying to achieve these goals:
This feature allows anyone to edit a package and create a new revision, but requires an owner/moderator to approve a revision before it is are made "official". There have been a lot of discussions around the revisioning system side of this ticket (CREP 0002) and I think these are now largely resolved. We now want to discuss the user interface. The ProblemWe require the following functionality:
Extra features:
SpecificationUI/UXUI Mockup: Revisions:
On the Edit page:
Technical Details
Why do it this wayThis hopefully provides a clear and consistent mechanism allowing both a community member to make new revisions and a moderator to view and approve revisions, with largely the same UI/UX. Implementation planDeliverablesA new CKAN extension, consisting of:
ParticipantsJohn Glover to do it. ProgressJohn has implemented the bulk of this UI. Just some things to tidy up before it is complete:
I've split these two off into a new ticket #1604. Related ProgressThe Todo extension is written and available at: https://bitbucket.org/johnglover/ckanext-todo. In the section 'The Problem', under extra features, we mention a need for the sysadmin to be able to purge a revision already. This is already done. See also#1129 Backend work |
1305721003000000 | 1325352507000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1134 | CREP | amercader | ckan-backlog | new | CREP0003: Description and Configuration of Harvesters |
Proposer: Adrià Mercader AbstractThe new harvester interface allows to create harvesters for different sources, but right now harvesters don't have many ways to describe and configure themselves. We need a way of allowing them to:
The ProblemHarvester descriptionThe current UI for adding and editing harvest sources is the same used in ckanext-dgu, and thus the 3 harvester types used in DGU to harvest various GEMINI realted sources are hardcoded in the form. The form will be migrated to a DGU-independent one, so we need the harvesters to provide all the necessary data. There is a current get_type method that returns the harvester type, but for make it compatible with the DGU forms, it returns a machine-readable string (e.g. "CSW Server"), making it error prone. Arbitrary configurationIn the current implementation, when the harvest process is started, ckanext-harvest looks for all the available plugins that implement the IHarvester interface and calls the appropiate methods for the current stage (gather_stage,fetch_stage,import_stage). At these stages, harvesters have no way of applying arbitrary configuration options, so all harvesters of the same type behave on the same way. For instance, the CKAN harvester needs a way to define the API version to use when harvesting remote instances (Right now, the version 2 is hardcoded on the code). SpecificationHarvester descriptionHarvesters will need to provide the following information so the UI form can be built:
The way to provide it will be an info method that all harvesters must implement, which will return a dictionary with the previous elements: { 'name': 'csw', 'title': 'CSW Server', 'description': 'A server that implements OGC's Catalog Service for the Web (CSW) standard' } Arbitrary configurationAs different harvesters will have very different needs, we need to provide a way to persist arbitrary configuration flags for each harvest source. The more flexible way given the current architecture in my opinion would be to store the configuration options as a JSON encoded object as a property of the harvest source (There already is an unused DB field called config in the database) (Maybe using JsonType??). This will mean adding an extra field in the harvest source form to allow entering the configuration. This could be just a simple text field where users enter the JSON encoded object or a more clever mechanism (i.e an "Add a configuration flag" link that adds two new text fields for the key and value for each flag, and a mechanism to later build the JSON object). In any case, this should probably be hidden in an "Advance options" section. Why do it this wayHarvester descriptionThe info method would provide a single point to get all the information related to the harvester, and future properties could be added to the dictionary returned without having to modify the interface. Arbitrary configurationThere is an already existing config field in the database, so we won't need to change the model. Harvesters could access the config object at any of the stages. Of course they could provide default values in their implementations so users don't need to enter them everytime. Implementation planDeliverablesRisks and mitigationsThe highest risk on the harvesters info method side is that harvester implementation don't offer one of the necessary properties (namely name and title). This could fire a warning when showing the UI form or using the CLI. ParticipantsAdrià Mercader to do it. ProgressNone yet. |
1305108868000000 | 1339774554000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2931 | enhancement | seanh | ckan 2.0 | new | Better docstring for app_globals.py |
The application's Globals object is not very informative. |
1347891194000000 | 1347891378000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1571 | enhancement | rgrp | jilly mathews | ckan-backlog | assigned | [super] Issues Extension |
"Proper" issues extension. Overview
Steps
|
1324294225000000 | 1330863183000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#327 | defect | pudo | pudo | closed | wontfix | Create a web hook worker for CKAN |
We need to have a UI module that allows for the hook CRUD and some feedback (e.g. non 200 status codes) |
1274807361000000 | 1296467361000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1177 | defect | fccoelho | closed | fixed | routes.util.GenerationException |
I have done a recent update to mu ckan install, and I am now getting this error for all my packages: URL: http://ckan.emap.fgv.br/package/dengue-net 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:118 in __call__ << # available in environ['pylons.routes_dict'] try: return WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> return WSGIController.__call__(self, environ, start_response) Module pylons.controllers.core:221 in __call__ << return response(environ, self.start_response) response = self._dispatch_call() if not start_response_called: self.start_response = start_response >> response = self._dispatch_call() Module pylons.controllers.core:172 in _dispatch_call << req.environ['pylons.action_method'] = func response = self._inspect_call(func) else: if log_debug: >> response = self._inspect_call(func) Module pylons.controllers.core:107 in _inspect_call << func.__name__, args) try: result = self._perform_call(func, args) except HTTPException, httpe: if log_debug: >> result = self._perform_call(func, args) Module pylons.controllers.core:60 in _perform_call << """Hide the traceback for everything above this method""" __traceback_hide__ = 'before_and_this' return func(**args) def _inspect_call(self, func): >> return func(**args) Module ?:2 in read Module ckan.lib.cache:167 in wrapper << log = __import__("logging").getLogger("proxy_cache") def wrapper(func, *args, **kwargs): result = func(*args, **kwargs) pylons = get_pylons(args) >> result = func(*args, **kwargs) Module ckan.controllers.package:208 in read << #render the package PackageSaver().render_package(c.pkg) return render('package/read.html') def comments(self, id): >> return render('package/read.html') Module ckan.lib.base:74 in render << return cached_template(template_name, render_template, cache_key=cache_key, cache_type=cache_type, cache_expire=cache_expire) #, ns_options=('method'), method=method) >> cache_type=cache_type, cache_expire=cache_expire) Module pylons.templating:249 in cached_template << return content else: return render_func() >> return render_func() Module ckan.lib.base:63 in render_template << stream = item.filter(stream) return literal(stream.render(method=method, encoding=None)) if 'Pragma' in response.headers: >> return literal(stream.render(method=method, encoding=None)) Module genshi.core:183 in render << method = self.serializer or 'xml' generator = self.serialize(method=method, **kwargs) return encode(generator, method=method, encoding=encoding, out=out) def select(self, path, namespaces=None, variables=None): >> return encode(generator, method=method, encoding=encoding, out=out) Module genshi.output:57 in encode << _encode = lambda string: string if out is None: return _encode(''.join(list(iterator))) for chunk in iterator: out.write(_encode(chunk)) >> return _encode(''.join(list(iterator))) Module genshi.output:339 in __call__ << for filter_ in self.filters: stream = filter_(stream) for kind, data, pos in stream: cached = cache_get((kind, data)) if cached is not None: >> for kind, data, pos in stream: Module genshi.output:670 in __call__ << _gen_prefix = _gen_prefix().next for kind, data, pos in stream: output = cache_get((kind, data)) if output is not None: >> for kind, data, pos in stream: Module genshi.output:771 in __call__ << push_text = textbuf.append pop_text = textbuf.pop for kind, data, pos in chain(stream, [(None, None, None)]): if kind is TEXT: >> for kind, data, pos in chain(stream, [(None, None, None)]): Module genshi.output:586 in __call__ << def __call__(self, stream): prev = (None, None, None) for ev in stream: if prev[0] is START: if ev[0] is END: >> for ev in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.template.base:618 in _include << tmpl = self.loader.load(href, relative_to=event[2][0], cls=cls or self.__class__) for event in tmpl.generate(ctxt, **vars): yield event except TemplateNotFound: >> for event in tmpl.generate(ctxt, **vars): Module genshi.template.base:618 in _include << tmpl = self.loader.load(href, relative_to=event[2][0], cls=cls or self.__class__) for event in tmpl.generate(ctxt, **vars): yield event except TemplateNotFound: >> for event in tmpl.generate(ctxt, **vars): Module genshi.template.base:618 in _include << tmpl = self.loader.load(href, relative_to=event[2][0], cls=cls or self.__class__) for event in tmpl.generate(ctxt, **vars): yield event except TemplateNotFound: >> for event in tmpl.generate(ctxt, **vars): Module genshi.template.base:605 in _include << from genshi.template.loader import TemplateNotFound for event in stream: if event[0] is INCLUDE: href, cls, fallback = event[1] >> for event in stream: Module genshi.template.markup:378 in _match << for event in self._match(self._flatten(template, ctxt, **vars), ctxt, start=idx + 1, **vars): yield event >> ctxt, start=idx + 1, **vars): Module genshi.template.markup:327 in _match << break for event in stream: # We (currently) only care about start and end events for matching >> for event in stream: Module genshi.template.base:565 in _flatten << elif kind is EXPR: result = _eval_expr(data, ctxt, vars) if result is not None: # First check for a string, otherwise the iterable test >> result = _eval_expr(data, ctxt, vars) Module genshi.template.base:277 in _eval_expr << if vars: ctxt.push(vars) retval = expr.evaluate(ctxt) if vars: ctxt.pop() >> retval = expr.evaluate(ctxt) Module genshi.template.eval:178 in evaluate << __traceback_hide__ = 'before_and_this' _globals = self._globals(data) return eval(self.code, _globals, {'__data__': data}) >> return eval(self.code, _globals, {'__data__': data}) Module ?:16 in <Expression u"h.subnav_link(c, h.icon('comments') + _('Comments & Questions'), controller='package', action='comments', id=c.pkg.name)"> << </li> <li py:if="g.has_commenting"> ${h.subnav_link(c, h.icon('comments') + _('Comments & Questions'), controller='package', action='comments', id=c.pkg.name)} </li> <li>${h.subnav_link(c, h.icon('page_white_stack') + _('History'), controller='package', action='history', id=c.pkg.name)}</li> >> ${h.subnav_link(c, h.icon('comments') + _('Comments & Questions'), controller='package', action='comments', id=c.pkg.name)} Module ckan.lib.helpers:126 in subnav_link << return link_to( text, url_for(action=action, **kwargs), class_=('active' if c.action == action else '') ) >> url_for(action=action, **kwargs), Module routes.util:280 in url_for << raise GenerationException( "url_for could not generate URL. Called with args: %s %s" % \ (args, kargs)) return url >> (args, kargs)) GenerationException: url_for could not generate URL. Called with args: () {'action': 'comments', 'controller': 'package', 'id': 'dengue-net'} CGI Variables AUTH_TYPE 'cookie' DOCUMENT_ROOT '/etc/apache2/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING 'gzip, deflate' HTTP_ACCEPT_LANGUAGE 'pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3' HTTP_CONNECTION 'keep-alive' HTTP_COOKIE '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86; __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"; ckan_user="flavio"; ckan_display_name="Fl\xc3\xa1vio Code\xc3\xa7o Coelho"; ckan_apikey="c139718d-918f-4a2b-b219-e33cb05cbe23"; __utmc=4669863' HTTP_HOST 'ckan.emap.fgv.br' HTTP_KEEP_ALIVE '115' HTTP_REFERER 'http://ckan.emap.fgv.br/' HTTP_USER_AGENT 'Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1' PATH_INFO '/package/dengue-net' PATH_TRANSLATED '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py/package/dengue-net' REMOTE_ADDR '10.250.48.110' REMOTE_PORT '47624' REMOTE_USER u'flavio' REMOTE_USER_DATA 'userid_type:unicode' REMOTE_USER_TOKENS [''] REQUEST_METHOD 'GET' REQUEST_URI '/package/dengue-net' SCRIPT_FILENAME '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py' SERVER_ADDR '10.252.2.60' SERVER_ADMIN '[no address given]' SERVER_NAME 'ckan.emap.fgv.br' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.2.16 (Debian) Server at ckan.emap.fgv.br Port 80</address>\n' SERVER_SOFTWARE 'Apache/2.2.16 (Debian)' WSGI Variables application <beaker.middleware.CacheMiddleware object at 0x7f051c802690> beaker.cache <beaker.cache.CacheManager object at 0x7f051c802750> beaker.get_session <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0x7f051c8026d0>> beaker.session {'locale': u'pt_BR', '_accessed_time': 1307358102.6266389, '_creation_time': 1302605470.0245121} mod_wsgi.application_group 'dck093|' mod_wsgi.callable_object 'application' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '80' mod_wsgi.process_group 'ckan' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (<SimpleCookie: SESS61faf7f7d2406929b2f9eb4cbfff17d2='a3306f5d1194cf0d8a51dbf7b42c1259' __utma='4669863.1260802706.1295364409.1306935693.1306960483.86' __utmc='4669863' __utmz='4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode' ckan='d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06' ckan_apikey='c139718d-918f-4a2b-b219-e33cb05cbe23' ckan_display_name='Fl\xc3\xa1vio Code\xc3\xa7o Coelho' ckan_user='flavio'>, '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86; __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode";... __utmc=4669863') paste.registry <paste.registry.Registry object at 0x7f051d7e5710> paste.throw_errors True pylons.action_method <bound method PackageController.read of <ckan.controllers.package.PackageController object at 0x7f051d7e5b10>> pylons.controller <ckan.controllers.package.PackageController object at 0x7f051d7e5b10> pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons <pylons.util.PylonsContext object at 0x7f051d7e5a50> pylons.routes_dict {'action': u'read', 'controller': u'package', 'id': u'dengue-net'} repoze.who.identity <repoze.who identity (hidden, dict-like) at 139659946193344> repoze.who.logger <logging.Logger instance at 0x7f051c801128> repoze.who.plugins {'openid': <OpenIdIdentificationPlugin 139659931643152>, 'friendlyform': <FriendlyFormPlugin 139659929725584>, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': <ckan.lib.authenticator.UsernamePasswordAuthenticator object at 0x7f051c9e7610>, 'auth_tkt': <AuthTktCookiePlugin 139659931643280>, 'ckan.lib.authenticator:OpenIDAuthenticator': <ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f051c9dcfd0>} routes.route <routes.route.Route object at 0x7f051c69fd50> routes.url <routes.util.URLGenerator object at 0x7f051d7e57d0> webob._parsed_cookies ({'ckan': 'd4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06', '__utmz': '4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', 'auth_tkt': 'c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode', 'ckan_display_name': 'Fl\xc3\xa1vio Code\xc3\xa7o Coelho', 'ckan_apikey': 'c139718d-918f-4a2b-b219-e33cb05cbe23', 'ckan_user': 'flavio', '__utma': '4669863.1260802706.1295364409.1306935693.1306960483.86', '__utmc': '4669863', 'SESS61faf7f7d2406929b2f9eb4cbfff17d2': 'a3306f5d1194cf0d8a51dbf7b42c1259'}, '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86; __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"< wbr>; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!... __utmc=4669863') webob._parsed_query_vars (GET([]), '') webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND threads (?)' wsgi.file_wrapper <built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f051cc1ad50> wsgi.version (1, 1) wsgiorg.routing_args (<routes.util.URLGenerator object at 0x7f051d7e57d0>, {'action': u'read', 'controller': u'package', 'id': u'dengue-net'}) |
1307358586000000 | 1307374897000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1760 | enhancement | ross | ross | ckan-sprint-2012-02-20 | closed | fixed | DGU Extract current publisher hierarchy |
Write a one-off script for import of the data. |
1328531001000000 | 1328709560000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2613 | enhancement | aron.carroll | shevski | demo phase 2 | closed | wontfix | Javascript functionality |
|
1340814271000000 | 1342620543000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1613 | defect | dread | dread | ckan-sprint-2012-01-23 | closed | wontfix | Post-dataset-edit URL has #section |
Affects 1.5, 1.5.1, 1.5.2a |
1325685555000000 | 1326813924000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#928 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-1 | closed | fixed | Documentation - CKAN credits / contributors page |
Cost: 1h |
1295872661000000 | 1297115136000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1479 | defect | dread | dread | ckan-sprint-2011-12-05 | closed | fixed | Can't edit a user with a unicode email address |
Exception: Module ckan.controllers.user:98 in read << try: user_dict = get_action('user_show')(context,data_dict) except NotFound: h.redirect_to(controller='user', action='login', id=None) >> user_dict = get_action('user_show')(context,data_dict) Module ckan.logic.action.get:488 in user_show << check_access('user_show',context, data_dict) user_dict = user_dictize(user_obj,context) if not (Authorizer().is_sysadmin(unicode(user)) or user == user_obj.name): >> user_dict = user_dictize(user_obj,context) Module ckan.lib.dictization.model_dictize:189 in user_dictize << result_dict['display_name'] = user.display_name result_dict['email_hash'] = user.email_hash result_dict['number_of_edits'] = user.number_of_edits() result_dict['number_administered_packages'] = user.number_administered_packages() >> result_dict['email_hash'] = user.email_hash Module ckan.model.user:59 in email_hash << if self.email: e = self.email.strip().lower() return hashlib.md5(e).hexdigest() def get_reference_preferred_for_uri(self): >> return hashlib.md5(e).hexdigest() UnicodeEncodeError: 'ascii' codec can't encode character u'\u044e' in position 17: ordinal not in range(128) |
1321960486000000 | 1321961592000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#110 | enhancement | dread | dread | v0.10 | closed | fixed | Integrate groups into packages |
Follow up to ticket:105 (Groups). Cost: 1d |
1252315956000000 | 1252488660000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1034 | defect | dread | closed | duplicate | Flash message cached |
|
1299845308000000 | 1320174353000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2597 | enhancement | toby | aron.carroll | demo phase 1 | closed | fixed | Demo add dataset throws error if tags are empty |
Get error. URL: http://localhost:5000/dataset/new File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/weberror/evalexception.py', line 431 in respond app_iter = self.application(environ, detect_start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__ resp = self.call_func(req, *args, **self.kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, *args, **kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/publisher.py', line 234 in __call__ return request.get_response(self.app) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__ resp = self.call_func(req, *args, **self.kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, *args, **kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/injector.py', line 52 in __call__ response = request.get_response(self.app) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 73 in __call__ return self.app(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 152 in __call__ return self.wrap_app(environ, session_start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/routes/middleware.py', line 130 in __call__ response = self.app(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 125 in __call__ response = self.dispatch(controller, environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 324 in dispatch return controller(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/lib/base.py', line 258 in __call__ res = WSGIController.__call__(self, environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 221 in __call__ response = self._dispatch_call() File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call response = self._inspect_call(func) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 107 in _inspect_call result = self._perform_call(func, args) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 60 in _perform_call return func(**args) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 422 in new return self._save_new(context) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 703 in _save_new return self.new(data_dict, errors, error_summary) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 430 in new data['tag_string'] = ', '.join(h.dict_list_reduce(c.pkg_dict['tags'], 'name')) TypeError: string indices must be integers, not str |
1340642399000000 | 1340644591000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1527 | enhancement | icmurray | icmurray | ckan-sprint-2012-01-23 | closed | fixed | Break DGU package edit form into sections |
|
1323174829000000 | 1327589456000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1752 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-20 | closed | fixed | DGU: collection of updates from feedback |
|
1328526750000000 | 1329733515000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2213 | enhancement | johnglover | johnglover | ckan-sprint-2012-04-02 | closed | fixed | Update geographical coverage tags |
|
1331047525000000 | 1332342835000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2844 | enhancement | rgrp | new | SQL-only (no solr) version of CKAN |
|
1344859168000000 | 1345454527000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1566 | enhancement | David Raznik | jilly mathews | ckan-v1.7 | closed | fixed | [super] Finalize Google analytics extension | 1324293168000000 | 1338203338000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1817 | enhancement | johnglover | johnglover | ckan-sprint-2012-03-05 | closed | fixed | Importer for EC publisher info |
|
1329762290000000 | 1329922818000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2459 | enhancement | johnglover | johnglover | ckan-sprint-2012-06-25 | closed | fixed | Faceting improvements: fix tags and decide on facet fields |
|
1338211925000000 | 1338393403000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1812 | enhancement | johnglover | johnglover | ckan-backlog | closed | fixed | Restrict editing rights/permissions based on publisher |
|
1329747889000000 | 1335874864000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2246 | enhancement | johnglover | johnglover | ckan-sprint-2012-04-02 | closed | fixed | Change published_by metadata field to reference group instead of a custom extra |
|
1332243036000000 | 1332864871000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#148 | enhancement | dread | dread | v0.11 | closed | fixed | Parser and loader for esw.org data |
Follow up tickets: ticket:149 and ticket:150 |
1255440696000000 | 1255515222000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#218 | enhancement | nickstenning | dread | v0.11 | closed | fixed | UI Review - Package listing |
|
1260879903000000 | 1263406033000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#127 | enhancement | dread | dread | v0.10 | closed | fixed | Minor form and UI improvements |
|
1253798659000000 | 1253868048000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2270 | enhancement | johnglover | johnglover | ckan-sprint-2012-04-16 | closed | fixed | DataExplorer overview |
|
1333374339000000 | 1334073875000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#427 | task | thejimmyg | dread | ckan-v1.4-sprint-3 | closed | fixed | Match licenses from GEMINI document |
|
1281436611000000 | 1299164063000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#520 | requirement | pudo | pudo | iati-1 | closed | fixed | Browseable web interface onto the data |
|
1282893270000000 | 1283538080000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1582 | enhancement | johnglover | johnglover | ckan-sprint-2012-01-09 | closed | fixed | Deploy QA for thedatahub - 0.5d |
|
1324458494000000 | 1326110801000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#977 | defect | dread | ckan-v1.3 | closed | fixed | db_upgrade errors |
|
1297420558000000 | 1297420742000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#985 | enhancement | pudo | pudo | pdeu-1 | closed | duplicate | Harvest other data catalogues |
Others?
|
1297679799000000 | 1306408134000000 |