Skip to content

Commit

Permalink
Merge pull request #871 from amakarudze/partners
Browse files Browse the repository at this point in the history
Add sponsors page, make sponsor urls open on blank page
  • Loading branch information
amakarudze committed Mar 15, 2023
2 parents ef12cb6 + 0a0ab03 commit 7e1bc0b
Show file tree
Hide file tree
Showing 12 changed files with 171 additions and 13 deletions.
2 changes: 2 additions & 0 deletions core/context_processors.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ def statistics(request):
gold = global_partners.filter(sponsor_level_annual=2500)
platinum = global_partners.filter(sponsor_level_annual=5000)
silver = global_partners.filter(sponsor_level_annual=1000)
bronze = global_partners.filter(sponsor_level_annual=500)

return {
"past_events_count": past_events.count(),
Expand All @@ -31,4 +32,5 @@ def statistics(request):
"gold": gold,
"platinum": platinum,
"silver": silver,
"bronze": bronze,
}
1 change: 1 addition & 0 deletions donations/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@
path("charge/", views.charge, name="charge"),
path("success/<str:currency>/<str:amount>/", views.success, name="success"),
path("error/", views.error, name="error"),
path("sponsors/", views.sponsors, name="sponsors"),
]
5 changes: 4 additions & 1 deletion donations/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ def success(request, currency, amount):


def error(request):

if "stripe_message" in request.session:
error_message = request.session.get("stripe_message")
del request.session["stripe_message"]

return render(request, "donations/error.html", {"stripe_message": error_message})


def sponsors(request):
return render(request, "donations/sponsors.html")
17 changes: 17 additions & 0 deletions globalpartners/migrations/0003_globalpartner_description.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated by Django 3.2.18 on 2023-03-08 20:38

from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("globalpartners", "0002_alter_globalpartner_sponsor_level_annual"),
]

operations = [
migrations.AddField(
model_name="globalpartner",
name="description",
field=models.TextField(blank=True, max_length=1000, null=True),
),
]
1 change: 1 addition & 0 deletions globalpartners/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ class GlobalPartner(models.Model):
date_contacted = models.DateField(blank=True, null=True)
next_renewal_date = models.DateField(blank=True, null=True)
logo = models.ImageField(upload_to="uploads", blank=True, null=True)
description = models.TextField(max_length=1000, blank=True, null=True)
is_displayed = models.BooleanField(default=False)
website_url = models.URLField(blank=True, null=True)
style = models.CharField(max_length=50, blank=True, null=True)
Expand Down
116 changes: 116 additions & 0 deletions templates/donations/sponsors.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
{% extends 'global/base.html' %}
{% load i18n static %}

{% block content %}
{% url 'contact:landing' as contact_url %}

<div class="container">
<h1 class="text-center">{% trans "Our Global Partners" %}</h1>

<div>
{% blocktrans trimmed %}
Our global partners are companies who are supporting our work by donating to us either monthly through
<a href="https://www.patreon.com/djangogirls" target="_blank">Patreon</a> or through annual sponsorships.
Want to join these amazing companies in sponsoring us?
Our <a href="https://drive.google.com/file/d/1T2jL9tnu5ZkNvkQRAxd7jlt_BnX7VCLE/view?usp=sharing">corporate sponsorships</a>
start at 100 USD per month. <a href="{{ contact_url }}">Contact us!</a> 📨
{% endblocktrans %}
</div>

{% if diamond %}
<h2 class="text-center">{% trans "Diamond - $10,000+ per year 💞✨" %}</h2>

{% for sponsor in diamond %}
<div class="row">
<div class="col-md-9">
<a href="{{ sponsor.website_url }}" target="_blank"><h4>{{ sponsor.company_name }}</h4></a>
{% if sponsor.description %}
<p>{{ sponsor.description| safe }}</p>
{% endif %}
</div>
<div class="col-md-3">
<a href="{{ sponsor.website_url }}" target="_blank"><img src="{{ sponsor.logo.url }}" alt="{{ sponsor.company_name }}"></a>
</div>
</div>
{% endfor %}
{% endif %}

{% if platinum %}
<h2 class="text-center">{% trans "Platinum - $5,000+ per year 💝✨" %}</h2>

{% for sponsor in platinum %}
<div class="row">
<div class="col-md-9">
<a href="{{ sponsor.website_url }}" target="_blank"><h4>{{ sponsor.company_name }}</h4></a>
{% if sponsor.description %}
<p>{{ sponsor.description| safe }}</p>
{% endif %}
</div>
<div class="col-md-3">
<a href="{{ sponsor.website_url }}" target="_blank"><img src="{{ sponsor.logo.url }}" alt="{{ sponsor.company_name }}"></a>
</div>
</div>
{% endfor %}
{% endif %}

{% if gold %}
<h2 class="text-center">{% trans "Gold - $2,500+ per year 💖✨" %}</h2>

{% for sponsor in gold %}
<div class="row">
<div class="col-md-9">
<a href="{{ sponsor.website_url }}" target="_blank"><h4>{{ sponsor.company_name }}</h4></a>
{% if sponsor.description %}
<p>{{ sponsor.description| safe }}</p>
{% endif %}
</div>
<div class="col-md-3">
<a href="{{ sponsor.website_url }}" target="_blank"><img src="{{ sponsor.logo.url }}" alt="{{ sponsor.company_name }}"></a>
</div>
</div>
{% endfor %}
{% endif %}

{% if silver %}
<h2 class="text-center">{% trans "Silver - $1,000+ per year 💗✨" %}</h2>

{% for sponsor in sliver %}
<div class="row">
<div class="col-md-9">
<a href="{{ sponsor.website_url }}" target="_blank"><h4>{{ sponsor.company_name }}</h4></a>
{% if sponsor.description %}
<p>{{ sponsor.description| safe }}</p>
{% endif %}
</div>
<div class="col-md-3">
<a href="{{ sponsor.website_url }}" target="_blank"><img src="{{ sponsor.logo.url }}" alt="{{ sponsor.company_name }}"></a>
</div>
</div>
{% endfor %}
{% endif %}

{% if bronze %}
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4"><h2>{% block trans %}Bronze - $500+ per year 💓✨{% endblock %}</h2></div>
<div class="col-md-4"></div>
</div>

{% for sponsor in bronze %}
<div class="row">
<div class="col-md-9">
<a href="{{ sponsor.website_url }}" target="_blank"><h4>{{ sponsor.company_name }}</h4></a>
{% if sponsor.description %}
<p>{{ sponsor.description| safe }}</p>
{% endif %}
</div>
<div class="col-md-3">
<a href="{{ sponsor.website_url }}" target="_blank"><img src="{{ sponsor.logo.url }}" alt="{{ sponsor.company_name }}"></a>
</div>
</div>
{% endfor %}
{% endif %}

</div>

{% endblock %}
3 changes: 2 additions & 1 deletion templates/global/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
<li><a href="{% url 'donations:index' %}">{% trans "Make a donation" %}</a></li>
<li><a href="https://www.patreon.com/djangogirls">{% trans "Donate on Patreon" %}</a></li>
<li><a href="{% url 'core:contribute' %}">{% trans "Contribute" %}</a></li>
<li><a href="https://drive.google.com/file/d/1QVS4_eWu-cZyvbK5-G0x4sXkDg9Xx6eY/view?usp=sharing">{% trans "Sponsor us" %}</a></li>
<li><a href="https://drive.google.com/file/d/1T2jL9tnu5ZkNvkQRAxd7jlt_BnX7VCLE/view?usp=sharing">{% trans "Sponsor us" %}</a></li>
<li><a href="{% url 'donations:sponsors' %}">{% trans "Our Sponsors" %}</a></li>
</ul>
</div>
<div class="col-md-2">
Expand Down
1 change: 1 addition & 0 deletions templates/global/menu.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<ul class="dropdown-menu">
<li><a href="{% url 'donations:index' %}">{% trans "Donate" %}</a></li>
<li><a href="https://www.patreon.com/djangogirls">{% trans "Our Patreon page" %}</a></li>
<li><a href="{% url 'donations:sponsors' %}">{% trans "Our Sponsors" %}</a></li>
</ul>
</li>
</ul>
Expand Down
10 changes: 5 additions & 5 deletions templates/includes/_main_sponsors.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
{% for partner in diamond %}
{% if forloop.first %}<div class="row">{% endif %}
<div class="col-md-3">
<a href="{{ partner.website_url}}">
<a href="{{ partner.website_url}}" target="_blank">
<img class="img-responsive center-block" src="{{ partner.logo.url }}"
alt="{{ partner.company_name }}" style="{{ partner.style }}"/>
</a>
Expand All @@ -28,7 +28,7 @@
{% for partner in platinum %}
{% if forloop.first %}<div class="row">{% endif %}
<div class="col-md-3">
<a href="{{ partner.website_url}}">
<a href="{{ partner.website_url}}" target="_blank">
<img class="img-responsive center-block" src="{{ partner.logo.url }}"
alt="{{ partner.company_name }}" style="{{ partner.style }}"/>
</a>
Expand All @@ -47,7 +47,7 @@
{% for partner in gold %}
{% if forloop.first %}<div class="row">{% endif %}
<div class="col-md-3">
<a href="{{ partner.website_url}}">
<a href="{{ partner.website_url}}" target="_blank">
<img class="img-responsive center-block" src="{{ partner.logo.url }}"
alt="{{ partner.company_name }}" style="{{ partner.style }}"/>
</a>
Expand All @@ -66,7 +66,7 @@
{% for partner in silver %}
{% if forloop.first %}<div class="row">{% endif %}
<div class="col-md-3">
<a href="{{ partner.website_url}}">
<a href="{{ partner.website_url}}" target="_blank">
<img class="img-responsive center-block" src="{{ partner.logo.url }}"
alt="{{ partner.company_name }}" style="{{ partner.style }}"/>
</a>
Expand All @@ -85,7 +85,7 @@
{% for partner in bronze %}
{% if forloop.first %}<div class="row">{% endif %}
<div class="col-md-3">
<a href="{{ partner.website_url}}">
<a href="{{ partner.website_url}}" target="_blank">
<img class="img-responsive center-block" src="{{ partner.logo.url }}"
alt="{{ partner.company_name }}" style="{{ partner.style }}"/>
</a>
Expand Down
4 changes: 2 additions & 2 deletions templates/includes/_main_supporters.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

<div class="row">
<div class="col-md-3">
<a href="https://www.python.org/psf/">
<a href="https://www.python.org/psf/" target="_blank">
<img class="img-responsive center-block" src="{% static 'img/global/supporters/pythonsoftwarefoundation.png' %}"
alt="Python Software Foundation" style="margin-top: 25px" />
</a>
</div>
<div class="col-md-3">
<a href="https://sentry.io/welcome/">
<a href="https://sentry.io/welcome/" target="_blank">
<img class="img-responsive center-block" src="{% static 'img/global/supporters/sentry.png' %}"
alt="Sentry" style="margin-top: 25px" />
</a>
Expand Down
16 changes: 12 additions & 4 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from globalpartners.models import GlobalPartner
from pictures.models import StockPicture
from sponsor.models import Donor

from tests.mocks import * # noqa


Expand All @@ -17,7 +16,6 @@ def default_mocks(slack_mock):
"""
Add mocks that should be accessible for all tests in this function signature.
"""
pass


@pytest.fixture(autouse=True)
Expand Down Expand Up @@ -283,12 +281,22 @@ def remote_story():
@pytest.fixture
def globalpartner(db):
return GlobalPartner.objects.create(
company_name="Django", contact_person="Jane Doe", contact_email="jane@djangoproject.com", logo="django.png"
company_name="Django Software Foundation",
contact_person="Jane Doe",
contact_email="jane@djangoproject.com",
logo="django.png",
is_displayed=True,
sponsor_level_annual=5000,
)


@pytest.fixture
def globalpartner2(db):
return GlobalPartner.objects.create(
company_name="Caktus Group", contact_person="Jane Doe", contact_email="jane@caktus.com", logo="caktus.png"
company_name="Caktus Group",
contact_person="Jane Doe",
contact_email="jane@caktus.com",
logo="caktus.png",
is_displayed=True,
sponsor_level_annual=2500,
)
8 changes: 8 additions & 0 deletions tests/donations/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import pytest
from django.test import override_settings
from django.urls import reverse
from pytest_django.asserts import assertContains
from stripe.error import StripeError

STRIPE_PUBLIC_KEY = os.environ.get("STRIPE_PUBLIC_KEY", "test_public")
Expand Down Expand Up @@ -54,3 +55,10 @@ def test_charge_post_invalid_keys(client):
with pytest.raises(StripeError):
# This is missing stripe data
client.post(reverse("donations:charge"), data=charge_data)


def test_sponsors(client, globalpartner, globalpartner2):
resp = client.get(reverse("donations:sponsors"))
assert resp.status_code == 200
assertContains(resp, "Django Software Foundation")
assertContains(resp, "Caktus Group")

0 comments on commit 7e1bc0b

Please sign in to comment.