Example #1
0
    def serialize(self, request, *args, **kwargs):
        serialized = super(IndexView, self).serialize(request)

        student_set = Student.objects.filter().order_by('number')  # 获取所有学生信息
        student_data = StudentSerializer(  # 序列化所有学生信息
            student_set, many=True, context={'request': request})

        appeal_set = Appeal.objects.filter().order_by(
            'is_checked', '-created')  # 获取在公示期内的所有申诉
        appeal_data = AppealSerializer(  # 序列化申诉
            appeal_set, many=True, context={'request': request})
        appeals = appeal_data.data
        for appeal in appeals:
            appeal['created'] = tools.DateTime2String_SHOW(
                tools.TZString2DateTime(appeal['created']))

        application_set = Application.objects.filter(  # 获取所有申请,
        ).order_by('is_checked', '-created')  # 按时间的倒序排序
        application_data = ApplicationSerializer(  # 序列化所有申请
            application_set,
            many=True,
            context={'request': request})
        applications = application_data.data
        for application in applications:
            application['created'] = tools.DateTime2String_SHOW(
                tools.TZString2DateTime(application['created']))

        activity_set = Activity.objects.filter(owner=request.user).order_by(
            '-created')  # 获取所有当前管理员创建的活动
        activity_data = ActivityForAdminSerializer(  # 序列化所有所有当前管理员创建的活动
            activity_set,
            many=True,
            context={'request': request})
        activities = activity_data.data
        for activity in activities:
            activity['date'] = tools.Date2String_SHOW(
                tools.TZString2DateTime(activity['date']))
            for publicity in activity['publicities']:
                publicity['begin'] = tools.DateTime2String_SHOW(
                    tools.TZString2DateTime(publicity['begin']))
                publicity['end'] = tools.DateTime2String_SHOW(
                    tools.TZString2DateTime(publicity['end']))

        serialized.update({
            'appeals': appeals,
            'applications': applications,
            'students': student_data.data,
            'activities': activities,
        })
        return serialized
Example #2
0
 def serialize(self, request, *args, **kwargs):
     publicity_id = kwargs['pk']
     publicity = Publicity.objects.get(id=publicity_id)
     activity = publicity.activity
     serialized = super(ChangePublicityView, self).serialize(request)
     serializer = PublicityWithActivitySerializer(
         instance=publicity, context={'request': request})
     extra_data = {}
     extra_data['begin'] = tools.DateTime2String_VALUE(
         tools.TZString2DateTime(serializer.data['begin']))
     extra_data['end'] = tools.DateTime2String_VALUE(
         tools.TZString2DateTime(serializer.data['end']))
     serialized.update({
         'activity': activity,
         'serializer': serializer,
         'extra_data': extra_data
     })
     return serialized
Example #3
0
    def serialize(self, request, *args, **kwargs):
        activity_id = kwargs['pk']
        activity = Activity.objects.get(id=activity_id)
        serialized = super(ManagePublicityView, self).serialize(request)
        publicity_set = Publicity.objects.filter(  # 获取该活动的所有公示
            activity=activity).order_by('-is_published', '-created')
        publicity_data = PublicitySerializer(  # 序列化公示
            publicity_set, many=True, context={'request': request})
        for publicity in publicity_data.data:
            publicity['created'] = tools.DateTime2String_SHOW(
                tools.TZString2DateTime(publicity['created']))
            publicity['begin'] = tools.DateTime2String_SHOW(
                tools.TZString2DateTime(publicity['begin']))
            publicity['end'] = tools.DateTime2String_SHOW(
                tools.TZString2DateTime(publicity['end']))

        serialized.update({
            'activity': activity,
            'publicities': publicity_data.data,
        })
        return serialized
Example #4
0
 def get_extra_data(self, serializer):
     extra_data = {}
     extra_data['date'] = tools.DateTime2String_VALUE(
         tools.TZString2DateTime(serializer.data['date']))
     return extra_data
Example #5
0
    def serialize(self, request, *args, **kwargs):
        serialized = super(IndexView, self).serialize(request)

        user = request.user

        publicity_set = Publicity.objects.filter(  # 获取在公示期内的所有公示
            is_published=True,
            begin__lte=timezone.now(),
            end__gte=timezone.now())
        publicity_data = PublicitySerializer(  # 序列化公示
            publicity_set, many=True, context={'request': request})

        publicities = publicity_data.data
        for publicity in publicities:
            publicity['begin'] = tools.DateTime2String_SHOW(
                tools.TZString2DateTime(publicity['begin']))
            publicity['end'] = tools.DateTime2String_SHOW(
                tools.TZString2DateTime(publicity['end']))

        # print(publicities)

        application_data = ApplicationSerializer(  # 序列化当前用户的所有申请
            user.applications,
            many=True,
            context={'request': request})

        applications = application_data.data
        for application in applications:
            application['created'] = tools.DateTime2String_SHOW(
                tools.TZString2DateTime(application['created']))

        serialized.update({
            'publicities': publicities,
            'applications': applications
        })

        if hasattr(user, 'student'):  # 判断当前用户是否为学生
            student = user.student

            sua_data = SuaSerializer(  # 序列化当前学生的所有公益时记录
                student.suas.filter(is_valid=True),
                many=True,
                context={'request': request})

            suas = sua_data.data
            for sua in suas:
                sua['activity']['date'] = tools.Date2String_SHOW(
                    tools.TZString2Date(sua['activity']['date']))

            appeal_data = AppealSerializer(  # 序列化当前学生的所有申诉
                student.appeals,
                many=True,
                context={'request': request})

            appeals = appeal_data.data
            for appeal in appeals:
                appeal['created'] = tools.DateTime2String_SHOW(
                    tools.TZString2DateTime(appeal['created']))

            serialized.update({
                'suas': sua_data.data,
                'appeals': appeal_data.data
            })

        return serialized