views.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:AttendanceSystem 作者: HeerKirov 项目源码 文件源码
def course_table(request):
    if not http_basic_auth(request):
        return HttpResponse('Unauthorized.', status=401)
    if request.method == 'GET':
        auth_number = request.user.authority.auth
        if has_auth(auth_number, AuthorityName.Student):
            courses = models.Course.objects.filter(as_student_set=request.user.as_student)
        elif has_auth(auth_number, AuthorityName.Teacher):
            courses = models.Course.objects.filter(teacher=request.user.as_teacher)
        else:
            return HttpResponse('Permission Denied.', status=403)
        params = request.GET  # ????
        if 'year' in params:
            courses = courses.filter(year=params['year'])
        if 'term' in params:
            courses = courses.filter(term=params['term'])
        ser = serializer.CourseTableSerializer(courses, many=True)
        course_table_json = json.loads(JSONRenderer().render(ser.data))
        # ??????????????????(?????????????/????)
        (now_year, now_month, now_day, now_hour, now_minute, now_second, _, _, _) = time.localtime(time.time())
        date_now = utils.date_to_str(now_year, now_month, now_day)
        schedules = models.SystemSchedule.objects.filter(begin__lte=date_now).filter(end__gte=date_now)
        if schedules:
            schedule = schedules.first()
            items = models.SystemScheduleItem.objects.filter(system_schedule=schedule).order_by('no')
            schedule_data = {
                'count': items.count(),
                'items': [
                    {
                        'begin': utils.time_to_str(item.begin.hour, item.begin.minute, item.begin.second),
                        'end': utils.time_to_str(item.end.hour, item.end.minute, item.end.second),
                        'no': item.no,
                    } for item in items
                ]
            }
        else:
            schedule_data = {
                'count': 0,
                'items': []
            }
        # ??????json???
        data = {
            'count': schedule_data['count'],
            'schedule_items': schedule_data['items'],
            'course_items': course_table_json,
        }
        return HttpResponse(json.dumps(data), status=200)
    else:
        return HttpResponse('Method Not Allowed', status=405)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号