From 9ab40d7fac62cd94277a33ede54fee64040290d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20=C3=81lvarez?= Date: Wed, 10 Aug 2016 12:39:23 -0400 Subject: [PATCH] =?UTF-8?q?Esto=20agrega=20informaci=C3=B3n=20para=20OGP?= =?UTF-8?q?=20en=20la=20p=C3=A1gina=20de=20Area=20#428?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- elections/admin.py | 8 +++-- elections/models.py | 31 +++++++++++++++++- elections/tests/template_tags_tests.py | 5 ++- .../version2/elections_per_area_tests.py | 25 ++++++++++++-- elections/views.py | 3 +- requirements.txt | 3 +- votai_general_theme/static/img/logo_vi_og.jpg | Bin 0 -> 30387 bytes votai_general_theme/templates/base.html | 2 ++ .../templates/elections/area.html | 6 ++++ votainteligente/votainteligente_settings.py | 1 + 10 files changed, 73 insertions(+), 11 deletions(-) create mode 100644 votai_general_theme/static/img/logo_vi_og.jpg diff --git a/elections/admin.py b/elections/admin.py index 54982242..a48bfcd7 100644 --- a/elections/admin.py +++ b/elections/admin.py @@ -1,7 +1,11 @@ from django.contrib import admin -from elections.models import Election, Candidate, PersonalData, QuestionCategory -from popolo.models import Membership, ContactDetail, OtherName, Area, Link, Person +from elections.models import (Election, + Candidate, + PersonalData, + QuestionCategory, + Area) +from popolo.models import Membership, ContactDetail, OtherName, Link, Person from django.contrib.contenttypes.admin import GenericTabularInline from django import forms from django.conf import settings diff --git a/elections/models.py b/elections/models.py index e8f1dfa4..b38e45a2 100644 --- a/elections/models.py +++ b/elections/models.py @@ -3,7 +3,7 @@ from autoslug import AutoSlugField from taggit.managers import TaggableManager from django.core.urlresolvers import reverse -from popolo.models import Person, Area +from popolo.models import Person, Area as PopoloArea from django.utils.translation import ugettext_lazy as _ from markdown_deux.templatetags.markdown_deux_tags import markdown_allowed from candidator.models import Category, Topic as CanTopic, TakenPosition @@ -14,6 +14,35 @@ import copy from django.contrib.sites.models import Site from django.db.models import Q, Count +from django.contrib.staticfiles.templatetags.staticfiles import static + + +class Area(PopoloArea): + ogp_enabled = True + + class Meta: + proxy = True + + def get_absolute_url(self): + return reverse('area', kwargs={'slug': self.id}) + + def ogp_title(self): + return self.name + + def ogp_type(self): + return 'website' + + def ogp_url(self): + site = Site.objects.get_current() + url = "http://%s%s" % (site.domain, + self.get_absolute_url()) + return url + + def ogp_image(self): + site = Site.objects.get_current() + url = "http://%s%s" % (site.domain, + static('img/logo_vi_og.jpg')) + return url class ExtraInfoMixin(models.Model): diff --git a/elections/tests/template_tags_tests.py b/elections/tests/template_tags_tests.py index 0acf1095..5688d012 100644 --- a/elections/tests/template_tags_tests.py +++ b/elections/tests/template_tags_tests.py @@ -8,11 +8,10 @@ from django.template.loader import get_template from candidator.models import Position, TakenPosition from django.core.urlresolvers import reverse -from popolo.models import Area -from elections.models import QuestionCategory, Topic +from elections.models import QuestionCategory, Topic, Area from django.contrib.auth.forms import AuthenticationForm from backend_citizen.forms import (UserCreationForm as RegistrationForm, - GroupCreationForm) + GroupCreationForm) from django.contrib.auth.models import User diff --git a/elections/tests/version2/elections_per_area_tests.py b/elections/tests/version2/elections_per_area_tests.py index 955cf80f..87664c31 100644 --- a/elections/tests/version2/elections_per_area_tests.py +++ b/elections/tests/version2/elections_per_area_tests.py @@ -1,8 +1,9 @@ # coding=utf-8 from elections.tests import VotaInteligenteTestCase as TestCase -from popolo.models import Area -from elections.models import Election +from elections.models import Election, Area from django.core.urlresolvers import reverse +from django.contrib.staticfiles.templatetags.staticfiles import static +from django.contrib.sites.models import Site class ElectionsPerAreaTestCase(TestCase): @@ -24,3 +25,23 @@ def test_there_is_a_url_with_the_area(self): response = self.client.get(url) self.assertEquals(response.status_code, 200) self.assertTemplateUsed(response, 'elections/area.html') + + +class AreaOGPTestCase(TestCase): + def setUp(self): + self.argentina = Area.objects.create(name=u'Argentina') + self.site = Site.objects.get_current() + + def test_get_absolute_url(self): + url = reverse('area', kwargs={'slug': self.argentina.id}) + self.assertEquals(url, self.argentina.get_absolute_url()) + + def test_ogp_things(self): + self.assertIn(self.argentina.name, self.argentina.ogp_title()) + self.assertEquals('website', self.argentina.ogp_type()) + expected_url = "http://%s%s" % (self.site.domain, + self.argentina.get_absolute_url()) + self.assertEquals(expected_url, self.argentina.ogp_url()) + expected_url = "http://%s%s" % (self.site.domain, + static('img/logo_vi_og.jpg')) + self.assertEquals(expected_url, self.argentina.ogp_image()) \ No newline at end of file diff --git a/elections/views.py b/elections/views.py index 895bcab4..693126cc 100644 --- a/elections/views.py +++ b/elections/views.py @@ -3,7 +3,7 @@ from elections.forms import ElectionSearchByTagsForm from django.core.urlresolvers import reverse from django.views.generic import DetailView, TemplateView -from elections.models import Election +from elections.models import Election, Area from elections.models import Candidate, QuestionCategory, CandidateFlatPage import logging from backend_citizen.forms import GroupCreationForm @@ -11,7 +11,6 @@ from candidator.comparer import Comparer, InformationHolder from candidator.adapters import CandidatorCalculator, CandidatorAdapter from django.shortcuts import get_object_or_404 -from popolo.models import Area from django.contrib.auth.forms import AuthenticationForm from backend_citizen.forms import UserCreationForm as RegistrationForm from popular_proposal.models import PopularProposal diff --git a/requirements.txt b/requirements.txt index c7c3135d..b0d8841d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -26,6 +26,7 @@ django-picklefield==0.3.2 djangorestframework==3.2.3 slumber -e git+https://github.com/ciudadanointeligente/popolorest@redisplaying_info_as_popit_does#egg=popolorest +-e git+https://github.com/liberation/django-ogp.git#egg=django_ogp mock==1.3.0 email_reply_parser==0.3.0 flufl.bounce==2.3 @@ -39,4 +40,4 @@ vcrpy==1.7.4 -e git+https://github.com/mysociety/django-images#egg=django-images django-bootstrap3==7.0.1 django-formtools==1.0 -django-filter==0.13.0 \ No newline at end of file +django-filter==0.13.0 diff --git a/votai_general_theme/static/img/logo_vi_og.jpg b/votai_general_theme/static/img/logo_vi_og.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4c48c24ac1bc1f09daa5fd7dbe63360ab392efc GIT binary patch literal 30387 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 V13V1yFu=nA4+DP<4D9~e`7eo%)HVPB literal 0 HcmV?d00001 diff --git a/votai_general_theme/templates/base.html b/votai_general_theme/templates/base.html index 8bd846c9..7ac384a7 100644 --- a/votai_general_theme/templates/base.html +++ b/votai_general_theme/templates/base.html @@ -18,10 +18,12 @@ + {% block ogp %} + {% endblock ogp %} diff --git a/votai_general_theme/templates/elections/area.html b/votai_general_theme/templates/elections/area.html index afe747eb..18f95735 100644 --- a/votai_general_theme/templates/elections/area.html +++ b/votai_general_theme/templates/elections/area.html @@ -3,6 +3,7 @@ {% load i18n %} {% load thumbnail %} {% load bootstrap3 %} +{% load ogp_tags %} {% block extrajs %} $(function(){ @@ -16,6 +17,11 @@ }); {% endblock extrajs %} + +{% block ogp %} + {% render_ogp area %} +{% endblock ogp %} + {% block content %} {% url 'popular_proposals:area_embedded' slug=area.id as embedded_url%} diff --git a/votainteligente/votainteligente_settings.py b/votainteligente/votainteligente_settings.py index 680b437b..0cad09c9 100644 --- a/votainteligente/votainteligente_settings.py +++ b/votainteligente/votainteligente_settings.py @@ -55,6 +55,7 @@ 'backend_citizen', 'backend_candidate', 'django_filters', + 'django_ogp', )