# User Levels and Choice components

**URL:** <https://community.glideapps.com/t/user-levels-and-choice-components/12051>\
**Category:** Ask for Help\
**Created:** [July 6, 2020, 2:05pm UTC](https://community.glideapps.com/t/user-levels-and-choice-components/12051 "2020-07-06T14:05:04Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Justin\_Hays](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/justin_hays/32/5630_2.png) [@Justin\_Hays](https://community.glideapps.com/u/Justin_Hays)\
**Post date:** [July 6, 2020, 2:05pm UTC](https://community.glideapps.com/t/user-levels-and-choice-components/12051/1 "2020-07-06T14:05:04Z")

</div>

Hey all!

Hoping for a bit of assistance. I have a fitness app and am trying to utilize user levels to determine exercise choices. Here is an overview:

I have a users tab. Each user has a level.

I have a tab for exercises. Each exercise has a category and a level.

I have a tab for workouts. Each workout has a category. I have a relationship setup that pulls multiple exercises from the exercises tab based on category. When a user does a workout, I have a choice component that allows them to choose which exercise they would like to perform.

I’d like to have this choice component filter out exercises based on level. For example, If a user is level 1, then only show level 1 exercises from that category.

Does anyone have suggestions on how to accomplish this?

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [July 6, 2020, 2:20pm UTC](https://community.glideapps.com/t/user-levels-and-choice-components/12051/2 "2020-07-06T14:20:33Z")

</div>

So:

- Users sheet has a level column.

- Exercises sheet has category and level columns.

- Workouts sheet has categories, you then have a relationship that pulls the exercises to this sheet.

When a user does a workout, they go to the workouts sheet and currently have a choice column, is that correct?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [July 6, 2020, 2:31pm UTC](https://community.glideapps.com/t/user-levels-and-choice-components/12051/3 "2020-07-06T14:31:16Z")

</div>

Would this work? Just a wild idea, I think someone can chime in with a better method.

From the relations that you have in the workouts sheet, let’s say you have 5 levels. Make 5 choice components that would be filtered based on the exercise’s level and set visibility to only show when User’s Level is 1, 2, 3, etc.

---

<div class="post-metadata">

**Author:** ![Justin\_Hays](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/justin_hays/32/5630_2.png) [@Justin\_Hays](https://community.glideapps.com/u/Justin_Hays)\
**Post date:** [July 6, 2020, 2:35pm UTC](https://community.glideapps.com/t/user-levels-and-choice-components/12051/4 "2020-07-06T14:35:52Z")

</div>

@ThinhDinh

Thanks for taking the time to reply!

Yes, when a user goes to the workout sheet, they have a choice column.

I have actually considered the setup you are talking about. But how would I make a relationship based on category and level?

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [July 6, 2020, 2:37pm UTC](https://community.glideapps.com/t/user-levels-and-choice-components/12051/5 "2020-07-06T14:37:06Z")

</div>

I think you need something like this demo APP:

> **[Multi Choices](https://dynchoices.glideapp.io)**
>
> How create Dynamic Choices using Relations

Saludos

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [July 6, 2020, 2:37pm UTC](https://community.glideapps.com/t/user-levels-and-choice-components/12051/6 "2020-07-06T14:37:45Z")

</div>

I have added the 2nd comment, I don’t think it’s good when you have too many levels, that would be too many choice components to set up but I think it would work for your case. Sorry it’s pretty late here so maybe I can chime in with a better workaround tomorrow if no one else has come up with it.

---

<div class="post-metadata">

**Author:** ![Justin\_Hays](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/justin_hays/32/5630_2.png) [@Justin\_Hays](https://community.glideapps.com/u/Justin_Hays)\
**Post date:** [July 6, 2020, 2:45pm UTC](https://community.glideapps.com/t/user-levels-and-choice-components/12051/7 "2020-07-06T14:45:19Z")

</div>

That suggestion did the trick. I greatly appreciate you taking the time!

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [July 6, 2020, 5:57pm UTC](https://community.glideapps.com/t/user-levels-and-choice-components/12051/8 "2020-07-06T17:57:36Z")

</div>

I imagine your workout tab is a list of categories and you select one to view it’s details? If so, I think you could create a single choice component to select an exercise. First you would create a template column in the workouts sheet that joins the category and the level from the user profile. In the Exercise sheet, you would create a template that joins the category and level in that exercise sheet. Then you can create a relation in the workouts sheet that joins the 2 template columns. The relation would be used to populate the choice component.

This should scale nicely if you ever add additional levels and you only need one choice component.
