diff --git a/api/chalicelib/core/custom_metrics.py b/api/chalicelib/core/custom_metrics.py index d681eb48f..5256facfd 100644 --- a/api/chalicelib/core/custom_metrics.py +++ b/api/chalicelib/core/custom_metrics.py @@ -319,13 +319,14 @@ def create_card(project_id, user_id, data: schemas.CardSchema, dashboard=False): session_data = None if data.metric_type == schemas.MetricType.heat_map: if data.session_id is not None: - session_data = json.dumps({"sessionId": data.session_id}) + session_data = {"sessionId": data.session_id} else: session_data = __get_heat_map_chart(project_id=project_id, user_id=user_id, data=data, include_mobs=False) if session_data is not None: - session_data = json.dumps({"sessionId": session_data["sessionId"]}) - _data = {"session_data": session_data} + session_data = {"sessionId": session_data["sessionId"]} + + _data = {"session_data": json.dumps(session_data) if session_data is not None else None} for i, s in enumerate(data.series): for k in s.model_dump().keys(): _data[f"{k}_{i}"] = s.__getattribute__(k) diff --git a/ee/api/chalicelib/core/custom_metrics.py b/ee/api/chalicelib/core/custom_metrics.py index df7a8ffca..698df38ba 100644 --- a/ee/api/chalicelib/core/custom_metrics.py +++ b/ee/api/chalicelib/core/custom_metrics.py @@ -339,10 +339,13 @@ def create_card(project_id, user_id, data: schemas.CardSchema, dashboard=False): session_data = None if data.metric_type == schemas.MetricType.heat_map: if data.session_id is not None: - session_data = json.dumps({"sessionId": data.session_id}) + session_data = {"sessionId": data.session_id} else: session_data = __get_heat_map_chart(project_id=project_id, user_id=user_id, data=data, include_mobs=False) + if session_data is not None: + session_data = {"sessionId": session_data["sessionId"]} + if session_data is not None: # for EE only keys = sessions_mobs. \ @@ -356,8 +359,8 @@ def create_card(project_id, user_id, data: schemas.CardSchema, dashboard=False): except Exception as e: logger.warning(f"!!!Error while tagging: {k} to {tag} for heatMap") logger.error(str(e)) - session_data = json.dumps(session_data) - _data = {"session_data": session_data} + + _data = {"session_data": json.dumps(session_data) if session_data is not None else None} for i, s in enumerate(data.series): for k in s.model_dump().keys(): _data[f"{k}_{i}"] = s.__getattribute__(k) diff --git a/ee/api/chalicelib/core/heatmaps.py b/ee/api/chalicelib/core/heatmaps.py index 6f84c2f11..2ce9a671a 100644 --- a/ee/api/chalicelib/core/heatmaps.py +++ b/ee/api/chalicelib/core/heatmaps.py @@ -57,16 +57,16 @@ def get_by_url(project_id, data: schemas.GetHeatMapPayloadSchema): # f.value, value_key=f_k)) if data.click_rage and not has_click_rage_filter: - constraints.append("""(issues.session_id IS NULL - OR (issues.datetime >= toDateTime(%(startDate)s/1000) - AND issues.datetime <= toDateTime(%(endDate)s/1000) - AND issues.project_id = toUInt16(%(project_id)s) - AND issues.event_type = 'ISSUE' - AND issues.project_id = toUInt16(%(project_id)s - AND mis.project_id = toUInt16(%(project_id)s - AND mis.type='click_rage'))))""") - query_from += """ LEFT JOIN experimental.events AS issues ON (main_events.session_id=issues.session_id) - LEFT JOIN experimental.issues AS mis ON (issues.issue_id=mis.issue_id)""" + constraints.append("""(issues_t.session_id IS NULL + OR (issues_t.datetime >= toDateTime(%(startDate)s/1000) + AND issues_t.datetime <= toDateTime(%(endDate)s/1000) + AND issues_t.project_id = toUInt16(%(project_id)s) + AND issues_t.event_type = 'ISSUE' + AND issues_t.project_id = toUInt16(%(project_id)s) + AND mis.project_id = toUInt16(%(project_id)s) + AND mis.type='click_rage'))""") + query_from += """ LEFT JOIN experimental.events AS issues_t ON (main_events.session_id=issues_t.session_id) + LEFT JOIN experimental.issues AS mis ON (issues_t.issue_id=mis.issue_id)""" with ch_client.ClickHouseClient() as cur: query = cur.format(f"""SELECT main_events.normalized_x AS normalized_x, main_events.normalized_y AS normalized_y