{"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/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-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\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/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/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/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/122#issuecomment-345552358", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/122", "id": 345552358, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTU1MjM1OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-19T21:45:38Z", "updated_at": "2017-12-05T19:09:52Z", "author_association": "OWNER", "body": "For the overall shape of the rows:\r\n\r\n`?_shape=lists` (default), `?_shape=objects`, `?_shape=object` (primary key as object keys)\r\n\r\nFor getting back extra keys:\r\n\r\n`?_extras=schema,query,timing`\r\n\r\nFor expanding columns:\r\n\r\n`?_expand_all=1`\r\n\r\nOr `?_expand=qSpecies&_expand=qCaretaker`\r\n\r\nThe template view will only be allowed to work with data it can request using extra options.\r\n\r\nThat leaves one sighted nasty edge-case: the default view will expand all columns, but the `.json` view of it won't?\r\n\r\nI think that's OK. The default view won't include the extras used by the template to render the page either.", "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/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/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/44#issuecomment-345601103", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/44", "id": 345601103, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTYwMTEwMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-20T06:13:35Z", "updated_at": "2017-11-20T06:13:35Z", "author_association": "OWNER", "body": "Some demos:\r\n\r\nSingle column: https://sf-trees-flat.now.sh/sf-trees-flat-ba738ce/Street_Tree_List?_group_count=qSpecies\r\n\r\nMulti column: https://sf-trees-flat.now.sh/sf-trees-flat-ba738ce/Street_Tree_List?_group_count=qLegalStatus&_group_count=qSpecies\r\n\r\n", "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/133#issuecomment-345601870", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/133", "id": 345601870, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTYwMTg3MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-20T06:18:53Z", "updated_at": "2017-11-20T06:18:53Z", "author_association": "OWNER", "body": "This may be tackled by the filters work happening in #86", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275176006, "label": "If view is filtered, search should apply within those filtered rows"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/137#issuecomment-345750135", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/137", "id": 345750135, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTc1MDEzNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-20T16:30:56Z", "updated_at": "2018-07-10T17:53:13Z", "author_association": "OWNER", "body": "One possible route: introduce prefixes eg `?a.Trees.age__gt=5&a.Trees._group_count=qSpecies&b.Trees.age__gt=10&b.Trees._group_count=qSpecies`\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275415799, "label": "Ability to combine multiple SQL queries on a single graph"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/129#issuecomment-345793887", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/129", "id": 345793887, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTc5Mzg4Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-20T19:00:30Z", "updated_at": "2017-11-20T19:00:30Z", "author_association": "OWNER", "body": "Need to hide these from the index summary page as well:\r\n\r\n\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275164558, "label": "Hide FTS-created tables by default on the database index page"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/105#issuecomment-345809808", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/105", "id": 345809808, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTgwOTgwOA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-20T19:50:53Z", "updated_at": "2017-11-20T19:50:53Z", "author_association": "OWNER", "body": "OK, https://github.com/openclimatedata/global-carbon-budget/blob/master/datapackage.json really does look like it covers all of the bases I need for #138. Closing this ticket in favour of that new one.", "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/42#issuecomment-345810031", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/42", "id": 345810031, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTgxMDAzMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-20T19:51:29Z", "updated_at": "2017-11-20T19:51:29Z", "author_association": "OWNER", "body": "See also #138", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 268591332, "label": "Homepage UI for editing metadata file"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/14#issuecomment-345893877", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/14", "id": 345893877, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NTg5Mzg3Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-21T02:11:27Z", "updated_at": "2017-11-21T02:11:27Z", "author_association": "OWNER", "body": "http://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins Is pretty good ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 267707940, "label": "Datasette Plugins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/141#issuecomment-346157542", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/141", "id": 346157542, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjE1NzU0Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-21T20:53:47Z", "updated_at": "2017-11-21T20:53:47Z", "author_association": "OWNER", "body": "I think a copy is the right thing to do here - it will be cleaned up when the temp directory is removed. The hard link thing was always intended to save space, but if we can't do a hard link I don't see any harm in a temporary file copy.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275814941, "label": "datasette publish can fail if /tmp is on a different device"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/90#issuecomment-346161985", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/90", "id": 346161985, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjE2MTk4NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-21T21:10:22Z", "updated_at": "2017-11-21T21:10:22Z", "author_association": "OWNER", "body": "Woohoo!\r\n\r\nI've found one tiny issue: right now, the following doesn't work:\r\n\r\n datasette publish heroku ../demo-databses/google-trends.db\r\n\r\nIt results in this error in the Heroku logs:\r\n\r\n 2017-11-21T21:03:29.210511+00:00 app[web.1]: Usage: datasette serve [OPTIONS] [FILES]...\r\n 2017-11-21T21:03:29.210524+00:00 app[web.1]: \r\n 2017-11-21T21:03:29.210555+00:00 app[web.1]: Error: Invalid value for \"files\": Path \"../demo-databses/google-trends.db\" does not exist.\r\n\r\nThe command works fine if you run it in the same directory as the database file you are publishing.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273846123, "label": "datasette publish heroku"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/90#issuecomment-346163513", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/90", "id": 346163513, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjE2MzUxMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-21T21:16:16Z", "updated_at": "2017-11-21T21:16:16Z", "author_association": "OWNER", "body": "The reason relative paths work for `publish now` is that the `make_dockerfile()` function is called by passing the file names, not the full file paths:\r\n\r\nhttps://github.com/simonw/datasette/blob/e47117ce1d15f11246a3120aa49de70205713d05/datasette/utils.py#L166\r\n\r\nClearly the correct thing to do here is for us to refactor the shared code between heroku/package/now.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273846123, "label": "datasette publish heroku"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/142#issuecomment-346217739", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/142", "id": 346217739, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjIxNzczOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-22T01:45:30Z", "updated_at": "2017-11-22T01:45:30Z", "author_association": "OWNER", "body": "Might be nice to have a --no-limits option that disables time and maximum row count limits.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275917760, "label": "Show extra instructions with the interrupted"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/144#issuecomment-346405660", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/144", "id": 346405660, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjQwNTY2MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-22T16:38:05Z", "updated_at": "2017-11-22T16:38:05Z", "author_association": "OWNER", "body": "I have a solution for FTS already, but I'm interested in apsw as a mechanism for allowing custom virtual tables to be written in Python (pysqlite only lets you write custom functions)\r\n\r\nNot having PyPI support is pretty tough though. I'm planning a plugin/extension system which would be ideal for things like an optional apsw mode, but that's a lot harder if apsw isn't in PyPI.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 276091279, "label": "apsw as alternative sqlite3 binding (for full text search)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/14#issuecomment-346406009", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/14", "id": 346406009, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjQwNjAwOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-22T16:39:08Z", "updated_at": "2017-11-22T16:39:08Z", "author_association": "OWNER", "body": "Oh thanks, that definitely looks like an interesting option.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 267707940, "label": "Datasette Plugins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/129#issuecomment-346463342", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/129", "id": 346463342, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjQ2MzM0Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-22T20:22:02Z", "updated_at": "2017-11-22T20:22:02Z", "author_association": "OWNER", "body": "On the index page:\r\n\r\n\r\n\r\nOn the database index page:\r\n\r\n\r\n\r\nAfter clicking that link:\r\n\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275164558, "label": "Hide FTS-created tables by default on the database index page"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/86#issuecomment-346530498", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 346530498, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjUzMDQ5OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-23T04:35:07Z", "updated_at": "2017-11-23T04:35:07Z", "author_association": "OWNER", "body": "Here's where I am now. Needs a bit of UI tidy up and it will be good to release:\r\n\r\n\r\n", "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/146#issuecomment-346682905", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/146", "id": 346682905, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjY4MjkwNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-23T18:55:08Z", "updated_at": "2017-11-23T18:55:08Z", "author_association": "OWNER", "body": "\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 276455748, "label": "datasette publish gcloud"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/86#issuecomment-346691243", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 346691243, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjY5MTI0Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-23T20:07:15Z", "updated_at": "2017-11-23T20:07:15Z", "author_association": "OWNER", "body": "\r\n", "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-346694211", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/86", "id": 346694211, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjY5NDIxMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-23T20:34:32Z", "updated_at": "2017-11-23T20:34:32Z", "author_association": "OWNER", "body": "And with ef3eacf622e69723d48ab1ad597645770a7361db I'm ready to call this one done.", "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/132#issuecomment-346701751", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/132", "id": 346701751, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjcwMTc1MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-23T21:51:51Z", "updated_at": "2017-11-23T21:51:51Z", "author_association": "OWNER", "body": "\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275175929, "label": "Row view is not currently expanding foreign keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/133#issuecomment-346705879", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/133", "id": 346705879, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NjcwNTg3OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-11-23T22:43:42Z", "updated_at": "2017-11-24T22:07:46Z", "author_association": "OWNER", "body": "Easiest way to do this will be to move it into the same `