def message_list(request, message_flag, template='message/message_list.html', extra_context=None): receive_messages = [] send_messages = [] trash_messages = [] if message_flag == 'outbox': send_messages = Message.objects.filter(sender=request.user, sender_deleted_at__isnull=True) elif message_flag == 'trash': trash_messages = Message.objects.filter( Q(recipient=request.user, recipient_deleted_at__isnull=False) | Q(sender=request.user, sender_deleted_at__isnull=False)) else: receive_messages = Message.objects.filter(recipient=request.user, recipient_deleted_at__isnull=True) receive_paginator = get_page(request, receive_messages, 10) send_paginator = get_page(request, send_messages, 10) trash_paginator = get_page(request, trash_messages, 10) context = { 'receive_paginator': receive_paginator, 'send_paginator': send_paginator, 'trash_paginator': trash_paginator, 'message_flag': message_flag, } if extra_context: context.update(extra_context) return render_to_response(template, context, context_instance=RequestContext(request))
def get_admin_log(request): """获取管理员操作日志 **示例URL** .. code-block:: html http://localhost/api/v1/admin/backstage/log-management/get-admin-log/ **传入参数/方法** ============== ==== ==================== 参数 方法 说明 ============== ==== ==================== admin_username GET 筛选参数:管理员名称 filters GET 筛选参数:查询项 page GET 当前页码 page_limit GET 每页最大显示数量 ============== ==== ==================== **返回值** HTTP200 .. code-block:: javascript { count: 2, // 总条目数 page: 1, // 当前页码 num_pages: 2, // 总页码数 content: [ { admin_log_id: 1, // 日志ID created_at: '2018-08-31 16:46:44.794596+00:00', // 创建日期 admin_username: '******', // 管理员名称 message: '...' // 日志内容 }, ... ] } """ admin_username = request.GET.get('admin_username', '') start_timestamp = request.GET.get('start_timestamp', round(time.time())) end_timestamp = request.GET.get('end_timestamp', round(time.time())) filters = request.GET.getlist('filters', []) start_date_time = datetime.fromtimestamp(int(start_timestamp), tz=pytz.utc) end_date_time = datetime.fromtimestamp(int(end_timestamp), tz=pytz.utc) admin_logs = AdminLog.objects.filter( admin_user__username__contains=admin_username, created_at__gte=start_date_time, created_at__lte=end_date_time, action_type__in=filters).order_by('-created_at') return get_page(request, admin_logs)
def research_list(request, study_type="all", template="participant/research_list.html", extra_context=None): if request.method == "POST": q = request.POST.get("q", "") research_list = RelatedSearchQuerySet().filter(context=AutoQuery(q)).load_all() if study_type == "ol": research_list = research_list.load_all_queryset( Research, Research.objects.filter(is_on_web=True, is_publish=True, is_complete=False) .exclude(participantresearch__participant=request.user) .exclude(scientistresearch__scientist=request.user), ) elif study_type == "nol" or study_type == "nol_map": research_list = research_list.load_all_queryset( Research, Research.objects.filter(is_on_web=False, is_publish=True, is_complete=False) .exclude(participantresearch__participant=request.user) .exclude(scientistresearch__scientist=request.user), ) elif study_type == "all": research_list = research_list.load_all_queryset( Research, Research.objects.filter(is_publish=True, is_complete=False) .exclude(participantresearch__participant=request.user) .exclude(scientistresearch__scientist=request.user), ) paginator = get_page(request, research_list, 15) context = {"study_type": study_type, "paginator": paginator, "research_list": research_list, "q": q} else: research_list = research_randomize(request, study_type) paginator = get_page(request, research_list, 15) context = {"study_type": study_type, "paginator": paginator, "research_list": research_list, "q": ""} if extra_context: context.update(extra_context) return render_to_response(template, context, context_instance=RequestContext(request))
def get_order_logs(request): """获取用户订单记录列表 **示例URL** .. code-block:: html http://localhost/api/v1/customers/forestage/personal-center/get-order-logs/ **传入参数** ========== ==== ================ 参数 方法 说明 ========== ==== ================ page GET 当前页码 page_limit GET 每页最大显示数量 ========== ==== ================ **返回值** HTTP200 .. code-block:: javascript { count: 2, // 总条数 page: 2, // 当前页码 num_pages: 1, // 总页数 content: [ { order_no: '8acf2530-ad40-11e8-83f6-7c11cb55a985', // 订单号 course_codename: 'SOFT001', // 课程代码 course_title: 'Data Structure', // 课程名 customer_username: '******', // 用户名 created_at: '2018-08-31 16:46:44.794596+00:00', // 创建时间 money: '100.00', // 成交金额 is_refunded: false // 是否已退款 }, ... ] } """ order_logs = OrderLog.objects.filter( customer=request.user ).order_by('-created_at') return get_page(request, order_logs)
def get_learning_logs(request): """获取用户学习记录列表 **示例URL** .. code-block:: html http://localhost/api/v1/customers/forestage/personal-center/get-learning-logs/ **传入参数** ========== ==== ================ 参数 方法 说明 ========== ==== ================ page GET 当前页码 page_limit GET 每页最大显示数量 ========== ==== ================ **返回值** HTTP200 .. code-block:: javascript { count: 2, // 总条数 page: 2, // 当前页码 num_pages: 1, // 总页数 content: [ { course_codename: 'SOFT001', // 课程代码 course_title: 'Data Structure', // 课程名 customer_username: '******', // 用户名 latest_learn: '2018-08-31 16:46:44.794596+00:00', // 最后学习时间 expire_time: '2018-09-01 16:46:44.794596+00:00' // 课程失效时间 }, ... ] } """ learning_logs = LearningLog.objects.filter( customer=request.user ).order_by('-latest_learn') return get_page(request, learning_logs)
def get_course_list(request): """获取课程列表 **示例URL** .. code-block:: html http://localhost/api/v1/courses/forestage/course/get-course-list/ **传入参数** =========== ==== ================ 参数 方法 说明 =========== ==== ================ course_type GET 课程类型 page GET 当前页码 page_limit GET 每页最大显示数量 =========== ==== ================ **返回值** HTTP200 .. code-block:: javascript { count: 2, // 总条数 page: 2, // 当前页码 num_pages: 1, // 总页数 content: [ { course_id: 1, // 课程ID thumbnail: 'uploads/1.png', // 缩略图 title: 'Data Structure', // 课程名 description: '...' // 简介 }, ... ] } """ course_type = request.GET.get('course_type') courses = utils.get_courses(course_type).order_by('-updated_at') return get_page(request, courses)