Linking items in "simple list" to a specific page

Hello everyone,

I am trying to create an extremely straightforward and simple Star Wars app just for learning purpose. I am trying to learn how to connect or link things together. Disclaimer: This is not an actual app that I am trying to create, and I have no intention to publish it. I do not own any of the image copyrights. I am having trouble understanding how to make the “simple list” in the Home page work. In the list, there are 3 items. These 3 items are also in the “database” under Characters. Let’s say I have 3 characters in the database ( Luke, Leah, Yoda). When I click on one of the item in the list, let’s say Luke, I want the screen “Luke” to be displayed. If I click on Leah, another screen that is named Leah should be displayed. I linked the “simple list” to screen Luke & Leah. However, I quickly realized that this would not work because the simple list do not seemed to respond that way. No matter what which item I clicked, it will just go to Luke. I think I am not understanding how to link the items in the list to the screens that I created.
Here is the link to the app I was talking about.Adalo. It is very simple ( I have mentioned that this is just for me to learn how things work here). I have watched the tutorial about data on the Adalo website but didn’t find it informative to solve this particular issue that I am having.
Thank you for your guidance and time!

Hi @Lilu,

Welcome to the forum!

Usually apps’ screens work a bit differently. You don’t need to create separate screen for each character; you can have only 2 screens for that.

Say, you have a list of characters (imagine it’s a spreadsheet): you have column “Name”, “Address”, “Fraction”, etc etc. These columns are DB Collection Properties. Let’s call this collection, for example, “Characters”.
Important thing here - when you “design” the collection, your data needs to have similarities; generally it’s not recommended to keep “spaceships” and “characters” records in the same collection.

Then you add characters to this list: Luke, Leah, Yoda, Darth Vader, … In other words, you create several records. Each record has its own values for properties:
Luke - Tatooine - Rebel
Darth Vader - Coruscant - Empire
etc etc.
With this, you fill in your Characters Collection with records.

Then, you start creating a screens to display this. The “All characters” screen may have a Simple List, displaying “All Characters”. You’ll have Luke, Leah, … in this list.

Then, you add an action to the list to link to the 2nd screen. Call it “Character Details”. When you click the link in the app, Adalo will transfer the data of current character to this second screen. And you can display the property values for this exact character in this screen. The thing is, that it is done automatically: if you click on Leah, then her data will be transferred; if on Luke, then his data will be transferred, etc. etc.

So on the 2nd screen you can add Labels, Images, etc. to display the details of current character. Use Magic Text to get the needed details.

Hope my explanation made things clearer :slight_smile:

Best regards, Victor.

Hello Victor

Thank you for your explanations!

They helped and with them I managed to display the characters on the simple list with a template screen named character. I also added some other buttons and stuff. It’s pretty addictive I would say, and so far I enjoy learning about Adalo:) I am having a new challenge though, due to my incomplete understanding on database records.

For learning purpose, I made a vote button so that users can vote for a character in the “Character” screen. All is well until I decided to make a screen to display the summary of the votes. The screen name is “Display Vote”. In that screen, each character have their own box that displays the total vote received and also the list of users who voted for them(under “body”). In order to achieve this, I added a property called “Voted By” under Characters ( in Database Collection). Each time the Vote Button is pressed in screen “Character”, an update of “username” is made to Voted By ( in database) and would display in screen “Display Vote”. The issue is this: “Voted By” only takes username of the latest user who voted. It did not retain the information of previous votes by other users. In other words, I do not know how to get input from different users at different time, keep a record of the input by these users and make a summary. I also tried “create” instead of “update”. This didn’t work for this purpose because each time the vote button is pressed, a new record is created, that is not how it is suppose to work too.

I also noticed that the Previews do not really reflect the real layout of the screens. In order to have things looking a certain way in Previews, I find myself having to overlap elements ( buttons, lists, texts) on the screens. Please let me know if I am not doing things right here!

I am hoping you or other experienced users can share some insights on this:) Thank you and have a great week ahead!

Here is a link to my simple app: Adalo
Disclaimer: This app is just for my purpose of learning Adalo, I do not own any copyrights to the images you see in the app hence I have no intention and no legal rights to publish this app.

Hi @Lilu,

Reg. voting: there are 2 approaches for this.
First one - use many-to-many relationship property, call it “Voters”, Characters - Users. So when someone votes, you add Logged in User to Current Charactrer → Voter. To display number of votes, use Current Charactrer → Voters → Count.
You can find some inspiration here: How to create a "Favorite" button - Adalo Resources
Downside - this is a bit slow for the production app.

Other approach is to use separate collection for Voters. With it you can store more info about votes, for example, date.

Best regards, Victor.

Thank you @Victor !

The tutorial and guidance that you sent really help! I used the first approached. One issue though- I can now display several/all users who had vote for the same character( under Characters–> users in database). However it displays the users’ email instead of their usernames( my preferred attribute). I would imagine users wouldn’t want their email address to be published in the summary if this is a real app( although this is not). When I create a relationship ( many to many) between Character’s-> User and Users-> Character, I was not given a choice to select a property under a Collection. I seemed to be only able to create relationship between a collection and a collection without specifying a property. In other words, how do I specify that I want to display username instead of displaying their email address?

Thank you so much for your patience!

Hi @Lilu,

You just need to change what info is displayed via magic text.
For example, on a “Character” screen, when you have Current Character available, you can create Simple List of Users, filtered by Current Character → Followers. Then change magic text in “Title” and “Subtitile” sections to display not the emails, but other info, say, Usernames.

Best,
Victor

Good day to you @Victor,

Thank you for your reply. I appreciate the suggestions, the only issue is that the info I wanted to display is not available via magic text although they are in the Database. That is the reason I needed help earlier.
Please allow me to explain further:

  1. The users who have voted for characters are stored in Database under Collection “Characters-> Users”. Users ( under “Characters”) stores the email address of users who voted a specific character and has a many to many relationship with Database-> Users->Characters ( which records the characters that was voted).
  2. I have a Screen called Summary. I used a Cardlist to displays the characters, their total votes and a list of users who voted for them. I noticed that in the list, properties under Characters that are having “relationships” are not available to be added for display via Magic Text. Other properties that are not in relationship can be added.
    Would you please advise how they can be made available to be added into Magic Text.
  3. I created a text box ( at the bottom of the summary screen) to test out if the available option changes. I tried to display a list of users in the text box. The only thing available to display under Character were Count or Vote. In the text box magic text, there is no Current Character Available, but this time there is current users and a list of properties under users ( except the ones that are having “relationships”) Victor, why do we get different selections on different components? I know I am missing something in my understanding, your help is very much appreciated.

Thank you for your patience and time.
-L

Hi @Lilu,

As far as I understood your case…

You can’t access properties of Users from Characters collection. Imagine: you have a list of Characters. Item in this list is Current Character (let’s call him Luke). Luke has several votes from users (A, B, C). These votes (in classic setup) are represented via M2M relations between Users and Characters. (BTW, I have no idea why do you store emails for voters and can’t comment on that).
You want access the property (name, surname, age,…) of a user who voted for Luke. But how can Adalo guess, properties for which user to display? There are many users who voted for Luke.

The solution is to have a LIST of users, filtered by those users who voted for Luke. So for a “view all characters” screen it will be a list-inside-the-list (which will make the app slow if you have lots of characters and users). Or, if you have a separate page for a character, with “Current Character” available, you can put a list of Users there. And in this list you can access any property of a user (it will be Current User).

Hope this helps.

Best,
Victor.

Hello @Victor ,

Thank you for your reply. I am not sure if you were able to go to the link I sent for the simple app but though I appreciate your suggestion in the earlier reply, it didn’t quite relate to the situation. I understand it is hard to visualize things base on just words and paragraphs of description and I know you did the best you could to help.
Let’s take a step back and allow me to ask this. let’s do Star Wars and I will simplify things and focus on learning the concept of database and displaying on list.

  1. Let say in the database I have a Collection of Characters: Luke, Leah, Yoda
  2. Each Character has 2 properties, total vote received ( an integer), and voted by users ( several users). Let’s say we have all the information we need in the Character Collection. Example, Let’s say now Yoda has 4 votes. He is voted by users Lisa, Ben, John, May.
  3. I wish to display on a CardList. Like this:
    on the Voted By ( which is actually the body of the list, I would like to see ALL who had voted for Yoda. Meaning Lisa, Ben John and May will all be displayed.
    I have a simple data base like this:

    The Magic Text did not have “users” for me to select. But you can see that it is a existing property of the Character. I noticed that any properties with a relationship would not be available to be added for display. You mentioned that that is because Adalo doesn’t know which user to pick . It doesn’t have to for my case, it just need to display all who voted for that character. In the user column, the users are recorded with their email ( Adalo did it this way, it wasn’t my selection). This “user” is linked to Collection Users ( with their usual properties of name, email, etc ), out of all these properties, Adalo chose to pick their email and store under “users” in Character Collection), so I hope this answer your question of why do I want to store their email- it just happened this way, Adalo picked that property.

So I hope this helps to explain things better, I would like to understand if what I wish to display can be done on a CardList? I am not sure how to make a nested list, because under filter, it basically give me the option of Character-> All, so back to square one, I am:)

Many thanks, Victor!

Dear @Lilu,

My earlier reply was directly related to the situation.

Once again: you can not display individual user properties via the magic text, if you have many relations to users.
To display several or all records in the collection, you must use the list. So, if you’d like to have a list of voters, displayed for each item of the list of characters, you must use a list-inside-the-list.
Unfortunately, you can’t put the list into the card list, you will need to create a custom lists by yourself.

Please see the cloneable app here: Favourite Example app

It will help you in understanding the logic of displaying user info and relationships for your app.

Best,
Victor.

Hello @Victor !

Thank you for your Clone App, I appreciate you taking the time and effort to explain things. Now I understand how to make a nested list- to add a new list under component of the first list. The moment that was done, the properties with relationships start to be available for adding via Magic Text!

Here:) Please ignore the vote count, I know they do not tally with the number of users, because the vote count was done before I start signing users in.

With this, I proceeded to make the app I had in mind. It’s a simple app. I have a predefined database. Meaning the information is already in the database for simplicity. Like this:


These data are in the database. The app I have in mind, takes sign in users to a home page like this:

So in the home page there is this list that you see, you choose your teacher(not real names shown). Let’s say I am a 5th Grader, I want to go to check out my teacher’s page. I will click on Catherine James. This list is not an issue. Very straightfoward.
After you on Catherine James, you should get a page like this, let’s call it “teacher’s profile”:

I thought I could use a simple list to do that, Victor, I was wrong again! If I use a list, they will just display for all the teachers. So the page “teacher’s profile” I actually made using text component :frowning: The text component did allow me to display properties that are under Character Teacher. It worked as intended, but I prefer to use a list because if I use a bunch a text components, things will start to get messy once my property list grew.

Another gentlemen in the forum suggested to use a nested list, I appreciate the advice but if I have more properties under a teacher, this would become nightmarish.

First of all, I would like to know Adalo sees all these data- I thought the data I have in the database under Category teacher is very straightforward and I should be able to display an individual teachers property with a list ( like for the case of Mrs. Catherine James, displaying things that SHE and ONLY SHE likes.). Moreover, this time there is no “relationships” involved. Alas, I haven’t been able to at this point!
Secondly, if I want to display a list for Mrs. Catherine James, my guess is that I need to somehow create another category in the database, unfortunately I am pretty confused at this stage as to what category of data and what property to create.

Another question that is not list related ( you probably could send me a video link of this), let’s say Mrs. Catherine James likes Starbucks, and this is shown in her profile under Favorite Coffee, how do I make “Starbucks” a clickable link and have it go to a giftcard page of Starbuck? Well, you do not have to find me the link of Starbucks, my point is - how to I make a text a clickable link? Especially this text is pulled from a category under database.

Thank you Victor! I eager to demystify all these List related challenges:)

Hello @Victor !

Good day! After some thoughts, maybe it is better for me to post my additional questions above ( of teachers’ list and how to link websites ) as new topics. After all, issues from the beginning of the post was solved with your help. I am letting you know here to avoid misunderstanding that I am cross-posting ( when I start a new topic with the remaining unanswered portion).

You have been an amazing help, I just want to say thank you to you for all the time and effort that you have offered!

Cheers and have a good week!

1 Like