def handle_search(my): my.search_type = my.kwargs.get("search_type") if not my.search_type: my.search_type = 'sthpw/task' my.op_filters = my.kwargs.get("filters") if my.op_filters: if isinstance(my.op_filters, basestring): my.op_filters = eval(my.op_filters) my.start_column = my.kwargs.get('start_date_col') if not my.start_column: my.start_column = 'bid_start_date' my.end_column = my.kwargs.get('end_date_col') if not my.end_column: my.end_column = 'bid_end_date' search = Search(my.search_type) if my.op_filters: search.add_op_filters(my.op_filters) search.add_op('begin') if my.handler: my.handler.alter_search(search) search.add_op('or') my.start_date = datetime(my.year, my.month, 1) next_month = my.month + 1 next_year = my.year if next_month > 12: next_month = 1 next_year += 1 my.end_date = datetime(next_year, next_month, 1) my.end_date = my.end_date - timedelta(days=1) # outer begin search.add_op('begin') search.add_op('begin') search.add_date_range_filter(my.start_column, my.start_date, my.end_date) search.add_date_range_filter(my.end_column, my.start_date, my.end_date) search.add_op('or') search.add_op('begin') search.add_filter(my.start_column, my.start_date, op='<=') search.add_filter(my.end_column, my.end_date, op='>=') search.add_op('and') search.add_op('or') search.add_order_by(my.start_column) my.sobjects = search.get_sobjects()
def handle_search(my): # this is an absolute expression my.search_expr = my.kwargs.get("search_expr") my.search_type = my.kwargs.get("search_type") if not my.search_type: my.search_type = 'sthpw/task' if my.search_expr: search = Search.eval(my.search_expr) else: my.op_filters = my.kwargs.get("filters") if my.op_filters: if isinstance(my.op_filters, basestring): my.op_filters = eval(my.op_filters) search = Search(my.search_type) if my.op_filters: search.add_op_filters(my.op_filters) my.start_column = my.kwargs.get('start_date_col') if not my.start_column: my.start_column = 'bid_start_date' my.end_column = my.kwargs.get('end_date_col') if not my.end_column: my.end_column = 'bid_end_date' search.add_op('begin') if my.handler: my.handler.alter_search(search) search.add_op('or') my.start_date = datetime(my.year, my.month, 1) next_month = my.month+1 next_year = my.year if next_month > 12: next_month = 1 next_year += 1 my.end_date = datetime(next_year, next_month, 1) my.end_date = my.end_date - timedelta(days=1) # outer begin search.add_op('begin') search.add_op('begin') search.add_date_range_filter(my.start_column, my.start_date, my.end_date) search.add_date_range_filter(my.end_column, my.start_date, my.end_date) search.add_op('or') search.add_op('begin') search.add_filter(my.start_column, my.start_date, op='<=') search.add_filter(my.end_column, my.end_date, op='>=') search.add_op('and') search.add_op('or') search.add_order_by(my.start_column) print "search: ", search.get_statement() my.sobjects = search.get_sobjects()
def handle_search(self): parent_key = self.kwargs.get("parent_key") # this is an absolute expression self.search_expr = self.kwargs.get("search_expr") self.search_type = self.kwargs.get("search_type") if not self.search_type: self.search_type = 'sthpw/task' if self.search_expr: result = Search.eval(self.search_expr) if isinstance(result, list): search = Search(self.search_type) codes = [x.get_code() for x in result] search.add_filters("code", codes) else: search = result else: self.op_filters = self.kwargs.get("filters") if self.op_filters: if isinstance(self.op_filters, basestring): self.op_filters = eval(self.op_filters) search = Search(self.search_type) if self.op_filters: search.add_op_filters(self.op_filters) self.start_column = self.kwargs.get('start_date_col') if not self.start_column: self.start_column = 'bid_start_date' self.end_column = self.kwargs.get('end_date_col') if not self.end_column: self.end_column = 'bid_end_date' if parent_key: parent = Search.get_by_search_key(parent_key) search.add_parent_filter(parent) search.add_op('begin') if self.handler: self.handler.alter_search(search) search.add_op('or') self.start_date = datetime(self.year, self.month, 1) next_month = self.month + 1 next_year = self.year if next_month > 12: next_month = 1 next_year += 1 self.end_date = datetime(next_year, next_month, 1) self.end_date = self.end_date - timedelta(days=1) # outer begin search.add_op('begin') search.add_op('begin') search.add_date_range_filter(self.start_column, self.start_date, self.end_date) search.add_date_range_filter(self.end_column, self.start_date, self.end_date) search.add_op('or') search.add_op('begin') search.add_filter(self.start_column, self.start_date, op='<=') search.add_filter(self.end_column, self.end_date, op='>=') search.add_op('and') search.add_op('or') extra_codes = self.kwargs.get("extra_codes") if extra_codes: search.add_op('and') extra_codes = extra_codes.split("|") search.add_filters("code", extra_codes) search.add_op('or') search.add_order_by(self.start_column) self.sobjects = search.get_sobjects()
def handle_search(self): parent_key = self.kwargs.get("parent_key") # this is an absolute expression self.search_expr = self.kwargs.get("search_expr") self.search_type = self.kwargs.get("search_type") if not self.search_type: self.search_type = 'sthpw/task' if self.search_expr: result = Search.eval(self.search_expr) if isinstance(result, list): search = Search(self.search_type) codes = [x.get_code() for x in result] search.add_filters("code", codes) else: search = result else: self.op_filters = self.kwargs.get("filters") if self.op_filters: if isinstance(self.op_filters, basestring): self.op_filters = eval(self.op_filters) search = Search(self.search_type) if self.op_filters: search.add_op_filters(self.op_filters) self.start_column = self.kwargs.get('start_date_col') if not self.start_column: self.start_column = 'bid_start_date' self.end_column = self.kwargs.get('end_date_col') if not self.end_column: self.end_column = 'bid_end_date' if parent_key: parent = Search.get_by_search_key(parent_key) search.add_parent_filter(parent) search.add_op('begin') if self.handler: self.handler.alter_search(search) search.add_op('or') self.start_date = datetime(self.year, self.month, 1) next_month = self.month+1 next_year = self.year if next_month > 12: next_month = 1 next_year += 1 self.end_date = datetime(next_year, next_month, 1) self.end_date = self.end_date - timedelta(days=1) # outer begin search.add_op('begin') search.add_op('begin') search.add_date_range_filter(self.start_column, self.start_date, self.end_date) search.add_date_range_filter(self.end_column, self.start_date, self.end_date) search.add_op('or') search.add_op('begin') search.add_filter(self.start_column, self.start_date, op='<=') search.add_filter(self.end_column, self.end_date, op='>=') search.add_op('and') search.add_op('or') extra_codes = self.kwargs.get("extra_codes") if extra_codes: search.add_op('and') extra_codes = extra_codes.split("|") search.add_filters("code", extra_codes) search.add_op('or') search.add_order_by(self.start_column) self.sobjects = search.get_sobjects()