Automatic application of merit badges to rank levels

Wondering if merit badges can automatically be added to the boys’ ranks. It currently has administrator guessing as to which rank merit badges are applied. Star rank requires 4 Eagle & 2 general, Life requires 3 Eagle & 2 general, etc. It would be more efficient for administrator for it to automatically go toward rank.

10 Likes

Yes. Auto-assign based on first in, first assigned.

Good Morning @SarahWatkins3 and @MikeHulsey,

Thanks for using the TroopTrack community. This idea is a great one. So great, in fact, that it’s already on our developers’ todo list! :slight_smile:

Thanks for making TroopTrack a better place by offering your ideas and support others’ ideas. We’ll be sure to let you guys know when this one is done (probably through a product update post). Thanks again!

Issue #942

5 Likes

This would be a great time saver. I agree with Mike that first earned first assigned methodology. That is what I do manually.

Need to make sure it takes required for Eagle into consideration.

1 Like

I am adding my voice of support to this. I know it is on a to-do list but I want to support it in case there is any doubt. TroopMaster does this and as I have transitioned the Troop over to TroopTrack I have missed this functionality. It can get a bit confusing trying to remember to apply what badge to what rank. TroopMaster always just said “xxx merit badge applied to STAR” or whatever rank it applied it to. Very nice functionality.

If I am remembering right, TroopMaster also will automatically put the date of completion in when a Scout hits the require period of time in leadership. Does TroopTrack do this? If not, this would be nice as well.

4 Likes

Yes, please add this feature. I miss it greatly from TroopMaster and ScoutBook

1 Like

I would also appreciate this functionality. Until a week ago, I would sort the “completion date” order and assign the rank manually in date order. It seems like sometime in the past week, all Eagle required badges have been moved to the top of the list, which is nice, but now I cannot sort by date order, which makes manual assignment of the MB by rank very difficult. Can you turn back on the ability to sort MBs by completion date? Thanks!

OK, so this conversation is over a year old - and needs to be addressed. This is one of my biggest issues with Troop Track. Today I was reviewing the MB’s / ranks of the scouts in my troop and found that I have several who had way too many MB’s listed in each rank. Please add this functionality asap.

Yes, I support this. The system should assign MBs as they are earned - oldest date first, to whichever rank is needing them, then move on to the next rank.

Paul G. Starrp.starr@mediacombb.net563-320-3765Live Long & Prosper

For those with the TroopTrack API access, I’ve created a script that will auto-assign the Merit Badges to the Ranks. See this post:

Maybe the TroopTrack team can use my code to help make this request faster?

I’m also working on another Python script that would not need TroopTrack API access. It just manipulates the web pages directly. But that’s taking a bit more time. I’ll post a link here when that’s done.

Steve, I read through your posts below and appreciate your efforts. But I’m a little slow when it comes to computer lingo. What is “Troop Track API” and how would I know if I have access? I did not click on your link to the program you wrote - I’m always leery of importing stuff. I would rather see this as a Troop Track feature, not an external process I have to run myself.

Paul G. Starrp.starr@mediacombb.net563-320-3765Live Long & Prosper

Hey Paul,

Just so you know, I tend to over-explain. Sorry if this gets too windy.

The TroopTrack API is a way for developers, enthusiasts or tinkerers to get access to their troop’s data in a more direct format than just using the web directly. When you login to TroopTrack, if you click on your Name at the top, there’s a menu choice that will show you the “Developer Program”. You have to apply to get access to this API from TroopTrack. Oh and API stands for “Application Programming Interface”. It’s a list of commands that you can use to get and set data to Trooptrack’s database.

The API is great and it does get you most of the way there, but there’s always one or two things that I find are missing in the API. For example, the API will give me the names of all the members in the troop, but it will not give me their Nickname. So, if you have a scout/adult who goes by Bill, but his actual name is William, you’ll only get William from the API. It’s because the API does not give us full access to the data. Maybe in version 2 of the API, we’ll get more access.

Totally agree with you being leery to downloading questionable content from unknown sources. There’s too many viruses running around these days.

Just to put it out there, Python is a scripting language. So, that file that I posted is just like a text file with just the “.py” suffix on the end of the filename. In order to run that file, you have to run it through the Python parser. So, if you download the file, you can open it in notepad or any other text editor to read through it. But you can’t really use it without downloading Python.

I chose Python because it’s an extremely simple language and has great parsing capabilities. I did have to “add-on” a few items to get it to run. In my next version of the script (which will not require TroopTrack API access), I’ll create a help guide for anyone that wants to get started with Python and using my script.

Let me know if you have any other questions, comments, or concerns!

Hope it helps,
Steve

Steve,
I appreciate your efforts. I’m in Paul’s camp for another reason. I don’t have python and I’m not at all sure I want to learn what it is and how to load it run it or what ever. Not only am I lazy like that, if I go DIY then if it doesn’t work now I have to figure out why. I do enough of that for my job.

Hey @mlsully2002 do we have any kind of ETA on this? I’m trying not to nag. Really I am.

Chris Shackelford

1 Like

I have to agree with Chris on this. I’m no programmer and trying to make something for myself alone doesn’t make sense. What we need is for Troop Track to function the way other (competitor’s) programs do. I asked them to check out my previous provider’s system when I signed on, so see if they could mimic it’s features. Apparently this fell on deaf ears.Is Troop Track trying to be too much for too many? They want to service Boy scouts, Girl Scouts, and a plethora of others, but is this slowing down the improvement process? Or is there a separate system for each group?

Paul G. Starrp.starr@mediacombb.net563-320-3765Live Long & Prosper

SRogers, I have a programming background and am not at all leery of running your python script i order to add the functionality of having my merit badges automatically applied to rank. Could you help clarify the process that I would need to use your script?

I know that I need to apply for API, and I need to run the python script (python is already on my computer). Do I need to add it to Trooptrack in some way or does the script do that? Does it reassign merit badges that have already been assigned or do I need to switch them all to unassigned?

Thanks for any help you are willing to give
Tania

OK… Sorry, I’ve been away for awhile. But I wanted to do some clean up and testing before I came back here.

I’ve created new python scripts that do not use the TroopTrack API at all. They just read the web pages directly, calculate the correct rank for each completed merit badge and update the merit badge to assign it to that rank. (There is a “-t” command line option that will skip all updates, but still output what it would update if allowed.)

I also created a file with instructions for those that include how to download python, install a couple of extra python packages that the script uses and run the scripts. This is the TTReadMe.txt file.

So, here’s the links to the files:

  1. TTReadMe.txt
  2. TTinit.py
  3. TTAchievements.py

More information about #2 and #3 is explained inside the TTReadMe.txt file. But feel free to try it and ask me questions here if needed.

Let me know if you have any questions, comments or concerns!

Steve

Steve, I read your files, and did some investigating. I was (almost) stopped cold when I read your 1st instruction:"Steps to getting the script to work from scratch on Windows 10:"
Since I do all my work on a Mac, I wasn’t sure if I could continue. But after some investigation, I learned that Apple has been including a version of Python in OSX for some time. I dug in and found it, though my version was out of date. So I updated it, and started reading the instructions you provided. That is when I realized I was in way over my head. I am not a programmer, and so most of what you provided was like trying to read Russian.
I do thank you for your efforts, but I will have to wait till Troop Track puts this in. Even if I got it to work, I would be difficult to pass on to whoever took over this job for our Troop.

Paul G. Starrp.starr@mediacombb.net563-320-3765Live Long & Prosper

Totally understand. If it’s too daunting, it’s not worth it. My hope was that it would be easy to install and after putting it on a second Windows 10 machine, I thought that might be good enough.

But you are right, ultimately, we want TT to implement this within the web package at some point.

FWIW - You are correct in that Python should work the same between Windows and Mac. In looking at the code, the only “OS” ism that I use is that I read the “tt.rc” file that I mention in the TTReadMe.txt. (This is not required to run the script. So, it should still work.) Either way, from a Mac, I’d expect that you’d have run “pip install requests lxml” instead of “python -m pip install requests lxml” to get the packages installed. After that, I would have thought that it could work. If someone else in my troop has a mac that they would allow me to play around with it, I’ll see if it works for me.

I just looked and I didn’t know that pip was not preinstalled on OSX with python. (The default Python package for Windows has PIP automatically installed with Python.) I did find this link to a page that describes how he installs pip:


Another good page (with similar details) is this:

That is, if you feel like trying again.

Hope it helps,
Steve

We are new to TroopTrack and were surprised this is not already a function of TroopTrack. This was addressed over 2 years ago and still not ‘live’? If this is on the developers’ to do list, when does this get to ‘roll out’ to the program? Or is this a ‘user error’ and I am not seeing where I can click a box or something to activate this feature? Thank you so much sir!