github
html_url | issue_url | id | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/datasette/issues/109#issuecomment-344986423 | https://api.github.com/repos/simonw/datasette/issues/109 | 344986423 | MDEyOklzc3VlQ29tbWVudDM0NDk4NjQyMw== | 9599 | 2017-11-16T16:53:26Z | 2017-11-16T16:53:26Z | OWNER | http://datasette.readthedocs.io/ | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274378301 | |
https://github.com/simonw/datasette/issues/110#issuecomment-344988263 | https://api.github.com/repos/simonw/datasette/issues/110 | 344988263 | MDEyOklzc3VlQ29tbWVudDM0NDk4ODI2Mw== | 9599 | 2017-11-16T16:58:48Z | 2017-11-16T16:58:48Z | OWNER | Here's how I tested this. First I downloaded and started a docker container using https://hub.docker.com/r/prolocutor/python3-sqlite-ext - which includes the compiled spatialite extension. This downloads it, then starts a shell in that container. docker run -it -p 8018:8018 prolocutor/python3-sqlite-ext:3.5.1-spatialite /bin/sh Installed a pre-release build of datasette which includes the new `--load-extension` option. pip install https://static.simonwillison.net/static/2017/datasette-0.13-py3-none-any.whl Now grab a sample database from https://www.gaia-gis.it/spatialite-2.3.1/resources.html - and unzip and rename it (datasette doesn't yet like databases with dots in their filename): wget http://www.gaia-gis.it/spatialite-2.3.1/test-2.3.sqlite.gz gunzip test-2.3.sqlite.gz mv test-2.3.sqlite test23.sqlite Now start datasette on port 8018 (the port I exposed earlier) with the extension loaded: datasette test23.sqlite -p 8018 -h 0.0.0.0 --load-extension /usr/local/lib/mod_spatialite.so Now I can confirm that it worked: http://localhost:8018/test23-c88bc35?sql=select+ST_AsText%28Geometry%29+from+HighWays+limit+1 <img width="743" alt="test23" src="https://user-images.githubusercontent.com/9599/32904449-39789a3a-caac-11e7-9531-b49f06051e34.png"> If I run datasette without `--load-extension` I get this: datasette test23.sqlite -p 8018 -h 0.0.0.0 <img width="747" alt="test23_and_turn_on_auto-escaping_in_jinja_ _simonw_datasette_82261a6" src="https://user-images.githubusercontent.com/9599/32904508-54e53d78-caac-11e7-9f80-4d96e9f9fb5f.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274578142 | |
https://github.com/simonw/datasette/issues/46#issuecomment-344988591 | https://api.github.com/repos/simonw/datasette/issues/46 | 344988591 | MDEyOklzc3VlQ29tbWVudDM0NDk4ODU5MQ== | 9599 | 2017-11-16T16:59:51Z | 2017-11-16T16:59:51Z | OWNER | OK, `--load-extension` is now a supported command line option - see #110 which includes my notes on how I manually tested it using the `prolocutor/python3-sqlite-ext` Docker image. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/46#issuecomment-344989340 | https://api.github.com/repos/simonw/datasette/issues/46 | 344989340 | MDEyOklzc3VlQ29tbWVudDM0NDk4OTM0MA== | 9599 | 2017-11-16T17:02:07Z | 2017-11-16T17:02:07Z | OWNER | The fact that `prolocutor/python3-sqlite-ext` doesn't provide a visible Dockerfile and hasn't been updated in two years makes me hesitant to bake it into datasette itself. I'd rather put together a Dockerfile that enables the necessary extensions and can live in the datasette repository itself. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/46#issuecomment-344995571 | https://api.github.com/repos/simonw/datasette/issues/46 | 344995571 | MDEyOklzc3VlQ29tbWVudDM0NDk5NTU3MQ== | 9599 | 2017-11-16T17:22:32Z | 2017-11-16T17:22:32Z | OWNER | The JSON extension would be very worthwhile too: https://www.sqlite.org/json1.html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/111#issuecomment-345013127 | https://api.github.com/repos/simonw/datasette/issues/111 | 345013127 | MDEyOklzc3VlQ29tbWVudDM0NTAxMzEyNw== | 9599 | 2017-11-16T18:23:56Z | 2017-11-16T18:23:56Z | OWNER | Having this as a global option may not make sense when publishing multiple databases. We can revisit that when we implement per-database and per-table metadata. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 | |
https://github.com/simonw/datasette/issues/110#issuecomment-345017256 | https://api.github.com/repos/simonw/datasette/issues/110 | 345017256 | MDEyOklzc3VlQ29tbWVudDM0NTAxNzI1Ng== | 9599 | 2017-11-16T18:38:30Z | 2017-11-16T18:38:30Z | OWNER | To finish up, I committed the image I created in the above so I can run it again in the future: docker commit $(docker ps -lq) datasette-sqlite Now I can run it like this: docker run -it -p 8018:8018 datasette-sqlite datasette /tmp/test23.sqlite -p 8018 -h 0.0.0.0 --load-extension /usr/local/lib/mod_spatialite.so | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274578142 | |
https://github.com/simonw/datasette/issues/14#issuecomment-345067498 | https://api.github.com/repos/simonw/datasette/issues/14 | 345067498 | MDEyOklzc3VlQ29tbWVudDM0NTA2NzQ5OA== | 9599 | 2017-11-16T21:25:32Z | 2017-11-16T21:26:22Z | OWNER | For visualizations, Google Maps should be made available as a plugin. The default visualizations can use Leaflet and Open Street Map, but there's no reason to not make Google Maps available as a plugin, especially if the plugin can provide a mechanism for configuring the necessary API key. I'm particularly excited in the Google Maps heatmap visualization https://developers.google.com/maps/documentation/javascript/heatmaplayer as seen on http://mochimachine.org/wasteland/ | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267707940 | |
https://github.com/simonw/datasette/pull/107#issuecomment-345108644 | https://api.github.com/repos/simonw/datasette/issues/107 | 345108644 | MDEyOklzc3VlQ29tbWVudDM0NTEwODY0NA== | 9599 | 2017-11-17T00:34:46Z | 2017-11-17T00:34:46Z | OWNER | Looks like your tests are failing because of a bug which I fixed in https://github.com/simonw/datasette/commit/9199945a1bcec4852e1cb866eb3642614dd32a48 - if you rebase to master the tests should pass. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274343647 | |
https://github.com/simonw/datasette/pull/114#issuecomment-345138134 | https://api.github.com/repos/simonw/datasette/issues/114 | 345138134 | MDEyOklzc3VlQ29tbWVudDM0NTEzODEzNA== | 9599 | 2017-11-17T03:50:38Z | 2017-11-17T03:50:38Z | OWNER | Fantastic! Thank you very much. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274733145 | |
https://github.com/simonw/datasette/issues/46#issuecomment-345138347 | https://api.github.com/repos/simonw/datasette/issues/46 | 345138347 | MDEyOklzc3VlQ29tbWVudDM0NTEzODM0Nw== | 9599 | 2017-11-17T03:52:25Z | 2017-11-17T03:52:25Z | OWNER | We now have a Dockerfile that compiles spatialite! https://github.com/simonw/datasette/pull/114/commits/6c6b63d890529eeefcefb7ab126ea3bd7b2315c1 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/85#issuecomment-345150048 | https://api.github.com/repos/simonw/datasette/issues/85 | 345150048 | MDEyOklzc3VlQ29tbWVudDM0NTE1MDA0OA== | 9599 | 2017-11-17T05:35:25Z | 2017-11-17T05:35:25Z | OWNER | `csvs-to-sqlite` is now capable of generating databases with foreign key lookup tables: https://github.com/simonw/csvs-to-sqlite/releases/tag/0.3 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273678673 | |
https://github.com/simonw/datasette/issues/85#issuecomment-345242447 | https://api.github.com/repos/simonw/datasette/issues/85 | 345242447 | MDEyOklzc3VlQ29tbWVudDM0NTI0MjQ0Nw== | 9599 | 2017-11-17T13:22:33Z | 2017-11-17T13:23:14Z | OWNER | I could support explicit label columns using additional arguments to `datasette serve`: datasette serve mydb.py --label-column mydb:table1:name --label-column mydb:table2:title This would mean "in mydb, set the label column for table1 to name, and the label column for table2 to title" | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273678673 | |
https://github.com/simonw/datasette/issues/112#issuecomment-345255655 | https://api.github.com/repos/simonw/datasette/issues/112 | 345255655 | MDEyOklzc3VlQ29tbWVudDM0NTI1NTY1NQ== | 9599 | 2017-11-17T14:19:23Z | 2017-11-17T14:19:23Z | OWNER | I tesed this by first building and running a container using the new Dockerfile from #114: docker build . docker run -it -p 8001:8001 6c9ca7e29181 /bin/sh Then I ran this inside the container itself: apt update && apt-get install wget -y \ && wget http://www.gaia-gis.it/spatialite-2.3.1/test-2.3.sqlite.gz \ && gunzip test-2.3.sqlite.gz \ && mv test-2.3.sqlite test23.sqlite \ && datasette -h 0.0.0.0 test23.sqlite I visited this URL to confirm I got an error due to spatialite not being loaded: http://localhost:8001/test23-c88bc35?sql=select+ST_AsText%28Geometry%29+from+HighWays+limit+1 Then I checked that loading it with `--load-extension` worked correctly: datasette -h 0.0.0.0 test23.sqlite \ --load-extension=/usr/lib/x86_64-linux-gnu/mod_spatialite.so Then, finally, I tested it with the new environment variable option: SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/mod_spatialite.so \ datasette -h 0.0.0.0 test23.sqlite Running it with an invalid environment variable option shows an error: $ SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/blah.so datasette \ -h 0.0.0.0 test23.sqlite Usage: datasette -h [OPTIONS] [FILES]... Error: Invalid value for "--load-extension": Path "/usr/lib/x86_64-linux-gnu/blah.so" does not exist. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274617240 | |
https://github.com/simonw/datasette/pull/115#issuecomment-345256576 | https://api.github.com/repos/simonw/datasette/issues/115 | 345256576 | MDEyOklzc3VlQ29tbWVudDM0NTI1NjU3Ng== | 9599 | 2017-11-17T14:22:51Z | 2017-11-17T14:22:51Z | OWNER | This is great - I've been frustrated by how CodeMirror prevents me from hitting tab-enter to activate the "Run SQL" button. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274877366 | |
https://github.com/simonw/datasette/issues/46#issuecomment-345259115 | https://api.github.com/repos/simonw/datasette/issues/46 | 345259115 | MDEyOklzc3VlQ29tbWVudDM0NTI1OTExNQ== | 9599 | 2017-11-17T14:32:12Z | 2017-11-17T14:32:12Z | OWNER | OK, I can confirm that the version in the new docker container supports FTS5, JSON *and* spatialite! Notes on how I built the container and tested the spatialite extension are here: https://github.com/simonw/datasette/issues/112#issuecomment-345255655 To confirm that JSON and FTS5 are working, I ran the following: $ docker run -it -p 8001:8001 6c9ca7e29181 python Python 3.6.3 (default, Nov 4 2017, 14:24:48) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sqlite3 >>> sqlite3.connect(':memory:').execute('CREATE VIRTUAL TABLE email USING fts5(sender, title, body);') <sqlite3.Cursor object at 0x7f2d90839960> >>> list(sqlite3.connect(':memory:').execute('''SELECT json(' { "this" : "is", "a": [ "test" ] } ') ''')) [('{"this":"is","a":["test"]}',)] If I do the same thing in python3 on my OS X laptop directly, I get this: $ python3 Python 3.5.1 (default, Apr 18 2016, 11:46:32) [GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.29)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import sqlite3 >>> sqlite3.connect(':memory:').execute('CREATE VIRTUAL TABLE email USING fts5(sender, title, body);') Traceback (most recent call last): File "<stdin>", line 1, in <module> sqlite3.OperationalError: no such module: fts5 >>> list(sqlite3.connect(':memory:').execute('''SELECT json(' { "this" : "is", "a": [ "test" ] } ') ''')) Traceback (most recent call last): File "<stdin>", line 1, in <module> sqlite3.OperationalError: no such function: json | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/64#issuecomment-345260784 | https://api.github.com/repos/simonw/datasette/issues/64 | 345260784 | MDEyOklzc3VlQ29tbWVudDM0NTI2MDc4NA== | 9599 | 2017-11-17T14:38:21Z | 2017-11-17T14:38:21Z | OWNER | This was fixed by ed2b3f25beac720f14869350baacc5f62b065194 in #107 - thanks @raynae! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273181020 | |
https://github.com/simonw/datasette/issues/36#issuecomment-345262738 | https://api.github.com/repos/simonw/datasette/issues/36 | 345262738 | MDEyOklzc3VlQ29tbWVudDM0NTI2MjczOA== | 9599 | 2017-11-17T14:45:37Z | 2017-11-17T14:45:37Z | OWNER | Consider for example https://fivethirtyeight.datasettes.com/fivethirtyeight/inconvenient-sequel%2Fratings <img width="719" alt="fivethirtyeight__inconvenient-sequel_ratings" src="https://user-images.githubusercontent.com/9599/32952559-82b81ea8-cb62-11e7-817a-45c8bba7e9a2.png"> The idea here is to be able to support querystring parameters like this: * `?timestamp___date=2017-07-17` - return every item where the timestamp falls on that date * `?timestamp___year=2017` - return every item where the timestamp falls within 2017 * `?timestamp___month=1` - return every item where the month component is January * `?timestamp___day=10` - return every item where the day-of-the-month component is 10 This is similar to #64 but a fair bit more complicated. SQLite date functions are documented here: https://sqlite.org/lang_datefunc.html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
268262480 | |
https://github.com/simonw/datasette/issues/44#issuecomment-345342512 | https://api.github.com/repos/simonw/datasette/issues/44 | 345342512 | MDEyOklzc3VlQ29tbWVudDM0NTM0MjUxMg== | 9599 | 2017-11-17T19:27:53Z | 2017-11-20T04:37:35Z | OWNER | This should support multiple columns, e.g. `?_group_count=precinct&_group_count=candidate` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
https://github.com/simonw/datasette/issues/44#issuecomment-345343079 | https://api.github.com/repos/simonw/datasette/issues/44 | 345343079 | MDEyOklzc3VlQ29tbWVudDM0NTM0MzA3OQ== | 9599 | 2017-11-17T19:29:43Z | 2017-11-17T19:29:43Z | OWNER | Should this support sum/avg/etc as well? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
https://github.com/simonw/datasette/pull/117#issuecomment-345404257 | https://api.github.com/repos/simonw/datasette/issues/117 | 345404257 | MDEyOklzc3VlQ29tbWVudDM0NTQwNDI1Nw== | 9599 | 2017-11-18T00:53:58Z | 2017-11-18T00:53:58Z | OWNER | Thanks! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274900388 | |
https://github.com/simonw/datasette/pull/104#issuecomment-345447161 | https://api.github.com/repos/simonw/datasette/issues/104 | 345447161 | MDEyOklzc3VlQ29tbWVudDM0NTQ0NzE2MQ== | 9599 | 2017-11-18T14:53:17Z | 2017-11-18T14:53:17Z | OWNER | any reason I shouldn't land this? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274284246 | |
https://github.com/simonw/datasette/issues/36#issuecomment-345448756 | https://api.github.com/repos/simonw/datasette/issues/36 | 345448756 | MDEyOklzc3VlQ29tbWVudDM0NTQ0ODc1Ng== | 9599 | 2017-11-18T15:17:43Z | 2017-11-18T15:17:43Z | OWNER | This may be useful: https://github.com/coleifer/peewee/blob/db85167d93861451a1fe7cde8c4f05748b222634/peewee.py#L162-L185 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
268262480 | |
https://github.com/simonw/datasette/issues/121#issuecomment-345452215 | https://api.github.com/repos/simonw/datasette/issues/121 | 345452215 | MDEyOklzc3VlQ29tbWVudDM0NTQ1MjIxNQ== | 9599 | 2017-11-18T16:11:23Z | 2017-11-18T16:11:23Z | OWNER | If a column value is invalid JSON, let's return the invalid JSON as a regular string. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275089535 | |
https://github.com/simonw/datasette/issues/105#issuecomment-345493344 | https://api.github.com/repos/simonw/datasette/issues/105 | 345493344 | MDEyOklzc3VlQ29tbWVudDM0NTQ5MzM0NA== | 9599 | 2017-11-19T05:28:49Z | 2017-11-19T05:28:49Z | OWNER | 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 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274314940 | |
https://github.com/simonw/datasette/issues/105#issuecomment-345494052 | https://api.github.com/repos/simonw/datasette/issues/105 | 345494052 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDA1Mg== | 9599 | 2017-11-19T05:49:53Z | 2017-11-19T05:49:53Z | OWNER | https://github.com/rgieseke/pandas-datapackage-reader | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274314940 | |
https://github.com/simonw/datasette/issues/85#issuecomment-345494724 | https://api.github.com/repos/simonw/datasette/issues/85 | 345494724 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDcyNA== | 9599 | 2017-11-19T06:08:19Z | 2017-11-19T06:08:19Z | OWNER | This is working really nicely now: <img width="1082" alt="sf-trees__street_tree_list" src="https://user-images.githubusercontent.com/9599/32987909-ef2c6008-ccac-11e7-81ce-4451f5372ab9.png"> <img width="461" alt="sf-trees__qspecies" src="https://user-images.githubusercontent.com/9599/32987911-fa5ce538-ccac-11e7-83b9-2e97dea82d86.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273678673 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345494775 | https://api.github.com/repos/simonw/datasette/issues/86 | 345494775 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDc3NQ== | 9599 | 2017-11-19T06:09:43Z | 2017-11-19T06:09:43Z | OWNER | Now that we have foreign key support (#85) this is even more important, since foreign key support actively encourages linking to filtered table views. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345494918 | https://api.github.com/repos/simonw/datasette/issues/86 | 345494918 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDkxOA== | 9599 | 2017-11-19T06:14:17Z | 2017-11-19T06:14:17Z | OWNER | If the selected relationship is a foreign key reference, we should resolve that foreign key and display it on the page. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/44#issuecomment-345494971 | https://api.github.com/repos/simonw/datasette/issues/44 | 345494971 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDk3MQ== | 9599 | 2017-11-19T06:15:39Z | 2017-11-19T06:15:39Z | OWNER | It would be great if this could support foreign key references and automatically resolve and hyperlink them if they are detected. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
https://github.com/simonw/datasette/issues/127#issuecomment-345495046 | https://api.github.com/repos/simonw/datasette/issues/127 | 345495046 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NTA0Ng== | 9599 | 2017-11-19T06:17:42Z | 2017-11-19T06:17:42Z | OWNER | Maybe I should support `&_count=1` to handle this - that would be easy to Ajax-in in conjenction with the other filters. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275135719 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345496540 | https://api.github.com/repos/simonw/datasette/issues/86 | 345496540 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NjU0MA== | 9599 | 2017-11-19T06:59:40Z | 2017-11-19T06:59:40Z | OWNER | 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": * a select box of all of the columns * a select box of the available operations * a value box Submit those and the site will redirect you to a correctly populated querystring for that filter. If you have filters applied, those will display as prepopulated form field triples. For 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. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345497453 | https://api.github.com/repos/simonw/datasette/issues/86 | 345497453 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NzQ1Mw== | 9599 | 2017-11-19T07:21:22Z | 2017-11-19T07:21:22Z | OWNER | I'm going to be a bit classier about this and auto generate a title for the page that describes the currently applied filters. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345497534 | https://api.github.com/repos/simonw/datasette/issues/86 | 345497534 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NzUzNA== | 9599 | 2017-11-19T07:23:33Z | 2017-11-19T07:23:33Z | OWNER | "Tablename: 3,567 rows where status = 3 (published) and n > 55" | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345497689 | https://api.github.com/repos/simonw/datasette/issues/86 | 345497689 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NzY4OQ== | 9599 | 2017-11-19T07:27:40Z | 2017-11-19T07:27:40Z | OWNER | 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. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/131#issuecomment-345526171 | https://api.github.com/repos/simonw/datasette/issues/131 | 345526171 | MDEyOklzc3VlQ29tbWVudDM0NTUyNjE3MQ== | 9599 | 2017-11-19T15:44:30Z | 2017-11-19T15:44:30Z | OWNER | Relevant SQLite docs: * https://sqlite.org/fts5.html * https://www.sqlite.org/fts3.html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275166669 | |
https://github.com/simonw/datasette/issues/131#issuecomment-345526517 | https://api.github.com/repos/simonw/datasette/issues/131 | 345526517 | MDEyOklzc3VlQ29tbWVudDM0NTUyNjUxNw== | 9599 | 2017-11-19T15:48:28Z | 2017-11-19T15:48:28Z | OWNER | 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 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275166669 | |
https://github.com/simonw/datasette/issues/131#issuecomment-345533274 | https://api.github.com/repos/simonw/datasette/issues/131 | 345533274 | MDEyOklzc3VlQ29tbWVudDM0NTUzMzI3NA== | 9599 | 2017-11-19T17:17:37Z | 2017-11-19T17:18:05Z | OWNER | Demo: https://sf-trees.now.sh/sf-trees-ebc2ad9/Street_Tree_List?_search=grove+st <img width="906" alt="sf-trees__street_tree_list_and_https___datasette-publish-dev_now_sh_auth__code_jigy80kxgsfddalfdwqwldzm" src="https://user-images.githubusercontent.com/9599/32993276-8bd62cce-cd0a-11e7-9d91-dc718d3eb4ab.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275166669 | |
https://github.com/simonw/datasette/issues/134#issuecomment-345537268 | https://api.github.com/repos/simonw/datasette/issues/134 | 345537268 | MDEyOklzc3VlQ29tbWVudDM0NTUzNzI2OA== | 9599 | 2017-11-19T18:10:48Z | 2017-11-19T18:10:48Z | OWNER | Dupe of #127 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275176094 | |
https://github.com/simonw/datasette/issues/44#issuecomment-345537315 | https://api.github.com/repos/simonw/datasette/issues/44 | 345537315 | MDEyOklzc3VlQ29tbWVudDM0NTUzNzMxNQ== | 9599 | 2017-11-19T18:11:27Z | 2017-11-19T18:11:27Z | OWNER | This would enable faceted search - moving it to the search milestone. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
https://github.com/simonw/datasette/issues/127#issuecomment-345538016 | https://api.github.com/repos/simonw/datasette/issues/127 | 345538016 | MDEyOklzc3VlQ29tbWVudDM0NTUzODAxNg== | 9599 | 2017-11-19T18:22:45Z | 2017-11-19T18:22:45Z | OWNER | I implemented a basic version of this in f59c840e7db8870afcdeba7a53bdea07bb674334 for custom SQL. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275135719 | |
https://github.com/simonw/datasette/issues/122#issuecomment-345552358 | https://api.github.com/repos/simonw/datasette/issues/122 | 345552358 | MDEyOklzc3VlQ29tbWVudDM0NTU1MjM1OA== | 9599 | 2017-11-19T21:45:38Z | 2017-12-05T19:09:52Z | OWNER | For the overall shape of the rows: `?_shape=lists` (default), `?_shape=objects`, `?_shape=object` (primary key as object keys) For getting back extra keys: `?_extras=schema,query,timing` For expanding columns: `?_expand_all=1` Or `?_expand=qSpecies&_expand=qCaretaker` The template view will only be allowed to work with data it can request using extra options. That leaves one sighted nasty edge-case: the default view will expand all columns, but the `.json` view of it won't? I think that's OK. The default view won't include the extras used by the template to render the page either. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275092453 | |
https://github.com/simonw/datasette/issues/122#issuecomment-345552440 | https://api.github.com/repos/simonw/datasette/issues/122 | 345552440 | MDEyOklzc3VlQ29tbWVudDM0NTU1MjQ0MA== | 9599 | 2017-11-19T21:46:43Z | 2017-11-19T21:46:43Z | OWNER | This calls for refactoring the code so the table view, the row view and the custom SQL view share as much logic as possible. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275092453 | |
https://github.com/simonw/datasette/issues/122#issuecomment-345552500 | https://api.github.com/repos/simonw/datasette/issues/122 | 345552500 | MDEyOklzc3VlQ29tbWVudDM0NTU1MjUwMA== | 9599 | 2017-11-19T21:47:27Z | 2017-11-19T21:47:27Z | OWNER | To start with, I could just ditch the .jsono in favour of the new _shape argument. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275092453 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345559864 | https://api.github.com/repos/simonw/datasette/issues/86 | 345559864 | MDEyOklzc3VlQ29tbWVudDM0NTU1OTg2NA== | 9599 | 2017-11-19T23:35:48Z | 2017-11-19T23:35:48Z | OWNER | I need a nicer abstraction around the concept of filters. It needs to be able to: - convert querystring parameters into filters - convert filters into a querystring - iterate through currently applied filters - convert selected filters into a human description (e.g. for a title) - expand filters that involve a foreign key - add filters - remove filters - define different types of filters It should replace my current `build_where_clauses` implementation, in particular this bit: https://github.com/simonw/datasette/blob/a5881e105a02830d26f07e98177248d5910893da/datasette/utils.py#L38-L56 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/44#issuecomment-345601103 | https://api.github.com/repos/simonw/datasette/issues/44 | 345601103 | MDEyOklzc3VlQ29tbWVudDM0NTYwMTEwMw== | 9599 | 2017-11-20T06:13:35Z | 2017-11-20T06:13:35Z | OWNER | Some demos: Single column: https://sf-trees-flat.now.sh/sf-trees-flat-ba738ce/Street_Tree_List?_group_count=qSpecies Multi column: https://sf-trees-flat.now.sh/sf-trees-flat-ba738ce/Street_Tree_List?_group_count=qLegalStatus&_group_count=qSpecies | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
https://github.com/simonw/datasette/issues/133#issuecomment-345601870 | https://api.github.com/repos/simonw/datasette/issues/133 | 345601870 | MDEyOklzc3VlQ29tbWVudDM0NTYwMTg3MA== | 9599 | 2017-11-20T06:18:53Z | 2017-11-20T06:18:53Z | OWNER | This may be tackled by the filters work happening in #86 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275176006 | |
https://github.com/simonw/datasette/issues/137#issuecomment-345750135 | https://api.github.com/repos/simonw/datasette/issues/137 | 345750135 | MDEyOklzc3VlQ29tbWVudDM0NTc1MDEzNQ== | 9599 | 2017-11-20T16:30:56Z | 2018-07-10T17:53:13Z | OWNER | 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` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275415799 | |
https://github.com/simonw/datasette/issues/129#issuecomment-345793887 | https://api.github.com/repos/simonw/datasette/issues/129 | 345793887 | MDEyOklzc3VlQ29tbWVudDM0NTc5Mzg4Nw== | 9599 | 2017-11-20T19:00:30Z | 2017-11-20T19:00:30Z | OWNER | Need to hide these from the index summary page as well: <img width="1237" alt="datasette__archive-fires-indonesia__conventional_power_plants_eu__fatal-police-shootings-data__fivethirtyeight__flights__google-trends__nhsadmin__northwind__openelections__polar-bears__sf-trees-fks__venue_profile" src="https://user-images.githubusercontent.com/9599/33036011-0471beaa-cde2-11e7-8d01-86eb45476943.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275164558 | |
https://github.com/simonw/datasette/issues/105#issuecomment-345809808 | https://api.github.com/repos/simonw/datasette/issues/105 | 345809808 | MDEyOklzc3VlQ29tbWVudDM0NTgwOTgwOA== | 9599 | 2017-11-20T19:50:53Z | 2017-11-20T19:50:53Z | OWNER | 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. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274314940 | |
https://github.com/simonw/datasette/issues/42#issuecomment-345810031 | https://api.github.com/repos/simonw/datasette/issues/42 | 345810031 | MDEyOklzc3VlQ29tbWVudDM0NTgxMDAzMQ== | 9599 | 2017-11-20T19:51:29Z | 2017-11-20T19:51:29Z | OWNER | See also #138 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
268591332 | |
https://github.com/simonw/datasette/issues/14#issuecomment-345893877 | https://api.github.com/repos/simonw/datasette/issues/14 | 345893877 | MDEyOklzc3VlQ29tbWVudDM0NTg5Mzg3Nw== | 9599 | 2017-11-21T02:11:27Z | 2017-11-21T02:11:27Z | OWNER | http://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins Is pretty good | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267707940 | |
https://github.com/simonw/datasette/issues/141#issuecomment-346157542 | https://api.github.com/repos/simonw/datasette/issues/141 | 346157542 | MDEyOklzc3VlQ29tbWVudDM0NjE1NzU0Mg== | 9599 | 2017-11-21T20:53:47Z | 2017-11-21T20:53:47Z | OWNER | 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. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275814941 | |
https://github.com/simonw/datasette/issues/90#issuecomment-346161985 | https://api.github.com/repos/simonw/datasette/issues/90 | 346161985 | MDEyOklzc3VlQ29tbWVudDM0NjE2MTk4NQ== | 9599 | 2017-11-21T21:10:22Z | 2017-11-21T21:10:22Z | OWNER | Woohoo! I've found one tiny issue: right now, the following doesn't work: datasette publish heroku ../demo-databses/google-trends.db It results in this error in the Heroku logs: 2017-11-21T21:03:29.210511+00:00 app[web.1]: Usage: datasette serve [OPTIONS] [FILES]... 2017-11-21T21:03:29.210524+00:00 app[web.1]: 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. The command works fine if you run it in the same directory as the database file you are publishing. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/90#issuecomment-346163513 | https://api.github.com/repos/simonw/datasette/issues/90 | 346163513 | MDEyOklzc3VlQ29tbWVudDM0NjE2MzUxMw== | 9599 | 2017-11-21T21:16:16Z | 2017-11-21T21:16:16Z | OWNER | 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: https://github.com/simonw/datasette/blob/e47117ce1d15f11246a3120aa49de70205713d05/datasette/utils.py#L166 Clearly the correct thing to do here is for us to refactor the shared code between heroku/package/now. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/142#issuecomment-346217739 | https://api.github.com/repos/simonw/datasette/issues/142 | 346217739 | MDEyOklzc3VlQ29tbWVudDM0NjIxNzczOQ== | 9599 | 2017-11-22T01:45:30Z | 2017-11-22T01:45:30Z | OWNER | Might be nice to have a --no-limits option that disables time and maximum row count limits. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275917760 | |
https://github.com/simonw/datasette/issues/144#issuecomment-346405660 | https://api.github.com/repos/simonw/datasette/issues/144 | 346405660 | MDEyOklzc3VlQ29tbWVudDM0NjQwNTY2MA== | 9599 | 2017-11-22T16:38:05Z | 2017-11-22T16:38:05Z | OWNER | 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) Not 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. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276091279 | |
https://github.com/simonw/datasette/issues/14#issuecomment-346406009 | https://api.github.com/repos/simonw/datasette/issues/14 | 346406009 | MDEyOklzc3VlQ29tbWVudDM0NjQwNjAwOQ== | 9599 | 2017-11-22T16:39:08Z | 2017-11-22T16:39:08Z | OWNER | Oh thanks, that definitely looks like an interesting option. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267707940 | |
https://github.com/simonw/datasette/issues/129#issuecomment-346463342 | https://api.github.com/repos/simonw/datasette/issues/129 | 346463342 | MDEyOklzc3VlQ29tbWVudDM0NjQ2MzM0Mg== | 9599 | 2017-11-22T20:22:02Z | 2017-11-22T20:22:02Z | OWNER | On the index page: <img width="590" alt="datasette__archive-fires-indonesia__conventional_power_plants_eu__fatal-police-shootings-data__fivethirtyeight__flights__google-trends__nhsadmin__northwind__openelections__polar-bears__sf-trees__sf-trees-fks__venue_profile_and_hide_fts-crea" src="https://user-images.githubusercontent.com/9599/33148136-7b8964ea-cf7f-11e7-87ff-654b4d152645.png"> On the database index page: <img width="321" alt="sf-trees" src="https://user-images.githubusercontent.com/9599/33148156-87df1aa0-cf7f-11e7-8480-64cc29201984.png"> After clicking that link: <img width="744" alt="sf-trees" src="https://user-images.githubusercontent.com/9599/33148178-9f7d510e-cf7f-11e7-8959-5ad64f8637a8.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275164558 | |
https://github.com/simonw/datasette/issues/86#issuecomment-346530498 | https://api.github.com/repos/simonw/datasette/issues/86 | 346530498 | MDEyOklzc3VlQ29tbWVudDM0NjUzMDQ5OA== | 9599 | 2017-11-23T04:35:07Z | 2017-11-23T04:35:07Z | OWNER | Here's where I am now. Needs a bit of UI tidy up and it will be good to release: <img width="1126" alt="conventional_power_plants_eu__conventional_power_plants_eu" src="https://user-images.githubusercontent.com/9599/33159075-9e985bb8-cfc4-11e7-888d-6828ebdeb1ca.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/146#issuecomment-346682905 | https://api.github.com/repos/simonw/datasette/issues/146 | 346682905 | MDEyOklzc3VlQ29tbWVudDM0NjY4MjkwNQ== | 9599 | 2017-11-23T18:55:08Z | 2017-11-23T18:55:08Z | OWNER | <img width="478" alt="compute_engine_-_simonwillisonblog" src="https://user-images.githubusercontent.com/9599/33186224-c3e32d44-d03c-11e7-9cd8-6acc6c1d1d01.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276455748 | |
https://github.com/simonw/datasette/issues/86#issuecomment-346691243 | https://api.github.com/repos/simonw/datasette/issues/86 | 346691243 | MDEyOklzc3VlQ29tbWVudDM0NjY5MTI0Mw== | 9599 | 2017-11-23T20:07:15Z | 2017-11-23T20:07:15Z | OWNER | <img width="566" alt="fivethirtyeight__bob-ross_elements-by-episode_csv" src="https://user-images.githubusercontent.com/9599/33187492-d6fb6068-d046-11e7-80fc-470c04a46386.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-346694211 | https://api.github.com/repos/simonw/datasette/issues/86 | 346694211 | MDEyOklzc3VlQ29tbWVudDM0NjY5NDIxMQ== | 9599 | 2017-11-23T20:34:32Z | 2017-11-23T20:34:32Z | OWNER | And with ef3eacf622e69723d48ab1ad597645770a7361db I'm ready to call this one done. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/132#issuecomment-346701751 | https://api.github.com/repos/simonw/datasette/issues/132 | 346701751 | MDEyOklzc3VlQ29tbWVudDM0NjcwMTc1MQ== | 9599 | 2017-11-23T21:51:51Z | 2017-11-23T21:51:51Z | OWNER | <img width="846" alt="fatal-police-shootings-data__fatal-police-shootings-data" src="https://user-images.githubusercontent.com/9599/33189202-73891af2-d055-11e7-9e79-6be7d8df36aa.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275175929 | |
https://github.com/simonw/datasette/issues/133#issuecomment-346705879 | https://api.github.com/repos/simonw/datasette/issues/133 | 346705879 | MDEyOklzc3VlQ29tbWVudDM0NjcwNTg3OQ== | 9599 | 2017-11-23T22:43:42Z | 2017-11-24T22:07:46Z | OWNER | Easiest way to do this will be to move it into the same `<form>` as the filters. Would be nice to detect `?_search=<blank>` and redirect to URL without the `_search` parameter, just for aesthetics. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275176006 | |
https://github.com/simonw/datasette/issues/147#issuecomment-346900554 | https://api.github.com/repos/simonw/datasette/issues/147 | 346900554 | MDEyOklzc3VlQ29tbWVudDM0NjkwMDU1NA== | 9599 | 2017-11-24T22:02:22Z | 2017-11-24T22:02:22Z | OWNER | <img width="798" alt="conventional_power_plants_eu__conventional_power_plants_eu__14_rows_where_company____nuon_" src="https://user-images.githubusercontent.com/9599/33224603-15e7a406-d120-11e7-89c1-32d3d0aff021.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276476670 | |
https://github.com/simonw/datasette/issues/133#issuecomment-346902583 | https://api.github.com/repos/simonw/datasette/issues/133 | 346902583 | MDEyOklzc3VlQ29tbWVudDM0NjkwMjU4Mw== | 9599 | 2017-11-24T22:30:32Z | 2017-11-24T22:30:32Z | OWNER | <img width="662" alt="sf-trees__street_tree_list__1_row_where_search_matches__ocean___qcareassistant____1__qcareassistant_is_not_blank_and_qlegalstatus___1" src="https://user-images.githubusercontent.com/9599/33224944-03bf054a-d124-11e7-8a97-58c8dee892a1.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275176006 | |
https://github.com/simonw/datasette/issues/149#issuecomment-346903317 | https://api.github.com/repos/simonw/datasette/issues/149 | 346903317 | MDEyOklzc3VlQ29tbWVudDM0NjkwMzMxNw== | 9599 | 2017-11-24T22:41:58Z | 2017-11-24T22:41:58Z | OWNER | Custom SQL results now look like this: <img width="769" alt="banners_and_alerts_and_conventional_power_plants_eu" src="https://user-images.githubusercontent.com/9599/33225056-9c09c58c-d125-11e7-9981-a209a52ac7fb.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276704127 | |
https://github.com/simonw/datasette/issues/124#issuecomment-347049888 | https://api.github.com/repos/simonw/datasette/issues/124 | 347049888 | MDEyOklzc3VlQ29tbWVudDM0NzA0OTg4OA== | 9599 | 2017-11-27T00:01:08Z | 2017-11-27T00:01:08Z | OWNER | https://sqlite.org/c3ref/open.html Is the only documentation I've been able to find of the immutable option: > **immutable**: The immutable parameter is a boolean query parameter that indicates that the database file is stored on read-only media. When immutable is set, SQLite assumes that the database file cannot be changed, even by a process with higher privilege, and so the database is opened read-only and all locking and change detection is disabled. Caution: Setting the immutable property on a database file that does in fact change can result in incorrect query results and/or SQLITE_CORRUPT errors. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275125805 | |
https://github.com/simonw/datasette/issues/153#issuecomment-347050235 | https://api.github.com/repos/simonw/datasette/issues/153 | 347050235 | MDEyOklzc3VlQ29tbWVudDM0NzA1MDIzNQ== | 9599 | 2017-11-27T00:06:24Z | 2017-11-27T00:06:24Z | OWNER | I've been thinking about 1. a bit - I actually think it would be fine to have a rule that says "if the contents of the cell starts with `http://` or `https://` and doesn't contain any whitespace, turn that into a link". If you need the non-linked version that will always be available in the JSON. For the other two... I think #12 may be the way to go here: if you can easily over-ride the `row.html` and `table.html` templates for specific databases you can easily set pre-formatted text or similar for certain values - maybe even with CSS that targets a specific table column. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/153#issuecomment-347051331 | https://api.github.com/repos/simonw/datasette/issues/153 | 347051331 | MDEyOklzc3VlQ29tbWVudDM0NzA1MTMzMQ== | 9599 | 2017-11-27T00:23:40Z | 2017-11-27T03:58:49Z | OWNER | One quick fix could be to add a `extra_css_url` key to the `metadata.json` format (which currently hosts `title`, `license_url` etc) - if populated, we can inject a link to that stylesheet on every page. We could add a few classes in strategic places that include the database and table names to give people styling hooks. While we're at it, an `extra_js_url` key would let people go really nuts! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/124#issuecomment-347236102 | https://api.github.com/repos/simonw/datasette/issues/124 | 347236102 | MDEyOklzc3VlQ29tbWVudDM0NzIzNjEwMg== | 9599 | 2017-11-27T16:24:15Z | 2017-11-27T16:24:15Z | OWNER | I'd really like to get some benchmarks working so I can see the actual impact of this kind of thing. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275125805 | |
https://github.com/simonw/datasette/issues/155#issuecomment-347713453 | https://api.github.com/repos/simonw/datasette/issues/155 | 347713453 | MDEyOklzc3VlQ29tbWVudDM0NzcxMzQ1Mw== | 9599 | 2017-11-29T00:41:30Z | 2017-11-29T00:41:30Z | OWNER | Could you provide the SQL to create a reproducible test case (both CREATE TABLE and INSERT statements)? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
277589569 | |
https://github.com/simonw/datasette/issues/155#issuecomment-347714471 | https://api.github.com/repos/simonw/datasette/issues/155 | 347714471 | MDEyOklzc3VlQ29tbWVudDM0NzcxNDQ3MQ== | 9599 | 2017-11-29T00:47:21Z | 2017-11-29T00:47:21Z | OWNER | Thanks! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
277589569 | |
https://github.com/simonw/datasette/issues/155#issuecomment-347715452 | https://api.github.com/repos/simonw/datasette/issues/155 | 347715452 | MDEyOklzc3VlQ29tbWVudDM0NzcxNTQ1Mg== | 9599 | 2017-11-29T00:52:30Z | 2017-11-29T00:52:30Z | OWNER | Interestingly, it almost does the right thing on the individual row page: https://bug-155-dkcqckhgki.now.sh/bug-155-9a7bb68/lhs/1 <img width="303" alt="cursor_and_bug-155__lhs" src="https://user-images.githubusercontent.com/9599/33352129-511419e4-d45c-11e7-98f3-9c1dfefa6350.png"> The symbol has been expanded, but there's a rogue '1' that shouldn't be there at all - I think that's bug #152 The table view itself is definitely doing the wrong thing: https://bug-155-dkcqckhgki.now.sh/bug-155-9a7bb68/lhs <img width="546" alt="cursor_and_bug-155__lhs__2_rows_and_paradise_papers_tie_kushner_startup_to_russian_money_ _the_forward" src="https://user-images.githubusercontent.com/9599/33352178-8491b9a2-d45c-11e7-8d89-fedd455cfcba.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
277589569 | |
https://github.com/simonw/datasette/issues/153#issuecomment-347735334 | https://api.github.com/repos/simonw/datasette/issues/153 | 347735334 | MDEyOklzc3VlQ29tbWVudDM0NzczNTMzNA== | 9599 | 2017-11-29T02:45:03Z | 2017-11-29T02:45:03Z | OWNER | @ftrain OK I've shipped the first version of this. Here's the initial documentation: Create a `metadata.json` file that looks like this: { "extra_css_urls": [ "https://simonwillison.net/static/css/all.bf8cd891642c.css" ], "extra_js_urls": [ "https://code.jquery.com/jquery-3.2.1.slim.min.js" ] } Then start datasette like this: datasette mydb.db --metadata=metadata.json The CSS and JavaScript files will be linked in the `<head>` of every page. You can also specify a SRI (subresource integrity hash) for these assets: { "extra_css_urls": [ { "url": "https://simonwillison.net/static/css/all.bf8cd891642c.css", "sri": "sha384-9qIZekWUyjCyDIf2YK1FRoKiPJq4PHt6tp/ulnuuyRBvazd0hG7pWbE99zvwSznI" } ], "extra_js_urls": [ { "url": "https://code.jquery.com/jquery-3.2.1.slim.min.js", "sri": "sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g=" } ] } Modern browsers will only execute the stylsheet or JavaScript if the SRI hash matches the content served. You can generate hashes using www.srihash.org This isn't shipped in a release yet, but you can still access these features in `datasette publish` like so: datasette publish now mydb.db --metadata=metadata.json --branch=master The `--branch=master` option will pull the latest master build of Datasette from GitHub. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/153#issuecomment-347735598 | https://api.github.com/repos/simonw/datasette/issues/153 | 347735598 | MDEyOklzc3VlQ29tbWVudDM0NzczNTU5OA== | 9599 | 2017-11-29T02:46:31Z | 2017-11-29T02:47:27Z | OWNER | To style individual columns you'll currently need to use the `nth-of-type` selector, e.g.: td:nth-of-type(5):before { white-space: pre } | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/153#issuecomment-347735724 | https://api.github.com/repos/simonw/datasette/issues/153 | 347735724 | MDEyOklzc3VlQ29tbWVudDM0NzczNTcyNA== | 9599 | 2017-11-29T02:47:14Z | 2017-11-29T02:47:14Z | OWNER | (This only addresses point 2 in your issue description - points 1 and point 3 are still to come) | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/153#issuecomment-347928926 | https://api.github.com/repos/simonw/datasette/issues/153 | 347928926 | MDEyOklzc3VlQ29tbWVudDM0NzkyODkyNg== | 9599 | 2017-11-29T17:09:40Z | 2017-11-29T17:09:40Z | OWNER | OK, that's point 1 covered. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/153#issuecomment-348103270 | https://api.github.com/repos/simonw/datasette/issues/153 | 348103270 | MDEyOklzc3VlQ29tbWVudDM0ODEwMzI3MA== | 9599 | 2017-11-30T07:16:40Z | 2017-11-30T07:16:40Z | OWNER | Every template now gets CSS classes in the body designed to support custom styling. The index template (the top level page at /) gets this: <body class="index"> The database template (/dbname/) gets this: <body class="db db-dbname"> The table template (/dbname/tablename) gets: <body class="table db-dbname table-tablename"> The row template (/dbname/tablename/rowid) gets: <body class="row db-dbname table-tablename"> The db-x and table-x classes use the database or table names themselves IF they are valid CSS identifiers. If they aren't, we strip any invalid characters out and append a 6 character md5 digest of the original name, in order to ensure that multiple tables which resolve to the same stripped character version still have different CSS classes. Some examples (extracted from the unit tests): "simple" => "simple" "MixedCase" => "MixedCase" "-no-leading-hyphens" => "no-leading-hyphens-65bea6" "_no-leading-underscores" => "no-leading-underscores-b921bc" "no spaces" => "no-spaces-7088d7" "-" => "336d5e" "no $ characters" => "no--characters-59e024" | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/12#issuecomment-348245757 | https://api.github.com/repos/simonw/datasette/issues/12 | 348245757 | MDEyOklzc3VlQ29tbWVudDM0ODI0NTc1Nw== | 9599 | 2017-11-30T16:39:45Z | 2017-11-30T16:39:45Z | OWNER | It is now possible to over-ride templates on a per-database / per-row or per- table basis. When you access e.g. `/mydatabase/mytable` Datasette will look for the following: - table-mydatabase-mytable.html - table.html If you provided a `--template-dir` argument to datasette serve it will look in that directory first. The lookup rules are as follows: Index page (/): index.html Database page (/mydatabase): database-mydatabase.html database.html Table page (/mydatabase/mytable): table-mydatabase-mytable.html table.html Row page (/mydatabase/mytable/id): row-mydatabase-mytable.html row.html If a table name has spaces or other unexpected characters in it, the template filename will follow the same rules as our custom `<body>` CSS classes introduced in 8ab3a16 - for example, a table called "Food Trucks" will attempt to load the following templates: table-mydatabase-Food-Trucks-399138.html table.html It is possible to extend the default templates using Jinja template inheritance. If you want to customize EVERY row template with some additional content you can do so by creating a `row.html` template like this: {% extends "default:row.html" %} {% block content %} <h1>EXTRA HTML AT THE TOP OF THE CONTENT BLOCK</h1> <p>This line renders the original block:</p> {{ super() }} {% endblock %} | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267523511 | |
https://github.com/simonw/datasette/issues/153#issuecomment-348245843 | https://api.github.com/repos/simonw/datasette/issues/153 | 348245843 | MDEyOklzc3VlQ29tbWVudDM0ODI0NTg0Mw== | 9599 | 2017-11-30T16:40:02Z | 2017-11-30T16:40:02Z | OWNER | It is now possible to over-ride templates on a per-database / per-row or per- table basis. When you access e.g. `/mydatabase/mytable` Datasette will look for the following: - table-mydatabase-mytable.html - table.html If you provided a `--template-dir` argument to datasette serve it will look in that directory first. The lookup rules are as follows: Index page (/): index.html Database page (/mydatabase): database-mydatabase.html database.html Table page (/mydatabase/mytable): table-mydatabase-mytable.html table.html Row page (/mydatabase/mytable/id): row-mydatabase-mytable.html row.html If a table name has spaces or other unexpected characters in it, the template filename will follow the same rules as our custom `<body>` CSS classes introduced in 8ab3a16 - for example, a table called "Food Trucks" will attempt to load the following templates: table-mydatabase-Food-Trucks-399138.html table.html It is possible to extend the default templates using Jinja template inheritance. If you want to customize EVERY row template with some additional content you can do so by creating a `row.html` template like this: {% extends "default:row.html" %} {% block content %} <h1>EXTRA HTML AT THE TOP OF THE CONTENT BLOCK</h1> <p>This line renders the original block:</p> {{ super() }} {% endblock %} | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/153#issuecomment-348248406 | https://api.github.com/repos/simonw/datasette/issues/153 | 348248406 | MDEyOklzc3VlQ29tbWVudDM0ODI0ODQwNg== | 9599 | 2017-11-30T16:47:45Z | 2017-11-30T16:47:45Z | OWNER | Remaining work on this now lives in a milestone: https://github.com/simonw/datasette/milestone/6 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/126#issuecomment-348248957 | https://api.github.com/repos/simonw/datasette/issues/126 | 348248957 | MDEyOklzc3VlQ29tbWVudDM0ODI0ODk1Nw== | 9599 | 2017-11-30T16:49:24Z | 2017-11-30T16:49:24Z | OWNER | https://simonwillison.net/2017/Nov/25/new-in-datasette/ | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275135535 | |
https://github.com/simonw/datasette/issues/156#issuecomment-348255782 | https://api.github.com/repos/simonw/datasette/issues/156 | 348255782 | MDEyOklzc3VlQ29tbWVudDM0ODI1NTc4Mg== | 9599 | 2017-11-30T17:11:34Z | 2017-11-30T17:11:34Z | OWNER | http://datasette.readthedocs.io/en/latest/custom_templates.html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
278189708 | |
https://github.com/simonw/datasette/issues/153#issuecomment-348255925 | https://api.github.com/repos/simonw/datasette/issues/153 | 348255925 | MDEyOklzc3VlQ29tbWVudDM0ODI1NTkyNQ== | 9599 | 2017-11-30T17:12:03Z | 2017-11-30T17:12:03Z | OWNER | Documentation is now live for this: http://datasette.readthedocs.io/en/latest/custom_templates.html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276842536 | |
https://github.com/simonw/datasette/issues/160#issuecomment-348404864 | https://api.github.com/repos/simonw/datasette/issues/160 | 348404864 | MDEyOklzc3VlQ29tbWVudDM0ODQwNDg2NA== | 9599 | 2017-12-01T05:26:57Z | 2017-12-01T05:26:57Z | OWNER | Question is... what should happen to the default static stuff? At the moment that's just https://fivethirtyeight.datasettes.com/-/static/app.css - though I want to improve that to include a content hash, see #154 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
278208011 | |
https://github.com/simonw/datasette/issues/154#issuecomment-348404988 | https://api.github.com/repos/simonw/datasette/issues/154 | 348404988 | MDEyOklzc3VlQ29tbWVudDM0ODQwNDk4OA== | 9599 | 2017-12-01T05:27:40Z | 2017-12-01T05:27:40Z | OWNER | If I do add additional static file bundling should that automatically get content hashes as well? #160 - problem with that is then I might have to parse the CSS files and rewrite their internal background-url references etc. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276873891 | |
https://github.com/simonw/datasette/issues/20#issuecomment-348420129 | https://api.github.com/repos/simonw/datasette/issues/20 | 348420129 | MDEyOklzc3VlQ29tbWVudDM0ODQyMDEyOQ== | 9599 | 2017-12-01T07:16:25Z | 2017-12-01T07:16:25Z | OWNER | I've found some examples of canned queries I want to support that can't be represented as views, so I'm going to reopen this. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267759136 | |
https://github.com/simonw/datasette/issues/20#issuecomment-348420955 | https://api.github.com/repos/simonw/datasette/issues/20 | 348420955 | MDEyOklzc3VlQ29tbWVudDM0ODQyMDk1NQ== | 9599 | 2017-12-01T07:21:08Z | 2017-12-01T07:21:08Z | OWNER | I'll use the existing metadata.json file: { "databases": { "mydb": { "queries": { "custom_thingy": {... The query definition can either be just a string of SQL, or it can be an object with a sql key and optional title and description keys. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267759136 | |
https://github.com/simonw/datasette/issues/160#issuecomment-348719680 | https://api.github.com/repos/simonw/datasette/issues/160 | 348719680 | MDEyOklzc3VlQ29tbWVudDM0ODcxOTY4MA== | 9599 | 2017-12-02T20:59:27Z | 2017-12-02T20:59:27Z | OWNER | This is about more than just CSS and JavaScript - there are plenty of reasons someone might want to bundle HTML as well, e.g. for building something like https://sf-tree-search.now.sh/ So, instead of thinking about this in terms of /static/, I'm going to think about this in terms of allowing people to mount one or more document roots (or docroots). datasette serve mydb.db -d my-doc-root/ This will cause the root of the server to show content from the `my-doc-root/` directory (assuming it has an index.html file in it). A more common option will be to mount specific folders to specific directories, like this: datasette serve mydb.db -d static:my-static/ Now any hits to `/static/foo.css` will serve content from `my-static/foo.css` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
278208011 | |
https://github.com/simonw/datasette/issues/160#issuecomment-348719752 | https://api.github.com/repos/simonw/datasette/issues/160 | 348719752 | MDEyOklzc3VlQ29tbWVudDM0ODcxOTc1Mg== | 9599 | 2017-12-02T21:00:21Z | 2017-12-02T21:00:21Z | OWNER | Not sure which I like better out of `-d/--docroot` or `-s/--static` or `-m/--mount` for this. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
278208011 | |
https://github.com/simonw/datasette/issues/160#issuecomment-348719827 | https://api.github.com/repos/simonw/datasette/issues/160 | 348719827 | MDEyOklzc3VlQ29tbWVudDM0ODcxOTgyNw== | 9599 | 2017-12-02T21:01:36Z | 2017-12-02T21:01:36Z | OWNER | `-m` is already taken for `--metadata`. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
278208011 | |
https://github.com/simonw/datasette/issues/160#issuecomment-348793054 | https://api.github.com/repos/simonw/datasette/issues/160 | 348793054 | MDEyOklzc3VlQ29tbWVudDM0ODc5MzA1NA== | 9599 | 2017-12-03T16:35:22Z | 2017-12-03T16:35:22Z | OWNER | You can now tell Datasette to serve static files from a specific location at a specific mountpoint. For example: datasette serve mydb.db --static extra-css:/tmp/static/css Now if you visit this URL: http://localhost:8001/extra-css/blah.css The following file will be served: /tmp/static/css/blah.css | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
278208011 | |
https://github.com/simonw/datasette/issues/160#issuecomment-348793156 | https://api.github.com/repos/simonw/datasette/issues/160 | 348793156 | MDEyOklzc3VlQ29tbWVudDM0ODc5MzE1Ng== | 9599 | 2017-12-03T16:35:53Z | 2017-12-03T16:35:53Z | OWNER | Still TODO: teach `datasette publish` and friends about this. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
278208011 | |
https://github.com/simonw/datasette/issues/161#issuecomment-348860191 | https://api.github.com/repos/simonw/datasette/issues/161 | 348860191 | MDEyOklzc3VlQ29tbWVudDM0ODg2MDE5MQ== | 9599 | 2017-12-04T04:52:14Z | 2017-12-04T04:52:14Z | OWNER | Seems like a reasonable thing for us to support. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
278814220 | |
https://github.com/simonw/datasette/issues/20#issuecomment-348860623 | https://api.github.com/repos/simonw/datasette/issues/20 | 348860623 | MDEyOklzc3VlQ29tbWVudDM0ODg2MDYyMw== | 9599 | 2017-12-04T04:56:21Z | 2017-12-04T04:56:21Z | OWNER | While I'm doing this, I could add per-database and per-table metadata too ala #68 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267759136 | |
https://github.com/simonw/datasette/issues/20#issuecomment-349027974 | https://api.github.com/repos/simonw/datasette/issues/20 | 349027974 | MDEyOklzc3VlQ29tbWVudDM0OTAyNzk3NA== | 9599 | 2017-12-04T17:01:19Z | 2017-12-04T17:01:19Z | OWNER | This is also a good opportunity to re-factor out a separate query.html template - right now the database.html template is doing two jobs. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267759136 | |
https://github.com/simonw/datasette/issues/135#issuecomment-349047335 | https://api.github.com/repos/simonw/datasette/issues/135 | 349047335 | MDEyOklzc3VlQ29tbWVudDM0OTA0NzMzNQ== | 9599 | 2017-12-04T17:57:08Z | 2017-12-04T17:57:08Z | OWNER | Turns out there's a bug in this: https://timezones-now-hrjgkinozh.now.sh/timezones-0d61a90/ElementaryGeometries should not be showing the search box. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275179724 | |
https://github.com/simonw/datasette/issues/20#issuecomment-349359498 | https://api.github.com/repos/simonw/datasette/issues/20 | 349359498 | MDEyOklzc3VlQ29tbWVudDM0OTM1OTQ5OA== | 9599 | 2017-12-05T16:30:06Z | 2017-12-05T16:30:06Z | OWNER | Named canned queries can now be defined in metadata.json like this: { "databases": { "timezones": { "queries": { "timezone_for_point": "select tzid from timezones ..." } } } } These will be shown in a new "Queries" section beneath "Views" on the database page. <img width="528" alt="timezones" src="https://user-images.githubusercontent.com/9599/33618097-762ae188-d996-11e7-8f85-29f998ef7a18.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267759136 | |
https://github.com/simonw/datasette/issues/20#issuecomment-349383276 | https://api.github.com/repos/simonw/datasette/issues/20 | 349383276 | MDEyOklzc3VlQ29tbWVudDM0OTM4MzI3Ng== | 9599 | 2017-12-05T17:45:20Z | 2017-12-05T17:45:20Z | OWNER | http://datasette.readthedocs.io/en/latest/sql_queries.html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267759136 |