Skip to content

Commit

Permalink
Merge pull request #94 from proyectosdeley/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
carlosp420 authored Sep 7, 2016
2 parents d55cc07 + b74dd06 commit 406d8d3
Show file tree
Hide file tree
Showing 50 changed files with 1,476 additions and 379 deletions.
17 changes: 17 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
History
=======

v2.2.0 (2016-09-07)
~~~~~~~~~~~~~~~~~~~
* agregada capacidad de soportar proyectos de Legislatura 2011 y 2016.
* agregada interface administrador en Django.
* mostrar proyectos de actual legislatura y menor prominencia a proyectos de
legislaturas pasadas.
* actualización de spiders.
* actualización de dependencias: Django, rest_framework, rest_framework_swagger.
* actualización de layout de docs en API.
* bug fixed: número de proyectos aprovados en front-page
* bug fixed: búsqueda de proyecto "209" resultará en búsqueda de proyecto 00209-2016.
* bug fixed: ya no se muestra código 404 en el API.
* bug fixed: logo de Hiperderecho está hosteado en nuestro server.
* bug fixed: lista de proyectos de legislatura pasada ya no genera error 500.
* bug fixed: modificación de modelos para casos en que congresistas tengan nombres
con y sin tildes. Cualquier variación mostrará proyectos de cada congresista.

v2.1.1 (2015-10-29)
~~~~~~~~~~~~~~~~~~~
* script para hacer backups de base de datos
Expand Down
9 changes: 9 additions & 0 deletions cronjobs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
52 20 * * * scrapy crawl pdfurl >> scraping_pdf_url_log.txt 2>&1
0 */6 * * * scrapy crawl proyecto >> scraping_proyecto.log.txt 2>&1
0 3 * * 2 scrapy crawl seguimientos >> scraping_seguimientos.log.txt 2>&1
0 3 * * 3 scrapy crawl iniciativa >> scraping_iniciativas.log.txt 2>&1
0 3 * * 4 scrapy crawl updater >> scraping_updater.log.txt 2>&1
0 3 * * 5 scrapy crawl expediente >> scraping_expediente.log.txt 2>&1
0 6 * * * python proyectos_de_ley/manage.py update_index --age=24 --settings=proyectos_de_ley.settings.production >> updating_index.log.txt 2>&1
0 8 * * 1 python proyectos_de_ley/manage.py create_congress_person_slugs --settings=proyectos_de_ley.settings.production >> updating_slugs.log.txt 2>&1
0 8 * * 2 python proyectos_de_ley/manage.py create_ascii_names_for_congress_person --settings=proyectos_de_ley.settings.production
2 changes: 2 additions & 0 deletions proyectos_de_ley/api/tests/test_seguimientos_iniciativas.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ def setUp(self):
self.maxDiff = None
dummy = {
"codigo": "03774",
'legislatura': 2011,
"congresistas": "Dammert Ego Aguirre, Manuel Enrique Ernesto; Lescano Ancieta, Yonhy; Merino De Lama, Manuel; Guevara Amasifuen, Mesias Antonio; Mavila Leon, Rosa Delsa; Mendoza Frisch, Veronika Fanny",
"expediente": "http://www2.congreso.gob.pe/sicr/tradocestproc/Expvirt_2011.nsf/visbusqptramdoc/03774?opendocument",
"fecha_presentacion": "2014-09-05",
Expand All @@ -25,6 +26,7 @@ def setUp(self):
}
dummy1 = {
"codigo": "03775",
'legislatura': 2011,
"congresistas": "Dammert Ego Aguirre, Manuel Enrique Ernesto; Lescano Ancieta, Yonhy; Merino De Lama, Manuel; Guevara Amasifuen, Mesias Antonio; Mavila Leon, Rosa Delsa; Mendoza Frisch, Veronika Fanny",
"expediente": "http://www2.congreso.gob.pe/sicr/tradocestproc/Expvirt_2011.nsf/visbusqptramdoc/03774?opendocument",
"fecha_presentacion": "2014-09-05",
Expand Down
3 changes: 3 additions & 0 deletions proyectos_de_ley/api/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ def setUp(self):
proyecto = Proyecto(**{
"numero_proyecto": "02764/2013-CR",
"codigo": "02764",
'legislatura': 2016,
"short_url": "4zhube",
"titulo": "Propone Ley Universitaria",
"iniciativas_agrupadas": ['01790', '01800'],
Expand Down Expand Up @@ -50,6 +51,7 @@ def test_prepare_json_for_d3(self):
item = Object()
item.numero_proyecto = "02764/2013-CR"
item.codigo = "02764"
item.legislatura = 2016
item.titulo = "Propone Ley Universitaria"
item.iniciativas_agrupadas = '{02764}'

Expand All @@ -61,6 +63,7 @@ def test_prepare_json_for_d3_no_project(self):
item = Object()
item.numero_proyecto = "02764/2013-CR"
item.codigo = "02764"
item.legislatura = 2016
item.titulo = "Propone Ley Universitaria"
item.iniciativas_agrupadas = '{027640000}'

Expand Down
21 changes: 11 additions & 10 deletions proyectos_de_ley/api/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ def setUp(self):
self.maxDiff = None
dummy = {
"codigo": "03774",
'legislatura': 2016,
"congresistas": "Dammert Ego Aguirre, Manuel Enrique Ernesto; Lescano Ancieta, Yonhy; Merino De Lama, Manuel; Guevara Amasifuen, Mesias Antonio; Mavila Leon, Rosa Delsa; Mendoza Frisch, Veronika Fanny",
"expediente": "http://www2.congreso.gob.pe/sicr/tradocestproc/Expvirt_2011.nsf/visbusqptramdoc/03774?opendocument",
"fecha_presentacion": "2014-09-05",
Expand All @@ -39,25 +40,25 @@ def setUp(self):
self.c = Client()

def test_getting_proyecto(self):
response = self.c.get('/api/proyecto.json/03774-2011/')
response = self.c.get('/api/proyecto.json/03774-2016/')
result = json.loads(response.content.decode('utf-8'))
expected = "03774"
self.assertEqual(expected, result['codigo'])

def test_getting_proyecto_csv(self):
response = self.c.get('/api/proyecto.csv/03774-2011/')
response = self.c.get('/api/proyecto.csv/03774-2016/')
result = response.content.decode('utf-8')
expected = "03774"
self.assertTrue(expected in result)

def test_getting_proyecto_missing(self):
response = self.c.get('/api/proyecto.json/037740-2011/')
response = self.c.get('/api/proyecto.json/037740-2016/')
result = response.content.decode('utf-8')
expected = '{"error": "proyecto no existe"}'
self.assertEqual(expected, result)

def test_getting_proyecto_missing_csv(self):
response = self.c.get('/api/proyecto.csv/037740-2011/')
response = self.c.get('/api/proyecto.csv/037740-2016/')
result = response.content.decode('utf-8')
expected = 'error,proyecto no existe'
self.assertEqual(expected, result)
Expand All @@ -77,13 +78,13 @@ def test_getting_projects_of_person_csv(self):
def test_getting_projects_of_person_and_comission(self):
response = self.c.get('/api/congresista_y_comision.json/Dammert Ego/economia/')
result = json.loads(response.content.decode('utf-8'))
expected = ['03774-2011']
expected = ['03774-2016']
self.assertEqual(expected, result['resultado'][0]['proyectos'])

def test_getting_projects_of_person_and_comission_csv(self):
response = self.c.get('/api/congresista_y_comision.csv/Dammert Ego/economia/')
result = response.content.decode('utf-8')
expected = '03774-2011'
expected = '03774-2016'
self.assertTrue(expected in result)

def test_getting_projects_of_person_and_comission_csv_missing(self):
Expand Down Expand Up @@ -134,7 +135,7 @@ def test_exonerados_dictamen(self):
fecha='2010-10-10').save()
response = self.c.get('/api/exonerados_dictamen.json/')
result = json.loads(response.content.decode('utf-8'))
expected = {'resultado': ['03774-2011']}
expected = {'resultado': ['03774-2016']}
self.assertEqual(expected, result)

def test_exonerados_dictamen_csv(self):
Expand All @@ -143,7 +144,7 @@ def test_exonerados_dictamen_csv(self):
fecha='2010-10-10').save()
response = self.c.get('/api/exonerados_dictamen.csv/')
result = response.content.decode('utf-8')
expected = '03774-2011'
expected = '03774-2016'
self.assertTrue(expected in result)

def test_exonerados_dictamen_csv_empty(self):
Expand All @@ -170,7 +171,7 @@ def test_exonerados_2da_votacion(self):
fecha='2010-10-10').save()
response = self.c.get('/api/exonerados_2da_votacion.json/')
result = json.loads(response.content.decode('utf-8'))
expected = {'resultado': ['03774-2011']}
expected = {'resultado': ['03774-2016']}
self.assertEqual(expected, result)

def test_exonerados_2da_votacion_csv(self):
Expand All @@ -179,5 +180,5 @@ def test_exonerados_2da_votacion_csv(self):
fecha='2010-10-10').save()
response = self.c.get('/api/exonerados_2da_votacion.csv/')
result = response.content.decode('utf-8')
expected = '03774-2011'
expected = '03774-2016'
self.assertTrue(expected in result)
14 changes: 7 additions & 7 deletions proyectos_de_ley/api/urls.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from django.conf.urls import patterns, url
from django.conf.urls import url

from . import views


urlpatterns = [
# '',
url(r'^proyecto.json/(?P<codigo>[0-9]+\-[0-9]+)/$', views.proyecto),
url(r'^proyecto.csv/(?P<codigo>[0-9]+\-[0-9]+)/$', views.proyecto_csv),
url(r'^proyecto.json/(?P<codigo>[0-9]+\-?[0-9]+)/$', views.proyecto),
url(r'^proyecto.csv/(?P<codigo>[0-9]+\-?[0-9]+)/$', views.proyecto_csv),

url(r'^congresista.json/(?P<nombre_corto>.+)/$', views.congresista),
url(r'^congresista.csv/(?P<nombre_corto>.+)/$', views.congresista_csv),
Expand All @@ -20,9 +20,9 @@
url(r'^exonerados_2da_votacion.json/$', views.exonerados_2da_votacion),
url(r'^exonerados_2da_votacion.csv/$', views.exonerados_2da_votacion_csv),

url(r'^seguimientos.json/(?P<codigo>[0-9]+\-[0-9]+)/$', views.seguimientos_list),
url(r'^seguimientos.csv/(?P<codigo>[0-9]+\-[0-9]+)/$', views.seguimientos_list_csv),
url(r'^seguimientos.json/(?P<codigo>[0-9]+\-?[0-9]+)/$', views.seguimientos_list),
url(r'^seguimientos.csv/(?P<codigo>[0-9]+\-?[0-9]+)/$', views.seguimientos_list_csv),

url(r'^iniciativas.json/(?P<codigo>[0-9a-z]+\-[0-9]+)/$', views.iniciativa_list),
url(r'^iniciativas.csv/(?P<codigo>[0-9a-z]+\-[0-9]+)/$', views.iniciativa_list_csv),
url(r'^iniciativas.json/(?P<codigo>[0-9a-z]+\-?[0-9]+)/$', views.iniciativa_list),
url(r'^iniciativas.csv/(?P<codigo>[0-9a-z]+\-?[0-9]+)/$', views.iniciativa_list_csv),
]
29 changes: 22 additions & 7 deletions proyectos_de_ley/api/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,19 @@
from pdl.models import Slug


LEGISLATURE = 2016

def get_projects_for_person(names):
projects_and_person = []
for name in names:
queryset = Proyecto.objects.filter(
congresistas__icontains=name).order_by('-codigo')
projects_list = [str(i.codigo) + '-2011' for i in queryset]
congresistas__icontains=name,
legislatura=LEGISLATURE,
).order_by('-codigo')
projects_list = [
"{}-{}".format(i.codigo, LEGISLATURE)
for i in queryset
]
obj = {'nombre': name, 'proyectos': projects_list}
projects_and_person.append(obj)
return projects_and_person
Expand All @@ -24,10 +31,15 @@ def get_projects_by_comission_for_person(comision, names):
projects_and_person = []
for name in names:
queryset = Proyecto.objects.filter(
congresistas__icontains=name).order_by('-codigo')
congresistas__icontains=name,
legislatura=LEGISLATURE,
).order_by('-codigo')
if comision != '':
queryset = queryset.filter(nombre_comision__icontains=comision)
projects_list = [str(i.codigo) + '-2011' for i in queryset]
projects_list = [
"{}-{}".format(i.codigo, LEGISLATURE)
for i in queryset
]
obj = {'nombre': name, 'proyectos': projects_list}
projects_and_person.append(obj)
return projects_and_person
Expand All @@ -49,15 +61,18 @@ def find_name_from_short_name(nombre_corto):
return ['---error---', 'no se pudo encontrar congresista']


def prepare_json_for_d3(item):
def prepare_json_for_d3(proyecto):
nodes = []
append = nodes.append

iniciativas_agrupadas = item.iniciativas_agrupadas.replace('{', '').replace('}', '').split(',')
iniciativas_agrupadas = proyecto.iniciativas_agrupadas.replace('{', '').replace('}', '').split(',')

for i in iniciativas_agrupadas:
try:
queryset = Proyecto.objects.get(codigo=i)
queryset = Proyecto.objects.get(
codigo=i,
legislatura=int(proyecto.legislatura),
)
except Proyecto.DoesNotExist:
continue
node = {"codigo": i, "url": "/p/" + queryset.short_url}
Expand Down
Loading

0 comments on commit 406d8d3

Please sign in to comment.