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 @@
Receba nossas novidades!

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 %} +
+ + Imagem de {{ donator.name }} + +
{{ 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