From e1cb23dbd32115ac42b191bd53a552a7d093e1bf Mon Sep 17 00:00:00 2001 From: Kate Delaney <134744245+KatelynGit@users.noreply.github.com> Date: Tue, 28 Apr 2026 14:26:18 -0400 Subject: [PATCH 1/4] add search and platform field to coupon dashboard --- .../charts/Coupon_Discount_Summary_128.yaml | 71 +++++++++++++++++++ ..._2e066386-dc90-48e3-859b-2b665b3cb257.yaml | 59 --------------- 2 files changed, 71 insertions(+), 59 deletions(-) create mode 100644 src/ol_superset/assets/charts/Coupon_Discount_Summary_128.yaml delete mode 100644 src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml diff --git a/src/ol_superset/assets/charts/Coupon_Discount_Summary_128.yaml b/src/ol_superset/assets/charts/Coupon_Discount_Summary_128.yaml new file mode 100644 index 000000000..e63b20e72 --- /dev/null +++ b/src/ol_superset/assets/charts/Coupon_Discount_Summary_128.yaml @@ -0,0 +1,71 @@ +slice_name: Coupon/Discount Summary +description: null +certified_by: null +certification_details: null +viz_type: table +params: + datasource: 118__table + viz_type: table + slice_id: 128 + query_mode: aggregate + groupby: + - couponpaymentversion_id + - discount_code + - discount_name + - b2b_contract_number + - discount_type + - discount_source + - discount_amount_text + - company_name + - discount_activated_on + - discount_expires_on + - couponpayment_name + - redeemed + - expressionType: SQL + label: valid_now + sqlExpression: "case when cast(now() as date)>=cast(substring(discount_activated_on,\ + \ 1, 10) as date) \nand cast(now() as date)<=cast(substring(discount_expires_on,\ + \ 1, 10) as date) \nthen TRUE else FALSE end" + - expressionType: SQL + label: total_nr_coupons + sqlExpression: num_discount_codes*discount_max_redemptions + - expressionType: SQL + label: Coupons_left + sqlExpression: (num_discount_codes*discount_max_redemptions) - discounts_used_count + - discounts_used_count + - b2breceipt_reference_number + - product_readable_id + - payment_transaction + - discount_max_redemptions + - platform + time_grain_sqla: P1D + temporal_columns_lookup: {} + all_columns: [] + percent_metrics: [] + adhoc_filters: [] + order_by_cols: [] + row_limit: 250000 + percent_metric_calculation: row_limit + table_timestamp_format: smart_date + include_search: true + allow_render_html: true + show_cell_bars: true + color_pn: true + conditional_formatting: [] + comparison_type: values + extra_form_data: {} + dashboards: + - 45 +query_context: '{"datasource":{"id":118,"type":"table"},"force":false,"queries":[{"filters":[],"extras":{"time_grain_sqla":"P1D","having":"","where":""},"applied_time_extras":{},"columns":["couponpaymentversion_id","discount_code","discount_name","b2b_contract_number","discount_type","discount_source","discount_amount_text","company_name","discount_activated_on","discount_expires_on","couponpayment_name","redeemed",{"expressionType":"SQL","label":"valid_now","sqlExpression":"case + when cast(now() as date)>=cast(substring(discount_activated_on, 1, 10) as date) + \nand cast(now() as date)<=cast(substring(discount_expires_on, 1, 10) as date) \nthen + TRUE else FALSE end"},{"expressionType":"SQL","label":"total_nr_coupons","sqlExpression":"num_discount_codes*discount_max_redemptions"},{"expressionType":"SQL","label":"Coupons_left","sqlExpression":"(num_discount_codes*discount_max_redemptions) + - discounts_used_count"},"discounts_used_count","b2breceipt_reference_number","product_readable_id","payment_transaction","discount_max_redemptions","platform"],"metrics":[],"orderby":[],"annotation_layers":[],"row_limit":250000,"series_limit":0,"group_others_when_limit_reached":false,"order_desc":true,"url_params":{},"custom_params":{},"custom_form_data":{},"post_processing":[],"time_offsets":[]}],"form_data":{"datasource":"118__table","viz_type":"table","slice_id":128,"query_mode":"aggregate","groupby":["couponpaymentversion_id","discount_code","discount_name","b2b_contract_number","discount_type","discount_source","discount_amount_text","company_name","discount_activated_on","discount_expires_on","couponpayment_name","redeemed",{"expressionType":"SQL","label":"valid_now","sqlExpression":"case + when cast(now() as date)>=cast(substring(discount_activated_on, 1, 10) as date) + \nand cast(now() as date)<=cast(substring(discount_expires_on, 1, 10) as date) \nthen + TRUE else FALSE end"},{"expressionType":"SQL","label":"total_nr_coupons","sqlExpression":"num_discount_codes*discount_max_redemptions"},{"expressionType":"SQL","label":"Coupons_left","sqlExpression":"(num_discount_codes*discount_max_redemptions) + - discounts_used_count"},"discounts_used_count","b2breceipt_reference_number","product_readable_id","payment_transaction","discount_max_redemptions","platform"],"time_grain_sqla":"P1D","temporal_columns_lookup":{},"all_columns":[],"percent_metrics":[],"adhoc_filters":[],"order_by_cols":[],"row_limit":250000,"percent_metric_calculation":"row_limit","table_timestamp_format":"smart_date","include_search":true,"allow_render_html":true,"show_cell_bars":true,"color_pn":true,"conditional_formatting":[],"comparison_type":"values","extra_form_data":{},"dashboards":[45],"force":false,"result_format":"json","result_type":"full"},"result_format":"json","result_type":"full"}' +cache_timeout: null +uuid: 2e066386-dc90-48e3-859b-2b665b3cb257 +version: 1.0.0 +dataset_uuid: a5df905c-0480-4227-b234-1a1064672b32 diff --git a/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml b/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml deleted file mode 100644 index b121711c7..000000000 --- a/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml +++ /dev/null @@ -1,59 +0,0 @@ -cache_timeout: null -certification_details: null -certified_by: null -dataset_uuid: a5df905c-0480-4227-b234-1a1064672b32 # marts__combined_discounts -description: null -params: - adhoc_filters: [] - all_columns: [] - allow_render_html: true - annotation_layers: [] - color_pn: true - comparison_color_scheme: Green - comparison_type: values - extra_form_data: {} - groupby: - - couponpaymentversion_id - - discount_code - - discount_name - - b2b_contract_number - - discount_type - - discount_source - - discount_amount_text - - company_name - - discount_activated_on - - discount_expires_on - - couponpayment_name - - redeemed - - expressionType: SQL - label: valid_now - sqlExpression: "case when cast(now() as date)>=cast(substring(discount_activated_on,\ - \ 1, 10) as date) \nand cast(now() as date)<=cast(substring(discount_expires_on,\ - \ 1, 10) as date) \nthen TRUE else FALSE end" - - expressionType: SQL - label: total_nr_coupons - sqlExpression: num_discount_codes*discount_max_redemptions - - expressionType: SQL - label: Coupons_left - sqlExpression: (num_discount_codes*discount_max_redemptions) - discounts_used_count - - discounts_used_count - - b2breceipt_reference_number - - product_readable_id - - payment_transaction - - discount_max_redemptions - order_by_cols: [] - order_desc: true - percent_metric_calculation: row_limit - percent_metrics: [] - query_mode: aggregate - row_limit: 250000 - server_page_length: 10 - show_cell_bars: true - table_timestamp_format: smart_date - temporal_columns_lookup: {} - time_grain_sqla: P1D - viz_type: table -slice_name: Coupon/Discount Summary -uuid: 2e066386-dc90-48e3-859b-2b665b3cb257 -version: 1.0.0 -viz_type: table From c868bf2cf101af471e7edfb04d1f11df9473b78d Mon Sep 17 00:00:00 2001 From: Kate Delaney <134744245+KatelynGit@users.noreply.github.com> Date: Tue, 28 Apr 2026 14:26:48 -0400 Subject: [PATCH 2/4] chore: Deduplicate and rename assets to UUID-based naming --- ...on_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/ol_superset/assets/charts/{Coupon_Discount_Summary_128.yaml => Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml} (100%) diff --git a/src/ol_superset/assets/charts/Coupon_Discount_Summary_128.yaml b/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml similarity index 100% rename from src/ol_superset/assets/charts/Coupon_Discount_Summary_128.yaml rename to src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml From 5719d205aec2c040390a26ba2a184c1181dbeb75 Mon Sep 17 00:00:00 2001 From: Kate Delaney <134744245+KatelynGit@users.noreply.github.com> Date: Tue, 28 Apr 2026 14:27:23 -0400 Subject: [PATCH 3/4] chore: normalize Superset asset YAML --- ..._2e066386-dc90-48e3-859b-2b665b3cb257.yaml | 55 +++++++------------ 1 file changed, 21 insertions(+), 34 deletions(-) diff --git a/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml b/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml index e63b20e72..667f796d2 100644 --- a/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml +++ b/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml @@ -1,13 +1,16 @@ -slice_name: Coupon/Discount Summary -description: null -certified_by: null +cache_timeout: null certification_details: null -viz_type: table +certified_by: null +dataset_uuid: a5df905c-0480-4227-b234-1a1064672b32 # marts__combined_discounts +description: null params: - datasource: 118__table - viz_type: table - slice_id: 128 - query_mode: aggregate + adhoc_filters: [] + all_columns: [] + allow_render_html: true + color_pn: true + comparison_type: values + conditional_formatting: [] + extra_form_data: {} groupby: - couponpaymentversion_id - discount_code @@ -38,34 +41,18 @@ params: - payment_transaction - discount_max_redemptions - platform - time_grain_sqla: P1D - temporal_columns_lookup: {} - all_columns: [] - percent_metrics: [] - adhoc_filters: [] + include_search: true order_by_cols: [] - row_limit: 250000 percent_metric_calculation: row_limit - table_timestamp_format: smart_date - include_search: true - allow_render_html: true + percent_metrics: [] + query_mode: aggregate + row_limit: 250000 show_cell_bars: true - color_pn: true - conditional_formatting: [] - comparison_type: values - extra_form_data: {} - dashboards: - - 45 -query_context: '{"datasource":{"id":118,"type":"table"},"force":false,"queries":[{"filters":[],"extras":{"time_grain_sqla":"P1D","having":"","where":""},"applied_time_extras":{},"columns":["couponpaymentversion_id","discount_code","discount_name","b2b_contract_number","discount_type","discount_source","discount_amount_text","company_name","discount_activated_on","discount_expires_on","couponpayment_name","redeemed",{"expressionType":"SQL","label":"valid_now","sqlExpression":"case - when cast(now() as date)>=cast(substring(discount_activated_on, 1, 10) as date) - \nand cast(now() as date)<=cast(substring(discount_expires_on, 1, 10) as date) \nthen - TRUE else FALSE end"},{"expressionType":"SQL","label":"total_nr_coupons","sqlExpression":"num_discount_codes*discount_max_redemptions"},{"expressionType":"SQL","label":"Coupons_left","sqlExpression":"(num_discount_codes*discount_max_redemptions) - - discounts_used_count"},"discounts_used_count","b2breceipt_reference_number","product_readable_id","payment_transaction","discount_max_redemptions","platform"],"metrics":[],"orderby":[],"annotation_layers":[],"row_limit":250000,"series_limit":0,"group_others_when_limit_reached":false,"order_desc":true,"url_params":{},"custom_params":{},"custom_form_data":{},"post_processing":[],"time_offsets":[]}],"form_data":{"datasource":"118__table","viz_type":"table","slice_id":128,"query_mode":"aggregate","groupby":["couponpaymentversion_id","discount_code","discount_name","b2b_contract_number","discount_type","discount_source","discount_amount_text","company_name","discount_activated_on","discount_expires_on","couponpayment_name","redeemed",{"expressionType":"SQL","label":"valid_now","sqlExpression":"case - when cast(now() as date)>=cast(substring(discount_activated_on, 1, 10) as date) - \nand cast(now() as date)<=cast(substring(discount_expires_on, 1, 10) as date) \nthen - TRUE else FALSE end"},{"expressionType":"SQL","label":"total_nr_coupons","sqlExpression":"num_discount_codes*discount_max_redemptions"},{"expressionType":"SQL","label":"Coupons_left","sqlExpression":"(num_discount_codes*discount_max_redemptions) - - discounts_used_count"},"discounts_used_count","b2breceipt_reference_number","product_readable_id","payment_transaction","discount_max_redemptions","platform"],"time_grain_sqla":"P1D","temporal_columns_lookup":{},"all_columns":[],"percent_metrics":[],"adhoc_filters":[],"order_by_cols":[],"row_limit":250000,"percent_metric_calculation":"row_limit","table_timestamp_format":"smart_date","include_search":true,"allow_render_html":true,"show_cell_bars":true,"color_pn":true,"conditional_formatting":[],"comparison_type":"values","extra_form_data":{},"dashboards":[45],"force":false,"result_format":"json","result_type":"full"},"result_format":"json","result_type":"full"}' -cache_timeout: null + table_timestamp_format: smart_date + temporal_columns_lookup: {} + time_grain_sqla: P1D + viz_type: table +slice_name: Coupon/Discount Summary uuid: 2e066386-dc90-48e3-859b-2b665b3cb257 version: 1.0.0 -dataset_uuid: a5df905c-0480-4227-b234-1a1064672b32 +viz_type: table From 9abb33b056985bf44f9b95c38b24709dfbf8f050 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Apr 2026 18:37:47 +0000 Subject: [PATCH 4/4] fix: restore annotation_layers, comparison_color_scheme, order_desc, server_page_length to coupon chart Agent-Logs-Url: https://github.com/mitodl/ol-data-platform/sessions/c578e8bc-4b15-4081-8a41-b6a0ab8b8f28 Co-authored-by: KatelynGit <134744245+KatelynGit@users.noreply.github.com> --- ...Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml b/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml index 667f796d2..0c63864a0 100644 --- a/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml +++ b/src/ol_superset/assets/charts/Coupon_Discount_Summary_2e066386-dc90-48e3-859b-2b665b3cb257.yaml @@ -7,7 +7,9 @@ params: adhoc_filters: [] all_columns: [] allow_render_html: true + annotation_layers: [] color_pn: true + comparison_color_scheme: Green comparison_type: values conditional_formatting: [] extra_form_data: {} @@ -43,10 +45,12 @@ params: - platform include_search: true order_by_cols: [] + order_desc: true percent_metric_calculation: row_limit percent_metrics: [] query_mode: aggregate row_limit: 250000 + server_page_length: 10 show_cell_bars: true table_timestamp_format: smart_date temporal_columns_lookup: {}