Skip to content

Commit

Permalink
iniciativas agrupadas in panel
Browse files Browse the repository at this point in the history
  • Loading branch information
aniversarioperu committed Oct 16, 2014
1 parent 320d393 commit d7b3356
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 8 deletions.
31 changes: 27 additions & 4 deletions proyectos_de_ley/seguimientos/templates/seguimientos/index.html
Expand Up @@ -32,23 +32,46 @@ <h1 id="proyectos_de_ley">Proyecto de Ley {{ item.codigo }}</h1>
</div>

<div id="contenido" class="container">
{{ item.titulo }}


{% if item.iniciativas_agrupadas|length > 1 %}
<div class="container">
<div class="row">
<div class="col-lg-7 col-md-8 col-sm-11">
<div class="panel panel-default">
<div class="panel-heading"><h4>Iniciativas agrupadas</h4></div>
<div class="panel-heading"><b>Título</b></div>
<div class="panel-body">
{{ item.titulo }}
</div>
</div>
</div><!-- col -->
</div><!-- row -->

{% if item.congresistas_with_links != None %}
<div class="row">
<div class="col-lg-7 col-md-8 col-sm-11">
<div class="panel panel-default">
<div class="panel-heading"><b>Autores</b></div>
<div class="panel-body">
{{ item.congresistas_with_links|safe }}
</div>
</div>
</div><!-- col -->
</div><!-- row -->
{% endif %}

{% if item.iniciativas_agrupadas|length > 1 %}
<div class="row">
<div class="col-lg-7 col-md-8 col-sm-11">
<div class="panel panel-default">
<div class="panel-heading"><b>Iniciativas agrupadas</b></div>
<div class="panel-body">
<div id="iniciativas"></div>
</div>
</div>
</div><!-- col -->
</div><!-- row -->
{% endif %}
</div><!-- container -->
{% endif %}
</div>


Expand Down
4 changes: 1 addition & 3 deletions proyectos_de_ley/seguimientos/tests/test_utils.py
Expand Up @@ -41,9 +41,7 @@ def test_prepare_json_for_d3(self):
item.titulo = "Propone Ley Universitaria"
item.iniciativas_agrupadas = ['02764']

expected = {'links': [{'target': 0, 'value': 1, 'source': 1}],
'nodes': [{'name': '02764', 'url': '/p/'},
{'name': '02764', 'url': '/p/4zhube'}]}
expected = {'nodes': [{'codigo': '02764', 'url': '/p/4zhube'}]}
result = utils.prepare_json_for_d3(item)
self.assertEqual(expected, result)

Expand Down
41 changes: 40 additions & 1 deletion proyectos_de_ley/seguimientos/utils.py
@@ -1,3 +1,5 @@
import unicodedata

from pdl.models import Proyecto


Expand All @@ -7,15 +9,20 @@ def get_proyecto_from_short_url(short_url):
:return: Proyecto model object
"""
item = Proyecto.objects.get(short_url=short_url)
if item.iniciativas_agrupadas is not None and '{' in \
if item.iniciativas_agrupadas is not None and\
item.iniciativas_agrupadas != '' and '{' in \
item.iniciativas_agrupadas:
iniciativas = item.iniciativas_agrupadas.replace("{", "")
iniciativas = iniciativas.replace("}", "")
item.iniciativas_agrupadas = iniciativas.split(",")
item.congresistas_with_links = hiperlink_congre(item.congresistas)
return item


def prepare_json_for_d3(item):
if item.iniciativas_agrupadas is None:
return {"nodes": ""}

nodes = []
append = nodes.append
j = 1
Expand All @@ -31,3 +38,35 @@ def prepare_json_for_d3(item):
return data_json


def hiperlink_congre(congresistas):
# tries to make a hiperlink for each congresista name to its own webpage
if congresistas == '':
return None

for name in congresistas.split("; "):
link = "<a href='/congresista/"
link += str(convert_name_to_slug(name))
link += "' title='ver todos sus proyectos'>"
link += name + "</a>"
congresistas = congresistas.replace(name, link)
congresistas = congresistas.replace("; ", ";\n")
return congresistas


def convert_name_to_slug(name):
"""Takes a congresista name and returns its slug."""
name = name.strip()
name = name.replace(",", "").lower()
name = name.split(" ")

if len(name) > 2:
i = 0
slug = ""
while i < 3:
slug += name[i]
if i < 2:
slug += "_"
i += 1
slug = unicodedata.normalize('NFKD', slug).encode('ascii', 'ignore')
slug = str(slug, encoding="utf-8")
return slug + "/"

0 comments on commit d7b3356

Please sign in to comment.