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
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
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
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)
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)
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
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)