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

Add context processors for meupet and users apps to be used in the about page #41

Merged
merged 2 commits into from Dec 10, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 7 additions & 0 deletions pets/meupet/context_processors.py
@@ -0,0 +1,7 @@
from .models import Pet


def pets_count(request):
return {
'pets_count': Pet.objects.count(),
}
16 changes: 16 additions & 0 deletions pets/meupet/tests/test_context_processors.py
@@ -0,0 +1,16 @@
from django.test import TestCase
from model_mommy import mommy

from meupet.context_processors import pets_count
from meupet.models import Pet


class ContextProcessorsTestCase(TestCase):
def setUp(self):
mommy.make(Pet)
mommy.make(Pet, active=False)

def test_pets_count(self):
context = pets_count({})

self.assertEqual(2, context['pets_count'])
2 changes: 2 additions & 0 deletions pets/pets/settings/prod.py
Expand Up @@ -88,6 +88,8 @@
'django.contrib.messages.context_processors.messages',
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
'meupet.context_processors.pets_count',
'users.context_processors.users_count',
],
'loaders': [
('django.template.loaders.cached.Loader', PROJECT_TEMPLATE_LOADERS),
Expand Down
8 changes: 8 additions & 0 deletions pets/static/css/pets.css
Expand Up @@ -243,6 +243,14 @@ body {
border-color: #286B5A;
}

/** About **/
.site-stats {
font-size: 2.4rem;
font-weight: 500;
margin-bottom: 10px;
margin-top: 20px;
}

/** Card Pet **/
.card-pet {
margin-bottom: 15px;
Expand Down
Binary file removed pets/static/img/madonna_mabel.jpg
Binary file not shown.
99 changes: 30 additions & 69 deletions pets/templates/staticpages/about.html
Expand Up @@ -4,83 +4,44 @@
{% block title %}Sobre{% endblock %}

{% block content %}
<p>A idéia do site surgiu depois de um resgate, uma tentativa de adoção - e posterior adoção pela minha namorada e
pela mãe dela - em um fim de semana de Abril de 2014 e também por conta de um gato, Darwin, que desapareceu e não
encontramos mais. Sempre penso nele e se, de alguma forma, poderíamos encontrá-lo algum dia.
<p>
O Cadê meu Bicho existe há cerca de três anos. A ideia do site surgiu após um resgate e adoção de duas gatinhas e
de um gato, Darwin, que desapareceu no mesmo
período.
</p>

<p>Atualmente, o Facebook tem sido uma ferramenta essencial para inúmeras associações e ONGs para divulgar sobre
adoções, desaparecimentos e pedidos de ajuda em prol de animais de diversas espécies. Apesar dessa inegável
utilidade, facilidade e popularidade, o Facebook tem sido um dos principais - e mais rápidos - meios de divulgação
de informações, o que faz com que muitos <span class="italic">posts</span> dessas ONGs e associações se percam no
imenso mar de
compartilhamentos diários. Queria que houvesse algo centralizado e bem simples. Um lugar onde houvesse só animais
perdidos, encontrados e para adoção.</p>

<h2>As gêmeas</h2>

<p>Numa sexta a noite de Abril de 2014, ao voltarmos pra casa durante a noite, vi uma pequena forma correndo
desajeitada atravessar a rua. Paramos o carro, e vimos que era um filhote de gato preto e branco que acabara de
entrar em um terreno baldio e se esconder no mato que já vinha crescendo sem qualquer cuidados há algum tempo.
</p>

<p>Tentamos pegar esse filhote por um bom tempo, mas sem sucesso. Desistimos e resolvemos seguir o caminho, ainda do
lado desse terreno. Um pouco mais a frente minha namorada falou “Para!” e eu parei. Demorei pra ver o que ela tinha
visto: um outro gatinho branco, deitado numa sacola branca - não sei como ela viu.
</p>

<p>Quando tentamos chamá-lo, ele também correu junto ao primeiro filhote e ficaram deitados lado a lado, num lugar
onde não conseguíamos alcançar. Passamos a noite arquitetando planos de como conseguiríamos tirar aqueles gatinhos
daquele lugar, pois além do frio que fazia na época, havia muito lixo no local.
</p>

<p>Sábado a noite. O primeiro plano que colocamos em prática foi uma adaptação da ideia da trilha de pão que João e
Maria deixaram para encontrar o caminho para a casa. Mas no lugar de pão, usamos ração de gato em sachê, pois tinha
um cheiro bem forte e que, com certeza, atrairia os filhotes de gato. Comecei a jogar a ração perto de onde eles
estavam. Demorou bastante, mas o filhote branquinho começou a comer. Fiz uma trilha com a ração até chegar perto o
suficiente para que eu o alcançasse. Primeiro filhote resgatado. Ganhei uma mordida e colocamos o filhote - que
agora miava desesperadamente alto - dentro de uma caixa e fomos embora. Por enquanto.
</p>

<p>Era uma menina, três cores e rabo comprido que só.
</p>

<p>Não conseguimos pegar o outro filhote, pois era bem mais arisco e não se deixou enganar pela ração. Voltamos pra
casa da minha namorada e deitamos na cama com a gatinha no meio da gente, pensando no outro gatinho que agora estava
sozinho naquele lugar.
</p>

<p>Domingo a tarde. Tentamos novamente a trilha com a ração, mas o filhote preto e branco se afastava cada vez que
tentávamos nos aproximar. Eis que surge a ideia de criar uma armadilha. Minha mãe havia comprado um climatizador,
desses que vem embalados em caixas grandes o suficiente para armadilhas para resgatar filhotes de gato. Se você,
caro leitor, quando criança assistia programas infantis na TV e tentava, sob protestos de sua mãe, construir
brinquedos mirabolantes de materiais de papelaria, saiba que todo esse treinamento não foi uma perda de tempo.
Pegamos a caixa e um rolo de barbante. Amarrei o barbante em apenas um lado da caixa, para que eu conseguisse
puxá-la. Coloquei um pouco de ração dentro dessa caixa-armadilha e a deitei próxima do local onde o filhote estava
deitado. Nos afastamos. Alguns longos minutos de espera. Aos poucos o filhote foi se aproximando da caixa. Assim que
ele entrou para comer a ração, puxei o barbante fazendo com que a caixa ficasse em pé novamente. Segundo filhote
capturado. E esse estava ainda mais bravo que a gata de três cores.
</p>

<p>Para um gato tão pequeno, ele fez bastante barulho, <span class="italic">fshhhhhh</span>, tentou pular para fora da
caixa.
Fechamos a caixa e seguimos para a casa da minha namorada. O gato preto e branco era bem pequeno, parecia fraco e
doente, e estava bastante assustado. Pensei que não sobreviveria. Mas sobreviveu.
<p>
Atualmente, o Facebook é uma ferramenta essencial para inúmeras associações e ONGs para divulgar adoções,
desaparecimentos e pedidos de ajuda em prol de animais de diversas espécies.
</p>

<p>Era outra menina, com um rabinho curto.
<p>
Apesar dessa inegável utilidade, facilidade e popularidade, o Facebook é um dos principais - e mais rápidos - meios
de
divulgação de informações, o que faz com que muitos posts dessas ONGs e associações se percam no imenso mar de
compartilhamentos diários.
</p>

<p>Ambas continuam juntas e numa casa onde são rodeadas por mimos e carinhos.
<p>
Gostaríamos que houvesse algo centralizado e bem simples. Um lugar onde os animais são o foco.E foi assim que o site
ganhou vida.
</p>

<p>Essa é uma foto das duas, logo que chegaram em sua nova casa. A gata preta e branca se chama
Madonna e a de três
cores, Mabel.
<p>
O código fonte por trás do site é aberto e está disponível no GitHub, isso possibilita que qualquer pessoa com o
conhecimento necessário possa enviar alterações ou utilizar o que já foi feito para criar um site pra sua cidade ou
ONG.
</p>

<p><img class="img-rounded img-thumbnail" src="{% static 'img/madonna_mabel.jpg' %}"
alt="As gatinhas Madonna e Mabel"/></p>
<h2 class="text-center">Nossos números</h2>
<div class="row">
<div class="col-md-6">
<p class="site-stats">{{ pets_count }} pets cadastrados</p>
<p>Contando cadastros ativos e inativos</p>
</div>

<p class="text-center"><em>Sempre me divirto com as gatas que encontramos numa noite de Abril.</em></p>
{% endblock %}
<div class="col-md-6">
<p class="site-stats">{{ users_count }} usuários cadastrados</p>
</div>
</div>
{% endblock %}
7 changes: 7 additions & 0 deletions pets/users/context_processors.py
@@ -0,0 +1,7 @@
from .models import OwnerProfile


def users_count(request):
return {
'users_count': OwnerProfile.objects.count()
}
15 changes: 15 additions & 0 deletions pets/users/tests/test_context_processors.py
@@ -0,0 +1,15 @@
from django.test import TestCase
from model_mommy import mommy

from users.context_processors import users_count
from users.models import OwnerProfile


class ContextProcessors(TestCase):
def setUp(self):
mommy.make(OwnerProfile)

def test_users_count(self):
context = users_count({})

self.assertEqual(1, context['users_count'])