Skip to content

Commit 02796ab

Browse files
Create Base Models for Food Service and Migrant Education Programs (#144)
* added 2 program base models * added additional columns from handbook * updated begin and end date column name * created staging models * updated models * updated yaml files with model names * puled in CTE models and updated yml file to account for them. * removed column from base model * removed cte files before PR * updated changelog with new base/stage models * updated YAML files with enable/disable ability * fixed issues w. models * updated stage.yml file * added cte to stage models * brought in cte stage files for testing * removed duplicate cte models from stage yml file * added program associations enable/disable to changelog. * updated alphabetical order of stage file * fixed compilation issues * updated _stage.yml file * shorten changelog --------- Co-authored-by: rlittle08 <rlittle@edanalytics.org>
1 parent 77a4a1c commit 02796ab

9 files changed

Lines changed: 248 additions & 2 deletions

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
# Unreleased
22

33
## New features
4+
- Add base/stage models `base_ef3__student_school_food_service_program_association`, `stg_ef3__student_school_food_service_program_association`, `stg_ef3__stu_school_food_service__program_services`
5+
- Add base/stage models `base_ef3__student_migrant_education_program_associations`, `stg_ef3__student_migrant_education_program_associations`, `stg_ef3__stu_migrant_edu__program_services`
46
- Add `stg_ef3__students__other_names`
7+
58
## Under the hood
69
## Fixes
710

models/staging/edfi_3/base/_edfi_3__base.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,10 @@ models:
150150
config:
151151
tags: ['language_instruction']
152152
enabled: "{{ var('src:program:language_instruction:enabled', True) }}"
153+
- name: base_ef3__student_migrant_education_program_associations
154+
config:
155+
tags: ['migrant_education']
156+
enabled: "{{ var('src:program:migrant_education:enabled', True) }}"
153157
- name: base_ef3__student_parent_associations
154158
config:
155159
tags: ['core']
@@ -162,6 +166,10 @@ models:
162166
- name: base_ef3__student_school_attendance_events
163167
config:
164168
tags: ['core']
169+
- name: base_ef3__student_school_food_service_program_association
170+
config:
171+
tags: ['food_service']
172+
enabled: "{{ var('src:program:food_service:enabled', True) }}"
165173
- name: base_ef3__student_section_associations
166174
config:
167175
tags: ['core']
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
with source_stu_programs as (
2+
{{ source_edfi3('student_migrant_education_program_associations') }}
3+
),
4+
5+
renamed as (
6+
select
7+
-- generic columns
8+
tenant_code,
9+
api_year,
10+
pull_timestamp,
11+
last_modified_timestamp,
12+
file_row_number,
13+
filename,
14+
is_deleted,
15+
16+
v:id::string as record_guid,
17+
ods_version,
18+
data_model_version,
19+
v:studentReference:studentUniqueId::string as student_unique_id,
20+
v:educationOrganizationReference:educationOrganizationId::int as ed_org_id,
21+
v:educationOrganizationReference:link:rel::string as ed_org_type,
22+
v:beginDate::date as program_enroll_begin_date,
23+
v:endDate::date as program_enroll_end_date,
24+
v:programReference:programName::string as program_name,
25+
26+
v:priorityForServices::boolean as priority_for_service,
27+
28+
v:lastQualifyingMove::date as last_qualifying_move,
29+
v:usInitialEntry::date as us_initial_entry,
30+
v:usMostRecentEntry::date as us_most_recent_entry,
31+
v:USInitialSchoolEntry::date as us_initial_school_entry,
32+
v:qualifyingArrivalDate::date as qualifying_arrival_date,
33+
v:stateResidencyDate::date as state_residency_date,
34+
v:eligibilityExpirationDate::date as eligibility_expiration_date,
35+
-- descriptors
36+
{{ extract_descriptor('v:programReference:programTypeDescriptor') }} as program_type,
37+
{{ extract_descriptor('v:continuationOfServicesReasonDescriptor') }} as continuation_of_services_reason,
38+
39+
-- references
40+
v:educationOrganizationReference as education_organization_reference,
41+
v:programReference as program_reference,
42+
v:studentReference as student_reference,
43+
44+
-- lists
45+
v:migrantEducationProgramServices as v_migrant_education_program_services,
46+
v:programParticipationStatuses as v_program_participation_statuses,
47+
48+
-- edfi extensions
49+
v:_ext as v_ext
50+
from source_stu_programs
51+
)
52+
53+
select * from renamed
54+
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
with source_stu_program as (
2+
{{ source_edfi3('student_school_food_service_program_associations') }}
3+
),
4+
5+
renamed as (
6+
select
7+
-- generic columns
8+
tenant_code,
9+
api_year,
10+
pull_timestamp,
11+
last_modified_timestamp,
12+
file_row_number,
13+
filename,
14+
is_deleted,
15+
16+
v:id::string as record_guid,
17+
ods_version::string,
18+
data_model_version,
19+
v:studentReference:studentUniqueId::string as student_unique_id,
20+
v:educationOrganizationReference:educationOrganizationId::int as ed_org_id,
21+
v:educationOrganizationReference:link:rel::string as ed_org_type,
22+
v:programReference:educationOrganizationId::int as program_ed_org_id,
23+
v:beginDate::date as program_enroll_begin_date,
24+
v:endDate::date as program_enroll_end_date,
25+
v:programReference:programName::string as program_name,
26+
27+
v:directCertification::boolean as direct_certification,
28+
v:servedOutsideOfRegularSession::boolean as served_outside_of_regular_session,
29+
30+
-- descriptors
31+
{{ extract_descriptor('v:programReference:programTypeDescriptor') }} as program_type,
32+
{{ extract_descriptor('v:reasonExitedDescriptor') }} as reason_exited,
33+
34+
-- references
35+
v:educationOrganizationReference as education_organization_reference,
36+
v:programReference as program_reference,
37+
v:studentReference as student_reference,
38+
39+
-- lists
40+
v:programParticipationStatuses as v_program_participation_statuses,
41+
v:schoolFoodServiceProgramServices as v_school_food_service_program_services,
42+
43+
-- edfi extensions
44+
v:_ext as v_ext
45+
46+
from source_stu_program
47+
)
48+
49+
select * from renamed

models/staging/edfi_3/stage/_edfi_3__stage.yml

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ models:
536536
- name: stg_ef3__staffs__identification_codes
537537
config:
538538
tags: ['core']
539-
539+
540540
- name: stg_ef3__stu_cte__program_services
541541
config:
542542
tags: ['cte']
@@ -593,6 +593,16 @@ models:
593593
tags: ['language_instruction']
594594
enabled: "{{ var('src:program:language_instruction:enabled', True) }}"
595595

596+
- name: stg_ef3__stu_migrant_edu__program_services
597+
config:
598+
tags: ['migrant_education']
599+
enabled: "{{ var('src:program:migrant_education:enabled', True) }}"
600+
601+
- name: stg_ef3__stu_school_food_service__program_services
602+
config:
603+
tags: ['food_service']
604+
enabled: "{{ var('src:program:food_service:enabled', True) }}"
605+
596606
- name: stg_ef3__stu_spec_ed__disabilities
597607
config:
598608
tags: ['special_ed']
@@ -669,7 +679,7 @@ models:
669679
- name: k_contact
670680
tests:
671681
*ref_k_contact
672-
682+
673683
- name: stg_ef3__student_cte_program_associations
674684
config:
675685
tags: ['cte']
@@ -741,6 +751,11 @@ models:
741751
tests:
742752
*ref_k_program
743753

754+
- name: stg_ef3__student_migrant_education_program_associations
755+
config:
756+
tags: ['migrant_education']
757+
enabled: "{{ var('src:program:migrant_education:enabled', True) }}"
758+
744759
- name: stg_ef3__student_objective_assessments
745760
config:
746761
tags: ['assessment']
@@ -807,6 +822,11 @@ models:
807822
tests:
808823
*ref_k_session
809824

825+
- name: stg_ef3__student_school_food_service_program_association
826+
config:
827+
tags: ['food_service']
828+
enabled: "{{ var('src:program:food_service:enabled', True) }}"
829+
810830
- name: stg_ef3__student_section_associations
811831
config:
812832
tags: ['core']
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
with stage_stu_programs as (
2+
select * from {{ ref('stg_ef3__student_migrant_education_program_associations') }}
3+
),
4+
5+
flattened as (
6+
select
7+
tenant_code,
8+
api_year,
9+
k_student,
10+
k_student_xyear,
11+
k_program,
12+
k_lea,
13+
k_school,
14+
15+
program_enroll_begin_date,
16+
program_enroll_end_date,
17+
{{ extract_descriptor('value:migrantEducationProgramServiceDescriptor::string') }} as program_service,
18+
value:primaryIndicator::boolean as primary_indicator,
19+
value:serviceBeginDate::date as service_begin_date,
20+
value:serviceEndDate::date as service_end_date,
21+
22+
-- edfi extensions
23+
value:_ext as v_ext
24+
25+
from stage_stu_programs
26+
{{ json_flatten('v_migrant_education_program_services') }}
27+
)
28+
29+
select * from flattened
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
with stage_stu_programs as (
2+
select * from {{ ref('stg_ef3__student_school_food_service_program_association') }}
3+
),
4+
5+
flattened as (
6+
select
7+
tenant_code,
8+
api_year,
9+
k_student,
10+
k_student_xyear,
11+
k_program,
12+
k_lea,
13+
k_school,
14+
15+
program_enroll_begin_date,
16+
program_enroll_end_date,
17+
{{ extract_descriptor('value:schoolFoodServiceProgramServiceDescriptor::string') }} as program_service,
18+
value:primaryIndicator::boolean as primary_indicator,
19+
value:serviceBeginDate::date as service_begin_date,
20+
value:serviceEndDate::date as service_end_date,
21+
22+
-- edfi extensions
23+
value:_ext as v_ext
24+
25+
from stage_stu_programs
26+
{{ json_flatten('v_school_food_service_program_services') }}
27+
)
28+
29+
select * from flattened
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
with base_stu_programs as (
2+
select * from {{ ref('base_ef3__student_migrant_education_program_associations') }}
3+
),
4+
5+
keyed as (
6+
select
7+
{{ gen_skey('k_student') }},
8+
{{ gen_skey('k_student_xyear') }},
9+
{{ gen_skey('k_program') }},
10+
{{ edorg_ref(annualize=False) }},
11+
api_year as school_year,
12+
base_stu_programs.*
13+
{{ extract_extension(model_name=this.name, flatten=True) }}
14+
15+
from base_stu_programs
16+
),
17+
18+
deduped as (
19+
{{ dbt_utils.deduplicate(
20+
relation='keyed',
21+
partition_by='k_student, k_program, program_enroll_begin_date, school_year',
22+
order_by='last_modified_timestamp desc, pull_timestamp desc'
23+
) }}
24+
)
25+
26+
select * from deduped
27+
where not is_deleted
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
with base_stu_programs as (
2+
select * from {{ ref('base_ef3__student_school_food_service_program_association') }}
3+
),
4+
5+
keyed as (
6+
select
7+
{{ gen_skey('k_student') }},
8+
{{ gen_skey('k_student_xyear') }},
9+
{{ gen_skey('k_program') }},
10+
{{ edorg_ref(annualize=False) }},
11+
api_year as school_year,
12+
base_stu_programs.*
13+
{{ extract_extension(model_name=this.name, flatten=True) }}
14+
15+
from base_stu_programs
16+
),
17+
18+
deduped as (
19+
{{ dbt_utils.deduplicate(
20+
relation='keyed',
21+
partition_by='k_student, k_program, program_enroll_begin_date, school_year',
22+
order_by='last_modified_timestamp desc, pull_timestamp desc'
23+
) }}
24+
)
25+
26+
select * from deduped
27+
where not is_deleted

0 commit comments

Comments
 (0)