Exemplo n.º 1
0
 def pagination(self):
     # pagination
     self.page = int(get_or_default('page', self.params, self.page))
     self.per_page = int(
         get_or_default('per_page', self.params, self.per_page))
     return self.objects.paginate(page=self.page,
                                  per_page=self.per_page,
                                  error_out=False).items
Exemplo n.º 2
0
    def filter(self):
        if self.errors:
            return None

        # default value
        self.search_list = get_or_default('search_list', self.params,
                                          self.search_list)

        conds_or = []
        conds_and = []

        # FILTER by deleted_at
        if 'delete_status' in self.params:
            if self.params['delete_status'] == 1:
                conds_and = [Variant.del_status == True]

        # FILTER by keyword
        if 'keyword' in self.params:
            keyword = self.params['keyword']
            if 'name' in self.search_list:
                conds_or.append(Variant.name.like('%{}%'.format(keyword)))
            if 'color' in self.search_list:
                conds_or.append(Variant.color.like('%{}%'.format(keyword)))
            if 'size' in self.search_list:
                conds_or.append(Variant.size.like('%{}%'.format(keyword)))

        # FILTER and_ & or_
        if len(conds_or) >= 1:
            self.objects = Variant.query.filter(and_(*conds_and),
                                                or_(*conds_or))
        else:
            self.objects = Variant.query.filter(and_(*conds_and))

        return self.objects
Exemplo n.º 3
0
    def filter(self):
        if self.errors:
            return None

        # default value
        self.search_list = get_or_default('search_list', self.params,
                                          self.search_list)

        conds_or = []
        conds_and = []

        # FILTER by delete_status
        if 'delete_status' in self.params:
            if self.params['delete_status'] == 1:
                conds_and = [Image.del_status == True]

        # FILTER by keyword
        if 'keyword' in self.params:
            keyword = self.params['keyword']
            if 'url' in self.search_list:
                conds_or.append(Image.url.like('%{}%'.format(keyword)))

        # FILTER and_ & or_
        if len(conds_or) >= 1:
            self.objects = Image.query.filter(and_(*conds_and), or_(*conds_or))
        else:
            self.objects = Image.query.filter(and_(*conds_and))

        return self.objects