def get_users_by_idCourse(Courses_id):
    service = model.returns_service()
    results = service.courses().students().list(courseId=Courses_id)
    studentCourses = results.execute()
    df = pd.DataFrame(columns=['StudentID', 'Student_Name', 'EmailStudent'],
                      index=range(len(studentCourses['students'])))
    cont = 0
    for i in studentCourses['students']:
        l = []
        #print(i['userId']);print(i['profile']['name']['fullName']);print(i['profile']['emailAddress'])
        try:
            l.append(i['userId'])
        except KeyError:
            l.append("NULL")
        try:
            l.append(i['profile']['name']['fullName'])
        except KeyError:
            l.append("NULL")
        try:
            l.append(i['profile']['emailAddress'])
        except KeyError:
            l.append("NULL")
        df.iloc[cont] = l
        cont = cont + 1
    return df
def return_themes_by_name(course_id, names):
    service = model.returns_service()
    results = service.courses().topics().list(courseId=course_id).execute()
    df = pd.DataFrame(columns=['CourseId', 'TopicId', 'name', 'UpdateTime'],
                      index=range(len(results['topic'])))
    cont = 0
    for i in results['topic']:
        l = []
        try:
            l.append(i["courseId"])
            l.append(i["topicId"])
        except:
            l.append("NULL")
        try:
            l.append(i["name"])
        except:
            l.append("NULL")
        try:
            l.append(i["updateTime"])
        except:
            l.append("NULL")
        df.iloc[cont] = l
        cont = cont + 1
    df = df[df.name == names]
    return df
def courses_list_activities(course_id, mesFiltro, anioFiltro):
    service = model.returns_service()
    results = service.courses().courseWork().list(courseId=course_id).execute()
    list_activities = []
    df = pd.DataFrame(columns=[
        'CourseWorkID', 'TopicId', 'Titulo', 'Descripcion', 'FechaCreacion',
        'PuntosMaximos', 'FechaEntrega'
    ],
                      index=range(len(results['courseWork'])))
    cont = 0
    for i in results['courseWork']:
        l = []
        #print(i)
        ##print(i.keys())
        #input()
        try:
            if i['dueDate']['month'] > mesFiltro and i['dueDate'][
                    'year'] == anioFiltro:
                l.append(i['id'])
                try:
                    l.append(i['topicId'])
                except:
                    l.append("Sin Tema Asignado")
                try:
                    l.append(i['title'])
                except:
                    l.append("Sin Titulo")
                try:
                    l.append(i['description'])
                except:
                    l.append("Sin decripcion")
                try:
                    l.append(i['creationTime'])
                except:
                    l.append("Sin hora")
                try:
                    l.append(i['maxPoints'])
                except KeyError:
                    l.append("Sin puntaje")
                try:
                    d = str(i['dueDate']['day']) + '/' + str(
                        i['dueDate']['month']) + '/' + str(
                            i['dueDate']['year'])
                    l.append(d)
                except KeyError:
                    l.append("Fecha")
                df.iloc[cont] = l
                cont = cont + 1
        except KeyError:
            pass
    df = df.dropna()
    return df
def get_all_courses():
    service = model.returns_service()
    results = service.courses().list(pageSize=20).execute()
    #courses = []
    cont = 0
    df = pd.DataFrame(columns=['ID_Curso', 'Nombre_Curso', 'Descripcion'],
                      index=range(len(results['courses'])))
    for i in results['courses']:
        l = []
        l.append(i['id'])
        l.append(i['name'])
        l.append(i['descriptionHeading'])
        df.iloc[cont] = l
        cont = cont + 1
    return df
def sumbiss_student_courseWork(course_id, course_work_id):
    service = model.returns_service()
    results = service.courses().courseWork().studentSubmissions().list(
        courseId=course_id, courseWorkId=course_work_id).execute()
    df = pd.DataFrame(columns=[
        'CourseID', 'CourseWorkID', 'StudentID', 'FechaCreacion', 'State',
        'ArchivoEntrega', 'Calificacion'
    ],
                      index=range(len(results['studentSubmissions'])))
    cont = 0
    for i in results['studentSubmissions']:
        l = []
        #print(i)
        #input()
        try:
            l.append(i["courseId"])
            l.append(i["courseWorkId"])
        except:
            l.append("NULL")
        try:
            l.append(i["userId"])
            l.append(i["creationTime"])
        except:
            l.append("NULL")
        try:
            l.append(i["state"])
        except:
            l.append("NULL")
        try:
            l.append(i["assignmentSubmission"]['attachments'][0]['driveFile']
                     ['title'])
        except:
            l.append("NULL")
        try:
            l.append(int(i["draftGrade"]) / 10)
        except:
            l.append(0)
        df.iloc[cont] = l
        cont = cont + 1
    return df