Allowing multiple roster apps

Hey Fara, as always thanks for your work on Ares.

I’ve been testing 0.97 in particular for our game due to the changes to the roster system, since we work entirely off of people taking characters from the roster. Roster approval and rejection works well and we’d love to start using it in lieu of what we had before – however I’ve noticed that the new roster system now only allows one claim/app for a roster at a time.

We use rosters to represent Feature chars which people can apply for, and the first applicant isn’t guaranteed the character, so it’s fairly necessary for us to be able to receive multiple applications in order to give the character to the player who fits best. I am wondering if there is any chance the ability to allow multiple claims for a roster can be put back as an option?

Thanks for reading, either way!

1 Like

Unfortunately the design of the streamlined roster app process made it necessary to restrict it to a single application per roster character. Changing that isn’t really on the radar at the current time.

You could certainly allow multiple apps with some custom code. It probably wouldn’t take a whole ​lot, and I’d be happy to help point you in the right direction.

You could also work around it in other ways. For instance, you could just tell people that if there’s already an app in, they can just submit a regular +request. If you like the other person’s app better, just reject the app-ed one and manually give the password to the second person. (Essentially what you had to do before the recent roster changes anyway.)

Okay, I took back out some of the code in order to permit multiple apps to go in again, so that should work for us for now. It looks like we can still use the new approve/reject buttons if there happens to be only one application.

It also looks like if I wanted to fully enable the new approve/reject buttons to work with multiple apps I’d need to change roster_job from a single reference into a collection of job references, and then add the job id as a parameter to the approval/rejection functions. Don’t quite have the time at the moment esp given my Ruby unfamiliarity but might take a stab later on.

Thanks for your reply!

Yeah that’s exactly right. There’d be a bit more fine-tuning like how (or if) you handle the “app pending” notice and cleaning up any extra apps when you app/approve somebody else, but you’ve got the basic gist.

If I were to do it for real I’d have to add a configuration option, which adds more complexity. So that’s why it’s not something I’m willing to tackle right now. But if you do end up doing it and want to share, feel free to either make a Pull Request to aremush’s dev branch from your fork, or just point me at your code and I can maybe pull it in.

Also FYI you can’t change roster_job, you’d need to make a separate collection field (probably named roster_jobs plural). Redis doesn’t deal well with data changing its fundamental type like that (from single string to array).

So you’ll need to migrate any existing apps over as well.

Oh yeah, that would explain why it got mad when I just tried to change roster_job itself. That’s good to know if I get time to tackle this later on. For now, doing what we did before with attaching “approval” to roster/remove will work.