コード例 #1
0
def show():
    context_dict = get_app_list()
    app_id = context_dict['app_id']
    username = context_dict['username']
    app_list = context_dict['app_list']

    result_dict = get_query_list(app_id, 'province', 'city')
    provice_list = map(lambda y: y if y[-1] not in ["省", "市"] else y[0:-1],
                       filter(lambda x: x is not None, result_dict['province']))
    city_list = filter(lambda x: x is not None, result_dict['city'])

    province = map(lambda x: {'name': x[0], 'value': x[1]},
                   sorted(map(lambda x: (x, provice_list.count(x)), set(provice_list)), key=lambda x: -x[1]))
    city = map(lambda x: {'name': x[0], 'value': x[1]},
               sorted(map(lambda x: (x, city_list.count(x)), set(city_list)), key=lambda x: -x[1]))
    location = {
        'errcode': 0,
        'errmsg': 'ok',
        'data': {
            'province': province[:6],
            'city': city[:6]
        }
    }
    return render_template('dashboard/user-location.html', option=json.dumps(location),
                           app_id=app_id, app_list=app_list, username=username)
コード例 #2
0
def show():
    context_dict = get_app_list()
    app_id = context_dict['app_id']
    username = context_dict['username']
    app_list = context_dict['app_list']

    developer = Developer()
    developer.session_token = session.get('session_token')
    if request.method == 'POST':
        req_type = request.json.get('type')
        group_id = request.json.get('gourpid')

        if req_type == 'user_list':
            return json.dumps({"userNames": get_tracker_of_app(app_id, group_id=group_id)})

        uid = request.json.get('uid')
        h_start = request.json.get('h_start')
        h_end = request.json.get('h_end')
        e_start = request.json.get('e_start')
        e_end = request.json.get('e_end')
        workday = request.json.get('workday')
        ret_dict = get_attr_of_user(uid, h_start=h_start, h_end=h_end,
                                    e_start=e_start, e_end=e_end, workday=workday == 'workday')
        return bson.json_util.dumps(ret_dict)
    return render_template('dashboard/single-user-motion.html',
                           username=username, app_id=app_id, app_list=app_list)
コード例 #3
0
def show():
    context_dict = get_app_list()
    app_id = context_dict['app_id']
    username = context_dict['username']
    app_list = context_dict['app_list']

    if not app_id or app_id == '5621fb0f60b27457e863fabb':  # Demo App
        fake_data = json.load(file(join(dirname(dirname(dirname(__file__))), 'fake_data.json')))
        context_fake = fake_data.get('context')
        event_tmp = sorted(map(lambda x: (translate(translate(x, 'event_old'), 'context'), context_fake[x]),
                               context_fake.keys()), key=lambda item: -item[1])
    else:
        result_dict = get_query_list(app_id, 'event')
        event_list = filter(lambda x: x is not None, result_dict['event'])
        event_list_tmp = map(lambda item: map(lambda x: item[x],  item.keys()), event_list)
        event_list = [i for row in event_list_tmp for i in row]
        event_list = filter(lambda y: y is not None,
                            map(lambda x: translate(translate(x, 'event_old'), 'context'), event_list))
        event_tmp = sorted(map(lambda x: (x, event_list.count(x)), set(event_list)), key=lambda item: -item[1])
    data = map(lambda x: {'rank': x/3+1, 'name': event_tmp[x-1][0],
                          'count': event_tmp[x-1][1]}, xrange(1, len(set(event_tmp))+1))
    event = {
        'errcode': 0,
        'errmsg': 'ok',
        'data': data
    }
    return render_template('index.html', username=username, app_id=app_id,
                           app_list=app_list, option=json.dumps(event))
コード例 #4
0
def show():
    context_dict = get_app_list()
    app_id = context_dict["app_id"]
    username = context_dict["username"]
    app_list = context_dict["app_list"]

    if not app_id or app_id == "5621fb0f60b27457e863fabb":  # Demo App
        fake_data = json.load(file(join(dirname(dirname(dirname(__file__))), "fake_data.json")))
        static_info = fake_data.get("static_info")
        consumption_obj = static_info.get("consumption")
        hascar_obj = static_info.get("has_car")
        haspet_obj = static_info.get("has_pet")
        consum = {
            "category": map(lambda x: translate(x, "consumption"), consumption_obj.keys()),
            "series": map(lambda x: consumption_obj.get(x), consumption_obj.keys()),
        }
        car = {
            "category": map(lambda x: translate(x, "has_car"), hascar_obj.keys()),
            "series": map(lambda x: hascar_obj.get(x), hascar_obj.keys()),
        }
        pet = {
            "category": map(lambda x: translate(x, "has_pet"), haspet_obj.keys()),
            "series": map(lambda x: haspet_obj.get(x), haspet_obj.keys()),
        }
    else:
        result_dict = get_query_list(app_id, "consumption", "has_car", "has_pet")
        consumption_list = filter(lambda x: x is not None, result_dict["consumption"])
        car_list = filter(lambda x: x is not None, result_dict["has_car"])
        pet_list = filter(lambda x: x is not None, result_dict["has_pet"])
        consumption_tmp = map(
            lambda x: list(x), zip(*map(lambda x: [x, consumption_list.count(x)], set(consumption_list)))
        )
        consum = (
            {"category": map(lambda x: translate(x, "consumption"), consumption_tmp[0]), "series": consumption_tmp[1]}
            if consumption_tmp
            else {}
        )
        car = {
            "category": map(lambda x: translate(x, "has_car"), list(set(car_list))),
            "series": map(lambda x: car_list.count(x), list(set(car_list))),
        }
        pet = {
            "category": map(lambda x: translate(x, "has_pet"), list(set(pet_list))),
            "series": map(lambda x: pet_list.count(x), list(set(pet_list))),
        }

    ret_json = {"errcode": 0, "errmsg": "ok", "data": {"consumption": consum, "car": car, "pet": pet}}
    return render_template(
        "dashboard/user-consumption.html",
        option=json.dumps(ret_json),
        username=username,
        app_id=app_id,
        app_list=app_list,
    )
コード例 #5
0
def show():
    context_dict = get_app_list()
    app_id = context_dict['app_id']
    username = context_dict['username']
    app_list = context_dict['app_list']

    if not app_id or app_id == '5621fb0f60b27457e863fabb':  # Demo App
        fake_data = json.load(file(join(dirname(dirname(dirname(__file__))), 'fake_data.json')))
        static_info = fake_data.get('static_info')
        gender_obj = static_info.get('gender')
        gender = {'category': map(lambda x: translate(x, 'gender'), gender_obj.keys()),
                  'series': map(lambda x: gender_obj.get(x), gender_obj.keys())}

        age_obj = static_info.get('age')
        age = {'category': map(lambda x: translate(x, 'age'), age_obj.keys()),
               'series': map(lambda x: age_obj.get(x), age_obj.keys())}

        occupation_obj = static_info.get('occupation')
        occupation = {"category": map(lambda x: translate(x, 'occupation'), occupation_obj.keys()),
                      "series": map(lambda x: occupation_obj.get(x), occupation_obj.keys())}

        field_obj = static_info.get('field')
        field = {"category": map(lambda x: translate(x, 'field'), field_obj.keys()),
                 "series": map(lambda x: field_obj.get(x), field_obj.keys())}
    else:
        result_dict = get_query_list(app_id, 'gender', 'age', 'occupation', 'field')
        gender_list = filter(lambda x: x, result_dict.get('gender'))
        age_list = filter(lambda x: x, result_dict.get('age'))
        occupation_list = filter(lambda x: x, result_dict.get('occupation'))
        field_list = filter(lambda x: x, result_dict.get('field'))
        gender = {'category': map(lambda x: translate(x, 'gender'), list(set(gender_list))),
                  'series': map(lambda x: gender_list.count(x), list(set(gender_list)))}
        age = {'category': map(lambda x: translate(x, 'age'), list(set(age_list))),
               'series': map(lambda x: age_list.count(x), list(set(age_list)))}

        occupation_tmp = map(lambda x: list(x), zip(*map(lambda x: [x, occupation_list.count(x)],
                                                         filter(lambda x: str(x) != '', set(occupation_list)))))
        occupation = {"category": map(lambda x: translate(x, 'occupation') or '', occupation_tmp[0]),
                      "series": occupation_tmp[1]} if occupation_tmp else {"category": [], "series": []}
        field_tmp = map(lambda x: list(x), zip(*map(lambda x: [x, field_list.count(x)],
                                                    filter(lambda x: str(x) != '', set(field_list)))))
        field = {"category": map(lambda x: translate(x, 'field') or '', field_tmp[0]),
                 "series": field_tmp[1]} if field_tmp else {"category": [], "series": []}

    data = {'gender': gender, 'age': age, 'job': occupation, 'profession': field}
    user_profile = {
        'errcode': 0,
        'errmsg': 'ok',
        'data': data
    }
    return render_template('dashboard/user-identity.html', option=json.dumps(user_profile),
                           username=username, app_id=app_id, app_list=app_list)
コード例 #6
0
def show():
    context_dict = get_app_list()
    app_id = context_dict["app_id"]
    username = context_dict["username"]
    app_list = context_dict["app_list"]

    if not app_id or app_id == "5621fb0f60b27457e863fabb":  # Demo App
        fake_data = json.load(file(join(dirname(dirname(dirname(__file__))), "fake_data.json")))
        static_info = fake_data.get("static_info")
        marriage_obj = static_info.get("marriage")
        pregnant_obj = static_info.get("pregnant")
        marriage = {
            "category": map(lambda x: translate(x, "marriage"), marriage_obj.keys()),
            "series": map(lambda x: marriage_obj.get(x), marriage_obj.keys()),
        }
        pregnant = {
            "category": map(lambda x: translate(x, "pregnant"), pregnant_obj.keys()),
            "series": map(lambda x: pregnant_obj.get(x), pregnant_obj.keys()),
        }
    else:
        result_dict = get_query_list(app_id, "marriage", "pregnant")
        marriage_list = filter(lambda x: x is not None, result_dict["marriage"])
        pregnant_list = filter(lambda x: x is not None, result_dict["pregnant"])
        marriage = {
            "category": map(lambda x: translate(x, "marriage"), list(set(marriage_list))),
            "series": map(lambda x: marriage_list.count(x), list(set(marriage_list))),
        }
        pregnant = {
            "category": map(lambda x: translate(x, "pregnant"), list(set(pregnant_list))),
            "series": map(lambda x: pregnant_list.count(x), list(set(pregnant_list))),
        }
    ret_json = {"errcode": 0, "errmsg": "ok", "data": {"marriage": marriage, "pregnant": pregnant}}
    return render_template(
        "dashboard/user-matrimony.html",
        option=json.dumps(ret_json),
        username=username,
        app_id=app_id,
        app_list=app_list,
    )
コード例 #7
0
def show():
    # filter by timestamp
    h_start = request.form.get('h_start') or request.args.get('h_start') or (int(time.time()) - 30*24*60*60)*1000
    h_end = request.form.get('h_end') or request.args.get('h_end') or int(time.time())*1000
    e_start = request.form.get('e_start') or request.args.get('e_start') or (int(time.time()) - 30*24*60*60)*1000
    e_end = request.form.get('e_end') or request.args.get('e_end') or int(time.time())*1000
    workday = request.form.get('workday') or request.args.get('workday') or "workday"

    context_dict = get_app_list()
    app_id = context_dict['app_id']
    username = context_dict['username']
    app_list = context_dict['app_list']

    s = json.load(file(join(dirname(dirname(dirname(__file__))), 'translate.json')))
    home_office_type = s.get('home_office_status').keys()

    if not app_id or app_id == '5621fb0f60b27457e863fabb':  # Demo App
        fake_data = json.load(file(join(dirname(dirname(dirname(__file__))), 'fake_data.json')))
        home_office_status = fake_data.get('home_office_status')
        home_office = {'category': map(lambda x: translate(x, 'home_office_status'), home_office_status.keys()),
                       'series': map(lambda x: home_office_status[x], home_office_status.keys()),
                       "xAxis": list(range(24))}

        context_fake = fake_data.get('context')
        event = {'category': map(lambda x: translate(translate(x, 'event_old'), 'context'), context_fake.keys()),
                 'series': map(lambda x: context_fake[x], context_fake.keys())}
    else:
        # get data from leancloud#DashboardSource
        result_dict = get_query_list(app_id, 'home_office_status', 'event')
        home_office_list = filter(lambda x: x, result_dict['home_office_status'])
        event_list = filter(lambda x: x, result_dict['event'])

        # filter by timestamp
        # if app_id and app_id != '5621fb0f60b27457e863fabb':  # 非DemoFake 假数据
        home_office_list_tmp = map(lambda item:
                                   dict(map(lambda x: (x, item[x]),
                                            filter(lambda y: str(h_start) <= str(y) <= str(h_end)
                                                             and time.localtime(int(str(y)[:10]))[6] < 5
                                            if workday == 'workday' else time.localtime(int(str(y)[:10]))[6] > 4,
                                                   item.keys()))), home_office_list)
        home_office_list = map(lambda x:
                               dict(map(lambda y: ('status' + str(time.localtime(int(y[0])/1000)[3]), y[1]),
                                        x.items())), home_office_list_tmp)

        event_list_tmp = map(lambda item: map(lambda x: item[x],
                                              filter(lambda y: str(e_start) <= str(y) <= str(e_end)
                                                               and time.localtime(int(str(y)[:10]))[6] < 5
                                              if workday == 'workday' else time.localtime(int(str(y)[:10]))[6] > 4,
                                                     item.keys())), event_list)
        event_list = [i for row in event_list_tmp for i in row]

        # filled all the status* field
        for home_office in home_office_list:
            for k in range(0, 24):
                if 'status' + str(k) not in home_office.keys():
                    home_office['status' + str(k)] = None

        home_office_tmp = map(lambda x: map(lambda y: y[1],
                                            sorted(x.items(), key=lambda key: int(key[0][6:]))), home_office_list)
        home_office_series = map(lambda x: list(x),
                                 zip(*map(lambda x: [x.count(home_office_type[y])
                                                     for y in xrange(len(home_office_type))], zip(*home_office_tmp))))
        home_office = {"category": map(lambda x: translate(x, 'home_office_status'), home_office_type),
                       "xAxis": list(range(24)), "series": home_office_series}

        event_list = map(lambda x: translate(translate(x, 'event_old'), 'context'),
                         filter(lambda x: x not in home_office_type, event_list))
        event_tmp = sorted(map(lambda x: (x, event_list.count(x)), set(event_list)), key=lambda item: -item[1])
        event = {"category": list(zip(*event_tmp)[0]), "series": list(zip(*event_tmp)[1])} \
            if event_tmp else {"category": [], "series": []}

    context = {
        'errcode': 0,
        'errmsg': 'ok',
        'data': {
            'home_office': home_office,
            'event': event
        }
    }
    if request.method == 'POST':
        return json.dumps(context)
    return render_template('dashboard/context.html', option=json.dumps(context),
                           username=username, app_id=app_id, app_list=app_list)