Exemple #1
0
    def get_activities_by_join(self, params):
        page_index = params.get('page_index', 1)
        limit = params.get('limit', 10)
        join = params.get('join', False)
        admin = params.get('admin')
        user = params.get('user')
        isShow = params.get('isShow', '-1')
        q_show = self._get_q_show(isShow)
        isDelete = params.get('isDelete', '0')

        join_activities = models.ActJoinLog.objects.filter(
            Q(admin__pid=admin),
            Q(user__pid=user)).values_list('activity__objectId',
                                           flat=True).distinct()
        if join is False:
            activities = models.Activities.objects. \
                filter(Q(admin__pid=admin), q_show, isDelete=isDelete).exclude(
                objectId__in=join_activities
            ).order_by('createdAt')
        else:
            activities = models.Activities.objects \
                .filter(Q(admin__pid=admin), q_show,
                        Q(objectId__in=join_activities), isDelete=isDelete).order_by('createdAt')
        count = activities.count()
        res = {'code': 0, 'data': list(activities.values())}
        res.update(util.make_pagination(count, page_index, limit))
        return res
Exemple #2
0
    def get_user_checkin(self, params):
        page_index = params.get('page_index', 1)
        limit = params.get('limit', 10)
        q_list = []
        checkin = params.get('checkin')
        if checkin is False:
            q_list.append(Q(checkin=None))
        else:
            q_list.append(~Q(checkin=None))

        group = params.get('group', '')
        if group != '':
            q_list.append(Q(group__pid__contains=group))

        isShow = params.get('isShow', '-1')
        q_show = self._get_q_show(isShow)
        q_list.append(q_show)

        q_list.append(Q(isDelete=0))
        users = models.Users.objects.filter(
            *q_list
            #    Q(checkin=None), Q(group__pid__contains=group), q_show
        )
        count = users.count()
        users_list = list(users[(page_index - 1) * limit:page_index *
                                limit].values())
        res = {'code': 0, 'data': users_list}
        res.update(util.make_pagination(count, page_index, limit))
        return res
Exemple #3
0
 def get_act_join_log(self, params):
     page_index = params.get('page_index', 1)
     limit = params.get('limit', 10)
     user_id = params.get('user', '')
     admin_id = params.get('admin', '')
     activity_id = params.get('activity', '')
     act_join_logs = models.ActJoinLog.objects.filter(
         Q(user__pid__contains=user_id), Q(admin__pid__contains=admin_id),
         Q(activity__objectId__contains=activity_id)).order_by('-createdAt')
     count = act_join_logs.count()
     fileds = [
         'objectId', 'user__pid', 'user__realname', 'user__group__name',
         'user__location__name', 'isInner', 'star', 'extra',
         'activity__title', 'createdAt', 'mark'
     ]
     act_join_logs_values = act_join_logs[(page_index - 1) * limit: page_index * limit]. \
         values(*fileds)
     act_join_logs_list = list(act_join_logs_values)
     res = {'code': 0, 'data': act_join_logs_list}
     res.update(util.make_pagination(count, page_index, limit))
     return res
Exemple #4
0
def members(app_id, page):
    # 검색 조건 가져오기
    member_id = request.args.get('member_id', None)
    facebook_id = request.args.get('facebook_id', None)

    # 멤버 아이디로 검색
    if member_id:
        total, members = models.members(app_id, page-1, member_id=long(member_id))

    # 페이스북 아이디로 검색
    elif facebook_id:
        total, members = models.members(app_id, page-1, facebook_id=long(facebook_id))

    # 총 멤버정보
    else:
        total, members = models.members(app_id, page-1)

    pagination = make_pagination(page, total, 'members')
    return render_template('apps/members.html',
                           app_id = app_id,
                           total = total,
                           members = members,
                           pagination = pagination)
Exemple #5
0
def payments(app_id, page):
    # 검색 조건 가져오기
    # TODO: 검색 조건 추가
    member_id = request.args.get('member_id', None)
    product_id = request.args.get('product_id', None)

    # 멤버 아이디로 검색
    if member_id:
        total, payments = models.payments(app_id, page-1, member_id=long(member_id))

    # 상품 아이디로 검색
    elif product_id:
        total, payments = models.payments(app_id, page-1, product_id=long(product_id))

    # 총 결제정보
    else:
        total, payments = models.payments(app_id, page-1)

    pagination = make_pagination(page, total, 'payments')
    return render_template('apps/payments.html',
                           app_id = app_id,
                           total = total,
                           payments = payments,
                           pagination = pagination)
Exemple #6
0
 def get_act_registration(self, params):
     activity_objectId = params.get('activity', '')
     limit = params.get('limit', 10)
     page_index = params.get('page_index', 1)
     act_registration = models.ActRegistration.objects.filter(
         Q(activity=activity_objectId)).order_by('-createdAt')
     count = act_registration.count()
     fileds = [
         'admin__pid', 'admin__type', 'admin__name', 'admin__username',
         'userLocationArr__objectId', 'userLocationArr__type',
         'userLocationArr__name', 'userLocationArr__username',
         'activity__objectId', 'activity__title', 'activity__content',
         'userGroupArr__objectId', 'userGroupArr__name',
         'userGroupArr__username', 'userGroupArr__type', 'user__pid',
         'user__realname', 'user__username', 'user__sex',
         'user__group__name', 'user__mobile', 'user__political',
         'user__job', 'objectId', 'createdAt'
     ]
     act_registration_values = act_registration[(page_index - 1) *
                                                limit:page_index *
                                                limit].values(*fileds)
     res = {'code': 0, 'data': list(act_registration_values)}
     res.update(util.make_pagination(count, page_index, limit))
     return res
Exemple #7
0
def collection(collection):
    db = connect_db()
    doc = db[collection]

    pid = request.args.get('pid', None)
    level = request.args.get('level', None)
    name = request.args.get('name', None)
    find = request.args.get('find', None)
    page = int(request.args.get('page', 1))

    search_options = []
    if pid: search_options.append({'process': int(pid)})
    if level: search_options.append({'levelname': level})
    if name: search_options.append({'name': name})
    if find:
        find_search = re.compile(".*"+find+".*", re.IGNORECASE)
        search_options.append({'msg': find_search})

    if len(search_options) > 1:
        search = { "$and": search_options }
    elif len(search_options) == 1:
        search = search_options[0]
    else:
        search = {}

    total = doc.find(search).count()
    pagination = make_pagination(page, total, 'records')

    results = doc.find(search).sort("time", pymongo.DESCENDING).skip((page-1) * PER_PAGE).limit(PER_PAGE)

    url = request.path + "?"
    if pid: url += "pid=%s&" % pid
    if level: url += "level=%s&" % level
    if name: url += "name=%s&" % name
    if find: url += "find=%s&" % find

    records = []
    for r in results:
        try:
            r['tags']
        except KeyError:
            r['tags'] = ''

        records.append({
          'level': r['levelname'],
          'time': r['time'],
          'pid': r['process'],
          'message': r['msg'],
          'host': r['host'],
          'pathname': r['pathname'],
          'lineno': r['lineno'],
          'name': r['name'],
        })

    return render_template('log/list.html',
                           uri = request.path,
                           url = url,
                           pagination = pagination,
                           collection = collection,
                           records = records,
                           time = dispTime,
                           pid = pid,
                           level = level,
                           name = name,
                           find = find)