{22} Trac tickets (2647 matches)
Results (1901 - 2000 of 2647)
Id | Type | Owner | Reporter | Milestone | Status | Resolution | Summary | Description | Posixtime | Modifiedtime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#188 | enhancement | rgrp | rgrp | v0.11 | closed | duplicate | Improve package listing views |
Propose change to tabular-like format showing these attributes (perhaps should be configurable?)
Cost: 4h |
1257870031000000 | 1265294090000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#192 | enhancement | rgrp | dread | closed | fixed | Time-related package field |
Cost - 2 days The time period to which a package's data applies is stored in a new field called 'Relevant Date Range'. The value of this field is up to two calendar dates: i.e. either a point in time (e.g. date of a river map is 5/10/09) or a time period (e.g. pollution measurements 1/1/09-1/4/09). Example part of package:
Date: 5/10/09
|
1258388163000000 | 1291733895000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#193 | enhancement | rgrp | dread | closed | wontfix | Searching by time-related field |
Cost - 2 days Search interface has new options to filter and sort the results by the time-related field of the package. Search options are included in both Web UI and Search API. The filter specifies a range of dates. The results can be sorted by ascending or descending dates. The last modification date is surfaced in the package. Need to decide for a time-related field value that is date range, what date is used for the search. Example search parameters:
Related to ticket:192 |
1258388169000000 | 1340626463000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#194 | defect | rgrp | dread | v0.11 | closed | fixed | Check star ratings aren't influenced by search engine crawlers |
rel=nofollow or robots.txt ? |
1258471512000000 | 1265284389000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#195 | enhancement | rgrp | rgrp | v0.11 | closed | fixed | Association listings should be alphabetically sorted (e.g. a group's packages) |
Where an item has an association listing (e.g. package's tags or group's packages) these should be sorted in a sensible way. For present choose to sort alphabetically by name. Cost: 2h |
1258475448000000 | 1258585500000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#200 | defect | rgrp | rgrp | closed | invalid | PythonDistribution write method should write all available metadata |
Current write method just creates a bare bones package and does not write any of the available metadata other than name. |
1259229583000000 | 1311176118000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#201 | enhancement | rgrp | dread | v1.0 | closed | fixed | Stress test ckan |
Check:
|
1259844836000000 | 1265284419000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#205 | enhancement | rgrp | dread | closed | wontfix | Custom package importer |
Importer function is exposed to logged in users. Alongside specifying file to import, user chooses between 'form schemas' - 'basic' and 'government'.
All fields should be in step with the government custom input form. For fields which have suggested values but the user can input his own value, this is achieved in the spreadsheet with two columns - the first being a drop-down and the second free text. Estimate: |
1260197819000000 | 1297068450000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#209 | enhancement | rgrp | rgrp | closed | fixed | Validate email address when creating an enquiry |
p:wui 2009-09-09 validate email address when creating an enquiry |
1260288671000000 | 1260288728000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#212 | enhancement | rgrp | rgrp | v0.11 | closed | fixed | Switch to using m.okfn.org "kforge" media (css and behaviour) |
We are already using standard kforge css though copied locally and with a few modifications. We should switch to using common copy on m.okfn.org. Some work will be required to factor out any changes we have made. Cost: 2h |
1260703728000000 | 1260703969000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#215 | enhancement | rgrp | dread | v1.0 | closed | fixed | UI Review - Home page |
Also, what about ticket:143 ? |
1260879732000000 | 1266513523000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#225 | enhancement | rgrp | dread | closed | invalid | UI Review - swap URL order |
Not so keen on URLS such as /package/edit/mypackagename. These seem to be task-oriented rather than resource oriented (which would be /package/mypackagename/edit), and unstable: there is a common root for /package/edit/mypackage and /package/history/mypackage which is not reflected in the URL structure. |
1260880487000000 | 1311178276000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#228 | enhancement | rgrp | rgrp | closed | duplicate | Deal with duplicate packages |
This needs to be thought out ... |
1262085763000000 | 1290596875000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#232 | enhancement | rgrp | rgrp | closed | invalid | Add strapline to CKAN logo |
Strapline (?): Sharing, discovery and reuse of data and content Need to consult on this. Cost: 1h |
1262975291000000 | 1297246297000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#245 | enhancement | rgrp | rgrp | closed | duplicate | Support for composite primary keys |
Problem here is that foreign key then becomes "complicated" (composite).
|
1265882630000000 | 1297066620000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#246 | enhancement | rgrp | rgrp | closed | duplicate | Support for primary key not named id |
At the moment setting of continuity_id depends on base table pkcol being id. Should not be hard to change this -- and may get for free as part of ticket:245 (composite primary keys) |
1265882862000000 | 1297066757000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#249 | enhancement | rgrp | dread | closed | invalid | Regex search |
Search of package name and title (and other fields) using regular expressions. Current example use-case: Wanting to specify packages with title beginning with 'B'. Issues:
Implementation:
http://www.postgresql.org/docs/current/static/functions-matching.html#FUNCTIONS-POSIX-TABLE |
1265994509000000 | 1311182450000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#262 | enhancement | rgrp | rgrp | closed | fixed | Mark package as duplicate of another package |
Need a way to mark packages as duplicate.
|
1267139682000000 | 1296468392000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#268 | defect | rgrp | dread | closed | duplicate | Select groups in Package edit form | 1268068896000000 | 1285070682000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#269 | enhancement | rgrp | dread | closed | fixed | Improve gov package form |
If the notes field could use a WYSIWYG editor with word cleanup this would really help users who may well be pasting in text from Word (and I guess may have been approved or written by someone else) having auto-complete on tags would both make the system easier to use - and reduce the risk of synonymous tags being created inadvertently. Does the department drop down options list interact with user permissions - so that users who only have rights to one department only see that option ? Similarly for licenses - can this reduce to the set of allowed options for this user/ What level of validation is there on the fields? |
1268220853000000 | 1291897538000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#272 | enhancement | rgrp | rgrp | closed | fixed | Atom/RSS feeds for individual tags and groups |
I want to be able to easily check when a package is added (or removed?) from a given tag or groups. To do this I would like access to an Atom/RSS feed for a given tag or group.
|
1268988652000000 | 1340631775000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#274 | defect | rgrp | rgrp | closed | fixed | Allow searching by any extra field |
At the moment only support a very limited set of extra fields (see docs for details). Should support arbitrary extra fields (note no need to put these in special full text index though ...) Cost: 1h |
1269034562000000 | 1287402800000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#283 | enhancement | rgrp | dread | closed | wontfix | Manage deletions of unwanted packages |
Use caseAs a user I want to notify the CKAN admins of a spammed or unsuitable package for deletion. Suggested solutionIn the package view side-bar, there is a note: "To have this package completely removed, contact the [ca.ckan.net administrators admin@…]." Other solutionsA more complicated solution would be to allow packages to be tagged for deletion, which would auto-alert administrators, and allow easier administration of this. But this might be overkill. |
1270660210000000 | 1311325526000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#289 | enhancement | rgrp | dread | v1.0 | closed | fixed | Document config options | 1271248690000000 | 1271249368000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#306 | enhancement | rgrp | rgrp | closed | duplicate | datapkg build command |
Need to be able to build a distribution. Need:
|
1272474212000000 | 1318181194000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#307 | defect | rgrp | rgrp | datapkg-0.7 | closed | fixed | datapkg upload command |
Support uploading a distribution somewhere.
Depends on ticket:306 |
1272474224000000 | 1288027815000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#308 | enhancement | rgrp | rgrp | closed | duplicate | Autocomplete package names & tags in package search |
Extracted from ticket:216. Dubious of its merit. |
1273050549000000 | 1275302577000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#312 | defect | rgrp | dread | closed | invalid | Race condition creating PackageRating |
On ckan.net there are a few packages which cause a 403 exception when you try to rate them: http://www.ckan.net/package/rate/coins-data?rating=3 The exception is occuring here: ckan.rating:39 in set_rating rating_obj = rating_query.one() InvalidRequestError?: Multiple rows returned for one() It looks like this package got rated twice in quick succession, creating two similar PackageRating? objects. This race condition needs to be solved and these particular rating objects repaired. |
1273482785000000 | 1311176173000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#316 | defect | rgrp | dread | closed | fixed | Search URL escaping |
If you search for unescaped characters such as '`' (backtick) in the URL in Chrome then you get a 500 error. e.g. http://www.ckan.net/package/search?q=fjdkf2B%C2%B4gfhgfkgf{gpk fjdkf2B´gfhgfkgf{gpk returns this exception: URL: http://www.ckan.net/package/search?q=fjdkf%2B%C2%B4gfhgfkgf%7Bg%C2%B4pk&search=Search+Packages+%C2%BB 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:50 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.package:52 in search << collection=query, page=request.params.get('page', 1), items_per_page=50 ) # filter out ranks from the query result >> items_per_page=50 Module webhelpers.paginate:333 in __init__ << self.item_count = item_count else: self.item_count = len(self.collection) # Compute the number of the first and last available page >> self.item_count = len(self.collection) Module webhelpers.paginate:204 in __len__ << def __len__(self): return self.obj.count() # Since the items on a page are mainly a list we subclass the "list" type >> return self.obj.count() Module sqlalchemy.orm.query:1094 in count << q = q.params(params) q = q._legacy_select_kwargs(**kwargs) return q._count() def _count(self): >> return q._count() Module sqlalchemy.orm.query:1103 in _count << """ return self._col_aggregate(sql.literal_column('1'), sql.func.count, nested_cols=list(self.mapper.primary_key)) def _col_aggregate(self, col, func, nested_cols=None): >> return self._col_aggregate(sql.literal_column('1'), sql.func.count, nested_cols=list(self.mapper.primary_key)) Module sqlalchemy.orm.query:1125 in _col_aggregate << if self._autoflush and not self._populate_existing: self.session._autoflush() return self.session.scalar(s, params=self._params, mapper=self.mapper) def compile(self): >> return self.session.scalar(s, params=self._params, mapper=self.mapper) Module sqlalchemy.orm.session:635 in scalar << engine = self.get_bind(mapper, clause=clause, instance=instance) return self.__connection(engine, close_with_result=True).scalar(clause, params or {}) def close(self): >> return self.__connection(engine, close_with_result=True).scalar(clause, params or {}) Module sqlalchemy.engine.base:834 in scalar << """ return self.execute(object, *multiparams, **params).scalar() def statement_compiler(self, statement, **kwargs): >> return self.execute(object, *multiparams, **params).scalar() Module sqlalchemy.engine.base:844 in execute << for c in type(object).__mro__: if c in Connection.executors: return Connection.executors[c](self, object, multiparams, params) else: raise exceptions.InvalidRequestError("Unexecutable object type: " + str(type(object))) >> return Connection.executors[c](self, object, multiparams, params) Module sqlalchemy.engine.base:895 in execute_clauseelement << else: keys = None return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params) def _execute_compiled(self, compiled, multiparams=None, params=None, distilled_params=None): >> return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params) Module sqlalchemy.engine.base:907 in _execute_compiled << context.pre_execution() self.__execute_raw(context) context.post_execution() self._autocommit(context) >> self.__execute_raw(context) Module sqlalchemy.engine.base:916 in __execute_raw << self._cursor_executemany(context.cursor, context.statement, context.parameters, context=context) else: self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context) def _execute_ddl(self, ddl, params, multiparams): >> self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context) Module sqlalchemy.engine.base:958 in _cursor_execute << self.engine.logger.info(repr(parameters)) try: self.dialect.do_execute(cursor, statement, parameters, context=context) except Exception, e: self._handle_dbapi_exception(e, statement, parameters, cursor) >> self.dialect.do_execute(cursor, statement, parameters, context=context) Module sqlalchemy.engine.default:133 in do_execute << def do_execute(self, cursor, statement, parameters, context=None): cursor.execute(statement, parameters) def is_disconnect(self, e): >> cursor.execute(statement, parameters) UnicodeEncodeError: 'ascii' codec can't encode character u'\xb4' in position 6: ordinal not in range(128) |
1274265928000000 | 1291831177000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#355 | defect | rgrp | rgrp | closed | fixed | Dashes versus underscores in package names |
Sort out how we deal with dashes versus underscores in package names. |
1277221996000000 | 1311177552000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#360 | defect | rgrp | rgrp | datapkg-0.7 | closed | fixed | New sqlite-based DB index |
In 0.5 and 0.6 have been more oriented to getting file indexes working to support the convenience of using packages on disk directly. However we now need to go back to having a better central/default index and the best model for this is a simple db index using sqlite (which is now supported in the standard library). NB: this is a retrospective ticket (been working on this for a couple of months) |
1277803174000000 | 1288004891000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#361 | enhancement | rgrp | rgrp | datapkg-0.7 | closed | fixed | Allow specification of the default index in configuration | 1277803305000000 | 1291135756000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#404 | requirement | rgrp | pudo | datapkg-0.8 | closed | fixed | Make registries pluggable |
Allow using different indexes, including ckan, file, dcat, ... |
1281346690000000 | 1297072955000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#405 | task | rgrp | rgrp | datapkg-0.8 | closed | fixed | Retrieval options for package resources |
Download Command (was install command) should support the following modes:
|
1281346806000000 | 1297214833000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#409 | task | rgrp | rgrp | datapkg-0.8 | closed | fixed | Refactor cli to be more 'pluggable' |
|
1281348659000000 | 1297074197000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#458 | task | rgrp | johnbywater | closed | wontfix | Request to DGU for access to database machine | 1282299950000000 | 1294415537000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#464 | task | rgrp | dread | closed | duplicate | Request dgu db server access | 1282306104000000 | 1282325194000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#538 | task | rgrp | johnbywater | closed | wontfix | Update CKAN Trac ticket report queries |
Update report queries with more recent versions (below are report queries shipped with trac 0.11.7): NB: Report 1 has already been done.
|
1283190081000000 | 1294414537000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#581 | task | rgrp | johnbywater | ckan-v1.2 | closed | fixed | Determine package name from metadata document |
Need to establish procedure for automatically generating package names from metadata documents. |
1284210874000000 | 1284689274000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#715 | defect | rgrp | johnbywater | ckan-v1.4-sprint-2 | closed | fixed | The group list page shall show the group title *or* group name |
Symptom #1: Groups without titles don't get a clickable link, because there is no text. Defaulting to the group name would solve this trouble. Symptom #2: Package groups drop-down list show's 'None' when a group doesn't have a title. Therefore, we need to centralize presentation of group title, so it defers to group name. And we need tests. Also please sort groups by title on group list page. |
1287583089000000 | 1297796784000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#776 | enhancement | rgrp | dread | closed | duplicate | Avoid generating vdm warnings |
We get a host of vdm warnings frequently in the CKAN logs. Are these genuine worries or can they be avoided? 2010-10-29 17:10:06,003 WARNI [vdm] Skipping adding property Package.package_search (PackageSearch) to revisioned object 2010-10-29 17:10:06,015 WARNI [vdm] Skipping adding property Package.all_revisions_unordered (PackageRevision) to revisioned object 2010-10-29 17:10:06,024 WARNI [vdm] Skipping adding property PackageTag.all_revisions_unordered (PackageTagRevision) to revisioned object 2010-10-29 17:10:06,081 WARNI [vdm] Skipping adding property PackageExtra.all_revisions_unordered (PackageExtraRevision) to revisioned object 2010-10-29 17:10:06,105 WARNI [vdm] Skipping adding property PackageResource.all_revisions_unordered (PackageResourceRevision) to revisioned object 2010-10-29 17:10:06,129 WARNI [vdm] Skipping adding property PackageRelationship.all_revisions_unordered (PackageRelationshipRevision) to revisioned object |
1288372797000000 | 1297066840000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#797 | enhancement | rgrp | rgrp | ckan-v1.3 | closed | fixed | Rework core html layout to mirror wordpress twentyten |
WP twentyten has an excellent core html structure. Furthermore, using that structure makes us compatible with all the WP twentyten compatible themes.
|
1289402873000000 | 1289402982000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#806 | enhancement | rgrp | rgrp | ckan-v1.3 | closed | fixed | Metadata created and last modified timestamps for packages |
Packages should provide create and last modified attributes which are included in package dict exposed via api. These attributes will not be in db but are computed (depend not just on package but related objects -- package tags, package resources, package extras etc) |
1289854894000000 | 1324034356000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#827 | defect | rgrp | dread | closed | fixed | metadata_created_and_modified error |
Intermittent failure on ckan default branch. Looks like brittle test. ====================================================================== FAIL: ckan.tests.models.test_package.TestPackageRevisions.test_02_metadata_created_and_modified ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildslave/okfn/full/build/buildandsmoke/pyenv/lib/python2.6/site-packages/nose/case.py", line 186, in runTest self.test(*self.arg) File "/home/buildslave/okfn/full/build/buildandsmoke/pyenv/src/ckan/ckan/tests/models/test_package.py", line 250, in test_02_metadata_created_and_modified assert out == exp, (out, exp) AssertionError: (datetime.datetime(2010, 11, 25, 4, 37, 52, 949380), datetime.datetime(2010, 11, 25, 4, 37, 52, 94938)) http://buildbot.okfn.org/builders/builder-ckan/builds/589/steps/shell/logs/stdio |
1290678624000000 | 1290766239000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#828 | enhancement | rgrp | rgrp | ckan-v1.3 | closed | fixed | Update cache support in home controller to use cache config in ini file |
Currently cache usage in home controller is inconsistent with elsewhere and, in particular, does not respect cache_disabled and is not configurable using path notation (e.g. ckan.controllers.home. ...). This is especially frustrating in a development environment where is currently running into fact front page is being cached. Fix this. |
1290693154000000 | 1290696586000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#829 | defect | rgrp | dread | ckan-v1.4-sprint-6 | closed | wontfix | Admin CRUD broken |
Browsing to the admin interface /admin (even logged in as a sysadmin) gives an exception. |
1290695043000000 | 1303838115000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#831 | task | rgrp | rgrp | ckan-v1.3 | closed | fixed | Migrate ckan trac to ckan.org |
Move ckan trac to new ckan.org location. Will also need to re-enable user accounts etc. |
1290760820000000 | 1290760864000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#832 | enhancement | rgrp | rgrp | ckan-v1.3 | closed | fixed | Convert stats to a plugin |
Convert stats section to a ckan plugin. Stats need not be in core and making it a plugin would make it easier to extend and expand. |
1290765915000000 | 1296334980000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#852 | enhancement | rgrp | wwaites | ckan-v1.5 | closed | fixed | [super] Dataset upload and archiving |
3 (4) use cases: (With and without access to auth keys.)
Most important are:
Aside: Once 2 was done we could deprecate storage.ckan.net Sub-ticketsRequired infrastructure
User upload via Web UI User upload via CLI/datapkg Also related:
More Info
|
1291722993000000 | 1315821628000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#869 | enhancement | rgrp | rgrp | ckan-v1.3-sprint-1 | closed | fixed | Add plugin interface to allow editing and extending of config by extensions |
Use case: extensions need to add to template and public search paths if they wish to have templates or extra static files (such as js etc). Allowing plugins to edit the config dictionary on load would allow this (and more!). Are there any security considerations here? (Is is bad to allow extensions to make arbitrary changes to the config information?) |
1291989395000000 | 1292235262000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#877 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-2 | closed | fixed | File upload in WUI (extension) |
Support uploading files to a storage system from WUI with a simple upload form. Implementation
|
1292868146000000 | 1298624165000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#878 | enhancement | rgrp | rgrp | ckan-sprint-2011-09-12 | closed | fixed | Integrate file upload with workflow around package resources |
Create/edit a package -> add a resource -> Oh, i haven't uploaded yet, 'upload here' -> /upload -> standard upload form Do we need to create a resource out of the file after upload? Do we sync file metadata with local Resource metadata? If yes suggests (need to ticket):
Depends
|
1292868269000000 | 1315820838000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#889 | enhancement | rgrp | rgrp | ckan-v1.3-sprint-2 | closed | fixed | Support extra footer material in config option (e.g. for google analytics) |
Add a config option 'template_footer_end' which is inserted in layout_template just before </body>. This allows sysadmins to add extra items, especially, scripts directly into site without having to do any theming and is especially useful for things like google analytics. Aside: going forward may want to turn this into a extension. Cost: 1h |
1293713189000000 | 1293715109000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#898 | defect | rgrp | dread | closed | fixed | Changes stored indefinitely |
Every change to every object is being stored in memory, which could add up to quite a lot of memory. This fixes it by making sure the objects are in a weakref. https://bitbucket.org/kindly/vdm/changeset/8d5f91db641f |
1294659490000000 | 1294662408000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#899 | enhancement | rgrp | dread | closed | fixed | Optimise check_real_change |
There is no need to re-query the database to detect if there has been a changed as sqlalchemy knows this. It saves about 15 secs in the ckan tests. https://bitbucket.org/kindly/vdm/changeset/0050d023ca4e From David Raznick |
1294659583000000 | 1294916615000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#901 | enhancement | rgrp | dread | closed | fixed | vdm support for sqla 0.6 and sqlite | 1294660144000000 | 1294662466000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#902 | defect | rgrp | dread | ckan-v1.4-sprint-1 | closed | fixed | Package buttons not clickable / Improve submenu tabs |
On a package page there are three buttons to the right - View, Edit, History. Each of these buttons contain an icon and the text, but you can only activate the button by clicking on the icon. When you click on the part of the button where the text is (about 50% of the button) then nothing happens. Using: Chrome, Firefox |
1294756898000000 | 1297078885000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#904 | task | rgrp | Stiivi | ckan-v1.4-sprint-3 | closed | fixed | Review CKAN documentation |
What's bad at the moment?
Sources:
Resulting meta-ticket with things to do: ticket:927 |
1294832610000000 | 1299840539000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#916 | enhancement | rgrp | pudo | vdm-0.8 | closed | duplicate | Port new vdm to Mongodb |
We should create a port of VDM 0.9 for MongoDB to support user editing in WDMMG. |
1295277011000000 | 1297066902000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#923 | defect | rgrp | dread | closed | worksforme | Search box doesn't work in leaderboard page |
Tried in: chrome, firefox |
1295867328000000 | 1340632144000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#927 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-3 | closed | fixed | [super] Improvements to CKAN documentation |
List of improvements to CKAN documentation (result of ticket:904). Should convert most items into sub-tickets as we go along. Major
Miscellaneous
|
1295869492000000 | 1300105638000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#928 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-1 | closed | fixed | Documentation - CKAN credits / contributors page |
Cost: 1h |
1295872661000000 | 1297115136000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#929 | defect | rgrp | rene.kapusta | ckan-v1.4 | closed | fixed | Handle the case when the licenses service is down better |
I'm using v 1.3.1a and get a lot of "WebApp? Error: <type 'exceptions.Exception'>: Couldn't connect to licenses service: <urlopen error (104, 'Connection reset by peer')>" error messages. Module ckan.forms.package:87 in build_package_form << # Options/settings builder.set_field_option('name', 'validate', package_name_validator) builder.set_field_option('license_id', 'dropdown', {'options':[('', None)] + model.Package.get_license_options()}) builder.set_field_option('state', 'dropdown', {'options':model.State.all}) builder.set_field_option('notes', 'textarea', {'size':'60x15'}) >> builder.set_field_option('license_id', 'dropdown', {'options':[('', None)] + model.Package.get_license_options()}) Module ckan.model.package:283 in get_license_options << @classmethod def get_license_options(self): register = self.get_license_register() return [(l.title, l.id) for l in register.values()] >> register = self.get_license_register() Module ckan.model.package:278 in get_license_register << def get_license_register(self): if not hasattr(self, '_license_register'): self._license_register = LicenseRegister() return self._license_register >> self._license_register = LicenseRegister() Module ckan.model.license:46 in __init__ << from licenses.service import LicensesService2 self.service = LicensesService2(group_url) entity_list = self.service.get_licenses() else: from licenses import Licenses >> entity_list = self.service.get_licenses() Module licenses.service:44 in get_licenses << except Exception, inst: msg = "Couldn't connect to licenses service: %s" % inst raise Exception, msg try: licenses = loads(response_body) >> raise Exception, msg Exception: Couldn't connect to licenses service: <urlopen error (104, 'Connection reset by peer')> |
1295995409000000 | 1299840884000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#953 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-1 | closed | fixed | Add tagline/description to template and set in configuration |
Have a tagline / description are under main title and set if from ckan.site_description config variable. |
1296809808000000 | 1296809834000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#962 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-5 | closed | fixed | Improvements to data preview extension |
Basic implementation done (and deployed): https://bitbucket.org/okfn/ckanext-datapreview However plenty to improve, e.g.
Also suggest reworking to use external services rather than doing preview 'in house' (doing in house places heavy reliance on data proxy service and on converting data to a standard format). |
1297072524000000 | 1301364987000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#964 | enhancement | rgrp | rgrp | datapkg-0.8 | closed | fixed | Create Resource Downloader and make it pluggable |
In downloading packages we need to download resources and we need a ResourceDownloader? object for this. these should be pluggable so that we can add support for different types of resources. |
1297211004000000 | 1297211237000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#973 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-1 | closed | fixed | Document license configuration and license system. |
Document how license system works and specifically how licenses can be configured. Cost: 2h |
1297332948000000 | 1297678851000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#975 | defect | rgrp | rgrp | ckan-v1.4-sprint-1 | closed | fixed | Placeholder attribute not displayed in some browsers leading to poor UX |
Currently placeholder text like 'Search ...' is not shown in some browsers (e.g. FF and IE). This leads to poor UX, for example in top bar search where it unclear whether that box is for login or search. We should fix this by finding a way to display placeholder attribute in all browsers. |
1297343755000000 | 1297344448000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#992 | defect | rgrp | rgrp | ckan-v1.3 | closed | fixed | Use X-forwarded-for whenever it is available to set remote IP address |
At the moment we only use X-forwarded to determine remote user address when remote-addr header is 127.0.0.1. However if a site is behind a cache remote_addr will always be the IP of the cache. We should fix this by using x-forwarded-for header whenever available and only use remote-addr when it is not available. Cost: 10m |
1298058532000000 | 1298060474000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#999 | enhancement | rgrp | dread | ckan-v1.4-sprint-3 | closed | fixed | Factor out ckan.net theme changes to a separate theme repo and apply |
Rather than polluting the ckan core code base on ckan.net install with ckan.net specific changes these adaptations should be moved out into a dedicated ckan.net theme. |
1298386729000000 | 1300707328000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1001 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-4 | closed | fixed | API should use normal user credentials if available |
When using the API 'locally' i.e. from the CKAN instance (as would be the case with an ajax interface) the API, especially that allowing READ requests should use the normal user credentials if they are available prior to looking for an API key. The key change appears to be to change _get_user_for_apikey method in lib/base.py BaseController? to check the c.user attribute (may wish to rename as the name may now be a bit misleading ...). This is critical to incorporating any ajax editing into the frontend. As part of this ticket we should do a general consolidation of the identification system in lib/base.py so that both api_key and normal user auth lead to the same set of auth-related objects being available (suggest c.user and c.userobj and c.author). |
1298489705000000 | 1301310351000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1003 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-3 | closed | fixed | CKAN Javascript library and demonstration web interface |
A plain javascript library for interfacing with CKAN would be very useful (why? see below!). It would also be nice to have a pure html + javascript web interface to CKAN both for its own sake and to act as a demonstrator for the library. Why?
|
1298490086000000 | 1300100411000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1008 | defect | rgrp | pudo | ckan-v1.4-sprint-2 | closed | fixed | eval() of user display name in template head |
We're currently setting the user preferences links via a javascript snippet that also evals the name. This should be removed as we're not displaying the user name any longer. We should also have page fragment caching in Genshi, which is not currently implmented. cf. http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html |
1298632686000000 | 1298821826000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1010 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-2 | closed | fixed | List CKAN users in WUI |
Should have user listing at /user/ rather than user account page.
|
1298649180000000 | 1298740889000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1032 | enhancement | rgrp | rgrp | ckan-v1.6 | closed | fixed | [super] Resources in WUI |
Add resources into Web User Interface.
Done:
Moved to superticket #1506:
|
1299782021000000 | 1330348463000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1070 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | Plan a new domain model and layer architecture for CKAN |
See http://wiki.ckan.net/Domain_Model especially section on v2.
|
1301910940000000 | 1310117129000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1074 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | Refactor authz web user interface to have common code and templating |
Currently repeat the same template and code across Package Authz, Group Authz, and Authz Group authz. Having now implemented a new, cleaner setup in ckanext-admin we should port this back into core.
Will also deliver a significant improvement in the form of ajax user lookup. |
1302271586000000 | 1314303581000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1106 | defect | rgrp | rgrp | ckan-v1.4-sprint-6 | closed | fixed | Bugs related to routes arising from API refactor + removal of default routes |
Various bugs I've been encountering:
Latter issue was masked by existence of 'default' routes: map.connect('/{controller}', action='index') map.connect('/:controller/{action}') map.connect('/{controller}/{action}/{id}') Having these is, I think, bad practice as it is better to be explicit and we should therefore remove asap. In addition I think we should be cautious about 'default' routes in core such as: map.connect('/api/rest/:register', controller='api', action='list', conditions=dict(method=['GET']) ) As it makes it harder for extensions to introduce their own APIs (here one could perhaps add something at /api/rest/{my-object} but only by using before_map rather than after_map). |
1303747360000000 | 1303834069000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1119 | enhancement | rgrp | rgrp | ckan-v1.4-sprint-7 | closed | fixed | Fully functional storage extension with file upload |
Previous work in #877 and #879 + #853 (storage API). In this ticket:
|
1304094382000000 | 1305037201000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1151 | enhancement | rgrp | timmcnamara | ckan-sprint-2012-03-05 | closed | wontfix | Preview for geographic data should be a map |
Data viewer / previewer for a resource that has a KML file, or others, such as GeoRSS and GeoJSON, we should provide a map.
This is non-trivial for external files as we need a way to jsonify. For files stored locally this is more of a recline issue (and will require a bit of work to either guess columns or allow user to specify them). |
1306043217000000 | 1330908188000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1163 | enhancement | rgrp | rgrp | ckan-backlog | new | Improvements to Storage Extension |
Storage is now working but there are
Different Backend IssuesLocal file store is rather different from 'remote' storage in various ways:
|
1306408778000000 | 1310133808000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1190 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | [super] CREP 0004 Data API and Data Processing System |
For some time (e.g. 1y+!) we have known that we want to integrate some kind of datastore / data processing system with CKAN. We've had a CREP in progress on this for some months (may copy that here at some point): We can distinguish 3 modules that are needed:
Suggestion is this would be sqlite based with a simple sql based API. http://ckan.net/api/data/{user|org}/{datastore_name}?q={some-read-sql-query}
get a long way with simple javascript running in the browser for development with this javascript then run offline using something like nodejs. Alternatively one could allow one to specify a url to e.g. a python file which would then be run in a sandbox (with access to some specified set of python modules) - #1432 More info |
1308227611000000 | 1323270522000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1195 | defect | rgrp | dread | ckan-sprint-2011-10-28 | closed | fixed | Storage extension to handle incorrect routes better |
We've seen exceptions caused by people getting the file storage link wrong, adding a slash to the end. e.g. http://ckan.net/storage/f/file/e696d857-e997-41c8-be08-408697168ca8/ We should aim to handle all requests better than causing exception. 404 (or even 302 in this case) is better than 500. |
1308576769000000 | 1311964374000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1202 | enhancement | rgrp | rolf | closed | invalid | Links to datapkg utility don't lead to info about it |
In the presentation of data packages, the link in "The information on this page and the downloads / resources are also available using the datapkg command line utility." (http://knowledgeforge.net/ckan/doc/datapkg/install.html) ends up at the home page of ckan.org Perhaps link it to https://bitbucket.org/okfn/datapkg/overview for now, to save some searching for people who want to find out more? |
1309263613000000 | 1315821804000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1208 | enhancement | rgrp | rgrp | ckan-sprint-2011-10-28 | closed | fixed | Webstore: a datastore with web API |
Current code is here: https://github.com/okfn/webstore. API SpecReadTwo basic ways to query:: GET: /{owner}/{db-name}/?sql=... GET: /{owner}/{db-name}/?table=...&attr=value&attr=value&limit=... Returns:: { u'keys': [u'id', u'name'], u'data': [ [1, u'jones'], [u'aaa', u'jones'] ] } WritePOST to::
Payload is json data structured as follows::
Authentication and AuthorizationAuthentication: use basic auth header. Authorization:
Possible future: config file can specify a python method (TODO: method signature) Integration with Other SystemsTODO: Specify how to delegate authenatication to user database in some other system. |
1309804460000000 | 1312191646000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1239 | defect | rgrp | rgrp | ckan-sprint-2011-10-28 | closed | fixed | Remove and re-add tag on package not working |
See reports on list at:
Tracked this to issue in dictization/model_save whereby was ignoring case where Package Tag already there but in deleted state. Rather than describe at length see fix. |
1311441020000000 | 1312453156000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1247 | task | rgrp | dread | ckan-sprint-2011-10-28 | closed | fixed | Put docs on ReadTheDocs |
Put docs on ReadTheDocs? instead of eu13. |
1311941948000000 | 1311955185000000 |