Changeset - cffc81b5d884
[Not reviewed]
0 2 0
Bradley Kuhn (bkuhn) - 8 years ago 2016-01-19 03:50:08
bkuhn@ebb.org
Prepare for Supporters beyond 750.

After the next import, we'll have more than 750 supporters. This change
not only handles that fact, but adds sufficient Javascript and Django
templating to handle the case if the Supporter count for any reason
drops below 750 again.
2 files changed with 50 insertions and 21 deletions:
0 comments (0 inline, 0 general)
www/conservancy/static/js/supporter-page.js
Show inline comments
...
 
@@ -28,30 +28,47 @@ $(document).ready(function() {
 
    var incrementSoFar = 0.00;
 
    var curDonationCount = 0;
 
    var riseLevelPercent = 0.5;
 
    var incrementDonationCount = Math.round( (riseLevelPercent / 100) * noCommaDonationCount );
 
    $('#siteprogressbar').empty();
 

	
 
    $('#siteprogressbar').
 
        multiprogressbar({ parts: [
 
          { value: (noCommaSiteSoFar / noCommaSiteFinalGoal) * 100,
 
            text: siteSoFar + " joined!",
 
            barClass: "progress", textClass: "soFarText" },
 
            { value: ((noCommaSiteMiddleGoal - noCommaSiteSoFar) / noCommaSiteFinalGoal) * 100,
 
            text: siteMiddleGoal + " will save our basic work",
 
            barClass: "middle-goal", textClass: "goalText" },
 
            { value: 
 
              ((noCommaMatchFinalGoal - noCommaSiteMiddleGoal) / noCommaSiteFinalGoal) * 100,
 
              text: noCommaMatchFinalGoal.toLocaleString() + " will save license compliance", 
 
              barClass: "final-goal", textClass: "goalText" },
 
            {  value: 100,
 
               text: siteMatchCount + " matched!",
 
               barClass: "progress", textClass: "soFarText" },
 

	
 
        ]});
 

	
 
    if (noCommaSiteSoFar > noCommaSiteMiddleGoal) {
 
        // We've got
 
        var moreCount = noCommaSiteSoFar - noCommaSiteMiddleGoal;
 
        moreCount =  moreCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 
        $('#siteprogressbar').
 
            multiprogressbar({ parts: [
 
                { value: (noCommaSiteSoFar / noCommaSiteFinalGoal) * 100,
 
                  text: "750 achieved! " + moreCount + " beyond that have joined!",
 
                  barClass: "progress", textClass: "soFarText" },
 
                { value:
 
                  ((noCommaMatchFinalGoal - noCommaSiteMiddleGoal) / noCommaSiteFinalGoal) * 100,
 
                  text: noCommaMatchFinalGoal.toLocaleString() + " will save license compliance work",
 
                  barClass: "final-goal", textClass: "goalText" },
 
                {  value: 100,
 
                   text: siteMatchCount + " matched!",
 
                   barClass: "progress", textClass: "soFarText" },
 
            ]});
 
    } else {
 
        $('#siteprogressbar').
 
            multiprogressbar({ parts: [
 
                { value: (noCommaSiteSoFar / noCommaSiteFinalGoal) * 100,
 
                  text: siteSoFar + " joined!",
 
                  barClass: "progress", textClass: "soFarText" },
 
                { value: ((noCommaSiteMiddleGoal - noCommaSiteSoFar) / noCommaSiteFinalGoal) * 100,
 
                  text: siteMiddleGoal + " will save our basic work",
 
                  barClass: "middle-goal", textClass: "goalText" },
 
                { value:
 
                  ((noCommaMatchFinalGoal - noCommaSiteMiddleGoal) / noCommaSiteFinalGoal) * 100,
 
                  text: noCommaMatchFinalGoal.toLocaleString() + " will save license compliance",
 
                  barClass: "final-goal", textClass: "goalText" },
 
                {  value: 100,
 
                   text: siteMatchCount + " matched!",
 
                   barClass: "progress", textClass: "soFarText" },
 
            ]});
 
    }
 
    $('span#fundraiser-percentage').css({ 'color'        : 'green',
 
                                          'font-weight'  : 'bold',
 
                                          'float'        : 'right',
 
                                          'margin-right' : '40%',
 
                                          'margin-top'   : '2.5%',
 
                                          'text-align'   : 'inherit'});
www/conservancy/templates/base_conservancy.html
Show inline comments
...
 
@@ -40,25 +40,37 @@
 
	</ul>
 
      </div>
 
      <div id="navbar-clear"></div>
 

	
 
    </div>
 
    <div class="fundraiser-top-text">
 
{% if sitefundgoal.fundraiser_so_far_amount < 750 %}
 
   <em>Conservancy
 
   <a href="/supporter/">needs <span id="site-fundraiser-middle-goal">{{ sitefundgoal.fundraiser_donation_count|intcomma }}</span> Supporters</a> to continue its basic community services &amp;
 
   <span id="site-fundraiser-final-goal">{{ sitefundgoal.fundraiser_goal_amount|intcomma }}</span> to
 
   avoid hibernating its enforcement efforts!
 
{% else %}
 
      <em>Conservancy will continue our basic community services, thanks to our
 
        first 750 Supporters! However, we still need
 
        <span id="site-fundraiser-middle-goal">{{ sitefundgoal.fundraiser_donation_count|intcomma }}</span> Supporters to avoid reducing licensing work and hibernating our
 
        enforcement efforts!
 
{% endif %}
 
{% if sitefundgoal.fundraiser_donation_count_disclose_threshold < 632 %}
 
The next {{ 632|subtract:sitefundgoal.fundraiser_donation_count_disclose_threshold }} supporters
 
who sign up <a href="/news/2015/dec/24/private-internet-access-match/">by January 31 will count twice</a>, thanks to <a href="https://www.privateinternetaccess.com/">Private Internet Access</a>!
 
{% endif %}
 
</em>
 
<a href="/supporter"><div id="siteprogressbar">
 
    <span id="site-fundraiser-so-far">{{ sitefundgoal.fundraiser_so_far_amount|intcomma }}</span> have joined so far
 
<div id="siteprogressbar">
 
<a href="/supporter">
 
<span id="site-fundraiser-so-far">{{ sitefundgoal.fundraiser_so_far_amount|intcomma }}</span> have joined so far.
 
{% if sitefundgoal.fundraiser_so_far_amount > 750 %}
 
Thus, our 750 goal was achieved and {{ sitefundgoal.fundraiser_so_far_amount|subtract:750|intcomma }}</span> have
 
    joined beyond that.
 
{% endif %}
 
{% if sitefundgoal.fundraiser_donation_count_disclose_threshold > 0 %}
 
    and match pledges reduced our 2,500 maximum need by <span id="site-fundraiser-match-count">{{ sitefundgoal.fundraiser_donation_count_disclose_threshold|min:632|intcomma }}</span>
 
Also, match pledges reduced our 2,500 maximum need by <span id="site-fundraiser-match-count">{{ sitefundgoal.fundraiser_donation_count_disclose_threshold|min:632|intcomma }}</span>
 
{% endif %}
 
!</div></a>
 
</div>
 
      {% block outercontent %}<div id="mainContent"> {% block content %}{% endblock %}</div>{% endblock %}
 
    <div id="conservancyfooter">
 
      <p><a href="/">Main Page</a> | <a href="/about/contact/">Contact</a> | <a href="/sponsors/">Sponsors</a> | <a href="/privacy-policy/">Privacy Policy</a> | <a href="/feeds/omnibus/">RSS Feed</a></p>
0 comments (0 inline, 0 general)