예제 #1
0
    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
예제 #2
0
파일: viz.py 프로젝트: mindis/panoramix
    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
예제 #3
0
    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
예제 #4
0
파일: viz.py 프로젝트: wbchn/panoramix
 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