def _serialize_period(self, period, userobj, devilry_qualifiesforexam_enabled):
        qualifies = None

        if devilry_qualifiesforexam_enabled:
            try:
                status = Status.get_current_status(period)
            except Status.DoesNotExist:
                pass
            else:
                if status.status == Status.READY:
                    try:
                        qualification_status = status.students.get(relatedstudent__user=userobj)
                        qualifies = qualification_status.qualifies
                    except QualifiesForFinalExam.DoesNotExist:
                        pass

        return {
            'id': period.id,
            'short_name': period.short_name,
            'long_name': period.long_name,
            'start_time': format_datetime(period.start_time),
            'end_time': format_datetime(period.end_time),
            'is_active': period.is_active(),
            'is_relatedstudent': period.relatedstudent_set.filter(user=userobj).exists(),
            'qualified_forexams': qualifies,
            'assignments': MappedList()
        }
 def _serialize_assignment(self, assignment):
     return {
         'id': assignment.id,
         'short_name': assignment.short_name,
         'long_name': assignment.long_name,
         'publishing_time': format_datetime(assignment.publishing_time),
         'deadline_handling': assignment.deadline_handling,
         'anonymous': assignment.anonymous,
         'delivery_types': assignment.delivery_types,
         'groups': []
     }
 def _serialize_feedback(self, staticfeedback):
     return {'id': staticfeedback.id,
             'rendered_view': staticfeedback.rendered_view,
             'save_timestamp': format_datetime(staticfeedback.save_timestamp),
             'grade': staticfeedback.grade,
             'is_passing_grade': staticfeedback.is_passing_grade}