Complex filtering across user profiles

Hi there! :wave:

I’m currently trying to create an app that let’s users search for other users’ profiles, select these users, and then - based on photos of dishes - let’s them decide for a restaurant. Please find some screenshots in the following.

:point_down: Step 1: Select other users (“Friends” Tab)

:point_down: Step 2: Like dishes of restaurants listed in the app (“Dishes” Tab)

:point_down: Step 3: Receive an overview of all restaurants offering dishes the user liked (“Matchlist”)

This is so far working all fine.

:face_with_monocle: I now want to add a layer of complexity: The “Matchlist” tab should only show those restaurants for that the user and all the selected users in step 1 liked dishes of.

Can anyone give me some advice how to implement this? I haven’t been able to nail it down on my own with the tutorials.

Thank you very much for your time! Any help is highly appreciated. :pray:

Florian

1 Like

The favorited information is stored in a user specific column so I don’t know if you can do it with your current setup. Probably have to bring it back to the sheets to make further relations.

Hi Florian,

Trying to understand something here. You want the “Matchlist” tab to show all dishes or restaurants, or both?

  1. X selects User Paul, User 1, & User 6.
    2.For Paul we can already see that after tapping on dishes Paul likes, the Matchlist displayed the restaurants at which these dishes are available.
    3.Now, you want same Tab also to display restaurants for User 1 & 6?

Okay 3 is possible but my Q is what is happening before the selection process, and, more crucially, I need to know that I have understood your query (lol)

But I think know what’s going on here…basically these Users visualised as “menu” items 1, 2, 3, on tap display all their ingredients (in your case menu item Paul is made up of dishes, restaurants etc).

You now want to “filter” by favorite or category or group. You can group users by restaurants. So if User 1, User 2, User 3, & User 4 have selected R1, what you would do is get all those to first chekoff a box or toggle a boolean to confirm their Favorited dish or restaurant (which in turn would allow you to keep the favorite an item button where it currently sits ). You would then filter by R1 toggle is true or Group by R1 toggle is true. Your Matchlist tab would then only show the users belonging to R1 group, just like you can group by price, category, ingredients etc…

So need to know what is happening before the selection of Paul process?

Thank you

Hi Wiz.Wazeer,

Thank you very much for the extensive reply and your questions.

The “Matchlist” tab right now shows only the restaurants for that the logged in user (in this case me) liked dishes in the “Dishes” tab. A filter is applied here (see the following screenshots):

image

What I now want to do is that the “Matchlist” tab also applies a second filter that gives me the smallest common quantity of the logged in user and all the users selected in Step 1 (“Friends” tab).

So, let’s say that I selected Paul in the “Friends” tab and he liked one dish that is related to the restaurant “Boa-Bao” and another one from a different restaurant (let it be “Taberna Santa Marta” for instance).

Since I only liked dishes that are related to the restaurants “Boa-Bao” and “M’arrecreo” (see screenshot), the “Matchlist” tab should then only display the restaurant “Boa-Bao” which is our only common match in this case.

The same logic should apply if I select not only Paul in the “Friends” tab but also e.g. User 1, User 2, etc.

So, I would need to create a group in the first step (“Friends” tab) using the checkbox that feeds the “Wants to eat out with” column in the spreadsheet (see next screenshot) that I would then use later in step 3 (“Matchlist” tab) to filter the list of restaurants.

Can I do that with my current setup?

Thanks,

Florian

1 Like

Tx got it. Several options.let me get back to you later in the evening.

Tx

Okay,. I have the perfect templates for you. Watch this video, and download these free templates.

The answers to your questions lie in the following:

  1. https://docs.glideapps.com/all/guides/quick-starts/intermediate-techniques/per-user-data
  2. https://go.glideapps.com/app/6wkPLt3zTQrHUsQzdir9
  3. concepts.glideapp.io
  4. 🆕 Grouping

If you get stuck, pm me, and I will do a demo that you can copy. But, you will not need one. These two templates are very easy to follow,

Tx

2 Likes

I’m not totally clear on the function of each sheet. I think I understand All Profiles and Dishes, but I’m not quite clear on User Preferences or Restaurants. I will make assumptions so if the following doesn’t totally fit your sheet structure, hopefully you can understand and make it work.

First if you are using the favorites button to hold a liked dish for each user, none of this will work as your profile will not have any access to liked dishes of user users. You will need to use a form to save each liked dish in a row. Probably in something like your Preferences sheet. From here I’m going to refer to the Preference sheet as the sheet that contains the saved dishes for all users.

  • In whichever sheet you are using for the Matchlist tab, I would first create a rollup to count the number of true values in the Profile sheet. This will be the count of friends you have selected.

  • Create an if then column in the Profiles sheet that will return the email of the user only if the column you used to set your checkbox is true.

  • In the Restaurants sheet, create a relation that links the restaurant name to the restaurant in the Preference sheet.

  • Create a Lookup column in the Restaurant sheet that gets a list of all user emails that submitted matching restaurant info into the Preferences sheet.

  • Using that Lookup column, create a relation to the if then column you created in the Profiles sheet.

  • Create a Rollup column that will finally count the number of friends that you have selected and that picked a dish for that particular restaurant.

  • Now you should be able to filter your restaurants list on the Matchlist tab where the count of selected friends you created in the first step matches the rollup count you created in the last step.

This should list only restaurants where every selected friend has a liked dish, but again you will have to use a form instead of using the favorites button to save the selected dishes to the Preference sheet.

2 Likes

Unfortunately the second link (https://go.glideapps.com/app/6wkPLt3zTQrHUsQzdir9) isn’t working.

I’ll pm you!

Thanks,
Florian

Thanks for your instructions, Jeff!

I re-built the structure and included your advice to build a filter for the Matchlist Tab. However, it doesn’t solve my problem 100%, unfortunately. In this setup, users can’t “un-like” dishes in the Dishes Tab and restaurants are displayed in the Matchlist Tab for one user even though the selected user in the Friends Tab didn’t like a dish of this restaurant.

1 Like

I’m on it boss

@flohuber Okay I have emailed you your solution. I have preserved all your current settings. You don’t have to change anything. You can keep your user specific favorited column. It is true that user-specific means it is specific to a user, but that doesn’t mean we dont have hacks at our disposal. I have tied it to another favorited choice so that it can be meddled with. I have grouped all those who liked your dish by dish and by user. You will see them but not you (what you wanted) in that group and this applies to everyone else. When you unlike an item, it will disappear from the list of the members.

If it was not the result you wanted, I am sorry. If it was, then all good and well!

If you need any further help, please PM me.

Thank you :blush: