Hi I am making an app for my school and one of the sections is like the student schedule. The schedules are all on google sheets. I am using a data list viewer to display them, but… I dont know how to do that. I succeeded to display the different periods (1, 2, 3…) and their respective times. but I dont know how to show the students personal classes for each period next to the period number. I have a sign in feature where they sign in with there school email address (through firebase)
You might want to create a custom Data Viewer Layout: Custom Data Viewer | Thunkable Docs.
·····················································································································
Need help? How to Ask Great Questions Debugging A Project API JSON Tutorial
Want to hire a Certified Thunkable Expert? Elevate your app with Tatiang on Fiverr
yes I did that. Forgot to mention---- but how do I display something different for each user. when assigning what to display in each label (like label4 will be column 1) how do I make sure it Is for the correct student bc every student is different schedules
The Data Viewer List or Grid syncs with each row of the Google Sheet. You should have one student per row with all of the data for that student in that row.
If you want to display something, add it to the Data Viewer layout using advanced binding. You can find an example of that in the old Snap To Place documentation: Custom Data Viewer Layout | Thunkable Docs.
Yes, I know how the data viewer works. I can have each student as a column header or whatever then period 1 class, 2, 3… all in the cells below. But, how do I make it so the schedule for user x will be for user x. There are 500 students and they all have different schedules. In the data viewer, you set the label to the column but there will be 500 columns and 500 different users of the app (for 500 students).
I think I understand. You probably don’t want to use a Data Viewer for the schedules then. You might want to just set up a screen with the labels and other components you need to display one schedule. When the user signs in through Firebase, you will need a unique value from them that can be matched with a value in the Google Sheet. This might be a user id or email address. Then you find that unique value in the Google Sheet and use the row number where it is to get their schedule and populate the schedule labels.
Yes, i was considering this but one problem
I posted this problem in a separate thread but I will explain here as well
Basically, the students don’t have the same schedules every day and they change from semester 1 to semester 2 and if any student chooses to change their schedule midway…
Labels don’t update from a Google sheet (with the get value block…) while the app is open like if you put in a when the screen opens set label x to get value from a Google sheet…
If this value on the google sheet where to be changed, it would only update if the user closes the app and then reopens it and not while they are still in it which can be problematic…
There is also another problem if we use labels
Currently, in my data viewer (like with a layout I created), I have one label with the period (1-11) and another with the timings of the period (like 8:00-8:45)
Now that can easily be manipulated into a label but:
Some days we have events where we have 1 or 2 more periods so the data viewer easily/automatically adds those boxes and periods by itself and on Fridays we have less periods so the data viewer automatically takes those boxes away.
It would be tough to add many labels (like 14 to be safe) because what if we have less periods that day? the label will just be blank and space would be taken up
Any questions pls ask me
I would use Clone blocks to create the layout. It’s challenging to set up but once you do, it’s dynamic meaning that you have control over whether there are 5 rows or 14, etc.
Hi, this is me (jake-cohen) on my app developer account
I see what you mean, I think. But by using labels, that means I would have to use the get value from data source block. I am using Google Sheets as my data source and the data in it is constantly changing. Since Thunkable, using the get value block, only reads cached data, I don’t think that would work. Using Air Table for this data source is out of the question because I don’t think it features the same formulas and layouts I am using in Google Sheets currently. Also, I am not able to pay for the paid plan for Air Table which supports more formulas or whatever they are called being run
anyone know?
?? answer???
The only thing I can recommend if you need to stick with Google Sheets is to use the Google Drive API to get the data. That way you aren’t relying on Thunkable’s cached data.
I don’t really know how to do that… I made a Google Sheets API, how do I connect it to thunkable now and how do I do like the cloning blocks for each value there is in lets say column 2 of the my google sheet
unless, i use airtable i can only use the free plan - what is an automation run? what counts as an automation run? because I will be using a lot of formulas as I do in google sheets to update values. like if a checkbox is checked next to schedule a then that schedule will display in the app, if its schedule b then… and it will also need to calculate the current period from the start and end times. and that will be updating a lot
I don’t know the answers to all of that. I’m not familiar with automation runs. You can see there’s a lot involved with what you’re trying to do. The first time I set up a Sheets API call and tried to clone blocks, it took me hours and hours. I can’t walk you through all of the steps but feel free to post screenshots or project links along the way with specific questions about specific steps. There are examples on the forums that might help you and can be searched for.