db = DAL('sqlite://recomendadorexpertos.db')
db.define_table('topicos',
Field('curso', 'reference cursos'),
Field('nombre', 'string', required=True, length=512),
Field('palabras_clave', 'text', readable=False, required=True, length=2048),
Field('fecha_inicio_identificacion', 'date', required=True, comment=T('Indica la fecha desde la cual se empezará a buscar expertos.')),
Field('fecha_fin_identificacion', 'date', required=True, comment=T('Indica la fehca en la cual se publicarán las recomendaciónes de expertos.')),
Field('fecha_fin_publicacion', 'date', comment=T('Indica la fecha hasta cuando se publicaran las recomendaciones de expertos (opcional)')),
Field('timestamp_get_tweets_etiquetado', 'datetime', readable=False, writable=False), #Para mostrar al usuario desde cuando se estan descargando tweets para etiquetado.
Field('link_descarga_tweets_etiquetado', 'string', readable=False, writable=False, length=2048),
Field('upload_archivo_etiquetado', 'upload', length=524288, uploadfolder='/var/www/web2py/applications/RecomendadorExpertos/archivos_etiquetados/', autodelete=True, comment=T('Primero inicie el proceso de descarga de tweets para este topico, descargue el archivo para etiquetado, etiquetelo y subalo aqui.'), label=T('Subir archivo etiquetado'), readable=False), #Cambiar el nombre del archivo que suba a [nombre_topico].csv
Field('path_modelo', 'string', readable=False, writable=False, length=2048), #Ruta del modelo entrenado
Field('topico_configurado_completamente', 'integer', readable=True, writable=False, default=1, represent=representTopicoConfigurado), #Sirve para mostrar un check alado del archivo subido una vez terminado de generarse el modelo, para que el profesor sepa que ya esta todo bien.
Field('id_scheduler_task_descarga_tweets', 'integer', readable=False, writable=False),
Field('id_scheduler_task_identificacion_expertos', 'integer', readable=False, writable=False),
Field('id_scheduler_task_publicacion_expertos', 'integer', readable=False, writable=False))