Skip to content

Commit

Permalink
Merge 4c508c9 into 21d57f5
Browse files Browse the repository at this point in the history
  • Loading branch information
aniversarioperu committed Jul 12, 2015
2 parents 21d57f5 + 4c508c9 commit f2854c5
Show file tree
Hide file tree
Showing 5 changed files with 160 additions and 11 deletions.
5 changes: 5 additions & 0 deletions proyectos_de_ley/search_advanced/forms.py
Expand Up @@ -61,5 +61,10 @@ class SearchAdvancedForm(forms.Form):
choices=[
('---', '---'),
('TOTAL dispensados', 'TOTAL dispensados'),
('NÚMERO TOTAL DE LEYES', 'NÙMERO TOTAL DE LEYES'),
('TOTAL aprobados', 'TOTAL aprobados'),
('Dispensados por acuerdo del pleno', 'Dispensados por acuerdo del pleno'),
('Dispensados por junta portavoces', 'Dispensados por junta portavoces'),
('Otros proyectos dispensados', 'Otros proyectos dispensados'),
]
)
@@ -1,4 +1,5 @@
{% extends "pdl/base.html" %}
{% load humanize %}


{% block additional_head_javascript %}
Expand Down Expand Up @@ -97,7 +98,8 @@ <h4>Por comisiones</h4>

{% if items %}
<div id="contenido" class="container">
<h1>Resultados de búsqueda: {{ result_count }}</h1>
<h1>Resultados de búsqueda: <small>{{ extra_result_msg }} {{ result_count|intcomma }}</small></h1>

{% if results == 'No se encontraron resultados.' %}
<h2>{{ results }}</h2>
{% else %}
Expand Down
37 changes: 29 additions & 8 deletions proyectos_de_ley/search_advanced/tests/test_views.py
Expand Up @@ -10,6 +10,7 @@
class TestSearchAdvancedViews(TestCase):
def setUp(self):
self.maxDiff = None
self.c = Client()

this_folder = os.path.abspath(os.path.dirname(__file__))
dummy_db_json = os.path.join(this_folder, '..', '..', 'pdl', 'tests', 'dummy_db.json')
Expand All @@ -23,21 +24,41 @@ def setUp(self):
s.save()

def test_index(self):
c = Client()
response = c.get('/search-advanced/')
response = self.c.get('/search-advanced/')
self.assertEqual(200, response.status_code)

def test_index_form_invalid(self):
c = Client()
response = c.get('/search-advanced/?date_from=hola&date_to=12%2F19%2F2014')
response = self.c.get('/search-advanced/?date_from=hola&date_to=12%2F19%2F2014')
self.assertEqual(200, response.status_code)

def test_index_search_date(self):
c = Client()
response = c.get('/search-advanced/?date_from=03%2F03%2F2015&date_to=07%2F02%2F2015')
response = self.c.get('/search-advanced/?date_from=03%2F03%2F2015&date_to=07%2F02%2F2015')
self.assertEqual(200, response.status_code)

def test_index_search_comission(self):
c = Client()
response = c.get('/search-advanced/?comision=Ciencia')
response = self.c.get('/search-advanced/?comision=Ciencia')
self.assertTrue('arco y flecha' in str(response.content))

def test_numero_total_de_leyes(self):
response = self.c.get('/search-advanced/?dispensados_2da_votacion=NÚMERO TOTAL DE LEYES')
self.assertEqual(200, response.status_code)

def test_numero_total_aprobados(self):
response = self.c.get('/search-advanced/?dispensados_2da_votacion=TOTAL aprobados')
self.assertEqual(200, response.status_code)

def test_numero_total_dispensados(self):
response = self.c.get('/search-advanced/?dispensados_2da_votacion=TOTAL dispensados')
self.assertEqual(200, response.status_code)

def test_dispensados_acuerdo_pleno(self):
response = self.c.get('/search-advanced/?dispensados_2da_votacion=Dispensados por acuerdo del pleno')
self.assertEqual(200, response.status_code)

def test_dispensados_junta_portavoces(self):
response = self.c.get('/search-advanced/?dispensados_2da_votacion=Dispensados por junta portavoces')
self.assertEqual(200, response.status_code)

def test_dispensados_otros(self):
response = self.c.get('/search-advanced/?dispensados_2da_votacion=Otros proyectos dispensados')
self.assertEqual(200, response.status_code)
121 changes: 121 additions & 0 deletions proyectos_de_ley/search_advanced/views.py
@@ -1,5 +1,6 @@
# -*- encoding: utf-8 -*-
from django.shortcuts import render
from django.db.models import Q

from . import forms
from pdl.models import Proyecto
Expand All @@ -21,6 +22,21 @@ def index(request):
if form.cleaned_data['dispensados_2da_votacion'] == 'TOTAL dispensados':
return search_dispensados_todos(form, request)

if form.cleaned_data['dispensados_2da_votacion'] == 'NÚMERO TOTAL DE LEYES':
return search_total_leyes(form, request)

if form.cleaned_data['dispensados_2da_votacion'] == 'TOTAL aprobados':
return search_total_aprobados(form, request)

if form.cleaned_data['dispensados_2da_votacion'] == 'Dispensados por acuerdo del pleno':
return search_dispensados_acuerdo_pleno(form, request)

if form.cleaned_data['dispensados_2da_votacion'] == 'Dispensados por junta portavoces':
return search_dispensados_junta_portavoces(form, request)

if form.cleaned_data['dispensados_2da_votacion'] == 'Otros proyectos dispensados':
return search_dispensados_otros(form, request)

return render(request, "search_advanced/index.html", {
"form": form,
})
Expand Down Expand Up @@ -88,6 +104,111 @@ def search_dispensados_todos(form, request):
obj = do_pagination(request, total_dispensed, search=True, advanced_search=True)
return render(request, "search_advanced/index.html", {
"result_count": len(total_dispensed),
"extra_result_msg": "Total número de proyectos dispensados de 2da votación",
"items": obj['items'],
"pretty_items": obj['pretty_items'],
"first_half": obj['first_half'],
"second_half": obj['second_half'],
"first_page": obj['first_page'],
"last_page": obj['last_page'],
"current": obj['current'],
"form": form,
"comision": obj['comision'],
})


def search_total_leyes(form, request):
are_law = Proyecto.objects.exclude(
titulo_de_ley__isnull=True).exclude(
titulo_de_ley__exact='')

obj = do_pagination(request, are_law, search=True, advanced_search=True)
return render(request, "search_advanced/index.html", {
"result_count": len(are_law),
"extra_result_msg": "Total número de proyectos que han generado leyes",
"items": obj['items'],
"pretty_items": obj['pretty_items'],
"first_half": obj['first_half'],
"second_half": obj['second_half'],
"first_page": obj['first_page'],
"last_page": obj['last_page'],
"current": obj['current'],
"form": form,
"comision": obj['comision'],
})


def search_total_aprobados(form, request):
total_approved = [i.proyecto for i in Seguimientos.objects.select_related('proyecto').filter(
Q(evento__icontains='promulgado') | Q(evento__icontains='publicado'))]
total_approved = list(set(total_approved))

obj = do_pagination(request, total_approved, search=True, advanced_search=True)
return render(request, "search_advanced/index.html", {
"result_count": len(total_approved),
"extra_result_msg": "Total número de proyectos aprobados",
"items": obj['items'],
"pretty_items": obj['pretty_items'],
"first_half": obj['first_half'],
"second_half": obj['second_half'],
"first_page": obj['first_page'],
"last_page": obj['last_page'],
"current": obj['current'],
"form": form,
"comision": obj['comision'],
})


def search_dispensados_acuerdo_pleno(form, request):
dispensed_by_plenary = [i.proyecto for i in Seguimientos.objects.select_related('proyecto').filter(
evento__icontains='dispensado 2da').filter(evento__icontains='pleno')]

obj = do_pagination(request, dispensed_by_plenary, search=True, advanced_search=True)
return render(request, "search_advanced/index.html", {
"result_count": len(dispensed_by_plenary),
"extra_result_msg": "Dispensados 2da votación por acuerdo del pleno",
"items": obj['items'],
"pretty_items": obj['pretty_items'],
"first_half": obj['first_half'],
"second_half": obj['second_half'],
"first_page": obj['first_page'],
"last_page": obj['last_page'],
"current": obj['current'],
"form": form,
"comision": obj['comision'],
})


def search_dispensados_junta_portavoces(form, request):
dispensed_by_spokesmen = [i.proyecto for i in Seguimientos.objects.select_related('proyecto').filter(
evento__icontains='dispensado 2da').filter(evento__icontains='portavoces')]

obj = do_pagination(request, dispensed_by_spokesmen, search=True, advanced_search=True)
return render(request, "search_advanced/index.html", {
"result_count": len(dispensed_by_spokesmen),
"extra_result_msg": "Dispensados 2da votación por junta de portavoces",
"items": obj['items'],
"pretty_items": obj['pretty_items'],
"first_half": obj['first_half'],
"second_half": obj['second_half'],
"first_page": obj['first_page'],
"last_page": obj['last_page'],
"current": obj['current'],
"form": form,
"comision": obj['comision'],
})


def search_dispensados_otros(form, request):
otros_dispensados = [i.proyecto for i in Seguimientos.objects.select_related('proyecto').filter(
evento__icontains='dispensado 2da').exclude(
evento__icontains='pleno').exclude(
evento__icontains='portavoces')]

obj = do_pagination(request, otros_dispensados, search=True, advanced_search=True)
return render(request, "search_advanced/index.html", {
"result_count": len(otros_dispensados),
"extra_result_msg": "Dispensados 2da votación por otras razones",
"items": obj['items'],
"pretty_items": obj['pretty_items'],
"first_half": obj['first_half'],
Expand Down
4 changes: 2 additions & 2 deletions proyectos_de_ley/stats/tests/test_views.py
Expand Up @@ -27,10 +27,10 @@ def setUp(self):
'count': 7,
'comision': 'Justicia',
})
self.c = Client()

def test_index(self):
c = Client()
response = c.get('/stats/')
response = self.c.get('/stats/')
self.assertEqual(200, response.status_code)

def test_dame_sin_tramitar(self):
Expand Down

0 comments on commit f2854c5

Please sign in to comment.