diff --git a/Custom_Templates/customer_templates/.DS_Store b/Custom_Templates/customer_templates/.DS_Store index da97aa06..6c10a529 100644 Binary files a/Custom_Templates/customer_templates/.DS_Store and b/Custom_Templates/customer_templates/.DS_Store differ diff --git a/Custom_Templates/customer_templates/Norm_sandbox_2/_head.html.liquid b/Custom_Templates/customer_templates/Norm_sandbox_2/_head.html.liquid index bde9ff3c..8af5d656 100644 --- a/Custom_Templates/customer_templates/Norm_sandbox_2/_head.html.liquid +++ b/Custom_Templates/customer_templates/Norm_sandbox_2/_head.html.liquid @@ -9,3 +9,10 @@ + diff --git a/Custom_Templates/customer_templates/Norm_sandbox_2/training_events.html.liquid b/Custom_Templates/customer_templates/Norm_sandbox_2/training_events.html.liquid index 08b79045..26d2859c 100644 --- a/Custom_Templates/customer_templates/Norm_sandbox_2/training_events.html.liquid +++ b/Custom_Templates/customer_templates/Norm_sandbox_2/training_events.html.liquid @@ -18,8 +18,8 @@ diff --git a/Custom_Templates/customer_templates/SPS_Commerce/_course_events.html.liquid b/Custom_Templates/customer_templates/SPS_Commerce/_course_events.html.liquid new file mode 100644 index 00000000..1f2f7158 --- /dev/null +++ b/Custom_Templates/customer_templates/SPS_Commerce/_course_events.html.liquid @@ -0,0 +1,29 @@ +

+ {% t .header %} +

+
+ {% for event in course.events %} +
+ +
+
+ {{ event.title }} +
+
+ {% t shared.event_types, key: event.event_type %} +
+ +
+
+ {% endfor %} +
diff --git a/CustomerNotes/Glassdoor.md b/CustomerNotes/Glassdoor.md index 9cf63daa..d1dd3e81 100644 --- a/CustomerNotes/Glassdoor.md +++ b/CustomerNotes/Glassdoor.md @@ -23,6 +23,16 @@ Phase 2: Cross functional, deeper training for clients who also have CSMs. Name, Email, Company Name & Company ID - IDEAL parameters. -## 03/27/2023 +## 04/24/2023 -### Content Implementation +### Implementation + +Biggest goal is giving new customers immediate access to the content. They aren't sure how to do that. +Go live is still next week. Better to get access and then collect data later, but now if possible. This is for a +specific customer segment. +During kick off is when university access should begin. + +All customers get invited into a 5-email marketing campaign for new users. Onboarding marketing. + +Per customer, average of 6 users. 2-4 will be on the kick off call. The other 2 people could be added up to a year +later. diff --git a/CustomerNotes/KeystoneRV.md b/CustomerNotes/KeystoneRV.md index 918f65ed..9601275e 100644 --- a/CustomerNotes/KeystoneRV.md +++ b/CustomerNotes/KeystoneRV.md @@ -1,27 +1,30 @@ +# KeystoneRV + ## 10/27/2022 + ### Meeting Requested by Tabatha *Preliminary Questions:* + * Adding users for specific Learning Paths? * Email notification didn’t go through for new users to register? (this was a manual add of a new user) * New School/Learning Path for our CS for employees. * Number of Learners Enrolled in a course do not always match? - * Don't match what? Situation: - * Alpine Learning Path - * Courses in LP - * Construction Course has 1160 enrolled - * Next course as 513 enrolled - * Availability of courses is important to them. + * Don't match what? Situation: + * Alpine Learning Path + * Courses in LP + * Construction Course has 1160 enrolled + * Next course as 513 enrolled + * Availability of courses is important to them. * Other thing: Users that don't have an ignite account: - * Their CS team wants to have a small school as a clone/knock off for another team. - * What does another Keystone instance look like? - * It won't be as large. Internal training. Maybe some external training. - * + * Their CS team wants to have a small school as a clone/knock off for another team. + * What does another Keystone instance look like? + * It won't be as large. Internal training. Maybe some external training. *Notes:* * They use Mambo as their analytics aggregator * Just launched a Dearler Mgmt View - * Their dealers/clients get sales points for completing sales and then they can redeem swag for points. + * Their dealers/clients get sales points for completing sales and then they can redeem swag for points. * Something about multiple tokens. Has to do with UUID in their own system and APIs. She didn't explain more, just that it was an "issue". - * What is the token? It follows the user. - * Middleware - zaneray or mambo might create the token + * What is the token? It follows the user. + * Middleware - zaneray or mambo might create the token diff --git a/CustomerNotes/Walmart.md b/CustomerNotes/Walmart.md index c7b3d0bc..f723a0f2 100644 --- a/CustomerNotes/Walmart.md +++ b/CustomerNotes/Walmart.md @@ -389,12 +389,9 @@ TODO: Show MJ how to do Show Transcript for bullet points. Here is the code: ```html
Show Transcript
-
-

-Hey everyone, this is Ally with Tripleseat and in this video we are going to go over how to create an event and the different options you have to do so. The quickest way to add an event right to your calendar is by clicking on the new event button on the top right corner of your screen in Tripleseat. Detailing this page out and clicking create will add the event right to our calendar as well as store the contact information within Tripleseat. -

-``` +

Hey everyone, this is Ally with Tripleseat and in this video we are going to go over how to create an event and the different options you have to do so. The quickest way to add an event right to your calendar is by clicking on the new event button on the top right corner of your screen in Tripleseat. Detailing this page out and clicking create will add the event right to our calendar as well as store the contact information within Tripleseat.

``` + TODO: Show MJ example of Video+Article as two activities example. @@ -410,11 +407,41 @@ Bundles, resource bundles. Currently turned off in the sandbox. CB: How should badges be represented in a bundle? If you have 3 courses, when and how should the badge appear? -Idea: bar at the bottom. Greyscale before completion, colorized after. +Idea: bar at the bottom. Grey scale before completion, colorized after. TP: can we share any displays/UX screenshots of other clients displaying badges? -TODO: Work with Charlie to find examples of badging for the team. +DONE: Work with Charlie to find examples of badging for the team. For the first iteration, this will live solely in Northpass. Dev work from Walmart: they will need to pass/insert info into the webview. -FEAT: Cassie out 22nd - 28th +INFO: Cassie out 22nd - 28th +INFO: MJ out 18th - 21st. + +## 04/19/2023 + +### Tech Meeting + +Lauren is leaving the Spark Team and joining supplier/supply chain comms and PR. +Rob: as we add items to that endpoint, it can impact performance. A more complex setup will need to be addressed. +We need to reduce the amount of calls that endpoint is going. +In the past, Walmart reluctant to make modifications on their end. Jagannatha committed to making changes and +improvement. +Rob asked what is needed to align NP & Walmart. Jagannatha: make a plan and list of needs. +Jagannatha wants suggestions from Rob and then J will work internally with his team. +J asked if we need any assistance from the Spark App team. Rob unsure - we will check. +If we do, how does that change things? We would need to add these items to their roadmap & sprint. + +Q for Travis: Is there a specific time frame for getting this up and running? Probably later in Q2, second half. This is +for the help items. + +Back button questions - where does it go? It currently goes back to it's referring URL until it reaches the main menu. +Then it goes back to the app. + +What do they want the back button to do? + +### Content Meeting + +Dave taking over for Nichole. Dave's role is Lead Technical Writer, Senior Designer (US), for the Spark Driver +Knowledge Base. + +DONE: Reach out to J about deep linking between resources. diff --git a/Scripts/API_Tests/Apikeys.py b/Scripts/API_Tests/Apikeys.py index 4abea816..c4001780 100644 --- a/Scripts/API_Tests/Apikeys.py +++ b/Scripts/API_Tests/Apikeys.py @@ -7,4 +7,4 @@ normsandbox = "SlpQlju219WnWogn94dQUT6Yt" walmartprod = "6hUfJdAartHTHhHc0WIRZYPWe" recast = "9LISLpq7Ebqot3Xrggn5twKWZ" mizuno = "stXNF84HWL8aCGeRjHEo2rJ1U" - +sps = "VNDXh8K4tLYJ-Nvp78bo6w" diff --git a/Scripts/API_Tests/__pycache__/Apikeys.cpython-311.pyc b/Scripts/API_Tests/__pycache__/Apikeys.cpython-311.pyc index c5ff478c..756ba208 100644 Binary files a/Scripts/API_Tests/__pycache__/Apikeys.cpython-311.pyc and b/Scripts/API_Tests/__pycache__/Apikeys.cpython-311.pyc differ diff --git a/Scripts/API_Tests/api_test.py b/Scripts/API_Tests/api_test.py index 9eee5aff..5bf26a97 100644 --- a/Scripts/API_Tests/api_test.py +++ b/Scripts/API_Tests/api_test.py @@ -1,16 +1,17 @@ -import requests import json +import requests import Apikeys # url ="https://api.northpass.com/v2/groups/e6ef3e5f-b5a2-4b10-868b-8c165d76d263/learning_paths" # url = "https://api.northpass.com/v1/media?limit=1" # url = "https://api.northpass.com/v1/learning_paths" -url = "https://api2.northpass.com/v2/courses" +# url = "https://api2.northpass.com/v2/courses" # function = sys.argv[1] -apiKey = Apikeys.walmartprod -# normuuid = "0b31c435-c18b-4573-984e-32cda57045b4" +apiKey = Apikeys.normsandbox +# normuuid = "3b2ac85d-2bdb-4183-a1c7-e0f49c58c4eb" +group_uuid = "8be78542-ec43-4b5e-a662-77b403b4f049" # Get Group Memberships: # url = "https://api.northpass.com/v2/groups/504c4771-223a-447f-9ec6-08e51bc9ca23/memberships" @@ -21,6 +22,9 @@ apiKey = Apikeys.walmartprod # Associate a person with a Learning Path (Test): # url = f"https://api.northpass.com/v1/people/{normuuid}/relationships/learning_paths" +# Add Learning Paths to a Group (Test): +url = f"https://api.northpass.com/v1/groups/{group_uuid}/relationships/learning_paths" + def putTest(apiKey, url): payload = { @@ -54,12 +58,16 @@ def getTest(apiKey, url): def postTest(apiKey, url): print(url) # Learning Path ID is for ID and change type to "enrolled-learning-paths" - payload = {"data": [ - { - "type": "enrolled-learning-paths", - "id": "6ef5c9db-81d7-427c-846b-babb9a9a2ad1" - } - ]} + # payload = {"data": [ + # { + # "type": "enrolled-learning-paths", + # "id": "6ef5c9db-81d7-427c-846b-babb9a9a2ad1" + # } + # ]} + # Add Learning Path to a Group Test + payload = {"data": [{"type": "learning-paths", "id": "6ef5c9db-81d7-427c-846b-babb9a9a2ad1"}]} + + headers = { "accept": "application/json", "content-type": "application/json", @@ -71,6 +79,6 @@ def postTest(apiKey, url): if __name__ == "__main__": - getTest(apiKey, url) + # getTest(apiKey, url) # putTest(apiKey, url) - # postTest(apiKey, url) + postTest(apiKey, url) diff --git a/Scripts/API_Tests/training_events.py b/Scripts/API_Tests/training_events.py new file mode 100644 index 00000000..00003e70 --- /dev/null +++ b/Scripts/API_Tests/training_events.py @@ -0,0 +1,13 @@ +import requests +import Apikeys + + +apikey = Apikeys.sps +url = "https://api.northpass.com/v2/events" +headers = { + "accept": "application/json", + "X-Api-Key": apikey + } +response = requests.get(url, headers=headers) +resp = response.json() +print(resp) diff --git a/Scripts/Jupyter/page_views_cats.ipynb b/Scripts/Jupyter/page_views_cats.ipynb index b53c8ba2..4cb4c3ba 100644 --- a/Scripts/Jupyter/page_views_cats.ipynb +++ b/Scripts/Jupyter/page_views_cats.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -30,19 +30,20 @@ "dtype: object" ] }, - "execution_count": 35, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "pageviews = pd.read_csv(\"/Users/normrasmussen/Documents/Work/Data/GraphQuery (4).csv\")\n", + "pd.set_option('display.max_rows', 100)\n", + "pageviews = pd.read_csv(\"/Users/normrasmussen/Documents/Work/Data/GraphQuery (4).csv\", index_col=None)\n", "pageviews.dtypes" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -210,7 +211,7 @@ "[123 rows x 5 columns]" ] }, - "execution_count": 36, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -228,7 +229,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -242,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -286,7 +287,7 @@ " 1\n", " \n", " \n", - " '@properties Academy\n", + " '@properties Academy\n", " /account_links\n", " 8\n", " \n", @@ -299,62 +300,195 @@ " 4\n", " \n", " \n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " ActiveLearner\n", - " /courses/cgivmko2/builder/activities/QNpmEsyHk\n", - " 2\n", - " \n", - " \n", - " /courses/cgivmko2/builder/activities/Rh6JL0L9U\n", - " 5\n", - " \n", - " \n", - " /courses/cgivmko2/builder/activities/T0kIBCfZt\n", - " 5\n", - " \n", - " \n", - " /courses/cgivmko2/builder/activities/ZG38aHRFcX\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/courses\n", " 1\n", " \n", " \n", - " /courses/cgivmko2/builder/activities/_Jtk3s0pt\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/edit\n", " 1\n", " \n", + " \n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/memberships\n", + " 8\n", + " \n", + " \n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/memberships/new\n", + " 3\n", + " \n", + " \n", + " /instructor_led_trainings\n", + " 11\n", + " \n", " \n", "\n", - "

100 rows × 1 columns

\n", "
" ], "text/plain": [ - " apr_week\n", - "academy path \n", - " Vivvix University for Ad Intel /account_links 1\n", - " /courses 1\n", - "'@properties Academy /account_links 8\n", - " /courses 11\n", - " /groups 4\n", - "... ...\n", - "ActiveLearner /courses/cgivmko2/builder/activities/QNpmEsyHk 2\n", - " /courses/cgivmko2/builder/activities/Rh6JL0L9U 5\n", - " /courses/cgivmko2/builder/activities/T0kIBCfZt 5\n", - " /courses/cgivmko2/builder/activities/ZG38aHRFcX 1\n", - " /courses/cgivmko2/builder/activities/_Jtk3s0pt 1\n", - "\n", - "[100 rows x 1 columns]" + " apr_week\n", + "academy path \n", + " Vivvix University for Ad Intel /account_links 1\n", + " /courses 1\n", + "'@properties Academy /account_links 8\n", + " /courses 11\n", + " /groups 4\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/co... 1\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/edit 1\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/me... 8\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/me... 3\n", + " /instructor_led_trainings 11" ] }, - "execution_count": 41, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "pageviews = pageviews.groupby(['academy', 'path']).agg({'apr_week':'sum'})\n", - "pageviews.head(100)" + "#pageviews = pageviews.groupby(['academy', 'path']).agg({'apr_week':'sum'})\n", + "#pageviews.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
apr_week
academypath
Vivvix University for Ad Intel/account_links1
/courses1
'@properties Academy/account_links8
/courses11
/groups4
/groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/courses1
/groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/edit1
/groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/memberships8
/groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/memberships/new3
/instructor_led_trainings11
\n", + "
" + ], + "text/plain": [ + " apr_week\n", + "academy path \n", + " Vivvix University for Ad Intel /account_links 1\n", + " /courses 1\n", + "'@properties Academy /account_links 8\n", + " /courses 11\n", + " /groups 4\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/co... 1\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/edit 1\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/me... 8\n", + " /groups/2a09819b-a19a-4e87-91c6-8b50ee3c46f8/me... 3\n", + " /instructor_led_trainings 11" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pageviews.reset_index\n", + "pageviews.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 True\n", + "1 True\n", + "2 True\n", + "3 True\n", + "4 False\n", + " ... \n", + "13861 True\n", + "13862 True\n", + "13863 False\n", + "13864 False\n", + "13865 False\n", + "Name: path, Length: 13866, dtype: bool" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "startswith_list = ('/courses', '/people', 'learning_paths', '/instructor_led_trainings', '/preview', '/groups', '/account_links')\n", + "#for root in startswith_list:\n", + "# pageviews.path.str.startswith(root, na=False)\n", + " #pageviews['root'] = pageviews.path.apply(lambda x: root if pageviews.path.str.startswith(root, na=False) else 'None')\n", + "\n", + "pageviews.path.str.startswith(startswith_list)" ] }, {