diff --git a/decide/census/forms.py b/decide/census/forms.py
new file mode 100644
index 0000000000..7058e1e9ab
--- /dev/null
+++ b/decide/census/forms.py
@@ -0,0 +1,4 @@
+from django import forms
+
+class votacionForm(forms.Form):
+ votacion = forms.IntegerField(label='Id de la votación', widget=forms.TextInput, required=True)
diff --git a/decide/census/templates/exportarcenso.html b/decide/census/templates/exportarcenso.html
new file mode 100644
index 0000000000..130c1fa43e
--- /dev/null
+++ b/decide/census/templates/exportarcenso.html
@@ -0,0 +1,19 @@
+{% extends 'base.html' %}
+
+{% block extrahead %}{% endblock %}
+
+{% block content %}
+
+
Funcionalidad de censos
+
+ Se han encontrado los siguientes censos:
+
+{% for c in censos %}
+ Id del votante: {{c.voter_id}}
+{% endfor %}
+
+
+{% endblock %}
+
+
+ {% block extrabody %}{% endblock %}
diff --git a/decide/census/templates/inicio.html b/decide/census/templates/inicio.html
new file mode 100644
index 0000000000..97f3eeb981
--- /dev/null
+++ b/decide/census/templates/inicio.html
@@ -0,0 +1,29 @@
+{% extends 'base.html' %}
+
+{% block extrahead %}{% endblock %}
+
+{% block content %}
+
+ Módulo de censos
+
+ Exportación de censo
+
+
+
+{% if censos %}
+{% for c in censos %}
+Id del votante: {{c.voter_id}}
+
+{% endfor %}
+
+
+
+
+{% endif %}
+
+{% endblock %}
+
+{% block extrabody %}{% endblock %}
diff --git a/decide/census/urls.py b/decide/census/urls.py
index b5cb9feee8..2364582970 100644
--- a/decide/census/urls.py
+++ b/decide/census/urls.py
@@ -3,6 +3,8 @@
urlpatterns = [
- path('', views.CensusCreate.as_view(), name='census_create'),
+ path('', views.elegirVotacion),
+ path('exportCSV/', views.exportarCenso),
+ path('create/', views.CensusCreate.as_view(), name='census_create'),
path('/', views.CensusDetail.as_view(), name='census_detail'),
]
diff --git a/decide/census/views.py b/decide/census/views.py
index 26dcf92f19..74f37a56a9 100644
--- a/decide/census/views.py
+++ b/decide/census/views.py
@@ -1,5 +1,6 @@
from django.db.utils import IntegrityError
from django.core.exceptions import ObjectDoesNotExist
+from django.http import HttpResponse
from rest_framework import generics
from rest_framework.response import Response
from rest_framework.status import (
@@ -12,6 +13,9 @@
from base.perms import UserIsStaff
from .models import Census
+import csv
+from django.shortcuts import render
+from census.forms import votacionForm
class CensusCreate(generics.ListCreateAPIView):
@@ -34,6 +38,7 @@ def list(self, request, *args, **kwargs):
return Response({'voters': voters})
+
class CensusDetail(generics.RetrieveDestroyAPIView):
def destroy(self, request, voting_id, *args, **kwargs):
@@ -49,3 +54,31 @@ def retrieve(self, request, voting_id, *args, **kwargs):
except ObjectDoesNotExist:
return Response('Invalid voter', status=ST_401)
return Response('Valid voter')
+
+
+
+def elegirVotacion(request):
+ formulario = votacionForm()
+ censos = None
+ idVotacion = None
+ if request.method == 'POST':
+ formulario = votacionForm(request.POST)
+ if formulario.is_valid(): #Corre la validación correspondiente
+ idVotacion = formulario.cleaned_data['votacion']
+ censos = Census.objects.filter(voting_id = idVotacion)
+ return render(request, 'inicio.html', {'formulario':formulario, 'censos':censos, 'idVotacion':idVotacion})
+
+
+
+
+
+def exportarCenso(request, idVotacion):
+ response = HttpResponse(content_type='text/csv')
+ response['Content-Disposition'] = 'attachment; filename="censo.csv"'
+ file = csv.writer(response)
+ censos = Census.objects.filter(voting_id = idVotacion)
+ file.writerow(['Id votante'])
+ for c in censos:
+ file.writerow([c.voter_id])
+
+ return response
diff --git a/decide/decide/urls.py b/decide/decide/urls.py
index d73f3cdb5d..a9d3fd276c 100644
--- a/decide/decide/urls.py
+++ b/decide/decide/urls.py
@@ -17,6 +17,7 @@
from django.contrib import admin
from django.urls import path, include
from rest_framework_swagger.views import get_swagger_view
+from census import views
schema_view = get_swagger_view(title='Decide API')