Top Individuals List across TeamRaisers

Options

I am working with a client that wants to pull lists for top Individual and Teams across TeamRaisers nationally. I have read that using hte Affiliate Event setting allows for this sort of rollup. However, I only found a way to pull the Team List (S415). Does anyone know a good way (using affiliates or another solution) to pull Top Particpants list across TeamRaisers

Tagged:

Comments

  • Kent Gilliam
    Kent Gilliam Blackbaud Employee
    Ancient Membership Facilitator 4 Name Dropper Photogenic

    I'm not sure if there is some magical solution but you could use something like the S36 and manually insert the fr_id for each separate event. Now this isn't for affiliate events but if you have different individual events then this would work. Here's the URL for the S36 syntax: https://secure2.convio.net/customer/luminate_online/v12/s-tags/S-Tags.htm#S-Tags/S36_Lists_TeamRaiser_Participants.htm

     

    Hope this helps,

    Kent

  • Kent Gilliam:

    I'm not sure if there is some magical solution but you could use something like the S36 and manually insert the fr_id for each separate event. Now this isn't for affiliate events but if you have different individual events then this would work. Here's the URL for the S36 syntax: https://secure2.convio.net/customer/luminate_online/v12/s-tags/S-Tags.htm#S-Tags/S36_Lists_TeamRaiser_Participants.htm

     

    Hope this helps,

    Kent

    Thanks for the suggesion, not sure if that will help though. I am hoping to basically have one list that looks across all TeamRaisers of the same type, rather than seperate lists. I think I have seen the S36 used with 0 as fr-id, and that pulls in all TeamRaisers, but this client has several different TeamRaiser types. So, hoping to pull a rollup list that that allows for filtering. I realize this is a long shot, but maybe someone esle out there has run into a similar issue

  • Kent Gilliam
    Kent Gilliam Blackbaud Employee
    Ancient Membership Facilitator 4 Name Dropper Photogenic
    Wes Gabbard:

    Thanks for the suggesion, not sure if that will help though. I am hoping to basically have one list that looks across all TeamRaisers of the same type, rather than seperate lists. I think I have seen the S36 used with 0 as fr-id, and that pulls in all TeamRaisers, but this client has several different TeamRaiser types. So, hoping to pull a rollup list that that allows for filtering. I realize this is a long shot, but maybe someone esle out there has run into a similar issue

    When that 0 is used it will pull the fr_id from the id for which the TR event the page is in. It just makes it dynamic so the code can be used when copied for future events or when used in a blueprint and child. Let me send around an email and see if anyone has some ideas.

     

    Kent

  • Kent Gilliam
    Kent Gilliam Blackbaud Employee
    Ancient Membership Facilitator 4 Name Dropper Photogenic
    Kent Gilliam:

    When that 0 is used it will pull the fr_id from the id for which the TR event the page is in. It just makes it dynamic so the code can be used when copied for future events or when used in a blueprint and child. Let me send around an email and see if anyone has some ideas.

     

    Kent

    Wes,

     

    Got this from Noah Cooper when I asked him if what you want to do is possible:

     

    Not possible. The API method for retrieving a list of participants (getParticipants) can return and sort by the amount raised only when used within the context of a single event. If used to search across all events, the amount raised is not returned and cannot be used for sorting. The reason given for this in the past by Products is that “amount raised” can be completely different between events, since each event’s options determine what is counted toward a participant’s progress (e.g. each event can choose whether or not to include unconfirmed gifts, whether to include the value of registration fees, and whether to include the value of recurring gifts up front or only as each payment is received).

  • Kent Gilliam:

    Wes,

     

    Got this from Noah Cooper when I asked him if what you want to do is possible:

     

    Not possible. The API method for retrieving a list of participants (getParticipants) can return and sort by the amount raised only when used within the context of a single event. If used to search across all events, the amount raised is not returned and cannot be used for sorting. The reason given for this in the past by Products is that “amount raised” can be completely different between events, since each event’s options determine what is counted toward a participant’s progress (e.g. each event can choose whether or not to include unconfirmed gifts, whether to include the value of registration fees, and whether to include the value of recurring gifts up front or only as each payment is received).

    Thanks for the explanation Kent. I was afraid of that.

  • Austen Brown
    Austen Brown ✭✭✭✭✭
    Ninth Anniversary Facilitator 4 Name Dropper Photogenic
    Kent Gilliam‍ - I found your 'magical solution' post while looking for a solution similar to Wes' original question. How do you recommend I go about entering the multiple fr_id values needed to bring together data from our five TR events?  Any help you can give me would be greatly appreciated!
  • Here's my first idea. Super rough, of course.


    var tr_ids = ["1001", "1002", "1003", "1004", "1005"];
    <span>var all_data = "";<br/><br/>for</span><span> </span><span>(</span><span>index </span><span>=</span><span> </span><span>0</span><span>;</span><span> index </span><span><</span><span> </span>tr_ids<span>.</span><span>length</span><span>;</span><span> </span><span>++</span><span>index</span><span>)</span><span> </span><span>{</span><span> </span>
    <span> </span>getAllParticipants<span>(</span>tr_ids<span>[</span><span>index</span><span>], all_data);</span><span><br/></span><span>}</span>

    Here getAllParticipants would be a function that calls the API based on the fr_id passed in and gets your JSON or XML results, parse those results and append them into the <span>all_data</span> variable. In the end you'll have everything in that one large object which you could then sort, etc. HOWEVER, I'm worried about the whole async issue. Even if you set async in LuminateExtend, I think you'll still have problems since loops in JS are themselves not asynchronous. How does the script know that all five results are in? You might need to try the promise approach.

    https://lavrton.com/javascript-loops-how-to-handle-async-await-6252dd3c795/


    var tr_ids = ["1001", "1002", "1003", "1004", "1005"];
    <span>var all_data = "";</span>
    getAllEventParticipants<span>(</span>tr_ids );

    <span>async</span> <span>function</span> getAllEventParticipants<span>(</span><span>array</span><span>)</span> <span>{</span><br/> <span>const</span> promises <span>=</span> array.map<span>(</span>getAllParticipants<span>)</span><span>;</span><br/> <span>await</span> Promise<span>.</span><span>all</span><span>(</span>promises<span>)</span><span>;</span><br/> console<span>.</span><span>log</span><span>(</span><span>'Done! Now do something with all this data.'</span><span>)</span><span>;</span><br/><span>}</span>

    I haven't messed with async, await, and promises before, so it probably has some errors. But I think its a start.


    BPM

     

  • Momentum P2P is a teamraiser linked fundraising platform that has this functionality built in if you're looking for this (full disclosure, I'm the lead developer for this BlackBaud ISV partner solution).  If you're interested in a demo for this feature more than happy to show you how we've built this in!
  • Turns out that JQuery has an implementation for promises called wait. which I used to make this jQuery plugin.

    https://github.com/BrianPMucha/jQuery.madTopParticipants.js


    Here's a working example.

    http://foundation.luriechildrens.org/site/TR?fr_id=2000&pg=topparticipantlist


    Note: this example link may not live for too long. And I'm still trying to get the links to the participant's page working. Not sure if that's possible yet, since the API doesn't return the fr_id.


    The search page under the donate link also works across multiple TRs, though that one didn't need to deal with promises or wait. Instead we can give them all the same event_type and use that rather than an array of fr_ids to do the search in a single API call. At some point I'll get those search scripts on GitHub too.



    BPM
  • Here's a version for Top Teams.

    https://github.com/BrianPMucha/jquery.madTopTeams.js


    I have them both working on the home page of the event I'm working on.

    http://foundation.luriechildrens.org/site/TR/Events/CircleofFriends?pg=entry&fr_id=2000


    No way I could see to make links, though.

Categories