Esempio n. 1
0
def remove_teacher_group(course_id: str, teacher: str, group_id: str):

    resp = requests.delete(conf.EMS_BASE_URL + '/courses/' + course_id +
                           '/groups/' + group_id + '/teachers/' + teacher,
                           headers=util.get_token_header())

    print(resp.status_code)
Esempio n. 2
0
def sync_grades(course_id: str):

    resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id +
                         '/moodle/grades',
                         headers=util.get_token_header())
    print(resp.status_code)
    print(resp.json())
Esempio n. 3
0
def reorder_exercises(course_id: str, course_exercise_id: str, new_index: int):
    body = {"new_index": new_index}

    resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id +
                         '/exercises/' + course_exercise_id + '/reorder',
                         json=body,
                         headers=util.get_token_header())
    print(resp.status_code)
Esempio n. 4
0
def new_course(title: str):
    body = {'title': title}
    resp = requests.post(conf.EMS_BASE_URL + '/admin/courses',
                         json=body,
                         headers=util.get_token_header())
    print(resp.status_code)
    j = resp.json()
    return j['id']
Esempio n. 5
0
def create_group(course_id: str, name: str):
    body = {'name': name}

    resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id +
                         '/groups',
                         json=body,
                         headers=util.get_token_header())
    print(resp.status_code)
    j = resp.json()
    return j['id']
Esempio n. 6
0
def autoass(course_id: str, exercise_id: str, solution_file: str):
    solution = util.get_file_content(solution_file)
    body = {
        'solution': solution
    }
    resp = requests.post(
        conf.EMS_BASE_URL + '/teacher/courses/' + course_id + '/exercises/' + exercise_id + '/autoassess', json=body,
        headers=util.get_token_header())
    print(resp.status_code)
    print(resp.json())
Esempio n. 7
0
def add_teacher(course_id: str, teachers: list):

    teachers_list = list(map(lambda e: {'email': e}, teachers))

    body = {'teachers': teachers_list}

    resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id +
                         '/teachers',
                         json=body,
                         headers=util.get_token_header())
    print(resp.status_code)
Esempio n. 8
0
def remove_teacher_course(course_id: str, teachers: list):

    teachers_list = list(map(lambda e: {'username': e}, teachers))

    body = {'teachers': teachers_list}

    resp = requests.delete(conf.EMS_BASE_URL + '/courses/' + course_id +
                           '/teachers',
                           json=body,
                           headers=util.get_token_header())

    print(resp.status_code)
Esempio n. 9
0
def add_students(course_id: str, students: list, group_id: str):

    students_list = list(
        map(lambda e: {
            'email': e,
            'groups': [{
                'id': group_id
            }]
        }, students))

    body = {'students': students_list}

    resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id +
                         '/students',
                         json=body,
                         headers=util.get_token_header())
    print(resp.status_code)
Esempio n. 10
0
def link_moodle_course(course_id: str, moodle_short_name: str,
                       sync_students: bool, sync_grades: bool, force: bool):
    body = {
        "moodle_props": {
            "moodle_short_name": moodle_short_name,
            "sync_students": sync_students,
            "sync_grades": sync_grades
        },
        "force": force
    }

    resp = requests.put(conf.EMS_BASE_URL + '/courses/' + course_id +
                        '/moodle',
                        json=body,
                        headers=util.get_token_header())
    print(resp.status_code)
    print(resp.json())
Esempio n. 11
0
def new_course_exercise(course_id, exercise_id, threshold, soft_deadline,
                        hard_deadline, visible, ass_visible, instructions,
                        title_alias):
    body = {
        'exercise_id': exercise_id,
        'threshold': threshold,
        'soft_deadline': soft_deadline,
        'hard_deadline': hard_deadline,
        'student_visible': visible,
        'assessments_student_visible': ass_visible,
        'instructions_html': instructions,
        'title_alias': title_alias
    }

    resp = requests.post(conf.EMS_BASE_URL + '/teacher/courses/' + course_id +
                         '/exercises',
                         json=body,
                         headers=util.get_token_header())
    print(resp.status_code)
Esempio n. 12
0
def delete_group(course_id: str, group_id: str):
    resp = requests.delete(conf.EMS_BASE_URL + '/courses/' + course_id +
                           '/groups/' + group_id,
                           headers=util.get_token_header())
    print(resp.status_code)
Esempio n. 13
0
def update_exercise(exercise_id: str, title: str, html_file: str, adoc_file: str, public: bool, grader: str,
                 grading_file: str, container_image: str, max_time_sec: int, max_mem_mb: int,
                 asset_files: list, executors: list):

    html = util.get_optional_file_content(html_file)
    adoc = util.get_optional_file_content(adoc_file)

    body = {
        'title': title,
        'text_html': html,
        'text_adoc': adoc,
        'public': public,
        'grader_type': grader.upper(),
        'container_image': container_image,
        'max_time_sec': max_time_sec,
        'max_mem_mb': max_mem_mb,
    }

    if grading_file is not None:
        grading_script = util.get_file_content(grading_file)
        body["grading_script"] = grading_script
    if len(asset_files) > 0:
        assets = list(map(lambda filename: {'file_name': os.path.basename(filename),
                                            'file_content': util.get_file_content(filename)},
                          asset_files)
                      )
        body["assets"] = assets
    if len(executors) > 0:
        executors = list(map(lambda e: {'executor_id': e}, executors))
        body["executors"] = executors



    resp = requests.put(conf.EMS_BASE_URL + '/exercises/' + exercise_id, json=body, headers=util.get_token_header())
    print(resp.status_code)