html_url,issue_url,id,node_id,user,user_label,created_at,updated_at,author_association,body,reactions,issue,issue_label,performed_via_github_app https://github.com/simonw/datasette/issues/521#issuecomment-507922465,https://api.github.com/repos/simonw/datasette/issues/521,507922465,MDEyOklzc3VlQ29tbWVudDUwNzkyMjQ2NQ==,9599,simonw,2019-07-03T03:23:55Z,2019-07-03T03:23:55Z,OWNER,Fixed by #533,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459621683,Easier way of creating custom row templates, https://github.com/simonw/datasette/issues/521#issuecomment-505422550,https://api.github.com/repos/simonw/datasette/issues/521,505422550,MDEyOklzc3VlQ29tbWVudDUwNTQyMjU1MA==,9599,simonw,2019-06-25T12:28:48Z,2019-06-25T12:28:48Z,OWNER,Still needed before merge: documentation! I can expand this section: https://datasette.readthedocs.io/en/stable/custom_templates.html#custom-templates,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459621683,Easier way of creating custom row templates, https://github.com/simonw/datasette/issues/521#issuecomment-505421892,https://api.github.com/repos/simonw/datasette/issues/521,505421892,MDEyOklzc3VlQ29tbWVudDUwNTQyMTg5Mg==,9599,simonw,2019-06-25T12:26:54Z,2019-06-25T12:26:54Z,OWNER,"This is starting to shape up. Example template: ``` {% for row in display_rows %}

{{ row[""First_Name""] }} {{ row[""Last_Name""] }}

{% if row[""Link_to_Photo""] %} {% endif %} {% for cell in row.cells[3:] %} {% if cell.raw and cell.column != ""createdTime"" %}

{{ cell.column }}: {{ cell.value }}

{% endif %} {% endfor %}
{% endfor %} ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459621683,Easier way of creating custom row templates, https://github.com/simonw/datasette/issues/521#issuecomment-505405030,https://api.github.com/repos/simonw/datasette/issues/521,505405030,MDEyOklzc3VlQ29tbWVudDUwNTQwNTAzMA==,9599,simonw,2019-06-25T11:34:21Z,2019-06-25T11:34:21Z,OWNER,Actually I'm OK here - `display_columns_and_rows()` is already only used by the HTML template rendering path.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459621683,Easier way of creating custom row templates, https://github.com/simonw/datasette/issues/521#issuecomment-505280611,https://api.github.com/repos/simonw/datasette/issues/521,505280611,MDEyOklzc3VlQ29tbWVudDUwNTI4MDYxMQ==,9599,simonw,2019-06-25T04:46:10Z,2019-06-25T04:46:10Z,OWNER,"Of course I can't do it in this part of he code because it's constructing plain JSON objects here. I'll need to do it in the section that prepares special objects for the HTML.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459621683,Easier way of creating custom row templates, https://github.com/simonw/datasette/issues/521#issuecomment-505279560,https://api.github.com/repos/simonw/datasette/issues/521,505279560,MDEyOklzc3VlQ29tbWVudDUwNTI3OTU2MA==,9599,simonw,2019-06-25T04:40:16Z,2019-06-25T04:40:38Z,OWNER,"I think the trick is to redefine what a ""cell_row"" is. Each row is currently a list of cells: https://github.com/simonw/datasette/blob/6341f8cbc7833022012804dea120b838ec1f6558/datasette/views/table.py#L159-L163 I can redefine the row (the `cells` variable in the above example) as a thing-that-iterates-cells (hence behaving like a list) but that also supports `__getitem__` access for looking up cell values if you know the name of the column.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459621683,Easier way of creating custom row templates,