Topic: Rating system
einstein13 |
Posted at: 2019-09-01, 19:45
Tabs can be imitated by different pages , or loading on user demand. Frontend and API for that can be done in the future. No worries. Hope your branch will be soon available on widelands alpha site (@kapputnik, is it possible to test it there? Can you remember link to that page?) But I have a question: how input is sent to the ranking engine? Do you have proper page or so? EDIT: by imitating tabs, go to your profile page here, in Widelands: https://www.widelands.org/profile/ . You will see tabs, but all of them are just different pages, reloaded on user needs. So they are not "real" tabs. That is the easiest solution for making tabs. Edited: 2019-09-01, 19:50
einstein13 |
kaputtnik |
Posted at: 2019-09-01, 21:37
The tables for 'Ratio Score' and 'Glicko Score' can be side by side i think. But i am a bit confused about why we need two different calculations here. Or is this just for a comparison and in the end there will be only one Score system? (Sorry if i didn't read or remember each post in this thread which may explains the need of two systems) Of course we can, and surely should, test this on alpha Top Quote |
trimard Topic Opener |
Posted at: 2019-09-01, 22:07
Huh, that would be cool, although maybe complicated because you need to be admin in order to add games.
Proper? What does that mean? I take the request and create from there. Something like:
But I don't use the form directly. I see you guys did that on other modules. Like here:
I guess that's the clean way to do it. I would need to study how that works a bit before implementing. But yes, ultimately, at the very least for code consistency, that's what I should do.
Yes yes, I see what you mean. You're right, but maybe there is another UI solution?
That might be the easiest solution, but I'm afraid people will get confused as to which score is the official one. If we separate the pages, we would redirect the user to the 'glicko rank directly. Another option could be to merge the two and just put the winrate in the same table. We don't really need a ranking using winrate maybe?
At first it was for tests yes. But, I also see a place for it in the future. Afterall we need to find a place where the winrate is close to 50% for most people. So showing the winrate of most players would be a good indicator if we get closer to our goal or not. Top Quote |
kaputtnik |
Posted at: 2019-09-02, 08:07
The form to enter the values for game can just be done through the admin interface. So you don't have to struggle with forms, because django does it for you. All you need is to create a new file called admin.py and put some small piece of code in it:
Now the model PlayerRating can be accessed through the admin page. Of course this view can also be adapted to your needs, see https://docs.djangoproject.com/en/1.11/ref/contrib/admin/ This admin view can then be made available to people who have the corresponding permission. We do this e.g. with our news app: Each person who has the permission 'can_add_news' + 'is_staff = True' is able to enter the admin page for the news. Top Quote |
trimard Topic Opener |
Posted at: 2019-09-02, 17:12
huh. So now I wonder. Should I rather remove the current page I made for adding games? Knowing I already added some more buttons to calculate score etc. Maybe we could have both, but I'm afraid that would be much more confusing Top Quote |
kaputtnik |
Posted at: 2019-09-02, 17:26
Calculating the score should be done in the save() method of the model, imho. So no need for a button?
We can have both Access through the admin page is useful for deleting or editing an existing row in the model. F.e. we can't delete a map if we hadn't an admin page for this. I would suggest to add the admin page and then you can play around with it. But honestly i think using the admin page directly is much easier than adding another view Top Quote |
einstein13 |
Posted at: 2019-09-02, 19:55
For the beggining - yes, but since we want to have more possibilities (examples!):
Putting all calculations on
I agree - let's make both ways and decide which one will be better . Finally we can stay with the simplest version .
I agree in 80% of cases. And this is one of them. einstein13 |
trimard Topic Opener |
Posted at: 2019-09-03, 16:11
Yes. I am thinking the simplest system would be to count by group of maybe 10 games. And at each of these 10 games we also update the deviation from all other players. Maybe it will be 20 or 5 or 100, but I think we should keep this system ASAP. And also, it's almost already implemented
Yeap, that's why I started building a page in the first place.
I was gonna say to you guys "Yes let's do only the admin page, it'll be great." But after trying to customize a bit the admin panel I realized it might be harder than current solution. I would like to have the ability to add participant on the same page that I add games. Otherwise it become very tedious. I tried to override the admin template, and already at the simple stage of making the override works I fail. If anyone has experience with that? I see someone did for the wiki. I tried the exact same method but it doesn't seem to work for me... (putting a file in templates/admin/wlrating/game). I don't want to abandon this solution too fast. If it's a deadend we would have both options, as basic admin is very easy to create, and is indeed useful when no direct access to the db.
I don't understand the problem here, either we calculate the game by group, easy to integrate, or we use some crontab with a script that tells to calculate every x? edit: NERVERMIND, I managed to override the wlrating template but not the precise page, weird Edited: 2019-09-03, 16:54
Top Quote |
kaputtnik |
Posted at: 2019-09-04, 08:00
Don't forget to merge the latest changes in your branch Top Quote |
trimard Topic Opener |
Posted at: 2019-09-07, 18:16
Ok @Einstein I think your implementation of step 5 works. I added an iteration limit of 15 for both loops (they use iteration of 2 as an example in the paper). And it seems to give coherent results with what the papers . And after reading it I finally realized that "<--" means "=" in algorithms... @kaputnik, I will do that after refacto. I don't think anyone else has really the desire to read the code before that anyway :P. About the arbiter interfaceI now see 3 solutions for the implementation but each has it's own problems:
Thoughts? Edited: 2019-09-07, 18:17
Top Quote |