Passing data to Action Text?

Hello everyone!

I have a single Google Sheet storing 25 lessons containing assignments coded with a Lesson Number. I’d like to show the assignments for each lesson. The hard way (which works) is to crate 25 Action Texts, each of which opens a New Screen (using the Lessons sheet as source) and that screen contains inline lists which show the assignments (using Filter to only show the appropriate lesson). Works great, but I would have 25 screens to update when I want to make a design change.

Is there a way to do this with one screen? They are all the same, but the lesson number changes.

Is there a way to pass a value into the action? I tried to create a custom action which would drop a lesson number into the Users Glide table which I could then use as a filter. But I can’t see the users table and only can edit “This item” from the custom action screen.

Failing that, is there a way to copy a screen layout? I’m aware that I can copy/paste a component, but again … 25 identical screens to keep in sync is a big task.

Any ideas?

Thanks!

You can use relation column, or if-else column to pull needed lessons text from data column…

Even from a google sheet? I’m not opposed to glide tables but with no import feature I’m not about to convert one cell at a time. :sweat_smile:

Yes, glide relations works on Google sheets, and what do you mean by converting cells?

Sounds like your flow should be like this:

  • Shows an inline list of all lessons (assuming 25 lessons are 25 different rows).
  • The action of the inline list item will be either show details view, then in the details view you show an inline list of assignments related to that lesson, or show new screen and point it to the relation of assignments.

Should work regardless of you using GSheets or Glide Tables to do it.

1 Like

Ah. Ok. I assumed these only worked on Google Sheets. Thanks so much for your reply. Along with the next response I am understanding the approach. Thank you!

It does sound like you’re overcomplicating/over thinking this.
If the layout for each screen is identical, and the content only changes based on the lesson number, then you should only need to design a single details screen.

Could you provide a couple of screen shots that shows how your data is currently structured? Perhaps we can give you a steer in the right direction.

1 Like

Sure thing! OK, at a top level, I have 25 lessons. Right now, I represent them as action texts.

Each of these uses an action to grab the right resources:

As you can see, I am pulling from the lesson worksheet. Then, on that screen, I use inline lists to show the proper resources. To do this, I use Inline several inline lists:

I use separate lists because they each will display in a different way:

Embed:

Link:

Text:

If I understand correctly, I should create 25 Glide Tables consisting of relations, one for each Lesson number from Lessons GSheet and then point each Action Text in the lesson list to that sheet, correct? This way, I can have one screen to maintain as well as one master lesson sheet?

Sound really smart on paper but this is new territory for me, and I’m not entirely sure how to get the Sheet Lesson items into dedicated Glide Tables. I’m poking at relations and lookups etc right now but don’t see, for example how to get LESSON1 items from Sheet into a LESSON1 Glide Table.

Actually, I was looking for a screen shot of what this looks like in the Data Editor.

Are all these lessons in a single table?
I’m not sure why you are using Action Text components. The logical thing to use here would be a single Inline List component.

And no, one thing is for certain - you definitely do not need 25 Glide Tables. Based on what you’ve shared so far, you probably need 2 tables at most.

Here’s the data view for my main Gsheet:

You definitely have my attention! I’m missing a key idea here and happy to learn more! I can’t get my brain around 2 tables to show this! Thank you! I’m pretty new but have many apps under my belt but like I said, I’m missing something basic! :smiley:

No problem, let’s take this one step at a time :slightly_smiling_face:

From that, it appears that you have your lessons and assignments all listed together in a single sheet - is that correct?

Yes, I do. The primary reason I did this was so that I could easily add assignments in any lesson in a straightforward way. My add / edit routines work like a dream.

Okay, so you probably won’t like my suggestion, which is to split them into two separate sheets :wink:

If you absolutely don’t want to do that (you really should), then my next question would be - how do you distinguish in that sheet between a lesson and an assignment?

For example: Row 84 has a Lesson Title of “Denial Devotional” - is that a lesson or an assignment, and how can you tell which? Is there another column somewhere that isn’t shown that provides that distinction?

1 Like

You’re right. Not crazy about breaking it up but it’s not the end of the world. I would just need to be more creative in my approach to adding records. So for 25 lessons you’re suggesting 25 Glide Tables?

As for your other question a “lesson” is a container. Everything in the “Lessons” table is essentially an assignment (I should rename it to assignments). The Type field describes the type of assignment (TEXT opens a details view, LINK opens a browser link and EMBED opens a web view for the link). The “Lesson Number” field tells me what Lesson it belongs to.

No, no, no.
I’m suggesting two sheets/tables. One for your Lessons, and another for your Assignments. Here is how I would set it up:

  • Lessons: should have a minimum of two columns
    – Lesson Identifier. This can be anything, as long as it’s unique to each lesson. Lesson number maybe.
    – Lesson description
  • Assignments
    – Lesson Identifier: this should be the same value as is used in the Lessons table, so that each assignment can be directly liked to its parent lesson
    – Other columns as required

In your Lessons table, create a multi-relation column that links the Lesson Identifier to the Lesson Identifier in the Assignments table.

Now, display your Lessons as a single Inline List. This can either be using a List Layout screen, or an Inline List on a details screen. Either way works.

The default action on each item in your Lessons list will be a Show Details screen for that Lesson. On this screen, you can include an Inline List, and the source for that should be the multi-relation column. This will give you a list of all assignments associated with that lesson.

In terms of dealing with the different assignment types, you can use a single compound action with multiple branches. eg. If type is TEXT then Show Details Screen->This Item, else if type is link then open link, etc…

2 Likes

Wow… this sounds really slick. So in theory will this allow me to have one Screen? Or will it be one screen for each lesson? This workflow sound amazing, but the last mile is whether or not I will have a lot of glide screens to change if I want to update the screen design.

THANK YOU!

Just one screen. As I said at the start, I think you were making things a little overcomplicated :wink:

1 Like

Wow. Ok. Let me dig in here. I’m about to learn a LOT! :smiley:

1 Like

Wow! OK, so you helped me identify a learning gap. I thought that things like Relations could only be used for Glide Tables. I didn’t realize they could be applied to GSheets! I applied this to my GSheet (since all my data was there) and set up the lessons/assignments tables and now I have one screen that I can edit for all lessons! AWESOME! This is really pretty cool! Thank you!

Now, my last mile… In the detail view, I’m using inline lists to show the assignments and it’s working really great! However, I would like to show a text header for each Lesson along with the inline lists (assignments). So I have a HEADER type in assignments with that text, but when I try to access it in the screen, I can’t get to it. I can see the “raw” columns and not the data in the multi relation column:

I suspect this is because text component can’t handle the multi relation.

Any ideas?

Ah! Figured it out… Lesson items go in the Lessons table (duh!) or I can use a single relation. Wow. I’ve really learned a TON through this conversation. Thank you so much!!!

4 Likes