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)
评论列表
文章目录