diff --git a/core/templates/base.html b/core/templates/base.html
index 1ae1851e..b170a3b3 100644
--- a/core/templates/base.html
+++ b/core/templates/base.html
@@ -113,8 +113,8 @@
O Brasil.IO é mantido com muito carinho por
- Álvaro Justen e
- contribuidores.
+ Álvaro Justen,
+ contribuidores e doadores.
diff --git a/core/templates/donators.html b/core/templates/donators.html
new file mode 100644
index 00000000..10bbfaa5
--- /dev/null
+++ b/core/templates/donators.html
@@ -0,0 +1,70 @@
+{% extends 'base.html' %}
+{% load static %}
+{% block title %}Doadores - Brasil.IO{% endblock %}
+{% block head %}
+{{ block.super }}
+
+
+
+{% endblock %}
+
+{% block content %}
+
+
Doadores
+
+
+
+
+ A lista abaixo é de pessoas que apoiam nossa campanha pela plataforma Apoia.se de
+ financiamento coletivo.
+ Colabore você também clicando aqui.
+
+
+
+ {% for donator in donators.donors %}
+
+
+
+
+
{{ donator.name }}
+
+ {% endfor %}
+
+
+
+ {% if not donators.finished %}
+
+ {% endif %}
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/core/urls.py b/core/urls.py
index aef927a3..58f32844 100644
--- a/core/urls.py
+++ b/core/urls.py
@@ -19,6 +19,7 @@
path("manifesto/", views.manifesto, name="manifesto"),
path("colabore/", views.collaborate, name="collaborate"),
path("doe/", views.donate, name="donate"),
+ path("donators/", views.donators, name="donators"),
path("contribuidores/", views.contributors, name="contributors"),
# Dataset-specific pages (specials)
path("especiais/", views_special.index, name="specials"),
diff --git a/core/util.py b/core/util.py
index a0d5d1ad..9fba8baf 100644
--- a/core/util.py
+++ b/core/util.py
@@ -172,22 +172,19 @@ def create_table_documentation(table):
# Brasil.IO on apoiase: "5ab97be3c3f083c623a26742"
-def get_apoiase_donors(campain_id):
+def get_apoiase_donors(campain_id, skip):
limit = 25 # Max per page
url = "https://apoia.se/api/v1/users/public-supporters"
- data = {"campaignId": campain_id, "limit": limit, "skip": 0}
- finished = False
+ data = {"campaignId": campain_id, "limit": limit, "skip": skip}
donors = []
- while not finished:
- data["skip"] = len(donors)
- request = Request(
- url,
- data=json.dumps(data).encode("utf-8"),
- method="POST",
- headers={"Content-Type": "application/json;charset=UTF-8", "User-Agent": USER_AGENT},
- )
- response = urlopen(request)
- new = json.loads(response.read())
- donors.extend(new)
- finished = len(new) < limit
- return donors
+ request = Request(
+ url,
+ data=json.dumps(data).encode("utf-8"),
+ method="POST",
+ headers={"Content-Type": "application/json;charset=UTF-8", "User-Agent": USER_AGENT},
+ )
+ response = urlopen(request)
+ new = json.loads(response.read())
+ donors.extend(new)
+ finished = len(new) < limit
+ return {'donors': donors, 'finished': finished }
diff --git a/core/views.py b/core/views.py
index 001ebe2e..b86aad61 100644
--- a/core/views.py
+++ b/core/views.py
@@ -12,7 +12,7 @@
from core.forms import ContactForm, DatasetSearchForm
from core.models import Dataset, Table
from core.templatetags.utils import obfuscate
-from core.util import cached_http_get_json
+from core.util import cached_http_get_json, get_apoiase_donors
class Echo:
@@ -100,7 +100,7 @@ def dataset_detail(request, slug, tablename=""):
except Dataset.DoesNotExist:
context = {"message": "Dataset does not exist"}
return render(request, "404.html", context, status=404)
-
+
if not tablename:
tablename = dataset.get_default_table().name
return redirect(reverse("core:dataset-table-detail", kwargs={"slug": slug, "tablename": tablename},))
@@ -199,3 +199,8 @@ def contributors(request):
url = "https://data.brasil.io/meta/contribuidores.json"
data = cached_http_get_json(url, 5)
return render(request, "contributors.html", {"contributors": data})
+
+def donators(request):
+ skip = request.GET.get('skip', 0)
+ data = get_apoiase_donors("5ab97be3c3f083c623a26742", int(skip))
+ return render(request, "donators.html", {"donators": data })
\ No newline at end of file