{"html_url": "https://github.com/simonw/datasette/issues/86#issuecomment-345559864", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 345559864, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTU1OTg2NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T23:35:48Z", "updated_at": "2017-11-19T23:35:48Z", "author_association": "OWNER", "body": "I need a nicer abstraction around the concept of filters. It needs to be able to:\r\n\r\n- convert querystring parameters into filters\r\n- convert filters into a querystring\r\n- iterate through currently applied filters\r\n- convert selected filters into a human description (e.g. for a title)\r\n- expand filters that involve a foreign key\r\n- add filters\r\n- remove filters\r\n- define different types of filters\r\n\r\nIt should replace my current `build_where_clauses` implementation, in particular this bit:\r\n\r\nhttps://github.com/simonw/datasette/blob/a5881e105a02830d26f07e98177248d5910893da/datasette/utils.py#L38-L56", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273703829, "label": "Filter UI on table page"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/122#issuecomment-345552500", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/122", "id": 345552500, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTU1MjUwMA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T21:47:27Z", "updated_at": "2017-11-19T21:47:27Z", "author_association": "OWNER", "body": "To start with, I could just ditch the .jsono in favour of the new _shape argument.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275092453, "label": "Redesign JSON output, ditch jsono, offer variants controlled by parameter instead"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/122#issuecomment-345552440", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/122", "id": 345552440, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTU1MjQ0MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T21:46:43Z", "updated_at": "2017-11-19T21:46:43Z", "author_association": "OWNER", "body": "This calls for refactoring the code so the table view, the row view and the custom SQL view share as much logic as possible.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275092453, "label": "Redesign JSON output, ditch jsono, offer variants controlled by parameter instead"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/127#issuecomment-345538016", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/127", "id": 345538016, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTUzODAxNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T18:22:45Z", "updated_at": "2017-11-19T18:22:45Z", "author_association": "OWNER", "body": "I implemented a basic version of this in f59c840e7db8870afcdeba7a53bdea07bb674334 for custom SQL.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275135719, "label": "Filtered tables should show count of all matching rows, if fast enough"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/44#issuecomment-345537315", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/44", "id": 345537315, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTUzNzMxNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T18:11:27Z", "updated_at": "2017-11-19T18:11:27Z", "author_association": "OWNER", "body": "This would enable faceted search - moving it to the search milestone.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 269731374, "label": "?_group_count=country - return counts by specific column(s)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/134#issuecomment-345537268", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/134", "id": 345537268, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTUzNzI2OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T18:10:48Z", "updated_at": "2017-11-19T18:10:48Z", "author_association": "OWNER", "body": "Dupe of #127 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275176094, "label": "Filtered table view should show a count"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/131#issuecomment-345533274", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/131", "id": 345533274, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTUzMzI3NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T17:17:37Z", "updated_at": "2017-11-19T17:18:05Z", "author_association": "OWNER", "body": "Demo: https://sf-trees.now.sh/sf-trees-ebc2ad9/Street_Tree_List?_search=grove+st\r\n\r\n\"sf-trees__street_tree_list_and_https___datasette-publish-dev_now_sh_auth__code_jigy80kxgsfddalfdwqwldzm\"\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275166669, "label": "UI support for running FTS searches"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/131#issuecomment-345526517", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/131", "id": 345526517, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTUyNjUxNw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T15:48:28Z", "updated_at": "2017-11-19T15:48:28Z", "author_association": "OWNER", "body": "Since SQLite supports column specifications in the MATCH body itself, there's no need to provide a separate mechanism for specifying columns in the query string: https://sqlite.org/fts5.html#fts5_column_filters", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275166669, "label": "UI support for running FTS searches"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/131#issuecomment-345526171", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/131", "id": 345526171, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTUyNjE3MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T15:44:30Z", "updated_at": "2017-11-19T15:44:30Z", "author_association": "OWNER", "body": "Relevant SQLite docs:\r\n\r\n* https://sqlite.org/fts5.html\r\n* https://www.sqlite.org/fts3.html", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275166669, "label": "UI support for running FTS searches"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/97#issuecomment-345509500", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/97", "id": 345509500, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTUwOTUwMA==", "user": {"value": 231923, "label": "yschimke"}, "created_at": "2017-11-19T11:26:58Z", "updated_at": "2017-11-19T11:26:58Z", "author_association": "NONE", "body": "Specifically docs should make it clearer this file exists\r\n\r\nhttps://parlgov.datasettes.com/.json\r\n\r\nAnd from that you can build https://parlgov.datasettes.com/parlgov-25f9855.json\r\n\r\nThen https://parlgov.datasettes.com/parlgov-25f9855/cabinet.json", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 274022950, "label": "Link to JSON for the list of tables "}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/105#issuecomment-345503897", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/105", "id": 345503897, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTUwMzg5Nw==", "user": {"value": 198537, "label": "rgieseke"}, "created_at": "2017-11-19T09:38:08Z", "updated_at": "2017-11-19T09:38:08Z", "author_association": "CONTRIBUTOR", "body": "Thanks, I wrote this very simple reader because the default approach as described on the Datahub pages seemed to complicated. I had metadata from the `datapackage.json` attached to the returned DataFrames but removed this due to some attribute handling change in the latest Pandas version.\r\n\r\nThis could also be useful for getting from Data Package to SQL db: https://github.com/frictionlessdata/tableschema-sql-py\r\n\r\nI maintain a few climate science related dataset at https://github.com/openclimatedata/\r\n\r\nThe Data Retriever (mainly ecological data) by @ethanwhite et al. is also using the Data Package format for metadata and has some tooling for different dbs: \r\n\r\nhttps://frictionlessdata.io/articles/the-data-retriever/\r\nhttps://github.com/weecology/retriever\r\n\r\nThe Open Power System Data project also has a couple of datasets that show nicely how CSV is great for assembling and then already make SQLite files available. It's one of the first data sets I tried with Datasette, perfect for the use case of getting an API for putting power stations on a map ...\r\n\r\nhttps://data.open-power-system-data.org/", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 274314940, "label": "Consider data-package as a format for metadata"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/86#issuecomment-345497689", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 345497689, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NzY4OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T07:27:40Z", "updated_at": "2017-11-19T07:27:40Z", "author_association": "OWNER", "body": "I'll have to refactor the foreign key annotating code to be usable in other contexts - at the moment it only works for annotating displays of rows, but I need to use it to resolve selected filters as well. ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273703829, "label": "Filter UI on table page"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/86#issuecomment-345497534", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 345497534, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NzUzNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T07:23:33Z", "updated_at": "2017-11-19T07:23:33Z", "author_association": "OWNER", "body": "\"Tablename: 3,567 rows where status = 3 (published) and n > 55\"", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273703829, "label": "Filter UI on table page"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/86#issuecomment-345497453", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 345497453, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NzQ1Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T07:21:22Z", "updated_at": "2017-11-19T07:21:22Z", "author_association": "OWNER", "body": "I'm going to be a bit classier about this and auto generate a title for the page that describes the currently applied filters.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273703829, "label": "Filter UI on table page"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/86#issuecomment-345496540", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 345496540, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NjU0MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T06:59:40Z", "updated_at": "2017-11-19T06:59:40Z", "author_association": "OWNER", "body": "OK,I've figured out how to do an initial version of this without JavaScript. I'll provide three form fields labell d \"add filter\":\r\n\r\n* a select box of all of the columns\r\n* a select box of the available operations\r\n* a value box\r\n\r\nSubmit those and the site will redirect you to a correctly populated querystring for that filter.\r\n\r\nIf you have filters applied, those will display as prepopulated form field triples.\r\n\r\nFor foreign key reference filters, I will display the resolved value next to the text box containing the numeric ID. In the future this can get a select2 style treatment.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273703829, "label": "Filter UI on table page"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/127#issuecomment-345495046", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/127", "id": 345495046, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NTA0Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T06:17:42Z", "updated_at": "2017-11-19T06:17:42Z", "author_association": "OWNER", "body": "Maybe I should support `&_count=1` to handle this - that would be easy to Ajax-in in conjenction with the other filters.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275135719, "label": "Filtered tables should show count of all matching rows, if fast enough"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/44#issuecomment-345494971", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/44", "id": 345494971, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NDk3MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T06:15:39Z", "updated_at": "2017-11-19T06:15:39Z", "author_association": "OWNER", "body": "It would be great if this could support foreign key references and automatically resolve and hyperlink them if they are detected.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 269731374, "label": "?_group_count=country - return counts by specific column(s)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/86#issuecomment-345494918", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 345494918, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NDkxOA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T06:14:17Z", "updated_at": "2017-11-19T06:14:17Z", "author_association": "OWNER", "body": "If the selected relationship is a foreign key reference, we should resolve that foreign key and display it on the page.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273703829, "label": "Filter UI on table page"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/86#issuecomment-345494775", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 345494775, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NDc3NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T06:09:43Z", "updated_at": "2017-11-19T06:09:43Z", "author_association": "OWNER", "body": "Now that we have foreign key support (#85) this is even more important, since foreign key support actively encourages linking to filtered table views.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273703829, "label": "Filter UI on table page"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/85#issuecomment-345494724", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/85", "id": 345494724, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NDcyNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T06:08:19Z", "updated_at": "2017-11-19T06:08:19Z", "author_association": "OWNER", "body": "This is working really nicely now:\r\n\r\n\"sf-trees__street_tree_list\"\r\n\r\n\"sf-trees__qspecies\"\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273678673, "label": "Detect foreign keys and use them to link HTML pages together"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/105#issuecomment-345494052", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/105", "id": 345494052, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5NDA1Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T05:49:53Z", "updated_at": "2017-11-19T05:49:53Z", "author_association": "OWNER", "body": "https://github.com/rgieseke/pandas-datapackage-reader", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 274314940, "label": "Consider data-package as a format for metadata"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/105#issuecomment-345493344", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/105", "id": 345493344, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTQ5MzM0NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T05:28:49Z", "updated_at": "2017-11-19T05:28:49Z", "author_association": "OWNER", "body": "Looks like there are a ton of interesting datasets packaged in this way at http://datahub.io/docs/core-data - see also https://github.com/datasets", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 274314940, "label": "Consider data-package as a format for metadata"}, "performed_via_github_app": null}