Can I use a button block to change the filter on a list below it?

How do I fill out the actions for each button in the button block?
Right now I do not have a “status” field for each submission, so grouping the whole list isn’t an option. I am hoping to just use buttons to keep scrolling to a minimum.

  1. A user specific column to hold the choice from button.

  2. Single value to apply choice to all rows.

  3. ITE column to compare choice to submission status

  4. Filter collection based on ITE column

…that’s one way to do it

3 Likes

If he builds it on top of the user profile screen, the single value column isn’t needed, since you can use the user profiles column value right in the ITE step. I think this is why I almost always build on top of the user profiles screen.

2 Likes

ITE column?

1 Like

@Darren_Murphy, your rock. You have helped me so much so far!

I am having trouble unpacking what I am supposed to do to follow these instructions.

I added ite_Submission Status to the Missions (not the Missions Log) table. I think I set it up correctly because the results look correct:

Now what?

Let’s use ThinhDinh’s advice and write the choice from your button to the user profile sheet. It could be a basic column in your user profile sheet that holds the choice value.

Then you could use the user profile value to filter the collection.

1 Like

So…create a user-specific column in my Users table and have each button write a status there to match with the new ITE_Mission Status field I put in the Mission Log (submission) table?

Well, I did that, and then I added this field to my user (Players) table:

I think this is supposed to receive the value from whatever button is pushed, so then I went to button #1 (To Do) and tried to get it to write to that row in the Players table.

I set the row choice to look at the User table (I think I got that right), but my new column didn’t show:

What am I missing? Did I guess right so far?

Yes, create a column in your User Profiles table to hold the choice. I don’t know which table you’re building your screen on, but I think a good practice is to always use the User Profiles table, it allows flexibility down the line. Make sure you filter the screen to the signed-in user’s row using the rowID or email.

You don’t need to have 3 buttons, it can be just a single choice component with 3 choices.

In your Submissions table, create an If Then Else column to compare the status of each row to the user-specific value in the 1st step, which you can reference as it’s a user profiles value.

If the user profiles value is empty, return true (meaning you show all submissions when nothing has been filtered). If the user profiles value is the same as the row’s status, return true. Else don’t return anything (you don’t have to write false, nothing is enough).

Filter by the If Then Else column being checked (having a true value).

1 Like

Right now I am building the table from my “Missions” table.

I made a copy screen to try doing it from the “Players” table (users) instead.

Now what? The Players table does not know the Mission Status data from the Mission Log table yet, so I am stuck. Next step?

Can you explain this? I don’t think I understand.

Players table = users table
Mission table = list of assignments
Mission Log table = individual records of student-submitted assignments (this is where the mission status of each submission lives)

Right now, the Players table does not contain anything about users’ assignment submissions.

Your suggestions have me changing direction with what goes where, and I think I only have half of what you need to be in my Players table to get the desired selection-driven filtered lists I had requested.

So is your ultimate aim showing missions to the Players in this form where they can filter by To Do/Submitted/Graded?

If you collect the user’s ID/email in the Mission Log table, you can have a relation/query to show their submitted/graded assignments.

For “To Do”, in the Mission table, create a query that filters the Mission Log table by Mission ID and signed-in user’s ID/email, then only show Missions where the query is empty.