* refactor(chalice): upgraded dependencies

* refactor(chalice): upgraded dependencies
feat(chalice): support heatmaps

* feat(chalice): support table-of-browsers showing user-count

* feat(chalice): support table-of-devices showing user-count

* feat(chalice): support table-of-URLs showing user-count

* fix(chalice): fixed Math-operators validation
refactor(chalice): search for sessions that have events for heatmaps

* refactor(chalice): search for sessions that have at least 1 location event for heatmaps

* refactor(chalice): removed timeseries-card progress
refactor(chalice): removed tables-card pieChart
refactor(DB): migrated timeseries-card progress
refactor(DB): migrated tables-card pieChart
This commit is contained in:
Kraiem Taha Yassine 2024-07-02 11:53:47 +02:00 committed by GitHub
parent cff1d3a996
commit 9516dcd238
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 16 additions and 44 deletions

View file

@ -25,25 +25,6 @@ def __try_live(project_id, data: schemas.CardSchema):
results.append(sessions.search2_series(data=s.filter, project_id=project_id, density=data.density, results.append(sessions.search2_series(data=s.filter, project_id=project_id, density=data.density,
view_type=data.view_type, metric_type=data.metric_type, view_type=data.view_type, metric_type=data.metric_type,
metric_of=data.metric_of, metric_value=data.metric_value)) metric_of=data.metric_of, metric_value=data.metric_value))
if data.view_type == schemas.MetricTimeseriesViewType.progress:
r = {"count": results[-1]}
diff = s.filter.endTimestamp - s.filter.startTimestamp
s.filter.endTimestamp = s.filter.startTimestamp
s.filter.startTimestamp = s.filter.endTimestamp - diff
r["previousCount"] = sessions.search2_series(data=s.filter, project_id=project_id, density=data.density,
view_type=data.view_type, metric_type=data.metric_type,
metric_of=data.metric_of, metric_value=data.metric_value)
r["countProgress"] = helper.__progress(old_val=r["previousCount"], new_val=r["count"])
r["seriesName"] = s.name if s.name else i + 1
r["seriesId"] = s.series_id if s.series_id else None
results[-1] = r
elif data.view_type == schemas.MetricTableViewType.pie_chart:
if len(results[i].get("values", [])) > PIE_CHART_GROUP:
results[i]["values"] = results[i]["values"][:PIE_CHART_GROUP] \
+ [{
"name": "Others", "group": True,
"sessionCount": sum(r["sessionCount"] for r in results[i]["values"][PIE_CHART_GROUP:])
}]
return results return results
@ -112,8 +93,6 @@ def __get_path_analysis_chart(project_id: int, user_id: int, data: schemas.CardP
def __get_timeseries_chart(project_id: int, data: schemas.CardTimeSeries, user_id: int = None): def __get_timeseries_chart(project_id: int, data: schemas.CardTimeSeries, user_id: int = None):
series_charts = __try_live(project_id=project_id, data=data) series_charts = __try_live(project_id=project_id, data=data)
if data.view_type == schemas.MetricTimeseriesViewType.progress:
return series_charts
results = [{}] * len(series_charts[0]) results = [{}] * len(series_charts[0])
for i in range(len(results)): for i in range(len(results)):
for j, series_chart in enumerate(series_charts): for j, series_chart in enumerate(series_charts):

View file

@ -913,13 +913,11 @@ class CardSeriesSchema(BaseModel):
class MetricTimeseriesViewType(str, Enum): class MetricTimeseriesViewType(str, Enum):
line_chart = "lineChart" line_chart = "lineChart"
progress = "progress"
area_chart = "areaChart" area_chart = "areaChart"
class MetricTableViewType(str, Enum): class MetricTableViewType(str, Enum):
table = "table" table = "table"
pie_chart = "pieChart"
class MetricOtherViewType(str, Enum): class MetricOtherViewType(str, Enum):

View file

@ -36,25 +36,6 @@ def __try_live(project_id, data: schemas.CardSchema):
results.append(sessions.search2_series(data=s.filter, project_id=project_id, density=data.density, results.append(sessions.search2_series(data=s.filter, project_id=project_id, density=data.density,
view_type=data.view_type, metric_type=data.metric_type, view_type=data.view_type, metric_type=data.metric_type,
metric_of=data.metric_of, metric_value=data.metric_value)) metric_of=data.metric_of, metric_value=data.metric_value))
if data.view_type == schemas.MetricTimeseriesViewType.progress:
r = {"count": results[-1]}
diff = s.filter.endTimestamp - s.filter.startTimestamp
s.filter.endTimestamp = s.filter.startTimestamp
s.filter.startTimestamp = s.filter.endTimestamp - diff
r["previousCount"] = sessions.search2_series(data=s.filter, project_id=project_id, density=data.density,
view_type=data.view_type, metric_type=data.metric_type,
metric_of=data.metric_of, metric_value=data.metric_value)
r["countProgress"] = helper.__progress(old_val=r["previousCount"], new_val=r["count"])
r["seriesName"] = s.name if s.name else i + 1
r["seriesId"] = s.series_id if s.series_id else None
results[-1] = r
elif data.view_type == schemas.MetricTableViewType.pie_chart:
if len(results[i].get("values", [])) > PIE_CHART_GROUP:
results[i]["values"] = results[i]["values"][:PIE_CHART_GROUP] \
+ [{
"name": "Others", "group": True,
"sessionCount": sum(r["sessionCount"] for r in results[i]["values"][PIE_CHART_GROUP:])
}]
return results return results
@ -132,8 +113,6 @@ def __get_path_analysis_chart(project_id: int, user_id: int, data: schemas.CardP
def __get_timeseries_chart(project_id: int, data: schemas.CardTimeSeries, user_id: int = None): def __get_timeseries_chart(project_id: int, data: schemas.CardTimeSeries, user_id: int = None):
series_charts = __try_live(project_id=project_id, data=data) series_charts = __try_live(project_id=project_id, data=data)
if data.view_type == schemas.MetricTimeseriesViewType.progress:
return series_charts
results = [{}] * len(series_charts[0]) results = [{}] * len(series_charts[0])
for i in range(len(results)): for i in range(len(results)):
for j, series_chart in enumerate(series_charts): for j, series_chart in enumerate(series_charts):

View file

@ -34,6 +34,14 @@ WHERE metric_id IN (SELECT metric_id
WHERE metric_type = 'webVitals') WHERE metric_type = 'webVitals')
AND config ->> 'col' = '1'; AND config ->> 'col' = '1';
UPDATE public.metrics
SET view_type='table'
WHERE view_type = 'pieChart';
UPDATE public.metrics
SET view_type='lineChart'
WHERE view_type = 'progress';
COMMIT; COMMIT;
\elif :is_next \elif :is_next

View file

@ -34,6 +34,14 @@ WHERE metric_id IN (SELECT metric_id
WHERE metric_type = 'webVitals') WHERE metric_type = 'webVitals')
AND config ->> 'col' = '1'; AND config ->> 'col' = '1';
UPDATE public.metrics
SET view_type='table'
WHERE view_type = 'pieChart';
UPDATE public.metrics
SET view_type='lineChart'
WHERE view_type = 'progress';
COMMIT; COMMIT;
\elif :is_next \elif :is_next