def crear_trabajodegrado(trabajodegrado): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "INSERT INTO api_trabajodegrado(codigo,titulo,nrc,descriptores,categoria,fecha_entrega,nombre_empresa,estatus,fk_propuesta_id,fk_term_id) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},{9})".format(trabajodegrado['codigo'],trabajodegrado['titulo'],trabajodegrado['nrc'],trabajodegrado['descriptores'],trabajodegrado['categoria'],trabajodegrado['fecha_entrega'],trabajodegrado['nombre_empresa'],trabajodegrado['estatus'],trabajodegrado['fk_propuesta'],trabajodegrado['fk_term']) cur.execute(sql) conn.commit()
def obtener_trabajodegrado(id): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "SELECT * FROM api_trabajodegrado WHERE id={0}".format(id) cur.execute(sql) row = cur.fetchall() trabajodeg = list(row[0]) print(trabajodeg) sql = "SELECT term FROM api_term WHERE id={0}".format(trabajodeg[10]) cur.execute(sql) row = cur.fetchall() term = list(row[0]) print(term) trabajodegrado = { 'id': trabajodeg[0], 'codigo': trabajodeg[1], 'titulo':trabajodeg[2], 'nrc': trabajodeg[3], 'descriptores': trabajodeg[4], 'categoria': trabajodeg[5], 'fecha_entrega':trabajodeg[6], 'nombre_empresa': trabajodeg[7], 'estatus':trabajodeg[8], 'fk_propuesta': trabajodeg[9], 'fk_term': term[0] } return trabajodegrado
def obtener_trabajosdegrado_no_aprobados(): lista = {'trabajosdegrado':[]} conn = create_connection('db.sqlite3') cur = conn.cursor() sql = ''' select u.cedula as Cedula, u.primer_apellido || ' ' || u.segundo_apellido as Apellidos, u.primer_nombre || ' ' || u.segundo_nombre as Nombres, t.term, tg.titulo, tg.estatus from api_usuario as u, api_term as t, api_propuesta as p, api_usuariopropuesta as up, api_trabajodegrado as tg where tg.estatus <> 'Aprobada' and p.id = up.fk_propuesta_id and u.id = up.fk_usuario_id and p.fk_term_id = t.id and u.tipo = 'Estudiante' and p.id = tg.fk_propuesta_id order by u.cedula ''' cur.execute(sql) rows = cur.fetchall() for row in rows: trabajodegrado = { 'cedula': row[0], 'apellidos': row[1], 'nombres': row[2], 'term':row[3], 'trabajodegrado':row[4], 'estado': row[5] } lista['trabajosdegrado'].append(trabajodegrado) return lista
def obtener_propuesta(id): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "SELECT * FROM api_propuesta WHERE id={0}".format(id) cur.execute(sql) row = cur.fetchall() propue = list(row[0]) print(propue) sql = "SELECT term FROM api_term WHERE id={0}".format(propue[5]) cur.execute(sql) row = cur.fetchall() term = list(row[0]) print(term) propuesta = { 'id': propue[0], 'codigo': propue[1], 'fecha_entrega': propue[2], 'titulo': propue[3], 'estatus': propue[4], 'fk_term': term[0] } return propuesta
def obtener_usuarios(): lista = {'usuarios':[]} conn = create_connection('db.sqlite3') cur = conn.cursor() cur.execute("SELECT * FROM api_usuario") rows = cur.fetchall() for row in rows: usuario = { 'id': row[0], 'cedula': row[1], 'tipo': row[2], 'primer_nombre': row[3], 'segundo_nombre': row[4], 'primer_apellido': row[5], 'segundo_apellido': row[6], 'correo_ucab': row[7], 'correo_personal': row[8], 'password': row[9], 'telefono_uno': row[10], 'telefono_dos': row[11], 'observaciones': row[12], 'rol': row[13] } lista['usuarios'].append(usuario) return lista
def obtener_usuario(id): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "SELECT * FROM api_usuario WHERE id={0}".format(id) cur.execute(sql) row = cur.fetchall() user = list(row[0]) print(user) usuario = { 'id': user[0], 'cedula': user[1], 'tipo': user[2], 'primer_nombre': user[3], 'segundo_nombre': user[4], 'primer_apellido': user[5], 'segundo_apellido': user[6], 'correo_ucab': user[7], 'correo_personal': user[8], 'password': user[9], 'telefono_uno': user[10], 'telefono_dos': user[11], 'observaciones': user[12], 'rol': user[13] } return usuario
def actualizar_correccion(correccion): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "UPDATE api_correcciones SET fecha='{0}' WHERE id={1}".format( correccion['fecha'], correccion['id']) cur.execute(sql) conn.commit()
def obtener_defensas_no_realizadas(): lista = {'defensas':[]} conn = create_connection('db.sqlite3') cur = conn.cursor() sql = ''' select u.cedula as Cedula, u.primer_apellido || ' ' || u.segundo_apellido as Apellidos, u.primer_nombre || ' ' || u.segundo_nombre as Nombres, t.term, tg.titulo, d.fecha_hora from api_usuario as u, api_term as t, api_propuesta as p, api_usuariopropuesta as up, api_trabajodegrado as tg, api_defensa as d where tg.estatus = 'Aprobada' and p.id = up.fk_propuesta_id and u.id = up.fk_usuario_id and p.fk_term_id = t.id and u.tipo = 'Estudiante' and p.id = tg.fk_propuesta_id and d.fk_trabajo_grado_id = tg.id and datetime('now') < d.fecha_hora order by u.cedula ''' cur.execute(sql) rows = cur.fetchall() for row in rows: defensa = { 'cedula': row[0], 'apellidos': row[1], 'nombres':row[2], 'term':row[3], 'trabajodegrado':row[4], 'fecha_hora': row[5] } lista['defensas'].append(defensa) return lista
def actualizar_trabajodegrado(trabajodegrado): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = '''UPDATE api_trabajodegrado SET codigo='{0}', titulo='{1}', nrc='{2}', descriptores='{3}', categoria='{4}', fecha_entrega='{5}', nombre_empresa='{6}', estatus='{7}' WHERE id={8}'''.format(trabajodegrado['codigo'],trabajodegrado['titulo'],trabajodegrado['nrc'],trabajodegrado['descriptores'],trabajodegrado['categoria'],trabajodegrado['fecha_entrega'],trabajodegrado['nombre_empresa'],trabajodegrado['estatus'],trabajodegrado['id']) cur.execute(sql) conn.commit()
def actualizar_usuario(usuario): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = '''UPDATE api_usuario SET cedula='{0}', tipo='{1}', primer_nombre='{2}', segundo_nombre='{3}', primer_apellido='{4}', segundo_apellido='{5}', correo_ucab='{6}', correo_personal='{7}', password='******', telefono_uno='{9}', telefono_dos='{10}', observaciones='{11}', rol="{12}" WHERE id={13}'''.format(usuario['cedula'],usuario['tipo'],usuario['primer_nombre'],usuario['segundo_nombre'],usuario['primer_apellido'],usuario['segundo_apellido'],usuario['correo_ucab'],usuario['correo_personal'],usuario['password'],usuario['telefono_uno'],usuario['telefono_dos'],usuario['observaciones'],usuario['rol'],usuario['id']) cur.execute(sql) conn.commit()
def eliminar_defensa(id): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "DELETE FROM api_defensa WHERE id={0}".format(id) cur.execute(sql) conn.commit() sql = "DELETE FROM api_jurado WHERE fk_defensa_id={0}".format(id) cur.execute(sql) conn.commit()
def eliminar_propuesta(id): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "DELETE FROM api_propuesta WHERE id={0}".format(id) cur.execute(sql) conn.commit() sql = "DELETE FROM api_usuariopropuesta WHERE id={0}".format(id) cur.execute(sql) conn.commit()
def crear_usuario(usuario): print("LLEGOOO HASTA AQUI") conn = create_connection('db.sqlite3') cur = conn.cursor() sql = '''INSERT INTO api_usuario(cedula,tipo,primer_nombre,segundo_nombre,primer_apellido,segundo_apellido,correo_ucab,correo_personal,password,telefono_uno,telefono_dos,observaciones,rol) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}')'''.format(usuario['cedula'],usuario['tipo'],usuario['primer_nombre'],usuario['segundo_nombre'],usuario['primer_apellido'],usuario['segundo_apellido'],usuario['correo_ucab'],usuario['correo_personal'],usuario['password'],usuario['telefono_uno'],usuario['telefono_dos'],usuario['observaciones'],usuario['rol']) cur.execute(sql) conn.commit()
def obtener_trabajos_by_term(id): lista = {'propuestas':[], 'tgs':[], 'defensas':[]} conn = create_connection('db.sqlite3') cur = conn.cursor() sql = ''' select distinct p.titulo, p.id from api_term t, api_propuesta p where t.id = {0} and t.id = p.fk_term_id '''.format(id) cur.execute(sql) rows = cur.fetchall() for row in rows: trabajo = { 'titulo': row[0], 'id': row[1] } lista['propuestas'].append(trabajo) sql = ''' select distinct p.titulo, tg.id from api_term t, api_propuesta p, api_trabajodegrado tg where t.id = {0} and t.id = p.fk_term_id and tg.fk_propuesta_id = p.id '''.format(id) cur.execute(sql) rows = cur.fetchall() for row in rows: trabajo = { 'titulo': row[0], 'id': row[1] } lista['tgs'].append(trabajo) sql = ''' select distinct p.titulo, p.id from api_term t, api_propuesta p, api_trabajodegrado tg, api_defensa d where t.id = {0} and t.id = p.fk_term_id and tg.fk_propuesta_id = p.id and tg.id = d.fk_trabajo_grado_id '''.format(id) cur.execute(sql) rows = cur.fetchall() for row in rows: trabajo = { 'titulo': row[0], 'id': row[1] } lista['defensas'].append(trabajo) return lista
def actualizar_propuesta(propuesta): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = '''UPDATE api_propuesta SET codigo='{0}', fecha_entrega='{1}', titulo='{2}', estatus='{3}', fk_term_id='{4}' WHERE id={5}'''.format(propuesta['codigo'], propuesta['fecha_entrega'], propuesta['titulo'], propuesta['estatus'], propuesta['fk_term'], propuesta['id']) cur.execute(sql) conn.commit()
def obtener_correcciones(): lista = {'correcciones': []} conn = create_connection('db.sqlite3') cur = conn.cursor() cur.execute("SELECT * FROM api_correcciones") rows = cur.fetchall() for row in rows: correccion = {'id': row[0], 'fecha': row[1], 'fk_defensa': row[2]} lista['correcciones'].append(correccion) return lista
def obtener_relacionado_profesor(id): lista = {'profesores':[]} conn = create_connection('db.sqlite3') cur = conn.cursor() sql = ''' select distinct ju.suplente, tg.titulo, tg.id, d.id from api_usuario as u, api_propuesta as p, api_usuariopropuesta as up, api_defensa as d, api_jurado as ju, api_trabajodegrado as tg where u.id = {0} and u.tipo = 'Profesor' and ju.fk_usuario_id = u.id and ju.fk_defensa_id = d.id and tg.id = d.fk_trabajo_grado_id '''.format(id) cur.execute(sql) rows = cur.fetchall() for row in rows: if (row[0] == 1): asignacion = 'Jurado Suplente' else: asignacion = 'Jurado' profesor = { 'trabajo': row[1], 'asignacion': asignacion, 'id_propuesta': 0, 'id_trabajogrado': row[2], 'id_defensa': row[3] } lista['profesores'].append(profesor) sql = ''' select distinct p.titulo, p.id from api_usuario as u, api_propuesta as p, api_usuariopropuesta as up where u.id = {0} and u.tipo = 'Profesor' and up.fk_usuario_id = u.id and up.fk_propuesta_id = p.id '''.format(id) cur.execute(sql) rows = cur.fetchall() for row in rows: profesor = { 'trabajo': row[0], 'asignacion': 'Tutor Academico', 'id_propuesta': row[1], 'id_trabajogrado': 0, 'id_defensa': 0 } lista['profesores'].append(profesor) return lista
def actualizar_defensa(defensa): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = '''UPDATE api_defensa SET codigo='{0}', fecha_hora='{1}', calificacion={2}, mencion_publicacion={3}, mencion_honorifica={4}, nota={5} WHERE id={6}'''.format(defensa['codigo'],defensa['fecha_hora'],defensa['calificacion'],defensa['mencion_publicacion'],defensa['mencion_honorifica'],defensa['nota'],defensa['id']) cur.execute(sql) conn.commit() if(not isEmpty(defensa['jurado_uno'])): sql = "SELECT id FROM api_usuario WHERE cedula='{0}'".format(defensa['jurado_uno']) cur.execute(sql) row = list(cur.fetchall()[0]) id_jurado_uno = row[0] print(id_jurado_uno) sql = '''UPDATE api_jurado SET fk_usuario_id={0} WHERE fk_defensa_id={1}'''.format(id_jurado_uno,defensa['id']) cur.execute(sql) conn.commit() if(not isEmpty(defensa['jurado_dos'])): sql = "SELECT id FROM api_usuario WHERE cedula='{0}'".format(defensa['jurado_dos']) cur.execute(sql) row = list(cur.fetchall()[0]) id_jurado_dos = row[0] print(id_jurado_dos) sql = '''UPDATE api_jurado SET fk_usuario_id={0} WHERE fk_defensa_id={1}'''.format(id_jurado_dos,defensa['id']) cur.execute(sql) conn.commit() if(not isEmpty(defensa['jurado_tres'])): sql = "SELECT id FROM api_usuario WHERE cedula='{0}'".format(defensa['jurado_tres']) cur.execute(sql) row = list(cur.fetchall()[0]) id_jurado_tres = row[0] print(id_jurado_tres) sql = '''UPDATE api_jurado SET fk_usuario_id={0} WHERE fk_defensa_id={1}'''.format(id_jurado_tres,defensa['id']) cur.execute(sql) conn.commit()
def crear_defensa(defensa): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "SELECT id FROM api_trabajodegrado WHERE codigo='{0}'".format(defensa['trabajodegrado']) cur.execute(sql) row = list(cur.fetchall()[0]) id_trabajodegrado = row[0] print(id_trabajodegrado) sql = "SELECT id FROM api_usuario WHERE cedula='{0}'".format(defensa['jurado_uno']) cur.execute(sql) row = list(cur.fetchall()[0]) id_jurado_uno = row[0] print(id_jurado_uno) sql = "SELECT id FROM api_usuario WHERE cedula='{0}'".format(defensa['jurado_dos']) cur.execute(sql) row = list(cur.fetchall()[0]) id_jurado_dos = row[0] print(id_jurado_dos) sql = "SELECT id FROM api_usuario WHERE cedula='{0}'".format(defensa['jurado_tres']) cur.execute(sql) row = list(cur.fetchall()[0]) id_jurado_tres = row[0] print(id_jurado_tres) sql = "INSERT INTO api_defensa(codigo,fecha_hora,calificacion,mencion_publicacion,mencion_honorifica,nota,fk_trabajo_grado_id) VALUES ('{0}','{1}','{2}',{3},{4},{5},{6})".format(defensa['codigo'],defensa['fecha_hora'],defensa['calificacion'],defensa['mencion_publicacion'],defensa['mencion_honorifica'],defensa['nota'],id_trabajodegrado) cur.execute(sql) conn.commit() sql = "SELECT id FROM api_defensa WHERE codigo='{0}'".format(defensa['codigo']) cur.execute(sql) row = list(cur.fetchall()[0]) id_defensa = row[0] print(id_defensa) sql = "INSERT INTO api_jurado(fk_defensa_id,fk_usuario_id,suplente) VALUES ('{0}','{1}',0)".format(id_defensa,id_jurado_uno) cur.execute(sql) conn.commit() sql = "INSERT INTO api_jurado(fk_defensa_id,fk_usuario_id,suplente) VALUES ('{0}','{1}',0)".format(id_defensa,id_jurado_dos) cur.execute(sql) conn.commit() sql = "INSERT INTO api_jurado(fk_defensa_id,fk_usuario_id,suplente) VALUES ('{0}','{1}',1)".format(id_defensa,id_jurado_tres) cur.execute(sql) conn.commit()
def crear_correccion(correccion): conn = create_connection('db.sqlite3') cur = conn.cursor() print(correccion) sql = "SELECT id FROM api_defensa WHERE codigo='{0}'".format( correccion['defensa']) cur.execute(sql) row = cur.fetchall() defensa = list(row[0]) print(defensa) sql = "INSERT INTO api_correcciones(fecha,fk_defensa_id) VALUES ('{0}',{1})".format( correccion['fecha'], defensa[0]) cur.execute(sql) conn.commit()
def obtener_terms(): lista = {'terms':[]} conn = create_connection('db.sqlite3') cur = conn.cursor() """ cur.execute("INSERT INTO api_term(term) VALUES ('2221')") conn.commit() """ cur.execute("SELECT * FROM api_term") rows = cur.fetchall() for row in rows: term = { 'id': row[0], 'term': row[1] } lista['terms'].append(term) return lista
def estadiaticas_by_term(id): lista = {'estadisticas':[]} conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "select avg(d.calificacion) as Promedio from api_term as t, api_defensa as d, api_trabajodegrado as tg where t.id={0} and t.id = tg.fk_term_id and tg.id = d.fk_trabajo_grado_id".format(id) cur.execute(sql) row = list(cur.fetchall()[0]) media_aritmetica = row[0] sql = "SELECT (max(d.calificacion)+min(d.calificacion))/2 as mediana from api_term as t, api_defensa as d, api_trabajodegrado as tg where t.id={0} and t.id = tg.fk_term_id and tg.id = d.fk_trabajo_grado_id".format(id) cur.execute(sql) row = list(cur.fetchall()[0]) mediana = row[0] sql = "SELECT (AVG(d.calificacion*d.calificacion) - AVG(d.calificacion)*AVG(d.calificacion))/2 FROM api_defensa as d, api_trabajodegrado as tg, api_term as t where t.id={0} and t.id=tg.fk_term_id and tg.id=d.fk_trabajo_grado_id".format(id) cur.execute(sql) row = list(cur.fetchall()[0]) desviacion_estandar = row[0] sql = ''' SELECT d.calificacion, COUNT(d.calificacion) as Veces from api_defensa as d, api_trabajodegrado as tg, api_term as t where t.id={0} and t.id=tg.fk_term_id and tg.id=d.fk_trabajo_grado_id group by d.calificacion ORDER by COUNT(d.calificacion) DESC LIMIT 1 '''.format(id) cur.execute(sql) row = list(cur.fetchall()[0]) moda = row[0] obj = { 'media_aritmetica': media_aritmetica, 'mediana': mediana, 'moda': moda, 'desviacion_estandar': desviacion_estandar } lista['estadisticas'].append(obj) return lista
def obtener_propuestas(): lista = {'propuestas': []} conn = create_connection('db.sqlite3') cur = conn.cursor() cur.execute("SELECT * FROM api_propuesta") rows = cur.fetchall() for row in rows: propuesta = { 'id': row[0], 'codigo': row[1], 'fecha_entrega': row[2], 'titulo': row[3], 'estatus': row[4], 'fk_term': row[5] } lista['propuestas'].append(propuesta) return lista
def delete_data(): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = '''Delete from api_correcciones''' cur.execute(sql) conn.commit() sql = '''Delete from api_defensa''' cur.execute(sql) conn.commit() sql = '''Delete from api_jurado''' cur.execute(sql) conn.commit() sql = '''Delete from api_trabajodegrado''' cur.execute(sql) conn.commit() sql = '''Delete from api_usuariopropuesta''' cur.execute(sql) conn.commit() sql = '''Delete from api_propuesta''' cur.execute(sql) conn.commit() sql = '''Delete from api_term''' cur.execute(sql) conn.commit() sql = '''Delete from api_usuario''' cur.execute(sql) conn.commit() sql = '''update sqlite_sequence SET SEQ=0''' cur.execute(sql) conn.commit() conn.close()
def obtener_defensas(): lista = {'defensas':[]} conn = create_connection('db.sqlite3') cur = conn.cursor() cur.execute("SELECT * FROM api_defensa") rows = cur.fetchall() for row in rows: defensa = { 'id': row[0], 'codigo': row[1], 'fecha_hora':row[2], 'calificacion':row[3], 'mencion_publicacion':row[4], 'mencion_honorifica': row[5], 'nota': row[6], 'fk_trabajo_grado': row[7] } lista['defensas'].append(defensa) return lista
def login(obj): print(obj['correo']) conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "select u.id, u.primer_apellido || ' ' || u.segundo_apellido as Apellidos, u.primer_nombre || ' ' || u.segundo_nombre as Nombres, u.rol FROM api_usuario as u WHERE u.correo_personal='{0}' and u.password='******'".format(obj['correo'],obj['password']) cur.execute(sql) row = cur.fetchall() user = list(row[0]) print(user) usuario = { 'id': user[0], 'apellidos': user[1], 'nombres': user[2], 'rol': user[3] } return usuario conn.commit()
def insertar_term(): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "INSERT INTO api_term(term) VALUES ('{}')".format('201540') cur.execute(sql) conn.commit() sql = "INSERT INTO api_term(term) VALUES ('{}')".format('201343') cur.execute(sql) conn.commit() sql = "INSERT INTO api_term(term) VALUES ('{}')".format('201454') cur.execute(sql) conn.commit() sql = "INSERT INTO api_term(term) VALUES ('{}')".format('201640') cur.execute(sql) conn.commit() sql = "INSERT INTO api_term(term) VALUES ('{}')".format('201431') cur.execute(sql) conn.commit() conn.close()
def obtener_trabajosdegrado(): lista = {'trabajosdegrado':[]} conn = create_connection('db.sqlite3') cur = conn.cursor() cur.execute("SELECT * FROM api_trabajodegrado") rows = cur.fetchall() for row in rows: trabajodegrado = { 'id': row[0], 'codigo': row[1], 'titulo': row[2], 'nrc': row[3], 'descriptores': row[4], 'categoria': row[5], 'fecha_entrega':row[6], 'nombre_empresa': row[7], 'estatus':row[8], 'fk_propuesta': row[9], 'fk_term': row[10] } lista['trabajosdegrado'].append(trabajodegrado) return lista
def eliminar_correccion(id): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "DELETE FROM api_correcciones WHERE id={0}".format(id) cur.execute(sql) conn.commit()
def actualizar_term(data): conn = create_connection('db.sqlite3') cur = conn.cursor() sql = "UPDATE api_term SET term='{0}' WHERE id={1}".format(data['term'], data['id']) cur.execute(sql) conn.commit()