예제 #1
0
파일: quiz.py 프로젝트: kq2/Ricin
def make_canvas_metadata(course, metadata, preamble, canvas_folder):
    """
    Create an XML file for metadata.
    """
    canvas_id = metadata.get('canvas_id')
    is_survey = metadata.get('is_survey')

    pos = course.get_quiz_pos()
    course.set_quiz_pos(pos + 1)

    args = {
        'title': metadata.findtext('title'),
        'points': metadata.findtext('maximum_score'),
        'attempts': metadata.findtext('maximum_submissions'),
        'quiz_type': 'survey' if is_survey else 'assignment',
        'show_answer': 'false' if is_survey else 'true',
        'shuffle': 'false' if is_survey else 'true',
        'preamble': preamble,
        'quiz_id': canvas_id,
        'assignment_id': 'a_' + canvas_id,
        'position': pos
    }
    content = METADATA.format(**args)
    file_name = '{}/assessment_meta.xml'.format(canvas_id)
    path = '{}/{}'.format(canvas_folder, file_name)
    util.write_file(path, content)
    return file_name
예제 #2
0
파일: video.py 프로젝트: kq2/Ricin
def make_canvas_video_page(course, coursera_file, is_v2, canvas_file,
                           canvas_title, canvas_id, ensemble_id):
    in_video_links = ''
    if util.exists(coursera_file):
        in_video_links = get_in_video_links(coursera_file, is_v2, course)

    content = VIDEO.format(ensemble_id, in_video_links)
    content = wiki.TEMPLATE.format(canvas_title, canvas_id, content)
    util.write_file(canvas_file, content)
예제 #3
0
파일: assignment.py 프로젝트: kq2/Ricin
def make_main_file(assignment, canvas_folder, canvas_id, title):
    file_name = wiki.get_canvas_wiki_filename(title)
    file_path = '{}/{}.html'.format(canvas_id, file_name)
    path = '{}/{}'.format(canvas_folder, file_path)
    args = {
        'title': title,
        'description': assignment
    }
    util.write_file(path, peer.ASSIGNMENT.format(**args))
    return file_path
예제 #4
0
파일: peer.py 프로젝트: kq2/Ricin
def make_main_file(course, assignment, canvas_folder, canvas_id, title):
    file_name = wiki.get_canvas_wiki_filename(title)
    make_description_page(course, assignment, canvas_id, title, file_name)
    make_solution_page(course, assignment, canvas_id, title, file_name)

    file_path = "{}/{}.html".format(canvas_id, file_name)
    path = "{}/{}".format(canvas_folder, file_path)

    args = {"title": title, "description": DESCRIPTION.format(file_name)}
    util.write_file(path, ASSIGNMENT.format(**args))
    return file_path
예제 #5
0
파일: rubrics.py 프로젝트: kq2/Ricin
def make_rubrics(course, peer_items):
    coursera_folder = course.get_coursera_folder()
    canvas_folder = course.get_canvas_folder()

    rubrics = ''
    for item in peer_items:
        coursera_id = item['item_id']
        coursera_file = '{}/peer_assessment/{}.json'.format(coursera_folder, coursera_id)
        canvas_id = item['canvas_id']
        rubrics += make_rubric(coursera_file, canvas_id)

    canvas_file = '{}/course_settings/rubrics.xml'.format(canvas_folder)
    util.write_file(canvas_file, RUBRICS.format(rubrics))
예제 #6
0
파일: assignment.py 프로젝트: kq2/Ricin
def make_settings_file(course, canvas_folder, canvas_id, title):
    file_name = '{}/assignment_settings.xml'.format(canvas_id)
    path = '{}/{}'.format(canvas_folder, file_name)

    pos = course.get_assignment_pos()
    course.set_assignment_pos(pos + 1)

    args = {
        'canvas_id': canvas_id,
        'title': title,
        'points': 100,
        'submit_type': 'online_url',
        'position': pos,
    }
    util.write_file(path, SETTINGS.format(**args))
    return file_name
예제 #7
0
파일: module.py 프로젝트: kq2/Ricin
def convert(course, sections):
    modules = ''

    for section in sections:
        pos = course.get_module_pos()
        course.set_module_pos(pos + 1)

        args = {
            'title': section['title'],
            'position': pos,
            'items': canvas_items(section['items'])
        }
        modules += MODULE.format(**args)

    path = course.get_canvas_folder() + '/course_settings/module_meta.xml'
    util.write_file(path, MODULES.format(modules))
예제 #8
0
파일: quiz.py 프로젝트: kq2/Ricin
def make_canvas_data(data, metadata, canvas_folder):
    """
    Create an XML file for data.
    """
    canvas_id = metadata.get('canvas_id')
    question_groups = data.find('question_groups')
    args = {
        'quiz_id': canvas_id,
        'title': metadata.findtext('title'),
        'question_groups': canvas_question_groups(question_groups, canvas_id)
    }
    content = DATA.format(**args)
    file_name = 'non_cc_assessments/{}.xml.qti'.format(canvas_id)
    path = '{}/{}'.format(canvas_folder, file_name)
    util.write_file(path, content)
    return file_name
예제 #9
0
파일: announcement.py 프로젝트: kq2/Ricin
def convert(course, item):
    coursera_folder = course.get_coursera_folder()
    canvas_folder = course.get_canvas_folder()

    data_canvas_id = item['canvas_id']
    meta_canvas_id = data_canvas_id + '_meta'

    data_file = '{}.xml'.format(data_canvas_id)
    meta_file = '{}.xml'.format(meta_canvas_id)

    data_path = '{}/{}'.format(canvas_folder, data_file)
    meta_path = '{}/{}'.format(canvas_folder, meta_file)

    pos = course.get_topic_pos()
    course.set_topic_pos(pos + 1)

    coursera_file = '{}/announcement/{}.json'.format(coursera_folder, item['item_id'])
    announcement = util.read_json(coursera_file)
    args = {
        'topic_id': item['canvas_id'],
        'title': item['title'],
        'position': pos,
        'content': wiki.convert_content(announcement['message'], course)
    }

    meta = META.format(**args)
    data = TOPIC.format(**args)

    util.write_file(data_path, data)
    util.write_file(meta_path, meta)

    data_args = {
        'id': data_canvas_id,
        'type': 'imsdt_xmlv1p1',
        'path': '',
        'files': resource.FILE.format(data_file) + resource.DEPENDENCY.format(meta_canvas_id)
    }
    meta_args = {
        'id': meta_canvas_id,
        'type': 'associatedcontent/imscc_xmlv1p1/learning-application-resource',
        'path': meta_file,
        'files': resource.FILE.format(meta_file)
    }
    course.add_resources(data_args)
    course.add_resources(meta_args)
예제 #10
0
파일: peer.py 프로젝트: kq2/Ricin
def make_settings_file(course, assignment, canvas_folder, canvas_id, title):
    file_name = "{}/assignment_settings.xml".format(canvas_id)
    path = "{}/{}".format(canvas_folder, file_name)

    pos = course.get_peer_pos()
    course.set_peer_pos(pos + 1)

    args = {
        "canvas_id": canvas_id,
        "title": title,
        "rubric_id": "{}_rubric".format(canvas_id),
        "points": assignment["maxGrade"],
        "submit_type": "online_text_entry",  # online_url
        "position": pos,
        "num_peer": 5,
    }
    util.write_file(path, SETTINGS.format(**args))
    return file_name
예제 #11
0
파일: wiki.py 프로젝트: kq2/Ricin
def make_canvas_wiki(wiki_content, wiki_title, canvas_file, canvas_id, course):
    wiki_content = convert_content(wiki_content, course)
    canvas_wiki = TEMPLATE.format(wiki_title, canvas_id, wiki_content)
    util.write_file(canvas_file, canvas_wiki)
예제 #12
0
파일: assignment.py 프로젝트: kq2/Ricin
def make_groups(course):
    path = course.get_canvas_folder() + '/course_settings/assignment_groups.xml'
    util.write_file(path, ASSIGNMENT)
예제 #13
0
파일: resource.py 프로젝트: kq2/Ricin
def make_manifest(course, resources):
    path = course.get_canvas_folder() + '/imsmanifest.xml'
    util.write_file(path, MANIFEST.format(resources))