Pro hack: Convert checklist to separate rows

I was playing around with the idea of being able to enter meeting notes in a Big Cell mode, and then quickly convert those into separate rows in a Tasks table. Here’s what I managed to do:

This is a hacky solution that relies on deep object modification (props to @Filmos). I added the logic to include sub-lists etc when copying each task. reducing nesting level by one. I haven’t implemented the way to preserve character-level formatting (bold, color etc) because that’s more tricky, but with enough tenacity that can also be done.

Feel free to play around with the doc here:

For pro Coda users: feel free to explore the “Under the hood” section. The process is broken into steps:

  1. Convert the notes field to inner JSON representation
  2. Extract lines
  3. Collect nested lines under top level lines
  4. Render into paste-able JSON representations, now one representation per item
  5. With a button, insert those into the Tasks table
17 Likes

Hi @Paul_Danyliuk,
This is incredibly smart and useful! Great post, as usual :+1:

I sincerely hope Coda won’t dismiss low level functions as I’m also taking advantage of deconstructing JSON objects in few docs.

1 Like

@Paul_Danyliuk,

In your solution what would be right way or formula to exclude the completed / ‘“isChecked”:true’ items?

Thanks,

Pru

To anyone finding this old topic:

  1. The approach in the original post doesn’t work anymore. Editor was updated and the data structure that describes a text field / canvas is now different.

  2. This is the new way of e.g. extracting checked/unchecked items from a text field or a canvas column:

4 Likes

It doesn´t work if I try to copy it to my workspace. Any trick so I can use it?
Thank you!!

Hey @Rochele_Melo, welcome to the Community!

Yeah, as I indicated in my last answer above, the approach in the original message doesn’t work anymore because data model behind those checkboxes changed a while ago. There’s a link to the other topic where I was solving a similar thing; it works with the current model and while it doesn’t immediately give the final solution, I hope you could work it out.