Linked list/table... but 2 levels down?

I’m working on my site with Softr, and I’ve resorted to a manual “hack” for something that I would like some feedback on. Maybe one of you have already built what I have in mind?

I’m trying to build dynamic pages for “curated collections” for my directory site. You can take a look at my “prototype” page (which isn’t fully dynamic at the moment but contains dynamic elements) here.

In addition to list pages (of items) and list item pages, these curated collections would consist of the following dynamic elements:

  • Dynamic intro and outro text (achieved from fields in “collections” linked table)
  • A selection of SOME items from a list (achieved by field “belongs to collection” in the item table)
  • For those items, generate two dynamic blocks:
      1. A comparison table, comparing a set of fields that are SPECIFIC TO THE COLLECTION (because different criteria/stats are more important in different categories of what’s compared)
      1. A list of the items with details/fields that are always the same regardless of collection (so a simple linked list)

So, my challenge is how I could generate 1) in a dynamic way, where the SELECTION OF FIELDS is dependent on info from the “collections” Airtable table. Is there a way that I could have my collections table consist of

  • One linked field “items”, linking to the title field from the “items” table (this is where I curate/pick the items for this specific collection)?
  • Another linked field “compare fields”, that somehow links to the COLUMNS (item details/specifications) that I choose? This is where it falls apart because it doesn’t seem possible - but I have a feeling that with some fancy scripting it might be possible to populate fields in the “collections” table dynamically according to the “compare fields” field. Help!

Any ideas on how this could be accomplished?

If I am understanding correctly, what you are essentially asking for is a way to dynamically determine which columns are presented in a table block on a page based on the list detail block for that page. As far as I know, you can only currently decide which rows are dynamically shown, but not which columns. I, too, would be very interested if anyone has a creative solution for this because it is something I have also been trying to figure out for my use case.

The semi-dynamic workaround that I have come up with is to create duplicate versions of the list details page for each configuration of columns I want to show. Then, I decide which version I am sending people to by setting the top-level list block to open an external URL that I have manually entered in Airtable (e.g., “/curriculum-maps-d1?recordId=XXX”, “/curriculum-maps-eda?recordId=XXX” etc.). This works as desired from an end-user standpoint and wasn’t too hard to set up initially, but it is annoying from a maintenance perspective because any changes to the page require me to make that change across multiple pages, which only gets more difficult the more it scales, so I hesitate to recommend it if you are dealing with a lot of versions for the list details page, but that is the best I have been able to come up with.

Yes, you’re understanding correctly. It also seems that we’ve arrived at a similar solution for a workaround.

What I’m now asking about is to use scripting to effectively compress/move over data from the 2nd-level Airtable table into the 1st-level table, so the second level is only used as a linked reference in Airtable. But I don’t have enough of a programming brain to really wrap my head around how it should work…