Source code for swh.web.banners.views

# Copyright (C) 2021-2023  The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU Affero General Public License version 3, or any later version
# See top-level LICENSE file for more information

import requests

from django.shortcuts import render
from django.views.decorators.clickjacking import xframe_options_exempt

from swh.web.config import get_config


[docs] @xframe_options_exempt def fundraising_banner(request): config = get_config() public_key = config["give"]["public_key"] token = config["give"]["token"] give_api_forms_url = ( "https://www.softwareheritage.org/give-api/v1/forms/" f"?key={public_key}&token={token}&form=27047" ) donations_goal = 100 nb_donations = -1 try: fundraising_form = requests.get(give_api_forms_url).json().get("forms", []) if fundraising_form: nb_donations = int( fundraising_form[0] .get("stats", {}) .get("total", {}) .get("donations", -1) ) except Exception: pass goal_percent = int(nb_donations / donations_goal * 100) lang = request.GET.get("lang") return render( request, "fundraising-banner.html", { "nb_donations": nb_donations, "donations_goal": donations_goal, "goal_percent": goal_percent, "lang": lang if lang else "en", "donation_form_url": ( "https://www.softwareheritage.org/donations/" "help-preserve-sourcecode-2021/" ), }, )
[docs] @xframe_options_exempt def hiring_banner(request): lang = request.GET.get("lang") return render( request, "banner-iframe.html", {"lang": lang if lang else "en", "banner_template": "./hiring-banner.html"}, )
[docs] @xframe_options_exempt def downtime_banner(request): lang = request.GET.get("lang") return render( request, "banner-iframe.html", {"lang": lang if lang else "en", "banner_template": "downtime-banner.html"}, )