コード例 #1
0
ファイル: rubrics.py プロジェクト: kq2/Ricin
def make_rubric(coursera_file, canvas_id):
    peer_assessment = util.read_json(coursera_file)
    args = {
        'canvas_id': canvas_id,
        'title': peer_assessment['title'],
        'points': peer_assessment['maxGrade'],
        'criteria': make_criteria(peer_assessment['form'][1])
    }
    return RUBRIC.format(**args)
コード例 #2
0
ファイル: video.py プロジェクト: kq2/Ricin
def ensemble_id_map():
    ans = {}
    videos = util.read_json('ensemble.json')['Data']
    for video in videos:
        title = util.unescape(video['Title'])
        ensemble_id = video['ID']
        ans[title] = ensemble_id
        util.write_json('videos.json', ans)
    return ans
コード例 #3
0
ファイル: video.py プロジェクト: kq2/Ricin
def get_in_video_links(in_video_quiz_file, is_v2, course):
    quiz = util.read_json(in_video_quiz_file)

    links = ''
    if is_v2:
        for question in quiz['assessment']['definition']['questions'].values():
            for link in find_links(question['data']['definition']['prompt'], course):
                links += LINK.format(link)
    else:
        for group in quiz['questionGroups']:
            for question in group['questions']:
                for link in find_links(question['text'], course):
                    links += LINK.format(link)
    if links:
        return u'<h4>References</h4>' + links
    return ''
コード例 #4
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)
コード例 #5
0
ファイル: peer.py プロジェクト: kq2/Ricin
def convert(course, item):
    coursera_id = item["item_id"]
    coursera_folder = course.get_coursera_folder()
    coursera_file = "{}/peer_assessment/{}.json".format(coursera_folder, coursera_id)

    canvas_id = item["canvas_id"]
    canvas_folder = course.get_canvas_folder()

    title = item["title"]
    assignment = util.read_json(coursera_file)

    main_file = make_main_file(course, assignment, canvas_folder, canvas_id, title)
    settings_file = make_settings_file(course, assignment, canvas_folder, canvas_id, title)

    args = {
        "id": canvas_id,
        "type": "associatedcontent/imscc_xmlv1p1/learning-application-resource",
        "path": main_file,
        "files": resource.FILE.format(main_file) + resource.FILE.format(settings_file),
    }
    course.add_resources(args)
コード例 #6
0
ファイル: course.py プロジェクト: kq2/Ricin
    def clean_sections(self):
        sections = util.read_json(self.section_file)
        for section in sections:
            for item in section['items']:
                item_type = item['item_type']

                # unify format for wiki pages
                if item_type == 'coursepage':
                    item['title'] = item['metadata']['title']
                    item['item_id'] = item['metadata']['canonicalName']

                # set coursera_id
                item['coursera_id'] = '{}_{}'.format(item_type, item['item_id'])

                # unify format for published attribute
                if 'published' in item:
                    item['published'] = item['published'] == 1
                elif '__published' in item:
                    item['published'] = item['__published'] == 1
                else:
                    item['published'] = item['metadata']['visible']

        return sections
コード例 #7
0
ファイル: course.py プロジェクト: kq2/Ricin
    def __init__(self, course_site, course_name, course_session, part):
        self.site = course_site
        self.name = course_name
        self.session = course_session
        self.part = part

        self.coursera_folder = '../../{}/{}/{}'.format(self.site, self.name, self.session)
        self.canvas_folder = '../../canvas/{}-{}'.format(self.name, self.session)

        self.section_file = (self.coursera_folder + '/session_info/section.json')
        self.sections = self.clean_sections()

        self.id2id = {}
        self.set_canvas_id()

        self.ensemble_title2id = util.read_json('videos.json')
        self.resources = ''

        self.topic_pos = 1
        self.quiz_pos = 1
        self.peer_pos = 1
        self.assignment_pos = 1
        self.module_pos = 1
        self.asset_pos = 1