コード例 #1
0
class StudentsAbsencesSerializer(serializers.ModelSerializer):
    student = UserProfileBaseSerializer()

    class Meta:
        model = StudentCatalogPerYear
        fields = ('id', 'student', 'unfounded_abs_count_sem1',
                  'unfounded_abs_count_annual')
コード例 #2
0
class StudentsBehaviorGradeSerializer(serializers.ModelSerializer):
    student = UserProfileBaseSerializer()
    behavior_grade_limit = serializers.SerializerMethodField()

    class Meta:
        model = StudentCatalogPerYear
        fields = ('id', 'student', 'behavior_grade_sem1',
                  'behavior_grade_annual', 'behavior_grade_limit')

    def get_behavior_grade_limit(self, obj):
        return self.context.get('behavior_grade_limit', 6)
コード例 #3
0
    def to_representation(self, instance):
        representation = super().to_representation(instance)

        representation['categories'] = SchoolUnitCategorySerializer(
            instance.categories, many=True).data
        if instance.academic_profile:
            representation['academic_profile'] = SchoolUnitProfileSerializer(
                instance.academic_profile).data
        representation['school_principal'] = UserProfileBaseSerializer(
            instance.school_principal).data

        return representation
コード例 #4
0
class CatalogSettingsSerializer(serializers.ModelSerializer):
    id = serializers.IntegerField(required=True)
    student = UserProfileBaseSerializer(read_only=True)
    wants_level_testing_grade = serializers.BooleanField(required=True)
    wants_thesis = serializers.BooleanField(required=True)
    wants_simulation = serializers.BooleanField(required=True)

    class Meta:
        model = StudentCatalogPerSubject
        list_serializer_class = CatalogSettingsListSerializer
        fields = ('id', 'student', 'wants_level_testing_grade', 'wants_thesis',
                  'wants_simulation', 'is_exempted', 'is_enrolled')
コード例 #5
0
class StudentAtRiskSerializer(serializers.ModelSerializer):
    student = UserProfileBaseSerializer()
    behavior_grade_limit = serializers.SerializerMethodField()

    class Meta:
        model = StudentCatalogPerYear
        fields = ('id', 'student', 'avg_sem1', 'avg_final',
                  'unfounded_abs_count_sem1', 'unfounded_abs_count_annual',
                  'second_examinations_count', 'behavior_grade_sem1',
                  'behavior_grade_annual', 'behavior_grade_limit')

    def get_behavior_grade_limit(self, obj):
        return self.context.get('behavior_grade_limit', 6)
コード例 #6
0
class PupilStatisticsForSchoolEmployeeSerializer(PupilStatisticsBaseSerializer
                                                 ):
    student = UserProfileBaseSerializer()

    class Meta(PupilStatisticsBaseSerializer.Meta):
        fields = ('id', 'student', 'avg_sem1', 'avg_sem2', 'avg_final',
                  'second_examinations_count', 'unfounded_abs_count_sem1',
                  'unfounded_abs_count_sem2', 'unfounded_abs_count_annual',
                  'behavior_grade_sem1', 'behavior_grade_sem2',
                  'behavior_grade_annual', 'behavior_grade_limit', 'labels',
                  'risk_description', 'student_in_class',
                  'academic_program_name')

    def get_behavior_grade_limit(self, obj):
        return self.context.get('behavior_grade_limit', 6)
コード例 #7
0
    def get_students(obj):
        from edualert.profiles.serializers import UserProfileBaseSerializer

        academic_profile = obj.school_unit.academic_profile
        behavior_grade_limit = 8 if academic_profile and academic_profile.name in BEHAVIOR_GRADE_EXCEPTIONS_PROFILES else 6
        subjects_ids = [obj.academic_program.core_subject_id] if obj.academic_program.core_subject else []

        students = []
        for catalog in obj.student_catalogs_per_year.all().order_by(Lower('student__full_name')):
            if catalog.behavior_grade_annual < behavior_grade_limit:
                continue
            student = catalog.student
            if student.student_catalogs_per_subject.filter(Q(avg_final__isnull=True) | Q(avg_final__lt=5) | Q(avg_final__lt=6, subject__id__in=subjects_ids),
                                                           study_class_id=obj.id).count() > 0:
                continue
            students.append(student)

        return UserProfileBaseSerializer(instance=students, many=True).data
コード例 #8
0
class RegisteredSchoolUnitDetailSerializer(serializers.ModelSerializer):
    categories = SchoolUnitCategorySerializer(many=True)
    academic_profile = SchoolUnitProfileSerializer()
    school_principal = UserProfileBaseSerializer()

    class Meta:
        model = RegisteredSchoolUnit
        fields = (
            'id',
            'categories',
            'academic_profile',
            'address',
            'phone_number',
            'email',
            'district',
            'city',
            'name',
            'is_active',
            'school_principal',
        )
コード例 #9
0
 def get_class_master(obj):
     from edualert.profiles.serializers import UserProfileBaseSerializer
     return UserProfileBaseSerializer(obj.class_master).data
コード例 #10
0
 def get_teacher(obj):
     from edualert.profiles.serializers import UserProfileBaseSerializer
     return UserProfileBaseSerializer(obj.teacher).data
コード例 #11
0
    def get_students(obj):
        from edualert.profiles.serializers import UserProfileBaseSerializer

        students = [catalog.student for catalog in obj.student_catalogs_per_year.all().select_related('student').order_by(Lower('student__full_name'))]
        return UserProfileBaseSerializer(instance=students, many=True).data
コード例 #12
0
 def get_children(obj):
     return UserProfileBaseSerializer(obj.children.order_by(
         Lower('full_name')),
                                      many=True).data
コード例 #13
0
class ParentLastOnlineSerializer(serializers.ModelSerializer):
    children = UserProfileBaseSerializer(many=True)

    class Meta:
        model = UserProfile
        fields = ('id', 'full_name', 'children', 'last_online')
コード例 #14
0
class StudentsAveragesSerializer(serializers.ModelSerializer):
    student = UserProfileBaseSerializer()

    class Meta:
        model = StudentCatalogPerYear
        fields = ('id', 'student', 'avg_sem1', 'avg_final')