Yet another question that has been asked and answered so many times:
How do I let multiple people use the doc at the same time and change filters just for themselves?
Time to have the ultimate answer in one place. I recorded the video explaining how to do that using a helper table. I call this approach the Flows Table pattern.
Create a table where each row is linked to each Coda user. Set up its columns to act as controls (checkboxes, selects, multi-selects etc)
Insert a view of this table whenever you need your controls. Filter the table so that only one row is displayed: the row for current
A good idea is to make a named formula
Current userto reference that row as well. The formula would be:
[HLP Flows].Filter(User = User()).First()
Set up your filters to not read from an interactive control or whatnot, but from
[Current user].[Column with input]
You can modify values in these controls, e.g. with preset buttons, using
ModifyRows. With canvas controls you couldn’t do that.
You can reuse this view across different pages and have inputs synchronized (since all these are just views of the same rows). With controls you cannot do that: you either duplicate a control and it acts independently, or you keep them in one place but have to switch pages back and forth if you want to use its value elsewhere.
You can choose not to expose these controls to your doc users at all, and just keep the Flows table privately to control which users see what. A makeshift admin panel of a sort (please be aware that neither filtering nor locking would prevent your users from copying the doc and getting access to all data, so this is not a security feature)
You can use this not only for filters, but for grouping and sorting as well. Just take this old trick and use input columns of the Flows table instead of canvas controls:
Sort / group table with external controls
The template doc to play with:
Cheers. Please subscribe to Coda Tricks if you haven’t already. I’m going live on an interview about Coda on Aug 19, and this is the deadline for me to finally get my blog out, so that I could promote it. I’ll announce the interview later, if you’re interested.