From e923a304c652843f137d3e7d1887da6f09bdf00d Mon Sep 17 00:00:00 2001 From: Rory Sawyer Date: Wed, 11 Oct 2023 09:48:28 -0400 Subject: [PATCH 1/2] feat: add forum interaction tab This change adds a forum interaction tab to the instructor dashboard and includes two new charts: the number of active forum users and the number of posts per user. --- .../assets/charts/Distinct_forum_users.yaml | 71 +++++++++ .../assets/charts/Posts_per_user.yaml | 65 ++++++++ .../dashboards/Instructor_Dashboard.yaml | 139 ++++++++++++++++-- .../datasets/fact_forum_interactions.yaml | 137 +++++++++++++++++ .../assets/datasets/posts_per_user.yaml | 101 +++++++++++++ .../queries/fact_forum_interactions.sql | 4 + .../openedx-assets/queries/posts_per_user.sql | 25 ++++ 7 files changed, 528 insertions(+), 14 deletions(-) create mode 100644 tutoraspects/templates/openedx-assets/assets/charts/Distinct_forum_users.yaml create mode 100644 tutoraspects/templates/openedx-assets/assets/charts/Posts_per_user.yaml create mode 100644 tutoraspects/templates/openedx-assets/assets/datasets/fact_forum_interactions.yaml create mode 100644 tutoraspects/templates/openedx-assets/assets/datasets/posts_per_user.yaml create mode 100644 tutoraspects/templates/openedx-assets/queries/fact_forum_interactions.sql create mode 100644 tutoraspects/templates/openedx-assets/queries/posts_per_user.sql diff --git a/tutoraspects/templates/openedx-assets/assets/charts/Distinct_forum_users.yaml b/tutoraspects/templates/openedx-assets/assets/charts/Distinct_forum_users.yaml new file mode 100644 index 000000000..e24546006 --- /dev/null +++ b/tutoraspects/templates/openedx-assets/assets/charts/Distinct_forum_users.yaml @@ -0,0 +1,71 @@ +_file_name: Distinct_forum_users.yaml +cache_timeout: null +certification_details: null +certified_by: null +dataset_uuid: 39d1e786-c0c8-4c56-81c8-56fb0df88001 +description: null +params: + adhoc_filters: [] + dashboards: + - 61 + datasource: 57__table + extra_form_data: {} + granularity_sqla: emission_time + header_font_size: 0.4 + metric: + aggregate: COUNT_DISTINCT + column: + advanced_data_type: null + certification_details: null + certified_by: null + column_name: actor_id + description: null + expression: null + filterable: true + groupby: true + id: 445 + is_certified: false + is_dttm: false + python_date_format: null + type: String + type_generic: 1 + verbose_name: null + warning_markdown: null + datasourceWarning: false + expressionType: SIMPLE + hasCustomLabel: false + label: COUNT_DISTINCT(actor_id) + optionName: metric_5y4uvwa13v4_f12i3twecs6 + sqlExpression: null + subheader_font_size: 0.15 + time_format: smart_date + time_range: No filter + viz_type: big_number_total + y_axis_format: SMART_NUMBER +query_context: '{"datasource": {"id": 57, "type": "table"}, "force": false, "queries": + [{"time_range": "No filter", "filters": [], "extras": {"having": "", "where": ""}, + "applied_time_extras": {}, "columns": [], "metrics": [{"expressionType": "SIMPLE", + "column": {"advanced_data_type": null, "certification_details": null, "certified_by": + null, "column_name": "actor_id", "description": null, "expression": null, "filterable": + true, "groupby": true, "id": 445, "is_certified": false, "is_dttm": false, "python_date_format": + null, "type": "String", "type_generic": 1, "verbose_name": null, "warning_markdown": + null}, "aggregate": "COUNT_DISTINCT", "sqlExpression": null, "datasourceWarning": + false, "hasCustomLabel": false, "label": "COUNT_DISTINCT(actor_id)", "optionName": + "metric_5y4uvwa13v4_f12i3twecs6"}], "annotation_layers": [], "series_limit": 0, + "order_desc": true, "url_params": {}, "custom_params": {}, "custom_form_data": {}}], + "form_data": {"datasource": "57__table", "viz_type": "big_number_total", "granularity_sqla": + "emission_time", "time_range": "No filter", "metric": {"expressionType": "SIMPLE", + "column": {"advanced_data_type": null, "certification_details": null, "certified_by": + null, "column_name": "actor_id", "description": null, "expression": null, "filterable": + true, "groupby": true, "id": 445, "is_certified": false, "is_dttm": false, "python_date_format": + null, "type": "String", "type_generic": 1, "verbose_name": null, "warning_markdown": + null}, "aggregate": "COUNT_DISTINCT", "sqlExpression": null, "datasourceWarning": + false, "hasCustomLabel": false, "label": "COUNT_DISTINCT(actor_id)", "optionName": + "metric_5y4uvwa13v4_f12i3twecs6"}, "adhoc_filters": [], "header_font_size": 0.4, + "subheader_font_size": 0.15, "y_axis_format": "SMART_NUMBER", "time_format": "smart_date", + "extra_form_data": {}, "dashboards": [61], "force": false, "result_format": "json", + "result_type": "full"}, "result_format": "json", "result_type": "full"}' +slice_name: Distinct forum users +uuid: feb323ad-c819-49ca-a336-584bd9ff1a2e +version: 1.0.0 +viz_type: big_number_total diff --git a/tutoraspects/templates/openedx-assets/assets/charts/Posts_per_user.yaml b/tutoraspects/templates/openedx-assets/assets/charts/Posts_per_user.yaml new file mode 100644 index 000000000..520de48ba --- /dev/null +++ b/tutoraspects/templates/openedx-assets/assets/charts/Posts_per_user.yaml @@ -0,0 +1,65 @@ +_file_name: Posts_per_user.yaml +cache_timeout: null +certification_details: null +certified_by: null +dataset_uuid: a2823d2e-54c4-4378-98c2-817f000c14ab +description: null +params: + adhoc_filters: [] + bottom_margin: auto + color_scheme: supersetColors + columns: [] + dashboards: + - 61 + datasource: 58__table + extra_form_data: {} + granularity_sqla: null + groupby: + - num_posts + metrics: + - count + order_desc: true + rich_tooltip: true + row_limit: 10000 + show_legend: true + slice_id: 922 + time_range: No filter + timeseries_limit_metric: + aggregate: null + column: null + datasourceWarning: false + expressionType: SQL + hasCustomLabel: false + label: num_posts + optionName: metric_tdazpzouidq_76qbq0kf86v + sqlExpression: num_posts + viz_type: dist_bar + x_axis_label: Posts per user + x_ticks_layout: auto + y_axis_bounds: + - null + - null + y_axis_format: SMART_NUMBER + y_axis_label: Number of users +query_context: '{"datasource": {"id": 58, "type": "table"}, "force": false, "queries": + [{"time_range": "No filter", "filters": [], "extras": {"having": "", "where": ""}, + "applied_time_extras": {}, "columns": ["num_posts"], "metrics": ["count"], "annotation_layers": + [], "row_limit": 10000, "series_limit": 0, "series_limit_metric": {"aggregate": + null, "column": null, "datasourceWarning": false, "expressionType": "SQL", "hasCustomLabel": + false, "label": "num_posts", "optionName": "metric_tdazpzouidq_76qbq0kf86v", "sqlExpression": + "num_posts"}, "order_desc": true, "url_params": {}, "custom_params": {}, "custom_form_data": + {}}], "form_data": {"datasource": "58__table", "viz_type": "dist_bar", "slice_id": + 922, "granularity_sqla": null, "time_range": "No filter", "metrics": ["count"], + "adhoc_filters": [], "groupby": ["num_posts"], "columns": [], "row_limit": 10000, + "timeseries_limit_metric": {"aggregate": null, "column": null, "datasourceWarning": + false, "expressionType": "SQL", "hasCustomLabel": false, "label": "num_posts", "optionName": + "metric_tdazpzouidq_76qbq0kf86v", "sqlExpression": "num_posts"}, "order_desc": true, + "color_scheme": "supersetColors", "show_legend": true, "rich_tooltip": true, "y_axis_format": + "SMART_NUMBER", "y_axis_label": "Number of users", "y_axis_bounds": [null, null], + "x_axis_label": "Posts per user", "bottom_margin": "auto", "x_ticks_layout": "auto", + "extra_form_data": {}, "dashboards": [61], "force": false, "result_format": "json", + "result_type": "full"}, "result_format": "json", "result_type": "full"}' +slice_name: Posts per user +uuid: bc191ce7-f39d-48db-86a9-d19949f4211d +version: 1.0.0 +viz_type: dist_bar diff --git a/tutoraspects/templates/openedx-assets/assets/dashboards/Instructor_Dashboard.yaml b/tutoraspects/templates/openedx-assets/assets/dashboards/Instructor_Dashboard.yaml index efac35cb6..8c9b25f31 100644 --- a/tutoraspects/templates/openedx-assets/assets/dashboards/Instructor_Dashboard.yaml +++ b/tutoraspects/templates/openedx-assets/assets/dashboards/Instructor_Dashboard.yaml @@ -5,12 +5,68 @@ css: '' dashboard_title: Instructor Dashboard description: null metadata: - chart_configuration: {} + chart_configuration: + '32': + crossFilters: + chartsInScope: + - 24 + - 25 + - 34 + - 37 + - 45 + - 46 + - 47 + - 52 + - 865 + - 879 + - 894 + - 908 + - 922 + scope: global + id: 32 + '34': + crossFilters: + chartsInScope: + - 24 + - 25 + - 32 + - 37 + - 45 + - 46 + - 47 + - 52 + - 865 + - 879 + - 894 + - 908 + - 922 + scope: global + id: 34 color_scheme: '' color_scheme_domain: [] cross_filters_enabled: false default_filters: '{}' expanded_slices: {} + global_chart_configuration: + chartsInScope: + - 24 + - 25 + - 32 + - 34 + - 37 + - 45 + - 46 + - 47 + - 52 + - 865 + - 879 + - 894 + - 908 + - 922 + scope: + excluded: [] + rootPath: + - ROOT_ID label_colors: {} native_filter_configuration: - cascadeParentIds: [] @@ -249,14 +305,14 @@ metadata: type: NATIVE_FILTER refresh_frequency: 0 shared_label_colors: - audit: '#1FA8C9' + count: '#454E7C' timed_refresh_immune_slices: [] position: CHART-AZZnl_lpMv: children: [] id: CHART-AZZnl_lpMv meta: - chartId: 297 + chartId: 25 height: 50 sliceName: Watches Per Video uuid: 829c1d5b-2844-4115-876a-34ad3b3cad64 @@ -271,7 +327,7 @@ position: children: [] id: CHART-GFCO8s2cxv meta: - chartId: 7 + chartId: 45 height: 50 sliceName: Distribution Of Responses uuid: f1651c44-a8f4-4b44-ad49-962823009319 @@ -282,11 +338,26 @@ position: - TAB-pOd4znTAV - ROW-lZkhTcIAro type: CHART + CHART-GJJ8VYQ03v: + children: [] + id: CHART-GJJ8VYQ03v + meta: + chartId: 922 + height: 50 + sliceName: Posts per user + uuid: bc191ce7-f39d-48db-86a9-d19949f4211d + width: 6 + parents: + - ROOT_ID + - TABS-SNeKAJcjhd + - TAB-eE0OQxuju + - ROW-la1XxBueHN + type: CHART CHART-Jr-gNVms2Q: children: [] id: CHART-Jr-gNVms2Q meta: - chartId: 101 + chartId: 34 height: 50 sliceName: Enrollment Events Per Day uuid: bb1147cc-b7bc-44b7-b06a-79b0db6626aa @@ -301,7 +372,7 @@ position: children: [] id: CHART-OMy4wjRBWt meta: - chartId: 3 + chartId: 52 height: 50 sliceName: Watched Video Segments uuid: 2985a9db-c338-4008-af52-2930b81ee2e5 @@ -316,7 +387,7 @@ position: children: [] id: CHART-RTO33WE9FH meta: - chartId: 366 + chartId: 894 height: 50 sliceName: Responses Per Problem uuid: a3e79162-4ace-4349-ab34-89aa60ae75ed @@ -331,7 +402,7 @@ position: children: [] id: CHART-Tej2oLPBAl meta: - chartId: 27 + chartId: 24 height: 50 sliceName: Transcripts / Captions Per Video uuid: 6b830def-f3ca-4b4c-9455-7a7b7354bce8 @@ -346,7 +417,7 @@ position: children: [] id: CHART-evjVO-ZSSd meta: - chartId: 8 + chartId: 32 height: 50 sliceName: Enrollments By Enrollment Mode uuid: 05ed7102-5464-4e2f-86ae-31700b787cc3 @@ -361,7 +432,7 @@ position: children: [] id: CHART-lTr8DL3XuI meta: - chartId: 183 + chartId: 46 height: 50 sliceName: Distribution Of Hints Per Correct Answer uuid: ee94be4c-6fdd-4295-b43c-40890d6c549d @@ -376,7 +447,7 @@ position: children: [] id: CHART-o56v9yEe2I meta: - chartId: 353 + chartId: 865 height: 50 sliceName: Distribution Of Problem Grades uuid: 4f7e3606-f5de-4643-97c0-bbb6340a3df2 @@ -387,11 +458,26 @@ position: - TAB-pOd4znTAV - ROW-lZkhTcIAro type: CHART + CHART-qG1WaGKl_b: + children: [] + id: CHART-qG1WaGKl_b + meta: + chartId: 908 + height: 50 + sliceName: Distinct forum users + uuid: feb323ad-c819-49ca-a336-584bd9ff1a2e + width: 6 + parents: + - ROOT_ID + - TABS-SNeKAJcjhd + - TAB-eE0OQxuju + - ROW-la1XxBueHN + type: CHART CHART-rnb6PSwCOS: children: [] id: CHART-rnb6PSwCOS meta: - chartId: 49 + chartId: 37 height: 50 sliceName: Currently Enrolled Learners Per Day uuid: ed2fe731-6544-422f-bc55-42f399f48b2c @@ -406,7 +492,7 @@ position: children: [] id: CHART-tWnaoVNNTH meta: - chartId: 233 + chartId: 47 height: 50 sliceName: Distribution Of Attempts uuid: db90930f-f16e-4c32-8050-0e4abae28f4c @@ -421,7 +507,7 @@ position: children: [] id: CHART-w-k4N2T_L8 meta: - chartId: 376 + chartId: 879 height: 50 sliceName: Course Grade Distribution uuid: f9adbc85-1f50-4c04-ace3-31ba7390de5e @@ -692,6 +778,18 @@ position: - TABS-SNeKAJcjhd - TAB-pOd4znTAV type: ROW + ROW-la1XxBueHN: + children: + - CHART-qG1WaGKl_b + - CHART-GJJ8VYQ03v + id: ROW-la1XxBueHN + meta: + background: BACKGROUND_TRANSPARENT + parents: + - ROOT_ID + - TABS-SNeKAJcjhd + - TAB-eE0OQxuju + type: ROW ROW-nNEywSG0jX: children: - MARKDOWN-NaNsE4EBKf @@ -771,6 +869,18 @@ position: - ROOT_ID - TABS-SNeKAJcjhd type: TAB + TAB-eE0OQxuju: + children: + - ROW-la1XxBueHN + id: TAB-eE0OQxuju + meta: + defaultText: Tab title + placeholder: Tab title + text: Forum Interaction + parents: + - ROOT_ID + - TABS-SNeKAJcjhd + type: TAB TAB-pOd4znTAV: children: - ROW-7H84y2hXCn @@ -792,6 +902,7 @@ position: - TAB-pOd4znTAV - TAB-7PGDduCA7 - TAB-CLiLC4zxo + - TAB-eE0OQxuju id: TABS-SNeKAJcjhd meta: {} parents: diff --git a/tutoraspects/templates/openedx-assets/assets/datasets/fact_forum_interactions.yaml b/tutoraspects/templates/openedx-assets/assets/datasets/fact_forum_interactions.yaml new file mode 100644 index 000000000..0d58f5347 --- /dev/null +++ b/tutoraspects/templates/openedx-assets/assets/datasets/fact_forum_interactions.yaml @@ -0,0 +1,137 @@ +_file_name: fact_forum_interactions.yaml +cache_timeout: null +columns: +- advanced_data_type: null + column_name: event_id + description: null + expression: null + extra: {} + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: UUID + verbose_name: null +- advanced_data_type: null + column_name: emission_time + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: true + python_date_format: null + type: DateTime + verbose_name: null +- advanced_data_type: null + column_name: actor_id + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: course_name + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: object_id + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: verb_id + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: course_key + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: course_run + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: org + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +database_uuid: 21174b6c-4d40-4958-8161-d6c3cf5e77b6 +default_endpoint: null +description: null +extra: null +fetch_values_predicate: null +filter_select_enabled: false +main_dttm_col: null +metrics: +- currency: null + d3format: null + description: null + expression: count(*) + extra: null + metric_name: count + metric_type: null + verbose_name: null + warning_text: null +normalize_columns: true +offset: 0 +params: null +schema: main +sql: "{% include 'openedx-assets/queries/fact_forum_interactions.sql' %}" +table_name: fact_forum_interactions +template_params: {} +uuid: 39d1e786-c0c8-4c56-81c8-56fb0df88001 +version: 1.0.0 diff --git a/tutoraspects/templates/openedx-assets/assets/datasets/posts_per_user.yaml b/tutoraspects/templates/openedx-assets/assets/datasets/posts_per_user.yaml new file mode 100644 index 000000000..ea0065896 --- /dev/null +++ b/tutoraspects/templates/openedx-assets/assets/datasets/posts_per_user.yaml @@ -0,0 +1,101 @@ +_file_name: posts_per_user.yaml +cache_timeout: null +columns: +- advanced_data_type: null + column_name: num_posts + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: UInt64 + verbose_name: null +- advanced_data_type: null + column_name: actor_id + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: course_name + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: course_key + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: course_run + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +- advanced_data_type: null + column_name: org + description: null + expression: null + extra: null + filterable: true + groupby: true + is_active: true + is_dttm: false + python_date_format: null + type: String + verbose_name: null +database_uuid: 21174b6c-4d40-4958-8161-d6c3cf5e77b6 +default_endpoint: null +description: null +extra: null +fetch_values_predicate: null +filter_select_enabled: false +main_dttm_col: null +metrics: +- currency: null + d3format: null + description: null + expression: count(*) + extra: null + metric_name: count + metric_type: null + verbose_name: null + warning_text: null +normalize_columns: true +offset: 0 +params: null +schema: main +sql: "{% include 'openedx-assets/queries/posts_per_user.sql' %}" +table_name: posts_per_user +template_params: {} +uuid: a2823d2e-54c4-4378-98c2-817f000c14ab +version: 1.0.0 diff --git a/tutoraspects/templates/openedx-assets/queries/fact_forum_interactions.sql b/tutoraspects/templates/openedx-assets/queries/fact_forum_interactions.sql new file mode 100644 index 000000000..1126c18bc --- /dev/null +++ b/tutoraspects/templates/openedx-assets/queries/fact_forum_interactions.sql @@ -0,0 +1,4 @@ +select * +from {{ DBT_PROFILE_TARGET_DATABASE }}.fact_forum_interactions +where 1=1 + {% include 'openedx-assets/queries/common_filters.sql' %} diff --git a/tutoraspects/templates/openedx-assets/queries/posts_per_user.sql b/tutoraspects/templates/openedx-assets/queries/posts_per_user.sql new file mode 100644 index 000000000..b8224d6f6 --- /dev/null +++ b/tutoraspects/templates/openedx-assets/queries/posts_per_user.sql @@ -0,0 +1,25 @@ +select + org, + course_key, + course_name, + course_run, + actor_id, + count(*) as num_posts +from + {{ DBT_PROFILE_TARGET_DATABASE }}.fact_forum_interactions +where + 1=1 + {% raw %} + {% if from_dttm is not none %} + and emission_time > '{{ from_dttm }}' + {% endif %} + {% if to_dttm is not none %} + and emission_time < '{{ to_dttm }}' + {% endif %} + {% endraw %} +group by + org, + course_key, + course_name, + course_run, + actor_id From 48cd3dae28d5765da235c4a035d5971636d3cdfb Mon Sep 17 00:00:00 2001 From: Rory Sawyer Date: Wed, 11 Oct 2023 10:58:01 -0400 Subject: [PATCH 2/2] refactor: remove unnecessary query_context from forum charts --- .../assets/charts/Distinct_forum_users.yaml | 25 +---------------- .../assets/charts/Posts_per_user.yaml | 28 ++++--------------- 2 files changed, 6 insertions(+), 47 deletions(-) diff --git a/tutoraspects/templates/openedx-assets/assets/charts/Distinct_forum_users.yaml b/tutoraspects/templates/openedx-assets/assets/charts/Distinct_forum_users.yaml index e24546006..591d8bc70 100644 --- a/tutoraspects/templates/openedx-assets/assets/charts/Distinct_forum_users.yaml +++ b/tutoraspects/templates/openedx-assets/assets/charts/Distinct_forum_users.yaml @@ -7,7 +7,7 @@ description: null params: adhoc_filters: [] dashboards: - - 61 + - 61 datasource: 57__table extra_form_data: {} granularity_sqla: emission_time @@ -42,29 +42,6 @@ params: time_range: No filter viz_type: big_number_total y_axis_format: SMART_NUMBER -query_context: '{"datasource": {"id": 57, "type": "table"}, "force": false, "queries": - [{"time_range": "No filter", "filters": [], "extras": {"having": "", "where": ""}, - "applied_time_extras": {}, "columns": [], "metrics": [{"expressionType": "SIMPLE", - "column": {"advanced_data_type": null, "certification_details": null, "certified_by": - null, "column_name": "actor_id", "description": null, "expression": null, "filterable": - true, "groupby": true, "id": 445, "is_certified": false, "is_dttm": false, "python_date_format": - null, "type": "String", "type_generic": 1, "verbose_name": null, "warning_markdown": - null}, "aggregate": "COUNT_DISTINCT", "sqlExpression": null, "datasourceWarning": - false, "hasCustomLabel": false, "label": "COUNT_DISTINCT(actor_id)", "optionName": - "metric_5y4uvwa13v4_f12i3twecs6"}], "annotation_layers": [], "series_limit": 0, - "order_desc": true, "url_params": {}, "custom_params": {}, "custom_form_data": {}}], - "form_data": {"datasource": "57__table", "viz_type": "big_number_total", "granularity_sqla": - "emission_time", "time_range": "No filter", "metric": {"expressionType": "SIMPLE", - "column": {"advanced_data_type": null, "certification_details": null, "certified_by": - null, "column_name": "actor_id", "description": null, "expression": null, "filterable": - true, "groupby": true, "id": 445, "is_certified": false, "is_dttm": false, "python_date_format": - null, "type": "String", "type_generic": 1, "verbose_name": null, "warning_markdown": - null}, "aggregate": "COUNT_DISTINCT", "sqlExpression": null, "datasourceWarning": - false, "hasCustomLabel": false, "label": "COUNT_DISTINCT(actor_id)", "optionName": - "metric_5y4uvwa13v4_f12i3twecs6"}, "adhoc_filters": [], "header_font_size": 0.4, - "subheader_font_size": 0.15, "y_axis_format": "SMART_NUMBER", "time_format": "smart_date", - "extra_form_data": {}, "dashboards": [61], "force": false, "result_format": "json", - "result_type": "full"}, "result_format": "json", "result_type": "full"}' slice_name: Distinct forum users uuid: feb323ad-c819-49ca-a336-584bd9ff1a2e version: 1.0.0 diff --git a/tutoraspects/templates/openedx-assets/assets/charts/Posts_per_user.yaml b/tutoraspects/templates/openedx-assets/assets/charts/Posts_per_user.yaml index 520de48ba..923080447 100644 --- a/tutoraspects/templates/openedx-assets/assets/charts/Posts_per_user.yaml +++ b/tutoraspects/templates/openedx-assets/assets/charts/Posts_per_user.yaml @@ -10,14 +10,14 @@ params: color_scheme: supersetColors columns: [] dashboards: - - 61 + - 61 datasource: 58__table extra_form_data: {} granularity_sqla: null groupby: - - num_posts + - num_posts metrics: - - count + - count order_desc: true rich_tooltip: true row_limit: 10000 @@ -37,28 +37,10 @@ params: x_axis_label: Posts per user x_ticks_layout: auto y_axis_bounds: - - null - - null + - null + - null y_axis_format: SMART_NUMBER y_axis_label: Number of users -query_context: '{"datasource": {"id": 58, "type": "table"}, "force": false, "queries": - [{"time_range": "No filter", "filters": [], "extras": {"having": "", "where": ""}, - "applied_time_extras": {}, "columns": ["num_posts"], "metrics": ["count"], "annotation_layers": - [], "row_limit": 10000, "series_limit": 0, "series_limit_metric": {"aggregate": - null, "column": null, "datasourceWarning": false, "expressionType": "SQL", "hasCustomLabel": - false, "label": "num_posts", "optionName": "metric_tdazpzouidq_76qbq0kf86v", "sqlExpression": - "num_posts"}, "order_desc": true, "url_params": {}, "custom_params": {}, "custom_form_data": - {}}], "form_data": {"datasource": "58__table", "viz_type": "dist_bar", "slice_id": - 922, "granularity_sqla": null, "time_range": "No filter", "metrics": ["count"], - "adhoc_filters": [], "groupby": ["num_posts"], "columns": [], "row_limit": 10000, - "timeseries_limit_metric": {"aggregate": null, "column": null, "datasourceWarning": - false, "expressionType": "SQL", "hasCustomLabel": false, "label": "num_posts", "optionName": - "metric_tdazpzouidq_76qbq0kf86v", "sqlExpression": "num_posts"}, "order_desc": true, - "color_scheme": "supersetColors", "show_legend": true, "rich_tooltip": true, "y_axis_format": - "SMART_NUMBER", "y_axis_label": "Number of users", "y_axis_bounds": [null, null], - "x_axis_label": "Posts per user", "bottom_margin": "auto", "x_ticks_layout": "auto", - "extra_form_data": {}, "dashboards": [61], "force": false, "result_format": "json", - "result_type": "full"}, "result_format": "json", "result_type": "full"}' slice_name: Posts per user uuid: bc191ce7-f39d-48db-86a9-d19949f4211d version: 1.0.0