Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tela doadores eixibindo do apoia.se #377

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions core/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ <h6 class=" text-center white-text"> Receba nossas novidades! </h6>
<div class="section indigo-text text-lighten-5" style="padding-top: 0 !important;">
<p>
O <b>Brasil.IO</b> é mantido com muito carinho por
<a href="https://twitter.com/turicas" title="Twitter do Álvaro Justen">Álvaro Justen</a> e
<a href="{% url 'core:contributors' %}">contribuidores</a>.
<a href="https://twitter.com/turicas" title="Twitter do Álvaro Justen">Álvaro Justen</a>,
<a href="{% url 'core:contributors' %}">contribuidores</a> e <a href="{% url 'core:donators' %}">doadores</a>.
</p>
</div>
<div class="container">
Expand Down
70 changes: 70 additions & 0 deletions core/templates/donators.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{% extends 'base.html' %}
{% load static %}
{% block title %}Doadores - Brasil.IO{% endblock %}
{% block head %}
{{ block.super }}
<!-- cdnjs -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/noframework.waypoints.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/shortcuts/infinite.js"></script>
{% endblock %}

{% block content %}
<div class="section">
<h4>Doadores</h4>
<div class="divider"></div>

<div class="row m-t-5">
<p>
A lista abaixo é de pessoas que <i>apoiam nossa campanha</i> pela plataforma <strong>Apoia.se</strong> de
financiamento coletivo.
<a href="https://apoia.se/brasilio" title="Apoie nossa campanha">Colabore você também clicando aqui.</a>
</p>
<div class="row">
<div class="infinite-container col s12 center" id="container">
{% for donator in donators.donors %}
<div class="col s12 m3 m-t-15 infinite-item" style="min-height: 130px;">
<span class="fa-stack fa-2x text-center">
<img class="circle responsive-img" src="{{ donator.image }}" alt="Imagem de {{ donator.name }}">
</span>
<h6> {{ donator.name }} </h6>
</div>
{% endfor %}
</div>
<div class="loading col s12 center" style="display: none;">
<div class="preloader-wrapper big active">
<div class="spinner-layer spinner-blue-only">
<div class="circle-clipper left">
<div class="circle"></div>
</div>
<div class="gap-patch">
<div class="circle"></div>
</div>
<div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
</div>
</div>
{% if not donators.finished %}
<a class="infinite-more-link" id="link"></a>
{% endif %}
</div>
</div>
<script type="text/javascript">
const imgError = function () {$(this).attr('src', 'https://www.gravatar.com/avatar/0c69fde20bd613fa206dca3d9996b661?d=mp')};
$('img').on("error", imgError)
var infinite = new Waypoint.Infinite({
element: $('#container').get(0),
offset: 'bottom-in-view',
onBeforePageLoad: function (element) {
$('.loading').show();
$('#link').attr('href', `?skip=${$('#container').children().length}`);
},
onAfterPageLoad: function () {
$('.loading').hide();
$('img').on("error", imgError)
}
})
</script>
{% endblock %}
1 change: 1 addition & 0 deletions core/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
Expand Down
29 changes: 13 additions & 16 deletions core/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
9 changes: 7 additions & 2 deletions core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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},))
Expand Down Expand Up @@ -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 })