当前位置: 首页>>代码示例>>Python>>正文


Python APIDB.get_course_subscribers方法代码示例

本文整理汇总了Python中api_db_utils.APIDB.get_course_subscribers方法的典型用法代码示例。如果您正苦于以下问题:Python APIDB.get_course_subscribers方法的具体用法?Python APIDB.get_course_subscribers怎么用?Python APIDB.get_course_subscribers使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在api_db_utils.APIDB的用法示例。


在下文中一共展示了APIDB.get_course_subscribers方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: coach_course_session_list

# 需要导入模块: from api_db_utils import APIDB [as 别名]
# 或者: from api_db_utils.APIDB import get_course_subscribers [as 别名]
def coach_course_session_list(req, uskey_course):
    """
    ``GET`` @ |ca| +  ``/course/<uskey_course>/sessions``

    List of the sessions of a course. |uroleOT|
    """
    course = req.model
    j_req = json_from_paginated_request(req, (('status', None), ('type', None),
                                              ('from', None),
                                              ('to', None)))
    # date_to_js_timestamp(datetime.datetime.now())))
    page = int(j_req['page'])
    size = int(j_req['size'])
    status = j_req['status']
    try:
        date_from = datetime.datetime.fromtimestamp(long(j_req['from']) / 1000)
    except Exception as e:
        date_from = None
    try:
        date_to = datetime.datetime.fromtimestamp(long(j_req['to']) / 1000)
    except Exception as e:
        date_to = None

        # raise BadParameters("Problems with the data format %s" % e.message)
    session_type = j_req['type']

    sessions, total = APIDB.get_course_sessions(course, date_from=date_from, date_to=date_to, session_type=session_type,
                                                status=status,
                                                paginated=True, page=page, size=size)
    res_list = []
    for session in sessions:
        res_obj = session.to_dict()
        res_obj['status'] = session.status
        # res_obj['participated'] = APIDB.user_participated_in_session(req.user, session)
        session_participations = APIDB.get_session_participations(session, count_only=True)
        course_subscribers = APIDB.get_course_subscribers(course, count_only=True)
        res_obj['participation_count'] = session_participations
        if course_subscribers:
            res_obj['participation_percent'] = 100 * (float(session_participations) / float(course_subscribers))
        else:
            res_obj['participation_percent'] = 0
        # res_obj['actnoivity_count'] = session.activity_count
        # TODO: check the 'url' here
        allowed = ['id', 'name', 'status', 'participation_count',
                   'session_type', 'participation_percent', 'max_level', 'profile']
        course_type = session.course.get().course_type
        if course_type == "SCHEDULED":
            allowed += ["start_date", "end_date"]
        elif course_type == "PROGRAM":
            allowed += ["week_no", "day_no"]
        res_list.append(sanitize_json(res_obj, allowed=allowed))

    return dict(total=total, results=res_list)
开发者ID:gymcentral,项目名称:gymcentral,代码行数:55,代码来源:api_coach.py

示例2: trainee_course_subscribers_list

# 需要导入模块: from api_db_utils import APIDB [as 别名]
# 或者: from api_db_utils.APIDB import get_course_subscribers [as 别名]
def trainee_course_subscribers_list(req, uskey_course):
    """
    ``GET`` @ |ta| +  ``/courses/<uskey_course>/subscribers``

    List of the subscribers of a course. |uroleM|
    """
    # TODO: test
    course = req.model
    j_req = json_from_paginated_request(req)
    page = int(j_req['page'])
    size = int(j_req['size'])
    subscribers, total = APIDB.get_course_subscribers(course, paginated=True, page=page, size=size)
    ret = dict(results=sanitize_list(subscribers, allowed=["id", "nickname", "avatar"]), total=total)
    return ret
开发者ID:gymcentral,项目名称:gymcentral,代码行数:16,代码来源:api_trainee.py

示例3: trainee_course_detail

# 需要导入模块: from api_db_utils import APIDB [as 别名]
# 或者: from api_db_utils.APIDB import get_course_subscribers [as 别名]
def trainee_course_detail(req, uskey_course):
    """
    ``GET`` @ |ta| +  ``/courses/<uskey_course>``

    Detail of a course. |uroleM|
    """
    course = req.model
    j_course = course.to_dict()
    j_course["trainers"] = sanitize_list(APIDB.get_course_trainers(course), allowed=["id", "name", "picture"])
    j_course["subscriber_count"] = APIDB.get_course_subscribers(course, count_only=True)
    j_course["session_count"] = APIDB.get_course_sessions(course, count_only=True)
    allowed = ["id", "name", "description", "trainers", "subscriber_count", "session_count", "course_type"]
    if course.course_type == "SCHEDULED":
        allowed += ["start_date", "end_date"]
    elif course.course_type == "PROGRAM":
        allowed += ["week_no", "day_no"]
    return sanitize_json(j_course, allowed=allowed)
开发者ID:gymcentral,项目名称:gymcentral,代码行数:19,代码来源:api_trainee.py

示例4: coach_course_subscribers

# 需要导入模块: from api_db_utils import APIDB [as 别名]
# 或者: from api_db_utils.APIDB import get_course_subscribers [as 别名]
def coach_course_subscribers(req, uskey_course):
    """
    ``GET`` @ |ca| +  ``/courses/<uskey_course>/subscribers``

    List of the subscribers of a course. |uroleOT|
    """
    course = req.model
    j_req = json_from_paginated_request(req)
    page = int(j_req['page'])
    size = int(j_req['size'])
    # the merge field is used later
    subscribers, total = APIDB.get_course_subscribers(course, paginated=True, page=page, size=size,
                                                      merge="subscription")
    res = []
    for subscriber in subscribers:
        res_subscriber = sanitize_json(subscriber, allowed=['id', 'name', 'picture', 'nickname'])
        # get the "merged" field and append it to the main object.
        res_subscription = sanitize_json(subscriber.subscription,
                                         allowed=['id', 'profile_level'])
        res_subscription['user'] = res_subscriber
        res.append(res_subscription)
    return dict(results=res, total=total)
开发者ID:gymcentral,项目名称:gymcentral,代码行数:24,代码来源:api_coach.py

示例5: coach_course_list

# 需要导入模块: from api_db_utils import APIDB [as 别名]
# 或者: from api_db_utils.APIDB import get_course_subscribers [as 别名]
def coach_course_list(req, uskey_club):
    """
    ``GET`` @ |ca| +  ``/clubs/<uskey_club>/courses``

    List of the courses of a club. |uroleOT|
    """
    club = req.model
    j_req = json_from_paginated_request(req, (('courseType', None), ('activeOnly', None),))
    page = int(j_req['page'])
    size = int(j_req['size'])
    course_type = j_req['courseType']
    active_only = j_req['activeOnly'] == "true"
    courses, total = APIDB.get_club_courses(club, course_type=course_type, active_only=active_only,
                                            paginated=True, page=page, size=size)
    res_courses = []
    for course in courses:
        j_course = course.to_dict()
        j_course["trainers"] = sanitize_list(APIDB.get_course_trainers(course), allowed=["id", "name", "picture"])
        j_course["subscriber_count"] = APIDB.get_course_subscribers(course, count_only=True)
        sessions_total = APIDB.get_course_sessions(course)
        j_course['session_count'] = len(sessions_total)
        sessions_finished = [session for session in sessions_total if session.status == "FINISHED"]
        # logger.debug("%s %s %s", len(sessions_total), len(sessions_finished),long(sessions_finished)/long(sessions_total) * 100 )
        if len(sessions_total) > 0:
            j_course['completeness'] = long(len(sessions_finished)) / long(len(sessions_total)) * 100
        else:
            j_course['completeness'] = 0
        allowed = ["id", "name", "description", "trainers", "subscriber_count", "session_count", "course_type",
                   "completeness", "profile", "max_level"]
        if course.course_type == "SCHEDULED":
            allowed += ["start_date", "end_date"]
        elif course.course_type == "PROGRAM":
            allowed += ["duration"]
        res_course = sanitize_json(j_course, allowed=allowed)
        res_courses.append(res_course)
    ret = {}
    ret['results'] = res_courses
    ret['total'] = total
    return ret
开发者ID:gymcentral,项目名称:gymcentral,代码行数:41,代码来源:api_coach.py

示例6: trainee_course_list

# 需要导入模块: from api_db_utils import APIDB [as 别名]
# 或者: from api_db_utils.APIDB import get_course_subscribers [as 别名]
def trainee_course_list(req, uskey_club):
    """
    ``GET`` @ |ta| +  ``/clubs/<uskey_club>/courses``

    List of the courses of a club
    """
    club = req.model
    j_req = json_from_paginated_request(req, (('course_type', None), 'activeOnly', ('subscribed', False)))
    page = int(j_req['page'])
    size = int(j_req['size'])
    course_type = j_req['course_type']
    active_only = j_req['activeOnly'] == "True"
    subscribed = j_req['subscribed'] == "True"

    if subscribed:
        courses, total = APIDB.get_club_courses_im_subscribed_to(club, course_type=course_type, active_only=active_only,
                                                                 paginated=True, page=page, size=size)
    else:
        courses, total = APIDB.get_club_courses(club, course_type=course_type, active_only=active_only,
                                                paginated=True, page=page, size=size)
    res_courses = []
    for course in courses:
        j_course = course.to_dict()
        j_course["trainers"] = sanitize_list(APIDB.get_course_trainers(course), allowed=["id", "name", "picture"])
        j_course["subscriber_count"] = APIDB.get_course_subscribers(course, count_only=True)
        j_course["session_count"] = APIDB.get_course_sessions(course, count_only=True)

        allowed = ["id", "name", "description", "trainers", "subscriber_count", "session_count", "course_type"]
        if course.course_type == "SCHEDULED":
            allowed += ["start_date", "end_date"]
        elif course.course_type == "PROGRAM":
            allowed += ["week_no", "day_no"]
        res_course = sanitize_json(j_course, allowed=allowed)
        res_courses.append(res_course)
    ret = {}
    ret['results'] = res_courses
    ret['total'] = total
    return ret
开发者ID:gymcentral,项目名称:gymcentral,代码行数:40,代码来源:api_trainee.py

示例7: coach_course_detail

# 需要导入模块: from api_db_utils import APIDB [as 别名]
# 或者: from api_db_utils.APIDB import get_course_subscribers [as 别名]
def coach_course_detail(req, uskey_course):
    """
    ``GET`` @ |ca| +  ``/courses/<uskey_course>``

    Detail of a course. |uroleOT|
    """
    course = req.model
    j_course = course.to_dict()
    j_course['trainers'] = sanitize_list(APIDB.get_course_trainers(course), allowed=['id', 'name', 'picture'])
    j_course['subscriber_count'] = APIDB.get_course_subscribers(course, count_only=True)
    # the filter on status does not work, this is an "expensive" workaround
    sessions_total = APIDB.get_course_sessions(course)
    j_course['session_count'] = len(sessions_total)
    sessions_finished = [session for session in sessions_total if session.status == "FINISHED"]
    # logger.debug("%s %s %s", len(sessions_total), len(sessions_finished),long(sessions_finished)/long(sessions_total) * 100 )
    if len(sessions_total) > 0:
        j_course['completeness'] = long(len(sessions_finished)) / long(len(sessions_total)) * 100
    else:
        j_course['completeness'] = 0
    return sanitize_json(j_course, ['id', 'name', 'description', 'start_date', 'end_date', 'duration',
                                    'trainers', 'course_type', 'subscriber_count', 'session_count', 'completeness',
                                    "profile", 'max_level'],
                         except_on_missing=False)
开发者ID:gymcentral,项目名称:gymcentral,代码行数:25,代码来源:api_coach.py


注:本文中的api_db_utils.APIDB.get_course_subscribers方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。