Exemplo n.º 1
0
    def search_list(self, page=1, page_size=10, query_params={}, sort_params={},pager_flag=True):
        if sort_params == {}:
            sort_params.update({"add_time": -1})
        coll = self.get_coll()
        if pager_flag:
            length = coll.find(query_params).count()
            pager = utils.count_page(length, page, page_size)
            cr = coll.aggregate([
                {"$match": query_params},
                {"$sort": sort_params},
                {"$skip": pager['skip']},
                {"$limit": pager['page_size']}])
        else:
            pager = utils.count_page(0, page, page_size)
            cr = coll.aggregate([
                {"$match": query_params},
                {"$sort": sort_params}])
        objs = []
        for obj in cr:
            obj = utils.dump(obj)
            try:
                for extra_param in self.extra_params:
                    exec("""obj[extra_param] = self.get_%s(obj)"""%extra_param)
                objs.append(obj)
            except:
                objs.append(obj)

        return objs, pager
Exemplo n.º 2
0
    def search_list(self, page=1, page_size=10, query_params={}, sort_params={},pager_flag=True):
        if sort_params == {}:
            sort_params.update({"add_time": -1})

        coll = self.get_coll()
        if pager_flag:
            length = coll.find(query_params).count()
            pager = utils.count_page(length, page, page_size)
            cr = coll.aggregate([
                {"$match": query_params},
                {"$sort": sort_params},
                {"$skip": pager['skip']},
                {"$limit": pager['page_size']}])
        else:
            pager = utils.count_page(0, page, page_size)
            cr = coll.aggregate([
                {"$match": query_params},
                {"$sort": sort_params}])

        objs = []
        for obj in cr:
            obj = utils.dump(obj)
            try:
                for extra_param in self.extra_params:
                    exec("""obj[extra_param] = self.get_%s(obj)"""%extra_param)
                objs.append(obj)
            except:
                objs.append(obj)

        return objs, pager
Exemplo n.º 3
0
    def list(self,query_list,sort_list,use_pager=True,is_origin=False,page=1,page_size=options.page_size):
        length = self.get_coll().find(query_list).count()

        if use_pager:
            pager = utils.count_page(length,page,page_size)
            list = self.get_coll().aggregate([{"$match" : query_list},
                                                   {"$sort":sort_list},
                                                   {"$skip":pager['skip']},
                                                   {"$limit":pager['page_size']}])
        else:
            pager = []
            list = self.get_coll().aggregate([{"$match" : query_list},
                                                   {"$sort":sort_list}
                                                   ])
        if is_origin:
            return list,pager
        else:
            return utils.dump(list),pager
Exemplo n.º 4
0
    def list(self,query_list,sort_list,use_pager=True,is_origin=False,page=1,page_size=options.page_size):
        length = self.get_coll().find(query_list).count()

        if use_pager:
            pager = utils.count_page(length,page,page_size)
            list = self.get_coll().aggregate([{"$match" : query_list},
                                                   {"$sort":sort_list},
                                                   {"$skip":pager['skip']},
                                                   {"$limit":pager['page_size']}])
        else:
            pager = []
            list = self.get_coll().aggregate([{"$match" : query_list},
                                                   {"$sort":sort_list}
                                                   ])
        if is_origin:
            return list,pager
        else:
            return utils.dump(list),pager
Exemplo n.º 5
0
    def nearby_donate(self, **kw):
        res = utils.init_response_data()
        try:
            env = request.env
            goods = env['odootask.task'].sudo().search_read(
                ["|", ("pay_state", "=", "yes"), ("state", "=", "done")])
            goods.sort(key=lambda obj: obj["create_date"])
            goods.reverse()
            more = kw.get("more", False)
            page = kw.get("page", 1)
            page_size = kw.get("page_size", 10)
            if more:
                length = len(goods)
                pager = utils.count_page(length, page, page_size)
                goods = goods[pager['skip']:pager['skip'] + pager['page_size']]
            else:
                pager = {}
                goods = goods[0:5]

            for good in goods:
                create_date = good["create_date"]
                create_date = str(
                    datetime.datetime.strptime(create_date,
                                               "%Y-%m-%d %H:%M:%S") +
                    datetime.timedelta(hours=8)).split(".")[0]
                date = create_date.split(" ")[0]
                time = create_date.split(" ")[1]
                curr_date = str(datetime.datetime.now()).split(" ")[0]
                if date == curr_date:
                    show_date = "今天"
                else:
                    show_date = date.split("-")[1] + "-" + date.split("-")[2]
                show_time = time.split(":")[0] + ":" + time.split(":")[1]
                good["create_date"] = create_date
                good["show_date"] = show_date
                good["show_time"] = show_time

            res["data"]["goods"] = goods
            res["pager"] = pager
        except Exception, e:
            res["code"] = status.Status.ERROR
            res["error_info"] = str(e)
            return res
Exemplo n.º 6
0
    def more_good_types(self, **kw):
        res = utils.init_response_data()
        try:
            env = request.env
            more = kw.get("more", False)
            page = kw.get("page", 1)
            page_size = kw.get("page_size", 10)
            community_name = kw.get("community_name", "")
            if community_name != "":
                domain = [("community.name", "ilike", community_name)]
            else:
                domain = []
            good_types = env['odootask.task_category'].sudo().search_read(
                domain)

            for good in good_types:
                del good["image"]
                del good["image_medium"]
                del good["image_small"]

            if len(good_types):
                good_types.sort(key=lambda obj: obj["donator_amount"])
                good_types.reverse()
                if more:
                    length = len(good_types)
                    pager = utils.count_page(length, page, page_size)
                    good_types = good_types[pager['skip']:pager['skip'] +
                                            pager['page_size']]
                    res["data"]["good_types"] = good_types
                    res["pager"] = pager
            else:
                res["data"]["good_types"] = []
                res["pager"] = {}
        except Exception, e:
            res["code"] = status.Status.ERROR
            res["error_info"] = str(e)
            return res