Skip to content

Commit 7a71daf

Browse files
committed
feat: limit data returned when filters are absent
For course- and component-scoped datsets, limit the results of a query when filter values are absent. This will prevent returning a lot of data in a way that could be confusing for users.
1 parent 4ed13c2 commit 7a71daf

9 files changed

+71
-47
lines changed

tutoraspects/templates/openedx-assets/assets/charts/Grade_distribution_courses.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ params:
2424
- null
2525
- null
2626
y_axis_format: SMART_NUMBER
27-
slice_name: Grade distribution - courses
27+
slice_name: Grade distribution - course
2828
uuid: f9adbc85-1f50-4c04-ace3-31ba7390de5e
2929
version: 1.0.0
3030
viz_type: dist_bar

tutoraspects/templates/openedx-assets/assets/charts/Grade_distribution_problems.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ params:
2424
- null
2525
- null
2626
y_axis_format: SMART_NUMBER
27-
slice_name: Grade distribution - problems
27+
slice_name: Grade distribution - problem
2828
uuid: 4f7e3606-f5de-4643-97c0-bbb6340a3df2
2929
version: 1.0.0
3030
viz_type: dist_bar

tutoraspects/templates/openedx-assets/assets/dashboards/Instructor_dashboard.yaml

+11-8
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ metadata:
2525
- 47
2626
- 48
2727
- 52
28+
- 865
29+
- 879
2830
controlValues:
2931
enableEmptyFilter: false
3032
defaultDataMask:
@@ -186,9 +188,10 @@ metadata:
186188
- 45
187189
- 46
188190
- 47
191+
- 865
189192
controlValues:
190-
defaultToFirstItem: true
191-
enableEmptyFilter: true
193+
defaultToFirstItem: false
194+
enableEmptyFilter: false
192195
inverseSelection: false
193196
multiSelect: false
194197
searchAllOptions: false
@@ -200,7 +203,6 @@ metadata:
200203
filterType: filter_select
201204
id: NATIVE_FILTER-6xfFY5VGz
202205
name: Problem name
203-
requiredFirst: true
204206
scope:
205207
excluded: []
206208
rootPath:
@@ -216,10 +218,11 @@ metadata:
216218
- NATIVE_FILTER-Vx7HxG8_7
217219
- NATIVE_FILTER-XPuiTOej4
218220
- NATIVE_FILTER-E6-vOpjZv
219-
chartsInScope: []
221+
chartsInScope:
222+
- 52
220223
controlValues:
221-
defaultToFirstItem: true
222-
enableEmptyFilter: true
224+
defaultToFirstItem: false
225+
enableEmptyFilter: false
223226
inverseSelection: false
224227
multiSelect: false
225228
searchAllOptions: false
@@ -231,12 +234,12 @@ metadata:
231234
filterType: filter_select
232235
id: NATIVE_FILTER-V77Ybaw2w
233236
name: Video name
234-
requiredFirst: true
235237
scope:
236238
excluded: []
237239
rootPath:
238240
- TAB-CLiLC4zxo
239-
tabsInScope: []
241+
tabsInScope:
242+
- TAB-CLiLC4zxo
240243
targets:
241244
- column:
242245
name: video_name

tutoraspects/templates/openedx-assets/queries/fact_course_grades.sql

+7-8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@ with grades as (
22
select *
33
from {{ DBT_PROFILE_TARGET_DATABASE }}.fact_grades
44
where grade_type = 'course'
5+
{% raw %}
6+
{% if filter_values('course_name') != [] %}
7+
and entity_name in {{ filter_values('course_name', remove_filter=True) | where_in }}
8+
{% else %}
9+
and 0=1
10+
{% endif %}
11+
{% endraw %}
512
{% include 'openedx-assets/queries/common_filters.sql' %}
613
),
714
most_recent_grades as (
@@ -35,11 +42,3 @@ from
3542
grades
3643
join most_recent_grades
3744
using (org, course_key, entity_id, actor_id, emission_time)
38-
where
39-
{% raw %}
40-
{% if filter_values('course_name') != [] %}
41-
entity_name in {{ filter_values('course_name', remove_filter=True) | where_in }}
42-
{% else %}
43-
entity_name in ('')
44-
{% endif %}
45-
{% endraw %}

tutoraspects/templates/openedx-assets/queries/fact_problem_grades.sql

+12-10
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
with grades as (
22
select *
33
from {{ DBT_PROFILE_TARGET_DATABASE }}.fact_grades
4-
where grade_type = 'problem'
5-
{% include 'openedx-assets/queries/common_filters.sql' %}
4+
where
5+
grade_type = 'problem'
6+
7+
{% raw %}
8+
{% if filter_values('problem_name') != [] %}
9+
and entity_name in {{ filter_values('problem_name', remove_filter=True) | where_in }}
10+
{% else %}
11+
and 1=0
12+
{% endif %}
13+
{% endraw %}
14+
15+
{% include 'openedx-assets/queries/common_filters.sql' %}
616
),
717
most_recent_grades as (
818
select
@@ -35,11 +45,3 @@ from
3545
grades
3646
join most_recent_grades
3747
using (org, course_key, entity_id, actor_id, emission_time)
38-
where
39-
{% raw %}
40-
{% if filter_values('problem_name') != [] %}
41-
entity_name in {{ filter_values('problem_name', remove_filter=True) | where_in }}
42-
{% else %}
43-
entity_name in ('')
44-
{% endif %}
45-
{% endraw %}

tutoraspects/templates/openedx-assets/queries/fact_problem_responses.sql

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@ with problem_responses as (
22
select *
33
from {{ DBT_PROFILE_TARGET_DATABASE }}.fact_problem_responses
44
where
5-
1=1
5+
{% raw %}
6+
{% if filter_values('problem_name') != [] %}
7+
problem_name in {{ filter_values('problem_name') | where_in }}
8+
{% else %}
9+
1=0
10+
{% endif %}
11+
{% endraw %}
612
{% include 'openedx-assets/queries/common_filters.sql' %}
713
)
814

tutoraspects/templates/openedx-assets/queries/fact_transcript_usage.sql

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@ with transcripts as (
22
select *
33
from {{ DBT_PROFILE_TARGET_DATABASE }}.fact_transcript_usage
44
where
5-
1=1
5+
{% raw %}
6+
{% if filter_values('video_name') != [] %}
7+
video_name in {{ filter_values('video_name', remove_filter=True) | where_in }}
8+
{% else %}
9+
0=1
10+
{% endif %}
11+
{% endraw %}
612
{% include 'openedx-assets/queries/common_filters.sql' %}
713
)
814

tutoraspects/templates/openedx-assets/queries/fact_video_plays.sql

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@ with plays as (
22
select *
33
from {{ DBT_PROFILE_TARGET_DATABASE }}.fact_video_plays
44
where
5-
1=1
5+
{% raw %}
6+
{% if filter_values('video_name') != [] %}
7+
video_name in {{ filter_values('video_name') | where_in }}
8+
{% else %}
9+
1=0
10+
{% endif %}
11+
{% endraw %}
612
{% include 'openedx-assets/queries/common_filters.sql' %}
713
)
814

tutoraspects/templates/openedx-assets/queries/fact_watched_video_segments.sql

+18-16
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,28 @@
1-
with starts as (
2-
select
3-
emission_time,
1+
with video_events as (
2+
emission_time,
43
org,
54
course_key,
65
splitByString('/xblock/', object_id)[-1] as video_id,
76
actor_id,
87
verb_id,
98
video_position
109
from {{ ASPECTS_XAPI_DATABASE }}.{{ ASPECTS_VIDEO_PLAYBACK_EVENTS_TABLE }}
11-
where
12-
verb_id = 'https://w3id.org/xapi/video/verbs/played'
13-
{% include 'openedx-assets/queries/common_filters.sql' %}
10+
where 1=1
11+
{% include 'openedx-assets/queries/common_filters.sql' %}
12+
), starts as (
13+
select *
14+
from video_events
15+
where verb_id = 'https://w3id.org/xapi/video/verbs/played'
1416
), ends as (
15-
select
16-
emission_time,
17-
org,
18-
course_key,
19-
splitByString('/xblock/', object_id)[-1] as video_id,
20-
actor_id,
21-
verb_id,
22-
video_position
23-
from {{ ASPECTS_XAPI_DATABASE }}.{{ ASPECTS_VIDEO_PLAYBACK_EVENTS_TABLE }}
17+
select *
18+
from video_events
2419
where
2520
verb_id in (
2621
'http://adlnet.gov/expapi/verbs/completed',
2722
'https://w3id.org/xapi/video/verbs/seeked',
2823
'https://w3id.org/xapi/video/verbs/paused',
2924
'http://adlnet.gov/expapi/verbs/terminated'
3025
)
31-
{% include 'openedx-assets/queries/common_filters.sql' %}
3226
), segments as(
3327
select
3428
starts.org as org,
@@ -76,3 +70,11 @@ select
7670
started_at,
7771
arrayJoin(range(start_position, end_position, 5)) as segment_start
7872
from enriched_segments
73+
where
74+
{% raw %}
75+
{% if filter_values('video_name') != [] %}
76+
video_name in {{ filter_values('video_name') | where_in }}
77+
{% else %}
78+
1=0
79+
{% endif %}
80+
{% endraw %}

0 commit comments

Comments
 (0)