{"html_url": "https://github.com/simonw/datasette/issues/864#issuecomment-650847013", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/864", "id": 650847013, "node_id": "MDEyOklzc3VlQ29tbWVudDY1MDg0NzAxMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-06-29T00:41:55Z", "updated_at": "2020-06-29T00:41:55Z", "author_association": "OWNER", "body": "To test this I'll need a plugin test that renders a custom template. Here's an example I can imitate: https://github.com/simonw/datasette/blob/7ac4936cec87f5a591e5d2680f0acefc3d35a705/tests/test_plugins.py#L588-L596", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 644309017, "label": "datasette.add_message() doesn't work inside plugins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/864#issuecomment-650846625", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/864", "id": 650846625, "node_id": "MDEyOklzc3VlQ29tbWVudDY1MDg0NjYyNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-06-29T00:39:47Z", "updated_at": "2020-06-29T00:39:47Z", "author_association": "OWNER", "body": "I think the fix is to move the `\"show_messages\"` variable to here:\r\n\r\nhttps://github.com/simonw/datasette/blob/7ac4936cec87f5a591e5d2680f0acefc3d35a705/datasette/app.py#L735-L748", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 644309017, "label": "datasette.add_message() doesn't work inside plugins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/864#issuecomment-650846473", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/864", "id": 650846473, "node_id": "MDEyOklzc3VlQ29tbWVudDY1MDg0NjQ3Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-06-29T00:39:04Z", "updated_at": "2020-06-29T00:39:04Z", "author_association": "OWNER", "body": "Re-opening: plugins may get to set messages but they don't display them, even if they render a template that extends `base.html`. For example, this code in a plugin:\r\n```python\r\n return Response.html(\r\n await datasette.render_template(\r\n \"write.html\",\r\n {\"databases\": databases, \"sql\": request.args.get(\"sql\") or \"\"},\r\n request=request,\r\n )\r\n )\r\n```\r\nThis won't display messages. The reason is that the messages are made available to the template context in the `BaseView.render()` method here:\r\nhttps://github.com/simonw/datasette/blob/7ac4936cec87f5a591e5d2680f0acefc3d35a705/datasette/views/base.py#L87-L95", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 644309017, "label": "datasette.add_message() doesn't work inside plugins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/864#issuecomment-650842514", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/864", "id": 650842514, "node_id": "MDEyOklzc3VlQ29tbWVudDY1MDg0MjUxNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-06-29T00:12:59Z", "updated_at": "2020-06-29T00:12:59Z", "author_association": "OWNER", "body": "> I've made enough progress on this to be able to solve the messages issue in #864. I may still complete this overall goal (registering internal views with `register_routes()`) as part of Datasette 0.45 but it would be OK if it slipped to a later release.\r\nhttps://github.com/simonw/datasette/issues/870#issuecomment-650842381", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 644309017, "label": "datasette.add_message() doesn't work inside plugins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/864#issuecomment-648580556", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/864", "id": 648580556, "node_id": "MDEyOklzc3VlQ29tbWVudDY0ODU4MDU1Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-06-24T04:40:49Z", "updated_at": "2020-06-24T04:40:49Z", "author_association": "OWNER", "body": "The ideal fix here would be to rework my `BaseView` subclass mechanism to work with `register_routes()` so that those views don't have any special privileges above plugin-provided views.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 644309017, "label": "datasette.add_message() doesn't work inside plugins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/864#issuecomment-648580236", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/864", "id": 648580236, "node_id": "MDEyOklzc3VlQ29tbWVudDY0ODU4MDIzNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-06-24T04:39:39Z", "updated_at": "2020-06-24T04:39:39Z", "author_association": "OWNER", "body": "Urgh, fixing this is going to be a bit of a pain.\r\n\r\nHere's where I added that custom `dispatch_request()` method - it was to implement flash messaging in #790: https://github.com/simonw/datasette/blame/1a5b7d318fa923edfcefd3df8f64dae2e9c49d3f/datasette/views/base.py#L85\r\n\r\nIf I want this to be made available to `register_routes()` views as well, I'm going to have to move the logic somewhere else. In particular I need to make sure that the `request` object is created once and used throughout the whole request cycle.\r\n\r\nCurrently `register_routes()` view functions get their own separate request object which is created here:\r\n\r\nhttps://github.com/simonw/datasette/blob/1a5b7d318fa923edfcefd3df8f64dae2e9c49d3f/datasette/app.py#L1057-L1068\r\n\r\nSo I'm going to have to refactor this quite a bit to get that shared request object which can be passed both to `register_routes` views and to my various `BaseView` subclasses.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 644309017, "label": "datasette.add_message() doesn't work inside plugins"}, "performed_via_github_app": null}