Index: base/functions.py
===================================================================
--- base/functions.py	(revision 27b3f1507d00043b8496770d30f91a4842e69e66)
+++ base/functions.py	(revision 27b3f1507d00043b8496770d30f91a4842e69e66)
@@ -14,7 +14,12 @@
 # @version 1.0
 from __future__ import unicode_literals
-from consulta.models import Consulta,TipoPregunta
+from django.http import HttpResponseServerError
+from consulta.models import Consulta,TipoPregunta, Pregunta
+from participacion.models import RespuestaAbierta
+from procesamiento.models import Procesamiento
 import requests
 import copy
+import os
+import shutil
 
 def cargar_tipo_pregunta():
@@ -191,4 +196,96 @@
         if dicc['parent_id'] != '0' :
             tuplaSector += (dicc['parent_id'], dicc['nombre']),
-
     return tuplaSector
+
+def cargar_procesamiento():
+    """!
+    FunciÃ³n que permite cargar los procesamientos
+
+    @author Rodrigo Boet (rboet at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versiÃ³n 2 (GPLv2)</a>
+    @date 28-03-2017
+    @return Devuelve una tupla con los perfiles de procesamiento
+    """
+
+    lista = ('', 'Seleccione...'),
+
+    try:
+        for procesamiento in Procesamiento.objects.all():
+            lista += (procesamiento.id, procesamiento.procesamiento_dir),
+    except Exception as e:
+        pass
+
+    return lista
+
+
+def dump_exception():
+    """!
+    FunciÃ³n para captar los errores e imprimirlos
+
+    @author Jorge Redondo (jredondo at cenditel.gob.ve)
+    @copyright GNU/GPLv2
+    @param request <b>{object}</b> Objeto que mantiene la peticion
+    @return Retorna una respuesta http con el error
+    """
+    import sys,traceback
+    exc_type, exc_value, exc_traceback = sys.exc_info()
+    print "*** print_tb:"
+    traceback.print_tb(exc_traceback, limit=1, file=sys.stdout)
+    print "*** print_exception:"
+    traceback.print_exception(exc_type, exc_value, exc_traceback, limit=2, file=sys.stdout)
+    return HttpResponseServerError(str(exc_value))
+
+
+
+def createPreprocessingFiles(id):
+    """!
+    Crea los archivos necesarios del preprocesamiento a partir de las respuestas
+    abiertas de una consulta.
+
+    La funciÃ³n crearÃ¡ el directorio consulta_publica/static/procesamiento_files/nombre_consulta/orig
+    con un conjunto de archivos de texto que representan cada una de las repuestas
+    abiertas de la consulta. Por ejemplo:
+    .
+    miconsulta
+    |---orig
+        |--- respuesta_5.txt
+        |--- respuesta_6.txt
+
+    En caso de existir el directorio al momento de ejecutarse esta funciÃ³n serÃ¡
+    borrado.
+
+    @author Antonio Araujo  (aaraujo at cenditel.gob.ve)
+    @copyright GNU/GPLv2
+    @param id Identificador de la consulta para obtener respuestas abiertas
+    """
+
+    try:
+        # obtener la consulta con id pasado como argumento
+        consulta = Consulta.objects.get(id=id)
+
+        # crear un directorio con el nombre de la consulta en consulta_publica/static/procesamiento_files/
+        processingDirectory = os.getcwd()+'/static/procesamiento_files/' + consulta.nombre_consulta + '/orig'
+
+        # borrar directorio en el caso de existir
+        if os.path.isdir(processingDirectory) :
+            shutil.rmtree(processingDirectory)
+        os.makedirs(processingDirectory)
+
+        # obtener las preguntas
+        for pregunta in Pregunta.objects.filter(consulta_id=consulta.id).all() :
+            if pregunta.tipo_pregunta_id==5 :
+                # ubicar la respuesta
+                respuesta = RespuestaAbierta.objects.get(pregunta_id=pregunta.id)
+                print "respuesta id: " + str(respuesta.id)
+                print "texto: " + respuesta.texto_respuesta
+
+                # escribir archivo a disco
+                filePath = processingDirectory + '/' + 'respuesta_' + str(respuesta.id)+".txt"
+                fo = open(filePath, "w")
+                fo.write(respuesta.texto_respuesta);
+                fo.close()
+
+    except Exception as e:
+        print "La consulta con identificado "+ str(id) + " no existe"
+        print e
+        pass
Index: base/templates/administrador.template.html
===================================================================
--- base/templates/administrador.template.html	(revision 0ff122b697211e39002ab2e9b7ae219151b90c13)
+++ base/templates/administrador.template.html	(revision 0ff122b697211e39002ab2e9b7ae219151b90c13)
@@ -0,0 +1,18 @@
+{% extends 'base.template.html' %}
+{% load staticfiles %}
+{% block title %}Administrador{% endblock %}
+{% block content %}
+    <div id="content">
+        <h1 class="text-center">Bienvenido al administrador de la consulta</h1><hr>
+        <h4>Puedes: </h4>
+        <div class="container">
+            <div class="col-md-offset-4" style="padding-bottom: 20px;">
+                <a type="button" class="btn btn-success init_button" href="{% url 'consulta_index' %}">Administrar Consultas</a>
+            </div>
+            <div class="col-md-offset-4">
+                <a type="button" class="btn btn-primary init_button" href="{% url 'procesamiento_index' %}">Administrar Procesamiento</a>
+            </div>
+        </div>
+    </div>
+{% endblock %}
+
Index: base/templates/base.template.html
===================================================================
--- base/templates/base.template.html	(revision b4a8953347808195ffcab755ef07770d65815d95)
+++ base/templates/base.template.html	(revision 0ff122b697211e39002ab2e9b7ae219151b90c13)
@@ -20,7 +20,9 @@
     <body>
         {% include 'base.nav.bar.html' %}
-        <div class="container">
-            {% block content %}{% endblock %}
-        </div>
+        {% block superContent%}
+            <div class="container">
+                {% block content %}{% endblock %}
+            </div>
+        {% endblock %}
         {% block modals %}{% endblock %}
         {% include 'base.footer.html' %}
Index: base/urls.py
===================================================================
--- base/urls.py	(revision cdd72e52aa6f15cea821d910e6f4ad7f7e84d79d)
+++ base/urls.py	(revision 0ff122b697211e39002ab2e9b7ae219151b90c13)
@@ -14,7 +14,8 @@
 # @version 1.0
 from django.conf.urls import url
-from .views import Error403
+from .views import *
 
 urlpatterns = [
     url(r'^403$', Error403.as_view(), name = "base_403"),
+    url(r'^administrador/$', Administrador.as_view(), name = "administrador_base"),
 ]
Index: base/views.py
===================================================================
--- base/views.py	(revision cdd72e52aa6f15cea821d910e6f4ad7f7e84d79d)
+++ base/views.py	(revision 0ff122b697211e39002ab2e9b7ae219151b90c13)
@@ -17,3 +17,23 @@
 
 class Error403(TemplateView):
+    """!
+    Clase para mostrar el errror de permisos
+
+    @author Rodrigo Boet (rboet at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versiÃ³n 2 (GPLv2)</a>
+    @date 09-01-2017
+    @version 1.0.0
+    """
     template_name = "base.403.html"
+    
+    
+class Administrador(TemplateView):
+    """!
+    Clase para mostrar el menÃº del administrador
+
+    @author Rodrigo Boet (rboet at cenditel.gob.ve)
+    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versiÃ³n 2 (GPLv2)</a>
+    @date 28-03-2017
+    @version 1.0.0
+    """
+    template_name = "administrador.template.html"
