id type owner reporter milestone status resolution summary description PosixTime ModifiedTime 3030 enhancement toby new clean up helper functions 1355834038000000 1355834038000000 3029 defect seanh dread assigned JSONP parameter scuppers Search in API "{{{http://datahub.io/api/2/search/package?jsonp=jsonpcallback&q=canada}}} returns {{{ {""count"": 0, ""results"": []} }}} I believe this worked in CKAN 1.4 or 1.5, but it is broken on 1.7.1, 1.8 and whatever demo.ckan.org is running. I suspect the jsonpcallback parameter is getting sent to SOLR. This bug prevents using javascript on another site to search CKAN (although hopefully the action API would work)." 1355238035000000 1355243824000000 3028 enhancement seanh seanh ckan 2.0 new Feature: dashboard activity stream filtering https://github.com/okfn/ckanext-pdeu/issues/13 1355141244000000 1355141244000000 3027 enhancement kindly kindly new solr for 2.0 "change mm support solr 3 and 4 add *_date field" 1354587729000000 1354587729000000 3026 enhancement amercader amercader new Support icons on nav_named_link nav_named_link won't include the nice icon even when passing the icon keyword param. 1354301516000000 1354301516000000 3025 enhancement amercader amercader new Add requests to core requirements Because yes please 1354052124000000 1354052124000000 3024 enhancement seanh closed fixed Add activity stream tab to dataset read page 1353949986000000 1355141087000000 3023 enhancement amercader amercader new New methods on IPackageController to provide access to the data_dict Extension hooking into the edit and create methods of the IPackageController interface receive the package object. This may not include all the fields that came from the form. The new extension points will pass the validated data_dict so extensions can have access to it 1353603657000000 1353603657000000 3022 defect amercader amercader ckan 2.0 closed fixed setup_template_variables method of IDatasetForm never called On the package controller the package_type is not passed to the lookup function, so the setup_template_variables defined on the extensions is never called 1353602743000000 1358254781000000 3021 enhancement johnmartin johnmartin accepted Logout doesn't work without JS "Essentially, the functionality should be as follows: - Add logout link that has `.js-hide` attached to it within the header that isn't hidden within a dropdown See http://plus.google.com/ (when logged in) with and without JS to see an example of the actual sign-out working without JS" 1353410350000000 1353411968000000 3020 enhancement seanh new Update CKAN coding standards 1353096711000000 1353096711000000 3019 defect seanh ckan 2.0 new Cannot delete dataset extras Deleting extras in the web interface is broken 1352918678000000 1352918678000000 3018 enhancement johnmartin johnmartin ckan 2.0 new Load more in activity streams Activity streams should be able to load more than 15 items within them. Suggest the default amount of loading is around 30 and then click to load more. 1352900051000000 1355140950000000 3017 enhancement johnglover johnglover ckan 2.0 new New stable branch for the demo server 1352819088000000 1352819088000000 3016 enhancement johnmartin johnmartin ckan 2.0 new CKAN 2.0 template tweaks Just a ticket to keep track of a few suggested template changes. 1352813417000000 1352813417000000 3015 enhancement johnmartin johnmartin ckan 2.0 closed invalid Dropdowns don't work without JavaScript Essentially the default bootstrap dropdowns don't work properly without JavaScript which is a little bit of an issue with JS not working. 1352805553000000 1353410072000000 3014 defect seanh ckan 2.0 new Crash when deleting a non-empty vocabulary "From Knud Möller: when I try to delete a non-empty tag vocabulary via the API (through HTTP), I get an internal server error. Checking the logs, this turns out to be a consistency error raised by sqlalchemy: Error - : (IntegrityError) update or delete on table ""vocabulary"" violates foreign key constraint ""tag_vocabulary_id_fkey"" on table ""tag"" DETAIL: Key (id)=(21421955-7560-467c-af30-9f790b73e6ae) is still referenced from table ""tag"". 'DELETE FROM vocabulary WHERE vocabulary.id = %(id)s' {'id': u'21421955-7560-467c-af30-9f790b73e6ae'} URL: http://33.33.33.10:5000/api/action/vocabulary_delete The error makes sense, but I'm wondering if it would be useful to extend the API to also allow the deletion of non-empty vocabularies, possibly via a parameter (not sure what best practice in API design is). At the very least, it would be cool if the error message coming back in the response had more information in it." 1352803808000000 1352803808000000 3013 defect dominik dominik new common-error-messages is unreadable "Since the update of the doc theme, the page became unreadable. http://docs.ckan.org/en/latest/common-error-messages.html" 1352553505000000 1352553505000000 3012 enhancement toby toby new data.gov auth 1352393409000000 1352393409000000 3011 enhancement johnglover johnglover ckan 2.0 new Recline fixes and updates for CKAN 2.0 Fixes and updates to Recline / Datapreview for CKAN 2.0. 1352288455000000 1352288455000000 3010 enhancement seanh ckan 2.0 new Pin images don't appear in data explorer "When minified files are in use (set debug = false in ini file) the pin images for points don't show up in the data explorer map view when viewing a resource with geolocation data. set debug = true will fix the problem by using unminified files instead but also turns on a bunch of debug stuff you wouldn't want on a production site. middleware.py, around line 73, is where the decision to turn minified files on or off based on the debug setting is made. This can be hacked on a production site to run with unminified files but otherwise run on production mode thereby getting around the issue with the pins. But that doesn't fix the underlying bug." 1351705506000000 1351705506000000 3009 enhancement seanh seanh ckan 2.0 closed fixed On-site notification of new dashboard activity "We want a ""bubble"" with a number in it to appear in the top-right of the site next to your user name when you're logged in, telling you how many new activity stream items you have in your dashboard activity stream. There's a github issue for this here: https://github.com/okfn/ckanext-pdeu/issues/11" 1351615762000000 1353949938000000 3008 enhancement seanh ckan 2.0 closed fixed Add tests for dashboard activity stream auth We need to test that only logged in users can see their own dashboard activity streams, and they can only see their own dashboard activity streams not those of other users. 1351600860000000 1355141103000000 3007 enhancement seanh ckan 2.0 new Adding a dataset creates multiple activities Adding a new dataset creates multiple activity stream activities, e.g. seanh created the dataset foo, seanh add the resource bar to the dataset foo, and seanh updated the dataset foo are all created when I add a new dataset. I wonder if these can be collapsed into a single activity. 1351516507000000 1351517019000000 3006 enhancement seanh ckan-v1.8.1 new Update translations from Transifex There are some new translations already on the CKAN 1.8 resource on Transifex already (e.g. 100% Norwegian translation I think). We should at least pull these from Transifex for 1.8.1, and may as well do a call for translations too. 1351506144000000 1351506144000000 3005 enhancement seanh seanh ckan 2.0 new Add following/unfollowing of groups: model, API, frontend, tests 1351013744000000 1351013744000000 3004 defect seanh ckan 2.0 closed fixed ImportError: No module named polib This is happening whenever people try to run paster commands. polib should only be needed for the check-po-files command don't import otherwise. 1350907790000000 1361988802000000 3003 enhancement amercader ckan-v1.8 new New pg databases should be created with UTF8 encoding rather than system default "Just to track @tauberer patch on Github. Probably going to 1.8.1" 1350639199000000 1350639199000000 3002 defect amercader ckan-v1.8 new API v1/2 'legacy' search parameters must be escaped before they are put into a Solr query string "Just to track @tauberer patch on Github. Would be nice to write a test for it. Probably going to 1.8.1" 1350639142000000 1350639142000000 3001 defect seanh ckan 2.0 new Multilingual plugin crashes CKAN on add dataset when some languages are default "Enable the multilingual plugins: ckan.plugins = stats synchronous_search multilingual_dataset multilingual_group multilingual_tag and set your default language to one not supported by the multilingual plugin, e.g. ckan.locale_default = cs_CZ now run CKAN and try to add a dataset: File '/home/seanh/Projects/ckan171/ckan/ckanext/multilingual/plugin.py', line 141 in before_index text_field_items['text_' + default_lang].extend(all_terms) KeyError: 'text_cs_CZ' It doesn't matter what language you are viewing the site in in your browser, the default language setting in the ini file determines whether it crashed or not. A number of supported languages are defined at the top of ckanext/multilingual/plugin.py. I think if the default language is not one of these it crashes. I think this affects all versions of CKAN since the multilingual plugin was added so at least 1.7, 1.8 and 2.0" 1350579048000000 1350579048000000 3000 enhancement seanh ckan 2.0 new Add number of followers to dataset pages User profile pages now show some interesting stats about the user: num. datasets, num. edits and num. followers. Would be nice to add some similar info to dataset pages. At least num. followers can be done (already implemented in backend). 1350484560000000 1350484560000000 2999 enhancement seanh ckan 2.0 new Add activity streams to organization pages Before we do this we need to merge the organizations branch into master, we need to implement smarter activity streams for organizations, and we need to implement following of organizations. 1350484457000000 1350484457000000 2998 enhancement seanh ckan 2.0 new Add activity streams to group pages Before we do this we should implement smarter group activity streams (i.e. what activities should appear in a group's activity stream?) and following of groups. 1350484394000000 1350484394000000 2997 enhancement seanh ckan 2.0 new Add activity streams to dataset pages Add an activity stream tab to dataset pages, like we have on user profile pages. Dataset activity streams are already implemented in the backend. 1350484306000000 1350484306000000 2996 enhancement seanh ckan 2.0 new Fix behaviour of View Profile button in user popover when already on user's profile "The user popovers that appear when you hover the mouse over a user in an activity stream include a View Profile button that takes you to that user's profile page. If you are already on that user's profile page then it simply reloads the same page, but it sends you to the Datasets tab if you were on another tab. Possible solutions: Don't show button if already on user's page? Button just makes popover disappear, if already on user's page? Button does reload the page, but reloads the same tab (datasets, followers, activity stream) that you were on. Marking this low priority" 1350484238000000 1350484238000000 2995 enhancement seanh ckan 2.0 new Popovers for resources, groups, organizations, tags... "If you hover the mouse over a dataset or user in an activity stream, you now get a popover with some info about that dataset or user and a follow/unfollow button. It would be nice to add similar popovers for other types of object in CKAN, e.g. resources, groups, organizations, tags..." 1350484041000000 1350484041000000 2994 enhancement seanh ckan 2.0 new Add dataset and user popovers throughout the site "If you hover the mouse over a dataset or user in an activity stream, you now get a popover with some info about that dataset or user and a follow/unfollow button. These popovers should appear wherever datasets or users are listed, throughout the site." 1350483964000000 1350483964000000 2993 defect seanh ckan 2.0 new """logged_in"" and ""visitor"" show in user list at /users" 1350466922000000 1350484826000000 2992 enhancement johnmartin new Delete resource should send me back to edit dataset page 1350407956000000 1350407956000000 2991 enhancement seanh ckan 2.0 new Add blocks to header.html template Currently if you want to customise the header.html template you have to copy the whole thing, it isn't broken up into blocks like other templates are. 1350385820000000 1350385820000000 2990 enhancement seanh ckan 2.0 new Fix descriptions of groups and organizations on /groups and /organizations pages 1350299091000000 1350299091000000 2989 enhancement seanh ckan 2.0 new """Add dataset to organization"" should auto-select the organization" "'Add dataset to organization' button, when you get through to the third stage of the new dataset form the organization you came from is not selected. I don't see any option to choose the group when adding or updating a dataset, but if I add a dataset via the ""Add dataset to group"" button on a group's page, then the dataset seems to get added to that group. (And I can also add/remove existing datasets by editing the group.) I wonder if organizations should work the same way, instead of having an Organization drop-down when creating or updating a dataset. The add dataset page needs to somehow indicate that you're adding a dataset to a certain group or organization though, doesn't currently." 1350299052000000 1350299052000000 2988 enhancement seanh ckan 2.0 new UI functional tests for CKAN 2.0 Afaik the new CKAN 2.0 frontend has no functional tests 1350298935000000 1350298935000000 2987 refactor seanh ckan 2.0 new Remove all direct calls to logic action and auth functions From Toby 1350298287000000 1350298287000000 2986 refactor seanh ckan 2.0 new Make lib/base.py more like it was originally intended "From Toby: make lib/base.py be more like it was originally intended eg defines stuff that is shared eg _ but maybe try to include stuff like render/get_action if the circular import stuff can be solved - which should be doable if hard and likely needs an extra file or two for the externals _ etc " 1350298245000000 1350298245000000 2985 refactor seanh ckan 2.0 new Make lib/helpers.py more template-specific "From Toby: make lib/helpers more template specific and less generally shared with none template uses (some functions are shared but many shouldn't be) - again help avoid circular imports " 1350298188000000 1350298188000000 2984 refactor seanh ckan 2.0 new Auto-populate context with user, model, session, etc. "From Toby: make the context auto-populated with things like user/model/session if not user supplied - especially for extensions (pre 2.0) maybe via a helper or else a decorator on the action - helper seems nicer maybe done via get_action()" 1350298101000000 1350298101000000 2983 refactor seanh ckan 2.0 new Refactor lib/base.py to remove circular import issues "From Toby: c) refactor lib/base.py to remove the circular import issues (render functions to lib/render.py - would fix much of that) " 1350298044000000 1350298044000000 2982 refactor seanh ckan 2.0 new Move functionality from controllers into template helpers "From Toby: strip more functionality from controllers and add via template helpers eg activity streams " 1350298002000000 1350298002000000 2981 refactor seanh ckan 2.0 new Remove config from jinja templates "From Toby: remove the config from jinja2 templates get all such stuff via g. (before 2.0) " 1350297960000000 1350297960000000 2980 enhancement seanh ckan 2.0 closed wontfix Add new groups and organizations functionality into legacy templates From Toby: add the functionality to legacy templates 1350297883000000 1350560252000000 2979 enhancement seanh ckan 2.0 new Requesting membership to groups and organizations "From Toby: The requesting membership user stories and implementation remain needed " 1350297844000000 1350297844000000 2978 enhancement seanh ckan 2.0 new Tests for permissions for organizations and groups "From Toby: checking the logic around the who can do what from the user stories - via some tests may be a good approach " 1350297806000000 1350297806000000 2977 enhancement seanh ckan 2.0 new Fix user autocomplete on group and organization member pages "From Toby: @johnmartin the user autocomplete on member add needs fixing it gets data but does not understand what to do with it " 1350297749000000 1350297749000000 2976 enhancement seanh ckan 2.0 new Polish group and organization member pages "From Toby: A little polish to the member pages and probably a little hardening of the controller and logic actions" 1350297709000000 1350297709000000 2975 enhancement seanh ckan 2.0 new Tests for auth functions and new actions "From Toby: tests around the auth functions and new actions - probably needs an improved testing mechanism and things like test data creation on via actions " 1350297660000000 1350297660000000 2974 enhancement seanh ckan 2.0 new General of all auth functions "From Toby: A general cleanup of all auth functions (in logic/auth) to check their fitness, error messages, etc." 1350297612000000 1350297612000000 2973 enhancement seanh ckan 2.0 new Move new_authz.py into logic/auth/__init__.py "Makes sense to keep all auth stuff under logic/auth. Also decide which functions from new_authz.pu should be marked private with _. Also decide which functions from new_authz.py are really helpers for the auth functions in get.py, update.py and delete.py, and should maybe moved to another file, e.g. logic/auth/helpers.py" 1350297545000000 1350297545000000 2972 enhancement seanh ckan 2.0 new Remove any imports of authz.py and delete file it is no longer used 1350297442000000 1350297442000000 2971 enhancement seanh ckan 2.0 new """Are ytou sure you want to delete this member?"" should say which member" when deleting members from groups and orgs 1350296840000000 1350296840000000 2970 defect seanh ckan 2.0 new Organization and group member links use id not name e.g. it the 'Members' button links to /organization/members/0a44... instead of /organization/members/foobar 1350296531000000 1350296531000000 2969 defect seanh ckan 2.0 new Group members page 500s The group members page (e.g. /group/members/roger) seems broken, IDs instead of user names are shown for the members, and clicking on a member 500s 1350296454000000 1350296454000000 2968 defect seanh ckan 2.0 new Anyone can access organization members page The button will not show if you are not authorized but browse to /organization/members/foo and you can edit the members, it does stop you when you try to save your changes, but you shouldn't be able to get to the page at all 1350296355000000 1350297070000000 2967 defect seanh ckan 2.0 new Organization members edit page reloads after demoting self Edit an organizations members page and demote yourself from organization admin, after saving the members edit page reloads even though you are no longer an admin and should no longer be able to access this page. 1350296227000000 1350296227000000 2966 enhancement seanh ckan 2.0 new 'Add' button text is wrong when editing organization members e.g. if I just changed a member's capacity I am not adding anything 'save' is better maybe 1350296149000000 1350296149000000 2965 defect amercader ckan-v1.8 new Stats extension broken on 1.8 " * Graphs not showing (looks like a flot related file is missing) * Wrong groups counts (e.g. Data Explorer Examples show 1800 datasets when it onlu has 8)" 1350296141000000 1350296157000000 2964 defect seanh ckan 2.0 new Last organization admin can remove herself "If you are the only admin of an organization you can edit the organization's members and demote yourself, then the org has no admins and no one (except sysadmins maybe) can edit it. Last admin should not be able to remove or demote herself. Also applies to groups." 1350296058000000 1350296058000000 2963 defect amercader ckan-v1.8 new Timeout on tag pages with lots of datasets "e.g. http://thedatahub.org/tag/lod Tags with less datasets work fine (e.g. http://thedatahub.org/tag/railways)" 1350295999000000 1350295999000000 2962 enhancement dominik ckan-backlog new Search across multiple ckan instances "Could be done by: - using the solr distributed search - difficult set up - merging result sets from apis - make sure that results can be merged properly (score, facets, ...)" 1349736622000000 1349736622000000 2961 enhancement dominik dominik ckan 2.0 assigned Preview plugin endpoint "Users could write ckan extensions that offer previews for a certain datatype. Advantages: - We can say that you can add your own previews - Every preview would have to define it's own dependencies - External development (community creates new extensions?) Questions to answer: - Specification of the interface - Precedence of previews for the same data types - Plugins only define the datatype that they are responsible for or do we call a function that returns whether the extension is responsible. As far as I can see, this should be fairly easy to implement by following these instructions: http://docs.ckan.org/en/latest/writing-extensions.html#writing-a-plugin-interface" 1349696367000000 1350577990000000 2960 task dominik ckan-backlog new Private datasets are not private At the moment everyone can read all resources. There is no support for hiding resources that are in private datasets. 1349694255000000 1349694255000000 2959 defect icmurray icmurray ckan 2.0 new Changing a Group's name through the action api disassociates it from its datasets in the index "Repro: - Create a new Group, named ""test-group"". - Add a dataset to it. - Verify the dataset belongs to the group by visiting the Group's read-page - Update the Group through the action api (group_update), using the uid in the ""id"" field, and a new name in the ""name"" field. - Visit the group's read-page. The list of datasets will be empty. This was an issue when editing a Group through the web interface, which was fixed in [1]. However it only fixes the issue in the group controller. [1] https://github.com/okfn/ckan/commit/dbe25d8b8d7fabfc40c5d794a920b91cec349335" 1349363935000000 1349363935000000 2958 defect seanh ckan-v1.8 new Uploading files with unicode characters in filename fails in CKAN 1.7 and 1.8 "e.g. 2012_08(주요국가).xls I tested in CKAN 2.0 and it seemed to work fine there." 1349342976000000 1349342976000000 2957 task dominik new New datastore on postgres prior to 9.0 The ``GRANT SELECT ON ALL`` and ``ALTER DEFAULT PRIVILEGES`` are not available in Postgres prior to version 9.0. 1349292214000000 1349292214000000 2956 enhancement shevski johnmartin ckan 2.0 assigned Allow for resource editing in CKAN 2.0 On the edit dataset page... there needs to be a way for users to be able to see all the resources associated to the dataset and edit them individually. 1349277100000000 1349346442000000 2955 defect dominik dominik ckan 2.0 closed fixed Recline should be updated 1349270534000000 1350577952000000 2954 enhancement johnmartin johnmartin ckan 2.0 closed fixed Flickering on resource view when changing between views From the google doc: When I move between grid, graph and map view mode (or click on filters) the whole data explorer flickers (jumps up & down slightly) for a few moments before settling. This is happening on all resources for me and when you initially open launch the page: http://demo.ckan.org/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360. Only in Chrome, working fine in Firefox. 1349268916000000 1350578030000000 2953 defect dominik closed fixed Server error in template directories "If you go to: /{any template dir} for example /home or /related, a Server errror occurs. IOError: [Errno 21] Is a directory: u'/../venv/src/ckan/ckan/templates/home'" 1349252920000000 1349257893000000 2952 enhancement seanh icmurray ckan 2.0 new incorporate javascriopt translations into translations workflow There are now javascript translations. There's a paster command, `trans js`. This is a ticket to ensure that using `trans js` is documented in the normal ckan translation workflow (which is followed after a feature freeze, prior to release). And to see if there's any need for further incorporation into the current translation process. 1349118945000000 1349118945000000 2951 enhancement icmurray ckan 2.0 new Paster command for building css from less "With the latest template, css and js changes in 2.0, there are a number of things that need preparation prior to a production deployment. One of these is: - the less files should be compiled to css (main.css, not just main.debug.css) This ticket is to provide a paster command which will compile the .less into the main.css file. The idea of the paster command is that it will be run by developers, and they will check in the resulting .css files. It will also provide a convenient mechanism for production scenarios with node.js installed on the production server, as they will be able to compile the .less there as well. ## Background The .css files that need to be served are built using `less`. The css files that are generated *are* checked-in to the repo; but they are a build artifact. So the general workflow is: - commit changes to the less files - build the main.css file and commit This paster command slots into the above workflow for convenience. ## Notes - doc/frontend-development.rst - bin/less to run this paster command, `Node` will be required. So that dependency should be checked. ## The paster command This is the proposed behaviour of the paster command: - ensure `custom.less` does not exist - for each colour in{fuchsia,green,maroon,red}: - generate a `custom.less` file for $colour. There's a paster command that does this already: `paster color . - generate the `css` from the `less` files. ie - the equivelant of running `bin/less --production`. - this will generate a `main.css` file, which should be renamed to `$color.css`. - ensure `custom.less` does not exist - generate the `css` from the `less` files. This will create a `main.css` with the default colour scheme. - call the paster command that minifies css and js files. (This command does not exist yet, see #2950)" 1349118740000000 1349175030000000 2950 requirement icmurray ckan 2.0 closed fixed paster command to minify javascript and css "With the latest template, css and js changes in 2.0, there are a number of things that need preparation prior to a production deployment. One of these is: - the fanstatic_resources defined in `ckan/lib/fanstatic_resources.py` (bottom of module) should be prepared, and minified. This ticket is to: - provide a paster command which when run will generate the minified javascript as css files. - stop the auto-minification of files when CKAN starts up. - remove reference to the minified files in the `.gitignore` file. - add instruction to the release process to run this command, and check-in the minified files to the repo. ## Background Currently, minification works seamlessly without the need for any preparation when CKAN is started in a development setup. But on a production site, the webserver will (almost certainly) not have write-access to the directories that will contain the minified files. And so the minification will fail, and the site will end up serving the un-minified media, or even *old* minified media. One way around this would be to allow webserver write access to the directory its serving out of. But this is not generally considered good practice. Another method would be to distribute the minified files with CKAN. This ticket describes how to do this without causing a lot of noise in the commit history of the repo. The auto-minifcation occurs when importing `ckan/lib/fanstatic_resources.py`. ## Changing the process slightly The reason for moving away from auto-minifying files at start-up, to minifying files when running a paster command is: - we should be distributing the minified files when we make a release (as we do with translation files). This makes it easier to install CKAN from source. - if we distribute the minified files, then they need to be checked-in to the repo. - if they are auto-minified, whenever small changes are made, then this will create a lot of noise in the repo. It will be clearer to have the minified-files generated manually as part of the release process. (Or whever we make a deployment internally)." 1349118376000000 1349189654000000 2949 defect amercader amercader new Reenable Data API button on the new theme The checks to show or not the button need to be updated for the latest datastore version 1349107464000000 1349107464000000 2948 enhancement dominik new Negative range breaks datastore backend Recline allows negative ranges. The backend returns an error 500 for that which breaks the recline preview. 1349101854000000 1349101865000000 2947 enhancement dominik new Redirect to the resource page from /resource/{res-id} "Use story: As a user of the datasore I want to be able to put the resource id without the dataset name in a url and see the resource page. Proposed redirect: /resource/{res-id} -> dataset/foo-bar/resource/{res-id}" 1349097325000000 1349097325000000 2946 enhancement dominik closed duplicate Pdf preview does not load in IE The pdf preview does not load in IE 9. 1349090873000000 1349090992000000 2945 enhancement dominik new Pdf preview does not load in IE The pdf preview does not load in IE 9. 1349090869000000 1349090869000000 2944 enhancement dominik new Recline preview does not work in Opera Opera cannot show a recline preview. I shows 0 records. 1349090802000000 1349090802000000 2943 enhancement dominik new Chrome does not resize preview Chrome does not resize iframe after a full refresh/ on first load 1349089686000000 1349090759000000 2942 defect dread dread closed wontfix API POST barfs on interesting Content-Type headers "When POSTing to the API, if specified, the 'Content-Type' header must be blank or 'application/x-www-form-urlencoded'. Otherwise we get an error like: ""Bad request - JSON Error: Could not extract request body data: Bad content type: \'; charset=utf-8\'"""" The problem is that this is a very reasonable header to send. Indeed requests 0.14 sends this particular header. This affects all versions of CKAN. This is due to webob/requests.py:1248 being pretty basic." 1348593156000000 1348611144000000 2941 enhancement johnmartin johnmartin ckan 2.0 closed fixed Add follower support back into CKAN 2.0 Add the views and functionality of following users and groups into 2.0 1348584670000000 1350560915000000 2940 enhancement johnmartin johnmartin ckan 2.0 closed fixed Edit different resources from edit dataset pag We need a nice way to be able to get to editing the different resources that are associated to a dataset. 1348580812000000 1350560926000000 2939 enhancement toby toby new Orgs are groups holder for ticket number 1348564034000000 1348564034000000 2938 enhancement Toby dominik new Explain bundling in doc/resources.rst "Since it makes sense to bundle resources into one js file that are commonly used together, there should be some explanations on how separate js scripts are merged into one file for production. Explanations could include how groups are handled or different resource files." 1348488835000000 1348488835000000 2937 defect seanh ckan-v1.8 closed fixed GroupController.history() missing extras_as_string "GroupController's history() method doesn't pass 'extras_as_string': True in the context when it calls group_show. This means that if you have an IGroupForm plugin that is adding a custom metadata field and using convert_to/from_extras() then a field value of 'foo' will be returned as '""foo""' Other GroupController and PackageController methods do pass 'extras_as_string'" 1348155730000000 1348238875000000 2936 defect seanh ckan-v1.8 new Updating a group via the API clears its packages "If the group dict that you post to the API does not have any 'packages' key then all the group's packages get removed. I think it would be better if you could just update e.g. the group's description without having to also post the list of packages, and apparently this is how other update API actions work. Might be worth checking all the update API actions for this behaviour, and making sure they're all consistent" 1348048066000000 1348048066000000 2935 enhancement kindly kindly ckan 2.0 closed fixed Make recline work with new datastore 1348042459000000 1350578067000000 2934 enhancement Dominik new Webtests for CKAN "The tests in CKAN only test single pages (functional tests) or single methods (unit tests). In order to make sure that the whole system still works as expected, we need tests that cover whole processes. An example user story to be tested would be: ""As a user with create permissions I want to be able to log in, create a new resource, save it and then make sure that it is in the system."" or: ""As a user I want to use the search functionality and open a resource from the search page."" These user stories require a different testing system with interaction and processes. " 1347966647000000 1348060201000000 2933 enhancement seanh ckan 2.0 new Update theming docs "There's quite a lot of custom stuff going on, with all the custom jinja extensions, and the use of Fanstatic plus custom fanstatic extensions. People who are new to CKAN wanting to write CKAN themes are likely to be confused. I think the whole lot could do with documentation, maybe in the Theming and Customizing chapter in the sphinx docs. I suggest completely replacing the contents of doc/theming.rst, and putting a 'legacy theming' link at the bottom linking to a doc/legacy_theming.rst file with the old contents." 1347895272000000 1347895272000000 2932 enhancement seanh ckan 2.0 new Add docstring to system_info.py What is the system_info table for? It looks like a way to override config file settings in the database, perhaps so that admins can use a web interface to change site title etc. Could do with a docstring explaining the intended purpose of the table. 1347893429000000 1347893429000000 2931 enhancement seanh ckan 2.0 new Better docstring for app_globals.py "''' The application's Globals object ''' is not very informative. " 1347891194000000 1347891378000000 2930 defect seanh ckan-v1.8.1 closed fixed convert_from_extras() returns qupted strings from API "Use an IGroupForm plugin to add a custom metadata field to groups using convert_to_extras() and convert_from_extras(), when calling group show the value comes back quoted, e.g. '""my_value""' Should add tests to example_igroupform and others that setting and getting the custom fields works through the action API." 1347639864000000 1361988592000000 2929 enhancement seanh ckan 2.0 new Remove is_fallback() from I*Form extension interfaces? "If a plugin wants to take over the default package type for example, it can return ['dataset'] from its package_types() method. I don't see how there can be a package type that is not the default 'package' and is not returned by the package_types() method of a plugin, because the URLs for such a package type would not be mapped. Am I missing something or is is_fallback() not needed? Same for IGroupForm and IOrganizationForm" 1347552597000000 1347552597000000 2928 enhancement seanh ckan 2.0 new Run CKAN tests with example_i*form extensions enabled Before releasing CKAN 2.0 we need to run all the CKAN tests with a modified test-core.ini with the example_idatasetform, example_igroupform and example_iorganizationform plugins enabled. If any tests fail, fix the bugs. This needs to be done for each release so add it to the release process. 1347552334000000 1347552334000000 2927 enhancement seanh ckan 2.0 new Test new package/group/organization type URLs support IPackageForm, IGroupForm and IOrganizationForm allow you to define e.g. new package types with new top-level URLs, but the example extensions don't have tests for this yet. 1347552153000000 1347552153000000 2926 enhancement seanh ckan 2.0 new I*Form tests for per-type templates "Finish the tests for the per-package-type custom template support in IPackageForm, IGroupForm and IOrganizationForm (i.e. the new_template(), read_template() etc. methods). The new way that template inheritance works in jinja looks like it should allow this to be tested nicely without duplicating entire templates in the example extensions." 1347552081000000 1347552081000000 2925 defect seanh ckan 2.0 new Remove trans mangle paster command? "- Is `trans mangle` really necessary? If you upload a pot file to Transifex, it can generate a po file for you with 100% strings translated into a fictional pseudo language where everything is really long strings of unicode characters. I found this worked well for coverage testing, and also tests handling of unicode and long strings all over the place." 1347530768000000 1347530768000000 2924 defect seanh ckan 2.0 new Better docs for trans js command, and add to release process "Add a better docstring to for trans js command explaining what it does and why, and how to use it. Also add this command to the CKAN Release Process as it's needed there" 1347530671000000 1347530671000000 2923 defect seanh ckan 2.0 new Change regularise -> regularize The function is called regularise_html(), can't remember what file it's in. 1347530582000000 1347530582000000 2922 defect seanh ckan 2.0 new Better docstring for CKANInternationalizationExtension "I'm unsure about what's going on here. As I understand it, when we run `python setup.py extract_messages` it's going to use the extract_ckan() function from ckan/lib/extract.py to process the HTML files. For the HTML files that are jinja2 templates, extract_ckan() will call jinja2_cleaner() which will call regularise_html() on the strings. So the strings are regularised when they are extracted from the source files. But then we have the parse() method of CkanInternationalizationExtension also calling regularise_html(). I don't get what's happening here. Why do the strings need to be regularised twice? My guess is that CkanInternationalizationExtension is used when the strings are extracted from the templates at runtime, and they need to be regularised at this time in order to match them against the regularised strings in the mo files to find the translations to output? Maybe CkanInternationalizationExtension needs a better docstring saying what it does?" 1347530507000000 1347530507000000 2921 defect seanh ckan 2.0 new Add docstring to top of lib/extract.py file "I think it couldn't hurt for this module to have a docstring at the top of the file explaining what the module is for. I know from setup.py that it's there to provide the extract_ckan() string extractor function for Babel, but I think looking at the file on its own it's not so obvious. Also a couple of other small fixes: jinja2_cleaner looks like a helper function only meant to be used by extract_ckan(), might make things clearer if it was called _jinja2_cleaner(), just so it doesn't look like a public function the module wants to export. jinja_extensions seems to be a module-level variable that is only used in one function, could be moved into the function, unless you think there might be more functions that want it in future." 1347530407000000 1347530407000000 2920 defect seanh ckan 2.0 new Genshi text template message extractor no longer needed? "In setup.py, do we still need: ('templates/**.txt', 'genshi', { 'template_class': 'genshi.template:TextTemplate' }), in message_extractors? Doesn't like there are any txt files in there anymore." 1347530249000000 1347530249000000 2919 defect seanh ckan-v1.8 new Remove IController from docs Still in docs but seems gone from code 1347461253000000 1347461253000000 2918 enhancement johnmartin ross ckan 2.0 closed fixed Can't remove users from organizations "When you remove someone, without adding them, the text box at the bottom (which should probably autocomplete) is empty, and this causes problems on the server. Ideally when you add a user (select from the autocomplete) it would add another row to the table, defaulting the user to editor and setting the names to user__{{X}}__name and user__{{X}}__capacity where X is $('tr').size()" 1347455572000000 1347970735000000 2917 enhancement johnmartin ross ckan 2.0 new Organization admins can delete themselves Organization administrators can delete themselves from the user management pages. We should disable this on the front-end as well as the back-end. 1347451843000000 1347455636000000 2916 enhancement johnmartin ross ckan 2.0 closed fixed User management in orgs needs autocomplete " The user management in organizations ( http://localhost:5000/organization/users/NAME ) should autocomplete names in the dropdown box so that only valid usernames are added to the table." 1347451792000000 1347970727000000 2915 refactor seanh ckan 2.0 new Refactor form_to_db_schema_options() "Having two methods form_to_db_schema(self) and form_to_db_schema_options(self, options) seems unnecessary, why not just have form_to_db_schema(self, options=None)? Fixing this might break existing extensions although I don't think any are using form_to_db_schema_options() so it should be okay. The same thing goes for db_to_form_schema_options(). Also why are we passing a dict 'options' that always contains the same three keys 'api', 'context' and 'type'? Why not three params api=None, contenxt=None, type=None?" 1347446269000000 1347447588000000 2914 defect seanh ckan-v1.8.1 new Add form_to_db_schema_options() to IDatasetForm and IGroupForm This optional method is supported when creating or updating groups and packages and is used in DefaultGroupForm and DefaultPackageForm, but seems to be missing from the interfaces. Should be added with docstring. 1347445795000000 1350303928000000 2913 defect seanh ckan 2.0 new IGroupForm has package_form() method Should be group_form() I think 1347374739000000 1350303779000000 2912 defect seanh ckan-v1.8.1 new ckanext/organizations: Neither public or private initially selected when adding dataset When adding a dataset with the organizations extension on, neither the Public or the Private radio button is initially selected. Public should be selected. 1347271076000000 1350303897000000 2911 enhancement kindly new Internal documentation of Organization Groups A summary/user story doc of how organizations and groups are expected to work. 1346941384000000 1346941384000000 2910 enhancement johnmartin demo phase 5 new User listings are not very compelling They are currently are just a small image / name. They should be: Larger image, Full name (username), description, edits/dataset 1346931587000000 1346931587000000 2909 enhancement johnmartin demo phase 5 new User profile headers are a bit weird They seem to be not exactly well thought out. Needs some thought on better display of the information that they contain. 1346931348000000 1346931348000000 2908 enhancement johnmartin demo phase 5 new Dataset related with image should retain aspect ratio At the moment if you have an related item with an image associated to a dataset that appears in the side column it's resized but doesn't keep it's original aspect ratio. 1346931162000000 1346931162000000 2907 enhancement johnmartin johnmartin demo phase 5 closed fixed Demo header The user login / avatar with in the header really should be within another topbar, as it goes against convention to have the user information within the normal header. 1346930925000000 1352206307000000 2906 defect dominik demo phase 5 new Wrong flags in language dropdown "The flags in the dropdown on details pages are not right. You can see the error on http://s031.okserver.org:2375/dataset/malawi-aid-projects/resource/b717c20e-2006-4ad4-82d2-59b57ebc1ab0." 1346861144000000 1346862889000000 2905 enhancement johnmartin demo phase 5 new Add dataset URL key behaviour "On step 1 for adding a dataset can we add a ajax ping that checks if the URL that is generated by the JS is taken? Behaviour should be as follows: 1. User types title in box (as current) 2. URL key is regexed by JS (as current) 3. The JS does a ajax call to check if the generated URL key is valid. The ajax callback returns a JSON dump which contains what the URL key should be (e.g. if 'test' was taken it returns 'test-1') 4. If the URL key returned in the ajax is different than the one generated by the JS then: 4a. If the user hasn't clicked the edit button then: it automatically updates the URL key field with the URL key supplied in the ajax 4b. If the user has clicked the edit button then: a form error next to the input appears saying that the URL key is taken and within that error is suggests the URL key returned by the ajax as alternative (the user can click said URL key within the error to automatically choose that one) The URL key isn't reserved by the ajax and upon form submission the usual validation should still apply." 1346855283000000 1346855283000000 2904 enhancement johnmartin demo phase 5 new Show more formats/groups/tags shouldn't display if there aren't more On the search results page when there are no more formats, groups or tags to display it should not display the show more links. 1346854444000000 1346854444000000 2903 enhancement johnmartin johnmartin demo phase 5 closed wontfix Two search boxes "I think the architecture on the search page is a bit odd. Not sure I like that there is a doubling up of the search box (e.g. one in the header and one in the body of the search results page) Needs some thought" 1346853712000000 1352206813000000 2902 enhancement ross ckan 2.0 new genshi is used in Group controller "The Group controller uses the genshi module where it may be better for it to use Markup() in the template. See https://github.com/okfn/ckan/pull/117/files#r1524863" 1346782230000000 1346782230000000 2901 enhancement johnmartin demo phase 5 new Language Dropdown bug in footer with IE7 "The language dropdown in Internet Explorer 7 behaves oddly. Essentially I think the problem is with the way that the dropdown decides to go into ""drop-up mode"" (e.g there aint enough screen space below the initial state so it has to drop up)." 1346754674000000 1346754674000000 2900 defect seanh ckan-v1.8.1 new snippets/package_list.html template crashes on dataset that has no 'notes' "Sometimes a dataset dict comes through package_show() with 'notes': None and then the 'notes' key gets stripped from the dict when validation happens (validation only happens if there's an IDatasetForm plugin with a db_to_form_schema() method) and then package_list.html template crashes, e.g. on user profile pages. Fix in the template? Or in the schema? The template also crashes on packages with no tags (empty list gets stripped from dict) and probably other empty fields as well" 1346335207000000 1346335788000000 2899 enhancement johnmartin demo phase 5 new Step 2 > Save & add another bug "Goto: 1. Add dataset 2. Get to step 2 3. Click ""Save & add another"" without adding any data 4. Ends on step 3 Should: fail to validate and remain on step 2" 1346332519000000 1346332519000000 2898 defect johnmartin demo phase 5 new Looses data entered on step 1 of create dataset after login "To reproduce: 1. Enter details for new dataset without being logged in 2. Hit login page for just before step 2 3. Once logged in you end up back at the empty add dataset form (instead of expected 2nd step of dataset edit)" 1346332094000000 1346332120000000 2897 defect seanh ckan-v1.8.1 new db_to_form_package_schema() crashes historical dataset page "If there's an IDatasetForm plugin active with a db_to_form_schema() method based on db_to_form_package_schema(), then viewing historical versions of datasets (e.g. http://127.0.0.1:5000/dataset/dasd%402012-08-30T12%3A26%3A18.524191) crashes. Reason is that revison_id and revision_timestamp need to be added to db_to_form_package_schema(), something like: schema.update({'revision_id': [validators.ignore_missing, unicode]}) schema.update({'revision_timestamp': [validators.ignore_missing, unicode]}) " 1346330495000000 1346330495000000 2896 defect seanh ckan-v1.8.1 new resource_create crashes on ValidationErrors with KeyError: 'resources' "ckan/logic/action/create.py:resource_create(): try: pkg_dict = _get_action('package_update')(context, pkg_dict) except ValidationError, e: errors = e.error_dict['resources'][-1] raise ValidationError(errors) This assumes that package_update always returns an error dict with 'resources' in it. This assumption doesn't hold." 1346257754000000 1346257754000000 2895 enhancement rgrp new QA pages (e.g. broken resource links) are not paginated And as a result timeout on e.g. the datahub ... 1346175485000000 1346175485000000 2894 defect seanh ckan-v1.8.1 new Empty lists get stripped from package dicst in package_show() "If there's an IDatasetForm plugin active with a form_to_db_schema(), then packages with e.g. no extras get the 'extras' key entirely stripped by the validation in package_show, which causes some tests to crash, e.g. in ckan/tests/functional/api/test_activity.py (if the tests are run with a suitable IDatasetForm plugin active). If a package has no extras the dict returned by package_show should still have an 'extras' key with an empty list as the value. Suspect this also effects packages with no tags, no groups, etc." 1346157634000000 1346157634000000 2893 defect seanh ckan-v1.8.1 new Tags missing from form_to_db_package_schema() "With an IDatasetForm plugin active with a form_to_db_package_schema() method that returns a schema based on ckan/logic/schema.py:form_to_db_package_schema() I'm getting validation errors like this: [ckan.controllers.api] Validation error: ""{'__type': 'Validation Error', '__junk': [u'The input field __junk was not expected.']}"" They seem to be caused when a data dict with key 'tags' is passed to e.g. the package_update API, for example in ckan/tests/functional/api/model/test_vocabulary.py there are various tests that get this error when they call package_update (if you run the tests with a suitable IDatasetForm plugin active). In ckan/logic/schema.py:form_to_db_package_schema() 'tags' is for some reason deliberately removed from the schema." 1346155864000000 1346155864000000 2892 defect seanh ckan-v1.8.1 new IDatasetForm's form_to_db_schema() breaks API? "It looks like when an IDatasetForm plugin with a form_to_db_schema() method is active, then the posted data dict is validated against the schema even if the user is posting to an API endpoint like /api/action/package_update etc. This breaks the API, for example 'name' and 'title' are optional keys for package_update (you can supply only the 'id'), but the schema validation will fail if either are not present in the posted dict. It may be we need different schema for package create and package update, currently IDatasetForm has just the one form_to_db_schema() method." 1346154125000000 1346154163000000 2891 defect seanh ckan-v1.8.1 new Update or remove DataStore google presentation "Currently this page: http://docs.ckan.org/en/ckan-1.8/datastore.html has an embedded Google docs presentation about data store which contains some outdated information, e.g. links to datastoreclient which was merged into ckanclient. Suggest moving the google presentation into the documentation proper, so it works with grep etc." 1346149423000000 1346154177000000 2890 enhancement seanh ckan-v1.8.1 new Collect data previews and data store docs in one chapter "Currently there is this page: http://docs.ckan.org/en/latest/data-viewer.html which covers Recline Data Explorer and other kinds of data preview in CKAN. It is under the Publishing Datasets section in the documentation. I had to to a search for 'recline' to find it. Separately there is this page: http://docs.ckan.org/en/ckan-1.7.1/datastore.html which covers datastore, datastorer, and the data api. I suggest collecting this together in one chapter called 'Data Previews'. If I understand it right the general gist would be: CKAN has builtin previews of data resources on resource pages, enabled by default. Images, Google Documents, and web page resources will be loaded into embedded iframes for preview. Text-like files will be displayed raw. CSV or Excel files uploaded to CKAN will be previewed using Recline Data Explorer. Additionally, you can enable CKAN's DataStore, requires you to install ElasticSearch and nginx and put datastore.enabled=1 in your ini file. Lets you use the Data API to query data. Does having DataStore enabled mean you get preview of more types of resources? Any resource that's available via the Data API will be previewed using Recline, You can install ckanext-datastorer, and then CSV and Excel files _linked to_ as CKAN resources will be previewed using Recline also. Requires celeryd." 1346149236000000 1346175867000000 2889 enhancement seanh ckan-v1.9 new Support JSON values in extras, when returning JSON from API "For example, edit the warandpeace dataset and add an extra with key ""comments"" and value ""[{u'date': u'Tue Aug 21 13:01:48 GMT 2012', u'comment': u'testing ckan', u'userId': u'11702'}, {u'date': u'Wed Aug 22 13:01:48 GMT 2012', u'comment': u'testing ckan again', u'userId': u'11702'}]"", now visit API URLs such as: /api/search/dataset?sort=metadata_modified+desc&all_fields=1&limit=10 /api/rest/dataset/warandpeace /api/action/package_show?id=warandpeace The value of the extra comes out as a string in the dataset JSON, rather than having its contents unpacked into a list of JSON objects." 1345811737000000 1345811737000000 2888 enhancement kindly new Datapreview in Iframe Try and put datapreview in Iframe. 1345745461000000 1345745461000000 2887 defect seanh ckan-v1.8.1 new """Welcome to CKAN!"" on front page is untranslatable" "ckan/templates/home/index.html contains:

Welcome to ${g.site_title}!

which means that just ""Welcome to"" ends up in the ckan.po files for translation. This makes the phrase untranslatable in languages that have a different word ordering than English where the site title needs to be somewhere other than at the end of the sentence." 1345627079000000 1345627233000000 2886 enhancement ross ckan 2.0 new Configurable related items "Related items (Apps & Ideas) have a collection of types, which are currently fixed. Some of these types are ambiguous, such as ideas in that they may not have a link - and if they do it is likely to be to a blog post - another existing type. Whilst the URL is required, and we think this should stay required, we should also allow users to change the types found in Apps & Ideas to a shortened list that suits their requirements." 1345625718000000 1345625718000000 2885 enhancement seanh ckan-v1.9 new Labels (editor, admin) not translated in authorization pages for datasets or groups 1345625351000000 1345625524000000 2884 defect seanh ckan-v1.8.1 new Lock icon shown next to unknown licenses Set the license of a dataset to blank (the first option) or to 'License Not Specified' or 'Other (Non-Commercial)' and a lock icon appears next to the license on the dataset read page. Shouldn't this be a question mark or something? 1345564873000000 1345564873000000 2883 enhancement seanh ckan-v1.8.1 new Add high level dev overview to 'For CKAN Developers' section of docs Here's a draft: https://gist.github.com/3414107 1345546355000000 1345629890000000 2882 defect seanh ckan-v1.8.1 new Remove User Stories Overview from docs? "Why is this here? Is it up to date? Is anyone keeping it up to date? Does this belong in some sort of CKAN planning or roadmap document rather than in the documentation? http://docs.ckan.org/en/latest/user-stories.html" 1345540723000000 1345540723000000 2881 defect seanh ckan-v1.8.1 new Remove or improve 'Domain Model' docs page "http://docs.ckan.org/en/ckan-1.8/domain-model.html Currently not very useful. Also these pages: http://docs.ckan.org/en/latest/domain-model-dataset.html http://docs.ckan.org/en/latest/domain-model-resource.html http://docs.ckan.org/en/latest/domain-model-task-status.html This just seems very incomplete to me (surely there is more to the domain model the dataset, resource and task status?) and very likely to not get updated as changes are mode to the code. Would anyone seriously refer to this rather than just looking at the source code? If we want to have something along these lines in the docs, I suggest adding docstrings to packages, modules, classes and methods and then using autodoc to pull them into sphinx." 1345539917000000 1345626056000000 2880 enhancement icmurray ross ckan 2.0 closed wontfix Datasets (Package) should have owners "Each dataset should have an explicit owner that is an organisation. This is the organisation that owns the dataset* and will be used for specifying who can move a dataset out of the default organisation. This should probably be a foreign key link from dataset to organisation (or rather group). * Currently this won't necessarily be the organisation that the dataset is a member of, but it is likely that this will be the case initially (at least until someone moves it to another organisation)." 1345466535000000 1350561968000000 2879 enhancement ross ross ckan 2.0 closed wontfix Datasets (Package) should have a 'public' field "The Package model should have a boolean field added to it describing its visibility beyond that supplied via auth. The related permission for viewing packages where public is set to False would be package.view (show, whatever), and *never* visible for unauthenticated users." 1345466389000000 1350562096000000 2878 enhancement icmurray ross ckan 2.0 closed wontfix Roles and Permissions for Organisations "As part of merging Organisations into core, it is necessary that we clarify the capacity field with which the users/datasets are added as members to the group 'subclass'. Rather than the capacity being an opaque string that implies auth but doesn't clearly specify it, we will use role names where roles are defined in the database - with a clearly defined set of standard roles. The Role table is expected to have simply a string name/representation and acts as a container for permissions. Each permission is a string of the form object.action (such as package.add, group.delete) of which several are expected to be associated with a role. This means the permission table will contain a string and a reference to the role. This work will require UI changes to the screens allowing users to be added to a group/organisation so that the list of available roles is available to add those users. [x] Model for Role and Permission [ ] Logic layer changes for managing roles/permissions etc. [ ] Determine default roles, perhaps just admin/editor/viewer [ ] Fix the auth layer to use the permissions/roles - may be better implemented as another ticket. " 1345466266000000 1350561906000000 2877 enhancement kindly rgrp assigned Bugs with datastore v2 "In progress 1. ~~[major] q does not seem to work reliably. e.g. using the setup from this gist https://gist.github.com/1930806 and doing a ?q=DE yields no results (does not work with ""q=de"" either)~~ * ~~q=second does work ...~~ 1. [major] q does not work with 2 values (see below) 2. Query on search with limit 0 results in total of 0 (should either be null or correct total). Queries with other limits yield correct total AFAICT * Also weird fact that limit is returned but as as as string - should it not be an integer 3. Types on fields: could these not be canonical and as per recline (or is it important to allow exact sql types ...) === Multiple query values === Try a query such as: ""second UK"" and you will get 500 error: http://localhost:5000/api/3/action/datastore_search?resource_id=4f1299ab-a100-4e5f-ba81-e6d234a2f3bd&q=second%20UK {{{ ProgrammingError: (ProgrammingError) syntax error in tsquery: ""second UK"" 'select ""_id"", ""id"", ""date"", ""x"", ""y"", ""z"", ""country"", ""title"", ""lat"", ""lon"", count(*) over() as ""_full_count""\n from ""4f1299ab-a100-4e5f-ba81-e6d234a2f3bd"" where _full_text @@ to_tsquery(%s) limit 100 offset 0' (u'second UK',) }}} === Suggestions === Filter support: should think in more detail about this (may want to follow recline style) Simple filters in query parameters would be nice too ..." 1345250002000000 1346320395000000 2876 enhancement toby toby demo phase 4 closed fixed Admin Config changes are not forced need to make sure these update everywhere when done 1345208451000000 1345470265000000 2875 enhancement toby demo phase 4 closed fixed Fanstatic css issues "Fanstatic does not support @import ... relative imports for images etc need to get a fix for these asap " 1345208199000000 1345214469000000 2874 enhancement rgrp rgrp assigned Clean up bin directory Full of obsolete material 1345190508000000 1345190515000000 2873 defect toby danieljohnlewis demo phase 4 assigned ckanext-qa: dataset summary incorrect " For example see: http://s031.okserver.org:2375/qa/dataset/five_stars Which has: Example dataset as a score of: 4 After examination of the dataset ( http://s031.okserver.org:2375/dataset/example-dataset ) it is made up of a CSV and an HTML file. " 1345126429000000 1345208283000000 2872 defect seanh ckan-v1.8 closed fixed Non-open licenses are marked as open Set a dataset's license to 'Other (Not Open)', the dataset will have an Open Data icon next to it 1345124135000000 1350304179000000 2871 defect shevski demo phase 3 closed fixed user profile about text does not show up "tested with my http://s031.okserver.org:2375/user/shevski and daniel's account. I have added about text and yet see ' Irina Bolychevsky You have not provided a biography.' The about text is saved (and viewable on the edit form itself) but does not show on profile " 1345114953000000 1345121991000000 2870 enhancement seanh ross new 1.8 tag_list not defined "From: Date: Thu, Aug 16, 2012 at 3:20 AM Subject: WebApp Error: : ""tag_list"" not defined To: ckan-sysadmin@okfn.org, kindly@gmail.com URL: http://ckan.net/dataset/uk-postboxes Module weberror.errormiddleware:162 in __call__ << __traceback_supplement__ = Supplement, self, environ sr_checker = ResponseStartChecker(start_response) app_iter = self.application(environ, sr_checker) return self.make_catching_iter(app_iter, environ, sr_checker) except: >> app_iter = self.application(environ, sr_checker) Module beaker.middleware:73 in __call__ << self.cache_manager) environ[self.environ_key] = self.cache_manager return self.app(environ, start_response) >> return self.app(environ, start_response) Module beaker.middleware:155 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:131 in __call__ << r'\1', oldpath) 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:239 in __call__ << try: res = WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> res = 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:322 in read << template = template[:template.index('.') + 1] + format return render(template, loader_class=loader) def comments(self, id): >> return render(template, loader_class=loader) Module ckan.lib.base:153 in render << try: return cached_template(template_name, render_template, loader_class=loader_class) except ckan.exceptions.CkanUrlException, e: raise >> loader_class=loader_class) Module pylons.templating:249 in cached_template << return content else: return render_func() >> return render_func() Module ckan.lib.base:102 in render_template << if loader_class == NewTextTemplate: return literal(stream.render(method=""text"", encoding=None)) return literal(stream.render(method=method, encoding=None, >> return literal(stream.render(method=""text"", 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:569 in __call__ << def __call__(self, stream): strip_markup = self.strip_markup for event in stream: if event[0] is TEXT: data = event[1] >> 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.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 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 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:93 in download_adder << [downloaded %s times]''' 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: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.base:565 in _flatten << elif kind is EXPR: result = _eval_expr(data, ctxt, vars) if result is not None: # First check for a string, otherwise the iterable test >> result = _eval_expr(data, ctxt, vars) Module genshi.template.base:277 in _eval_expr << if vars: ctxt.push(vars) retval = expr.evaluate(ctxt) if vars: ctxt.pop() >> retval = expr.evaluate(ctxt) Module genshi.template.eval:178 in evaluate << __traceback_hide__ = 'before_and_this' _globals = self._globals(data) return eval(self.code, _globals, {'__data__': data}) >> return eval(self.code, _globals, {'__data__': data}) Module ?:51 in <<
  • Tags

    ${tag_list(c.pkg_dict.get('tags', ''))}
  • >> ${tag_list(c.pkg_dict.get('tags', ''))} Module genshi.template.eval:309 in lookup_name << val = BUILTINS.get(name, val) if val is UNDEFINED: val = cls.undefined(name) return val >> val = cls.undefined(name) Module genshi.template.eval:410 in undefined << """"""Raise an ``UndefinedError`` immediately."""""" __traceback_hide__ = True raise UndefinedError(key, owner=owner) >> raise UndefinedError(key, owner=owner) UndefinedError: ""tag_list"" not defined CGI Variables CKAN_CURRENT_URL '/dataset/uk-postboxes' CKAN_LANG 'en' CKAN_LANG_IS_DEFAULT True CKAN_PAGE_CACHABLE True CONTENT_TYPE '; charset=utf-8' DOCUMENT_ROOT '/etc/apache2/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT 'text/html,text/plain,text/xml' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING 'gzip' HTTP_ACCEPT_LANGUAGE 'vi,en-us;q=0.7,en;q=0.3' HTTP_CONNECTION 'close' HTTP_HOST 'ckan.net' HTTP_USER_AGENT 'coccoc/1.0 ()' PATH_INFO '/dataset/uk-postboxes' PATH_TRANSLATED '/etc/ckan/datahub/apache.wsgi/dataset/uk-postboxes' REMOTE_ADDR '127.0.0.1' REMOTE_PORT '47065' REQUEST_METHOD 'GET' REQUEST_URI '/dataset/uk-postboxes' SCRIPT_FILENAME '/etc/ckan/datahub/apache.wsgi' SERVER_ADDR '127.0.0.1' SERVER_ADMIN '[no address given]' SERVER_NAME 'ckan.net' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.0' SERVER_SIGNATURE '
    Apache/2.2.22 (Ubuntu) Server at ckan.net Port 80
    \n' SERVER_SOFTWARE 'Apache/2.2.22 (Ubuntu)' WSGI Variables application beaker.cache beaker.get_session > beaker.session {'_accessed_time': 1345083636.079552, '_creation_time': 1345083636.079552} mod_wsgi.application_group 'ckan.net|' mod_wsgi.callable_object 'application' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '8080' mod_wsgi.process_group 'datahub' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (, '') paste.registry paste.throw_errors True pylons.action_method > pylons.controller pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons pylons.routes_dict {'action': u'read', 'controller': u'package', 'id': u'uk-postboxes'} repoze.who.logger repoze.who.plugins {'openid': , 'friendlyform': , 'ckan.lib.authenticator:UsernamePasswordAuthenticator': , 'auth_tkt': , 'ckan.lib.authenticator:OpenIDAuthenticator': } routes.route routes.url webob._parsed_query_vars (GET([]), '') webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND threads (?)' wsgi.file_wrapper wsgi.version (1, 1) wsgiorg.routing_args (, {'action': u'read', 'controller': u'package', 'id': u'uk-postboxes'}) " 1345114732000000 1345114732000000 2869 defect shevski demo phase 4 new user profile not linked on disqus until page refresh "Reported by Daniel: Problem: DISQUS comments don't appear with profile details (inc. username). How to reproduce: 1) Go to a dataset, e.g. I went to http://s031.okserver.org:2375/dataset/ff 2) I logged into DISQUS using the Google Authentication, e.g. in my case that is okfn.daniel.lewis@gmail.com 3) I made a comment and submitted 4) It comes up with the comment, but no linked profile until the page gets refreshed" 1345114714000000 1345114714000000 2868 enhancement ross ross closed fixed 1.8 SOLR error "From: Date: Wed, Aug 15, 2012 at 8:34 AM Subject: WebApp Error: : SOLR returned an error running query: {'sort': 'metadata_modified desc', 'fq': u'groups:""welcome"" capacity:""public"" +site_id:""www.ckan.net"" +state:active', 'facet.mincount': 1, 'rows': 21, 'facet.limit': '50', 'facet': 'true', 'q': '*:*', 'start': -20, 'wt': 'json', 'fl': 'id data_dict'} Error: ""'start' parameter cannot be negative"" To: ckan-sysadmin@okfn.org, kindly@gmail.com URL: http://thedatahub.org/feeds/group/welcome.atom?page=0 Module weberror.errormiddleware:162 in __call__ << __traceback_supplement__ = Supplement, self, environ sr_checker = ResponseStartChecker(start_response) app_iter = self.application(environ, sr_checker) return self.make_catching_iter(app_iter, environ, sr_checker) except: >> app_iter = self.application(environ, sr_checker) Module beaker.middleware:73 in __call__ << self.cache_manager) environ[self.environ_key] = self.cache_manager return self.app(environ, start_response) >> return self.app(environ, start_response) Module beaker.middleware:155 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:131 in __call__ << r'\1', oldpath) 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:239 in __call__ << try: res = WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> res = 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.feed:180 in group << data_dict['fq'] = 'groups:""%s""' % id item_count, results = _package_search(data_dict) navigation_urls = self._navigation_urls(params, >> item_count, results = _package_search(data_dict) Module ckan.controllers.feed:57 in _package_search << # package_search action modifies the data_dict, so keep our copy intact. query = get_action('package_search')(context, data_dict.copy()) return query['count'], query['results'] >> query = get_action('package_search')(context, data_dict.copy()) Module ckan.logic.action.get:1130 in package_search << query = search.query_for(model.Package) query.run(data_dict) for package in query.results: >> query.run(data_dict) Module ckan.lib.search.query:350 in run << except SolrException, e: raise SearchError('SOLR returned an error running query: %r Error: %r' % (query, e.reason)) try: data = json.loads(solr_response) >> (query, e.reason)) SearchError: SOLR returned an error running query: {'sort': 'metadata_modified desc', 'fq': u'groups:""welcome"" capacity:""public"" +site_id:""www.ckan.net"" +state:active', 'facet.mincount': 1, 'rows': 21, 'facet.limit': '50', 'facet': 'true', 'q': '*:*', 'start': -20, 'wt': 'json', 'fl': 'id data_dict'} Error: ""'start' parameter cannot be negative"" CGI Variables CKAN_CURRENT_URL '/feeds/group/welcome.atom?page%3D0' CKAN_LANG 'ja' CONTENT_TYPE '; charset=utf-8' DOCUMENT_ROOT '/etc/apache2/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT '*/*' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'close' HTTP_FROM 'googlebot(at)googlebot.com' HTTP_HOST 'thedatahub.org' HTTP_USER_AGENT 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' PATH_INFO '/feeds/group/welcome.atom' PATH_TRANSLATED '/etc/ckan/datahub/apache.wsgi/ja/feeds/group/welcome.atom' QUERY_STRING 'page=0' REMOTE_ADDR '127.0.0.1' REMOTE_PORT '33139' REQUEST_METHOD 'GET' REQUEST_URI '/ja/feeds/group/welcome.atom?page=0' SCRIPT_FILENAME '/etc/ckan/datahub/apache.wsgi' SERVER_ADDR '127.0.0.1' SERVER_ADMIN '[no address given]' SERVER_NAME 'thedatahub.org' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.0' SERVER_SIGNATURE '
    Apache/2.2.22 (Ubuntu) Server at thedatahub.org Port 80
    \n' SERVER_SOFTWARE 'Apache/2.2.22 (Ubuntu)' WSGI Variables application beaker.cache beaker.get_session > beaker.session {'_accessed_time': 1345016040.884951, '_creation_time': 1345016040.884951} mod_wsgi.application_group 'ckan.net|' mod_wsgi.callable_object 'application' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '8080' mod_wsgi.process_group 'datahub' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (, '') paste.parsed_dict_querystring (MultiDict([('page', '0')]), 'page=0') paste.parsed_querystring ([('page', '0')], 'page=0') paste.registry paste.throw_errors True pylons.action_method > pylons.controller pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons pylons.routes_dict {'action': u'group', 'controller': u'feed', 'id': u'welcome'} repoze.who.logger repoze.who.plugins {'openid': , 'friendlyform': , 'ckan.lib.authenticator:UsernamePasswordAuthenticator': , 'auth_tkt': , 'ckan.lib.authenticator:OpenIDAuthenticator': } routes.route routes.url webob._parsed_query_vars (GET([('page', '0')]), 'page=0') webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND threads (?)' wsgi.file_wrapper wsgi.version (1, 1) wsgiorg.routing_args (, {'action': u'group', 'controller': u'feed', 'id': u'welcome'}) " 1345114696000000 1345124503000000 2867 enhancement ross new 1.8 url_for error "From: Date: Thu, Aug 16, 2012 at 10:30 AM Subject: WebApp Error: : url_for can only return a string, got unicode instead: https://ckannet-storage.commondatastorage.googleapis.com/file/fd3e00d9-eb0d-479b-8303-38909e5400ca?Signature=cmuU3CzRHQ86F3aZ0gljxv%2B3IqQ%3D&Expires=1345109432&AWSAccessKeyId=GOOGC6OU3AYPNY47B66M&x-goog-meta-uploaded-by=d5c8ed25-70de-4035-b29d-ddbe363913c6 To: ckan-sysadmin@okfn.org, kindly@gmail.com URL: http://ckan.net/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca Module weberror.errormiddleware:162 in __call__ << __traceback_supplement__ = Supplement, self, environ sr_checker = ResponseStartChecker(start_response) app_iter = self.application(environ, sr_checker) return self.make_catching_iter(app_iter, environ, sr_checker) except: >> app_iter = self.application(environ, sr_checker) Module beaker.middleware:73 in __call__ << self.cache_manager) environ[self.environ_key] = self.cache_manager return self.app(environ, start_response) >> return self.app(environ, start_response) Module beaker.middleware:155 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:131 in __call__ << r'\1', oldpath) 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:239 in __call__ << try: res = WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> res = 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.storage:190 in file << return fapp(request.environ, self.start_response) else: h.redirect_to(file_url) >> h.redirect_to(file_url) Module ckan.lib.helpers:57 in redirect_to << if are_there_flash_messages(): kw['__no_cache__'] = True return _redirect_to(url_for(*args, **kw)) def url(*args, **kw): >> return _redirect_to(url_for(*args, **kw)) Module ckan.lib.helpers:79 in url_for << # fix ver to include the slash kw['ver'] = '/%s' % ver my_url = _routes_default_url_for(*args, **kw) kw['__ckan_no_root'] = no_root return _add_i18n_to_url(my_url, locale=locale, **kw) >> my_url = _routes_default_url_for(*args, **kw) Module routes.util:265 in url_for << if not isinstance(url, str) and url is not None: raise GenerationException(""url_for can only return a string, got "" ""unicode instead: %s"" % url) if url is None: raise GenerationException( >> ""unicode instead: %s"" % url) GenerationException: url_for can only return a string, got unicode instead: https://ckannet-storage.commondatastorage.googleapis.com/file/fd3e00d9-eb0d-479b-8303-38909e5400ca?Signature=cmuU3CzRHQ86F3aZ0gljxv%2B3IqQ%3D&Expires=1345109432&AWSAccessKeyId=GOOGC6OU3AYPNY47B66M&x-goog-meta-uploaded-by=d5c8ed25-70de-4035-b29d-ddbe363913c6 CGI Variables CKAN_CURRENT_URL '/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca' CKAN_LANG 'en' CKAN_LANG_IS_DEFAULT True CONTENT_TYPE '; charset=utf-8' DOCUMENT_ROOT '/etc/apache2/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT '*/*' HTTP_ACCEPT_CHARSET 'utf-8;q=0.7,iso-8859-1;q=0.2,*;q=0.1' HTTP_CONNECTION 'close' HTTP_HOST 'ckan.net' HTTP_USER_AGENT 'Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)' PATH_INFO '/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca' PATH_TRANSLATED '/etc/ckan/datahub/apache.wsgi/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca' REMOTE_ADDR '127.0.0.1' REMOTE_PORT '37236' REQUEST_METHOD 'GET' REQUEST_URI '/storage/f/file/fd3e00d9-eb0d-479b-8303-38909e5400ca' SCRIPT_FILENAME '/etc/ckan/datahub/apache.wsgi' SERVER_ADDR '127.0.0.1' SERVER_ADMIN '[no address given]' SERVER_NAME 'ckan.net' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.0' SERVER_SIGNATURE '
    Apache/2.2.22 (Ubuntu) Server at ckan.net Port 80
    \n' SERVER_SOFTWARE 'Apache/2.2.22 (Ubuntu)' WSGI Variables application beaker.cache beaker.get_session > beaker.session {'_accessed_time': 1345109433.273328, '_creation_time': 1345109433.273328} mod_wsgi.application_group 'ckan.net|' mod_wsgi.callable_object 'application' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '8080' mod_wsgi.process_group 'datahub' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (, '') paste.registry paste.throw_errors True pylons.action_method > pylons.controller pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons pylons.routes_dict {'action': u'file', 'controller': u'ckan.controllers.storage:StorageController', 'label': u'file/fd3e00d9-eb0d-479b-8303-38909e5400ca'} repoze.who.logger repoze.who.plugins {'openid': , 'friendlyform': , 'ckan.lib.authenticator:UsernamePasswordAuthenticator': , 'auth_tkt': , 'ckan.lib.authenticator:OpenIDAuthenticator': } routes.route routes.url webob._parsed_query_vars (GET([]), '') webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND threads (?)' wsgi.file_wrapper wsgi.version (1, 1) wsgiorg.routing_args (, {'action': u'file', 'controller': u'ckan.controllers.storage:StorageController', 'label': u'file/fd3e00d9-eb0d-479b-8303-38909e5400ca'}) " 1345114669000000 1345128279000000 2866 enhancement ross ross closed fixed 1.8 template error " URL: http://thedatahub.org/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key%3Db4c2d03fa8 Module weberror.errormiddleware:162 in __call__ << __traceback_supplement__ = Supplement, self, environ sr_checker = ResponseStartChecker(start_response) app_iter = self.application(environ, sr_checker) return self.make_catching_iter(app_iter, environ, sr_checker) except: >> app_iter = self.application(environ, sr_checker) Module beaker.middleware:73 in __call__ << self.cache_manager) environ[self.environ_key] = self.cache_manager return self.app(environ, start_response) >> return self.app(environ, start_response) Module beaker.middleware:155 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:131 in __call__ << r'\1', oldpath) 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:239 in __call__ << try: res = WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> res = 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.user:409 in perform_reset << c.reset_key = request.params.get('key') if not mailer.verify_reset_link(user_obj, c.reset_key): h.flash_error(_('Invalid reset key. Please try again.')) abort(403) >> if not mailer.verify_reset_link(user_obj, c.reset_key): Module ckan.lib.mailer:100 in verify_reset_link << if not user.reset_key or len(user.reset_key) < 5: return False return key.strip() == user.reset_key >> return key.strip() == user.reset_key AttributeError: 'NoneType' object has no attribute 'strip' CGI Variables CKAN_CURRENT_URL '/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key%253Db4c2d03fa8' CKAN_LANG 'it' CONTENT_TYPE '; charset=utf-8' DOCUMENT_ROOT '/etc/apache2/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT '*/*' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'close' HTTP_FROM 'googlebot(at)googlebot.com' HTTP_HOST 'thedatahub.org' HTTP_USER_AGENT 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' PATH_INFO '/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d' PATH_TRANSLATED '/etc/ckan/datahub/apache.wsgi/it/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d' QUERY_STRING 'key%3Db4c2d03fa8' REMOTE_ADDR '127.0.0.1' REMOTE_PORT '54634' REQUEST_METHOD 'GET' REQUEST_URI '/it/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key%3Db4c2d03fa8' SCRIPT_FILENAME '/etc/ckan/datahub/apache.wsgi' SERVER_ADDR '127.0.0.1' SERVER_ADMIN '[no address given]' SERVER_NAME 'thedatahub.org' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.0' SERVER_SIGNATURE '
    Apache/2.2.22 (Ubuntu) Server at thedatahub.org Port 80
    \n' SERVER_SOFTWARE 'Apache/2.2.22 (Ubuntu)' WSGI Variables application beaker.cache beaker.get_session > beaker.session {'_accessed_time': 1345066159.520708, '_creation_time': 1345066159.520708} mod_wsgi.application_group 'ckan.net|' mod_wsgi.callable_object 'application' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '8080' mod_wsgi.process_group 'datahub' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (, '') paste.parsed_dict_querystring (MultiDict([('key=b4c2d03fa8', '')]), 'key%3Db4c2d03fa8') paste.parsed_querystring ([('key=b4c2d03fa8', '')], 'key%3Db4c2d03fa8') paste.registry paste.throw_errors True pylons.action_method > pylons.controller pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons pylons.routes_dict {'action': u'perform_reset', 'controller': u'user', 'id': u'3086e91c-fe09-4a98-92e1-19de67a9ac9d'} repoze.who.logger repoze.who.plugins {'openid': , 'friendlyform': , 'ckan.lib.authenticator:UsernamePasswordAuthenticator': , 'auth_tkt': , 'ckan.lib.authenticator:OpenIDAuthenticator': } routes.route routes.url webob._parsed_query_vars (GET([('key=b4c2d03fa8', '')]), 'key%3Db4c2d03fa8') webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND threads (?)' wsgi.file_wrapper wsgi.version (1, 1) wsgiorg.routing_args (, {'action': u'perform_reset', 'controller': u'user', 'id': u'3086e91c-fe09-4a98-92e1-19de67a9ac9d'}) " 1345114641000000 1346670324000000 2865 enhancement ross ross closed fixed 1.8 unicode error " URL: http://thedatahub.org/el/tag/jutatt%C3%A1sok Module weberror.errormiddleware:162 in __call__ << __traceback_supplement__ = Supplement, self, environ sr_checker = ResponseStartChecker(start_response) app_iter = self.application(environ, sr_checker) return self.make_catching_iter(app_iter, environ, sr_checker) except: >> app_iter = self.application(environ, sr_checker) Module beaker.middleware:73 in __call__ << self.cache_manager) environ[self.environ_key] = self.cache_manager return self.app(environ, start_response) >> return self.app(environ, start_response) Module beaker.middleware:155 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:131 in __call__ << r'\1', oldpath) 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:239 in __call__ << try: res = WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> res = 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.template:30 in view << """""" try: return render(url) except TemplateNotFound: if url.endswith('.html'): >> return render(url) Module ckan.lib.base:153 in render << try: return cached_template(template_name, render_template, loader_class=loader_class) except ckan.exceptions.CkanUrlException, e: raise >> loader_class=loader_class) Module pylons.templating:249 in cached_template << return content else: return render_func() >> return render_func() Module ckan.lib.base:95 in render_template << template = globs['app_globals'].genshi_loader.load(template_name, cls=loader_class) stream = template.generate(**globs) >> cls=loader_class) Module genshi.template.loader:223 in load << loadfunc = directory(loadfunc) try: filepath, filename, fileobj, uptodate = loadfunc(filename) except IOError: continue >> filepath, filename, fileobj, uptodate = loadfunc(filename) Module genshi.template.loader:286 in _load_from_directory << def _load_from_directory(filename): filepath = os.path.join(path, filename) fileobj = open(filepath, 'U') mtime = os.path.getmtime(filepath) def _uptodate(): >> fileobj = open(filepath, 'U') UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 73: ordinal not in range(128) CGI Variables CKAN_CURRENT_URL '/el/tag/jutatt%C3%A1sok' CKAN_LANG 'en' CKAN_LANG_IS_DEFAULT True CKAN_PAGE_CACHABLE True CONTENT_TYPE '; charset=utf-8' DOCUMENT_ROOT '/etc/apache2/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT '*/*' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'close' HTTP_FROM 'googlebot(at)googlebot.com' HTTP_HOST 'thedatahub.org' HTTP_USER_AGENT 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' PATH_INFO '/el/tag/jutatt\xc3\xa1sok' PATH_TRANSLATED '/etc/ckan/datahub/apache.wsgi/el/tag/jutatt\xc3\xa1sok' REMOTE_ADDR '127.0.0.1' REMOTE_PORT '49520' REQUEST_METHOD 'GET' REQUEST_URI '/el/tag/jutatt%c3%a1sok' SCRIPT_FILENAME '/etc/ckan/datahub/apache.wsgi' SERVER_ADDR '127.0.0.1' SERVER_ADMIN '[no address given]' SERVER_NAME 'thedatahub.org' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.0' SERVER_SIGNATURE '
    Apache/2.2.22 (Ubuntu) Server at thedatahub.org Port 80
    \n' SERVER_SOFTWARE 'Apache/2.2.22 (Ubuntu)' WSGI Variables application beaker.cache beaker.get_session > beaker.session {'_accessed_time': 1345113298.778472, '_creation_time': 1345113298.778472} mod_wsgi.application_group 'ckan.net|' mod_wsgi.callable_object 'application' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '8080' mod_wsgi.process_group 'datahub' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (, '') paste.registry paste.throw_errors True pylons.action_method > pylons.controller pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons pylons.routes_dict {'url': u'el/tag/jutatt\xe1sok', 'action': u'view', 'controller': u'template'} repoze.who.logger repoze.who.plugins {'openid': , 'friendlyform': , 'ckan.lib.authenticator:UsernamePasswordAuthenticator': , 'auth_tkt': , 'ckan.lib.authenticator:OpenIDAuthenticator': } routes.route routes.url webob._parsed_query_vars (GET([]), '') webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND threads (?)' wsgi.file_wrapper wsgi.version (1, 1) wsgiorg.routing_args (, {'url': u'el/tag/jutatt\xe1sok', 'action': u'view', 'controller': u'template'}) " 1345114613000000 1346670331000000 2864 defect toby shevski demo phase 4 closed fixed don't show `create one now` message on other's user pages e.g. I can see 'You haven't created any datasets. Create one now?. ' http://s031.okserver.org:2375/user/kindly when logged in as shevski 1345114552000000 1345471138000000 2863 defect toby shevski demo phase 4 new non-admin users can edit other's draft datasets edit button shows up for daniel lewis for http://s031.okserver.org:2375/dataset/ff 1345114479000000 1345201502000000 2862 enhancement toby markw demo phase 4 new Revised revised groups description "Revised text for 'What are groups?' box at demo.ckan.org/group (after discussion with IB re #2812): What are groups? Groups allow you to group users and data together so that they are easier to manage. Group owners can assign roles and authorisations, giving each project or department control of its own data publishing. Users can browse or facet by groups, which could be an organisation (for example, the Department of Health) or topic (e.g. Transport, Health), making it easier to find the data they are looking for." 1345114322000000 1345115072000000 2861 enhancement toby shevski demo phase 4 new Add qa breadcrumb can we add in the breadcrumb navigation to qa pages so that you can go back to http://s031.okserver.org:2375/qa from sub pages such as http://s031.okserver.org:2375/qa/dataset/five_stars 1345114046000000 1345483270000000 2860 enhancement toby shevski demo phase 3 closed fixed target blank link in qa report can we get the link going to an explanation of the 5 star system on page http://s031.okserver.org:2375/qa/dataset/five_stars to open in new tab? it's leaving demo all together so better to open in new tab than navigate away 1345113826000000 1345120404000000 2859 defect icmurray icmurray ckan-v1.8 new Fix the build "The requires files have been removed. These were required by buildkit. We've lost the information regarding which packages were already in ubuntu repos, which conflicted and which were missing. But perhaps we can just package everything up." 1345109217000000 1345109217000000 2858 enhancement toby toby demo phase 3 closed fixed Harvester tweaks "I've had a look at the new harvesting theme, it looks great, thanks. I did some minor changes and reworded the errors as per tickets #2852 and #2853, but I kept the messages red, as the only other ones available (""flash_notice"") are blue and are not very prominent. Toby, on the old form there was a list of descriptions for all available harvesters which could be nice to have back. I couldn't find an easy way with the new form macro, so I don't know how easy would be to implement http://i.imgur.com/pzS8z.png" 1345103198000000 1345105842000000 2857 defect toby shevski demo phase 4 new no UI to follow another user although option on dashboard "e.g. second option in left hand sidebar is follow another user' http://s031.okserver.org:2375/user/dashboard but if you click on that and then any user, there's no follow button to me the dashboard user stuff is highly unfinished and probably should not be included unless someone is very keen for it" 1345049983000000 1345107097000000 2856 defect toby shevski demo phase 3 closed fixed server error when clicking on deleted app link "1. go to http://s031.okserver.org:2375/user/okfn 2. Click on activity stream 3. Click on 'Deletion test' related item that's linked to in entries 1 & 2 4. Server error" 1345049684000000 1345107503000000 2855 defect shevski shevski demo phase 3 closed fixed language box no longer functional e.g. tried changing the lang here: http://s031.okserver.org:2375/ to no effect. Doesn't work on any other pages either. Flags have also dissappeared 1345049152000000 1345104178000000 2854 enhancement shevski demo phase 5 new no way to see which dataset an app is related to on /apps page e.g. from http://s031.okserver.org:2375/apps?page=1 you cannot edit a related item as an admin or view what dataset the item is related to 1345048728000000 1345048728000000 2853 enhancement toby shevski demo phase 3 closed fixed unclear error message in refreshing harvest source "Tried to refresh the datagm harvest source to get error message: ""An error occurred: [There already is an unrun job for this source]"" This is unclear and not sure why it created an error. We should have something informative such as ""A harvest has already been scheduled for this source"" Do we have a date/time for when this has been scheduled that we can display?" 1345048482000000 1345104231000000 2852 enhancement toby shevski demo phase 3 closed fixed better message for trying to refresh inactive sources in harvest "Currently if you try to refresh (i.e. schedule the harvester to re-run) an inactive source (one who's state is 'withdrawn' - e.g. http://s031.okserver.org:2375/harvest/3feea629-32d8-4431-9957-9f31d32864f1) you get the error message: ""An error occurred: [Can not create jobs on inactive sources]"" This could be better and not red, e.g. and info box (maybe yellow) saying that ""Cannot re-run harvesting on inactive sources. Please first change the status to 'active'""" 1345048317000000 1345106515000000 2851 enhancement ross new Preview of PDF tries to connect to datastore "e.g. http://datahub.io/dataset/ccc-gistemp/resource/80ebdbd6-d91b-4fef-9db4-d3dfbd7e868e CKAN attempts to render the PDF as a datastore tabular date even though the mimetype of the PDF is correctly specified." 1345032766000000 1345032766000000 2850 enhancement aron.carroll demo phase 4 new Add JSON support for IE7 "The JavaScript just isn't going to work without it. Look into either the newer JSON3: http://bestiejs.github.com/json3/ or the old faithful: https://github.com/douglascrockford/JSON-js/" 1344940692000000 1344940692000000 2849 defect toby shevski demo phase 4 closed fixed header tagline misalighned "should be left alighned, not right aligned. Otherwise tag line disappears left off the page. See: header here: http://s031.okserver.org:2375/ckan-admin/config" 1344938638000000 1344947130000000 2848 defect toby shevski demo phase 3 closed fixed no dataset descriptions on front page http://s031.okserver.org:2375/ 1344938505000000 1344947085000000 2847 defect toby shevski demo phase 3 closed fixed 'show inactive sources' checkbox displaying incorrectly "On harvest page: http://s031.okserver.org:2375/harvest the checkbox appears above the text and not clear what it refers to/ Beter to relocate to the left (as on publicdata.eu) see screenshots attached. " 1344864322000000 1345023769000000 2846 defect seanh ckan-v1.8.1 new Organizations allows you to set an organization as the parent organization of itself that doesn't make any sense 1344860536000000 1350303844000000 2845 defect seanh seanh ckan-v1.8 closed fixed Editing an organization removes all datasets from the organization Run CKAN with the publisher profile and organizations plugins enabled. Make an organization. Make a dataset and add it to the organization. Edit the organization and change e.g. its description. After saving the organization, all its datasets have been removed from the organization and now belong to no organization. 1344859286000000 1347271110000000 2844 enhancement rgrp new SQL-only (no solr) version of CKAN " * ~~Search needs to run of local DB (again)~~ * paster db clean attemps to connect to SOLR (still works as does db first but then excepts which is not nice UX)" 1344859168000000 1345454527000000 2843 defect seanh seanh ckan-v1.8 closed fixed Adding existing datasets to organizations is broken "On the organization read page there is only an 'Add Dataset' button, not a drop-down with add new dataset or add existing dataset as on the default group page. On the organization edit page you do have the drop-down, but if you click add existing dataset nothing happens except it appends #datasets to the URL" 1344859137000000 1347270569000000 2842 enhancement seanh ckan-v1.8 closed fixed Allow sort ordering of dataset listings on group pages 1344855695000000 1344855852000000 2841 enhancement aron.carroll amercader demo phase 3 closed fixed Slug generation fails on demo dev "On the add dataset form, slug generation fails with JS error: {{{ Uncaught TypeError: Object [object Object] has no method 'incompleteFormWarning' basic-form.js:5 }}} " 1344855653000000 1344857415000000 2840 enhancement aron.carroll toby demo phase 3 closed fixed tag line styling "@aron Is it possible to get the tagline text to float the other way at the moment we have ...........Title Tag line to here I'd like ...........Title ...........Tag line to here is this possible or too much pain based partly on this comment Markw wrote A minor problem visible on the home page and other pages, when viewing in both Chrome and Firefox: if the browser width is not very wide, the tag line 'Open source data portal' vanishes off the *left* hand side of the screen. For some reason the browser doesn't even recognise this with a horizontal scroll bar (as it does when stuff is off the *right* hand side) - it just chops off the text." 1344851307000000 1344852538000000 2839 enhancement seanh ckan-v1.8 closed fixed Specifying sort order breaks search results on group page Create a group, create some datasets and add them to the group, then view the group's page with a sort-order specified in the URL, e.g. {{{/group/foo?q=&sort=title_string+asc}}}, no datasets are displayed even though there are datasets in the group that match the search query. Remove the sort order from the URL and the datasets will appear. 1344787799000000 1344854522000000 2838 enhancement seanh ckan-v1.9 new Context variables accepted by action functions need to be documented "I was doing this: {{{ context = {'model': base.model, 'session': base.model.Session, 'user': toolkit.c.user or toolkit.c.author, 'extras_as_string': True} group_dict = logic.get_action('group_show')(context, {'id': group_id}) }}} in an extension and one of the group_dicts fields, one that uses convert_to/from_extras, was coming out with the wrong value. It took me ages to realise that I had to pass {{{'extras_as_string': True}}} in the context. I don't think this or other context variables are documented anywhere." 1344630911000000 1344630911000000 2837 enhancement aron.carroll toby demo phase 3 closed fixed checkbox styling Is this done I know checkboxes are a pain but it looks a bit out of place compared to the other items. 1344605993000000 1344851271000000 2836 enhancement toby toby demo phase 3 closed fixed Need extra info for forms "like we have on the form here http://s031.okserver.org:2375/harvest/new you said it partly exists so maybe I just need some training" 1344605931000000 1345023663000000 2835 enhancement aron.carroll demo phase 5 new Client module needs a template loading method "{{{ Client#getTemplate(name, params, success, error); }}} Where params, success and error are optional arguments. test/index.html already has an implementation called loadFixture()." 1344532233000000 1344532233000000 2834 enhancement aron.carroll demo phase 4 new Defer all publish calls until all modules have been initialised "Currently if a module uses sandbox.publish() in its initilaize() function then any modules initialised afterwards will miss the event. We should queue all calls to .publish() in the pubsub module in an array until all modules have loaded then iterate over and execute them." 1344532093000000 1344856692000000 2833 enhancement aron.carroll demo phase 5 new Load module templates before calling .initialize() "I think this would be a nice feature for remote loading templates if the options.template value ends in "".html"". {{{ ckan.module('my-module', { options: { template: 'my-template.html' }, initialize: function () { this.template // This is the loaded template. } }); }}}" 1344531939000000 1344531939000000 2832 enhancement shevski demo phase 4 closed duplicate can't add a dataset to more than one group "add to groups is a drop down menu where you can only choose one needs a new UI & logic allowing user to add new groups & potentially remove from other lists" 1344521472000000 1344542984000000 2831 enhancement aron.carroll ckan 2.0 new Create a limited subset of markdown that's supported "Allowing people to use the full range of markdown results in extremely messy output across the site. I'd suggest limiting support to only a subset of common use cases. * Allow all inline elements, this allows bold, italic, code and links. * Allow lists. Disallow * Horizontal Rules * Headings * Block quote and code (this may turn out to be useful and so could be included) This way you get markdowns paragraph handling and a few inline styles without breaking the entire layout of the page. Here's the full syntax if anyone is interested http://daringfireball.net/projects/markdown/syntax" 1344512467000000 1344512467000000 2830 enhancement toby toby demo phase 4 new Need method to undelete groups need controller action and front-end method 1344509408000000 1344547341000000 2829 enhancement johnglover toby ckan-v1.9 new Archiver fails on 403 http response "Had this issue with the archiver on my local machine need to be logged in (I am admin) to see via web front end {{{ $ paster archiver update -c ../ckan/development.ini 2012-08-09 11:01:37,636 INFO [ckanext.archiver.commands] Archival of dataset resource data added to celery queue: opencontext-chogha-mish-fauna (1 resources) 2012-08-09 11:01:37,671 INFO [ckanext.archiver.commands] Getting dataset metadata: south-african-national-gov-budget-2012-13 2012-08-09 11:01:37,900 INFO [ckan.lib.base] /api/action/package_show render time 0.043 seconds Traceback (most recent call last): File ""/home/toby/okfn/pyenv/bin/paster"", line 8, in load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')() File ""/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/script/command.py"", line 104, in run invoke(command, command_name, options, args[1:]) File ""/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/script/command.py"", line 143, in invoke exit_code = runner.run(args) File ""/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/script/command.py"", line 238, in run result = self.command() File ""/home/toby/okfn/pyenv/src/ckanext-archiver/ckanext/archiver/commands.py"", line 98, in command response = app.post(api_url + '/package_show', data) File ""/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/fixture.py"", line 262, in post expect_errors=expect_errors) File ""/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/fixture.py"", line 243, in _gen_request return self.do_request(req, status=status) File ""/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/fixture.py"", line 406, in do_request self._check_status(status, res) File ""/home/toby/okfn/pyenv/lib/python2.7/site-packages/paste/fixture.py"", line 439, in _check_status res.body)) paste.fixture.AppError: Bad response: 403 Forbidden (not 200 OK or 3xx redirect for /api/action/package_show) {""help"": ""Return the metadata of a dataset (package) and its resources.\n\n :param id: the id or name of the dataset\n :type id: string\n\n :rtype: dictionary\n\n "", ""success"": false, ""error"": {""message"": ""Access denied"", ""__type"": ""Authorization Error""}} }}}" 1344508484000000 1344508484000000 2828 enhancement toby shevski demo phase 4 new Draft datasets are confusing - tickets need creating "reported as editing datasets incorrect e.g. clicking on edit here http://s031.okserver.org:2375/dataset/ff takes you to create dataset page http://s031.okserver.org:2375/dataset/edit/ff but this is the correct behaviour of a draft dataset We need to show draft datasets correctly proper tickets need making for the different issues after review of issues with them - who can see, where, admins and viewing, orgs too etc" 1344506178000000 1344547324000000 2827 defect danieljohnlewis demo phase 4 closed fixed View Item - RSS Feed Issues "Problem: Server Error (HTTP Code 500) when trying to see information related to an RSS feed... example: http://s031.okserver.org:2375/en/dataset/testerisation/resource/974df29e-77bb-4b5e-982c-cb7a295c1923 Expected: A page that looks a bit more like this: http://s031.okserver.org:2375/dataset/epims-lod2/resource/97531bd8-e75c-4efa-bfa2-bb51d0ba90d0" 1344505590000000 1344549139000000 2826 defect toby danieljohnlewis demo phase 3 closed fixed Null group image "Problem: Example group ( http://s031.okserver.org:2375/en/group/example-group ) has a broken image, image not found. Link either incorrect, or no image set, if no image set then shouldn't it show a default image? Expected: There should be an image." 1344505546000000 1344528004000000 2825 defect danieljohnlewis demo phase 5 closed fixed Loss of URL encoding on language change on apps page "Problem: On /apps page if you start in one language, filter the data, and then change languages it loses the correct format for the HTTP Get Parameters (and therefore loses the filters). Example, start in English language, change filter settings to to Application and Newest, change language to German. Expected: Retain correct format for HTTP Get Parameters so that the filter settings are retained. Solution will involve not turning ""="" into ""%3D"" in the URL, i.e. turn off URL encoding." 1344505317000000 1344547172000000 2824 defect danieljohnlewis demo phase 4 closed fixed Multiple of the same Flag Issues "There is some bizarre language flag issues. 1) Log in to http://s031.okserver.org:2375/ (I'm logged in as danieljohnlewis) 2) Visit the apps page: http://s031.okserver.org:2375/apps 3) Have a look at the languages drop down, flags look fine (although Deutsche does have an EU flag rather than the German flag.. but that's irrelevant) 4) Change filters to, say, type: Application and sort: Newest, and apply. Web address becomes: http://s031.okserver.org:2375/apps?page=1&type=application&sort=created_desc 5) Look at the languages drop down: Flags are largely incorrect, with more than one country having the same flag. Please see the attached screenshot. Note: this was originally tested with Google Chrome on Linux (Ubuntu)." 1344505215000000 1344532640000000 2823 enhancement toby toby demo phase 5 new resource additional info title order "Order the items so that none user fields are first from ticket #2707 " 1344504773000000 1344504773000000 2822 enhancement toby toby demo phase 4 new Resource additional info titles format/i18n "the title for additional info should be translated capitalised etc" 1344504620000000 1344543985000000 2821 enhancement danieljohnlewis demo phase 5 new Featured Items on Filter "Problem: On /apps page in the Filter Results box there is a ""Only show featured items"" checkbox, on selection it comes up with 0 solutions. Expected: Presumably an admin can create ""featured items"" so that they can be randomly selected on front page (is this correct)? If there are no ""featured items"" in the whole database can this check box be hidden? Bug is: no UI or obvious way to create featured items. Also the checkbox looks un-styled" 1344504504000000 1344505492000000 2820 defect danieljohnlewis demo phase 5 new English Language: Visualization -> Visualisation "Problem: In the English version (which has a UK flag, indicating British English), the word ""Visualization"" is used. For an example see the ""Filter by type"" drop down on the /apps page. Expected: This should be ""Visualisation"" in British English. Any instances of ""Visualize"" should be changed to ""Visualise"" too. " 1344504455000000 1344504455000000 2819 defect danieljohnlewis demo phase 5 closed worksforme Related Item Summary of Descriptions Markdown Issue "Problem: When creating a related item it mentions that you can use markdown in the description, however markdown doesn't render in apps page nor in related items page. Expected: Make shortened descriptions (on apps page & related items page) render markdown " 1344504321000000 1344545479000000 2818 defect seanh danieljohnlewis demo phase 4 assigned Improve related item schema "Problem: When creating a related item (e.g. a Visualisation), if you don't put in a URL it succeeds, but on the related items and apps pages it renders it as a link to the same page. Expected: Always require a URL and it should only submit if one is added" 1344504176000000 1346231718000000 2817 defect danieljohnlewis demo phase 5 closed worksforme Item Type Reverts on Invalid URL "Problem: When creating a related item, if you put in a invalid URL it loses the choice of Item Type (e.g. Visualisation, Application) and reverts to the first time (API). Expected: It remembers which one was chosen" 1344504076000000 1344544901000000 2816 enhancement toby toby ckan-v1.8 closed fixed DomainObjectOperation not in model "Over-enthusiastic removal of some model items this breaks qa extension" 1344496621000000 1345040471000000 2815 defect seanh seanh ckan-v1.8.1 new db_to_form_package_schema() strips tracking summary, isopen If an IDatasetForm plugin with a db_to_form_schema() based on db_to_form_package_schema() (which is in turn based on default_package_schema()) is in use then the 'tracking_summary' dict and the 'isopen' bool get stripped from package dicts during validation, e.g. during package_show(), and these values are then not available to templates. 1344444427000000 1350303821000000 2814 enhancement shevski markw assigned Demo: upload file behaves oddly "3. Uploading a file behaves counter-intuitively (I would suggest wrongly). When adding a new resource by uploading a file, I select a file called say create-group.png. I expect the following to happen: * the pathname of that file is filled in the box; * nothing is actually uploaded till I hit 'add' (confirming that I've got the right file etc). Instead of this, * the file is immediately and, seemingly, irrevocably uploaded; * the box is filled with a mysterious URL (https://commondatastorage.googleapis.com/ckan-demo ...) * the mysterious URL is so long I can't even see the final element, which is my file name. " 1344420360000000 1346670381000000 2813 enhancement toby markw demo phase 5 new Confusing sidebar on demo dataset page "On a dataset page on demo.ckan.org, the left sidebar is confusing. * It starts with some random links. Actually they are links to groups which the dataset is in, but this isn't clear. * The sidebar elements that are actually part of the dataset are 'Datset extent' and 'License', so these should be right at the top (if they belong in the sidebar at all), instead of which they are right at the bottom in the junk part of the page (i.e. probably lower than the bottom of the main page, and hence lower than anyone will scroll)." 1344420206000000 1344445419000000 2812 enhancement toby markw demo phase 3 closed invalid Groups description needs improving "The 'What are Groups?' text at is a bit naff. Here is a suggested replacement: What are groups? Groups allow you to group users and data together so that they are easier to manage. For example datasets in a group could be visible only to group members, or publicly visible but only editable by group members. Groups can be used to collect together datasets from a single publisher, or related to a particular project, for example. " 1344419953000000 1344524290000000 2811 defect seanh ckan-v1.8 closed fixed Author doesn't show on dataset read page Edit a dataset and add an author, dataset read page still says 'author not given'. If you fill out both the author and author email fields then it works. 1344415861000000 1349869110000000 2810 enhancement kindly ckan-future new heroku ckan support Get ckan working on heroku 1344364858000000 1344364858000000 2809 enhancement aron.carroll toby demo phase 3 closed fixed _ not defined for modules "eg on confirm delete http://localhost:5000/zh_TW/dataset/edit/1-kmwaterfractionfromnationaltopographicdatabasemapscanada _(....) gives [object Object] not translation" 1344335863000000 1344347814000000 2808 enhancement aron.carroll toby demo phase 3 closed fixed Confirm delete dialog badly placed on small screen "If you make your browser window short - say half screen height on a page with delete eg http://localhost:5000/dataset/edit/1-kmwaterfractionfromnationaltopographicdatabasemapscanada the dialog box is partially off the screen - it should try to stay on screen" 1344333474000000 1345023693000000 2807 enhancement aron.carroll toby demo phase 3 closed fixed autocomplete.js error "@aron, edit dataset has a js error http://localhost:5000/dataset/edit/1-kmwaterfractionfromnationaltopographicdatabasemapscanada TypeError: options is undefined [Break On This Error] this.lookup(options.term, options.callback); autocomplete.js (line 231)" 1344266228000000 1344270190000000 2806 enhancement johnmartin shevski demo phase 4 closed fixed way to read full group description "e.g. currently no way to read full description for the 'data explorer examples' group here:http://s031.okserver.org:2375/group/data-explorer Can we add a 'read more' link that expands and contracts the sidebar box or similar?" 1344254292000000 1352206005000000 2805 enhancement seanh toby closed fixed zh_TW has no Plural-Forms "the .po file for zh_TW does not contain Plural-Forms which breaks the i18n JavaScript Extractions for ckan-demo. I've added the following which may or may not be correct - from web search ""Plural-Forms: nplurals=1; plural=0\n"" I suspect it will get overwritten when translations are pulled from transiflex so passing to you as you are the expert in that realm" 1344253863000000 1344254760000000 2804 enhancement aron.carroll shevski demo phase 3 closed fixed please make download button blue "on resource pages (e.g. http://s031.okserver.org:2375/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360), same as old ckan for continuity and to highlight!" 1344252255000000 1344269865000000 2803 enhancement aron.carroll aron.carroll demo phase 3 closed fixed Convert all JS translations to use keywords 1344251817000000 1344256274000000 2802 enhancement aron.carroll aron.carroll demo phase 3 closed fixed Need to tweak the JSON formatting of the localisations "This is what we need the JSON to look like. Taken from the Jed documentation (http://slexaxton.github.com/Jed/). {{{ { // The empty string key is used as the configuration // block for each domain """" : { // Domain name ""domain"" : ""the_domain"", // Language code ""lang"" : ""en"", // Plural form function for language ""plural_forms"" : ""nplurals=2; plural=(n != 1);"" }, // Other keys in a domain contain arrays as values // that map to the translations for that key. // Gettext suggests that you use english as your keys // in case the key isn't found, and it can just pass // the value directly through. // Note: by convention, the 0-index location of the translations // is never accessed. It's just a thing, I guess. ""a key"" : [ null, ""the translation"", ""the plural translations"", ... ], // The plural form string is converted into a function // and the value that's passed into the gettext call // is passed into the plural form function. It's result // (plus 1) is the index that the translation comes from. // We're using sprintf interpolation on our keys so we can // then sub in the _actual_ values into the result. ""%d key"" : [ null, ""%d key"", ""%d keys"" ], // Contexts are keys that are just prefixed with a context string // with a unicode \u0004 as the delimiter. // You can use it for anything. Usually it's just for being content aware // in some way (e.g. male vs. female, product vs. category) ""context\u0004%d key"": [ null, ""context %d key"", ""context %d keys"" ] } }}} This looks like an appropriate python library to do the formatting. http://pypi.python.org/pypi/pojson/ but I'll leave to your discretion. Finally an API endpoint that returns the appropriate request would save us making requests to the i18n directory. {{{ /api/i18n/{locale} }}} For example if the current url is http://localhost:5000/pl/dataset then the client would request: {{{ http://localhost:5000/api/i18n/pl }}} This should return the Content-Type: application/json and a 200 with an appropriate JSON body (this can be the language requested or an appropriate fallback). I think that if the fallback is the default language (in most cases English) then we just return a 204 No Content to save data. " 1344248847000000 1344269446000000 2801 defect aron.carroll shevski demo phase 3 closed fixed no way to see full description of a related item "e.g. see here: http://s031.okserver.org:2375/apps same with related page on a dataset" 1344245809000000 1344531016000000 2800 enhancement aron.carroll shevski demo phase 5 closed worksforme tooltip on popular datasets with number of views be good to do this in phase 3 1344243925000000 1344544461000000 2799 enhancement toby aron.carroll demo phase 3 closed fixed Translations for demo not picking up {% trans %} blocks "Also they seem to be missing the odd {{{ _() }}} block. Such in the new package form. https://github.com/okfn/ckan/blob/2375-demo-theme-development/ckan/templates/package/snippets/package_form.html#L44 " 1344243005000000 1344249253000000 2798 enhancement toby toby demo phase 4 closed fixed Admin Config reset "this want to a) be a link on the left of the form like deletes b) needs a confirm like delete c) wants to work with the autoform" 1344012605000000 1345540010000000 2797 enhancement aron.carroll toby demo phase 3 closed fixed plain_textarea styling "http://localhost:5000/ckan-admin/config uses a plain (non markup) textarea for custom css I've added form macro plain_textarea to provide one, however it renders without a bottom border due to markup textarea styling can you fix this - thanks" 1344000422000000 1344250973000000 2796 enhancement mark.wainwright ross new Need a datahub one-pager "A one-pager explaining what the datahub is and with howto/examples for new users. This would make it much easier to explain the value in using the datahub for storing data. " 1343924916000000 1345129495000000 2795 enhancement toby demo phase 5 new Check validation of HTML, CSS, JS Ensure that we are being standards compliant 1343903128000000 1343903128000000 2794 enhancement aron.carroll toby demo phase 3 closed fixed top buttons missing on edit resource "http://s031.okserver.org:2375/dataset/resource-markdown/resource_edit/ba1b094d-697c-47c4-a72a-6c2557da5409 should have `back to resource` as a minimum" 1343897926000000 1343903064000000 2793 enhancement toby ross demo phase 3 closed fixed Markdown of resource page not rendered as markdown "As per #2650 (on master/1.8 now) If the resource has a description it isn't rendered as markdown .. " 1343896663000000 1343897811000000 2792 enhancement aron.carroll toby demo phase 3 closed fixed dropdown fixes - open correctly "http://s031.okserver.org:2375/ language dropdown expands downwards it should open upwards select2 can do this see http://ivaynberg.github.com/select2/#documentation can you see if we can get this in ckan demo " 1343895296000000 1343901501000000 2791 enhancement aron.carroll toby demo phase 3 closed fixed Logo fix "@aron We should be able to have longish tag lines that look ok currently they wrap and stop the logo text being clickable Can we have `white-space:nowrap;` for the tagline so long ones don't wrap and maybe look at aligning long ones " 1343895034000000 1343906891000000 2790 enhancement kindly toby demo phase 4 new logic.action.user_show is slow "This is a very slow call it would benefit from the sort of speed-ups that package-search received for me locally this is taking 6 seconds for rufus using the datahub data I have. I think a lot of this is the dataset retrival/dictization can we just grab json blobs from solr? also is it possible to specify a sort order/paging? I've put this as a demo-theme ticket as it is an big issue on the demo we are at 25 second page loads - which i can get down to about 8.8 secs so this is the main pain point now" 1343852483000000 1345023734000000 2789 enhancement aron.carroll toby demo phase 3 closed fixed logo fixups "With the text logo I'd like the tag line to be under the site name so some css like `float:left;clear:left;font-size:13px;line-height:0.1;` Also the site name can be larger if no tagline commit daac54dbd856 I've added a new global g.header_css that sets the hgroup class to 'header-image' 'header-text-logo' 'header-text-logo-tagline' I think maybe we should also have 'header-image-css' for the equivalent of the class=""logo"" in the link to allow/stop the image replacement " 1343835141000000 1343835904000000 2788 enhancement amercader amercader ckan-v1.9 new Speed improvements on creating/updating and indexing "Specially needed when importing large numbers of datasets. Profiling the import command from the harvesting extension has shown some areas where improvements could be made. " 1343832992000000 1343832992000000 2787 enhancement toby aron.carroll demo phase 5 closed fixed Ensure templates_legacy directory is loaded for extensions Currently the stats plugin has a template and templates_legacy directory. We need to ensure that the templates in templates_legacy are loaded. 1343827782000000 1344543473000000 2786 enhancement shevski demo phase 5 new target blank HTML downloads e.g. if I click on download here: http://s031.okserver.org:2375/dataset/example-dataset/resource/d8797e51-b497-46ca-a274-8675533d110b can it take me to a new tab instead of navigating away from ckan? 1343819814000000 1343819814000000 2785 enhancement johnmartin aron.carroll demo phase 5 assigned Allow resources to be re-ordered "Not sure where this functionality should be added, possibly in one of the sidebar widgets when editing a resource? Ira, what are your thoughts?" 1343816523000000 1346235916000000 2784 defect icmurray icmurray new model dictize sensitive data The model dictize layer doesn't consistently remove sensitive data from the dictized models. It should use the current context to decide whether to include sensitive data or not. 1343814685000000 1343814685000000 2783 enhancement shevski closed wontfix Way to generate homepage backgrounds for demos/ckan hosted "Really we want this for CKAN Hosted & for creating demos. Currently we're using http://leaflet.cloudmade.com/ - but by finding the area & taking screenshots. Would be better to interate with the app so that: a) this happens automatically and b) correct attribution will be visible on maps" 1343812931000000 1343818702000000 2782 enhancement toby shevski demo phase 3 closed wontfix integrate with leaflet for demo background generation use http://leaflet.cloudmade.com/ properly to generate map backgrounds for demo instances 1343748857000000 1343811113000000 2781 enhancement aron.carroll shevski demo phase 3 closed fixed add way to edit homepage text to simple theming "demo.ckan.org has a small field for adding text on homepage current text: ""Welcome to the CKAN demo Try out standard CKAN functionality in a sandbox environment. Search for datasets directly from the homepage or by navigating to the Datasets search page where you can facet by tags, groups and format."" Want to make this editable for demos" 1343738523000000 1344510922000000 2780 enhancement toby shevski demo phase 4 new way for admins to undelete datasets "Since admins can see deleted datasets - there should be a way for them a) to know they are currently deleted & not viewable by normal users - ticket: #2779 b) way to undelete such datasets - this ticket I suggest a button on the edit form instead of the delete button i.e. remove normal delete button with 'deleted dataset, only admins can view' with undelete button next to the message?" 1343737248000000 1345023811000000 2779 enhancement aron.carroll shevski demo phase 3 closed fixed add 'deleted' to deleted datasets that admins can view "Currently, as a logged in admin, you can view deleted datasets just as if they are live datasets. Nothing distinguishes them apart from normal datasets other than they don't show up on the dataset page This is potentially very confusing Can we add some kind of banner / label to deleted datasets to show they have been deleted? & Do you guys need Sam to design this? Related ticket for undeleting datasets - http://trac.ckan.org/ticket/2780" 1343737077000000 1343903455000000 2778 enhancement aron.carroll toby demo phase 3 closed fixed apps dashboard needs some design love "apps dashboard available at http://localhost:5000/apps in main dev branch I have got this to work in the demo however a) it is a bit ugly b) the template could do with some sorting eg the dropdowns should be being created in a nicer way " 1343734040000000 1343841130000000 2777 enhancement icmurray new bug: user attributes 1343726363000000 1343726363000000 2776 enhancement aron.carroll shevski demo phase 3 closed fixed add styled text field for header title "to use on demos instead of the ckan logo & tag line. Design here: https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/63387712/comments#190457381 (First, text only one at the bottom)" 1343724603000000 1343824375000000 2775 enhancement toby aron.carroll demo phase 4 new Add bin/less to paster serve command "Ideally the ./bin/less command would be run when the server is started. * Also it would be good to have a paster command to build the production CSS with {{{ ./bin/less --production }} * The command could also detect missing node binaries and redirect to the documentation." 1343685686000000 1344543962000000 2774 enhancement toby aron.carroll demo phase 3 closed fixed Provide a method of passing localised strings into the JavaScript "We need to be able to do the following: * Rip the localised strings from the JavaScript source code. These are strings that look like {{{_('String')}}}, {{{translate('String') }}} and {{{ isPlural('String') }}}. * An endpoint that provides the translations in the correct locale for the user. * The endpoint should provide the locale as JSON (possibly using http://jsgettext.berlios.de/doc/html/po2json.html or similar tool) The JavaScript can then read this file on page load." 1343661072000000 1344351626000000 2773 enhancement markw markw ckan-v1.9 new About page needs improving The about page for the DataHub (thedatahub.org/about) could be improved. More importantly the default about page for a generic CKAN instance should be completely different - focus more on Open Data rather than the community hub idea (as this is more relevant for most installations) and remove specific references to tdh. 1343646795000000 1343646795000000 2772 enhancement seanh seanh ckan-v1.8 closed fixed Update transifex for 1.8 translations Upload the new pot file/resource on transifex, put out the call for translations. Some recent commits on master need to be merged into 1.8 first 1343393299000000 1345027445000000 2771 enhancement seanh seanh ckan-v1.8 new Documentation and examples for IDatasetForm and IGroupForm "Add minimal, working IDatasetForm and IGroupForm example extensions to core, with tests. The IDatasetForm example should use tag vocabularies (two birds with one stone) The IDatasetForm and IGroupForm docs are not very good (and are somewhat spread around different doc chapters), fix them up, and reference the new working examples. Tab Vocabularies docs should reference IDatasetForm example. When using convert_to/from_extras() you have to remove any free extras from the form or it won't work, this needs to be documented (in the docstring maybe) There have been recent changes to the schemas that IDatasetForm and IGroupForm use, make sure the docs are up to date." 1343392238000000 1350303564000000 2770 defect seanh seanh ckan-v1.8 closed fixed Some strings potentially not marked for translation "Luca De Santis reported these strings not marked in 1.7.1: > - /user/login.html (""Remember me"" & ""Sign in"") > - /package/search.html and template/package/group/read.html (Tags, Resource Formats, Groups) > - /package/resource_read.html (the ""No description"" message) > - the ""Add related item"" dialog (some strings are i18n savvy, others not) > - the stats page (labels on the graphs) > - the history page (as far as the log messages are concerned). lets check that they are marked in 1.8" 1343386840000000 1343389747000000 2769 enhancement toby shevski demo phase 3 closed fixed add site wide related page "Can we add the related dashboard (http://trac.ckan.org/ticket/2347) to demo - central place to show off all the related stuff added. " 1343323567000000 1343734083000000 2768 enhancement toby shevski demo phase 5 new normalise excel to xls so that data proxy works 1343319382000000 1344351663000000 2767 enhancement aron.carroll aron.carroll demo phase 3 closed fixed Upgrade macro form.select to use tuples instead of dicts This keeps the intended order. 1343319298000000 1343645517000000 2766 enhancement seanh shevski demo phase 4 assigned prevent draft datasets making it to activity stream "The new ckan creates datasets as part of a 3 phase process. To allow for this partially created datasets can have a state that is 'draft' or 'draft-complete'. These datasets should not be seen as active by the activity stream. If we click 'add dataset' and then complete the first phase of adding a dataset then we end up having a activity stream created. When we add a resource in the next phase (add data) again an activity stream item xxx added resource to dataset is created We do not want these adding. Essentially if a dataset has a state.startswith('draft') then we want the activity stream to ignore all actions involving it. finally when the state is changed form state.startswith('draft') to state=='active' we want a xxx has created dataset ... to be added to the stream. The best way to do this would be to branch from 2375-demo-theme-stable and get it to work there. Let me know if you need any help with this ticket or a better explanation of the problem." 1343318795000000 1344543193000000 2765 enhancement aron.carroll aron.carroll demo phase 3 closed fixed Demo login error messages "I'd suggest we add a generic ""failed to login, invalid fields"" in the error_summary block. Then more specific ""this field is required"" when a required field is left empty. So in general, provide an error dict" 1343317842000000 1343817858000000 2764 enhancement rgrp closed duplicate Simplify filestore "Definitely do: * Local file filestore: Remove pairtree (and OFS) and do something very simple * Options: 1. Local file only. Allow for uploaders to GS / S3 in the background * Advantages: simpler, if local upload can do progress bars etc etc * Disadvantages: strain for web-app (upload a 2GB file what happens) * This is probably fixable ... 2. Stick with how we are === New filestore without pairtree === Each uploaded file is located on disk at: {uuid}/{filename} Alternative: yyyy/mm/dd/{uuid}/{filename} Need the uuid to avoid collisions. Metadata: Store no metadata." 1343303928000000 1343320440000000 2763 defect seanh ckan-v1.8.1 new Multilingual tests failing test_multilingual_plugin.TestDatasetTermTranslation.test_dataset_index_translation, test_multilingual_plugin.TestDatasetTermTranslation.test_group_read_translation both failing for me on master 1343303819000000 1350303864000000 2762 defect seanh ckan-v1.8 new test_related.py crashes "/home/seanh/Projects/ckan/ckan/ckan/tests/functional/test_related.py ImportError (cannot import name assert_regexp_matches)" 1343303753000000 1343303753000000 2761 enhancement seanh ckan-v1.8 new Document all the errors you can get when setting up filestore, and how to fix them "Add it to a 'Troubleshooting' section on the filestore page: http://docs.ckan.org/en/ckan-1.7.1/filestore.html For the error messages and their solutions, see various threads on ckan-dev" 1343302566000000 1343302566000000 2760 enhancement aron.carroll shevski demo phase 3 closed fixed fix spacing between data API button and other buttons on dataset page "see spacing between 'download' button and 'data api' button http://s031.okserver.org:2375/dataset/afterfibre/resource/66f5b980-06db-4ccd-a005-c18de4d68a4b" 1343297360000000 1343319140000000 2759 enhancement aron.carroll toby demo phase 3 closed fixed resource upload pointer incorrect "On the add resource forms new or existing dataset when hovering over `Upload a file` css cursor should be pointer not text" 1343289469000000 1343651082000000 2758 enhancement toby toby ckan-v1.9 new file storage gives error if config not available but no useful user information "We get an error which should be improved the actual problem is this but not passed to user ⇝ KeyError: 'ofs.impl' View as: Interactive (full) | Text (full) | XML (full) Module ckan.controllers.storage:2 in auth_form view Module ckan.lib.jsonp:26 in jsonpify view >> data = func(*args, **kwargs) Module ckan.controllers.storage:407 in auth_form view >> authorize(method, bucket, label, c.userobj, self.ofs) Module ckan.controllers.storage:200 in ofs view >> StorageAPIController._ofs_impl = get_ofs() Module ckan.controllers.storage:71 in get_ofs view >> storage_backend = config['ofs.impl'] Module paste.registry:146 in __getitem__ view >> return self._current_obj()[key] KeyError: 'ofs.impl'" 1343287709000000 1343287709000000 2757 enhancement Adria seanh ckan-v1.8 closed fixed Write documentation for upgrading a CKAN install from an older to a newer version of CKAN 1343235242000000 1343392006000000 2756 enhancement seanh seanh ckan-v1.8 closed fixed Fix handling of extras in group read It doesn't pass extras_as_string 1343231514000000 1343232429000000 2755 enhancement toby shevski demo phase 3 closed fixed user pages very slow to load navigating to a user page -one's own or http://s031.okserver.org:2375/en/user/ira or http://s031.okserver.org:2375/en/user/shevski, even when signed out is noticeably slower than navigating between other parts of the site; over 2 seconds. Maybe even 3 1343225395000000 1344505304000000 2754 enhancement aron.carroll shevski demo phase 2 closed fixed Add + icon to two buttons Specifically the 'add resource' button and the 'add item' button in related section 1343225177000000 1343227446000000 2753 enhancement aron.carroll shevski demo phase 2 closed fixed rename breadcrumb on user page "Currently lower case 'active' is the name of this page: http://s031.okserver.org:2375/user Should be 'All Users' or 'Active Users'" 1343225088000000 1343227431000000 2752 enhancement toby ross demo phase 2 closed fixed Navigation highlight missing When navigating to http://s031.okserver.org:2375/group on the demo server, the Group link in the navbar is not highlighted in the same was as the other links are when visiting those pages. 1343216582000000 1343222618000000 2751 enhancement toby toby demo phase 5 new check translations for full demo site need to check everything gets translated - sean did this before so will have info 1343216443000000 1344243046000000 2750 enhancement toby toby demo phase 3 closed fixed javascript translations need ripping "we need to ensure that translations in .js files are ripper for translation look at what is available as preference to creating our own" 1343216246000000 1343415279000000 2749 enhancement aron.carroll toby demo phase 5 closed fixed page title issue with super() super() "title broken for http://s031.okserver.org:2375/en/dataset/new_resource/gold-prices we have inherited the title from the extended page not from the base should be 'add data - ckan' not 'add data - create dataset - ckan' any idea how we fix this?" 1343215828000000 1343232304000000 2748 enhancement shevski demo phase 5 new add 'add new resource' button to sidebar "When editing a resource you see the current and any other existing resources in sidebar (e.g. see http://s031.okserver.org:2375/en/dataset/format-error-test/resource_edit/d1eac556-c16f-44af-8148-5e3467b57cf8?inner_span=True) Would be good to have a pretty 'add new' slightly transparent resource folder/pointer undearneath - letting you add resources from the end resource page" 1343212878000000 1344503744000000 2747 enhancement toby shevski demo phase 2 closed fixed Breadcrumb should use title not URL of dataset "For example here: http://s031.okserver.org:2375/en/dataset/new_resource/gold-prices The breadcrumb shows ""gold-prices"" which is not the title of the dataset" 1343211742000000 1343215679000000 2746 enhancement toby shevski demo phase 2 closed fixed help bubble on demo homepage missing Hey, this is still missing. It's the one with the add dataset text 1343209387000000 1343214031000000 2745 defect amercader ckan-v1.9 new Password reset returns an exception if the key parameter is missing "Instead of showing a notice, the password reset page throws an exception if the key parameter is missing: {{{ Module ckan.controllers.user:329 in perform_reset c.reset_key = request.params.get('key') if not mailer.verify_reset_link(user_obj, c.reset_key): h.flash_error(_('Invalid reset key. Please try again.')) abort(403) if not mailer.verify_reset_link(user_obj, c.reset_key): Module ckan.lib.mailer:100 in verify_reset_link if not user.reset_key or len(user.reset_key) < 5: return False return key.strip() == user.reset_key return key.strip() == user.reset_key AttributeError: 'NoneType' object has no attribute 'strip' }}} Apart from the obvious fix of checking for the 'key' parameter, it seems like is quite common to get these reset urls without the key parameter, so I suspect some email clients might strip the query params when building the links. We could avoid this problem by making the key part of the url instead of a param: http://thedatahub.org/en/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d/b4c2d03fa8 instead of: http://thedatahub.org/en/user/reset/3086e91c-fe09-4a98-92e1-19de67a9ac9d?key=b4c2d03fa8 " 1343145931000000 1343145931000000 2744 defect aron.carroll toby demo phase 2 closed fixed license dropdown is cramped "http://s031.okserver.org:2375/dataset/new license dropdown - when open we need some line spacing at least in FF I think it'd be nice to fix this in phase 2" 1343144543000000 1343219298000000 2743 enhancement toby shevski demo phase 2 closed fixed add dataset button within group "Currently the 'add dataset' button on a group page http://s031.okserver.org:2375/group/another-group-in-the-wall goes to edit group. This is confusing since the interface for this is no way streamlined or helpful. Can we get this to go to the create dataset process instead (ideally with the group pre-chosen) for now? Further on will need to re-think & plan the workflow for publishers which will be a large part of new work" 1343125202000000 1343131092000000 2742 enhancement johnmartin toby demo phase 5 closed fixed admin authz styling "http://localhost:5000/ckan-admin/authz you need to be an admin paster sysadmin add -c dev.ini like #2741 we need other admin links you may want to make the inputs use your form macros - I've just done a basic port also we will need to get all the tables done but looks like we need to get auth groups working for that" 1343124423000000 1352206081000000 2741 enhancement johnmartin toby demo phase 4 closed fixed admin index styling "http://localhost:5000/ckan-admin you need to be an admin paster sysadmin add -c dev.ini we need to get links to other admin pages etc - I think this will want to be flexible so extensions can add extra links etc - but that can come later" 1343124308000000 1352205988000000 2740 enhancement toby shevski demo phase 2 closed fixed misleading breadcrumbs "When adding a resource, the breadcrumb should say ""add data"" or ""add resource"" not ""create dataset"" as you see here: http://s031.okserver.org:2375/dataset/new_resource/frere " 1343123274000000 1343137576000000 2739 enhancement aron.carroll shevski demo phase 3 closed fixed Help text for format field "Can we please add some text next to the format field when user adding a new resource along the lines of: ""This will be generated automatically, but you can edit if you wish"" It always seems to work better when the user does not fill it themselves..." 1343123175000000 1343817919000000 2738 enhancement toby shevski closed invalid Data API "Why is datastore not enabled for this resource http://s031.okserver.org:2375/dataset/frere/resource/cdeddb39-b0cb-4762-aa5b-f80fc892d4dd ? Is this going to be a site wide setting? How do new resources get added to datastore? Or are we just using the dataproxy for demo?" 1343123012000000 1343125335000000 2737 enhancement toby shevski demo phase 2 closed fixed change help/prefilled text in format field "Should be basic format (which is what the datastore wants & what we display to users) e.g. ""CSV, XML, JSON etc"" http://s031.okserver.org:2375/dataset/new_resource/" 1343121262000000 1343136141000000 2736 enhancement ross ross ckan-v1.9 closed wontfix Archiver fixes "We need to check the archiver to make sure it works as we would expect after the changes in #2732: * Receive notification of a file that needs processing * Check the file's DB entry and upload the file to the configured remote service * Update the URL of the file (both in the file's DB entry and the resource) * Once we're sure the file is safely archived, we should mark the file as being archived so that we know it can safely be deleted at some point. Maybe this could/should be implemented as a service rather than a celery task?" 1343121237000000 1346670097000000 2735 enhancement toby shevski demo phase 5 assigned Dataset order on user page "I think the datasets on user pages http://s031.okserver.org:2375/user/me should be ordered by latest updated (with most recent at the top) instead of in alphabetical order. What do you think?" 1343062877000000 1344349245000000 2734 enhancement toby shevski demo phase 2 closed fixed once format on resource form has errored, no longer submits form "Steps to reproduce: 1. go to edit a resource, e.g. http://s031.okserver.org:2375/dataset/ted/resource_edit/a621a6ad-6f1c-46d1-b858-03cdb7a25c07 2. Change the format field to something it doesn't get. e.g. add a comma ""HTML,"" 3. Get message: ""The form contains invalid entries: Last modified: Date format incorrect Size: Invalid integer"" 4. Format field reverts, try to re-save/submit form - i.e. click on ""update resource"" 5. nothing happens (same if you even try changing the format field" 1343059061000000 1343127101000000 2733 enhancement johnglover johnglover ckan-v1.9 new Datastore logic functions "== Where does the data go? == In a postgres database configured by the ckan.datastore_write_url config option which is a sqlalchemy url. The user should have rights to create tables. == Whats the api like? == We will just implement it as logic functions like the rest of CKAN and will part of core. After that we may add some nicer api functions that use these but that is a secondary concern. == What are the initial logic functions? == * datastore_create * datastore_delete * datastore_show == What is the JSON input format for datastore_create == To begin with it can have the following keys. It is fairly consistent with Max Ogdens' gut servers. Except adds resource_id. {{{ { resource_id: resource_id # the data is going to be stored against. fields: a list of dictionaries of fields/columns and their extra metadata. records: a list of dictionaries of the data eg [{""dob"": ""2005"", ""some_stuff"": ['a', b']}, ..] } }}} * The first row will be used to guess types not in the fields and the guessed types will be added to the headers permanently. Consecutive rows have to conform to the field definitions. * rows: can be empty so that you can just set the fields * fields are optional but needed if you want to do type hinting or add extra information for certain columns or to explicitly define ordering. eg: [{""id"": ""dob"", ""type"": ""timestamp"" }, {""id"": ""some_stuff"", ""type"": ""text""}, ...]. A header items values can not be changed after it has been defined nor can the ordering of them be changed. They can be extended though. * Any error results in total failure!! For now pass back the actual error. * Should be transactional == What json does datastore_delete take? == {{{ { resource_id: resource_id # the data is going to be deleted. filters: dictionary of matching conditions to delete e.g {'key1': 'a. 'key2': 'b'} this will be equivalent to ""delete from table where key1 = 'a' and key2 = 'b' "". No filters (either not present or not defined) then delete the table. If we want truncate then add truncate: true to truncate the table. } }}} == What json does datastore_search take? == {{{ { resource_id: resource_id # the data is going to be selected. filters : dictionary of matching conditions to select e.g {'key1': 'a. 'key2': 'b'} this will be equivalent to ""select * from table where key1 = 'a' and key2 = 'b' "" q: full text query limit: limit the amount of rows to size default 100 offset: offset the amount of rows fields: list of fields return in that order, defaults (empty or not present) to all fields in fields order. sort: comma separated field names with ordering e.g ""fieldname1, fieldname2 desc"" } }}} Some free code: https://gist.github.com/3163864 == What json does datastore_search return? == {{{ { fields: same type as datastore_create accepts (i.e. with metadata) offset: The same offset that was supplied in datastore_show limit: The original limit filters: The filters that were applied in data_show total: # total matching records without size or offset records: [same as data_create] # list of matching results } }}} On error will return: {{{ { __error__: … sql error … } }}} == What types are allowed? == Aim to support as many postgres/postgis types that have string representations. http://www.postgresql.org/docs/9.1/static/datatype.html http://www.postgresql.org/docs/9.1/static/sql-createdomain.html == IDs == Each row in a table will be given an _id column which has an id generated by us which you can use in queries. == Other Features == Each row will store the _full_text index of all the data in the row. At some later point there will most likely be a way to index fields add constraints etc." 1343058886000000 1343656105000000 2732 enhancement ross ckan-backlog assigned New file upload functionality "We should simplify upload and storage of files, initially only to local storage with archiver eventually being fixed to archive data externally. WIP pad is http://ckan.okfnpad.org/uploads '''Simplifying uploads''' Currently uploads are too painful/difficult/fiddly to use and/or configure. We want to simplify uploads so that they are done directly to the CKAN server, without support for remote services (S3 etc) and/or the dependencies it introduces. We want to fix: * File uploads themselves * Storage of uploaded files * Notification of the upload to other components '''File uploads''' Things file upload should do: * Allow sysadmin to disable * Allow auth'ed users to upload * Store whatever they send on disk, and store DB entry linking the file to the person * When creating the resource, the user should be able to choose from all of the files they have uploaded but not yet associated with a resource. This will allow for bulk upload and then a delayed association. Whenver a user creates a resource they either upload a file now, or see previously uploaded files. {{{ Can we do the upload asynchronously and then associate the uploaded key with the resource before the save ? What happens if the user tries to submit before asymc upload finishes ? Should we delay them? }}} The upload workflow should look like... 1. File upload should be a straightforward file upload with normal auth checks and normal processing of the posted data. 2. a. When called via ajax then the ID of the newly created file should be returned, b. When called via WUI then it should also be given the url to redirect to after the file upload has been handled - the id will be passed as a query param. 3. The resource save should check whether it has a file id and in that case updates the file object to point to the resource. This should enable: * Separate file upload into a user's temporary store, either individually or as a batch. * Creating resources and simply choosing from previously uploaded, unassigned files * Adding files/data to a resource after the fact. '''File storage''' File storage should be local to the CKAN install, and not a remote service. Any archiving to remove storage providers should be outside of the main request. File storage should: * allow moving data, a sysadmin should be able to move the storage root and change configuration and have the system continue running (i.e. don't store absolute paths). * provide maintainability, it should be easy to determine which old files are not associated with resources and thus can be cleaned up. * allow for collection of information (i.e. estimate of storate space used) * check whether there is enough space and handling the conequences cleanly * ensure files to be written only underneath its own root folder, checks should be made after any path generation that the file begins with the location of the file storage. * Have a configurable maximum accepted blob size during upload. * Should store what meta-data was provided with the upload, such as mimetype. Somewhere in the DB we should store ... ||'''Column'''||'''Notes'''|| ||id||An identifier|| ||owner||The owning user, who uploaded the file|| ||path||The path (from the 'storage root') to the file|| ||size||The size in bytes of the file on disk|| ||mimetype||The mimetype of the file, as provided by the uploader|| ||upload_date||When the data was uploaded|| ||resource||The ID of the resource it belongs to. A unidirectional relationship.|| ||archived_url||The URL where this file has been archived|| Generating paths should try and separate the files, perhaps based on username of the owner, or some other mechanism to avoid a single folder full of files. '''Notifications''' We need to make sure that it is possible to notify other components within the system that an upload has taken place, or at least make it easy for them to be notified. The primary use case for this is to notify the component that will translate/upload certain formats to the data store. We could do this based on the post-upload update to the file model (i.e. when we record the total received size of the file). " 1343058789000000 1346663270000000 2731 enhancement markw new Some sites permanently 'down for maintenance' "A large number of XXX.ckan.net sites give the following message: ""This Site is Down for Maintenance We apologize for the inconvenience. ~ The Open Knowledge Foundation sysadmins."" The message is unhelpful and patently false - the sites do not exist. Some of them were supposed to have been redirected to a relevant group at thedatahub.org in this ticket (now closed): http://trac.okfn.org/ticket/933 However, the redirection only seems to have worked in one case, http://si.ckan.net. The problem still affects the following sites - the first 4 of which have supposedly been merged: * http://lt.ckan.net * http://hu.ckan.net * http://be.ckan.net * http://gr.ckan.net * http://nz.ckan.net * http://bg.ckan.net * http://fi.ckan.net * http://katalogdanych.centrumcyfrowe.pl * http://pl.ckan.net * http://southampton.ckan.net * http://sl.ckan.net Please sort this out by redirecting, removing the sites, giving a more helpful (and accurate) failure message, etc, as appropriate." 1343045168000000 1343051608000000 2730 defect toby shevski demo phase 2 closed fixed please change pricing footer link "Pricing needs to go to http://ckan.org/datasuite/services/" 1342951353000000 1343032612000000 2729 enhancement kindly shevski ckan-backlog new searching for tags:[tag] works but tag:[tag] doesn't "which is confusing since you can only search for one tag like this at a time. I.e. tags:economics,cvs or tags:economics, csv or tags:economics+CSV doesn't work for example; therefore tag:economics, should also work! http://s031.okserver.org:2375/dataset?q=tags%3Aeconomics&sort=relevance+asc" 1342951109000000 1342951176000000 2728 defect toby shevski demo phase 4 new deleted group shows on search index - for admins 'test-group', which has been deleted,shows up on main search page under groups - and can be filtered by - see http://s031.okserver.org:2375/dataset?groups=test-group 1342950784000000 1345023944000000 2727 enhancement toby shevski demo phase 2 closed fixed long resource name breaks sidebar navigation box "see http://s031.okserver.org:2375/en/dataset/test-dataset/resource_edit/9d27a9d9-36ec-460e-9edb-6dff7ba4fc28 & image attached" 1342950093000000 1343053760000000 2726 enhancement toby shevski demo phase 5 new confusing logic on data preview formats "1. If a user enters the wrong format on a file that can be previewed - it simply won't be previewed (e.g. a CSV or XML file that can be filled in with JSON in format will just not work or check this 2. If I incorrectly edit format to one that data preview will try to preview it will work even for a format that it doesn't accept (sometimes) e.g. this PDF file I changed the metadata to HTML http://s031.okserver.org:2375/en/dataset/test-dataset/resource/9d27a9d9-36ec-460e-9edb-6dff7ba4fc28" 1342949927000000 1343030906000000 2725 enhancement toby shevski demo phase 5 new Case sensitivity on tags "My feeling is that 'country-US' and 'country-us' should be the same tag. However currently tags with caps are treated differently see http://s031.okserver.org:2375/en/dataset/test-dataset with TEST and test - there also get indexed twice in the search page" 1342949667000000 1343030773000000 2724 enhancement toby shevski demo phase 3 closed fixed Inconsistent labelling / UX on draft datasets "1. One of the datasets here: http://s031.okserver.org:2375/en/user/shevski has [DRAFT] after it. It's not clear why this has been added -> user confusion 2. The draft dataset is not clickable in the dataset list 3. The ff dataset (same as the ff [DRAFT] dataset) in the Activity Steam section a) is clickable and b) does not have [DRAFT] after it" 1342949402000000 1343319009000000 2723 defect aron.carroll shevski demo phase 2 closed fixed Search result summary badly displayed "Text goes over the order by text, with drop down floating on top meaning it's all impossible to read http://s031.okserver.org:2375/dataset?q=unemployment%2C+data&sort=metadata_modified+desc" 1342949143000000 1343136190000000 2722 defect aron.carroll shevski demo phase 3 closed fixed Ordering or search of datasets of a group brings up 'no results' "1. go to a group, e.g. http://s031.okserver.org:2375/group/data-explorer 2. Order by anything, e.g. choose 'popular' and click go 3. ""sorry no datasets found"" message appears instead of ordering the group datasets in wanted order http://s031.okserver.org:2375/group/data-explorer?q=&sort=views_recent+desc" 1342948854000000 1344510010000000 2721 defect toby shevski demo phase 4 new deleted groups should not show on 'Add to Groups' dropdown "Groups previously deleted still show up in the add dataset process in step 3 'Additional info' http://s031.okserver.org:2375/dataset/new_metadata/ff" 1342948632000000 1344544214000000 2720 enhancement aron.carroll shevski demo phase 2 closed fixed no padding around gravitars on all users page "http://s031.okserver.org:2375/user needs some spacing between the image & user name We could also display some stats here (e.g. number of dataset created, timestamp of last activity)" 1342948111000000 1343219999000000 2719 defect dread new Feeds controller does not catch NotAuthorized exception Results in bad user experience and WebApp errors emailed out. Seen in 1.7.1 1342872863000000 1342872863000000 2718 enhancement toby shevski demo phase 4 new can't add dataset to more than one group "trying to add a dataset to another group means it's no longer part of the first group http://demo.ckan.org/dataset/edit/afterfibre" 1342780550000000 1344544203000000 2717 enhancement shevski toby demo phase 3 closed fixed French breaks the demo header "when language is french a) the menu overlaps the logo b) much of the logo becomes unclickable @shevski a) seems like you b) is aron" 1342780487000000 1344359846000000 2716 enhancement toby shevski demo phase 2 closed fixed truncate long resource names http://s031.okserver.org:2375/dataset/hi-people/resource/4558c365-fd7a-4f0e-9f2a-90ad47db6b39 1342714182000000 1342716474000000 2715 enhancement toby shevski demo phase 2 closed fixed inactive sidebar widgets hide trackbacks & subscribe wboxes on dataset pages until we add disqus 1342714073000000 1342716931000000 2714 defect johnmartin shevski demo phase 5 closed fixed XLS preview not working "see http://demo.ckan.org/dataset/vif-2012-population-totals/resource/e7b8401a-c410-4902-9e5a-6dbd78834873 what XLS previews do we support?" 1342706454000000 1352206138000000 2713 enhancement aron.carroll toby demo phase 3 closed fixed button colour not set properly in variables.css "to reproduce run paster color fuchsia -c development.ini then go to http://localhost:5000/dataset/new Add button is blue gradient at the top this should be overridden in variables.less when added send this ticket to me and i'll update the color command to change it" 1342706428000000 1343656865000000 2712 enhancement toby toby demo phase 2 closed fixed delete resource functionality needed we need a delete_resource logic action and enable for resources 1342680517000000 1342690104000000 2711 enhancement johnmartin toby demo phase 5 closed fixed bin/less dies for toby it would be nice if this didn't fall over when the dir is removed maybe a linux only issue? 1342631508000000 1352205968000000 2710 enhancement tobes toby demo phase 3 closed fixed make the api_info.html not look like shit you know the score 1342624385000000 1343318314000000 2709 enhancement icmurray markw new Atom feeds are undocumented There doesn't seem to be any documentation yet for Atom feeds. 1342624310000000 1342626212000000 2708 enhancement kindly toby ckan-v1.9 new limit extra data for package/group show " context['package_limits'] = { 'tags': 5, <- get first 5 'extras': 0, <- get all } only get what you ask for have to be explicit context['group_limits'] = {} only main item start with datasets/groups expand if we like it" 1342622420000000 1342622420000000 2707 enhancement toby shevski demo phase 3 closed fixed Tidy up additional info boxes on dataset and resource pages "This currently looks terrible. Some simple things we should do to improve this. * Localise and captitalise known (non custom) keys into human titles. eg. ""size"", ""created_at"", ""mime_type"". * Apply units to values of known keys where possible eg. ""size in appropiate units"" * Convert dates into a more human friendly format. We can avoid localisation hell by using an ISO format like YYYY/MM/DD hh:mm:ss which is still better than ISO8061 * Move the non user fields to the top of the table. " 1342621471000000 1344504846000000 2706 enhancement aron.carroll shevski demo phase 2 closed fixed hide all prefilled fileds from resource edit form page i.e. mimetype, size, last updated etc 1342621381000000 1342707718000000 2705 enhancement johnmartin shevski demo phase 5 closed fixed add link to edit dataset page from edit review page "e.g. on http://s031.okserver.org:2375/en/dataset/afghanistan-election-data/resource_edit/f6331f99-51f6-44d9-95b9-b20f3b74f360 & ensure consistant with sidebar of edit dataset page" 1342621122000000 1352205954000000 2704 enhancement johnmartin shevski demo phase 5 closed fixed add list of resources to edit dataset page sidebar when editing a dataset (e.g. here: http://s031.okserver.org:2375/en/dataset/edit/afghanistan-election-data) add sidebar list of resources for user to click & browse through taking you to the relevant resource edit pages 1342620986000000 1352205939000000 2703 enhancement toby shevski demo phase 2 closed fixed add new resource to existing dataset with add button on dataset page and in 'data & resource' section when there's no data 1342620885000000 1342687332000000 2702 enhancement shevski shevski demo phase 5 assigned Future Javascript wishlist for demo "tooltip on popular datasets with number of views facets to update automatically creating a dataset without reloading page between steps hover on licences information autocomplete on search terms group filtering social share buttons in lightboxes dataset counts on homepage" 1342620475000000 1344255984000000 2701 enhancement toby shevski demo phase 3 closed fixed add comments to datasets disqus?? 1342620406000000 1343949913000000 2700 enhancement aron.carroll shevski demo phase 3 closed fixed language box lang box improvements: styling, images, submit upon selection 1342620223000000 1344505614000000 2699 enhancement shevski shevski demo phase 5 assigned workflow for associating datasets with groups "needs review & speccing out e.g. datasets created by a user who belongs to a certain publisher (group) get auto added to this group" 1342620176000000 1344507133000000 2698 enhancement toby shevski demo phase 4 assigned markdown preview for description / other fields with markdown support 1342620085000000 1344543252000000 2697 enhancement johnmartin shevski demo phase 5 assigned create dataset validation Includes: missing fields, existing field checks (i.e. whether a name/dataset already exists with that name) during input (i.e. no need to submit form to check) 1342620035000000 1346235925000000 2696 enhancement aron.carroll shevski demo phase 2 closed fixed autocomplete for resource format in create/edit dataset forms 1342619938000000 1343138454000000 2695 enhancement aron.carroll shevski demo phase 2 closed fixed autocomplete for tags in dataset creation / edit form 1342619891000000 1343138240000000 2694 defect toby toby demo phase 2 closed fixed index page 500 error "we need to have proper fix for this - not sure if there is some caching issue this around the group search" 1342605699000000 1342680771000000 2693 enhancement seanh toby ckan-v1.8 closed fixed License is out of date "https://github.com/okfn/ckan/blob/master/LICENSE.txt mentions requires/lucid_conflict.txt which is no longer the case for 1.8 and needs updating not sure where requirements-testing/docs fit in @sean I've assigned this to you as you changed the requirements and my plate is full feel free to pass on to someone else" 1342605447000000 1343148356000000 2692 defect aron.carroll shevski demo phase 2 closed fixed 'add your own data' link in no search results wrong "the ""add your own data"" link in ""Try another search term, browse the datasets below or add your own data."" here http://s031.okserver.org:2375/dataset?q=stuff doesn't take you to add a dataset, just back to the search/datasets page" 1342540803000000 1342617328000000 2691 enhancement toby shevski demo phase 2 closed fixed Tag 404 error " 404 Not Found The resource could not be found. " 1342538490000000 1342604273000000 2690 enhancement aron.carroll shevski demo phase 2 closed fixed long URL misaligns edit button for slug See attachment. Just need to amke sure that there's enough spacing around the edit button and that it lines up so it doesn't look too wierd 1342538301000000 1342542394000000 2689 enhancement aron.carroll shevski demo phase 2 closed fixed clicking on 'save & add another' doesn't act as expected "Clicking on 'save & add another' button here http://s031.okserver.org:2375/dataset/new_resource/yo takes you to step 3 instead of leaving you on step 2 when you haven't added any data. Instead it should show an alert/ message that no data has been added & that you need to link to a file or upload something Also, can upload be option 2 instead of 3?" 1342538126000000 1342617293000000 2688 enhancement ross new Allow ordering of groups in WUI Currently the group_index page just shows the entire list of groups, forcing the ordering to be by name. It would be better if it could be sortable by name (or reversed) or by package_count (or reversed) 1342520875000000 1342520875000000 2687 defect aron.carroll shevski demo phase 2 closed fixed uploading file breaks add dataset process "Once you upload a file, all the buttons on the page stop working. You can't complete & go to next step or save & add another or go to previous Clicking on these just seems to re-load the page http://s031.okserver.org:2375/dataset/new_resource/super" 1342518422000000 1342534855000000 2686 defect shevski ckan-backlog assigned enabling datastore & data API breaks recline "First I noticed that the gold prices dataset preview was not displaying & has data API enabled Secondly I tried enabling datastore for http://datahub.io/dataset/adur_district_spending/resource/281dffa6-ea9b-4446-be41-05dced06591f and after I saved the preview no longer worked. Unticking the datastore & data api checkbox brought it back Is this a known issue?" 1342516011000000 1346663300000000 2685 enhancement toby toby demo phase 2 closed fixed delete buttons should be form buttons stop bots/browsers etc following links and auto deleting stuff 1342510565000000 1342514443000000 2684 enhancement aron.carroll toby demo phase 2 closed fixed .js leaving forms warning "I think it would be nice to have all form pages monitor their forms - excluding search ones - and if a field has changed then warn the user that they have not saved the form data but are leaving the page. This would help with things like changing resources on the add dataset resource form etc." 1342510477000000 1342539637000000 2683 enhancement seanh new Add no-cache header to _tracking API call's response to make sure it doesn't get cached 1342446577000000 1342446577000000 2682 defect seanh seanh ckan-v1.8 closed fixed CKAN's internal tracking counts each view twice, needs unit tests "CKAN's internal tracking seems to count each page view twice, the problem appears to be with the SQL in the update_tracking() method in ckan/lib/cli.py. The internal tracking feature needs some tests, and some of the code could maybe do with some more explanatory comments, e.g. what is the intended difference between count and running_total?" 1342446402000000 1343225636000000 2681 enhancement aron.carroll shevski demo phase 2 closed duplicate autofill on resource format "This is pretty key for standardization. Also would like us to change the grey text to be: e.g. CSV, JSON, [more examples... i have no idea what they key ones are tbh]" 1342440406000000 1343135874000000 2680 enhancement shevski shevski demo phase 3 closed fixed review group deletion "Super admins & owners/creators of groups need a way to delete them Is the auth model in place for all this stuff? May be worth sitting down and going through how this should work Currently can change state from active to deleted - this is not ery user friendly (want a button with a 2 step process maybe?) & I'd like to know who can view this option? Everyone who can edit a group? Who can edit?" 1342436525000000 1344509493000000 2679 enhancement icmurray icmurray ckan-v1.9 new Change default behaviour of TemplateController.view to 404. "The current behaviour of TemplateController.view() (which is the fallback controller should all others fail) is to attempt to render (as a genshi template) the requested file. Although this may be a feature that some instances want. In general, it leads to: - 500s when attempting to access a normal template (eg - http://datahub.io/importer/preview) - A way of inadvertantly serving things you may not want to serve. (Small risk, as it needs to be renderable as a genshi template). Solution: - Change the controller to 404 - Ensure there's a way for existing ckan instances to override that behaviour should they need it." 1342436133000000 1342436133000000 2678 enhancement toby shevski demo phase 2 closed fixed No UI for deleting a related item "Needs to be a way for admins (owners of dataset) to delete related items. I suggest adding a button to the edit page http://s031.okserver.org:2375/dataset/gold-prices/related/edit/d3249863-040a-4f55-a5d8-c86697d0b7b8" 1342436087000000 1342685932000000 2677 enhancement aron.carroll shevski demo phase 2 closed fixed related item links should open in new tab Clicking on the blue buttons or images on related page http://s031.okserver.org:2375/dataset/gold-prices/related should take you to a new tab instead of navigating you away 1342435923000000 1342461576000000 2676 enhancement johnmartin shevski demo phase 5 closed fixed no way to browse through related items on dataset page "Need to add JS (presumably?) to the related app box on dataset page: http://s031.okserver.org:2375/dataset/gold-prices to allow user to scroll through when multiple related items exist " 1342435678000000 1352205920000000 2675 defect aron.carroll shevski demo phase 2 closed fixed editing related item uses 'create' button instead of save "see http://s031.okserver.org:2375/dataset/gold-prices/related/edit/46ba1174-3666-486e-b822-b5b45ffbb703 when editing a record, button at bottom right should change to save instead of create" 1342435576000000 1342461534000000 2674 defect kindly shevski demo phase 5 assigned Data preview not loading on s031 "Not loading for all resources as far as I can tell; e.g. http://s031.okserver.org:2375/dataset/afghanistan-election-data/resource/f6331f99-51f6-44d9-95b9-b20f3b74f360 Fine on demo.ckan.org" 1342435102000000 1344349324000000 2673 enhancement rgrp new simplify set of options for resources Far too many resource options. Lets restrict back to data file and API. Visualizations etc can either get linked in description or in the Related items. 1342300559000000 1342300559000000 2672 enhancement icmurray icmurray ckan-v1.8 closed fixed Session.is_modified should use passive=True "According to sqlalchemy docs [1], when calling Session.is_modified(), the `passive` argument needs to be passed in as True. [1] http://docs.sqlalchemy.org/en/rel_0_7/orm/session.html?highlight=is_modified#sqlalchemy.orm.session.Session.is_modified" 1342185523000000 1343124666000000 2671 enhancement toby toby ckan-v1.9 closed fixed fix allow_partial_update need to be able to delete stuff explicitly 1342183618000000 1345209579000000 2670 defect ross dread ckan-v1.8 closed fixed model.Group.get_children_groups returns deleted groups I believe it should only return active ones. On DGU we see deleted publishers popping up. 1342175117000000 1342440953000000 2669 enhancement aron.carroll toby demo phase 5 closed fixed style [Draft] "I've added [Draft] to partial completed datasets in the package list and read commit 6a8e74d0 templates/snippets/package_list.html templates/package/read.html do you want to style them in some way?" 1342174110000000 1343907572000000 2668 defect ross dread ckan-v1.9 closed fixed Permission for sysadmin to read a deleted publisher "As a sysadmin I should be able to view deleted groups/publishers (publisher profile) but I can't. In addition, there don't seem to be tests for permissions of deleted publishers." 1342171453000000 1345565100000000 2667 enhancement shevski toby demo phase 2 closed fixed edit resource needs form "I thought I'd made this ticket before but can't find it. When we have a fully created dataset we need to be able to edit the resources. template: package/resource_edit.html when you've made a form reassign to me and I'll get it working " 1342170103000000 1343058578000000 2666 enhancement aron.carroll toby closed fixed templates/package/resource_edit.html "There is a new template for editing resources outside of the add dataset logic this is the template it just throws some crap onto the page at the moment - we need to create a form - the form will end up with the usual data/edit stuff but for now you can use the resource to populate the form and I can then change it to use data - I just want to know which fields we'll have templates/package/resource_edit.html when done reassign to me and I'll get it functioning" 1342084373000000 1343220176000000 2665 enhancement aron.carroll toby demo phase 2 closed fixed add dataset stages need to be form buttonable "the stages snippet needs to be inside
    so I can make some links buttons - eg stage 1 -> stage 2 I want to save the dataset not just move to add resource if you can just move it within the form html leaving everything else the same - I can then add buttons and pass back for styling" 1342023971000000 1342088650000000 2664 enhancement toby toby demo phase 2 closed fixed tags with : cause crazy error message on add dataset in demo 1342018503000000 1342632478000000 2663 enhancement toby toby ckan-v1.9 new h.resource_display_name needs love "This function is shit and needs cleaning up and a doc string description is markdown and should be treated properly either we should truncate all or leave it to the templates but work universally url if no name / desc this is in demo-theme branch" 1342017746000000 1342017746000000 2662 defect toby shevski demo phase 2 closed fixed adding colons in tags results in server error on demo "changing a tag from ""country-uk"" to ""country:uk"" and updating gives server error otherwise updating metadata / adding tags seem fine either we should allow colons or form should return a message indicating what characters are allowed" 1342017594000000 1342018898000000 2661 enhancement aron.carroll toby demo phase 2 closed fixed delete dataset/group javascript confirm "in 2375-demo-theme-development templates/package/confirm_delete.html needs to be made to look nice note some writing in black delete button needs nice home on dataset/edit you can add js support add ?confirm=yes to url on dataset button to force delete Please note delete is not yet implemented - but will be in the next few hours" 1342012395000000 1342716070000000 2660 defect shevski shevski demo phase 2 closed fixed server error when updating dataset "same as yesterday: http://demo.ckan.org/dataset/edit/newcastle-city-council-payments-over-500 clicking update/save returns error" 1342010970000000 1342090301000000 2659 defect aron.carroll shevski demo phase 2 closed fixed HTML preview window in demo too small "See http://demo.ckan.org/dataset/example-dataset/resource/d8797e51-b497-46ca-a274-8675533d110b David previously fixed this on some version of demo, seems to have regressed. Just want the window to be longer" 1342010723000000 1342089310000000 2658 enhancement johnmartin aron.carroll demo phase 5 closed invalid On Demo change 'Groups' to 'Publishers' everywhere Can we do this as a localisation? 1342008495000000 1352205894000000 2657 enhancement toby shevski demo phase 2 closed fixed hide history button on group pages until retheme History button in top right of http://demo.ckan.org/group/data-explorer goes to http://demo.ckan.org/group/history/data-explorer and needs hiding 1342007213000000 1342008765000000 2656 defect seanh dread new Feed with few results has bad paging link, causing exception "This page http://thedatahub.org/feeds/custom.atom?q=wombat has 0 results and contains a link to http://thedatahub.org/feeds/custom.atom?q=wombat&page=0 which the page=0 causes this exception: {{{ ckan.lib.search.common.SearchError'>: SOLR returned an error running query Error: ""'start' parameter cannot be negative"" }}}" 1342001112000000 1342001112000000 2655 defect toby shevski closed fixed updating datasets loses data Editing and saving a resource wipes the data from the dataset. Happened with http://demo.ckan.org/dataset/my-tes I clicked on edit, changed a tag, clicked update and the data was gone! 1341999482000000 1342001885000000 2654 enhancement ross ckan 2.0 assigned UI support for ordering groups on group_read page "The group_index page has no support in WUI for ordering the groups displayed. Should allow sorting by name Add support for this for datahub now, and discuss for new 1.9 UI" 1341943891000000 1346662156000000 2653 enhancement toby aron.carroll demo phase 2 closed fixed Requesting file upload authentication fails on demo "Try: http://localhost:5000/api/storage/auth/form/photo-of-a-duck Gets: {{{ File '', line 2 in auth_form File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/lib/jsonp.py', line 26 in jsonpify data = func(*args, **kwargs) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/storage.py', line 407 in auth_form authorize(method, bucket, label, c.userobj, self.ofs) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/storage.py', line 200 in ofs StorageAPIController._ofs_impl = get_ofs() File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/storage.py', line 71 in get_ofs storage_backend = config['ofs.impl'] File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/paste/registry.py', line 146 in __getitem__ return self._current_obj()[key] KeyError: 'ofs.impl' }}}" 1341938467000000 1342005167000000 2652 enhancement toby toby demo phase 3 closed fixed get qa working with the demo 1341937315000000 1345106904000000 2651 enhancement icmurray ross ckan-v1.8 closed fixed Check support for TSV which doesn't appear to work well. "TSV support doesn't seem to work very well, may be the mimetype ( text/tab-separated-values ) See http://thedatahub.org/dataset/wikipedia-e3-timestamp-position-modification/resource/d883ab44-07f4-4992-800a-3e4bf5d53a96 " 1341923318000000 1343209784000000 2650 enhancement ross ross ckan-v1.8 closed fixed Description on resources not rendered as markdown "When a resource doesn't have a description, it is rendered as markdown from the description of the dataset. If the resource does have a description it isn't rendered as markdown .. See http://thedatahub.org/dataset/wikipedia-e3-timestamp-position-modification/resource/d883ab44-07f4-4992-800a-3e4bf5d53a96" 1341923137000000 1341943716000000 2649 enhancement ross ross ckan-v1.8 closed fixed Description on resources not rendered as markdown "When a resource doesn't have a description, it is rendered as markdown from the description of the dataset. If the resource does have a description it isn't rendered as markdown .. See http://thedatahub.org/dataset/wikipedia-e3-timestamp-position-modification/resource/d883ab44-07f4-4992-800a-3e4bf5d53a96" 1341923135000000 1342084280000000 2648 enhancement shevski aron.carroll demo phase 2 closed fixed Add file upload to the demo site 1341921081000000 1342714659000000 2647 enhancement aron.carroll toby demo phase 5 closed fixed api bullshit button make it as a snippet calling thing like aron would love 1341920530000000 1343229185000000 2646 enhancement toby toby demo phase 2 closed fixed delete dataset make it so 1341920466000000 1342014170000000 2645 enhancement johnglover johnglover ckan-ecportal closed fixed Update server setup to use local files "Server setup scripts need to have two distinct steps: 1) Download all files that aren't in RHEL repositories, create RPMs where necessary (python virtualenv). 2) Install from local files." 1341916281000000 1341996302000000 2644 enhancement shevski toby demo phase 5 assigned user dashboard for demo theme "we now have a user dashboard that needs theming not sure if we need sam to look at it http://localhost:5000/user/dashboard" 1341910821000000 1344255836000000 2643 enhancement aron.carroll aron.carroll demo phase 2 closed fixed Demo homepage redesign "Discussion: https://okfn.basecamphq.com/projects/9558659-demo-ckan-front-end/posts/61696765/comments" 1341848685000000 1342617247000000 2642 enhancement shevski amercader demo phase 3 closed fixed Adapt harvest frontend to new theme 1341846196000000 1345113645000000 2641 enhancement johnmartin amercader demo phase 5 assigned Adapt spatial widgets to new theme Dataset extent map and spatial filter need to adapted to the new theme, as they are not showing up now 1341846147000000 1352658854000000 2640 enhancement amercader amercader demo phase 2 closed fixed Update recline on the demo site Depends on #2639 1341845911000000 1342112730000000 2639 enhancement amercader amercader ckan-v1.8 closed fixed Update recline version for 1.8 release New recline version has significant improvements like the SlickGrid based grid view, it'd be good to have it on 1.8. 1341845809000000 1350296205000000 2638 enhancement toby toby ckan-v1.8 closed fixed add a get from request param helper function 1341844597000000 1342112772000000 2637 enhancement aron.carroll aron.carroll demo phase 2 closed fixed Submit search form when user changes sort order 1341835218000000 1342617226000000 2636 enhancement aron.carroll aron.carroll demo phase 2 closed duplicate Style activity stream in user profile 1341835166000000 1342090614000000 2635 enhancement dread new Non-destructive SOLR reindex "You can't run the search-index reindex on a live server because it will give us bad results for 2 to 3 hours while it runs. Can there be an option that doesn't delete the entire index at the start? Instead it could just delete any items that don't exist any more, then delete them and regenerate them one by one. So the total number of datasets doesn't change much." 1341829394000000 1341829394000000 2634 enhancement toby toby ckan-v1.8 closed fixed change log - helper function limited in 1.8 make sure documented 1341828248000000 1342085656000000 2633 enhancement toby toby demo phase 2 closed fixed for dev always look for templates so we find newly created templates 1341828058000000 1341830278000000 2632 enhancement toby toby ckan-v1.9 closed fixed check allowed helpers exist in lib helpers make sure the allowed function lists functions exist or throw an error. 1341827811000000 1342087027000000 2631 enhancement johnmartin aron.carroll demo phase 5 closed fixed Style activity stream in user profile 1341826342000000 1352205778000000 2630 enhancement seanh seanh ckan-v1.8 closed duplicate UPdate docs after IDatasetForm schema change 1341586625000000 1343392411000000 2629 enhancement seanh seanh ckan-v1.9 closed duplicate Move ckanext-examplevocabs into master and document 1341586555000000 1343392596000000 2628 enhancement seanh seanh closed duplicate Add docs for upgrading a source install 1341585472000000 1343392717000000 2627 defect seanh seanh ckan-v1.8 closed fixed IDatasetForm.form_to_db_schema() is not called IDatasetForm's form_to_db_schema() method is not getting called by ckan 1341576508000000 1343125213000000 2626 enhancement aron.carroll toby closed invalid ff render issue in edit dataset "http://localhost:5000/dataset/edit/2010-nigeria-budget the edit url button appears too high up" 1341499419000000 1341499834000000 2625 enhancement seanh ckan-v1.9 new Add i18n strings from non-core but supported extensions to ckan.pot file Have to decide which non-core extensions are going to be supported first. 1341236903000000 1341236903000000 2624 enhancement ross seanh ckan-v1.8 closed fixed Organizations breaks dataset tag editing "Enable the organizations and organizations_dataset plugins, login to ckan, create a group, create a dataset and add it to the group. Edit the dataset, add some tags to it. The new tags are not saved when you submit. Disable the organizations and organizations_dataset plugins and tag editing works again." 1341226411000000 1341831716000000 2623 enhancement ross seanh closed invalid Organization join/authorization buttons weirdness "Enable the organizations and organizations_dataset plugins. Start CKAN. Login and create a new organization. Logout. Login with a different account that is a sysadmin. Go to the organization you just created with the other account. There are Edit and Join buttons. Click on the Edit button, and the Join button changes to Authorization. It should probably be an Authorization button right from the start if you are a sysadmin." 1341220902000000 1341232433000000 2622 defect seanh new Login fails in Opera 12 "Try to login to CKAN using Opera 12, get ""Login failed. Bad username or password. (Or if using OpenID, it hasn't been associated with a user account.)""" 1340902602000000 1340902602000000 2621 refactor icmurray icmurray ckan-v1.9 new Remove the deprecated 'fields' parameter from tag_search and tag_autocomplete "This was deprecated in 1.8 as it wasn't accessible via GET requests due to being a dict. See #2439 In a future release of CKAN (probably 1.9) it can be removed. Internal uses of it were removed in #2439, but there are tests that still use it." 1340900569000000 1340900569000000 2620 enhancement toby aron.carroll demo phase 2 closed fixed Pass a related item into the dataset tempate "See the related sidebar box http://s031.okserver.org:2375/dataset/adur_district_spending If a package has related items the first (or a random) related item should be passed into the snippet." 1340897809000000 1342074737000000 2619 enhancement seanh seanh ckan-v1.9 assigned Omit private datasets from public activity streams "Activities about private datasets should not appear in public activity streams. I don't think you want to actually purge the activities from the db, because you might still want them to appear in private activity streams. I do think that when a dataset goes private all its past activity should go private, because I imagine that users are going to want to hide everything about the dataset and not have any past activities 'leaking out' I don't think you want to consider whether the dataset was private when the activity happened, rather if a dataset is private now then all its past activities are private (and the simplest thing would be to say that if a dataset is public now then all its past activities become public as well, but is that a privacy concern?) The easiest way to implement this is going to be by modifying the *_activity_list() action functions in get.py, after they pull their activity lists out of the db they should pass them through a function that filters out stuff about private datasets. An activity about a private dataset is one whose object_type is 'dataset' and whose object_id matches the id of a private dataset. You should also check the object_type and object_id of all of the activity object's activity detail objects, if any of those match a private dataset then mark the whole activity as private. Currently all activity streams are public so should have all private datasets filtered out from them, except for the dashboard activity stream which is private to the individual user. In this case private datasets that the user has permission to see should not be filtered." 1340884140000000 1351531137000000 2618 enhancement toby toby demo phase 4 closed fixed allow nested js resources 1340878063000000 1347901864000000 2617 enhancement aron.carroll aron.carroll demo phase 2 closed fixed Move data preview into demo 1340875192000000 1342088744000000 2616 enhancement johnmartin aron.carroll demo phase 5 closed invalid Improve display of split stages in demo Currently stages of the same colour blur together, these could do with a nice divider. 1340875108000000 1352206282000000 2615 enhancement seanh seanh ckan-v1.8 closed fixed Add activity stream activity when a user starts to follow something 1340874249000000 1341235002000000 2614 enhancement aron.carroll toby demo phase 3 closed fixed improve the documentation around less/node "needs to move to a better home better ubuntu install instructions plus test they work `apt-get install nodejs` integrate with paster" 1340815928000000 1343685572000000 2613 enhancement aron.carroll shevski demo phase 2 closed wontfix Javascript functionality " 1. file uploads on dataset creation 2. create dataset validation 3. create dataset slugs 4. Add dataset to group process: pop-up allowing you to quickly search for a pick a dataset to add to group. Must check you have necc auth over dataset to be added validation of user name 5. Language box 6. toggling activity stream 7. Search sorting 8. autocomplete on tags 9. add and remove custom fields on forms 10. the rest: tooltip on popular datasets with number of views facets to update automatically creating a dataset without reloading page between steps hover on licences information autocomplete on search terms group filtering add comment to datasets social share buttons in lightboxes dataset counts on homepage?" 1340814271000000 1342620543000000 2612 enhancement shevski shevski demo phase 2 closed fixed Hide options based on auth For example, hide the 'edit' button on user profiles http://s031.okserver.org:2375/user/ross2#activity unless I'm logged in as Ross 1340812165000000 1342714613000000 2611 enhancement aron.carroll shevski demo phase 1 closed fixed Text / link changes "In the footer: Change 'Powered by CityData' to Powered by DataSuite (with link to ckan.org/datasuite) Links in left hand side of footer should change to a link to ckan.org, link to OKFN, link to ckan.org/datasuite/about and link to Pricing Page (on ckan.org .. will be /datasuite/solutions) In create dataset form, prefilled tag examples should include one example with a space, e.g. ""mental health"" Change 'Groups' to 'Publishers' everywhere Homepage copy/images (Ira to supply?)" 1340810740000000 1342008509000000 2610 enhancement aron.carroll shevski demo phase 1 closed duplicate Text / link changes "In the footer: Change 'Powered by CityData' to Powered by DataSuite (with link to ckan.org/datasuite) Links in left hand side of footer should change to a link to ckan.org, link to OKFN, link to ckan.org/datasuite/about and link to Pricing Page (on ckan.org .. will be /datasuite/solutions) In create dataset form, prefilled tag examples should include one example with a space, e.g. ""mental health""" 1340810738000000 1341501424000000 2609 enhancement toby aron.carroll opendatasuite 1 closed fixed Demo theme errors when creating a dataset without a resource "1. Complete step one of add dataset 2. Click next without adding any resource data. Page errors. {{{ URL: http://localhost:5000/dataset/new_resource/asdasd File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/weberror/evalexception.py', line 431 in respond app_iter = self.application(environ, detect_start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__ resp = self.call_func(req, *args, **self.kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, *args, **kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/publisher.py', line 234 in __call__ return request.get_response(self.app) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__ resp = self.call_func(req, *args, **self.kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, *args, **kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/injector.py', line 52 in __call__ response = request.get_response(self.app) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 73 in __call__ return self.app(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 152 in __call__ return self.wrap_app(environ, session_start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/routes/middleware.py', line 130 in __call__ response = self.app(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 125 in __call__ response = self.dispatch(controller, environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 324 in dispatch return controller(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/lib/base.py', line 258 in __call__ res = WSGIController.__call__(self, environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 221 in __call__ response = self._dispatch_call() File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call response = self._inspect_call(func) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 107 in _inspect_call result = self._perform_call(func, args) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 60 in _perform_call return func(**args) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 495 in new_resource get_action('resource_create')(context, data) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/logic/action/create.py', line 240 in resource_create raise ValidationError(errors, _error_summary(errors)) ValidationError: {u'URL': u'Missing value'} }}} http://localhost:5000/dataset/new_resource/asdasd" 1340810211000000 1340900271000000 2608 refactor seanh ckan-v1.8 closed wontfix Uploading a file to a resource hangs I'm not seeing any javascript or python error, the upload just hangs. 1340806788000000 1343125400000000 2607 defect seanh ckan-backlog assigned 'Upload a file' appears on resource form when storage not enabled "if the user tries to upload a file they will get ""Failed to get credentials for storage upload. Upload cannot proceed"" Maybe add a test for it this time, this bug has appeared and reappeared before" 1340803808000000 1346663383000000 2606 enhancement toby toby demo phase 1 closed fixed make fanstatic use full path ckan/main not main 1340795985000000 1340799139000000 2605 enhancement ross ross ckan-v1.8 closed fixed Problem with user.get_groups "From DR at DGU Basically get_groups() appears to cache its results, but this falls down when subsequent calls are in a different session. We get this when saving a dataset. get_groups() first gets called in the controller when it is trying to work out what permissions the user has. It later gets called, and by this time c.userobj is detached, so get_groups() fails. I'm working around this by refreshing c.userobj (from c.user) before calling get_groups(), but I wonder if the get_groups caching could detect the detached session and bypass the cache in this case? diff at https://gist.github.com/3003117" 1340793006000000 1343127369000000 2604 enhancement amercader amercader ckan-v1.8 closed fixed Add Requests as requirement for tests "Requests (http://python-requests.org) is really useful to deal with http requests and saves a lot of time. I propose we include it as a requirement for the tests for the time being, and even for core if necessary at a later stage." 1340790229000000 1340968458000000 2603 refactor icmurray icmurray ckan-v1.9 new Remove deprecated 'fields' parameter from resource_search The fields parameter of resource_search was deprecated when fixing #2438. It can be removed in release 1.9, and the action tidied up as a result. 1340730601000000 1340730601000000 2602 defect seanh closed fixed Users can set a dataset's organization to None, and then they cannot edit it With the organizations and organizations_dataset plugins enabled login and create a new dataset, adding it to a group that you are a member of. Edit the dataset and set the group to none. Now you can no longer edit your own dataset. (You can also specify None for the organization when first creating the dataset, same problem.) 1340722892000000 1340805904000000 2601 defect ross seanh closed fixed 500 Server Error when editing datasets with organizations plugins enabled "Add the organizations and organizations_dataset plugins to ini file, run ckan, login, create an organization, create a dataset and put in organization, edit the dataset and set organization to none, try to edit the dataset again (you must be sysadmin to do this) and get a 500: {{{ Error - : [] has no member named ""get"" URL: http://127.0.0.1:5000/dataset/edit/fooset File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/weberror/errormiddleware.py', line 162 in __call__ app_iter = self.application(environ, sr_checker) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/beaker/middleware.py', line 73 in __call__ return self.app(environ, start_response) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/beaker/middleware.py', line 155 in __call__ return self.wrap_app(environ, session_start_response) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/routes/middleware.py', line 130 in __call__ response = self.app(environ, start_response) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 125 in __call__ response = self.dispatch(controller, environ, start_response) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/wsgiapp.py', line 324 in dispatch return controller(environ, start_response) File '/home/seanh/Projects/ckan/ckan/ckan/lib/base.py', line 221 in __call__ res = WSGIController.__call__(self, environ, start_response) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 221 in __call__ response = self._dispatch_call() File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call response = self._inspect_call(func) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 107 in _inspect_call result = self._perform_call(func, args) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/controllers/core.py', line 60 in _perform_call return func(**args) File '/home/seanh/Projects/ckan/ckan/ckan/controllers/package.py', line 499 in edit extra_vars=vars) File '/home/seanh/Projects/ckan/ckan/ckan/lib/base.py', line 148 in render return cached_template(template_name, render_template, loader_class=loader_class) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/pylons/templating.py', line 249 in cached_template return render_func() File '/home/seanh/Projects/ckan/ckan/ckan/lib/base.py', line 101 in render_template return literal(stream.render(method=method, encoding=None, strip_whitespace=True)) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/core.py', line 183 in render return encode(generator, method=method, encoding=encoding, out=out) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 57 in encode return _encode(''.join(list(iterator))) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 339 in __call__ for kind, data, pos in stream: File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 670 in __call__ for kind, data, pos in stream: File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 771 in __call__ for kind, data, pos in chain(stream, [(None, None, None)]): File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/output.py', line 586 in __call__ for ev in stream: File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/core.py', line 288 in _ensure for event in stream: File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/base.py', line 605 in _include for event in stream: File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/markup.py', line 327 in _match for event in stream: File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/base.py', line 545 in _flatten for kind, data, pos in stream: File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/directives.py', line 169 in _generate attrs = _eval_expr(self.expr, ctxt, vars) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/base.py', line 277 in _eval_expr retval = expr.evaluate(ctxt) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/eval.py', line 178 in evaluate return eval(self.code, _globals, {'__data__': data}) File '/home/seanh/Projects/ckan/ckan/ckanext/organizations/templates/organization_package_form.html', line 110 in File '/home/seanh/Projects/ckan/ckan/ckan/config/environment.py', line 248 in genshi_lookup_attr val = cls.undefined(key, owner=obj) File '/home/seanh/.virtualenvs/ckan/local/lib/python2.7/site-packages/genshi/template/eval.py', line 410 in undefined raise UndefinedError(key, owner=owner) UndefinedError: [] has no member named ""get"" }}}" 1340722754000000 1341291379000000 2600 defect seanh seanh ckan-v1.8 closed fixed "Replace broken ""Login to Add an Organization"" button" If you're not logged in and you click this button, it takes you to the add group page not the login page. Anyway, the default behaviour everywhere else in CKAN is to hide buttons that you don't have permission to use (e.g. add dataset, edit dataset, etc.) 1340721718000000 1340791910000000 2599 enhancement johnmartin aron.carroll demo phase 4 closed fixed Test in IE can we promote this to phase 3? 1340717662000000 1346756230000000 2598 enhancement aron.carroll toby demo phase 1 closed fixed stages css broken in FF I see X where none should be 1340708102000000 1341218567000000 2597 enhancement toby aron.carroll demo phase 1 closed fixed Demo add dataset throws error if tags are empty " 1. Go to new dataset 2. Add a slug 3. Click next Get error. {{{ URL: http://localhost:5000/dataset/new File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/weberror/evalexception.py', line 431 in respond app_iter = self.application(environ, detect_start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__ resp = self.call_func(req, *args, **self.kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, *args, **kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/publisher.py', line 234 in __call__ return request.get_response(self.app) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 147 in __call__ resp = self.call_func(req, *args, **self.kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/dec.py', line 208 in call_func return self.func(req, *args, **kwargs) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/fanstatic/injector.py', line 52 in __call__ response = request.get_response(self.app) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1053 in get_response application, catch_exc_info=False) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/webob/request.py', line 1022 in call_application app_iter = application(self.environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 73 in __call__ return self.app(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/beaker/middleware.py', line 152 in __call__ return self.wrap_app(environ, session_start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/routes/middleware.py', line 130 in __call__ response = self.app(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 125 in __call__ response = self.dispatch(controller, environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/wsgiapp.py', line 324 in dispatch return controller(environ, start_response) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/lib/base.py', line 258 in __call__ res = WSGIController.__call__(self, environ, start_response) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 221 in __call__ response = self._dispatch_call() File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call response = self._inspect_call(func) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 107 in _inspect_call result = self._perform_call(func, args) File '/Users/Aron/.virtualenvs/ckan/lib/python2.7/site-packages/pylons/controllers/core.py', line 60 in _perform_call return func(**args) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 422 in new return self._save_new(context) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 703 in _save_new return self.new(data_dict, errors, error_summary) File '/Users/Aron/.virtualenvs/ckan/src/ckan/ckan/controllers/package.py', line 430 in new data['tag_string'] = ', '.join(h.dict_list_reduce(c.pkg_dict['tags'], 'name')) TypeError: string indices must be integers, not str }}}" 1340642399000000 1340644591000000 2596 enhancement toby aron.carroll opendatasuite 1 closed fixed Create demo extension Should have all supported extensions enabled, those that don't work should be disabled and ticketed. Also needs a customised homepage. 1340642315000000 1345209485000000 2595 enhancement toby aron.carroll demo phase 2 closed fixed Demo add dataset needs to remember which stages have been visited "For example. 1. Start on stage one 2. Add dataset click next 3. Click previous Expect Stage 1 to be ""active"", stage two to be ""complete"" 1. Start on stage one 2. Add dataset click next 3. Click next 4. Click previous Expect Stage 2 to be ""active"", stage one and three to be ""complete"" 1. Start on stage one 2. Add dataset click next 3. Click next 4. Click previous 5. Click previous Expect Stage 1 to be ""active"", stage two and three to be ""complete""" 1340642246000000 1342086346000000 2594 enhancement johnglover johnglover ckan-ecportal closed fixed Add EU27 to EC ODP geographical coverage field EU27 option seems to have been removed at some point, needs to be added back to geographical coverage vocabulary and tested. 1340638576000000 1340716640000000 2593 enhancement johnglover johnglover ckan-ecportal closed fixed Setup nginx caching for EC ODP Add caching config to ecportal-server-setup repository. 1340638428000000 1340721249000000 2592 enhancement seanh seanh ckan-v1.8 closed fixed Update and simplify source install instructions "Make the same instructions work for Ubuntu Lucid and Precise and make them simpler Also see #1471" 1340633697000000 1341234947000000 2591 enhancement toby toby ckan-v1.8 closed fixed postgres unicode problems postgres v9.1.4 "sqlalchemy fails on postgres 9.1.4 when unicode is returned see http://docs.sqlalchemy.org/en/rel_0_7/dialects/postgresql.html " 1340627776000000 1340813161000000 2590 enhancement shevski ross ckan-backlog assigned Publisher dashboard "Need proper user stories but ... Publisher admins/editors may need a more useful group read page showing things like: * The current search * Recent activity * People within the group * Followers * Others? " 1340618617000000 1346663416000000 2589 enhancement toby toby demo phase 2 closed fixed users can view draft datasets need to add some logic for this 1340373194000000 1342172694000000 2588 enhancement toby toby demo phase 1 closed fixed search index for new package when package is added it does not seem to get indexed 1340373145000000 1340817441000000 2587 enhancement shevski toby demo phase 1 closed fixed author/maintainer not shown if email missing is this the expected behaviour seems crap to me, should we just see the author but just no link 1340369450000000 1340376975000000 2586 enhancement toby toby demo phase 1 closed fixed edit dataset - tags broken tags is list not string 1340361630000000 1340380561000000 2585 enhancement seanh ckan-v1.9 new Escape solr control characters in search queries, add advanced search screen "Suggestion from David Read: We noticed that some search queries produce unexpected search results in CKAN, due to them containing special characters. For example if you were to search for ""Spend over £25,000 - NHS Leeds"" then it would not come up with the dataset with that exact name. It was excluding datasets with the word ""NHS"" due to the dash/minus sign. It works fine if you escape the minus sign: ""Spend over £25,000 \- NHS Leeds"". So in data.gov.uk I've added escaping of such control characters in our plugin and this useful routine: http://fragmentsofcode.wordpress.com/2010/03/10/escape-special-characters-for-solrlucene-query/ Perhaps you would consider providing this in CKAN core in future? I think there is an occasional case when power users would want to use the special characters - brackets, +, -, boolean operators etc. but maybe these could be reserved for an 'advanced search' screen?" 1340360773000000 1340625078000000 2584 enhancement aron.carroll toby demo phase 1 closed fixed edit profile needs new theme " http://localhost:5000/user/edit/" 1340359925000000 1340620576000000 2583 enhancement toby toby demo phase 5 new make sure that we implement authentication where needed in development many auth checks may have been lost we need to check they are still working etc 1340359478000000 1342086274000000 2582 enhancement rgrp ckan-v1.9 new Do not hide notes / readme on dataset pages "Current we hide most of readme and then let users reveal it. Stop doing this and if necessary add a quick link down to resources section. (Maybe also rename resources to Data and Resources ...?) Aside: believe I have mentioned this somewhere a month + ago but could not find the ticket." 1340312340000000 1340625009000000 2581 enhancement toby toby demo phase 2 closed fixed allow state = 'draft' pass some stuff through the context 1340287298000000 1342074635000000 2580 enhancement kindly toby demo phase 1 closed fixed create resource validation "david I've got the add resource working but it is happy to add empty resources which implies that it isn't doing validation correctly. I'm not sure what the validation rules are so hard to test this - I'm coming through as an api call let me know if i can help" 1340285208000000 1342092353000000 2579 enhancement toby toby ckan-v1.9 new move sort_by functions into lib.helpers "make these more available but keep existing functionality so not to break any users remove_field() drill_down_url() etc" 1340281798000000 1340899337000000 2578 defect toby toby demo phase 4 closed fixed demo theme breaks the tests "The demo branch fails huge numbers of tests. many are going to be template based - these need to be sorted - ideally we need to get them to work with legacy/new templates but see how we go on that one anyhow this is not a priority whilst we are branched but needs resolving before we merge into master" 1340276924000000 1347901892000000 2577 enhancement ross ross ckan-v1.9 closed fixed Dataproxy raises 500 when it can't get CSV "When given a url parameter for a file it cannot fetch, the app raises a 500 instead of something useful. Better error reporting in the JSON would be useful" 1340207124000000 1346669735000000 2576 enhancement aron.carroll toby demo phase 1 closed fixed resource side box in dataset resource view broken "assuming you have datahub data http://localhost:5000/en/dataset/2008_facility_ghg_emissions_by_province_territory/resource/28650645-8878-4826-9405-f20b9dfa4c12 also the breadcrumb becomes overly long too " 1340199857000000 1340617688000000 2575 enhancement toby amercader ckan-v1.9 closed fixed Licenses have i18n issues (was Inconsistent language on license dropdown) "License titles at least for some of them need translating. This wants to be done in a more efficient and simple manner than currently exists. the original problem was: The license dropdown on the dataset form shows titles in Swedish by default. Changing the language seems to default to English, but after refreshing the page a couple of times it shows a wrong language again. Thanks to pudo for reporting." 1340125845000000 1343216544000000 2574 enhancement kindly toby demo phase 1 closed fixed look at package states "we want to be able to add new datasets but not have them indexed or seem by people is the vdm.state the place to do this" 1340115771000000 1342092416000000 2573 enhancement icmurray ckan-future new package_search does not allow solr's per-field facet parameters "Solr allows its facet parameters to be specified on a per-field basis, eg. `facet.limit` applies to ''all'' facet fields, but solr allows it to be overriden for a specific field, eg. `facet.tags.limit`. We don't support this at the moment because we have a whitelist of valid solr query parameters that we accept. See `ckan.lib.search.query.VALID_SOLR_PARAMETERS`." 1340112439000000 1340633101000000 2572 enhancement toby toby ckan-v1.9 new clean up stats plugin attempt to disengage the stats plugin from core as much as possible 1340105054000000 1340899524000000 2571 enhancement kindly toby demo phase 1 closed fixed implement logic.action.create.resource_create() "This function is incomplete If you want I can do this but I need guidance over how to do this properly. ie would I go through lib.dictization.model_save.package_resource_list_save() which looks wrong to me as I'd need the package. resource_dict_save() seems better but to be honest the total lack of docstrings etc makes me feel ill." 1340102259000000 1340369783000000 2570 enhancement aron.carroll shevski ckan-sprint-2012-06-25 closed fixed add 'back to dataset' button to resource pages Suggest making this consistent with http://s031.okserver.org:2375/dataset/adur_district_spending/related by adding same button in top right of resource pages 1340039680000000 1340107841000000 2569 enhancement toby shevski demo phase 2 closed fixed add other resources to sidebar of resource pages Allow user to navigate directly from one resource page to another via resource box in sidebar 1340039608000000 1342085235000000 2568 enhancement aron.carroll shevski ckan-sprint-2012-06-25 closed fixed Crop/shorten titles in breadcrumb headings So that they don't interfere with buttons such as here: http://s031.okserver.org:2375/en/dataset/afterfibre/resource/5d19f9fa-c5a4-426c-84de-c624d6e8c3b3 1340039534000000 1340108132000000 2567 enhancement aron.carroll shevski demo phase 1 closed fixed remove resource type field from add data step No real need/use for this for demo/ODS yet 1340039447000000 1340120447000000 2566 enhancement toby shevski demo phase 1 closed fixed add back buttons to create dataset process 1340039366000000 1340373308000000 2565 enhancement aron.carroll shevski demo phase 1 closed fixed Social links to open in new tab/JS lightbox Share this (twitter/fb) links open in new tab (no JS) or nice lightbox of some description in demo 1340039322000000 1340116053000000 2564 enhancement aron.carroll shevski demo phase 1 closed fixed Updates to additional info fields on datasets "E.g. http://s031.okserver.org:2375/en/dataset/adur_district_spending/resource/04127ad5-77e5-4a08-9f40-12d3c383e460 When there are no maintainer/contact details or extra fields we should hide the additional info box completely. Otherwise hide the last updated and licence fields which are already displayed in sidebar. Update sidebar to provide context - so 'CSV' -> 'CSV format' + 'unknown' -> 'Last updated: unknown' " 1340038534000000 1340118952000000 2563 enhancement aron.carroll aron.carroll demo phase 1 closed fixed Add font based icons to the demo theme "Allowing them to be displayed in many sizes, colours and resolutions. http://www.zurb.com/playground/foundation-icons" 1340035831000000 1341501320000000 2562 enhancement johnmartin aron.carroll demo phase 5 closed invalid Demo theme tag improvements "Tags should be implemented in two sections. * Custom predefined tags using vocabularies * Provide suggestions, auto completion then fallback to free text" 1340035714000000 1352206599000000 2561 enhancement aron.carroll aron.carroll demo phase 1 closed fixed Demo theme edit dataset is missing functionality "* Add tags * Add groups * JavaScript for custom fields" 1340035457000000 1341497328000000 2560 enhancement toby aron.carroll demo phase 2 closed fixed Demo theme add metadata is missing functionality " * Hide remove button when adding new field * Finish takes you to the newly created dataset" 1340035384000000 1342084988000000 2559 enhancement toby aron.carroll demo phase 2 closed fixed Demo theme add resource has missing functionality " * Show resources in the sidebar * Allow people to go backward and forward * Have a back button on each form * Lose resource type * Add extras as optional metadata * Remove save * Add back/Previous * Add Another" 1340035336000000 1342084940000000 2558 enhancement aron.carroll aron.carroll demo phase 1 closed fixed Demo site add dataset has missing functionality " * Needs tags * Needs groups * Needs slug * Licenses links to something * Needs tooltips (Ira to write some tooltips)" 1340035280000000 1340615257000000 2557 enhancement aron.carroll aron.carroll demo phase 1 closed fixed Demo issues on the search dataset page " * Crosses have disappeared * Formats should stretch across the page" 1340035222000000 1340185609000000 2556 enhancement aron.carroll aron.carroll demo phase 1 closed fixed Update module styles on the demo theme "They've become inconsistent as the design has changed. * Remove white stripe * Make text sizes consistent * Make white space around text boxes consistent" 1340035028000000 1340212090000000 2555 enhancement toby aron.carroll demo phase 5 new Demo site needs a breadcrumb helper Something to make building breadcrumbs a bit nicer 1340026983000000 1342618384000000 2554 enhancement ross ckan-backlog assigned Research Virtuoso cartridges "Look into writing a cartridge for importing CKAN data into a Virtuoso quadstore http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSponger#How Does It Work?" 1340026645000000 1346670433000000 2553 enhancement toby toby demo phase 2 closed fixed Create a get snippet api action "just passes template name ?template_name=..." 1340020613000000 1342090078000000 2552 enhancement ross ckan-future assigned Controlling access to features "== Requirements == To provide a freemium service it is necessary to be able to provide differing __levels__ of functionality based on the '''type''' of user (see #2550). These levels can be specific to the data hub but may require overriding functionality from core to provide these checks. Initial implementation should focus on limiting access to datastore disk space. == Interface == These changes are currently only for the data hub and should be kept as much as possible within the data hub extension. == User Stories == * As a system component I want to find out if the current user has access to a feature (i.e. storage) and if so to what extent (xMb, xGb or unlimited). * As a system administrator I don't expect to need to manage the levels of users '''or''' the features that this applies to. == Tasks == [ ] Clarification of requirements/analysis [ ] Tests [ ] Code [ ] Model [ ] API [ ] UI [ ] Documentation == Estimates == " 1340018770000000 1346669544000000 2551 enhancement johnglover ross datahub-oct closed fixed Feature metrics " == Requirements == Would be useful if we could extend the Google Analytics extension to push track events to GA so that we can determine how the system is being used, and where we can optimise the workflow. Assuming it isn't configured to be off, track events should be added to some key action buttons so that the information on what users are doing is logged for analysis. == Interface == This could possibly just be a list of JS calls to $('x').click(_gaq.push('track'...)) == User Stories == * As a developer I would like to know which components of the system are used the most so I can streamline the processes. * As a support developer I would like to know which parts add complexity to the system for minimal gain and could possibly be removed, de-prioritised. For which metrics, as many of the following as possible that are achievable without changing the templates. I think for now it is enough to just record counts of these pages/actions. * Any group link on homepage * Clicking on username (to go to profile) * In user profile, clicking on Edit Profile * Clicking Save Changes on Edit Profile page * Clicking on any dataset link on User Profile page * Any of the group links on /group * Clicking any of the right hand sidebar tags on /group/X * Visiting /group/history/X * Compare Button on /group/history/X * Compare Button on /dataset/history/X * Tags on right hand sidebar of /dataset/X * Download button on any /dataset/X/resource/* page * Data API button on any /dataset/X/resource/* page == Tasks == [ ] Analysis/Clarification [ ] Code/Config changes [ ] Documentation == Estimates == " 1340017689000000 1343042712000000 2550 enhancement icmurray ross datahub-july assigned User types "== Requirements == In the data hub plugin we require the ability to differentiate users between those that have paid for a service, and those that haven't. The distinction isn't boolean as there may be levels of service for paid users, so it may be that we need a 'type' of user where there are various grades of 'paid' which are likely to be strings (specific to the data hub). == Required interface == Once changes have been made to the user schema, for a given user we want to be able to: * determine if they have a paid or a free account, and * get a string name of the type of paid account. Care should be taken to ensure that the 'paid' status of the user cannot be set through the API and only by the datahub plugin. == User Stories == User stories related to the management, setting and changing of a user's payment level, as well as historical information on payments should be done as part of the work that includes actually allowing purchases. For now it is adequate that we can manually control these things through paster commands. Payments types should be linear as I don't believe for this type of service a pick-and-mix modular model would work well. Organizations will inherit the payment level of their owner, so currently there is no requirement for it to affect organizations at all. * As a sysadmin I would like to be able to use a paster command to manually set a user's payment level, or remove it entirely. * As a sysadmin I would like to be able to run a paster command to view a list of users who have a payment plan, grouped by the plan that they have. * As a sysadmin I would like to be able to use the API to change the payment status of a specific user through user_create and user_update. This shouldn't be available to anybody else. * As a user, and only if I have one, I'd like to see my current payment level on my user profile page. == Tasks == [x] Tests [x] Plugin based migration [x] Code [x] Model [x] API [x] Documentation == Estimates == " 1340017590000000 1346669497000000 2549 enhancement ross ross ckan 2.0 closed wontfix Merge organization logic into groups " == Requirements == Merge the organizations plugin into the core groups functionality. Most of this is templating and a small number of changes to the group controller. Investigate the possibility of removing the Membership model and using FKs. == Interface == This is likely to consist of: * Updating the templates in templates/group/ * Configuring whether we want to constrain datasets to a single group (as per organizations) * Implementing the separate user management (add users to group). * Checking the publisher auth to not necessarily rely on group type = 'organization' * Making sure that the changes still work with publisher auth. == User Stories == None == Tasks == [ ] Code [ ] Configuration [ ] Model/Migration [ ] Fix templates [ ] Documentation == Estimates == " 1340017421000000 1350562037000000 2548 enhancement kindly ross datahub-july assigned Object ownership for groups/package " == Requirements == We need to be able to easily determine who the owner of a dataset or group is. Datasets and Groups should have an Owner, who may change over time but is a specific user within the CKAN instance. It should be easy for CKAN components to determine the user and for the initial version we should ignore the can of worms labelled 'ownership transfer'. At this point migration is likely to be the biggest issue, and would suggest that it is acceptable that the last user to edit a dataset be set as the current owner. More tickets should arise as a result of this work where we may be able to optimise some queries to use the new feature. == Interface == None == User Stories == None == Tasks == [ ] Analysis/Clarification [ ] Tests [ ] Migration [ ] Code/Schema changes [ ] Documentation == Estimates == " 1340017331000000 1340706539000000 2547 enhancement shevski ross opendatasuite 2 assigned ODS Initial data sets " == Requirements == The ODS demo site will need data adding, initially as fixtures but it would also be useful if we started evaluating datasets that we can ship with ODS installations (at least in the UK) from places such as DGU and ONS. May wish to create a ticket for making sure the datasets within the system are reset every X hours. Perhaps. == Interface == None == User Stories == * As a new system administrator for an ODS instance, I don't want to have a site devoid of any data. Geographically relevant datasets would be welcomed. * As a bizdev person I would like to be able to demonstrate how ODS works with real datasets. == Tasks == [ ] Identify relevant sources for datasets [ ] Pick datasets [ ] Set them up for import == Estimates == " 1340016906000000 1340705614000000 2546 requirement ross ckan-backlog assigned ODS Managing homepage content " == Requirements == Require the ability for users to control some level of content that is visible on the home page of their ODS installation. This may be through RSS/Atom feeds (see #2234) or another mechanism but should result in admins being able to change blocks of text on their homepage. This should not be configuration, but accessible through WUI. == Interface == None == User Stories == * As a system administrator I want to have control over content displayed on the front page beyond featured/popular items. * As a system administrator I don't want to manage content through having to write an extension. == Tasks == [ ] Analysis == Estimates == " 1340016842000000 1346663437000000 2545 requirement ross ross opendatasuite 1 closed fixed Need to build DataGM site based on ODS " == Requirements == We need to clone the demo ODS site for DataGM as soon as we have a mostly working demo so that the DataGM team can try it out and comment/feedback on functionality. == Interface == None == User Stories == None == Tasks == [ ] Deploy demo DataGM site. == Estimates == " 1340016640000000 1344337973000000 2544 enhancement icmurray ckan-future closed duplicate facet.sort is not available in the package_search action "Not all solr facet parameters are available through the pcakage_search action. In particular, `facet.sort` has been asked for; but this ticket should check to see if there are other parameters that would be easy to add too. See: http://wiki.apache.org/solr/SimpleFacetParameters#facet.sort" 1340013421000000 1340015580000000 2543 enhancement icmurray ckan-v1.9 new facet.sort is not available in the package_search action "Not all solr facet parameters are available through the pcakage_search action. In particular, `facet.sort` has been asked for; but this ticket should check to see if there are other parameters that would be easy to add too. See: http://wiki.apache.org/solr/SimpleFacetParameters#facet.sort" 1340013335000000 1340633091000000 2542 enhancement seanh seanh ckanbuild accepted Create jenkins job to run ckanbuild, and run tests It should run the script to create the debian package, boot a VM, install the debian package on the VM, boot a CKAN instance, then run the tests. 1339775888000000 1340639863000000 2541 enhancement seanh seanh ckanbuild accepted Add non-core extensions to ckanbuild We want some extensions from outside of CKAN core to be included in ckanbuild. These would be pip installed into the virtualenv before packaging the debian package. Decide which extensions to include. 1339775826000000 1340639856000000 2540 enhancement seanh seanh ckanbuild accepted Implement a way of upgrading ckan sites using ckanbuild When there are multiple ckan sites installed on a single server via ckanbuild, there needs to be some way of upgrading them all to a new ckan version at once. 1339775740000000 1340639850000000 2539 enhancement seanh seanh ckanbuild accepted Investigate the existing ckan debian package for ckanbuild Do we want to build on top of the existing debian packaging code? Or throw it away and start fresh? 1339775661000000 1340639845000000 2538 enhancement seanh seanh ckanbuild accepted Add multiple-instance support to ckanbuild "Probably use ansible to do this. To create an instance, create a dir at /etc/ckan/MYSITE, and put MYSITE.wsgi, MYSITE.ini and who.ini files in it. Also put a MYSITE file in /etc/apache2/sites-available. See the example files already present in ckanbuild. Booting a new site should be a single command. May not handle the postgres/solr/elastic-search side of things yet, could just require the user to set these up herself first and then pass them as args to the create-instance command." 1339775499000000 1340639836000000 2537 enhancement seanh seanh ckanbuild accepted Test and document ckanbuild "https://github.com/okfn/ckanbuild Verify that what's there so far still works, write a README explaining how it works" 1339775328000000 1340639830000000 2536 enhancement toby toby ckan-v1.9 closed fixed cleanup activity streams 1339765323000000 1347901915000000 2535 enhancement rgrp assigned SSL certificate for DataHub + https by default "DataHub is increasingly used and we should ensure it uses ssl as part of general security. See also #1446 (Need to support https login for multiple instances as part of the CKAN package install)" 1339758027000000 1346662082000000 2534 defect amercader seanh ckan-v1.8 closed duplicate ckanext-spatial is broken with CKAN 1.8b "Looks like recent cleanups in CKAN broke an import in the extension: https://gist.github.com/2935688" 1339754762000000 1340631124000000 2533 defect seanh seanh ckan-v1.8 closed fixed ckanext-harvest is broken with ckan 1.8b "Looks like recent CKAN cleanups broke some imports: https://gist.github.com/2935639" 1339754707000000 1339755433000000 2532 enhancement toby toby demo phase 1 closed fixed show activity steam for user no js "We should allow the user activity stream to be accessible with no js by passing a param or something. Need to agree how we hide/show basically agree what classes we use. This should be a generalised solution that we can use in other places as needed. I think this just needs discussion" 1339754158000000 1340874456000000 2531 enhancement rgrp ckan-backlog new New state option: archived / deprecated "Deleted means things will get purged at some point. Archived means they stay around but get hidden from search results and a big warning notice gets displayed saying this is archived / deprecated. @richard cyganiak ..." 1339750787000000 1339770649000000 2530 enhancement kindly rgrp ckan-v1.9 new DataHub purge fails on some revisions "See http://datahub.io/ckan-admin/trash and try to purge revisions (*not* datasets). It will fail on some of the revisions with errors like: Problem purging revision 391db9e8-df57-4e0e-8fe6-d4e0c2318344: (IntegrityError) update or delete on table ""revision"" violates foreign key constraint ""group_extra_revision_revision_id_fkey"" on table ""group_extra_revision"" DETAIL: Key (id)=(391db9e8-df57-4e0e-8fe6-d4e0c2318344) is still referenced from table ""group_extra_revision"". 'DELETE FROM revision WHERE revision.id = %(id)s' {'id': u'391db9e8-df57-4e0e-8fe6-d4e0c2318344'}" 1339750498000000 1341268280000000 2529 enhancement rgrp ckan-v1.9 new DataHub (or CKAN) widgets "Simple widgets in pure JS. For example: * Count of datasets in a group (could generalise to a query but not sure how useful that is ...) * Embeddable list of top X (5) datasets for a given query * Embeddable list of *my* datasets Either these live at: {site}/widgets and we have some kind of generator (form where I choose my group, or my query). Or: we have this attached to areas of site where relevant. Can combine the 2 so that the latter links to the former. Think first will be easier to do and possibly more useful long-term (e.g. can just link people to that page). Cf. http://okfnlabs.org/ckanjs/" 1339750049000000 1340624917000000 2528 enhancement aron.carroll aron.carroll demo phase 1 closed fixed Create demo edit dataset page "Implementation: http://s031.okserver.org:2375/dataset/edit/5b451cab-8671-4513-91c4-257784c1f484" 1339686982000000 1340617176000000 2527 enhancement aron.carroll aron.carroll ckan-sprint-2012-06-25 closed wontfix Implement a method of loading templates into the demo site "JavaScript needs to be able to insert html templates into the document. There are three common solutions to templating at the moment. 1. Insert the html into