After much frustration , many Coda community and Google searches , and lots of yelling talking to my monitor “Why the XXXX doesn’t that work!?” , I finally figured out how to make canvas columns dynamic based on some condition(s).
During my research, I saw other people and threads asking the same question, so I thought I’d share this with the community.
Why Use Canvas Columns?
Here’s one of many use cases.
- Meeting Templates - One template is great but what if you need different templates for different reasons (conditions) like:
- Weekly vs Quarterly meetings
- Planning vs Retrospective meetings
- Different departments/teams
When adding a canvas column, you have the following available options.
Due to the highlighted items in the image above, many makers assumed this meant we could add If/Switch If formulas to conditionally add templates to a cell.
However, it seems that any formula just didn’t work even when they should…hence my frustration!
Below is a doc showing the fix I discovered, the fix Coda made (I think), and a reason I think some makers were having issues with canvas columns.
hi @Mike_Ray , I like the idea of meeting templates. It works handy!
the SwitchIf can be replaced by chaining:
thisRow.Team.[Meeting Templates] More dynamic, easier and faster.
SwitchIf(Override=true, General.[Meeting Templates],"No Template Used"
can be written shorter as:
SwitchIf(Override, General.[Meeting Templates],"No Template Used"
Hope it helps, cheers, Christiaan
Thanks for the tips! Always looking to improve.
About the SwitchIf, the way you posted is what I originally had but it gave me some errors when I tried to do some other configurations.
my pleasure @Mike_Ray
what kind of errors you encountered using this chaining logic? Do you recall them?
Hi Mike Ray,
thanks for sharing with the community, and KUDOS to figuring it out. It truly is the best feeling when one finally overcomes a problem one is stuck on in Coda
Love your template and your approach!
Please allow me to add my 2 cents: As you point out in your doc, in your template the tables are disconnected. Hence, any changes captured during a particular meeting will not be pushed back to the base table (which might be perfectly fine for certain use cases, of course).
For those use cases, however, where connected views are essential, I have thus built upon your approach and created a template that uses multiple templates, but keeps the tables connected.
Anyone interested can find it here
All the best from Austria,
this is an excellent thread, full of great magic.
thank you all for sharing