@Saul_Garcia thanks again for your great work on this. Finally got a chance to dig into it again.
Your Complex Formula Approach
This is great. Really helped me get my head around the proper way to iterate over the multiple nested lists.
The one part that makes me uncomfortable is the ToText() comparison - maybe I’m being paranoid but I like to reserve ToText() for display situations. I’ve modified it to
....Filter(myRowID = CurrentValue.myRowID).First() which also seems to work.
Reorganized Doc Approach
To summarize your strategy, you’re making join tables for
Picked Gear and
Items in Bundles.
At first I thought I could get away without these - after all, I was using formula columns to simplify things, so that
Gear List had a column for all associated events, and
Events had a column for all associated items, so I could reference whichever direction I needed.
But I see now how that’s not enough. Moving some of the complexity out of massive formulas like the one above, into columns of join tables, greatly simplifies interacting with that data elsewhere in the doc.
I suppose my reluctance was partly due to a vague sense that too many large tables is not as performant. My real-world use case involves hundreds of events per year and ~50 items per event. Do you know if Coda will perform ok with this kind of a table size? (perhaps it helps that I won’t be viewing those tables directly, just referencing them in formulas). [Edit: this page suggests your more atomic approach may run faster than complex formulas after all]
Other things I like:
- Having formulas push buttons. E.g. for Bundles and Cloning, you don’t repeat the code for associating an item with an event - you just filter to the item you want, and click its
- Simplifying the filtering of “Currently Picked Gear” (which also simplifies the “Remove” button) - overall things like this make the doc more natively Coda-ish (to the point that you can sometimes even use GUI filtering and button actions, rather than writing formulas)
- Better display of conflicting items and their associated events (including the ability to show the “Remove” button column, simplifying quick removal of conflicting items)
Overall, the takeaway seems to be don’t be afraid to break complex actions like this into visible intermediate steps in tables and column formulas.
I think this is really close. The last thing I want to do before beta testing this with my team is to make it multi-user, so that different people can plan different events simultaneously. I plan to replace the main “Event we are packing” control with a filtered table that has one row per user (as per this trick from Shishir)
P.S. @Jean_Pierre_Traets - I was just following the golden rule - ask questions in the format that you would like questions to be asked of you It also helps that the Coda team has made embedding and sharing docs so fluid on the forum.