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
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)
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
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
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))
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
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))
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
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)
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
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)
def make_groups(course): path = course.get_canvas_folder() + '/course_settings/assignment_groups.xml' util.write_file(path, ASSIGNMENT)
def make_manifest(course, resources): path = course.get_canvas_folder() + '/imsmanifest.xml' util.write_file(path, MANIFEST.format(resources))