def get(self): try: query = f"""SELECT model_id as value, name as label FROM train_models ORDER BY name""" return utils.execute_query(query) except: traceback.print_exc() return {"msg": "Error on GET Phenomenon"}, 500
def get_indicators_by_lms(self): lms_id = request.get_json()['id'] query = f"""SELECT name as value, description as label FROM indicators WHERE lms='{lms_id}' GROUP BY name, description, lms ORDER BY name """ return utils.execute_query(query)
def post(self): try: payload = request.get_json() if 'datasource' not in payload: return {'msg': 'Datasource not found'}, 500 query = f"""SELECT curso as label, curso as value FROM {payload['datasource']} GROUP BY curso ORDER BY curso""" return utils.execute_query(query) except: traceback.print_exc() return {"msg": "Error on POST Course"}, 500
def post(self): try: where = '' payload = request.get_json() if 'courses' in payload and len(payload['courses']) > 0: courses = utils.list_to_sql_string(payload['courses']) where = f"WHERE curso IN ({courses})" query = f"""SELECT nome_da_disciplina as label, nome_da_disciplina as value FROM moodle {where} GROUP BY nome_da_disciplina ORDER BY nome_da_disciplina""" return utils.execute_query(query) except: traceback.print_exc() return {"msg": "Error on get Subject"}, 500
def post(self): try: where = '' payload = request.get_json() if 'subjects' in payload and len(payload['subjects']) > 0: subjects = utils.list_to_sql_string(payload['subjects']) where = f"WHERE nome_da_disciplina IN ({subjects})" query = f"""SELECT semestre as label, semestre as value FROM moodle {where} GROUP BY semestre ORDER BY semestre""" return utils.execute_query(query) except: traceback.print_exc() return {"msg": "Error on GET Semester"}, 500
def get_indicators_description_from_lms(self): descriptions = {} payload = request.get_json() lms_id = payload['id'] query = f"""SELECT name, description FROM indicators WHERE lms='{lms_id}' AND name IN ({utils.list_to_sql_string(payload['indicators'])}) GROUP BY name, description, lms """ data = utils.execute_query(query) for item in data: descriptions[item['name']] = item['description'] return descriptions
def get_initial_dataframe_from_lms(self): query_where = '' where = 'WHERE' fields = "*" group_by = '' payload = request.get_json() if 'indicators' in payload and type(payload['indicators']) == list: fields = ", ".join(payload['indicators']) if 'courses' in payload and type(payload['courses']) == list and len(payload['courses']) > 0: query_where += f"""{where} curso IN ({utils.list_to_sql_string(payload['courses'])}) """ where = 'AND' if 'subjects' in payload and type(payload['subjects']) == list and len(payload['subjects']) > 0: query_where += f"""{where} nome_da_disciplina IN ({utils.list_to_sql_string(payload['subjects'])}) """ where = 'AND' if 'semesters' in payload and type(payload['semesters']) == list and len(payload['semesters']) > 0: query_where += f"""{where} semestre IN ({utils.list_to_sql_string(payload['semesters'])}) """ if fields != '*': group_by = f"GROUP BY {fields}" query = f""" SELECT {fields} FROM {payload['id']} {query_where} {group_by} """ df = utils.execute_query(query=query, mode='pandas') return df