def query_obj(self): """ Building a query object """ form_data = self.form_data custom_query = form_data.get("custom_query") or [] groupby = form_data.get("groupby") or [] columns = form_data.get("colummns") or [] metrics = form_data.get("metrics") or ['count'] granularity = form_data.get("granularity") limit = int(form_data.get("limit", 0)) row_limit = int(form_data.get("row_limit", config.get("ROW_LIMIT"))) since = form_data.get("since", "1 year ago") from_dttm = utils.parse_human_datetime(since) if from_dttm > datetime.now(): from_dttm = datetime.now() - (from_dttm - datetime.now()) until = form_data.get("until", "now") to_dttm = utils.parse_human_datetime(until) if from_dttm > to_dttm: flash("The date range doesn't seem right.", "danger") from_dttm = to_dttm # Making them identical to not raise # extras are used to query elements specific to a datasource type # for instance the extra where clause that applies only to Tables extras = { 'where': form_data.get("where", ''), 'having': form_data.get("having", ''), } d = { 'granularity': granularity, 'from_dttm': from_dttm, 'to_dttm': to_dttm, 'is_timeseries': self.is_timeseries, 'groupby': groupby, 'columns': columns, 'metrics': metrics, 'row_limit': row_limit, 'filter': self.query_filters(), 'timeseries_limit': limit, 'extras': extras, 'custom_query': custom_query, } return d
def query_obj(self): """ Building a query object """ form_data = self.form_data groupby = form_data.get("groupby") or [] metrics = form_data.get("metrics") or ['count'] granularity = form_data.get("granularity", "1 day") if granularity != "all": granularity = utils.parse_human_timedelta( granularity).total_seconds() * 1000 limit = int(form_data.get("limit", 0)) row_limit = int( form_data.get("row_limit", config.get("ROW_LIMIT"))) since = form_data.get("since", "1 year ago") from_dttm = utils.parse_human_datetime(since) if from_dttm > datetime.now(): from_dttm = datetime.now() - (from_dttm-datetime.now()) until = form_data.get("until", "now") to_dttm = utils.parse_human_datetime(until) if from_dttm >= to_dttm: flash("The date range doesn't seem right.", "danger") from_dttm = to_dttm # Making them identical to not raise # extras are used to query elements specific to a datasource type # for instance the extra where clause that applies only to Tables extras = { 'where': form_data.get("where", '') } d = { 'granularity': granularity, 'from_dttm': from_dttm, 'to_dttm': to_dttm, 'is_timeseries': True, 'groupby': groupby, 'metrics': metrics, 'row_limit': row_limit, 'filter': self.query_filters(), 'timeseries_limit': limit, 'extras': extras, } return d
def query_obj(self): """ Building a query object """ form_data = self.form_data groupby = form_data.get("groupby") or [] metrics = form_data.get("metrics") or ["count"] granularity = form_data.get("granularity") limit = int(form_data.get("limit", 0)) row_limit = int(form_data.get("row_limit", config.get("ROW_LIMIT"))) since = form_data.get("since", "1 year ago") from_dttm = utils.parse_human_datetime(since) if from_dttm > datetime.now(): from_dttm = datetime.now() - (from_dttm - datetime.now()) until = form_data.get("until", "now") to_dttm = utils.parse_human_datetime(until) if from_dttm > to_dttm: flash("The date range doesn't seem right.", "danger") from_dttm = to_dttm # Making them identical to not raise # extras are used to query elements specific to a datasource type # for instance the extra where clause that applies only to Tables extras = {"where": form_data.get("where", ""), "having": form_data.get("having", "")} d = { "granularity": granularity, "from_dttm": from_dttm, "to_dttm": to_dttm, "is_timeseries": self.is_timeseries, "groupby": groupby, "metrics": metrics, "row_limit": row_limit, "filter": self.query_filters(), "timeseries_limit": limit, "extras": extras, } return d
def query_obj(self): """ Building a query object """ ds = self.datasource args = self.form_data groupby = args.getlist("groupby") or [] metrics = args.getlist("metrics") or ['count'] granularity = args.get("granularity", "1 day") if granularity != "all": granularity = utils.parse_human_timedelta( granularity).total_seconds() * 1000 limit = int(args.get("limit", 0)) row_limit = int( args.get("row_limit", config.ROW_LIMIT)) since = args.get("since", "1 year ago") from_dttm = utils.parse_human_datetime(since) if from_dttm > datetime.now(): from_dttm = datetime.now() - (from_dttm-datetime.now()) until = args.get("until", "now") to_dttm = utils.parse_human_datetime(until) if from_dttm >= to_dttm: flash("The date range doesn't seem right.", "danger") from_dttm = to_dttm # Making them identicial to not raise d = { 'granularity': granularity, 'from_dttm': from_dttm, 'to_dttm': to_dttm, 'is_timeseries': True, 'groupby': groupby, 'metrics': metrics, 'row_limit': row_limit, 'filter': self.query_filters(), 'timeseries_limit': limit, } return d