Conjunto 1fca82a en consulta_publica


Ignorar:
Fecha y hora:
06/04/2017 15:25:22 (hace 7 años)
Autor:
Antonio Araujo <aaraujo@…>
Branches:
master, base, constituyente, estudiantes, general, plan_patria, sala
Children:
218d0ba
Parents:
bf7c8cf
Mensaje:

Función createPreprocessingFiles(id) crea los archivos necesarios del procesamientos a partir de las respuestas abiertas de una consulta pasada como argumento.

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • base/functions.py

    r0ff122b r1fca82a  
    1515from __future__ import unicode_literals
    1616from django.http import HttpResponseServerError
    17 from consulta.models import Consulta,TipoPregunta
     17from consulta.models import Consulta,TipoPregunta, Pregunta
     18from participacion.models import RespuestaAbierta
    1819from procesamiento.models import Procesamiento
    1920import requests
    2021import copy
     22import os
     23import shutil
    2124
    2225def cargar_tipo_pregunta():
     
    226229    @param request <b>{object}</b> Objeto que mantiene la peticion
    227230    @return Retorna una respuesta http con el error
    228     """ 
     231    """
    229232    import sys,traceback
    230233    exc_type, exc_value, exc_traceback = sys.exc_info()
     
    234237    traceback.print_exception(exc_type, exc_value, exc_traceback, limit=2, file=sys.stdout)
    235238    return HttpResponseServerError(str(exc_value))
     239
     240
     241
     242def createPreprocessingFiles(id):
     243    """!
     244    Crea los archivos necesarios del preprocesamiento a partir de las respuestas
     245    abiertas de una consulta.
     246
     247    La función creará el directorio consulta_publica/static/procesamiento_files/nombre_consulta/orig
     248    con un conjunto de archivos de texto que representan cada una de las repuestas
     249    abiertas de la consulta. Por ejemplo:
     250    .
     251    miconsulta
     252    |---orig
     253        |--- respuesta_5.txt
     254        |--- respuesta_6.txt
     255
     256    En caso de existir el directorio al momento de ejecutarse esta función será
     257    borrado.
     258
     259    @author Antonio Araujo  (aaraujo at cenditel.gob.ve)
     260    @copyright GNU/GPLv2
     261    @param id Identificador de la consulta para obtener respuestas abiertas
     262    """
     263
     264    try:
     265        # obtener la consulta con id pasado como argumento
     266        consulta = Consulta.objects.get(id=id)
     267
     268        # crear un directorio con el nombre de la consulta en consulta_publica/static/procesamiento_files/
     269        processingDirectory = os.getcwd()+'/static/procesamiento_files/' + consulta.nombre_consulta + '/orig'
     270
     271        # borrar directorio en el caso de existir
     272        if os.path.isdir(processingDirectory) :
     273            shutil.rmtree(processingDirectory)
     274        os.makedirs(processingDirectory)
     275
     276        # obtener las preguntas
     277        for pregunta in Pregunta.objects.filter(consulta_id=consulta.id).all() :
     278            if pregunta.tipo_pregunta_id==5 :
     279                # ubicar la respuesta
     280                respuesta = RespuestaAbierta.objects.get(pregunta_id=pregunta.id)
     281                print "respuesta id: " + str(respuesta.id)
     282                print "texto: " + respuesta.texto_respuesta
     283
     284                # escribir archivo a disco
     285                filePath = processingDirectory + '/' + 'respuesta_' + str(respuesta.id)+".txt"
     286                fo = open(filePath, "w")
     287                fo.write(respuesta.texto_respuesta);
     288                fo.close()
     289
     290    except Exception as e:
     291        print "La consulta con identificado "+ str(id) + " no existe"
     292        print e
     293        pass
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.