Testing a push
This commit is contained in:
BIN
Custom_Templates/customer_templates/.DS_Store
vendored
BIN
Custom_Templates/customer_templates/.DS_Store
vendored
Binary file not shown.
@ -14,18 +14,11 @@
|
||||
{% include "sub_navigation" %}
|
||||
<main class="np-main np-training-events np-subpage-container np-max-width">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-10">
|
||||
<div class="np-resource-title">
|
||||
{% t .title %}
|
||||
</div>
|
||||
<div class="np-resource-subtitle">
|
||||
{% t .subtitle %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-2">
|
||||
{% include "training_events_filter" %}
|
||||
</div>
|
||||
</div>
|
||||
{% include "training_events_index" %}
|
||||
<iframe
|
||||
style="border:none;"
|
||||
width="100%" height="1000"
|
||||
src="https://calendar.google.com/calendar/u/0/embed?src=pmtpcalendar@gmail.com&ctz=America/New_York"
|
||||
title="Wild Health Public Calendar">
|
||||
</iframe>
|
||||
</main>
|
||||
{% include "footer" %}
|
||||
|
||||
26
Custom_Templates/customer_templates/Artera/_head.html.liquid
Normal file
26
Custom_Templates/customer_templates/Artera/_head.html.liquid
Normal file
@ -0,0 +1,26 @@
|
||||
{% styles default %}
|
||||
{% styles colors %}
|
||||
{% styles custom %}
|
||||
|
||||
<script>
|
||||
(function(apiKey){
|
||||
(function(p,e,n,d,o){var v,w,x,y,z;o=p[d]=p[d]||{};o._q=o._q||[];
|
||||
v=['initialize','identify','updateOptions','pageLoad','track'];for(w=0,x=v.length;w<x;++w)(function(m){
|
||||
o[m]=o[m]||function(){o._q[m===v[0]?'unshift':'push']([m].concat([].slice.call(arguments,0)));};})(v[w]);
|
||||
y=e.createElement(n);y.async=!0;y.src='https://cdn.pendo.io/agent/static/'+apiKey+'/pendo.js';
|
||||
z=e.getElementsByTagName(n)[0];z.parentNode.insertBefore(y,z);})(window,document,'script','pendo');
|
||||
})('a59ee367-b60f-4801-7452-0331dce168e1');
|
||||
|
||||
// Call this whenever information about your visitors becomes available
|
||||
// Please use Strings, Numbers, or Bools for value types.
|
||||
{% if current_person.signed_in? %}
|
||||
pendo.initialize({
|
||||
visitor: {
|
||||
id: '{{current_person.id}}',
|
||||
email: '{{current_person.email}}',
|
||||
first_name: '{{current_person.first_name}}',
|
||||
last_name: '{{current_person.last_name}}',
|
||||
}
|
||||
});
|
||||
{% endif %}
|
||||
</script>
|
||||
181
Custom_Templates/customer_templates/Artera/_header.html.liquid
Normal file
181
Custom_Templates/customer_templates/Artera/_header.html.liquid
Normal file
@ -0,0 +1,181 @@
|
||||
<header class="np-header np-header-color">
|
||||
|
||||
<div class="np-header-content">
|
||||
<div class="np-hidden-desktop np-header-mobile-menu-nav">
|
||||
{% if current_person.signed_in? %}
|
||||
<button
|
||||
data-toggle-class="np-hidden"
|
||||
class="np-header-mobile-menu-nav-button fal fa-times np-hidden np-header-font-color"
|
||||
data-toggle-target=".np-header-mobile-avatar-menu,
|
||||
.np-header-mobile-menu-content, .np-main, .np-footer"
|
||||
></button>
|
||||
<button
|
||||
data-test="open-mobile-menu"
|
||||
data-toggle-class="np-hidden"
|
||||
class="np-header-mobile-menu-nav-button np-header-mobile-avatar-menu"
|
||||
data-toggle-target=".fa-times, .np-header-mobile-menu-content, .np-main, .np-footer"
|
||||
>
|
||||
<img
|
||||
alt="{{ current_person.name }}"
|
||||
class="np-header-avatar-image"
|
||||
src="{{ current_person.avatar_url }}"
|
||||
/>
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if current_school.logo_url %}
|
||||
<h1 class="np-header-logo">
|
||||
<a href="{% route home %}">
|
||||
<img
|
||||
alt="{{ current_school.name }}"
|
||||
class="np-header-logo-image"
|
||||
src="{{ current_school.logo_url }}"
|
||||
/>
|
||||
</a>
|
||||
</h1>
|
||||
{% else %}
|
||||
<a href="{% route home %}" class="np-school-name np-header-font-color">
|
||||
{{ current_school.name }}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<div class="np-hidden-mobile np-header-desktop-nav">
|
||||
<ul class="np-header-desktop-nav-list">
|
||||
{% for website_navigation in navigations.header_navigations_external %}
|
||||
<li class= "np-header-desktop-nav-item">
|
||||
<a
|
||||
href="{{ website_navigation.path }}"
|
||||
class="np-header-desktop-nav-link np-header-font-color"
|
||||
target="_blank"
|
||||
>
|
||||
{{ website_navigation.name }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
<div class="np-hidden-mobile np-header-search np-header-search-expanded">
|
||||
<form action="{% route search %}" method="get" data-test="desktop-search">
|
||||
<input
|
||||
aria-label="{% t .search %}"
|
||||
class="np-header-search-input np-header-font-background-color"
|
||||
type="text"
|
||||
name="q"
|
||||
placeholder="{% t .search %}"
|
||||
/>
|
||||
<i class="np-header-search-icon far fa-search"></i>
|
||||
</form>
|
||||
</div>
|
||||
<div class="np-hidden-mobile np-header-avatar">
|
||||
<button
|
||||
class="np-header-avatar-button"
|
||||
data-test="open-desktop-menu"
|
||||
data-toggle-class-on-target="np-hidden"
|
||||
data-toggle-target=".np-header-avatar-tooltip"
|
||||
data-toggle-outside
|
||||
>
|
||||
<img
|
||||
alt="{{ current_person.name }}"
|
||||
class="np-header-avatar-image"
|
||||
src="{{ current_person.avatar_url }}"
|
||||
>
|
||||
</button>
|
||||
<div class="np-header-avatar-tooltip np-hidden" role="tooltip">
|
||||
<span class="np-header-avatar-tooltip-arrow-up"></span>
|
||||
<div class="np-header-avatar-tooltip-learner">
|
||||
<div class="np-header-avatar-tooltip-learner-name">
|
||||
{{ current_person.name }}
|
||||
</div>
|
||||
<div class="np-header-avatar-tooltip-learner-email">
|
||||
{{ current_person.email }}
|
||||
</div>
|
||||
</div>
|
||||
<nav class="np-header-avatar-tooltip-navigation">
|
||||
{% unless current_school.sso_active? %}
|
||||
<a
|
||||
class="np-header-avatar-tooltip-navigation-link"
|
||||
href="{% route account %}"
|
||||
>
|
||||
{% t .profile_settings %}
|
||||
</a>
|
||||
{% endunless %}
|
||||
<a
|
||||
class="np-header-avatar-tooltip-navigation-link np-danger"
|
||||
href="{% route logout %}"
|
||||
>
|
||||
{% t .sign_out %}
|
||||
</a>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<a
|
||||
class="np-header-sign-in np-header-desktop-nav-link np-header-font-color"
|
||||
aria-label="{% t shared.sign_in %}"
|
||||
href="{% route login %}"
|
||||
>
|
||||
{% t shared.sign_in %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="np-hidden-desktop">
|
||||
<div class="np-header-mobile-menu-content np-hidden">
|
||||
{% if current_person.signed_in? %}
|
||||
<img
|
||||
alt="{{ current_person.name }}"
|
||||
class="np-header-mobile-menu-content-avatar"
|
||||
src="{{ current_person.avatar_url }}"
|
||||
/>
|
||||
<div class="np-header-mobile-menu-content-name">
|
||||
{{ current_person.name }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="np-header-mobile-menu-content-nav">
|
||||
<form
|
||||
class="np-header-search"
|
||||
data-test="mobile-search"
|
||||
method="get"
|
||||
action="{% route search %}"
|
||||
>
|
||||
<input
|
||||
aria-label="{% t .search %}"
|
||||
class="np-header-search-input"
|
||||
type="text"
|
||||
name="q"
|
||||
placeholder="{% t .search %}"
|
||||
/>
|
||||
<i class="np-header-search-icon far fa-search"></i>
|
||||
</form>
|
||||
{% for website_navigation in navigations.header_navigations %}
|
||||
<a
|
||||
href="{{ website_navigation.path }}"
|
||||
class="np-header-mobile-menu-content-button"
|
||||
{% if website_navigation.external? %} target="_blank" {% endif %}
|
||||
>
|
||||
{{ website_navigation.name }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
<div class="np-header-mobile-menu-content-line"></div>
|
||||
{% unless current_school.sso_active? %}
|
||||
<a
|
||||
class="np-header-mobile-menu-content-button"
|
||||
href="{% route account %}"
|
||||
>
|
||||
{% t .profile_settings %}
|
||||
</a>
|
||||
{% endunless %}
|
||||
<a
|
||||
class="np-header-mobile-menu-content-button np-danger"
|
||||
href="{% route logout %}"
|
||||
>
|
||||
{% t .sign_out %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include "messages" %}
|
||||
@ -0,0 +1,47 @@
|
||||
<header class="np-box-header np-header-color">
|
||||
<a class="np-box-header-link" href="{% route home %}">
|
||||
{% if current_school.logo_url %}
|
||||
<img
|
||||
alt="{{ current_school.name }}"
|
||||
src="{{ current_school.logo_url }}"
|
||||
class="np-box-header-logo"
|
||||
/>
|
||||
{% else %}
|
||||
<span class="np-school-name np-header-font-color">
|
||||
{{ current_school.name }}
|
||||
</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
</header>
|
||||
|
||||
{% include "messages" %}
|
||||
<script>
|
||||
setTimeout(function(){
|
||||
if (window.location.pathname == "/auth/auth_url_email/login") {
|
||||
document.getElementsByClassName("np-input-label")[2].innerHTML = "Work Email Address";
|
||||
if (document.getElementsByClassName("np-alert-wrapper").length != 0) {
|
||||
document.getElementsByClassName("np-alert-wrapper")[0].innerHTML = "Please complete the following information to access Artera";
|
||||
}
|
||||
};
|
||||
}, 500);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
(function(apiKey){
|
||||
(function(p,e,n,d,o){var v,w,x,y,z;o=p[d]=p[d]||{};o._q=o._q||[];
|
||||
v=['initialize','identify','updateOptions','pageLoad','track'];for(w=0,x=v.length;w<x;++w)(function(m){
|
||||
o[m]=o[m]||function(){o._q[m===v[0]?'unshift':'push']([m].concat([].slice.call(arguments,0)));};})(v[w]);
|
||||
y=e.createElement(n);y.async=!0;y.src='https://cdn.pendo.io/agent/static/'+apiKey+'/pendo.js';
|
||||
z=e.getElementsByTagName(n)[0];z.parentNode.insertBefore(y,z);})(window,document,'script','pendo');
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
pendo.initialize({
|
||||
visitor: {
|
||||
email: current_person.email,
|
||||
firstName: current_person.first_name,
|
||||
lastName: current_person.last_name,
|
||||
}
|
||||
});
|
||||
{% endif %}
|
||||
})('a59ee367-b60f-4801-7452-0331dce168e1');
|
||||
</script>
|
||||
@ -0,0 +1,72 @@
|
||||
<script src="https://fast.wistia.net/assets/external/E-v1.js" async></script>
|
||||
|
||||
{%comment%} <script src="//fast.wistia.com/embed/medias/s3lqfi0zn7.jsonp" async></script>
|
||||
<script src="//fast.wistia.com/assets/external/E-v1.js" async></script>{%endcomment%}
|
||||
<main class="np-box-container np-open-access">
|
||||
<div class="np-box">
|
||||
{% include "header_minimal" %}
|
||||
<div class="np-box-content-container">
|
||||
<form class="np-form np-box-content" action="{{ form.url }}" method="get" novalidate>
|
||||
{% form_authenticity_token %}
|
||||
<div class="np-form-headline">
|
||||
{% t shared.welcome_to_school, school_name: current_school.name %}
|
||||
</div>
|
||||
<div class="np-form-subheadline">
|
||||
Check out the video below for a quick tour of Artera Academy.<br>Then, enter your first name, last name, and your work email address below to get started.
|
||||
</div>
|
||||
|
||||
{%comment%}<div class="intro-video wistia_embed videoFoam=true playbar=false volumeControl=false smallPlayButton=false settingsControl=false autoPlay=true wistia_async_fl9lthnnox" style="width: 100%; height: auto; margin-bottom: 20px;"> </div>{%endcomment%}
|
||||
<div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;">
|
||||
<div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;">
|
||||
<iframe src="https://fast.wistia.net/embed/iframe/fl9lthnnox?seo=false&videoFoam=true" title="LearnWELL Intro Video" allow="autoplay; fullscreen" allowtransparency="true" frameborder="0" scrolling="no" class="wistia_embed" name="wistia_embed" msallowfullscreen width="100%" height="100%"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_first_name">
|
||||
{% t shared.first_name %}
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
autofocus="autofocus"
|
||||
type="text"
|
||||
name="first_name"
|
||||
id="learner_first_name"
|
||||
value="{{ form.first_name }}"
|
||||
/>
|
||||
</div>
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_last_name">
|
||||
{% t shared.last_name %}
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
type="text"
|
||||
name="last_name"
|
||||
id="learner_last_name"
|
||||
value="{{ form.last_name }}"
|
||||
/>
|
||||
</div>
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_email">
|
||||
{% t shared.email_address %}
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
type="text"
|
||||
name="email"
|
||||
id="learner_email"
|
||||
value="{{ form.email }}"
|
||||
/>
|
||||
</div>
|
||||
<input
|
||||
type="submit"
|
||||
name="commit"
|
||||
value="{% t shared.enter %}"
|
||||
class="np-button np-button-big np-form-action"
|
||||
/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
@ -21,9 +21,9 @@
|
||||
<div class="np-card-content-subtitle">
|
||||
{{ course.short_description }}
|
||||
</div>
|
||||
<div class="np-card-content-lessons">
|
||||
<a class="np-card-content-lessons" href="{{course_path}}#course-overview">
|
||||
{{ activities_count }} {% if activities_count == 1 %}Lesson{% else %}Lessons{% endif %}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -65,6 +65,7 @@
|
||||
font-size: 16px;
|
||||
margin-top: 20px;
|
||||
line-height: 22px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,4 @@
|
||||
<i class="far fa-lock-alt np-course-outline-content-activity-icon-locked"></i>
|
||||
<span class="np-course-outline-content-activity-title">
|
||||
{{ activity.title }}
|
||||
</span>
|
||||
@ -0,0 +1,15 @@
|
||||
{% if course.enrolled? %}
|
||||
<a
|
||||
href="{% route activity_viewer,
|
||||
id: activity.id,
|
||||
course_id: params.course_id,
|
||||
learning_path_id: params.learning_path_id
|
||||
%}" class="{{ class }}"
|
||||
>
|
||||
{{ activity.title }}
|
||||
</a>
|
||||
{% else%}
|
||||
<span class="{{ class }}">
|
||||
{{ activity.title }}
|
||||
</span>
|
||||
{% endif %}
|
||||
@ -1,4 +1,8 @@
|
||||
<div class="np-card-container">
|
||||
<a href="{% route dashboard %}" class="np-back-button back-to-courses-btn" aria-label="{% t shared.go_back %}">
|
||||
<i class="far fa-arrow-left np-hidden-mobile np-icon-back back-arrow"></i>
|
||||
Back to My Courses
|
||||
</a>
|
||||
<div class='np-course-header'>
|
||||
<img
|
||||
src="{{ course.image_url }}"
|
||||
@ -19,7 +23,7 @@
|
||||
</div>
|
||||
<div class='np-course-bottom'>
|
||||
<div class='np-course-bottom-left'>
|
||||
<div class='np-course-bottom-left-title'>
|
||||
<div class='np-course-bottom-left-title' id='course-overview'>
|
||||
Curriculum
|
||||
</div>
|
||||
<div class='np-course-bottom-left-outline'>
|
||||
@ -28,9 +32,16 @@
|
||||
{{ section.name }}
|
||||
</div>
|
||||
{% for activity in section.activities %}
|
||||
<div class='np-course-bottom-left-outline-activity'>
|
||||
{{ activity.title }}
|
||||
|
||||
{% if activity.locked? %}
|
||||
<div>
|
||||
{% include "course_activity_locked" %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="course-links">
|
||||
{% include "course_activity_unlocked", class: "np-course-bottom-left-outline-activity" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
@ -114,6 +125,9 @@
|
||||
font-size: 18px;
|
||||
line-height: 28.8px;
|
||||
font-weight: 400;
|
||||
color: black;
|
||||
opacity: 0.7;
|
||||
text-decoration: none;
|
||||
}
|
||||
.np-course-bottom-right {
|
||||
margin-left: 50px;
|
||||
@ -156,4 +170,20 @@
|
||||
margin-left: 110px;
|
||||
}
|
||||
}
|
||||
.np-icon-back {
|
||||
color:black;
|
||||
}
|
||||
|
||||
.back-to-courses-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
font-weight: 500;
|
||||
color: black;
|
||||
}
|
||||
.back-arrow {
|
||||
font-size: 0.8rem;
|
||||
margin-right: 5px;
|
||||
font-weight: 500;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
<div class="np-course-outline">
|
||||
<div class="np-text-title np-course-outline-title">
|
||||
{% t .header, key: current_school.course_vocabulary %}
|
||||
</div>
|
||||
<div class="np-course-outline-content">
|
||||
<ol class="np-course-outline-content-section">
|
||||
{% for section in course.sections %}
|
||||
<li class="np-course-outline-content-section-list">
|
||||
<div class="np-course-outline-content-section-name np-text-title-bold np-text-title-bold">
|
||||
{{ section.name }}
|
||||
</div>
|
||||
<ol class="np-course-outline-content-activity">
|
||||
{% for activity in section.activities %}
|
||||
|
||||
<li class="np-course-outline-content-activity-list">
|
||||
{% if activity.completed? %}
|
||||
<i class="fas fa-circle np-course-outline-content-activity-icon np-button-color"></i>
|
||||
{% if activity.locked? %}
|
||||
{% include "course_activity_locked" %}
|
||||
{% else %}
|
||||
{% include "course_activity_unlocked", class: "np-course-outline-content-activity-link-completed" %}
|
||||
{% endif %}
|
||||
<div class="np-button-background-color np-course-outline-content-activity-list-bar"></div>
|
||||
{% else %}
|
||||
<i class="far fa-circle np-course-outline-content-activity-icon"></i>
|
||||
{% if activity.locked? %}
|
||||
{% include "course_activity_locked" %}
|
||||
{% else %}
|
||||
{% include "course_activity_unlocked", class: "np-course-outline-content-activity-link" %}
|
||||
{% endif %}
|
||||
<div class="np-course-outline-content-activity-list-bar"></div>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,5 +1,6 @@
|
||||
{% comment %} {% include "header" %} {% endcomment %}
|
||||
{% include "course_version_outdated_alert", courses: courses.featured %}
|
||||
|
||||
<main class="np-main np-homepage">
|
||||
<div class="np-homepage-hero">
|
||||
<img class="np-homepage-hero-image"
|
||||
@ -15,7 +16,9 @@
|
||||
{{ homepage.subheadline }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{% include "sub_navigation" %}
|
||||
{% include 'courses_catalog' %}
|
||||
</main>
|
||||
{% comment %} {% include "footer" %} {% endcomment %}
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
<footer class="uk-padding-large-vertical uk-border-top">
|
||||
<div class="uk-container uk-container-center">
|
||||
<div class="uk-grid uk-padding-large-left uk-padding-large-right">
|
||||
<div class="uk-width-small-1-1 uk-width-medium-7-10 uk-margin-bottom">
|
||||
{% if website_footer.show_navigation_links? %}
|
||||
<nav>
|
||||
<ul class="uk-margin-bottom-remove uk-text-center-small">
|
||||
{% for website_navigation in footer_navigations %}
|
||||
<li>
|
||||
<a href="{{ website_navigation.path }}" {% if website_navigation.external? %} target="_blank" {% endif %}>
|
||||
{{ website_navigation.name }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif %}
|
||||
{% if website_footer.show_customer_service_email? and website_footer.school_customer_service_email %}
|
||||
<p class="uk-text-center-small">
|
||||
<p id="anchor-contact"> NOTE: If you are having trouble logging in make sure to check your email and follow the prompts to activate your account. <br> If you still have trouble contact us at <a href="mailto:{{ website_footer.school_customer_service_email }}">
|
||||
{{ website_footer.school_customer_service_email }}
|
||||
</a>
|
||||
<!-- {% t .need_help %}
|
||||
{% t .email %} -->
|
||||
<!-- <a href="mailto:{{ website_footer.school_customer_service_email }}">
|
||||
{{ website_footer.school_customer_service_email }}
|
||||
</a> -->
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="{% if website_footer.show_customer_service_email? or website_footer.show_navigation_links? %}uk-width-medium-3-10{% else %}uk-width-medium-1-1{% endif %}">
|
||||
{% if website_footer.show_social_media_links? %}
|
||||
<nav class="social-links">
|
||||
<ul class="uk-margin-bottom-remove {% if website_footer.show_customer_service_email? or website_footer.show_navigation_links? %}uk-text-right {% else %}uk-text-center {% endif %} uk-text-center-small">
|
||||
{% for social_media_link in website_footer.social_media_links %}
|
||||
<li>
|
||||
<a href="{{ social_media_link.link }}" class="{{ social_media_link.name }}" target="_blank" title="{{ social_media_link.name }}">
|
||||
<i class="uk-icon-{{ social_media_link.name }}"></i>
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
@ -0,0 +1,106 @@
|
||||
<header class="school-website-header uk-z-4">
|
||||
<div class="uk-padding-horizontal uk-container uk-container-center">
|
||||
<nav class="uk-navbar" data-behavior="dropdown">
|
||||
<a href="{{ current_school.logo_navigation_url }}" class="uk-brand">
|
||||
{% if current_school.logo_url %}
|
||||
<img src="{{ current_school.logo_url }}" alt="{{ current_school.name }}">
|
||||
{% else %}
|
||||
<span class="uk-text-large uk-text-bold">{{ current_school.name }}</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
<div class="uk-navbar-flip">
|
||||
<ul class="uk-navbar-nav uk-hidden-small">
|
||||
{% for website_navigation in header_navigations %}
|
||||
<li>
|
||||
<a href="{{ website_navigation.path }}" {% if website_navigation.external? %} target="_blank" {% endif %}>
|
||||
{{ website_navigation.name }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
||||
<li>
|
||||
<a href="#anchor-my-resources">
|
||||
My Resources
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{% search %}
|
||||
<li class="uk-padding-top">
|
||||
{% include "search_form" with "" %}
|
||||
</li>
|
||||
{% endsearch %}
|
||||
|
||||
{% catalog_search %}
|
||||
<li class="uk-padding-top">
|
||||
{% include "catalog_search_form" with "" %}
|
||||
</li>
|
||||
{% endcatalog_search %}
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
<li class="uk-parent" data-uk-dropdown="{mode:'click'}">
|
||||
<a href="#" class="learner-name">{{ current_person.name }}</a>
|
||||
<div class="uk-dropdown uk-dropdown-flip uk-dropdown-navbar">
|
||||
<ul class="uk-nav uk-nav-navbar">
|
||||
<li><a href="{{ routes.my_content_path }}">{{ current_school.my_content_label }}</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<li><a href="{{ routes.log_out_path }}" data-method="delete" rel="nofollow">{% t .log_out %}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
{% else %}
|
||||
<li><a href="{{ routes.log_in_path }}">{% t .log_in %}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
<div class="uk-visible-small">
|
||||
{% search %}
|
||||
<button class="uk-button uk-button-link uk-navbar-toggle mobile-search-toggle mobile-navbar-toggle" data-uk-toggle="{target:'#mobile-search'}">
|
||||
</button>
|
||||
{% endsearch %}
|
||||
|
||||
{% catalog_search %}
|
||||
<button class="uk-button uk-button-link uk-navbar-toggle mobile-search-toggle mobile-navbar-toggle" data-uk-toggle="{target:'#mobile-search'}">
|
||||
</button>
|
||||
{% endcatalog_search %}
|
||||
<a href="#mobile-nav" class="mobile-navbar-toggle uk-navbar-toggle" data-uk-offcanvas></a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{% search %}
|
||||
<div id="mobile-search" class="school-website-header uk-visible-small uk-position-top uk-padding uk-block-default uk-flex uk-border-bottom {% if hide_search_box %}uk-hidden {% endif %}">
|
||||
{% include "search_form" with "" %}
|
||||
<a class="uk-button uk-button-link" href="{{ routes.my_content_path }}">{% t .cancel %}</a>
|
||||
</div>
|
||||
{% endsearch %}
|
||||
|
||||
{% catalog_search %}
|
||||
<div id="mobile-search" class="school-website-header uk-visible-small uk-position-top uk-padding uk-block-default uk-flex uk-border-bottom {% if hide_search_box %}uk-hidden {% endif %}">
|
||||
{% include "catalog_search_form" with "" %}
|
||||
<a class="uk-button uk-button-link" href="{{ routes.school_website_catalog_path }}">{% t .cancel %}</a>
|
||||
</div>
|
||||
{% endcatalog_search %}
|
||||
|
||||
<div id="mobile-nav" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar uk-offcanvas-bar-flip">
|
||||
<ul class="uk-nav uk-nav-offcanvas" data-uk-nav>
|
||||
{% for website_navigation in header_navigations %}
|
||||
<li>
|
||||
<a href="{{ website_navigation.path }}" {% if website_navigation.external? %} target="_blank" {% endif %}>
|
||||
{{ website_navigation.name }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
<li><a href="{{ routes.my_content_path }}">{{ current_school.my_content_label }}</a></li>
|
||||
<li><a href="{{ routes.my_profile_path }}">{% t .my_profile %}</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<li><a href="{{ routes.log_out_path }}" data-method="delete" rel="nofollow">{% t .log_out %}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ routes.log_in_path }}">{% t .log_in %}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,4 @@
|
||||
<div class="uk-padding-large-vertical uk-padding-horizontal uk-border-bottom">
|
||||
<h2 id="anchor-my-resources">{{ my_content.headline }}</h2>
|
||||
<h3 class="uk-margin-top-remove">{{ my_content.subheadline }}</h3>
|
||||
</div>
|
||||
@ -0,0 +1,34 @@
|
||||
<div class="uk-container uk-container-center school-website-course-index-list uk-margin-top uk-margin-bottom">
|
||||
<div class="uk-padding-horizontal">
|
||||
{% if current_school.apps.instructor_led_training.active? %}
|
||||
{% if current_person.upcoming_registered_events.any? %}
|
||||
{% include "events" %}
|
||||
{% else %}
|
||||
{% include "events_empty" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if my_content.learning_paths? %}
|
||||
{% include "my_paths" %}
|
||||
{% endif %}
|
||||
|
||||
{% include "my_content_header" with "" %}
|
||||
<div class="uk-grid uk-grid-flex uk-margin-left-remove">
|
||||
<!-- {% include "filters" with "" %}
|
||||
{% if current_school.filtering_enabled? and current_person.filterable_categories.count > 0 %}
|
||||
<div class="uk-width-medium-5-6 uk-padding">
|
||||
{% else %}
|
||||
<div class="uk-width-1-1 uk-padding">
|
||||
{% endif %} -->
|
||||
<div class="uk-width-1-1 uk-padding">
|
||||
<ul class="uk-grid uk-grid-medium school-website-course-list uk-grid-match" data-uk-grid-match="{target:'.uk-panel'}">
|
||||
{% for course in my_content.courses %}
|
||||
{% if course.course_category_names == "Resource" %}
|
||||
{% include "course" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -86,7 +86,7 @@
|
||||
.np-header-logo-image {
|
||||
display: block;
|
||||
margin: auto;
|
||||
height: 80px;
|
||||
height: 120px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px){
|
||||
|
||||
@ -59,7 +59,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
{% comment %}
|
||||
<script>
|
||||
// document.getElementById("header").scrollIntoView();
|
||||
|
||||
@ -71,18 +70,24 @@
|
||||
// Grabs Email Address Value
|
||||
const learnerEmail = $("#learner_email")[0].value;
|
||||
|
||||
const blockedEmails = [
|
||||
"gmail.com", "yahoo.com", "hotmail.com", "aol.com", "outlook.com",
|
||||
"icloud.com", "me.com", "mac.com"
|
||||
]
|
||||
|
||||
if ($("#learner_email")[0].value.length > 0){
|
||||
if(regexExp.test(learnerEmail) == true){
|
||||
if ($("#learner_email")[0].value.includes('@scenariocloud.com')){
|
||||
$("#learner_email").css("background", "#f2f4f5");
|
||||
$("#bad_email_alert").css("display", "none");
|
||||
$("#submit_button").css("pointer-events", "auto");
|
||||
var slicedEmail = learnerEmail.split('@');
|
||||
if (blockedEmails.indexOf(slicedEmail[1]) > -1) {
|
||||
$("#learner_email").css("background", "salmon");
|
||||
$("#bad_email_alert").css("color", "#f2f4f5");
|
||||
$("#bad_email_alert").css("display", "block");
|
||||
$("#submit_button").css("pointer-events","none");
|
||||
}
|
||||
else {
|
||||
$("#learner_email").css("background", "salmon");
|
||||
$("#bad_email_alert").css("color", "#f2f4f5");
|
||||
$("#bad_email_alert").css("display", "block");
|
||||
$("#submit_button").css("pointer-events","none");
|
||||
$("#learner_email").css("background", "#f2f4f5");
|
||||
$("#bad_email_alert").css("display", "none");
|
||||
$("#submit_button").css("pointer-events", "auto");
|
||||
}
|
||||
} else {
|
||||
$("#learner_email").css("background", "#f2f4f5");
|
||||
@ -95,7 +100,6 @@
|
||||
document.addEventListener('keyup', checkIfInputsExist);
|
||||
console.log(123213213);
|
||||
</script>
|
||||
{% endcomment %}
|
||||
<style>
|
||||
.np-input-label{
|
||||
color: #ffffff;
|
||||
|
||||
40
Custom_Templates/customer_templates/Scenario/scripttest.js
Normal file
40
Custom_Templates/customer_templates/Scenario/scripttest.js
Normal file
@ -0,0 +1,40 @@
|
||||
|
||||
function checkIfInputsExist (){
|
||||
window.setTimeout(function(){
|
||||
// Regular expression to check if string is email
|
||||
const regexExp = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||
|
||||
// Grabs Email Address Value
|
||||
const learnerEmail = $("#learner_email")[0].value;
|
||||
|
||||
// List of Emails to Block
|
||||
const blockedEmails = [
|
||||
"gmail.com", "yahoo.com", "hotmail.com", "aol.com", "outlook.com",
|
||||
"icloud.com", "me.com", "mac.com"
|
||||
]
|
||||
|
||||
if ($("#learner_email")[0].value.length > 0){
|
||||
if(regexExp.test(learnerEmail) == true){
|
||||
var slicedEmail = learnerEmail.split('@');
|
||||
if (blockedEmails.indexOf(slicedEmail[1]) > -1) {
|
||||
$("#learner_email").css("background", "salmon");
|
||||
$("#bad_email_alert").css("color", "#f2f4f5");
|
||||
$("#bad_email_alert").css("display", "block");
|
||||
$("#submit_button").css("pointer-events","none");
|
||||
}
|
||||
else {
|
||||
$("#learner_email").css("background", "#f2f4f5");
|
||||
$("#bad_email_alert").css("display", "none");
|
||||
$("#submit_button").css("pointer-events", "auto");
|
||||
}
|
||||
} else {
|
||||
$("#learner_email").css("background", "#f2f4f5");
|
||||
$("#bad_email_alert").css("display", "none");
|
||||
$("#submit_button").css("pointer-events", "auto");
|
||||
}
|
||||
}
|
||||
}, 500);
|
||||
}
|
||||
document.addEventListener('keyup', checkIfInputsExist);
|
||||
console.log(123213213);
|
||||
|
||||
@ -0,0 +1,101 @@
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
||||
|
||||
{% assign module_1 = "cfcfa17a-968f-43d8-9371-cae4daa4cb14" %}
|
||||
{% assign module_2 = "a559a221-b42c-4d90-941f-b3a562ede3ea" %}
|
||||
{% assign module_2_extra = "a1713ad1-1aeb-4114-90a7-5bf9b58ac49d" %}
|
||||
{% assign module_3 = "8ac19e6e-743d-419c-a39c-58555a22be3b" %}
|
||||
{% assign module_4 = "2d3cfb6f-9f50-45f6-86e1-538e7d1ddc3f" %}
|
||||
{% assign module_5 = "8f369e9f-a3de-4c85-b296-1afcd533dd0a" %}
|
||||
{% assign module_6 = "09f16e0d-487d-4b81-b683-38fd21b58949" %}
|
||||
{% assign module_7 = "86ea3b94-777f-4501-930d-fbafa4d058c7" %}
|
||||
{% assign module_8 = "6e36f89d-49c9-4a9f-85e3-08fb348479e9" %}
|
||||
{% assign module_9 = "3cba00e2-7889-40f8-bc7a-78c4e89a4ba0" %}
|
||||
{% assign module_10 = "7e5e1036-719d-4c59-b760-b627d2636ee1" %}
|
||||
{% assign module_11 = "cb089bcf-4e1d-449e-b727-c3ac27f9add8" %}
|
||||
{% assign module_12 = "9b5fb4ee-dfea-423a-99ec-8163f0cead29" %}
|
||||
|
||||
{% assign rolling_admission_group_id = "c96bed5b-0580-472c-ac7d-77f4e7a3de97" %}
|
||||
|
||||
{% assign course_release_hour = 14 %}
|
||||
|
||||
{% if courses.enrolled.any? %}
|
||||
<div class="row row-with-thumbnails">
|
||||
{% for course in courses.enrolled %}
|
||||
{% if course.id == module_1 %}
|
||||
<div class="{{ class }} fellowship-course module-1">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_2 %}
|
||||
<div class="{{ class }} fellowship-course module-2">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_2_extra %}
|
||||
<div class="{{ class }} fellowship-course module-2-extra">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_3 %}
|
||||
<div class="{{ class }} fellowship-course module-3">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_4 %}
|
||||
<div class="{{ class }} fellowship-course module-4">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_5 %}
|
||||
<div class="{{ class }} fellowship-course module-5">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_6 %}
|
||||
<div class="{{ class }} fellowship-course module-6">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_7 %}
|
||||
<div class="{{ class }} fellowship-course module-7">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_8 %}
|
||||
<div class="{{ class }} fellowship-course module-8">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_9 %}
|
||||
<div class="{{ class }} fellowship-course module-9">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_10 %}
|
||||
<div class="{{ class }} fellowship-course module-10">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_11 %}
|
||||
<div class="{{ class }} fellowship-course module-11">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% elsif course.id == module_12 %}
|
||||
<div class="{{ class }} fellowship-course module-12">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="{{ class }}">
|
||||
{% include "cards_course" with course %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% for group in current_person.groups %}
|
||||
{% if group.id == rolling_admission_group_id %}
|
||||
{% assign enrollment_date = group.enrolled_at %}
|
||||
{% include "rolling_admission_schedule" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
{% capture message %}
|
||||
{% t shared.zero_state.courses.index,
|
||||
key: current_school.course_vocabulary
|
||||
%}
|
||||
{% endcapture %}
|
||||
{% include "courses_zero_state", message: message %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
@ -0,0 +1,41 @@
|
||||
{% if learning_path.enrolled? %}
|
||||
<div class="np-top-cta-progress-content">
|
||||
<div class="np-top-cta-progress-title np-text-title">
|
||||
{% t .progress %}
|
||||
</div>
|
||||
<div class="np-progress-bar-container">
|
||||
<div
|
||||
style="width: {{ learning_path.progress }}%"
|
||||
class="np-button-background-color np-card-progress-bar">
|
||||
</div>
|
||||
</div>
|
||||
<div class="np-top-cta-progress-text
|
||||
{% if learning_path.completed? %} np-color-success {% else %} np-button-color {% endif %}
|
||||
">
|
||||
{% t shared.progress, count: learning_path.progress %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{%comment%}<a
|
||||
class="np-top-button np-button-font-color np-button np-button-big"
|
||||
{% if learning_path.enrolled? %}
|
||||
{% if learning_path.current_item.course? %}
|
||||
href="{% route learning_path_course, id: learning_path.current_item.id, learning_path_id: learning_path.id %}"
|
||||
{% elsif learning_path.current_item.training_event? %}
|
||||
href="{% route training_session, id: learning_path.current_item.id %}"
|
||||
{% endif %}
|
||||
{% else %}
|
||||
href="{% route learning_path_enrollment, code: learning_path.enrollment_code %}"
|
||||
{% endif %}
|
||||
>
|
||||
{% if learning_path.enrolled? == false %}
|
||||
{% t shared.enroll %}
|
||||
{% elsif learning_path.started? == false %}
|
||||
{% t shared.learning_path.start %}
|
||||
{% elsif learning_path.completed? %}
|
||||
{% t shared.learning_path.view %}
|
||||
{% else %}
|
||||
{% t shared.continue %}
|
||||
{% endif %}
|
||||
</a>{%endcomment%}
|
||||
@ -0,0 +1,34 @@
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
let selfGuidedCourseReleaseHour = Number({{ course_release_hour }})
|
||||
$(".fellowship-course").css("display", "none")
|
||||
|
||||
let enrollment_date = new Date(Number('{{ enrollment_date | date: "%s" }}') * 1000).setHours(selfGuidedCourseReleaseHour, 00, 00)
|
||||
console.log("Enrollment date with 9am EST start time", new Date(enrollment_date))
|
||||
|
||||
const now = new Date();
|
||||
|
||||
$(".fellowship-course").each(function (i) {
|
||||
|
||||
let courseModule = i + 1;
|
||||
|
||||
$(`.fellowship-course.module-1`).css("display", "block");
|
||||
|
||||
if (courseModule > 1) {
|
||||
let daysDifference = ((30 * i) * 24 * 60 * 60 * 1000);
|
||||
let timeDiff = now.getTime() - new Date(enrollment_date).getTime();
|
||||
|
||||
if (timeDiff >= daysDifference) {
|
||||
console.log(`Releasing selfGuided module ${courseModule}`)
|
||||
$(`.fellowship-course.module-${courseModule}`).css("display", "block")
|
||||
|
||||
if (courseModule >= 2) {
|
||||
$(`.fellowship-course.module-2-extra`).css("display", "block")
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
<nav class="np-sub-navigation">
|
||||
<div class="np-sub-navigation-content">
|
||||
{% for link in navigations.sub_navigation %}
|
||||
{% if link.label == 'Learning Paths' %}
|
||||
{% if learning_paths.enrolled.size == 0 %}
|
||||
{% continue %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div class="np-sub-navigation-content-item {{ link.active_class }}">
|
||||
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
|
||||
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
|
||||
{{ link.label }}
|
||||
</a>
|
||||
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</nav>
|
||||
@ -0,0 +1,30 @@
|
||||
{% include "header" %}
|
||||
{% include "course_version_outdated_alert", courses: courses.enrolled %}
|
||||
{% include "sub_navigation" %}
|
||||
<main class="np-main np-dashboard np-subpage-container np-max-width">
|
||||
<div class="row np-flex-center">
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{% if features.learning_paths? %}
|
||||
{% if learning_paths.enrolled.size > 0%}
|
||||
<div class="np-dashboard-resources-title">
|
||||
{% t shared.learning_paths %}
|
||||
</div>
|
||||
{% include "learning_paths_index", items: learning_paths.enrolled %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div class="np-dashboard-resources-title">
|
||||
{% t shared.course_vocabulary.plural, key: current_school.course_vocabulary %}
|
||||
</div>
|
||||
{% include "courses_index", class: "col-xs-12 col-sm-6 np-stretch-content" %}
|
||||
</div>
|
||||
{% if features.training_events? %}
|
||||
<div class="np-grid-spacing col-xs-12 col-sm-4">
|
||||
<div class="np-dashboard-resources-title">
|
||||
{% t .upcoming_events %}
|
||||
</div>
|
||||
{% include "training_events_dashboard" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</main>
|
||||
{% include "footer" %}
|
||||
@ -0,0 +1,12 @@
|
||||
{% include "header" %}
|
||||
{% include "sub_navigation" %}
|
||||
<main class="np-main np-training-events np-subpage-container np-max-width">
|
||||
<div class="row">
|
||||
<iframe
|
||||
style="border:none;"
|
||||
width="100%" height="1000"
|
||||
src="https://calendar.google.com/calendar/u/0/embed?src=pmtpcalendar@gmail.com&ctz=America/New_York"
|
||||
title="Wild Health Public Calendar">
|
||||
</iframe>
|
||||
</main>
|
||||
{% include "footer" %}
|
||||
@ -61,6 +61,3 @@ _Analytics:_
|
||||
* More for Admins
|
||||
* Pulling certain roles & attributes
|
||||
* Being able to impersonate that person, or move them to complete when they are stuck. View what they see.
|
||||
|
||||
TODO: Remove deleted from looker extract & exception handling.
|
||||
TODO: Add Date to Looker Extract - date added to group? Something else?
|
||||
|
||||
@ -1,28 +1,30 @@
|
||||
# Blacklane
|
||||
|
||||
## Whos Who
|
||||
|
||||
- Calum: Content, User journeys
|
||||
- Colin: Might be the same (has covid 7/5)
|
||||
|
||||
## Tasks
|
||||
|
||||
- [X] Create Flow Chart of Roles, Courses, NP Definitions etc
|
||||
- [X] Lay out one course per role since we can't hide activities
|
||||
- [X] Check with SE if we can hide activities based on role
|
||||
- [ ] Create flow chart of how to create courses
|
||||
- [ ] Annotated version of diagram - remove details
|
||||
- [ ] Annotated version of diagram - remove details
|
||||
- [ ] Go through Master Course and look for holes
|
||||
- [ ] Review
|
||||
|
||||
## Integrations:
|
||||
## Integrations
|
||||
|
||||
- Salesforce
|
||||
- Salesforce
|
||||
|
||||
## Genzeral Notes
|
||||
|
||||
- currently hosting every module in survey gizmo and intercom
|
||||
- Need to break these down into activities
|
||||
- Components == activities:w
|
||||
- Calum wants the academy to be a living, adaptable thing
|
||||
- Calum wants the academy to be a living, adaptable thing
|
||||
- DEADLINES: End of July, all courses done, Mid-August, Launch
|
||||
- Ideally, august launch is full - they will still add courses, but the 9 modules must be completed before they can accept rides
|
||||
- Hasn't discussed how to introduce the Launch
|
||||
@ -33,50 +35,62 @@
|
||||
- Calum has google sheet with all the training structures
|
||||
- Roles in chauffer - admin, provider, dispatcher, reviewer, driver
|
||||
- Is there a priority/importance of the roles?
|
||||
- Regardless of role, all training is the same, currently.
|
||||
- Regardless of role, all training is the same, currently.
|
||||
- Need to separate it based on permisionning. How to separate training?
|
||||
- Each role is different, no monetary incentive
|
||||
- New account gets all training under Y
|
||||
- New account gets all training under Y
|
||||
- Each course will need to be for each category
|
||||
- Salesforce integration
|
||||
- What is the trigger for Norm to gain another permission? Partner portal just updates their chauffer - only admin can update a driver's rules and permissions
|
||||
- Updated driver doesn't need to take new training
|
||||
- Permissioning doesn't change very often
|
||||
- If someone has dropped off the app for 6 months, they will have to redo the trianing
|
||||
** 7/19/2022 **
|
||||
Colin
|
||||
- If someone has dropped off the app for 6 months, they will have to redo the trianing
|
||||
**7/19/2022**
|
||||
Colin
|
||||
Which access rights/permissions within BambooHR to turn on the integration
|
||||
Separation of instances - chauffer and internal -S
|
||||
Northpass chauffers and northpass internal -
|
||||
Northpass chauffers and northpass internal -
|
||||
Calum is sick now, surgery - next week he will return
|
||||
Design for both - start with basic design
|
||||
Integration into app in Q4 -
|
||||
SSO for chauffers
|
||||
Integration into app in Q4 -
|
||||
SSO for chauffers
|
||||
UUID - not through email since they have duplicates
|
||||
Integrating with salesforce - what needs to be done in their salesforce to turn on integration
|
||||
Integrating with salesforce - what needs to be done in their salesforce to turn on integration
|
||||
Colin is very familiar with SFDC
|
||||
Timeline: SFDC Integration first, then migrate content into NP, go live in August to test for Chauffers
|
||||
Timeline Internal: HR team wants to use it right away, GDPR as first training
|
||||
Timeline: SFDC Integration first, then migrate content into NP, go live in August to test for Chauffers
|
||||
Timeline Internal: HR team wants to use it right away, GDPR as first training
|
||||
|
||||
Just focus on content creation with Chris
|
||||
|
||||
Turn on salesforce
|
||||
watch it not work
|
||||
have p set up webhook script for learner completed
|
||||
have p set up webhook script for learner completed
|
||||
pass uid in enrollment URL/invitation URL
|
||||
chauffer clicks, enrolls, takes course, webhook goes back to SFDC
|
||||
chauffer clicks, enrolls, takes course, webhook goes back to SFDC
|
||||
|
||||
Thoughts:
|
||||
Turn on so enrollment object gets created
|
||||
Once it exists in salesforce, with workato we can update xyz in enrollments object
|
||||
Turn on so enrollment object gets created
|
||||
Once it exists in salesforce, with workato we can update xyz in enrollments object
|
||||
|
||||
** Meeting with Chris from Learning Team **
|
||||
**Meeting with Chris from Learning Team**
|
||||
Any department has to go through initial training
|
||||
Service Excellence team,
|
||||
Service Excellence team,
|
||||
|
||||
Newbies from Manila are contractors and don't have BBHR access
|
||||
Newbies from Manila are contractors and don't have BBHR access
|
||||
These are your customer care team
|
||||
|
||||
Berlin, LA, etc all have Blacklane Employees
|
||||
Berlin, LA, etc all have Blacklane Employees
|
||||
ILT wont work because they have to do instructor led training within a course
|
||||
|
||||
## 01/18/2023
|
||||
|
||||
### Braze/Northpass
|
||||
|
||||
- Webinar and Learning Data should go into Braze. If Braze can store that data, even better.
|
||||
- Store IDs in Northpass from Braze or Salesforce
|
||||
- They need to limit API calls because Braze will charge them more with even more API calls.
|
||||
|
||||
Data Warehouse: Airflow - between warehouses.
|
||||
|
||||
Trigger would come from warehouse that X course needs to happen because of decision Y.
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@ To better grasp the content:
|
||||
* Median minutes for spent on training is the entire course. Not activity.
|
||||
* Out of 10 cases of average start count is > 5... more than 5 times they have tried to start training. 10 cases total, 8 are Northpass.
|
||||
|
||||
TODO: Look in DataDog after Doris sends time or people that are being stuck.
|
||||
DONE: Look in DataDog after Doris sends time or people that are being stuck.
|
||||
Something else that Joonas has mentioned, enrollment process between Northpass & Edume is quite different. Differences:
|
||||
|
||||
* Northpass needs first, last, and email
|
||||
@ -144,3 +144,39 @@ For them to see an error with a driver is two ways:
|
||||
|
||||
If a driver has registered, then they have completed the training and all is working successfully.
|
||||
Joonas will be back on Monday to give us the credentials.
|
||||
|
||||
## 01/23/2023
|
||||
|
||||
### Next 6 months Discussion
|
||||
|
||||
Sten & Oliver have been added to this meeting
|
||||
|
||||
* Olivier moved to the Training team and took over for Vera and all her tasks.
|
||||
* Vera moved to a different team.
|
||||
|
||||
Notes regarding contract:
|
||||
|
||||
Travis wants to review expectations for the next 6 months. Last review was July, Travis thinks it was a successful process.
|
||||
Northpass is aware of some outstanding issues on reliability that need to be completed asap.
|
||||
Do we need a new scope of work?
|
||||
|
||||
Course related issues have been solved, but platform reliability still needs to be solved.
|
||||
Charlie's webview article suggestion didn't work because of Android issues and versioning. Lots of Drivers are using Android < v10.
|
||||
Drivers are still getting "stuck" - they usually see the white screen.
|
||||
The issue doesn't seem to happen in UK or European markets, only African markets. Internet connectivity could be an issue, but how can we possibly diagnose that?
|
||||
But, for some reason, this is _only_ happening in Northpass. So even if it only happens in African+Azerbaijani markets, it only happens in Northpass.
|
||||
Happens in primarily 4 courses. They are all under the category 'in-app driver training'. They are also mandatory courses, so the issue is more likely to appear.
|
||||
Edume is also being displayed within a webview of the Bolt Driver app. This issue becomes more prominent with re-training courses.
|
||||
Let Aleksandr know about credentials.
|
||||
|
||||
Travis: other than the webview issue, above, are there other concerns about Northpass?
|
||||
Doris/Sten: Completion times & re-taking count. In Nigeria and Kenya, the minutes spent on NP training is close to double for internal solution.
|
||||
Example: Northpass-11min, Edume-6min, Stories-4min. Across all markets.
|
||||
Enrollment to Completion would be "longer". We are unsure if this is enrollment to completion webhook - or something else?
|
||||
Median minutes is only for people who have completed the training. Moment 1: clicking button in their app, End Moment: Webhook reaching.
|
||||
|
||||
_The main issue seems to be around webhooks. If webhooks are taking 3-5 minutes to send, then we should be in line with the other platforms._
|
||||
|
||||
Next steps - Travis, do you want to create another SOW? How do we want to work forward for the next 6 months?
|
||||
Sten: we need to properly scope the issue that we are discussing. They are being impacted on many fronts from this delayed webhook issue.
|
||||
Once we have alignment on solving the webhooks, then we can properly create a scope for the next 6 months.
|
||||
|
||||
@ -133,5 +133,5 @@ Time line Needs (3 primary things):
|
||||
- Siying and Rachel has a list of the courses. But how about data and progress?
|
||||
- Can Fuse transfer over progress data?
|
||||
- Export CSVs per course? or Group?
|
||||
TODO: Ask what the data set should be.
|
||||
DONE: Ask what the data set should be.
|
||||
TODO: Ask Charlie for Course CSV (Just like Walmart)
|
||||
|
||||
@ -47,7 +47,7 @@ They feel like this has been talked about for a longtime. Just waiting for a GO
|
||||
* Best Practices - What's going to work for them?
|
||||
* Ideal usage of Data?
|
||||
* Someone engages with that piece of content
|
||||
* Marketo Tracks a course completion - Success!
|
||||
* Marketo Tracks a course completion - Success!
|
||||
* Katlin also wants to trigger an email for someone that starts a course but doesn't complete
|
||||
* Lofty goals? Not yet, most will be on the marketo side
|
||||
* Setup customer MQL
|
||||
@ -70,8 +70,8 @@ They feel like this has been talked about for a longtime. Just waiting for a GO
|
||||
* #5746b2 <-- G2 Purple
|
||||
* Start providing best practices for certifications <-- Katlin
|
||||
* Erin to take over content & overall admin responsbilities
|
||||
* Certifications Launch in Q2 of 2023, maybe end of Q2 (April)
|
||||
* First Certifications Discussion Mid December to plant seed
|
||||
* Certifications Launch in Q2 of 2023, maybe end of Q2 (April)
|
||||
* First Certifications Discussion Mid December to plant seed
|
||||
|
||||
## 10/02/2022
|
||||
|
||||
@ -132,7 +132,7 @@ They feel like this has been talked about for a longtime. Just waiting for a GO
|
||||
* Sending people to Reports course, specifically
|
||||
* Prepping learners for report season
|
||||
* Course highlight!
|
||||
* Sending them G2U and sharing course.
|
||||
* Sending them G2U and sharing course.
|
||||
|
||||
## 10/31/2022
|
||||
|
||||
@ -149,7 +149,7 @@ They feel like this has been talked about for a longtime. Just waiting for a GO
|
||||
* They need to measure ENGAGEMENT. "You can engage with a piece of content but not finish it."
|
||||
* View Metrics are going to be important for them.
|
||||
* Erin saw a certificate webinar - "How to build out a certificate program?"
|
||||
* Mentioned having an interactive quizzes that are more than just True/False.
|
||||
* Mentioned having an interactive quizzes that are more than just True/False.
|
||||
* Should we add a quiz at the activity with the most or least amount of engagement?
|
||||
|
||||
## 11/07/2022
|
||||
@ -254,4 +254,4 @@ She's unsure of what the ROI metric and how to measure success, but what she thi
|
||||
* Compare analytics between Northpass and sales/deals as a partner.
|
||||
* No Partner-CRM. Crossbeam & Salesforce are their main platforms.
|
||||
* Difference between premium and enterprise reporting.
|
||||
TODO: Send screenshots on Workato Information, Analytics, Workflows & Group Provisioning - Due: Thursday Afternoon.
|
||||
DONE: Send screenshots on Workato Information, Analytics, Workflows & Group Provisioning - Due: Thursday Afternoon.
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
- [X] Channel Cards should say 33% viewed not complete
|
||||
- [X] Add timing to activity titles (Melinda)
|
||||
- [X] Add timing to channel card (Northpass)
|
||||
- [X] Challenging Case Content, split into different courses
|
||||
- [X] Dont share SCORM course Phaco Funds with Dr. Sam Garg
|
||||
- [X] Challenging Case Content, split into different courses
|
||||
- [X] Dont share SCORM course Phaco Funds with Dr. Sam Garg
|
||||
- [X] My Topics - changing to what?
|
||||
- [X] All Channels should be All Topics
|
||||
- [X] Learning Paths >> Programs
|
||||
@ -25,7 +25,7 @@
|
||||
- [X] If we need to back off on card content properties (course properties, such as time)
|
||||
- [X] Programs > Bummer, you're not part of any programs
|
||||
- [X] Other Topics > Yikes! You aren't accessing any any modules
|
||||
- [X] Ping Tigue regardig
|
||||
- [X] Ping Tigue regarding
|
||||
Events should be figured out by our demo -
|
||||
- [X] Add featured content spotlight box that moves the 4 boxes down
|
||||
- [X] Can we showcase videos on the main page with a little modal?
|
||||
@ -40,7 +40,7 @@ Events should be figured out by our demo -
|
||||
- [X] Useful Links - JJ vision Pro, Contact Us, JJI, YouTube
|
||||
- [X] Legal Allyson
|
||||
- [-] Legal Notice needs to change
|
||||
- [X] This cant be $250,000k total for global academy
|
||||
- [X] This can't be $250,000k total for global academy
|
||||
- [X] AMER - is LatAm, Ameica, Canada
|
||||
- [X] ASIAPAC - NZ, AU, All of Asia
|
||||
- [X] Europe is Europe
|
||||
@ -51,7 +51,7 @@ Figure out events setup
|
||||
|
||||
### Notes
|
||||
|
||||
Customer base: residents, fellows, surgeons, optometrists, opthamologists
|
||||
Customer base: residents, fellows, surgeons, optometrists, ophthalmologists
|
||||
Chapter Content
|
||||
Registrations will be a link that Melinda will manager
|
||||
|
||||
@ -60,14 +60,14 @@ Registrations will be a link that Melinda will manager
|
||||
Role is what will decide what content they have more than region or location
|
||||
Content is by role
|
||||
Events is by State
|
||||
It isn't even primary speciality
|
||||
It isn't even primary specialty
|
||||
Once the error is fixed on the form, K will let M know to test
|
||||
Events are tied to... course or group
|
||||
Events are tied to... Course or group
|
||||
But if we have a group per state,
|
||||
Are we also creating groups around role, not primary speciality
|
||||
When loading an event, event should select between both groupings - a Texas Opthamologist
|
||||
She needs granuar control, she may not want to invite students or fellows
|
||||
Or a residency event and not invite opthamlogists
|
||||
Are we also creating groups around role, not primary specialty
|
||||
When loading an event, event should select between both groupings - a Texas Ophthalmologist
|
||||
She needs granular control, she may not want to invite students or fellows
|
||||
Or a residency event and not invite ophthalmologists
|
||||
|
||||
Other one:
|
||||
How do we differentiate from "all"?
|
||||
@ -97,7 +97,7 @@ This is ONLY for the US
|
||||
- Talk and brainstorm about possibilities to refine the data that the search pulls from
|
||||
- New Site launched One Vision. Pro site. It says "Interact" at the top of the dashboard. Onevision.prointeract.com.
|
||||
- Melinda called it a "show pad". <https://www.prointeract.com/#mousescroll>
|
||||
- Internal training site? CMS? Hard to tell. But it has a folder for sales training. It looks just like a list of files and resources.
|
||||
- Internal training site? CMS? Hard to tell. But it has a folder for sales training. It looks just like a list of files and resources.
|
||||
|
||||
## 10/19/2022
|
||||
|
||||
@ -175,7 +175,7 @@ DONE: Get rid of fine tuned and change Podcasts to Professional Podcasts - categ
|
||||
|
||||
### Pre-Holiday Sync
|
||||
|
||||
TODO: Send Melinda a list of all the information Northpass stores
|
||||
DONE: Send Melinda a list of all the information Northpass stores
|
||||
|
||||
## 01/09/2023
|
||||
|
||||
@ -183,8 +183,14 @@ TODO: Send Melinda a list of all the information Northpass stores
|
||||
|
||||
- All Course Cards should say Start, if viewed, Continue
|
||||
- Mimic the Privacy Links in Footer of [Clean & Clear](https://www.cleanandclear.com/)
|
||||
- Verbatim: Do Not Sell or Share My Personal Information | Limit the use of my Sensitive Personal Information
|
||||
- Verbatim: Do Not Sell or Share My Personal Information | Limit the use of my Sensitive Personal Information
|
||||
- Need a list of the personal information and records that Northpass stores
|
||||
TODO: Find course creation cheat sheet/documentation
|
||||
DONE: Find course creation cheat sheet/documentation
|
||||
TODO: Recorded Webinars Category
|
||||
TODO: List of Form Fields - Country is hidden.
|
||||
DONE: List of Form Fields - Country is hidden.
|
||||
|
||||
## 01/23/2023
|
||||
|
||||
### Content & Design Changes
|
||||
|
||||
DONE: Hide the TOC for all courses except webinars - specifically, podcasts, videos, documents.
|
||||
|
||||
@ -7,5 +7,5 @@
|
||||
Jessica is doing the same thing but under a new manager.
|
||||
Told her to check in on updating Hubspot info via CSV
|
||||
Brian's last communications with Prenda: December 7th
|
||||
TODO: Send pricing on Enterprise and what that pricing would be
|
||||
DONE: Send pricing on Enterprise and what that pricing would be
|
||||
Wants to know about missing features. What features would make this more robust?
|
||||
|
||||
@ -102,9 +102,8 @@ Especially on Enterprise.
|
||||
|
||||
Certifications:
|
||||
Stripe Integration and Revenue Tools
|
||||
They want a certification portal where they can "sell" certifications, similar to a web shop.
|
||||
|
||||
AppCues:
|
||||
They want a certification portal where they can "sell" certifications, similar to a web shop
|
||||
:
|
||||
She wants to make sure no risk in setting up the appcues stuff.
|
||||
|
||||
Forums:
|
||||
@ -148,4 +147,11 @@ They want to ask questions like "which option".
|
||||
She wants to be integrated into Northpass, like passing scores and milestones.
|
||||
|
||||
Pro-profs & Question Pro at the top contenders.
|
||||
Skuid's founder is retiring and joining the board and wants the RTE "beautified". Even the code guy said that.
|
||||
Skuid's founder is retiring and joining the board and wants the RTE "beautified". Even the code guy said that.
|
||||
|
||||
## 01/19/2023
|
||||
|
||||
### Feature Requests
|
||||
|
||||
How to use a prop email/secondary email as a recovery email?
|
||||
FEAT: Notifications after a Learning Path - not at the last course!
|
||||
|
||||
@ -95,7 +95,7 @@ Kayla personal email: klambie@sympatico.ca
|
||||
### Workflow issues with Enrolling
|
||||
|
||||
Courses should be more content repositories, and enrolling needs to be more seamless. So if an non-enrolled person searches and clicks an activity, they should be auto-enrolled and brought straight to the activity they clicked on.
|
||||
TODO: Enroll button should say "Start Course" even if they aren't enrolled and a click should Enroll + Place them at their activity.
|
||||
DONE: Enroll button should say "Start Course" even if they aren't enrolled and a click should Enroll + Place them at their activity.
|
||||
FEAT: Can we remember the search click to drop them into the activity they clicked on?
|
||||
WARN: Drag and drop of activities is glitchy and dropping activity in wrong spots. As if it forgets the mouse is dragging it and leaves the activity in the wrong place.
|
||||
|
||||
@ -110,14 +110,14 @@ In a perfect world:
|
||||
|
||||
Swift recently went through a big restructuring, and 30% of the many teams, including marketing have left. The restructuring is focusing on the core product instead of innovation and new features.
|
||||
|
||||
Last random question: her manager, Rob, hates the gravatar things. Can the gravatar default change to a default image.
|
||||
TODO: Ask if we can change everyone's gravatar to the default bathroom icon guy. If we can't, please disable gravatars and change everyone a gravatar shows up (header) to the bathroom guy.
|
||||
Last random question: her manager, Rob, hates the gravatar things. Can the gravatar default change to a default image.
|
||||
DONE: Ask if we can change everyone's gravatar to the default bathroom icon guy. If we can't, please disable gravatars and change everyone a gravatar shows up (header) to the bathroom guy.
|
||||
|
||||
## 12/21/2022
|
||||
|
||||
### Feedback on Hubert's Designs
|
||||
|
||||
TODO: Invite Kayla to the Sandbox.
|
||||
DONE: Invite Kayla to the Sandbox.
|
||||
Broadly okay, but little things were wrong. Here were the items:
|
||||
|
||||
* Text is not responsive. The toolbar is the full screen. It should be about half of the size. Optimally, when you land you should see some courses below the toolbar. ~67% browser resize.
|
||||
|
||||
@ -270,7 +270,14 @@ Need to know:
|
||||
* All Compliance Courses Completed (Completion Date)
|
||||
* 30 difference/requirement between those dates.
|
||||
|
||||
## 01/24/2023
|
||||
|
||||
## 01/17/2023
|
||||
### Custom Reports
|
||||
|
||||
### Standard Meeting
|
||||
From Molly's Email:
|
||||
> Requesting a custom report that shows prescribers who have completed the 1099 Prescriber: Getting Started at Talkspace, but has not completed any compliance group.
|
||||
> Requesting a custom report that shows providers who have completed 1099 Provider: Talkspace Managed Care Plans but has not completed any compliance group.
|
||||
|
||||
Goal: They need to communicate with the people who have not completed the compliance courses within 30 days.
|
||||
|
||||
TODO: Add Column with Date Complete of Getting Started or Managed Care. They would like a single spreadsheet with everyone's completed courses.
|
||||
|
||||
@ -54,4 +54,20 @@ Biggest Gap in Onboarding Process?
|
||||
* Brian trying to find data point: Do accounts without an AM churn less?
|
||||
|
||||
Katie wants to figure out _who_ is using TSU. Holly wants to find easier access to track that data.
|
||||
TODO: Email Brian about getting Salesforce turned on? And send CZ video.Ask about marketing collaboration.
|
||||
DONE: Email Brian about getting Salesforce turned on? And send CZ video.Ask about marketing collaboration.
|
||||
|
||||
## 01/24/2023
|
||||
|
||||
### Internal Training Discussion
|
||||
|
||||
Customer Success Training: The 100 questions projects
|
||||
|
||||
* Questions about the software, i.e. Navigation, updating password, etc
|
||||
* Some more specific questions that require searching and screenshot
|
||||
* Currently on a Google Doc that you just click through.
|
||||
* Nitty Gritty questions included.
|
||||
* One of Brian's biggest items is the 100 questions into Northpass.
|
||||
|
||||
There needs to be some deviation between departmental training.
|
||||
In Brian's Mind: Upload the document to Northpass.
|
||||
Theory: How do you make internal training applicable to every employee? Finance and Engineering, etc.
|
||||
|
||||
@ -329,3 +329,11 @@ Business Impact?
|
||||
|
||||
Engineering was upset that they weren't brought in for the selection process. So for next steps, we will let them set the next cues and steps. They have a lot of questions for Scott and Stephanie.
|
||||
Travis/Norm wait to hear from Scott about engineering and when they are ready to engage.
|
||||
|
||||
## 01/18/2023
|
||||
|
||||
### Content & Search Results
|
||||
|
||||
For all videos the description text as search results is fine. For text based, it looks lazy.
|
||||
Search description copy can wait until the January release.
|
||||
January Release: Rolling release of resources
|
||||
|
||||
@ -26,7 +26,7 @@ Next Sprint or following - 2-4 weeks
|
||||
Daniel has been the WildHealth dev working on this
|
||||
|
||||
- [X] Send documentation and endpoints (person created, person added to group)
|
||||
- [X] Will a user that gets activated count against their MAL? <-- No!
|
||||
- [X] Will a user that gets activated count against their MAL? <-- No!
|
||||
|
||||
diet ->
|
||||
diseas specific -> autoimmunne
|
||||
@ -94,7 +94,7 @@ module 7 -> coaching philosophy
|
||||
|
||||
- Abby usually handles little IT issues like logins etc.
|
||||
- Should/Can she send them to NP Support?
|
||||
- Usual issues are if reset password doesn't work or a course is not accessible.
|
||||
- Usual issues are if reset password doesn't work or a course is not accessible.
|
||||
- Assistant: Baeligh Moburley
|
||||
- All inquiries will go to Baeleigh first and then passed onto us.
|
||||
- Anything I can do to help Mike? Nothing yet. He is pumped that Abby and Trei will be getting custom analytics.
|
||||
@ -159,5 +159,18 @@ DONE: Deliver Trei Analytics.
|
||||
|
||||
Back to ILTs & Webinars, embedding a Google Calendar
|
||||
Abby to get public calendar link.
|
||||
TODO: Pull search results from DD - as far back as possible.
|
||||
TODO: Improve Search for Activities - add description? Check with SE.
|
||||
DONE: Pull search results from DD - as far back as possible.
|
||||
DONE: Improve Search for Activities - add description? Check with SE.
|
||||
|
||||
## 01/23/2023
|
||||
|
||||
### Small Meeting - One Item
|
||||
|
||||
She noticed a font change and wants to change them across the academy.
|
||||
|
||||
[Poppins](https://fonts.google.com/specimen/Poppins) - Headers, Titles
|
||||
[Be Vietnam Pro](https://fonts.google.com/specimen/Be+Vietnam+Pro?query=be+viet) - Body
|
||||
[Public Calendar Link](https://calendar.google.com/calendar/u/0/embed?src=pmtpcalendar@gmail.com&ctz=America/New_York)
|
||||
|
||||
Start with one instance and let Abby know.
|
||||
TODO: Submit ticket for font changes & iFrame the calendar.
|
||||
|
||||
@ -1,19 +1,20 @@
|
||||
import io
|
||||
import sys
|
||||
from re import search
|
||||
from re import search
|
||||
import re
|
||||
import os
|
||||
import os
|
||||
import fileinput
|
||||
from datetime import date
|
||||
|
||||
#rootdir = "/Users/normrasmussen/Documents/Northpass/CustomerNotes/"
|
||||
# rootdir = "/Users/normrasmussen/Documents/Northpass/CustomerNotes/"
|
||||
# This is for testing
|
||||
rootdir = "/Users/normrasmussen/Documents/Northpass/CustomerNotes/"
|
||||
todoDir = "/Users/normrasmussen/Documents/Northpass/"
|
||||
todoDir = "/Users/normrasmussen/Documents/Northpass/"
|
||||
input = sys.argv[1]
|
||||
company = input.split("/")[6]
|
||||
print(company)
|
||||
|
||||
|
||||
def findCompany(rootdir, company):
|
||||
files = os.listdir(rootdir)
|
||||
for fileName in files:
|
||||
@ -23,6 +24,7 @@ def findCompany(rootdir, company):
|
||||
company = fileName[:-3]
|
||||
findTodos(rootdir, company)
|
||||
|
||||
|
||||
def findTodos(rootdir, company):
|
||||
todos = []
|
||||
with open(rootdir + company, "r") as currentfile:
|
||||
@ -34,41 +36,48 @@ def findTodos(rootdir, company):
|
||||
todos.append(tasks)
|
||||
writeTasks(rootdir, company, todos)
|
||||
|
||||
|
||||
def writeTasks(rootdir, company, todos):
|
||||
today = date.today()
|
||||
currentDate = today.strftime("%m/%d/%Y")
|
||||
company = company[:-3]
|
||||
todoDir = "/Users/normrasmussen/Documents/Northpass/"
|
||||
todoDir = "/Users/normrasmussen/Documents/Northpass/"
|
||||
with open(todoDir + "Todos.md", "a") as taskFile:
|
||||
for singleTask in todos:
|
||||
task = singleTask.rsplit("* [ ] ")[1]
|
||||
taskFile.write("* [ ] (" + company + ") " + "[" + currentDate + "] " + task)
|
||||
taskFile.write(
|
||||
"* [ ] (" + company + ") " + "[" + currentDate + "] " + task
|
||||
)
|
||||
|
||||
#def deleteCompleted(todoDir):
|
||||
|
||||
# def deleteCompleted(todoDir):
|
||||
# todoList = todoDir + "Todos.md"
|
||||
# with open(todoList, "r") as file_input:
|
||||
# with open(todoList, "w") as output:
|
||||
# for line in file_input:
|
||||
# if line.strip("\n") == "* [X] ":
|
||||
# output.write(line)
|
||||
#for line in fileinput.input(todoList, inplace=True):
|
||||
#if line.strip().startswith("* [X] "):
|
||||
#line = ''
|
||||
#sys.stdout.write(line)
|
||||
# TODO: Neither function deletes single lines, it seems to delete all lines. Fix this.
|
||||
# for line in fileinput.input(todoList, inplace=True):
|
||||
# if line.strip().startswith("* [X] "):
|
||||
# line = ''
|
||||
# sys.stdout.write(line)
|
||||
# TODO: Neither function deletes single lines, it seems to delete all lines. Fix this.
|
||||
|
||||
#def deleteCompleted(todoDir):
|
||||
# def deleteCompleted(todoDir):
|
||||
# todoList = todoDir + "Todos.md"
|
||||
# with open(todoList, "r+") as file:
|
||||
# for line in file:
|
||||
# if line.startswith("* [X] "):
|
||||
# print(line)
|
||||
|
||||
|
||||
def deleteTasks(rootdir, company, tasks):
|
||||
file = rootdir + company
|
||||
for line in fileinput.input(file, inplace=True):
|
||||
if tasks in line:
|
||||
line = line.replace(tasks, '')
|
||||
line = line.replace(tasks, "")
|
||||
|
||||
|
||||
# sys.stdout.write(line)
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Binary file not shown.
@ -3,10 +3,10 @@
|
||||
DONE: Work with Tracy to create a Confluence Document Illustrating the different Manager Permissions and what the app looks like with those permissions.
|
||||
DONE: Get Chris to create Tracy's Dashboard in Hubspot.
|
||||
DONE: Train Courtney on: Automation, Apps, Analytics, Templates & Design
|
||||
TODO: Intro Tracy to new clients (see Tracy's slack)
|
||||
TODO: Start Implementation Channel, tell everyone that if Patrycja USED to be involved in a client that is now launched and the client reaches out to you and Patrycja, don't expect her to reply. If she has some technical knowledge about the account, then please reach out to her but as for SE tasks, someone else should be doing them.
|
||||
DONE: Intro Tracy to new clients (see Tracy's slack)
|
||||
DONE: Start Implementation Channel, tell everyone that if Patrycja USED to be involved in a client that is now launched and the client reaches out to you and Patrycja, don't expect her to reply. If she has some technical knowledge about the account, then please reach out to her but as for SE tasks, someone else should be doing them.
|
||||
|
||||
TODO: Financial Times outreach with new CSM. They asked for Account Manager.
|
||||
DONE: Financial Times outreach with new CSM. They asked for Account Manager.
|
||||
TODO: Intro 4Pillars with Nergis
|
||||
TODO: Intro Kiwi with Nergis
|
||||
DONE: Intro Kiwi with Nergis
|
||||
TODO: Psychiatry-UK Feb22nd Intro
|
||||
|
||||
Reference in New Issue
Block a user