{22} Trac tickets (2647 matches)
Results (1101 - 1200 of 2647)
Id | Type | Owner | Reporter | Milestone | Status | Resolution | Summary | Description | Posixtime | Modifiedtime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#1142 | enhancement | annapowellsmith | rgrp | ckan-v1.5 | closed | fixed | [super] Major Overhaul and Extension of CKAN Documentation |
Child tickets:
Previous super ticket (from 3m ago): http://trac.ckan.org/ticket/927
Also now a wiki page with more detail: http://wiki.ckan.net/Documentation_Plans Minor Items |
1305727452000000 | 1313775665000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1281 | defect | pudo | pudo | ckan-sprint-2011-10-28 | closed | fixed | Locale change flash message in wrong language |
When you change the locale, it displays a flash message "Language has been set to: English" in the original language, not the one we have just changed to. |
1314021656000000 | 1314021919000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1263 | enhancement | dread | dread | closed | fixed | Bad name for logic action in API causes Exception |
A bad action name: e.g. curl http://test.ckan.net/api/action/user_showaa -d '{}' causes 500 response. Occurs only on 1.4.3 beta. |
1312479020000000 | 1314029279000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1226 | defect | dread | closed | worksforme | Genshi stream exception |
IndexError? exception in genshi.filters.i18n keeps popping up daily. e.g. ... Module ckan.controllers.authorization_group:28 in index << items_per_page=20 ) return render('authorization_group/index.html') def read(self, id): >> return render('authorization_group/index.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.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.filters.transform:686 in _unmark << def _unmark(self, stream): for mark, event in stream: kind = event[0] if not (kind is None or kind is ATTR or kind is BREAK): >> for mark, event in stream: Module genshi.filters.transform:1145 in __call__ << :param stream: The marked event stream to filter """ for mark, event in stream: yield mark, event if mark is ENTER: >> for mark, event in stream: Module genshi.filters.transform:714 in __call__ << stream = iter(stream) next = stream.next for mark, event in stream: if mark is None: yield mark, event >> for mark, event in stream: Module genshi.filters.transform:682 in _mark << def _mark(self, stream): for event in stream: yield OUTSIDE, event >> for event in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.filters.transform:686 in _unmark << def _unmark(self, stream): for mark, event in stream: kind = event[0] if not (kind is None or kind is ATTR or kind is BREAK): >> for mark, event in stream: Module ckanext.googleanalytics.plugin:62 in download_adder << (downloaded %s times)</span>''' count = None for mark, (kind, data, pos) in stream: if mark and kind == START: href = data[1].get('href') >> for mark, (kind, data, pos) in stream: Module genshi.filters.transform:714 in __call__ << stream = iter(stream) next = stream.next for mark, event in stream: if mark is None: yield mark, event >> for mark, event in stream: Module genshi.filters.transform:682 in _mark << def _mark(self, stream): for event in stream: yield OUTSIDE, event >> for event in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.filters.transform:686 in _unmark << def _unmark(self, stream): for mark, event in stream: kind = event[0] if not (kind is None or kind is ATTR or kind is BREAK): >> for mark, event in stream: Module genshi.filters.transform:1175 in __call__ << """ callable_value = hasattr(self.value, '__call__') for mark, (kind, data, pos) in stream: if mark is ENTER: if callable_value: >> for mark, (kind, data, pos) in stream: Module genshi.filters.transform:714 in __call__ << stream = iter(stream) next = stream.next for mark, event in stream: if mark is None: yield mark, event >> for mark, event in stream: Module genshi.filters.transform:682 in _mark << def _mark(self, stream): for event in stream: yield OUTSIDE, event >> for event in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.filters.transform:686 in _unmark << def _unmark(self, stream): for mark, event in stream: kind = event[0] if not (kind is None or kind is ATTR or kind is BREAK): >> for mark, event in stream: Module genshi.filters.transform:1145 in __call__ << :param stream: The marked event stream to filter """ for mark, event in stream: yield mark, event if mark is ENTER: >> for mark, event in stream: Module genshi.filters.transform:714 in __call__ << stream = iter(stream) next = stream.next for mark, event in stream: if mark is None: yield mark, event >> for mark, event in stream: Module genshi.filters.transform:682 in _mark << def _mark(self, stream): for event in stream: yield OUTSIDE, event >> for event in stream: Module genshi.template.base: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:545 in _flatten << while 1: for kind, data, pos in stream: if kind is START and data[1]: >> for kind, data, pos in stream: Module genshi.filters.i18n:177 in _generate << msgbuf.append(*previous) previous = None for event in msgbuf.translate(gettext(msgbuf.format())): yield event if previous: >> for event in msgbuf.translate(gettext(msgbuf.format())): Module genshi.filters.i18n:1029 in translate << ) parts = parse_msg(string) parts_counter = {} for order, string in parts: >> parts = parse_msg(string) Module genshi.filters.i18n:1143 in parse_msg << if string: parts.append((stack[-1], string)) return parts >> parts.append((stack[-1], string)) IndexError: list index out of range |
1311008861000000 | 1314029434000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1214 | defect | dread | dread | closed | worksforme | API improvements (following javascript use) |
Notes on the CKAN API from Aron:
|
1309975222000000 | 1314029628000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#951 | defect | adrian.pohl@… | closed | invalid | Can't add a package to group |
I can't add a package (e.g. http://ckan.net/package/ub-konstanz) to a group (e.g. http://ckan.net/group/bibliographic). It's neither possible when editing a package (the only group in drop down menu is "history") nor on the group page. |
1296726886000000 | 1314031006000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#947 | enhancement | rgrp | closed | duplicate | Move the assignment of roles to a package on package creation to an extension |
At the moment the assignment of user roles on package creation is done in setup_user_roles method in ckan/model/authz.py and is hard-coded. This can be a pain to override (you can use a Plugin listening for package create events) and makes some things such as putting system in restricted mode more complex than it should be (see ticket:833). An elegant solution would be to move this into an Extension this simplifies the code and make it easier for people override (just remove the default extension and plugin your own). |
1296557478000000 | 1314031310000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#803 | story | thejimmyg | johnbywater | closed | invalid | Auto-generate next migration version unit and test stub files |
As a system developer, I want to run 'create next migration version' script, so that I don't have to create migration version tests and files manually. |
1289486678000000 | 1314031451000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#503 | task | dread | rgrp | closed | fixed | Provide exemplar package relationships for some packages |
|
1282659631000000 | 1314031851000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1172 | defect | dread | thejimmyg | ckan-sprint-2011-10-28 | closed | fixed | Remove all try: except: blocks that don't re-raise the original exception |
The current codebase has one or two try: except; blocks that don't catch specific exceptions. Under no circumstances should any broad try: except: blocks be allowed unless the exceptions they catch are immediately re-raised. Uncaught exceptions are wasting us quite a lot of time when trying to track down problems. |
1306926049000000 | 1314118883000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#957 | enhancement | kindly | kindly | closed | wontfix | new "kind " field added to resources |
The new field was outlined in http://lists.okfn.org/pipermail/ckan-discuss/2011-February/000887.html it says Can be "data", "metadata", "service", NULL. There is a need to do this for UKLP where some of the data associated with a package is metadata, some is data and some could be a service. |
1296821398000000 | 1314218701000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1290 | enhancement | dread | dread | ckan-backlog | closed | fixed | Better error when blank database |
When installing CKAN, when doing "paster serve development.ini", lots of users encounter the error for every request: ProgrammingError: (ProgrammingError) relation "user" does not exist This is because the database tables have not been created - they have forgotten or missed the "paster db init" step. Can we provide a better error to say that the database is not initialised yet? Implementation options
|
1314264255000000 | 1314270894000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1176 | defect | thejimmyg | dread | ckan-sprint-2011-10-28 | closed | fixed | unicode_body exception |
We seem to occasionally get this exception on ckan.net. User agents causing this include:
Module ckan.controllers.error:32 in document << return original_response.body # Otherwise, decorate original response with error template. c.content = literal(original_response.unicode_body) or cgi.escape(request.GET.get('message', '')) c.prefix=request.environ.get('SCRIPT_NAME', ''), c.code=cgi.escape(request.GET.get('code', str(original_response.status_int))), >> c.content = literal(original_response.unicode_body) or cgi.escape(request.GET.get('message', '')) AttributeError: 'NoneType' object has no attribute 'unicode_body' |
1307351562000000 | 1314273012000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1154 | enhancement | johnglover | nils.toedtmann | ckan-sprint-2011-10-28 | closed | fixed | Make ckan robust against solr failure |
According to pudo, a ckan with activated solr extension throws a 5xx when solr is unreachable. Instead, it should behave more like a ckan without ckanext-solr when this happens. |
1306254472000000 | 1314287519000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1282 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | JS and WUI tidy up |
Consolidate js. Remove cruft.
Possible:
|
1314090389000000 | 1314404540000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#78 | enhancement | rgrp | rgrp | ckan-sprint-2011-10-28 | closed | fixed | Extend login cookie lifetime |
When you login you get given a cookie but it is very short (life of your browser session I think). Work out how to extend to something reasonable (30 days or perhaps forever with logout unsetting cookie).
Cost: ? |
1247829310000000 | 1314877169000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1301 | defect | amercader | amercader | ckan-sprint-2011-09-12 | closed | fixed | Give access to extensions from the old formalchemy controllers |
This was removed during the auth refactoring, but it's needed in the old controllers |
1314882888000000 | 1314893744000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1304 | enhancement | amercader | amercader | ckan-sprint-2011-09-12 | closed | fixed | Show more descriptive error messages when sending emails |
Sending emails is failing in some cases, and the error message just says 'Could not send reset link'. |
1314893206000000 | 1314893749000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1303 | defect | amercader | amercader | ckan-sprint-2011-09-12 | closed | fixed | User can not login again if he has edited his profile |
Only happens if the user does not update the password. Most probably introduced during #1229. |
1314889472000000 | 1314978842000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1108 | enhancement | zephod | pudo | ckan-sprint-2011-09-12 | closed | fixed | Create a more modern theme for CKAN |
CKAN looks a bit aged, it should be styled more modernly and some elements could be re-arranged:
Inpiration: quora.com, github.com, Google Projects, Google Refine, etc. CKAN.net or CKAN general theme?To be decided. Suggest we start with ckan.net specific and then backwards integrate (?). Existing ckan.net theme repo: |
1303830790000000 | 1315140879000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1284 | defect | dread | rgrp | closed | fixed | Lots of revisions being created on datahub.org |
Revisions aren't assigned to packages. Where are they coming from? This seems to have been occurring since the upgrade to 1.4.3b a couple of weeks ago? |
1314113015000000 | 1315215626000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#979 | enhancement | kindly | dread | ckan-backlog | assigned | Edit Resource extras in the API |
Follows on from #826. We can now edit resource extras in the WUI (to some extent - see #978 for remaining issues) and we can view resource extras in the API, but we can't yet edit them in the API. |
1297429777000000 | 1315222244000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1311 | enhancement | rgrp | rgrp | ckan-backlog | new | Modal user register and login form |
Subticket of: #1294 Rather than having to visit a dedicated page it would be good if registration and login could be done from a modal form (separate or combined ...). Why
Implementation
|
1315297227000000 | 1315297227000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1305 | defect | nils.toedtmann | amercader | ckan-backlog | closed | fixed | SMTP config for thedatahub.org and IATI |
The email sending functionality (e.g for password reset) does not work on thedatahub.org and IATI (and probably some other instances) when using an address which is not a okfn.org one. Could not send reset link: SMTPRecipientsRefused({u'amercadero@…': (550, 'relay not permitted')},) As I said, adria.mercader@… works fine. The SMTP server used mail.okfn.org |
1314956657000000 | 1315317033000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1312 | enhancement | dread | florian.marienfeld@… | ckan-sprint-2011-10-28 | closed | invalid | Particular characters in JSON cause exception creating package on API |
From Florian: I am having trouble with the characters "=&;". if they occur e.g. in the title of a package, I get a 400-Bad-Request when I try to register a package by POSTing to ckan/rest/api/package However, when I PUT the same package as an edit to ckan/rest/api/package/existing_package, it works and the title shows correctly on the front end and API. Reproduced(pyenv-ckan)dread@dread-laptop:~/hgroot/ckan$ curl -i http://localhost:5000/api/rest/package -d '{"name": "test3", "title": "Test &"}' -H "Authorization:tester" HTTP/1.0 400 Bad Request Server: PasteWSGIServer/0.5 Python/2.6.5 Date: Tue, 06 Sep 2011 14:09:31 GMT Pragma: no-cache Cache-Control: no-cache Content-Type: application/json;charset=utf-8 Content-Length: 87 "Bad request - JSON Error: Unterminated string starting at: line 1 column 27 (char 27)" |
1315318863000000 | 1315327743000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1050 | enhancement | thejimmyg | johnlawrenceaspden | closed | invalid | Authz lib improvement and refactor of ckan/lib/authztool.py |
Refactor ckan/lib/authztool.py so that the relevant methods are independent of the command line interface. The extracted methods should live in a new file ckan/authz.py. authztool.py should probably move into cli.py and will just do command line parsing and printing and use ckan/authz.py. The updated web gui for authz will also use this code. Tests should be made. There's already a file ckan/tests/test_authz.py, which looks like the appropriate place for new tests. all to go on a branch feature-1050-refactor-authtoolz Optional extras
|
1300451937000000 | 1315394117000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1318 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | 'Register user' doesn't log you in |
When you register a user, it doesn't seem to be logged in properly straight away. Top-right it invites you to "log in" and "register". Also the "create package" menu option doesn't appear. Going to /user/me sends you to login page. If you then login, then all these things are corrected. |
1315415783000000 | 1315569362000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1309 | enhancement | zephod | zephod | ckan-sprint-2011-09-12 | closed | duplicate | Registering new user requires immediate login |
Registering a new user directs you to that user's profile page but does not log you in. There is an empty set of "Recent changes" and no ability to modify the page. Users must follow the login link in the top-right corner to continue. Registering a new user should immediately log you in. |
1315225510000000 | 1315586335000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1325 | defect | dread | dread | ckan-sprint-2011-09-12 | closed | fixed | python 2.5 incompatibilities |
We claim to support Python 2.5 (useful for Lenny), yet a few problems have crept in:
|
1315580452000000 | 1315587113000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1323 | enhancement | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | GET /authorizationgroup causes Exception when logged in |
on thedatahub.org |
1315475685000000 | 1315594333000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1310 | defect | dread | dread | ckan-sprint-2011-09-12 | closed | fixed | API GET of a revision that has been approved causes exception |
e.g. this particular revision on ckan.net: http://ckan.net/api/rest/revision/9601fbcb-03a7-4ebc-981d-5aa16df4852c (most others have not been approved) Causes 500 error. |
1315234899000000 | 1315820419000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1326 | enhancement | thejimmyg | ckan-backlog | new | Write a set of auth plugin functions to integrate with Druapl |
Ticket #787 described join auth between CKAN and Drupal. The authentication part is live and implemented. This ticket is a placeholder for work that will be needed in the new auth system to link authorization functions to Drupal. It is dependent on the groups refactor. |
1315821084000000 | 1315821084000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#787 | task | thejimmyg | thejimmyg | ckan-sprint-2011-09-12 | closed | fixed | Auth API |
Auth Proposal Use case: We'd like an authenticated and authorized Drupal user to be able to edit/delete packages using the API To do this a user would need a CKAN API key so we need some way of Drupal telling CKAN who a user is so that they can get their API key. Proposed Implementation A user visits the CKAN API key page to get their key. Because CKAN is at catalogue.data.gov.uk (a subdomain of the Drupal site) it can read Drupal cookies. If there is no DRXtrArgs or DRXtrArgs2 cookie, we know the user isn't signed in so we redirect them to Drupal to sign in. WISHLIST: It would be really nice if we could pass the URL to redirect back to Drupal so tha Druapl can send them back to the CKAN API key page Either way, they get back to CKAN and now the cookies exist. When the first HTTP request header is sent, CKAN will read the Drupal session ID and then call a Drupal API, server to server. TODO: Implement an API on the drupal server which accepts a Drupal session ID as an argument and returns the username and credentials, but only if the request if from the CKAN server (perhaps we specify an API key in the request) If the session is valid CKAN will set its own auth cookie and show them the page with the API key. CKAN only considers a user signed in if both the CKAN cookie *and* Drupal session ID are present. If at any time they sign out of Drupal the Drupal session disappears so they will be signed out of CKAN too. Now the user has an API key they can use the standard CKAN command line API tools. The API key is the only thing the user will need to use the CKAN API. This poses a problem. What if a user is removed from Drupal but still has a CKAN API key? Two solutions:
Option 1. seems easier to me. If we choose this we will write a get_api_key command line tool so that Drupal user can write things like this: ::
The get_api_key function will prompt for username and password and then perform the steps necessary to get an API key. |
1289211035000000 | 1315821118000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1335 | enhancement | kindly | dread | closed | fixed | Action API - basic |
Provide an API to the logic layer at /api/action. |
1315910021000000 | 1315910117000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1082 | defect | johnlawrenceaspden | closed | fixed | language changes behave strangely |
Set language to Greek, flash message says 'Language set to: English', but page is now about half in Greek. Set language back to English causes server error: AttributeError?: 'NoneType?' object has no attribute 'path' Module ckan.controllers.error:29 in document view
However going to a new page reveals that it's back to English |
1302541989000000 | 1315917217000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1295 | enhancement | rgrp | rgrp | ckan-sprint-2011-09-12 | closed | fixed | Simplify package create form |
Sub ticket of #1294
|
1314406014000000 | 1315948009000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1296 | enhancement | zephod | rgrp | ckan-sprint-2011-09-12 | closed | fixed | Improved resource adding/editing on dataset/page page |
Subticket of #1294.
|
1314406093000000 | 1315948224000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1294 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | [super] Package creation and editing UX improvements |
Largely an integration of work from ckanjs
|
1314405811000000 | 1315948257000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1324 | enhancement | kindly | kindly | ckan-sprint-2011-09-12 | closed | fixed | Add extra fields to resource table |
add extra fields to resource as outlined in http://wiki.ckan.net/Domain_Model/Resource Specifically (all unicode strings except for those noted):
|
1315578976000000 | 1315948336000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1276 | enhancement | johnglover | johnglover | ckan-sprint-2011-09-12 | closed | fixed | Apply weighting to search fields in solr |
For example:
|
1313414353000000 | 1315948394000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1277 | enhancement | johnglover | johnglover | ckan-sprint-2011-09-12 | closed | fixed | Use solr query parser for search instead of ckan query parser |
See http://ckan.okfnpad.org/search for details/discussion |
1313414446000000 | 1315948417000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1232 | enhancement | thejimmyg | ckan-backlog | new | [super] Interface improvements |
Child tickets:
|
1311178296000000 | 1315948536000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1233 | enhancement | thejimmyg | ckan-backlog | new | [super] Improve wiki-style functionality for history |
At the moment we have a good revisioning system but a poor history interface. We need to improve this in a number of areas:
|
1311179392000000 | 1315948668000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1211 | enhancement | kindly | kindly | ckan-v1.5 | closed | fixed | [super] Drupal integration |
Sub-tasks / tickets:
|
1309958442000000 | 1315948703000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1291 | enhancement | kindly | kindly | ckan-sprint-2011-09-12 | closed | fixed | Add activity and activity detail tables. |
Add tables described in http://ckan.okfnpad.org/notifications |
1314267572000000 | 1315950394000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1340 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Editing non-existent group causes Exception |
e.g. http://ckan.net/group/edit/history Module ckan.controllers.group:135 in edit << try: old_data = get_action('group_show')(context, data_dict) c.grouptitle = old_data.get('title') c.groupname = old_data.get('name') >> old_data = get_action('group_show')(context, data_dict) Module ckan.logic.action.get:347 in group_show << if group is None: raise NotFound check_access('group_show',context, data_dict) >> raise NotFound |
1315991374000000 | 1315991534000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1332 | defect | dread | closed | fixed | i18n IndexError exceptions |
We get this i18n error for the URL http://no.ckan.net/authorizationgroup (which runs 1.4.2 with Norwegian translation). I'm not sure why it occurs. Fixing it is low importance though, because this site doesn't use Authorization Group feature Usually caused by bots. The user does not appear to be logged in. WebApp Error: <type 'exceptions.IndexError'>: list index out of range ... Module genshi.filters.i18n:177 in _generate << msgbuf.append(*previous) previous = None for event in msgbuf.translate(gettext(msgbuf.format())): yield event if previous: >> for event in msgbuf.translate(gettext(msgbuf.format())): Module genshi.filters.i18n:1029 in translate << ) parts = parse_msg(string) parts_counter = {} for order, string in parts: >> parts = parse_msg(string) Module genshi.filters.i18n:1143 in parse_msg << if string: parts.append((stack[-1], string)) return parts >> parts.append((stack[-1], string)) IndexError: list index out of range |
1315906429000000 | 1315999104000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1339 | enhancement | kindly | rgrp | ckan-backlog | closed | fixed | Issues / question re navl and data conversion |
I ran into a bug with the size field on resources.
To solve this (cset:58acdcfe6d4e) i created an int_converter temporarily in logic/schema.py (this is almost certainly the wrong place). But I think it raises a bigger issue about the conversion layer and how it works. |
1315947022000000 | 1316014954000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#879 | enhancement | wwaites | rgrp | ckan-v1.3 | closed | fixed | Storage auth API |
API to provide credentials to allow authorized 3rd parties (ie. one's with CKAN api keys) to make uploads to storage. Implement as a CKAN extension. |
1292868509000000 | 1316030482000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1347 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | Exception caused by New Group form POST with bad formed parameter |
Exception caused by bots POSTing 'new group' form, but with bad (old-style) parameters. <type 'exceptions.ValueError'>: invalid literal for int() with base 10: 'cache' ... Module ckan.controllers.group:102 in new << if context['save'] and not data: return self._save_new(context) data = data or {} >> return self._save_new(context) Module ckan.controllers.group:152 in _save_new << try: data_dict = clean_dict(unflatten( tuplize_dict(parse_params(request.params)))) context['message'] = data_dict.get('log_message', '') group = create.group_create(data_dict, context) >> tuplize_dict(parse_params(request.params)))) Module ckan.logic:57 in tuplize_dict << for num, key in enumerate(key_list): if num % 2 == 1: key_list[num] = int(key) tuplized_dict[tuple(key_list)] = value return tuplized_dict >> key_list[num] = int(key) ValueError: invalid literal for int() with base 10: 'cache' |
1316094466000000 | 1316094608000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1346 | defect | dread | dread | ckan-sprint-2011-10-28 | closed | fixed | 'get_authorization_group_dict not found' exception |
This stems from a feature to allow you to prefill fields in the authorizationgroup creation form. e.g. http://ckan.net/authorizationgroup/new?name=science It's not tested, not supported in the new logic layer and therefore broken. I don't think anyone uses it - can remove it. |
1316081974000000 | 1316094632000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1337 | defect | amercader | amercader | ckan-sprint-2011-10-28 | closed | fixed | Group extras are JSON endoded in the REST API responses |
Instead of this: extras: { type: ""Primary source"" license_id: ""localauth-withrights"" publisher_frequency: ""2Pre\u00f1o \u20ac $ \u00e0dri\u00e0"" } we should return this: extras: { type: "Primary source", license_id: "localauth-withrights", publisher_frequency: "2Preño € $ àdrià", } |
1315924727000000 | 1316951259000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1333 | enhancement | amercader | amercader | ckan-sprint-2011-10-28 | closed | fixed | Move form converters to ckan core |
Functions like convert_to_extras and convert_from_extras will be widely used from extensions and should be on ckan core. |
1315909268000000 | 1316951285000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1138 | enhancement | johnlawrenceaspden | closed | invalid | minor navigations behave inconsistently |
For Authorization Groups, if you have admin privileges you see view, edit and authz tabs, and if you don't have the necessary privileges you only see the view tab. For Packages, you see all tabs whatever your permissions, so there's a link you can click on which will redirect you to the login page. |
1305279888000000 | 1316965357000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1354 | enhancement | amercader | amercader | ckan-v1.5 | closed | wontfix | Pass the context object to plugins implementing the IPackageController and IGroupController |
Plugins implementing some IPackageController or IGroupController operations (i.e. read, create, edit, delete) may need the context used in the logic action. For instance, to access the Session that created a package to perform additional queries from the extension (In that case the main logic action will still perform the final commit). |
1316955680000000 | 1316970374000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1194 | defect | dread | closed | fixed | "Welcome back" message for newly registered user |
|
1308563392000000 | 1317053688000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1353 | defect | nickstenning | ckan-v1.5 | closed | fixed | No UI to remove resources |
I have no idea whether this was a deliberate decision or not, but there is a total absence of any UI with which to delete resources from the currently deployed version of thedatahub.org. |
1316729765000000 | 1317075904000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1313 | enhancement | zephod | dread | closed | duplicate | Tweaks to captcha configuration |
Awesome to have the captcha implementation and running on thedatahub.org! Here are some further suggestions concerning the config options, before this goes into a release:
I'm not sure why - might be something to do with the maintenance on the server, but worth double checking, since we don't want exceptions, say if one or other config variable is not defined. |
1315395185000000 | 1317076432000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1361 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | Simple search support |
Would be nice if CKAN could work out of the box without the need for SOLR (solr is great but complex and heavyweight to install). Propose:
ExtrasRemove
Possible Extras(Probably future improvements)
|
1317078276000000 | 1317082893000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1338 | defect | amercader | amercader | ckan-sprint-2011-10-28 | closed | fixed | Exception when trying to use a custom form schema from an extension |
Both with the package and group controllers, when overriding the default _db_to_form_schema method (which does nothing) from an extension, you get an exception because the context is not passed to the validators. File '/home/adria/dev/envs/iati/src/ckan/ckan/controllers/group.py', line 140 in edit old_data, errors = validate(old_data, schema) File '/home/adria/dev/envs/iati/src/ckan/ckan/lib/navl/dictization_functions.py', line 215 in validate converted_data, errors = _validate(flattened, schema, context) File '/home/adria/dev/envs/iati/src/ckan/ckan/lib/navl/dictization_functions.py', line 270 in _validate convert(converter, key, converted_data, errors, context) File '/home/adria/dev/envs/iati/src/ckan/ckan/lib/navl/dictization_functions.py', line 178 in convert converter(key, converted_data, errors, context) File '/home/adria/dev/envs/iati/src/ckan/ckan/logic/validators.py', line 108 in group_name_validator model = context['model'] KeyError: 'model' |
1315925217000000 | 1317117738000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1302 | refactor | johnglover | johnglover | ckan-sprint-2011-09-26 | closed | fixed | Move Resource and Tag search code to logic layer |
Resource and Tag search is currently still using the old ckan query parser which is unnecessary. Refactor this out and move to the logic layer. |
1314886102000000 | 1317131948000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1344 | enhancement | kindly | kindly | ckan-sprint-2011-10-10 | closed | fixed | datetime error json conversion on search |
Json decoding error on search, due to date in resources. |
1316020195000000 | 1317211299000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1251 | enhancement | rgrp | rgrp | ckan-backlog | closed | fixed | Rename wiki.ckan.net to wiki.ckan.org |
Inline with general naming policy going forward. |
1311965147000000 | 1317315159000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1289 | CREP | dread | ckan-backlog | closed | wontfix | Remove 'relationships' |
AbstractPackage Relationships have not taken off in the 18 months we've had them in the API. There are some issues with them and we need to spend more time improving them or consider getting rid of them. The ProblemOriginal use cases are expressed here: #253 Here are comments about how we could handle these specific examples better:
3&5. derived resource - better to have some sort of resource relationship perhaps?
Outstanding issues needing serious effort to fix:
SpecificationRemove relationships from model, API, tests, Web UI. Data migration to remove from db. Why do it this wayGetting frustrated having problems with the code, when it's not used much. Often asked about what it's for, but rarely used. Seems an overly complicated design. Backwards Compatibilityn/a Implementation planDeliverablesSee Specification Risks and mitigationsRisk: a customer suddenly wants this, and the new ways to relate resources are not in place yet. Mitigation: discuss this decision thoroughly to make sure we are confident the use cases are not important. Discuss with team, ckan-discuss and specifically the LOD people who have some related packages on thedatahub.org. ParticipantsDavid Read ProgressNot yet. |
1314206502000000 | 1317315211000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1166 | enhancement | amercader | amercader | ckan-sprint-2011-10-10 | closed | fixed | Less stringent filters for displaying the WMS preview |
Right now, for the "View available WMS layers" link to be displayed, the package needs to have an "INSPIRE=True" extra, a "resource-type=service" extra and a resource of type "WMS". This is due to DGU (the project this was developed for) related reasons, but for a generic support, the resource type should probably be enough. (The repository for this is ckanext-spatial, but it's not on the list) |
1306422646000000 | 1317381932000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1272 | enhancement | amercader | ckan-sprint-2011-10-10 | closed | fixed | Store spatial extents provided in the package form |
Consolidate the extra spatial as the field for providing information about the geographic extent of the package. This will integrate automatically with the spatial search and give developers a single point to develop geospatial features. |
1313411787000000 | 1317381996000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1367 | defect | dread | dread | closed | fixed | PyPI ckan broken |
manifest.cfg was not included in the pypi package, causing InvalidRepositoryError? when you do 'paster db init'. Appears to affect most CKAN PyPI releases up to and including 1.4.3. |
1317379931000000 | 1317394273000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1329 | defect | dread | amercader | ckan-sprint-2011-10-28 | closed | fixed | i18n poor in some templates - missing i18n tags |
Just a tip for developers regarding translations:
i18:msg attribute, otherwise the messages don't get extracted properly. Good: https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/templates/home/about.html#cl-40 <p i18n:msg="">More about CKAN, and the background to its creation can be found in <a href="http://m.okfn.org/files/talks/opentech_20080705/">these slides</a>.</p> gives this: https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/i18n/ca/LC_MESSAGES/ckan.po#cl-1238 <p class="hints"> <strong>Important:</strong> By submitting content, you agree to release your contributions under the <a href="http://opendatacommons.org/licenses/odbl/1.0/">Open Database License</a>. Please <strong>refrain</strong> from editing this page if you are <strong>not</strong> happy to do this. </p> gives this: https://bitbucket.org/okfn/ckan/src/1996b0439e81/ckan/i18n/ca/LC_MESSAGES/ckan.po#cl-1384 The message is split in different parts that not necessarily match the grammar or syntax of the translated language. |
1315824288000000 | 1317404566000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1245 | task | rgrp | ckan-v1.5 | closed | fixed | Reorganise ckan.org pages |
Here is Rufus' plan for ckan.org reorganisation from http://ckan.okfnpad.org/documentation (22/7/11) (ticket made by dread): /solutions /overview <--- current 'about' page (the software) /customers <-- say "in addition to our clients..." /features <-- needs most work (pictures etc) /pricing/ <-- simplest thing possible ... talk with Ira (cover pricing and support) /developers <--- links to http://docs.ckan.org/, getting the software, the wiki, the mailing list /contact /blog Tasks:
|
1311861708000000 | 1317422640000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1307 | enhancement | zephod | rgrp | ckan-sprint-2011-09-12 | closed | fixed | Implement captcha for signup |
Est cost: 1d |
1315153860000000 | 1317649963000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1293 | enhancement | zephod | rgrp | ckan-sprint-2011-09-12 | closed | fixed | Rename Package to Dataset throughout WUI, API |
Changes
Leave
Notes
|
1314405700000000 | 1317649968000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1297 | enhancement | zephod | rgrp | ckan-sprint-2011-09-12 | closed | fixed | In-place preview of edited description markdown on edit dataset form |
Subticket of #1294. Can integrate from working system on ckanjs. |
1314406183000000 | 1317649974000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1360 | enhancement | zephod | rgrp | ckan-sprint-2011-09-26 | closed | fixed | Remove support for filter by download and filter by openness in search |
Deliver little user benefit and easier just to search and then see what is listed as open and with resources. Implementation DetailsAreas to fix:
CostEst: 2h |
1317077958000000 | 1317650018000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1348 | enhancement | zephod | zephod | ckan-sprint-2011-09-26 | closed | fixed | UX polishing (dataset create/view/edit experience) |
Tweaking UIs and polishing the work done in #1294. ## Edit Page ##
## General ##
|
1316170410000000 | 1317650043000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1349 | enhancement | zephod | zephod | ckan-sprint-2011-09-26 | closed | fixed | Template tidying |
Various things in templates can be tidied up after work has finished on #1294:
|
1316171025000000 | 1317650050000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1350 | enhancement | zephod | zephod | ckan-sprint-2011-09-26 | closed | fixed | i18n of new javascript |
New js code running produced in the work following #1294 contains various string literals, and needs proper internationalisation. See files:
Furthermore, efforts can be made to tidy up strings as described in #1329. |
1316172576000000 | 1317650056000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1351 | enhancement | zephod | zephod | ckan-sprint-2011-09-26 | closed | fixed | Tidy edit-user form; strip preview functionality |
The template for editing a user's profile seems to output the same form twice in one page. Furthermore, the page is made needlessly complex by the preview functionality. The neat inline preview used in package will make this page a lot neater.
|
1316534753000000 | 1317650062000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1252 | enhancement | rgrp | rgrp | ckan-v1.5 | closed | fixed | Deprecate ckan.net in favour of thedatahub.org |
Deprecate ckan.net in favour of thedatahub.org
Also redirect wiki.ckan.net to wiki.ckan.org |
1311965339000000 | 1318160334000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1357 | enhancement | rgrp | rgrp | ckan-sprint-2011-10-10 | closed | fixed | Integrate new version of data preview |
We have an all new and much improved data preview system developed as part of QA in July. Need to integrate this.
|
1317076044000000 | 1318164458000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1320 | enhancement | zephod | rgrp | ckan-sprint-2011-10-10 | closed | fixed | Extend basic markdown to support normal http / https links |
It is very annoying that you have to wrap links in <...> and most people don't bother. Extend h.markdown in code and markdown in js to fix this. (We should also support 'package' links etc in javascript?) *ADDITIONAL*
|
1315422000000000 | 1318164603000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1369 | enhancement | zephod | zephod | ckan-sprint-2011-10-10 | closed | fixed | Remove showdown.js from the page download |
ckan.js can be rearchitected to avoid instantiating showdown.js in the root namespace. That way, layout_base.html doesn't need to import the script (because we don't use the showdown-dependant parts of ckan.js). |
1317392516000000 | 1318165086000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#306 | enhancement | rgrp | rgrp | closed | duplicate | datapkg build command |
Need to be able to build a distribution. Need:
|
1272474212000000 | 1318181194000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1264 | enhancement | zephod | rgrp | ckan-sprint-2011-10-10 | closed | fixed | Merge ckanext-admin into core |
This extension should be in core now -- functionality is basic and very useful. Copy across from here: http://bitbucket.org/okfn/ckanext-admin Suggest this no longer even be an extension. |
1312480783000000 | 1318245716000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1377 | defect | zephod | zephod | ckan-sprint-2011-10-10 | closed | fixed | Ckan admin repair |
Integrating ckanext-admin into core has thrown up a number of problems:
|
1318240018000000 | 1318245795000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#277 | enhancement | zephod | dread | ckan-backlog | assigned | Set some config options / settings in WUI (extension) |
Use caseAs a ckan administrator I want to easily change options about the CKAN install. ImplementationSettings to be in DBSuggested: ## Title of site (using in several places including templates and <title> tag ckan.site_title = CKAN ## Logo image to use (replaces site_title string on front page if defined) ckan.site_logo = http://assets.okfn.org/p/ckan/img/ckan_logo_box.png ## Site tagline / description (used on front page) ckan.site_description = ## Used in creating some absolute urls (such as rss feeds, css files) and ## dump filenames ckan.site_url = ## Favicon (default is the CKAN software favicon) ckan.favicon = http://assets.okfn.org/p/ckan/img/ckan.ico ## An 'id' for the site (using, for example, when creating entries in a common search index) ## If not specified derived from the site_url # ckan.site_id = ckan.net ## API url to use (e.g. in AJAX callbacks) ## Enable if the API is at a different domain # ckan.api_url = http://www.ckan.net ## html content to be inserted just before </body> tag (e.g. google analytics code) ## NB: can use html e.g. <strong>blah</strong> ## NB: can have multiline strings just indent following lines # ckan.template_footer_end = NB: these will still need to be stored somewhere for loading on initialization. do this in db init function ... Settings / Options / KeyValues? TableColumns:
Loading settings from DBDo this in ckan/config/environment.py WUI
Depends
|
1269274861000000 | 1318247121000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1342 | defect | johnglover | amercader | ckan-sprint-2011-10-10 | closed | fixed | Home controller does not capture SearchError exceptions |
If there is a problem with the SOLR connection,the home page just shows a 500 Server error, instead of a notice (the package controller shows a notice when visiting http://localhost:5000/dataset). Steps to reproduce:
|
1316001227000000 | 1318256532000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1362 | defect | johnglover | johnglover | ckan-sprint-2011-10-10 | closed | fixed | Clearing the database should also clear the search index |
When paster db clean is run, the search index should also be cleared. |
1317121861000000 | 1318256546000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1363 | enhancement | johnglover | kindly | ckan-sprint-2011-10-10 | closed | fixed | Add task_status table to store qa/archiever/webstore information that does not need to be versioned. |
table: task_status id entity_id entity_type task_type key value last_updated state unique(entity_id, task_type, key) example keys: last_task_id |
1317219617000000 | 1318256600000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1358 | enhancement | zephod | rgrp | ckan-backlog | assigned | Generate configuration documentation automatically from the deployment_ini_tmpl file |
At the moment documentation of config options is duplicated between source (deployment_ini_tmpl in ckan/config which is used to generate user ini file) and the docs. Suggest we write a script that automatedly generates reference documentation for the config from the source. May be obsoleted by #277 (some config in db) |
1317076350000000 | 1318257823000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1375 | enhancement | amercader | amercader | ckan-sprint-2011-10-10 | closed | fixed | Define new package id before sending it to the IPackageController plugins |
When creating a package, the package_create logic function sends the newly created package object to all plugins implementing the IPackageController interface https://bitbucket.org/okfn/ckan/src/93194933ea75/ckan/logic/action/create.py#cl-64 At this point, the changes have not yet been commited and the id of the package is not set (It has a default value of make_uuid, which is set when commited). For this reason, plugins have no way of knowing the package id. E.g. the spatial query plugin needs to know this id to link the package extent to the actual package. One possible solution would be to set the package id in the data dict received by package_create (if it's not defined): from ckan.model.types import make_uuid if not 'id' in data or not data['id']: data['id'] = make_uuid() |
1317910441000000 | 1318260008000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1268 | enhancement | kindly | rgrp | ckan-sprint-2011-10-10 | closed | fixed | Speed up listing users by revisions by adding db index |
At the moment this appears to be slow (kindly suggests because missing index in db). Page is /user on a ckan instance. Would this also speed up user page where we recent changes? |
1312906592000000 | 1318279592000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1356 | enhancement | kindly | amercader | ckan-sprint-2011-10-10 | closed | fixed | Can not recreate a deleted extra |
If you delete an extra and later on change your mind, you can not recreate it with the same value (Different value works fine). |
1317034180000000 | 1318279617000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1364 | enhancement | kindly | kindly | ckan-sprint-2011-10-10 | closed | fixed | If package in index that is not in ckan error is caused. |
We should ignore these but log the packages that are causing this to investigate. |
1317222206000000 | 1318279636000000 |