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/617#issuecomment-552253893 | https://api.github.com/repos/simonw/datasette/issues/617 | 552253893 | MDEyOklzc3VlQ29tbWVudDU1MjI1Mzg5Mw== | 9599 | 2019-11-11T00:46:42Z | 2021-12-18T01:41:47Z | OWNER | As noted in https://github.com/simonw/datasette/issues/621#issuecomment-552253208 a common pattern in this method is blocks of code that append new items to the `where_clauses`, `params` and `extra_human_descriptions` arrays. This is a useful refactoring opportunity. Code that fits this pattern: * The code that builds based on the filters: `where_clauses, params = filters.build_where_clauses(table)` and `human_description_en = filters.human_description_en(extra=extra_human_descriptions)` * Code that handles `?_where=`: `where_clauses.extend(request.args["_where"])` - though note that this also appends to a `extra_wheres_for_ui` array which nothing else uses * The `_through=` code, see #621 for details * The code that deals with `?_search=` FTS The keyset pagination code modifies `where_clauses` and `params` too, but I don't think it's quite going to work with the same abstraction that would cover the above examples. [UPDATE December 2021 - this comment became the basis for a new `filters_from_request` plugin hook, see also #473] | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
519613116 | |
https://github.com/simonw/datasette/issues/617#issuecomment-552254753 | https://api.github.com/repos/simonw/datasette/issues/617 | 552254753 | MDEyOklzc3VlQ29tbWVudDU1MjI1NDc1Mw== | 9599 | 2019-11-11T00:54:51Z | 2019-11-11T00:54:51Z | OWNER | That `table_filter()` plugin hook should probably be renamed though, since it could now apply to the regular custom SQL view as well as the table view. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
519613116 | |
https://github.com/simonw/datasette/issues/617#issuecomment-552254238 | https://api.github.com/repos/simonw/datasette/issues/617 | 552254238 | MDEyOklzc3VlQ29tbWVudDU1MjI1NDIzOA== | 9599 | 2019-11-11T00:49:57Z | 2019-11-11T00:51:35Z | OWNER | I experimented with a `table_filter()` plugin hook a while ago which looks very much like the abstraction I'm now talking about here: https://github.com/simonw/datasette/commit/5116c4ec8aed5091e1f75415424b80f613518dc6 - more details here: https://simonwillison.net/2018/Aug/6/russian-facebook-ads/#Weird_implementation_details_106 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
519613116 |