Changeset - 838fdcbfa46c
[Not reviewed]
0 1 1
Ben Sturmfels (bsturmfels) - 11 months ago 2023-10-20 01:47:58
ben@sturm.com.au
Move fundraising goal banner into a template include
2 files changed with 78 insertions and 76 deletions:
0 comments (0 inline, 0 general)
www/conservancy/apps/fundgoal/templates/fundgoal/fundraiser_goal_banner_partial.html
Show inline comments
 
new file 100644
 
{% load humanize %}
 
{% load subtract %}
 

	
 
{% comment %}
 
# FUNDRAISER VARIABLES AND CONSTANTS GUIDE
 

	
 
## From Local Context
 

	
 
* datetime_now: Current DateTime in UTC
 
* sitefundgoal: The current FundraisingGoal. Attributes:
 
  * fundraiser_goal_amount: The amount being matched
 
  * fundraiser_so_far_amount: The amount contributed so far
 
  * fundraiser_donation_count: The number of people who have contributed so far
 
  * fundraiser_donation_count_disclose_threshold: The number of new Sustainers that can be double-matched this fundraiser.
 
      (No, this name makes no sense. We're repurposing an existing model field for this new reason.)
 
* sitefundgoal_endtime: DateTime when sitefundgoal ends.
 

	
 
## Local convenience variables
 

	
 
* sitefundgoal_timeleft: TimeDelta for how much time remains in the current fundraiser
 
* this_match_goal: The amount being matched
 
* this_match_so_far: The amount contributed so far
 
* this_match_remaining: this_match_goal - this_match_so_far
 
* this_match_exceeded: this_match_so_far - this_match_goal
 

	
 
{% endcomment %}
 
{% with this_match_goal=sitefundgoal.fundraiser_goal_amount this_match_so_far=sitefundgoal.fundraiser_so_far_amount %}
 
{% with this_match_remaining=this_match_goal|subtract:this_match_so_far sitefundgoal_timeleft=sitefundgoal.fundraiser_endtime|subtract:datetime_now this_match_exceeded=this_match_so_far|subtract:this_match_goal %}
 
    <div class="fundraiser-top-text ph3 pt2 pb3 mb2 mb3-ns">
 
      <div class="mw8 center ph2 ph4-ns">
 
      <div class="mt2 mb3 tc">
 
        {% if this_match_remaining <= 0 %}
 
          Thanks to so many donors, we earned our full match!
 
          Help us go further to stand up for software freedom &mdash; <a href="/sustainer">sign up now</a>!
 
        {% else %}
 
          {% if sitefundgoal_timeleft.total_seconds <= 0 %}
 
            The
 
          {% elif sitefundgoal_timeleft.days == 0 %}
 
            Through today only, the
 
          {% elif sitefundgoal_timeleft.days == 1 %}
 
            Through tomorrow only, the
 
          {% elif sitefundgoal_timeleft.days < 14 %}
 
            For only {{ sitefundgoal_timeleft.days }} more days, the
 
          {% else %}
 
            Until January 15, the
 
          {% endif %}
 
        next ${{ this_match_remaining|floatformat:0|intcomma }} of <a href="/sustainer/">support we receive</a> will be matched!
 

	
 
        {% endif %}
 
      </div>
 

	
 
{% if 1 %}
 
<a href="/sustainer/" style="text-decoration: none !important">
 
<div id="siteprogressbar" class="flex items-stretch w-100">
 
  {% if this_match_remaining <= 0 %}
 
    <div class="progress matched pv1 b flex items-center" style="flex-basis: {{ this_match_so_far }}px">
 
      <span id="site-fundraiser-match-count" class="soFarText tc w-100">${{ this_match_goal|floatformat:0|intcomma }} fully matched!</span>
 
    </div>
 
    <div class="progress exceeded pv1 b flex items-center" style="flex-basis: {{ this_match_exceeded }}px">
 
      <span id="site-fundraiser-match-count" class="soFarText tc w-100 exceeded">${{this_match_exceeded|floatformat:0|intcomma }} additional<br> raised!<br></span>
 
    </div>
 
  {% else %}
 
    <div class="progress pv1 b flex items-center" style="flex-basis: {{ this_match_so_far }}px">
 
      <span id="site-fundraiser-match-count" class="soFarText tc w-100">${{ this_match_so_far|floatformat:0|intcomma }} matched!</span>
 
    </div>
 
    <div class="final-goal pv1 b flex items-center" style="flex-basis: {{ this_match_remaining }}px">
 
      <span id="site-fundraiser-final-goal" class="goalText tc w-100">${{ this_match_remaining|floatformat:0|intcomma }} to go!</span>
 
    </div>
 
    {% endif %}
 
</div>
 
</a>
 
{% endif %}
 

	
 
</div>
 
</div>
 
{% endwith %}
 
{% endwith %}
www/conservancy/templates/base_conservancy.html
Show inline comments
 
{% load humanize %}
 
{% load subtract %}
 
{% load min %}
 
{% load static %}
 

	
 
<!DOCTYPE html>
 

	
 
<html lang="en" prefix="og: http://ogp.me/ns#">
 

	
 
  <head>
 
    <title>{% block title %}{% block subtitle %}{% endblock %}Software Freedom Conservancy{% endblock %}</title>
 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
 
    <meta name="description" content="The Software Freedom Conservancy provides a non-profit home and services to Free, Libre and Open Source Software (FLOSS) projects." />
...
 
@@ -74,99 +72,26 @@
 
          <li class="Learn"><a href="/learn">Learn</a>
 
            {% include 'submenus/learn_partial.html' %}
 
          </li>
 
          <li class="News"><a href="/news/">News</a>
 
            {% include 'submenus/news_partial.html' %}
 
          </li>
 
        </ul>
 
      </div>
 
      <div id="navbar-clear"></div>
 

	
 
    </div>
 

	
 
{% comment %}
 
# FUNDRAISER VARIABLES AND CONSTANTS GUIDE
 

	
 
## From Local Context
 

	
 
* datetime_now: Current DateTime in UTC
 
* sitefundgoal: The current FundraisingGoal. Attributes:
 
  * fundraiser_goal_amount: The amount being matched
 
  * fundraiser_so_far_amount: The amount contributed so far
 
  * fundraiser_donation_count: The number of people who have contributed so far
 
  * fundraiser_donation_count_disclose_threshold: The number of new Sustainers that can be double-matched this fundraiser.
 
      (No, this name makes no sense. We're repurposing an existing model field for this new reason.)
 
* sitefundgoal_endtime: DateTime when sitefundgoal ends.
 

	
 
## Local convenience variables
 

	
 
* sitefundgoal_timeleft: TimeDelta for how much time remains in the current fundraiser
 
* this_match_goal: The amount being matched
 
* this_match_so_far: The amount contributed so far
 
* this_match_remaining: this_match_goal - this_match_so_far
 
* this_match_exceeded: this_match_so_far - this_match_goal
 

	
 
{% endcomment %}
 
{% if datetime_now < sitefundgoal.fundraiser_endtime %}
 
{% with this_match_goal=sitefundgoal.fundraiser_goal_amount this_match_so_far=sitefundgoal.fundraiser_so_far_amount %}
 
{% with this_match_remaining=this_match_goal|subtract:this_match_so_far sitefundgoal_timeleft=sitefundgoal.fundraiser_endtime|subtract:datetime_now this_match_exceeded=this_match_so_far|subtract:this_match_goal %}
 
    <div class="fundraiser-top-text ph3 pt2 pb3">
 
      <div class="mw8 center ph2 ph4-ns">
 
      <div class="mt2 mb3 tc">
 
        {% if this_match_remaining <= 0 %}
 
          Thanks to so many donors, we earned our full match!
 
          Help us go further to stand up for software freedom &mdash; <a href="/sustainer">sign up now</a>!
 
        {% else %}
 
          {% if sitefundgoal_timeleft.total_seconds <= 0 %}
 
            The
 
          {% elif sitefundgoal_timeleft.days == 0 %}
 
            Through today only, the
 
          {% elif sitefundgoal_timeleft.days == 1 %}
 
            Through tomorrow only, the
 
          {% elif sitefundgoal_timeleft.days < 14 %}
 
            For only {{ sitefundgoal_timeleft.days }} more days, the
 
          {% else %}
 
            Until January 15, the
 
          {% endif %}
 
        next ${{ this_match_remaining|floatformat:0|intcomma }} of <a href="/sustainer/">support we receive</a> will be matched!
 

	
 
        {% endif %}
 
      </div>
 

	
 
{% if 1 %}
 
<a href="/sustainer/" style="text-decoration: none !important">
 
<div id="siteprogressbar" class="flex items-stretch w-100">
 
  {% if this_match_remaining <= 0 %}
 
    <div class="progress matched pv1 b flex items-center" style="flex-basis: {{ this_match_so_far }}px">
 
      <span id="site-fundraiser-match-count" class="soFarText tc w-100">${{ this_match_goal|floatformat:0|intcomma }} fully matched!</span>
 
    </div>
 
    <div class="progress exceeded pv1 b flex items-center" style="flex-basis: {{ this_match_exceeded }}px">
 
      <span id="site-fundraiser-match-count" class="soFarText tc w-100 exceeded">${{this_match_exceeded|floatformat:0|intcomma }} additional<br> raised!<br></span>
 
    </div>
 
  {% else %}
 
    <div class="progress pv1 b flex items-center" style="flex-basis: {{ this_match_so_far }}px">
 
      <span id="site-fundraiser-match-count" class="soFarText tc w-100">${{ this_match_so_far|floatformat:0|intcomma }} matched!</span>
 
    </div>
 
    <div class="final-goal pv1 b flex items-center" style="flex-basis: {{ this_match_remaining }}px">
 
      <span id="site-fundraiser-final-goal" class="goalText tc w-100">${{ this_match_remaining|floatformat:0|intcomma }} to go!</span>
 
    </div>
 
    {% endif %}
 
</div>
 
</a>
 
{% endif %}
 

	
 
</div>
 
</div>
 
{% endwith %}
 
{% endwith %}
 
  {% include "fundgoal/fundraiser_goal_banner_partial.html" %}
 
{% endif %}
 

	
 
    <div class="mw8 center ph2 ph3">
 
      {% block outercontent %}<div id="mainContent"> {% block content %}{% endblock %}</div>{% endblock %}
 
    </div>
 

	
 
    <div id="conservancyfooter" class="mt4-ns pt3 ph3 bg-light-gray">
 
      <p>Connect with Conservancy on
 
        <a href="https://social.sfconservancy.org/conservancy">Mastodon</a>,
 
        <a href="https://twitter.com/conservancy">Twitter</a>,
 
        <a href="https://www.facebook.com/SoftwareFreedomConservancy/">Facebook</a>,
 
        and <a href="https://www.youtube.com/channel/UCUEeuNvX2UyTTyTYXR9dm_A">YouTube</a>.</p>
0 comments (0 inline, 0 general)