Ejemplo n.º 1
0
    def run(cls, filter: SessionsFilter, team: Team, *args, **kwargs) -> Tuple[List[Dict], Optional[Dict]]:
        "Sessions queries do post-filtering based on session recordings. This makes sure we return some data every page"
        limit = kwargs.get("limit", SESSIONS_LIST_DEFAULT_LIMIT)

        results = []

        while True:
            page, pagination = cls(filter, team, limit=limit).fetch_page()
            results.extend(page)

            if len(results) >= limit or pagination is None:
                return results, pagination
            filter = filter.with_data({"pagination": pagination})
Ejemplo n.º 2
0
def set_default_dates(filter: SessionsFilter) -> SessionsFilter:
    data = {}
    if filter.session != SESSION_AVG and filter.session != SESSION_DIST:
        date_from = filter.date_from
        if not filter._date_from:
            date_from = timezone.now().replace(hour=0,
                                               minute=0,
                                               second=0,
                                               microsecond=0)
        data.update({"date_from": date_from})
        if not filter._date_to:
            data.update(
                {"date_to": cast(datetime, date_from) + relativedelta(days=1)})
    else:
        if not filter._date_from:
            data.update({"date_from": relative_date_parse("-7d")})
        if not filter._date_to:
            data.update({"date_to": timezone.now()})
    return filter.with_data({**data, "user_id": filter.user_id})