示例#1
0
 def criterion(cls, criterion):
     return {
         "id": ResourceIRI.criterion(criterion.uuid),
         "type": CALIPER_ENTITY_TYPES["ENTITY"],
         "name": LearningRecord.trim_text_to_size_limit(criterion.name),
         "description": LearningRecord.trim_text_to_size_limit(criterion.description),
         "dateCreated": criterion.created.replace(tzinfo=pytz.utc).isoformat(),
         "dateModified": criterion.modified.replace(tzinfo=pytz.utc).isoformat(),
     }
示例#2
0
 def criterion(cls, criterion):
     return caliper.entities.DigitalResource(
         id=ResourceIRI.criterion(criterion.uuid),
         name=LearningRecord.trim_text_to_size_limit(criterion.name),
         description=LearningRecord.trim_text_to_size_limit(
             criterion.description),
         dateCreated=criterion.created.replace(
             tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
         dateModified=criterion.modified.replace(
             tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z')
示例#3
0
文件: object.py 项目: ubc/acj-versus
    def assignment_question(cls, assignment):
        activity = Activity(
            id=ResourceIRI.assignment_question(assignment.course_uuid, assignment.uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('question'),
                name=LanguageMap({ 'en-US': LearningRecord.trim_text_to_size_limit(assignment.name) })
            )
        )
        if assignment.description:
            activity.definition.description = LanguageMap({
                'en-US': LearningRecord.trim_text_to_size_limit(assignment.description)
            })

        return activity
示例#4
0
文件: object.py 项目: ubc/acj-versus
    def criterion(cls, criterion):
        activity = Activity(
            id=ResourceIRI.criterion(criterion.uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('question'),
                name=LanguageMap({ 'en-US': LearningRecord.trim_text_to_size_limit(criterion.name) })
            )
        )
        if criterion.description:
            activity.definition.description = LanguageMap({
                'en-US': LearningRecord.trim_text_to_size_limit(criterion.description)
            })

        return activity
示例#5
0
    def course(cls, course):
        ret = {
            "id": ResourceIRI.course(course.uuid),
            "type": CALIPER_ENTITY_TYPES["COURSE_OFFERING"],
            "academicSession": course.term,
            "name": LearningRecord.trim_text_to_size_limit(course.name),
            "dateCreated": course.created.replace(tzinfo=pytz.utc).isoformat(),
            "dateModified": course.modified.replace(tzinfo=pytz.utc).isoformat(),
            "extensions": {}
        }

        if course.lti_linked:
            ret["extensions"]["ltiContexts"] = []
            for lti_context in course.lti_contexts:
                lti_consumer = lti_context.lti_consumer

                ret["extensions"]["ltiContexts"].append({
                    "oauth_consumer_key": lti_consumer.oauth_consumer_key,
                    "tool_consumer_instance_guid": lti_consumer.tool_consumer_instance_guid,
                    "tool_consumer_instance_name": lti_consumer.tool_consumer_instance_name,
                    "tool_consumer_instance_url": lti_consumer.tool_consumer_instance_url,
                    "lis_course_offering_sourcedid": lti_context.lis_course_offering_sourcedid,
                    "lis_course_section_sourcedid": lti_context.lis_course_section_sourcedid,
                    "context_id": lti_context.context_id
                })

        return ret
示例#6
0
    def course(cls, course):
        otherIdentifiers = []
        if course.lti_linked:
            for lti_context in course.lti_contexts:
                lti_consumer = lti_context.lti_consumer

                otherIdentifiers.append(
                    caliper.entities.SystemIdentifier(
                        identifier=lti_context.context_id,
                        identifierType=CALIPER_SYSTEM_TYPES['LTI_CONTEXT_ID'],
                        source=lti_consumer.tool_consumer_instance_url,
                        extensions={
                            "oauth_consumer_key":
                            lti_consumer.oauth_consumer_key,
                            "tool_consumer_instance_guid":
                            lti_consumer.tool_consumer_instance_guid,
                            "tool_consumer_instance_name":
                            lti_consumer.tool_consumer_instance_name,
                            "lis_course_offering_sourcedid":
                            lti_context.lis_course_offering_sourcedid,
                            "lis_course_section_sourcedid":
                            lti_context.lis_course_section_sourcedid,
                        }))

        return caliper.entities.CourseOffering(
            id=ResourceIRI.course(course.uuid),
            academicSession=course.term,
            name=LearningRecord.trim_text_to_size_limit(course.name),
            dateCreated=course.created.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
            dateModified=course.modified.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
            otherIdentifiers=otherIdentifiers)
示例#7
0
    def assignment(cls, assignment):
        activity = Activity(
            id=ResourceIRI.assignment(assignment.course_uuid, assignment.uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('assessment'),
                name=LanguageMap({
                    'en-US':
                    LearningRecord.trim_text_to_size_limit(assignment.name)
                })))
        if assignment.description:
            activity.definition.description = LanguageMap({
                'en-US':
                LearningRecord.trim_text_to_size_limit(assignment.description)
            })

        return activity
示例#8
0
    def criterion(cls, criterion):
        activity = Activity(
            id=ResourceIRI.criterion(criterion.uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('question'),
                name=LanguageMap({
                    'en-US':
                    LearningRecord.trim_text_to_size_limit(criterion.name)
                })))
        if criterion.description:
            activity.definition.description = LanguageMap({
                'en-US':
                LearningRecord.trim_text_to_size_limit(criterion.description)
            })

        return activity
示例#9
0
 def answer_comment(cls, answer_comment):
     return caliper.entities.Comment(
         id=ResourceIRI.answer_comment(answer_comment.course_uuid,
                                       answer_comment.assignment_uuid,
                                       answer_comment.answer_uuid,
                                       answer_comment.uuid),
         commenter=CaliperActor.generate_actor(answer_comment.user),
         commentedOn=CaliperEntities.answer(answer_comment.answer),
         value=LearningRecord.trim_text_to_size_limit(
             answer_comment.content),
         dateCreated=answer_comment.created.replace(
             tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
         dateModified=answer_comment.modified.replace(
             tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
         extensions={
             "type":
             answer_comment.comment_type.value,
             "isDraft":
             answer_comment.draft,
             "characterCount":
             LearningRecord.character_count(answer_comment.content)
             if answer_comment.content else 0,
             "wordCount":
             LearningRecord.word_count(answer_comment.content)
             if answer_comment.content else 0
         })
示例#10
0
    def assignment_question(cls, assignment):
        ret = {
            "id": ResourceIRI.assignment_question(assignment.course_uuid, assignment.uuid),
            "type": CALIPER_ENTITY_TYPES["ASSESSMENT_ITEM"],
            "name": LearningRecord.trim_text_to_size_limit(assignment.name),
            "dateToStartOn": assignment.answer_start.replace(tzinfo=pytz.utc).isoformat(),
            "dateToSubmit": assignment.answer_end.replace(tzinfo=pytz.utc).isoformat(),
            "isPartOf": CaliperEntities.assignment(assignment),
            "dateCreated": assignment.created.replace(tzinfo=pytz.utc).isoformat(),
            "dateModified": assignment.modified.replace(tzinfo=pytz.utc).isoformat()
        }

        if assignment.description:
            ret["description"] = LearningRecord.trim_text_to_size_limit(assignment.description)

        return ret
示例#11
0
    def self_evaluation_question(cls, assignment):
        dateToStartOn = assignment.answer_end.replace(
            tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
        dateToSubmit = None
        description = None
        if assignment.self_eval_start and assignment.self_eval_end:
            dateToStartOn = assignment.self_eval_start.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
            dateToSubmit = assignment.self_eval_end.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
        elif assignment.compare_start and assignment.compare_end:
            dateToStartOn = assignment.answer_end.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'

        if assignment.self_eval_instructions:
            description = LearningRecord.trim_text_to_size_limit(
                assignment.self_eval_instructions)

        return caliper.entities.AssessmentItem(
            id=ResourceIRI.self_evaluation_question(assignment.course_uuid,
                                                    assignment.uuid),
            name="Assignment self-evaluation",
            description=description,
            dateToStartOn=dateToStartOn,
            dateToSubmit=dateToSubmit,
            isPartOf=CaliperEntities.assignment(assignment),
            dateCreated=assignment.created.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
            dateModified=assignment.modified.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z')
示例#12
0
    def evaluation_question(cls, assignment, evaluation_number):
        dateToStartOn = assignment.answer_end.replace(
            tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
        dateToSubmit = None
        description = None
        if assignment.compare_start and assignment.compare_end:
            dateToStartOn = assignment.compare_start.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
            dateToSubmit = assignment.compare_end.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'

        if assignment.peer_feedback_prompt:
            description = LearningRecord.trim_text_to_size_limit(
                assignment.peer_feedback_prompt)

        return caliper.entities.AssessmentItem(
            id=ResourceIRI.evaluation_question(assignment.course_uuid,
                                               assignment.uuid,
                                               evaluation_number),
            name="Assignment Answer Evaluation #" + str(evaluation_number),
            description=description,
            dateToStartOn=dateToStartOn,
            dateToSubmit=dateToSubmit,
            isPartOf=CaliperEntities.assignment(assignment),
            dateCreated=assignment.created.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
            dateModified=assignment.modified.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z')
示例#13
0
    def assignment(cls, assignment):
        items = []
        description = None

        if assignment.description:
            description = LearningRecord.trim_text_to_size_limit(
                assignment.description)

        items.append(
            caliper.entities.AssessmentItem(id=ResourceIRI.assignment_question(
                assignment.course_uuid, assignment.uuid)))
        for index in range(assignment.number_of_comparisons):
            current = index + 1
            items.append(
                caliper.entities.AssessmentItem(
                    id=ResourceIRI.comparison_question(
                        assignment.course_uuid, assignment.uuid, current)))
            items.append(
                caliper.entities.AssessmentItem(
                    id=ResourceIRI.evaluation_question(
                        assignment.course_uuid, assignment.uuid, (current *
                                                                  2) - 1)))
            items.append(
                caliper.entities.AssessmentItem(
                    id=ResourceIRI.evaluation_question(
                        assignment.course_uuid, assignment.uuid, (current *
                                                                  2))))
        if assignment.enable_self_evaluation:
            items.append(
                caliper.entities.AssessmentItem(
                    id=ResourceIRI.self_evaluation_question(
                        assignment.course_uuid, assignment.uuid)))

        return caliper.entities.Assessment(
            id=ResourceIRI.assignment(assignment.course_uuid, assignment.uuid),
            name=LearningRecord.trim_text_to_size_limit(assignment.name),
            description=description,
            dateToStartOn=assignment.answer_start.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
            isPartOf=CaliperEntities.course(assignment.course),
            items=items,
            dateCreated=assignment.created.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
            dateModified=assignment.modified.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z')
示例#14
0
 def _basic_content_extension(cls, content):
     return {
         "content":
         LearningRecord.trim_text_to_size_limit(content),
         "characterCount":
         LearningRecord.character_count(content) if content else 0,
         "wordCount":
         LearningRecord.word_count(content) if content else 0
     }
示例#15
0
文件: object.py 项目: ubc/acj-versus
    def course(cls, course):
        activity = Activity(
            id=ResourceIRI.course(course.uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('course'),
                name=LanguageMap({ 'en-US': LearningRecord.trim_text_to_size_limit(course.name) })
            )
        )

        return activity
示例#16
0
    def assignment(cls, assignment):
        ret = {
            "id": ResourceIRI.assignment(assignment.course_uuid, assignment.uuid),
            "type": CALIPER_ENTITY_TYPES["ASSESSMENT"],
            "name": LearningRecord.trim_text_to_size_limit(assignment.name),
            "dateToStartOn": assignment.answer_start.replace(tzinfo=pytz.utc).isoformat(),
            "isPartOf": CaliperEntities.course(assignment.course),
            "items": [],
            "dateCreated": assignment.created.replace(tzinfo=pytz.utc).isoformat(),
            "dateModified": assignment.modified.replace(tzinfo=pytz.utc).isoformat()
        }

        ret["items"].append({
            "id": ResourceIRI.assignment_question(assignment.course_uuid, assignment.uuid),
            "type": CALIPER_ENTITY_TYPES["ASSESSMENT_ITEM"]
        })

        for index in range(assignment.number_of_comparisons):
            current = index + 1
            ret["items"].append({
                "id": ResourceIRI.comparison_question(assignment.course_uuid, assignment.uuid, current),
                "type": CALIPER_ENTITY_TYPES["ASSESSMENT_ITEM"]
            })
            ret["items"].append({
                "id": ResourceIRI.evaluation_question(assignment.course_uuid, assignment.uuid, (current * 2) - 1),
                "type": CALIPER_ENTITY_TYPES["ASSESSMENT_ITEM"]
            })
            ret["items"].append({
                "id": ResourceIRI.evaluation_question(assignment.course_uuid, assignment.uuid, (current * 2)),
                "type": CALIPER_ENTITY_TYPES["ASSESSMENT_ITEM"]
            })

        if assignment.enable_self_evaluation:
            ret["items"].append({
                "id": ResourceIRI.self_evaluation_question(assignment.course_uuid, assignment.uuid),
                "type": CALIPER_ENTITY_TYPES["ASSESSMENT_ITEM"]
            })

        if assignment.description:
            ret["description"] = LearningRecord.trim_text_to_size_limit(assignment.description)

        return ret
示例#17
0
    def course(cls, course):
        activity = Activity(id=ResourceIRI.course(course.uuid),
                            definition=ActivityDefinition(
                                type=XAPIActivity.activity_types.get('course'),
                                name=LanguageMap({
                                    'en-US':
                                    LearningRecord.trim_text_to_size_limit(
                                        course.name)
                                })))

        return activity
示例#18
0
    def assignment_question(cls, assignment):
        description = None
        if assignment.description:
            description = LearningRecord.trim_text_to_size_limit(
                assignment.description)

        return caliper.entities.AssessmentItem(
            id=ResourceIRI.assignment_question(assignment.course_uuid,
                                               assignment.uuid),
            name=LearningRecord.trim_text_to_size_limit(assignment.name),
            description=description,
            dateToStartOn=assignment.answer_start.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
            dateToSubmit=assignment.answer_end.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
            isPartOf=CaliperEntities.assignment(assignment),
            dateCreated=assignment.created.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z',
            dateModified=assignment.modified.replace(
                tzinfo=pytz.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z')
示例#19
0
文件: object.py 项目: ubc/acj-versus
    def self_evaluation_attempt(cls, answer_comment):
        activity = Activity(
            id=ResourceIRI.self_evaluation_attempt(answer_comment.course_uuid, answer_comment.assignment_uuid,
                answer_comment.attempt_uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('attempt'),
                description=LanguageMap({ 'en-US': LearningRecord.trim_text_to_size_limit(answer_comment.content) }),
                extensions=Extensions()
            )
        )
        activity.definition.extensions["http://id.tincanapi.com/extension/attempt"] = cls._basic_attempt(answer_comment)

        return activity
示例#20
0
文件: result.py 项目: ubc/compair
    def basic_content(cls, content, **kwargs):
        result = cls.basic(**kwargs)

        if content:
            result.response = LearningRecord.trim_text_to_size_limit(content)
            result.extensions = Extensions() if not result.extensions else result.extensions

            character_count = LearningRecord.character_count(content)
            result.extensions['http://xapi.learninganalytics.ubc.ca/extension/character-count'] = character_count

            word_count = LearningRecord.word_count(content)
            result.extensions['http://xapi.learninganalytics.ubc.ca/extension/word-count'] = word_count

        return result
示例#21
0
文件: object.py 项目: ubc/acj-versus
    def evaluation_response(cls, answer_comment):
        activity = Activity(
            id=ResourceIRI.evaluation_response(answer_comment.course_uuid, answer_comment.assignment_uuid,
                answer_comment.answer_uuid, answer_comment.uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('solution'),
                description=LanguageMap({ 'en-US': LearningRecord.trim_text_to_size_limit(answer_comment.content) }),
                extensions=Extensions()
            )
        )

        activity.definition.extensions['http://id.tincanapi.com/extension/isDraft'] = answer_comment.draft

        return activity
示例#22
0
文件: object.py 项目: ubc/acj-versus
    def evaluation_question(cls, assignment, evaluation_number):
        activity = Activity(
            id=ResourceIRI.evaluation_question(assignment.course_uuid, assignment.uuid, evaluation_number),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('question'),
                name=LanguageMap({ 'en-US': "Assignment Answer Evaluation #"+str(evaluation_number) }),
            )
        )
        if assignment.peer_feedback_prompt:
            activity.definition.description = LanguageMap({
                'en-US': LearningRecord.trim_text_to_size_limit(assignment.peer_feedback_prompt)
            })

        return activity
示例#23
0
文件: object.py 项目: ubc/compair
    def group(cls, group):
        activity = Activity(
            id=ResourceIRI.group(group.course_uuid, group.uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('group'),
                name=LanguageMap({
                    'en-US':
                    LearningRecord.trim_text_to_size_limit(group.name)
                }),
                extensions=Extensions()))
        activity.definition.extensions[
            'http://id.tincanapi.com/extension/members'] = [
                XAPIActor.generate_actor(uc.user)
                for uc in group.user_courses.all()
            ]

        return activity
示例#24
0
    def self_evaluation_attempt(cls, answer_comment):
        activity = Activity(
            id=ResourceIRI.self_evaluation_attempt(
                answer_comment.course_uuid, answer_comment.assignment_uuid,
                answer_comment.attempt_uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('attempt'),
                description=LanguageMap({
                    'en-US':
                    LearningRecord.trim_text_to_size_limit(
                        answer_comment.content)
                }),
                extensions=Extensions()))
        activity.definition.extensions[
            "http://id.tincanapi.com/extension/attempt"] = cls._basic_attempt(
                answer_comment)

        return activity
示例#25
0
 def answer_comment(cls, answer_comment):
     #TODO: this isn't in the Caliper spec yet
     return {
         "id": ResourceIRI.answer_comment(answer_comment.course_uuid, answer_comment.assignment_uuid,
             answer_comment.answer_uuid, answer_comment.uuid),
         "type": "Comment",
         "commenter": CaliperActor.generate_actor(answer_comment.user),
         "commented": CaliperEntities.answer(answer_comment.answer),
         "value": LearningRecord.trim_text_to_size_limit(answer_comment.content),
         "dateCreated": answer_comment.created.replace(tzinfo=pytz.utc).isoformat(),
         "dateModified": answer_comment.modified.replace(tzinfo=pytz.utc).isoformat(),
         "extensions": {
             "type": answer_comment.comment_type.value,
             "isDraft": answer_comment.draft,
             "characterCount": LearningRecord.character_count(answer_comment.content) if answer_comment.content else 0,
             "wordCount": LearningRecord.word_count(answer_comment.content) if answer_comment.content else 0
         }
     }
示例#26
0
    def evaluation_response(cls, answer_comment):
        activity = Activity(
            id=ResourceIRI.evaluation_response(answer_comment.course_uuid,
                                               answer_comment.assignment_uuid,
                                               answer_comment.answer_uuid,
                                               answer_comment.uuid),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('solution'),
                description=LanguageMap({
                    'en-US':
                    LearningRecord.trim_text_to_size_limit(
                        answer_comment.content)
                }),
                extensions=Extensions()))

        activity.definition.extensions[
            'http://id.tincanapi.com/extension/isDraft'] = answer_comment.draft

        return activity
示例#27
0
    def evaluation_question(cls, assignment, evaluation_number):
        activity = Activity(
            id=ResourceIRI.evaluation_question(assignment.course_uuid,
                                               assignment.uuid,
                                               evaluation_number),
            definition=ActivityDefinition(
                type=XAPIActivity.activity_types.get('question'),
                name=LanguageMap({
                    'en-US':
                    "Assignment Answer Evaluation #" + str(evaluation_number)
                }),
            ))
        if assignment.peer_feedback_prompt:
            activity.definition.description = LanguageMap({
                'en-US':
                LearningRecord.trim_text_to_size_limit(
                    assignment.peer_feedback_prompt)
            })

        return activity
示例#28
0
    def evaluation_question(cls, assignment, evaluation_number):
        ret = {
            "id": ResourceIRI.evaluation_question(assignment.course_uuid, assignment.uuid, evaluation_number),
            "type": CALIPER_ENTITY_TYPES["ASSESSMENT_ITEM"],
            "name": "Assignment Answer Evaluation #"+str(evaluation_number),
            "isPartOf": CaliperEntities.assignment(assignment),
            "dateCreated": assignment.created.replace(tzinfo=pytz.utc).isoformat(),
            "dateModified": assignment.modified.replace(tzinfo=pytz.utc).isoformat()
        }

        if assignment.compare_start and assignment.compare_end:
            ret["dateToStartOn"] = assignment.compare_start.replace(tzinfo=pytz.utc).isoformat()
            ret["dateToSubmit"] = assignment.compare_end.replace(tzinfo=pytz.utc).isoformat()
        else:
            ret["dateToStartOn"] = assignment.answer_end.replace(tzinfo=pytz.utc).isoformat()

        if assignment.peer_feedback_prompt:
            ret["description"] = LearningRecord.trim_text_to_size_limit(assignment.peer_feedback_prompt)

        return ret
示例#29
0
    def self_evaluation_question(cls, assignment):
        ret = {
            "id": ResourceIRI.self_evaluation_question(assignment.course_uuid, assignment.uuid),
            "type": CALIPER_ENTITY_TYPES["ASSESSMENT_ITEM"],
            "name": "Assignment self-evaluation",
            "isPartOf": CaliperEntities.assignment(assignment),
            "dateCreated": assignment.created.replace(tzinfo=pytz.utc).isoformat(),
            "dateModified": assignment.modified.replace(tzinfo=pytz.utc).isoformat(),
        }

        if assignment.self_eval_instructions:
            ret["description"] = LearningRecord.trim_text_to_size_limit(assignment.self_eval_instructions)

        if assignment.self_eval_start and assignment.self_eval_end:
            ret["dateToStartOn"] = assignment.self_eval_start.replace(tzinfo=pytz.utc).isoformat()
            ret["dateToSubmit"] = assignment.self_eval_end.replace(tzinfo=pytz.utc).isoformat()
        elif assignment.compare_start and assignment.compare_end:
            ret["dateToStartOn"] = assignment.answer_end.replace(tzinfo=pytz.utc).isoformat()
        else:
            ret["dateToStartOn"] = assignment.answer_end.replace(tzinfo=pytz.utc).isoformat()

        return ret
示例#30
0
 def _basic_content_extension(cls, content):
     return {
         "content": LearningRecord.trim_text_to_size_limit(content),
         "characterCount": LearningRecord.character_count(content) if content else 0,
         "wordCount": LearningRecord.word_count(content) if content else 0
     }