Hi, i have created a leaderboard which grabs the top 10 usernames with the highest points, as well as the local user and their points. I want to create a microflow to display which position they are in the leaderboard, so the top 10 will obviously display 1-10 and the current user could be anything from 1-500 (etc); what resources would developers recommend, or could anyone provide any advice regarding this? I have enclosed screenshots from what the app will look like (the question mark is where the position should be)
There may be better ways of doing it, but here are two methods.
Add an attribute to the user called ‘Position’
In a microflow, retrieve and sort the list of users and their score descending. Have a integer varible that starts at 1. Iterate in a loop over the list and apply that integer variable to the user then add one. So it should apply 1 to 1st plave, 2 to 2nd and so on.
You can have a text field that displays the [%CurrentUser%]/Position somewhere on the page.
Alternatively in a microflow retrieve any users that have a higher number than the current user, count them, add one and apply the result to the current user. Noe entirely accurate buy easy to do.
I would recommend doing Garion’s first example, but in order to also display the current user, I would add on one extra thing:
In the list view where you display the top 10, if the current user isn’t a part of the top 10 list, I would make visible a second list view that appeared under the top 10 list and displayed the user’s information (You can single out the user by adding a constraint to the second list view that goes like ‘User/Name = [%CurrentUser%]/Name’). I’ve played with stacked list views like this in the past and it should look seamless, so the user won’t know you’re displaying two separate lists.