From e01385777713bc0718b798a7cef2c26c10458d00 Mon Sep 17 00:00:00 2001 From: jenniw Date: Thu, 2 Nov 2023 11:40:20 -0400 Subject: [PATCH] Update how we call the posthog API to include another person identifier to allow for easier targetting (#1973) * add userid to js calls, change python calls to user.id instead of user.email * fmt * check for user first * python user checks * fmt and things * change how determine userid in header * proper reporting * change type on courseinfobox * CourseInfoBox.js fix * fmt * change type for uniqueID * fmt --- cms/models.py | 24 +++++++++++++------ cms/models_test.py | 12 ++++++++-- cms/templates/product_page.html | 1 + .../public/src/components/AnonymousMenu.js | 2 +- .../public/src/components/CourseInfoBox.js | 6 ++--- .../components/CourseProductDetailEnroll.js | 5 +++- frontend/public/src/components/Header.js | 13 +++++++++- .../components/ProgramProductDetailEnroll.js | 5 +++- frontend/public/src/components/UserMenu.js | 5 +++- .../src/containers/ProductDetailEnrollApp.js | 10 +++++--- .../public/src/containers/UpsellCardApp.js | 15 +++++++----- frontend/public/src/entry/header.js | 17 +++++++++++-- frontend/public/src/lib/util.js | 10 +++++--- frontend/public/src/lib/util_test.js | 17 ++++++++++--- main/features.py | 9 ++++--- main/views.py | 20 ++++++++++++---- 16 files changed, 129 insertions(+), 42 deletions(-) diff --git a/cms/models.py b/cms/models.py index ad14e3893..7ee18b522 100644 --- a/cms/models.py +++ b/cms/models.py @@ -750,25 +750,35 @@ def products(self): return page_data def get_context(self, request, *args, **kwargs): + hubspot_portal_id = settings.HUBSPOT_PORTAL_ID + hubspot_home_page_form_guid = settings.HUBSPOT_HOME_PAGE_FORM_GUID + if request.user.is_authenticated: - user = request.user.email + user = request.user.id else: if "anonymous_session_id" not in request.session: request.session["anonymous_session_id"] = str(uuid.uuid4()) user = request.session["anonymous_session_id"] - hubspot_portal_id = settings.HUBSPOT_PORTAL_ID - hubspot_home_page_form_guid = settings.HUBSPOT_HOME_PAGE_FORM_GUID + show_new_featured_carousel = features.is_enabled( - features.ENABLE_NEW_HOME_PAGE_FEATURED, False, user + features.ENABLE_NEW_HOME_PAGE_FEATURED, + False, + user, ) show_new_design_hero = features.is_enabled( - features.ENABLE_NEW_HOME_PAGE_HERO, False, user + features.ENABLE_NEW_HOME_PAGE_HERO, + False, + user, ) show_home_page_video_component = features.is_enabled( - features.ENABLE_NEW_HOME_PAGE_VIDEO, False, user + features.ENABLE_NEW_HOME_PAGE_VIDEO, + False, + user, ) show_home_page_contact_form = features.is_enabled( - features.ENABLE_NEW_HOME_PAGE_CONTACT_FORM, False, user + features.ENABLE_NEW_HOME_PAGE_CONTACT_FORM, + False, + user, ) return { diff --git a/cms/models_test.py b/cms/models_test.py index bce68bfb0..dcafd9b14 100644 --- a/cms/models_test.py +++ b/cms/models_test.py @@ -170,8 +170,16 @@ def test_course_page_context( member.linked_instructor_page for member in course_page.linked_instructors.order_by("order").all() ], - "new_design": features.is_enabled("mitxonline-new-product-page"), - "new_footer": features.is_enabled("mitxonline-new-footer"), + "new_design": features.is_enabled( + "mitxonline-new-product-page", + False, + request.user.id if request.user.is_authenticated else "anonymousUser", + ), + "new_footer": features.is_enabled( + "mitxonline-new-footer", + False, + request.user.id if request.user.is_authenticated else "anonymousUser", + ), } context = course_page.get_context(request=request) diff --git a/cms/templates/product_page.html b/cms/templates/product_page.html index 831cb59f5..b3e4e6c3a 100644 --- a/cms/templates/product_page.html +++ b/cms/templates/product_page.html @@ -118,6 +118,7 @@

Who can take this course?

{% if page.is_program_page %} {% endif %} +
diff --git a/frontend/public/src/components/AnonymousMenu.js b/frontend/public/src/components/AnonymousMenu.js index 574e439d8..db23b3303 100644 --- a/frontend/public/src/components/AnonymousMenu.js +++ b/frontend/public/src/components/AnonymousMenu.js @@ -12,7 +12,7 @@ type Props = { const AnonymousMenu = ({ mobileView }: Props) => { const identifierPostfix = mobileView ? "Mobile" : "Desktop" - const newDesign = checkFeatureFlag("mitxonline-new-header") + const newDesign = checkFeatureFlag("mitxonline-new-header", "anonymousUser") return (