@@ -10,25 +10,93 @@ with combined_enrollments as (
1010 select * from {{ ref(' int__mitxonline__course_runs' ) }}
1111)
1212
13- , mitxonline_enrollment as (
13+ , course_pages as (
14+ select * from {{ ref(' stg__mitxonline__app__postgres__cms_coursepage' ) }}
15+ )
16+
17+ , wagtail_page as (
18+ select * from {{ ref(' stg__mitxonline__app__postgres__cms_wagtail_page' ) }}
19+ )
20+
21+ , mitxonline_certificate_page as (
22+
23+ select
24+ mitxonline__course_runs .courserun_id
25+ , mitxonline__course_runs .courserun_readable_id
26+ , certificate_page .wagtail_page_id as certificate_page_id
27+ from mitxonline__course_runs
28+ join course_pages
29+ on mitxonline__course_runs .course_id = course_pages .course_id
30+ join wagtail_page
31+ on course_pages .wagtail_page_id = wagtail_page .wagtail_page_id
32+ join wagtail_page as certificate_page
33+ on certificate_page .wagtail_page_path like wagtail_page .wagtail_page_path || ' %'
34+ and certificate_page .wagtail_page_path <> wagtail_page .wagtail_page_path
35+
36+ )
37+
38+ , edx_signatories as (
39+ select
40+ courserun_readable_id
41+ , array_agg(signatory_normalized_name order by signatory_normalized_name)
42+ filter (where signatory_normalized_name <> ' ' ) as signatory_names
43+ , array_sort(
44+ array_agg(mitxonline_signatory .wagtail_page_id )
45+ filter (where mitxonline_signatory .wagtail_page_id is not null )
46+ ) AS signatory_ids
47+ from {{ ref(' stg__edxorg__s3__course_certificate_signatory' ) }} edx_signatory
48+ left join {{ ref(' stg__mitxonline__app__postgres__cms_signatorypage' ) }} as mitxonline_signatory
49+ on edx_signatory .signatory_normalized_name = mitxonline_signatory .signatorypage_name
50+ group by courserun_readable_id
51+ )
52+
53+ , mitxonline_certificate_revision as (
1454 select
55+ revision .wagtailcore_revision_id
56+ , cast(revision .wagtail_page_id as bigint ) as certificate_page_id
57+ , array_sort(
58+ transform(
59+ cast(
60+ json_parse(json_query(wagtailcore_revision_content, ' lax $.signatories' omit quotes)) as array(json)
61+ )
62+ , x - > CAST(json_extract_scalar(x, ' $.value' ) as integer )
63+ )
64+ ) AS signatory_ids
65+ from {{ ref(' stg__mitxonline__app__postgres__cms_wagtailcore_revision' ) }} as revision
66+ inner join {{ ref(' stg__mitxonline__app__postgres__django_contenttype' ) }} as contenttype
67+ on revision .contenttype_id = contenttype .contenttype_id
68+ where contenttype .contenttype_full_name = ' cms_certificatepage'
69+ )
70+
71+ , edx_to_mitxonline_certificate_revision as (
72+ select distinct
73+ edx_signatories .courserun_readable_id
74+ , edx_signatories .signatory_names
75+ , mitxonline_certificate_page .courserun_id
76+ , mitxonline_certificate_revision .wagtailcore_revision_id
77+ from edx_signatories
78+ inner join mitxonline_certificate_page
79+ on mitxonline_certificate_page .courserun_readable_id = edx_signatories .courserun_readable_id
80+ inner join mitxonline_certificate_revision
81+ on mitxonline_certificate_page .certificate_page_id = mitxonline_certificate_revision .certificate_page_id
82+ and edx_signatories .signatory_ids = mitxonline_certificate_revision .signatory_ids
83+ )
84+
85+ , mitxonline_enrollment as (
86+ select distinct
1587 combined_enrollments .courserun_readable_id
1688 , combined_enrollments .user_email
1789 , combined_enrollments .course_readable_id
1890 from combined_enrollments
1991 where combined_enrollments .platform = ' {{ var("mitxonline") }}'
20- group by
21- combined_enrollments .courserun_readable_id
22- , combined_enrollments .user_email
23- , combined_enrollments .course_readable_id
2492)
2593
2694, edxorg_enrollment as (
2795 select
2896 combined_enrollments .courserunenrollment_created_on
2997 , combined_enrollments .courserunenrollment_enrollment_mode
3098 , combined_enrollments .user_id
31- , combined_enrollments .courserun_readable_id
99+ , {{ format_course_id( ' combined_enrollments.courserun_readable_id ' , false) }} as courserun_readable_id
32100 , combined_enrollments .course_readable_id
33101 , combined_enrollments .user_email
34102 , combined_enrollments .courseruncertificate_created_on
@@ -42,24 +110,24 @@ select
42110 edxorg_enrollment .user_id as user_edxorg_id
43111 , mitx__users .user_mitxonline_id
44112 , edxorg_enrollment .user_email
45- , mitxonline__course_runs .courserun_id
46- , {{ format_course_id( ' edxorg_enrollment.courserun_readable_id ' , false) }} as courserun_readable_id
113+ , edx_to_mitxonline_certificate_revision .courserun_id
114+ , edxorg_enrollment .courserun_readable_id
47115 , edxorg_enrollment .courserunenrollment_enrollment_mode
48116 , edxorg_enrollment .courserungrade_grade
49117 , edxorg_enrollment .courserungrade_is_passing
50118 , edxorg_enrollment .courserunenrollment_created_on
51119 , edxorg_enrollment .courseruncertificate_created_on
120+ , edx_to_mitxonline_certificate_revision .wagtailcore_revision_id as certificate_page_revision_id
121+ , edx_to_mitxonline_certificate_revision .signatory_names
52122from edxorg_enrollment
53123left join mitxonline_enrollment
54124 on
55125 edxorg_enrollment .user_email = mitxonline_enrollment .user_email
56- and edxorg_enrollment .course_readable_id = mitxonline_enrollment .course_readable_id
57- and substring (edxorg_enrollment .courserun_readable_id , length(edxorg_enrollment .courserun_readable_id ) - 5 )
58- = substring (mitxonline_enrollment .courserun_readable_id , length(mitxonline_enrollment .courserun_readable_id ) - 5 )
126+ and edxorg_enrollment .courserun_readable_id = mitxonline_enrollment .courserun_readable_id
59127left join mitx__users
60128 on edxorg_enrollment .user_id = cast(mitx__users .user_edxorg_id as varchar )
61- left join mitxonline__course_runs
62- on edxorg_enrollment .courserun_readable_id = mitxonline__course_runs . courserun_edx_readable_id
129+ left join edx_to_mitxonline_certificate_revision
130+ on edxorg_enrollment .courserun_readable_id = edx_to_mitxonline_certificate_revision . courserun_readable_id
63131where
64132 edxorg_enrollment .courseruncertificate_created_on is not null
65133 and mitxonline_enrollment .user_email is null
0 commit comments