Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/relanzamiento-candidatos' into r…
Browse files Browse the repository at this point in the history
…elanzamiento-candidatos
  • Loading branch information
camargozzini committed Sep 1, 2016
2 parents dabe88d + fd150e6 commit 3f3c162
Show file tree
Hide file tree
Showing 6 changed files with 125 additions and 5 deletions.
4 changes: 4 additions & 0 deletions elections/models.py
Expand Up @@ -23,6 +23,10 @@ class Meta:
def get_absolute_url(self):
return reverse('area', kwargs={'slug': self.id})

@property
def elections_without_position(self):
return self.elections.filter(position__isnull=True).filter(position__exact='')


class ExtraInfoMixin(models.Model):
extra_info = PickledObjectField(default={})
Expand Down
38 changes: 37 additions & 1 deletion elections/tests/template_tags_tests.py
Expand Up @@ -303,4 +303,40 @@ def test_user_image(self):
'width': 100}))
template = Template("{% load votainteligente_extras %}{% user_image user=user height=120 width=100 %}")
self.assertEqual(template.render(Context({'user': u, 'height': 120, 'width': 100})),
rendered_template)
rendered_template)

def test_get_election_by_position(self):
argentina = Area.objects.create(name=u'Argentina')
election = Election.objects.create(
name='the name',
slug='the-slug',
description='this is a description',
extra_info_title=u'ver más',
area=argentina,
position='alcalde',
extra_info_content=u'Más Información')

template = Template("{% load votainteligente_extras %}{% get_election_by_position 'alcalde' as election %}{{election.name}}")
context = Context({'area': argentina})
rendered_template = template.render(context)
self.assertEquals(election.name, rendered_template)
template2 = Template("{% load votainteligente_extras %}{% get_election_by_position 'concejal' as election %}{{election.name}}")
self.assertFalse(template2.render(context))
chile = Area.objects.create(name=u'Chile')
election.area = chile
election.save()
template3 = Template("{% load votainteligente_extras %}{% get_election_by_position 'alcalde' as election %}{{election.name}}")
self.assertFalse(template3.render(context))

# Two elections with the same position doesn't raise error
election.area = argentina
election.save()
election = Election.objects.create(
name='the name2',
slug='the-slug',
description='this is a description',
extra_info_title=u'ver más',
area=argentina,
position='alcalde',
extra_info_content=u'Más Información')
self.assertTrue(template.render(context))
17 changes: 16 additions & 1 deletion elections/tests/version2/elections_per_area_tests.py
Expand Up @@ -44,4 +44,19 @@ def test_ogp_things(self):
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())
self.assertEquals(expected_url, self.argentina.ogp_image())

def test_area_elections_without_position(self):
election = Election.objects.create(
name='the name',
slug='the-slug',
description='this is a description',
extra_info_title=u'ver más',
area=self.argentina,
position='alcalde',
extra_info_content=u'Más Información')

elections_without_position = self.argentina.elections_without_position.all()
self.assertNotIn(election, elections_without_position)
self.assertIn(election, self.argentina.elections.all())

@@ -0,0 +1,38 @@
{% load votainteligente_extras %}
{% load thumbnail %}
{% load staticfiles %}
{% load i18n %}
{% load thumbnail %}
{% load bootstrap3 %}

{% get_election_by_position position as election %}
<!-- Cata compañera cacha que podis hacer lo siguiente {{position}} y te va a imprimir alcalde o concejal dependiendo de lo que tu digai -->
<li class="col-md-4 containerAccordion">
<script type="text/javascript">
jQuery(document).ready(function($){
screenwidth = $(".containerAccordion").width();
$('#gridaccordion-{{position}}').gridAccordion({
width:screenwidth, height:250, columns:{{election.candidates.all|length}},
distance:2, closedPanelWidth:10, closedPanelHeight:10, alignType:'centerCenter', linkTarget: "_self", slideshow:true
});
});
</script>
<ul class="accordion" id="gridaccordion-{{position}}">
{% for candidate in election.candidates.all %}
<li>
{% if candidate.image %}
{% thumbnail candidate.image "x300" as im %}
<a href="{% url 'candidate_detail_view' election_slug=election.slug slug=candidate.id %}"><img src="{{ im.url }}" alt="{{ candidate.name }}" border="0"/></a>
{% endthumbnail %}
{% else %}
<a href="{% url 'candidate_detail_view' election_slug=election.slug slug=candidate.id %}"><img src="{% static 'img/candidate-default.jpg' %}" alt="{{candidate.name}}" border="0" class="img-responsive"></a>
{% endif %}
<div class="caption">{{ candidate.name }}</div>
</li>
{% endfor %}
</ul>
<a href="{{ election.get_absolute_url }}"><h3 class="portada">{{ election.name }}</h3></a>
<div class="election-description">
<p>{{ election.description|truncatewords:33 }}</p>
</div>
</li>
23 changes: 21 additions & 2 deletions votai_general_theme/templates/elections/area.html
Expand Up @@ -5,6 +5,7 @@
{% load bootstrap3 %}
{% load ogp_tags %}


{% block extrajs %}
$(function(){
$('.loadFromUrl').on('show.bs.modal', function (event) {
Expand Down Expand Up @@ -46,11 +47,29 @@ <h1>{{area.name}}</h1>

</div>
<!-- /contenedorDestacado -->

<!-- Candidatos -->



<ul>
{% for election in area.elections.all %}

<!-- Alcaldes -->

{% include 'elections/_election_with_position.html' with position='alcalde' area=area %}
{% include 'elections/_election_with_position.html' with position='concejal' area=area %}












{% for election in area.elections_without_position.all %}
<li class="col-md-4 containerAccordion">
<script type="text/javascript">
jQuery(document).ready(function($){
Expand Down
10 changes: 9 additions & 1 deletion votai_general_theme/templatetags/votainteligente_extras.py
Expand Up @@ -293,4 +293,12 @@ def personal_data_label(personal_data):
field = _class.base_fields.get(personal_data.label, None)
if field is not None:
return getattr(field, 'label', '')
return personal_data.label
return personal_data.label


@register.simple_tag(takes_context=True)
def get_election_by_position(context, position):
if Election.objects.filter(position=position, area=context['area']).exists():
return Election.objects.filter(position=position, area=context['area']).first()
else:
return None

0 comments on commit 3f3c162

Please sign in to comment.