issue_comments
20 rows where issue = 628499086 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: created_at (date), updated_at (date)
issue 1
- "flash messages" mechanism · 20 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
637843494 | https://github.com/simonw/datasette/issues/790#issuecomment-637843494 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzg0MzQ5NA== | simonw 9599 | 2020-06-02T22:35:22Z | 2020-06-02T22:35:22Z | OWNER | Message CSS is now demonstrated on https://latest.datasette.io/-/patterns |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
637813616 | https://github.com/simonw/datasette/issues/790#issuecomment-637813616 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzgxMzYxNg== | simonw 9599 | 2020-06-02T21:22:02Z | 2020-06-02T21:22:02Z | OWNER | Debug tool is live here: https://latest.datasette.io/-/messages Documentation is here: https://github.com/simonw/datasette/blob/master/docs/internals.rst#add_messagerequest-message-message_typedatasetteinfo |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
637793590 | https://github.com/simonw/datasette/issues/790#issuecomment-637793590 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzc5MzU5MA== | simonw 9599 | 2020-06-02T20:40:02Z | 2020-06-02T20:40:02Z | OWNER | From https://github.com/simonw/datasette/issues/698#issuecomment-621037724
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
637790860 | https://github.com/simonw/datasette/issues/790#issuecomment-637790860 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzc5MDg2MA== | simonw 9599 | 2020-06-02T20:34:15Z | 2020-06-02T20:34:15Z | OWNER | The |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
637708090 | https://github.com/simonw/datasette/issues/790#issuecomment-637708090 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzcwODA5MA== | simonw 9599 | 2020-06-02T17:52:30Z | 2020-06-02T17:52:30Z | OWNER | I need to make sure that any time cookies are set there's no cache-control header (or it is set to private). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
637699337 | https://github.com/simonw/datasette/issues/790#issuecomment-637699337 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzY5OTMzNw== | simonw 9599 | 2020-06-02T17:34:47Z | 2020-06-02T17:34:47Z | OWNER | I'm going to use a output renderer plugin to test this, since then my unit tests can run against custom code that both sets and displays messages. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
637066496 | https://github.com/simonw/datasette/issues/790#issuecomment-637066496 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzA2NjQ5Ng== | simonw 9599 | 2020-06-01T19:48:20Z | 2020-06-01T19:48:20Z | OWNER | I'm going to stash these on the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
637009509 | https://github.com/simonw/datasette/issues/790#issuecomment-637009509 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzAwOTUwOQ== | simonw 9599 | 2020-06-01T17:44:55Z | 2020-06-01T17:46:18Z | OWNER | Problem with Solution: call it |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636978065 | https://github.com/simonw/datasette/issues/790#issuecomment-636978065 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjk3ODA2NQ== | simonw 9599 | 2020-06-01T16:42:59Z | 2020-06-01T17:44:12Z | OWNER |
Then later:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636959774 | https://github.com/simonw/datasette/issues/790#issuecomment-636959774 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjk1OTc3NA== | simonw 9599 | 2020-06-01T16:15:33Z | 2020-06-01T16:15:33Z | OWNER | It would be neat if this was driven by a method on |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636934016 | https://github.com/simonw/datasette/issues/790#issuecomment-636934016 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkzNDAxNg== | simonw 9599 | 2020-06-01T15:49:26Z | 2020-06-01T15:49:26Z | OWNER | Flask and Django both support "types" of message - info, warning etc. I think I should do the same. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636925354 | https://github.com/simonw/datasette/issues/790#issuecomment-636925354 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkyNTM1NA== | simonw 9599 | 2020-06-01T15:32:02Z | 2020-06-01T15:32:02Z | OWNER | If The problem then is how do I know to clean up the memory used by that dictionary when the request flows out of the system? I guess the code that updates the cookies in the response could do that. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636922104 | https://github.com/simonw/datasette/issues/790#issuecomment-636922104 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkyMjEwNA== | simonw 9599 | 2020-06-01T15:25:39Z | 2020-06-01T15:25:39Z | OWNER | What if I use a mutable key on ASGI spec says this: https://asgi.readthedocs.io/en/latest/specs/main.html#middleware
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636920304 | https://github.com/simonw/datasette/issues/790#issuecomment-636920304 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkyMDMwNA== | simonw 9599 | 2020-06-01T15:22:15Z | 2020-06-01T15:22:15Z | OWNER | Here's how the Django stuff works: https://github.com/django/django/blob/master/django/contrib/messages/storage/base.py Notably the messages are mostly dealt with on the request object, with a piece of middleware that reads from the request and modifies the response (to set or clear cookies) right at the end: https://github.com/django/django/blob/master/django/contrib/messages/middleware.py |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636916107 | https://github.com/simonw/datasette/issues/790#issuecomment-636916107 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkxNjEwNw== | simonw 9599 | 2020-06-01T15:14:30Z | 2020-06-01T15:15:52Z | OWNER | Alternative: Maybe use a request correlation ID that gets added to the scope? This is all getting a bit messy. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636915499 | https://github.com/simonw/datasette/issues/790#issuecomment-636915499 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkxNTQ5OQ== | simonw 9599 | 2020-06-01T15:13:40Z | 2020-06-01T15:13:40Z | OWNER | Maybe two utility functions:
Problem: the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636912730 | https://github.com/simonw/datasette/issues/790#issuecomment-636912730 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkxMjczMA== | simonw 9599 | 2020-06-01T15:08:13Z | 2020-06-01T15:08:13Z | OWNER | I'm going to build the first version of this with signed cookies. I'm inclined to do this all on the request object, since it's the object representing the current request as it flows through the application. I need the ability to remember which messages were set and which need to be cleared, so I need to do that on something that is available for the lifetime of the request. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636908972 | https://github.com/simonw/datasette/issues/790#issuecomment-636908972 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkwODk3Mg== | simonw 9599 | 2020-06-01T15:01:00Z | 2020-06-01T15:01:00Z | OWNER | Setting messages just needs access to the response. Reading messages needs access to both request AND response, since it needs to clear the messages that are being displayed. That's if the messages are persisted exclusively in cookies - which makes sense for Django since it's designed to run as many different load-balanced processes. Since Datasette is a single process which can access an on-file database, maybe consider storing the flash messages within Datasette memory itself - a sort of session mechanism? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636906773 | https://github.com/simonw/datasette/issues/790#issuecomment-636906773 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkwNjc3Mw== | simonw 9599 | 2020-06-01T14:57:02Z | 2020-06-01T14:58:14Z | OWNER | Actually I'm inclined to use cookies now, ala Django: https://docs.djangoproject.com/en/3.0/ref/contrib/messages/
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636906581 | https://github.com/simonw/datasette/issues/790#issuecomment-636906581 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkwNjU4MQ== | simonw 9599 | 2020-06-01T14:56:42Z | 2020-06-01T14:56:42Z | OWNER | I can use the new signed values support from #785 to help build this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
user 1