diff --git a/Custom_Templates/customer_templates/.DS_Store b/Custom_Templates/customer_templates/.DS_Store index 2141d9b0..da97aa06 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/Zenjob/_cards_course.html.liquid b/Custom_Templates/customer_templates/Zenjob/_cards_course.html.liquid new file mode 100644 index 00000000..99c6af41 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_cards_course.html.liquid @@ -0,0 +1,74 @@ +
+
+
+ {% unless course.properties.course_image == "NULL" or course.properties.course_image == "" %} + + {% endunless %} + {% if course.ribbon and course.ribbon.size > 0 %} +
+ {{ course.ribbon }} +
+ {% endif %} +
+
+

+ {{ course.name }} +

+ {% if course.instructor_names and course.instructor_names.size > 0 %} +
+ {{ course.instructor_names }} +
+ {% endif %} + {% if course.short_description and course.short_description.size > 0 %} +
+ {{ course.short_description | split: " --- " | last }} +
+ {% endif %} + +
+
+
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_cards_learning_path.html.liquid b/Custom_Templates/customer_templates/Zenjob/_cards_learning_path.html.liquid new file mode 100644 index 00000000..e322d058 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_cards_learning_path.html.liquid @@ -0,0 +1,68 @@ +
+
+
+
+ {{ learning_path.name }} +
+ + {{ learning_path.items.count }} Inhalte +
+
+ +
+ +
+

+ {{ learning_path.name }} +

+ + {% include "learning_path_description" %} + + {% if learning_path.has_instructors? %} +
+ {{ learning_path.instructor_names }} +
+ {% endif %} + +
+ + {{ learning_path.items.count }} Inhalte +
+ + +
+
+
+
+
+
+
+
+
diff --git a/Custom_Templates/customer_templates/Zenjob/_cards_training_event.html.liquid b/Custom_Templates/customer_templates/Zenjob/_cards_training_event.html.liquid new file mode 100644 index 00000000..f5e66d08 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_cards_training_event.html.liquid @@ -0,0 +1,59 @@ +
+
+
+

+ {{ training_event.title }} +

+
+ {% case training_event.event_type %} + {% when "online" %} + Online Event + {% when "in_person" %} + In-Person Event + {% endcase %} +
+ {% if training_event.description and training_event.description.size > 0 %} +
+ + {{ training_event.description | strip }} + +
+ {% endif %} +
+ + {% comment %} Fallback to the first session {% endcomment %} + {% assign session_to_display = training_event.sessions | first %} + {% comment %} Check for an enrolled session and preferrably display that {% endcomment %} + {% assign enrolled_sessions = training_event.sessions | where: "registered?", true %} + {% if enrolled_sessions and enrolled_sessions.size > 0 %} + {% assign session_to_display = enrolled_sessions | first %} + {% endif %} + + {% include "training_session_date", training_session: session_to_display %} + {% if training_event.sessions and training_event.sessions.size > 1 %} +
+
+ + + {{ training_event.sessions.size | minus: 1 }} + {% if training_event.sessions.size == 2 %} + Other Session + {% else %} + Other Sessions + {% endif %} + +
+
+ {% endif %} +
+ +
+
+
diff --git a/Custom_Templates/customer_templates/Zenjob/_course_activity_locked.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_activity_locked.html.liquid new file mode 100644 index 00000000..cfda6676 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_activity_locked.html.liquid @@ -0,0 +1,4 @@ + + {{ activity.title }} + + diff --git a/Custom_Templates/customer_templates/Zenjob/_course_activity_unlocked.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_activity_unlocked.html.liquid new file mode 100644 index 00000000..1145ddff --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_activity_unlocked.html.liquid @@ -0,0 +1,9 @@ + + {{ activity.title }} + diff --git a/Custom_Templates/customer_templates/Zenjob/_course_cta_button.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_cta_button.html.liquid new file mode 100644 index 00000000..ee367268 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_cta_button.html.liquid @@ -0,0 +1,29 @@ +{% if course.learner_can_retake? %} +
+ {% form_authenticity_token %} + +
+{% else %} + + {% if course.enrolled? == false %} + {% t shared.enroll %} + {% elsif course.started? == false %} + {% t shared.course.start, key: current_school.course_vocabulary %} + {% elsif course.completed? %} + {% t shared.course.view, key: current_school.course_vocabulary %} + {% else %} + {% t shared.continue %} + {% endif %} + +{% endif %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_course_description.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_description.html.liquid new file mode 100644 index 00000000..5683a1b3 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_description.html.liquid @@ -0,0 +1,6 @@ +

+ Über diesen Kurs +

+
+ {{ course.full_description }} +
diff --git a/Custom_Templates/customer_templates/Zenjob/_course_events.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_events.html.liquid new file mode 100644 index 00000000..eabe3960 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_events.html.liquid @@ -0,0 +1,26 @@ +

+ {% t .header %} +

+{% for event in course.events %} +
+
+
+ {{ event.sessions.first.abbreviated_month }} +
+
+ {{ event.sessions.first.day }} +
+
+
+
+ {{ event.title }} +
+
+ {% t shared.event_types, key: event.event_type %} +
+
+ {{ event.sessions.first.time_period | replace: "AM", "am" | replace: "PM", "pm" | replace: "-", "–" }} {{ event.sessions.first.time_zone }} +
+
+
+{% endfor %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_course_header.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_header.html.liquid new file mode 100644 index 00000000..c7886ec3 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_header.html.liquid @@ -0,0 +1,6 @@ +
+ {{ course.name }} +
+
+ {% comment %} {% include "course_cta_button" %} {% endcomment %} +
diff --git a/Custom_Templates/customer_templates/Zenjob/_course_instructors.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_instructors.html.liquid new file mode 100644 index 00000000..851e2719 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_instructors.html.liquid @@ -0,0 +1,26 @@ +

+ Instructors +

+
+ {% for instructor in course.instructors %} +
+ {{ instructor.name }} +
+
+ {{ instructor.name }} +
+ + {% if instructor.title and instructor.title.size > 0 %} + + {% endif %} + +
+
+ {% endfor %} +
diff --git a/Custom_Templates/customer_templates/Zenjob/_course_outline.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_outline.html.liquid new file mode 100644 index 00000000..b9163f64 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_outline.html.liquid @@ -0,0 +1,71 @@ +
+

+ Inhalt +

+
+
    + {% for section in course.sections %} +
  1. +
    + {{ section.name }} + {% assign section_completed = true %} + {% for activity in section.activities %} + {% unless activity.completed? %} + {% assign section_completed = false %} + {% endunless %} + {% endfor %} + + {% if section_completed %} + + {% endif %} +
    + {% comment %}
      + {% for activity in section.activities %} + +
    1. + + + {% if activity.locked? %} + + {% include "course_activity_locked" %} + + {% elsif course.enrolled? == false %} + {% include "course_activity_locked" %} + + {% else %} + {% include "course_activity_unlocked", activity_classes: "np-course-outline-content-activity-link-completed" %} + {% endif %} + +
      +
    2. + {% endfor %} +
    {% endcomment %} +
  2. + {% endfor %} +
+
+
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_course_progress_and_cta.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_progress_and_cta.html.liquid new file mode 100644 index 00000000..fe577381 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_progress_and_cta.html.liquid @@ -0,0 +1,23 @@ +
+
+ {% include "course_cta_button" %} +
+
+
+ Lernfortschritt +
+
+
+
+
+ +
+ {% t shared.progress, count: course.progress %} +
+
+
+
+ {% include "course_cta_button" %} +
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_course_version_outdated_popup.html.liquid b/Custom_Templates/customer_templates/Zenjob/_course_version_outdated_popup.html.liquid new file mode 100644 index 00000000..a200489b --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_course_version_outdated_popup.html.liquid @@ -0,0 +1,49 @@ +
+
+ + +
+
diff --git a/Custom_Templates/customer_templates/Zenjob/_courses_catalog.html.liquid b/Custom_Templates/customer_templates/Zenjob/_courses_catalog.html.liquid new file mode 100644 index 00000000..edce8c32 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_courses_catalog.html.liquid @@ -0,0 +1,179 @@ +{% if courses.in_catalog.any? %} +
+ {% + include "filter_by_progress", + label: "Nach Fortschritt filtern:", + default_option: "Alle Kurse" + %} +
+
+ {% for course in courses.in_catalog %} + {% assign is_on_the_job_video = false %} + {% for category in course.categories %} + {% if category.id == "40b1f3d7-6faf-4d54-a74f-92d330831728" or category.name contains "On-The-Job" %} + {% assign is_on_the_job_video = true %} + {% endif %} + {% endfor %} + + {% unless is_on_the_job_video %} + {% assign progress_status = "jetzt-starten" %} + {% if course.progress > 0 and course.progress < 100 %} + {% assign progress_status = "angefangen" %} + {% elsif course.progress == 100 %} + {% assign progress_status = "abgeschlossen" %} + {% endif %} + +
+ {% include "cards_course" with course %} +
+ {% endunless %} + {% endfor %} +
+{% else %} + {% capture message %} + {% t shared.zero_state.courses.index, + key: current_school.course_vocabulary + %} + {% endcapture %} + {% assign message = message | replace: "Courses", "Courses" %} + {% include "courses_zero_state", message: message, filters_applied: false %} +{% endif %} + + + + diff --git a/Custom_Templates/customer_templates/Zenjob/_courses_index.html.liquid b/Custom_Templates/customer_templates/Zenjob/_courses_index.html.liquid new file mode 100644 index 00000000..63cbdb7f --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_courses_index.html.liquid @@ -0,0 +1,200 @@ +{% if courses.enrolled and courses.enrolled.any? %} + {%- assign all_categories = "" -%} + + {%- for category in categories.enrolled -%} + {% comment %}
Rolle
{% endcomment %} + {% unless category.id == "087ea56d-888b-4e0f-af1f-68627318c841" or category.id == "9be55234-19c5-4df4-bd1d-03e93f0faf83" or category.id == "6580e10e-eacf-402d-a330-51d202721cce" or category.id == "a63019c7-0a46-40bd-bc1b-935c887a4380" or category.id == "40b1f3d7-6faf-4d54-a74f-92d330831728" %} +
+
+ {{category.name}} +
+ {% assign topic = category.id %} + {% + include "filter_by_progress", + label: "Nach Fortschritt filtern:", + default_option: "Alle Kurse", + topic: topic, + %} +
+
+ {%- for course in courses.enrolled -%} + {% assign all_categories = course.categories | map: "id" %} + + {%- if all_categories contains category.id -%} + {% assign course_status = "" %} + + {% if course.started? == false %} + {% assign course_status = "jetzt-starten" %} + {% elsif course.completed? %} + {% assign course_status = "abgeschlossen" %} + {% elsif course.started? %} + {% assign course_status = "angefangen" %} + {% endif %} +
+ {% include 'cards_course' %} +
+ {%- endif -%} + {%- endfor -%} +
+ {% endunless %} + {%- endfor -%} + + {%- comment -%}
+ {% for course in courses.enrolled %} + {% include "cards_course", course: course, card_classes: card_classes %} + {% endfor %} +
{%- endcomment -%} +{% else %} + {% capture message %} + {% t shared.zero_state.courses.index, + key: current_school.course_vocabulary + %} + {% endcapture %} + {% assign message = message | replace: "Courses", "Courses" %} + {% include "courses_zero_state", message: message, filters_applied: false %} +{% endif %} + + + + diff --git a/Custom_Templates/customer_templates/Zenjob/_courses_zero_state.html.liquid b/Custom_Templates/customer_templates/Zenjob/_courses_zero_state.html.liquid new file mode 100644 index 00000000..327b6de6 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_courses_zero_state.html.liquid @@ -0,0 +1,9 @@ +
+
+

{{ message }}

+ {% if filters_applied %} + + {% endif %} +
+ {{ message }} +
diff --git a/Custom_Templates/customer_templates/Zenjob/_filter_by_progress.html.liquid b/Custom_Templates/customer_templates/Zenjob/_filter_by_progress.html.liquid new file mode 100644 index 00000000..ad57833c --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_filter_by_progress.html.liquid @@ -0,0 +1,123 @@ +
+ {% if label %} +
{{ label }}
+ {% endif %} +
+ +
+
+ + + diff --git a/Custom_Templates/customer_templates/Zenjob/_footer.html.liquid b/Custom_Templates/customer_templates/Zenjob/_footer.html.liquid new file mode 100644 index 00000000..b849e1d1 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_footer.html.liquid @@ -0,0 +1,81 @@ +{% comment %} + +{% endcomment %} diff --git a/Custom_Templates/customer_templates/Zenjob/_head.html.liquid b/Custom_Templates/customer_templates/Zenjob/_head.html.liquid new file mode 100644 index 00000000..a85d109e --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_head.html.liquid @@ -0,0 +1,8 @@ +{% styles default %} +{% styles colors %} +{% styles custom %} + + + + + diff --git a/Custom_Templates/customer_templates/Zenjob/_header.html (1) (1).liquid b/Custom_Templates/customer_templates/Zenjob/_header.html (1) (1).liquid new file mode 100644 index 00000000..405f9b56 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_header.html (1) (1).liquid @@ -0,0 +1,385 @@ +{% assign is_in_authenticated_group = false %} + +{% for group in current_person.groups %} + {% if group.name == "All Users" or group.id == "6331d115-ea74-418a-99b2-af5c81208fe1" %} + {% assign is_in_authenticated_group = true %} + {% endif %} +{% endfor %} + +{% if current_person.email contains "+preview" %} + {% assign is_in_authenticated_group = true %} +{% endif %} + +{% unless is_in_authenticated_group %} + +{% endunless %} + +
+
+
+ {% if current_person.signed_in? %} + + + {% endif %} +
+ {% if current_school.logo_url %} +

+ + {{ current_school.name }} + +

+ {% else %} + + {{ current_school.name }} + + {% endif %} + +
+ +
+ + {% if current_person.signed_in? %} + +
+ + +
+ {% else %} +
+ {% endif %} + +
+ +
+
+ Trainings + + + + Lernweg + + + + Auszeichnungen + + + + On-The-Job Videos + + + {% comment %} + Veranstaltungen + {% endcomment %} + +
+ {% unless current_school.sso_active? %} + + {% t .profile_settings %} + + {% endunless %} + + {% t .sign_out %} + +
+
+
+ +{% include "messages" %} + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_header.html (1).liquid b/Custom_Templates/customer_templates/Zenjob/_header.html (1).liquid new file mode 100644 index 00000000..405f9b56 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_header.html (1).liquid @@ -0,0 +1,385 @@ +{% assign is_in_authenticated_group = false %} + +{% for group in current_person.groups %} + {% if group.name == "All Users" or group.id == "6331d115-ea74-418a-99b2-af5c81208fe1" %} + {% assign is_in_authenticated_group = true %} + {% endif %} +{% endfor %} + +{% if current_person.email contains "+preview" %} + {% assign is_in_authenticated_group = true %} +{% endif %} + +{% unless is_in_authenticated_group %} + +{% endunless %} + +
+
+
+ {% if current_person.signed_in? %} + + + {% endif %} +
+ {% if current_school.logo_url %} +

+ + {{ current_school.name }} + +

+ {% else %} + + {{ current_school.name }} + + {% endif %} + +
+ +
+ + {% if current_person.signed_in? %} + +
+ + +
+ {% else %} +
+ {% endif %} + +
+ +
+
+ Trainings + + + + Lernweg + + + + Auszeichnungen + + + + On-The-Job Videos + + + {% comment %} + Veranstaltungen + {% endcomment %} + +
+ {% unless current_school.sso_active? %} + + {% t .profile_settings %} + + {% endunless %} + + {% t .sign_out %} + +
+
+
+ +{% include "messages" %} + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_header.html (2).liquid b/Custom_Templates/customer_templates/Zenjob/_header.html (2).liquid new file mode 100644 index 00000000..c99aa4de --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_header.html (2).liquid @@ -0,0 +1,398 @@ +{% assign is_in_authenticated_group = false %} + +{% for group in current_person.groups %} + {% if group.name == "All Users" or group.id == "6331d115-ea74-418a-99b2-af5c81208fe1" %} + {% assign is_in_authenticated_group = true %} + {% endif %} +{% endfor %} + +{% if current_person.email contains "+preview" %} + {% assign is_in_authenticated_group = true %} +{% endif %} + +{% unless is_in_authenticated_group %} + +{% endunless %} + +
+
+
+ {% if current_person.signed_in? %} + + + {% endif %} +
+ {% if current_school.logo_url %} +

+ + {{ current_school.name }} + +

+ {% else %} + + {{ current_school.name }} + + {% endif %} + +
+ +
+ + {% if current_person.signed_in? %} + +
+ + +
+ {% else %} +
+ {% endif %} + +
+ +
+
+
+
+ +{% include "messages" %} + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_header.html.liquid b/Custom_Templates/customer_templates/Zenjob/_header.html.liquid new file mode 100644 index 00000000..c99aa4de --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_header.html.liquid @@ -0,0 +1,398 @@ +{% assign is_in_authenticated_group = false %} + +{% for group in current_person.groups %} + {% if group.name == "All Users" or group.id == "6331d115-ea74-418a-99b2-af5c81208fe1" %} + {% assign is_in_authenticated_group = true %} + {% endif %} +{% endfor %} + +{% if current_person.email contains "+preview" %} + {% assign is_in_authenticated_group = true %} +{% endif %} + +{% unless is_in_authenticated_group %} + +{% endunless %} + +
+
+
+ {% if current_person.signed_in? %} + + + {% endif %} +
+ {% if current_school.logo_url %} +

+ + {{ current_school.name }} + +

+ {% else %} + + {{ current_school.name }} + + {% endif %} + +
+ +
+ + {% if current_person.signed_in? %} + +
+ + +
+ {% else %} +
+ {% endif %} + +
+ +
+
+
+
+ +{% include "messages" %} + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_learning_path_course.html.liquid b/Custom_Templates/customer_templates/Zenjob/_learning_path_course.html.liquid new file mode 100644 index 00000000..0d176535 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_learning_path_course.html.liquid @@ -0,0 +1,136 @@ +{% comment %} Determine if the item should be a link or not {% endcomment %} +{% if learning_path.enrolled? and course.unlocked? %} + {% assign element_type = "a" %} +{% else %} + {% assign element_type = "div" %} +{% endif %} + +{% assign lp_course_required = 1 %} +{% if course.optional? %} + {% assign lp_course_required = 0 %} +{% endif %} + +
+ <{{ element_type }} + class="np-learning-path-outline-item np-card card--horizontal" + {% if element_type == "a" %} + href="{% route learning_path_course, learning_path_id: learning_path.id, id: course.id %}" + {% endif %} + > +
+
+ {% assign lp_image_not_cropped = item.image | replace: ',fit:crop/', '/' %} + + {% unless course.optional? %} +
+ Erforderlich +
+ {% else %} +
+ Optional +
+ {% endunless %} +
+
+
+

+ {{ course.name }} +

+ +
+ {% if course.completed? %} +
+ +
+ {% elsif element_type == "div" %} +
+ +
+ {% else %} + + {% endif %} +
+ + + {% if course.instructors and course.instructors.size > 0 %} +
+ {{ course.instructors }} +
+ {% endif %} + +
+ + {% comment %} Use a different icon based on the state of the learning path and course {% endcomment %} + {% if course.completed? %} +
+ +
+ {% elsif element_type == "div" %} +
+ +
+ {% else %} + + {% endif %} +
+
+ + +
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_learning_path_cta_button.html.liquid b/Custom_Templates/customer_templates/Zenjob/_learning_path_cta_button.html.liquid new file mode 100644 index 00000000..95128488 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_learning_path_cta_button.html.liquid @@ -0,0 +1,22 @@ + + {% if learning_path.enrolled? == false %} + {% t shared.enroll %} + {% elsif learning_path.started? == false %} + Weiter + {% elsif learning_path.completed? %} + {% t shared.learning_path.view %} + {% else %} + Weiter + {% endif %} + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_learning_path_description.html.liquid b/Custom_Templates/customer_templates/Zenjob/_learning_path_description.html.liquid new file mode 100644 index 00000000..cd3e9d47 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_learning_path_description.html.liquid @@ -0,0 +1,3 @@ +
+ {{ learning_path.description }} +
diff --git a/Custom_Templates/customer_templates/Zenjob/_learning_path_instructors.html.liquid b/Custom_Templates/customer_templates/Zenjob/_learning_path_instructors.html.liquid new file mode 100644 index 00000000..3a6303d0 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_learning_path_instructors.html.liquid @@ -0,0 +1,27 @@ +

+ Instructors +

+
+ {% for instructor in learning_path.instructors %} +
+ {{ instructor.name }} +
+
+ {{ instructor.name }} +
+ + {% assign instructor_title_size = instructor.title | size %} + {% if instructor.title and instructor.title.size > 0 %} + + {% endif %} + +
+
+ {% endfor %} +
diff --git a/Custom_Templates/customer_templates/Zenjob/_learning_path_outline.html.liquid b/Custom_Templates/customer_templates/Zenjob/_learning_path_outline.html.liquid new file mode 100644 index 00000000..21af3b0b --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_learning_path_outline.html.liquid @@ -0,0 +1,137 @@ +{% assign lp_contains_ilt = false %} + +
+ {% for item in learning_path.items %} + {% if item.course? %} + {% include "learning_path_course", course: item %} + {% elsif item.training_event? %} + {% assign lp_contains_ilt = true %} + {% include "learning_path_training_session", training_session: item %} + {% endif %} + {% endfor %} +
+ + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_learning_path_progress_and_cta.html.liquid b/Custom_Templates/customer_templates/Zenjob/_learning_path_progress_and_cta.html.liquid new file mode 100644 index 00000000..19e0a0f7 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_learning_path_progress_and_cta.html.liquid @@ -0,0 +1,21 @@ +
+
+
+ Lernfortschritt +
+
+
+
+
+ +
+ {% if learning_path.progress > 0 %} + {% t shared.progress, count: learning_path.progress %} + {% else %} + nicht angefangen + {% endif %} +
+
+
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_learning_path_training_session.html.liquid b/Custom_Templates/customer_templates/Zenjob/_learning_path_training_session.html.liquid new file mode 100644 index 00000000..aa1164ed --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_learning_path_training_session.html.liquid @@ -0,0 +1,72 @@ +{% assign session_element_type = "a" %} +{% if learning_path.enrolled? and training_session.unlocked? %} + {% assign session_element_type = "a" %} +{% else %} + {% assign session_element_type = "div" %} +{% endif %} + +{% assign lp_session_required = 1 %} +{% if training_session.optional? %} + {% assign lp_session_required = 0 %} +{% endif %} + +{% if learning_path.enrolled? and training_session.unlocked? %} + +
+ +
+ +
+
{{ training_session.name }}
+
{{ training_session.instructors }}
+
+ {{ training_session.time }} {{ training_session.time_zone }} +
+
+
+ Registrieren +
+ {% if training_session.optional? %} +
+ {% t shared.optional %} +
+ {% endif %} +
+
+
+{% else %} +
+
+
+ +
+
{{ training_session.name }}
+
{{ training_session.caption }}
+
+ {% if training_session.optional? %} +
+ {% t shared.optional %} +
+ {% endif %} +
+
+
+{% endif %} + diff --git a/Custom_Templates/customer_templates/Zenjob/_search_zero_state.html.liquid b/Custom_Templates/customer_templates/Zenjob/_search_zero_state.html.liquid new file mode 100644 index 00000000..e004b1ad --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_search_zero_state.html.liquid @@ -0,0 +1,13 @@ +
+
+
+

+ Nichts gefunden +

+
+ Entschuldigung, wir konnten keine Übereinstimmungen finden. Bitte versuchen Sie es mit einem anderen Begriff. +
+
+
+
+
diff --git a/Custom_Templates/customer_templates/Zenjob/_sub_navigation.html.liquid b/Custom_Templates/customer_templates/Zenjob/_sub_navigation.html.liquid new file mode 100644 index 00000000..57c8fa36 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_sub_navigation.html.liquid @@ -0,0 +1,37 @@ + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_training_events_index.html.liquid b/Custom_Templates/customer_templates/Zenjob/_training_events_index.html.liquid new file mode 100644 index 00000000..91d9502d --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_training_events_index.html.liquid @@ -0,0 +1,11 @@ +
+ {% if training_events.available and training_events.available.any? %} +
+ {% for training_event in training_events.available %} + {% include "cards_training_event", training_event: training_event, card_classes: "col-x-sm-6 col-sm-6 col-md-4" %} + {% endfor %} +
+ {% else %} + {% include "training_events_zero_state" %} + {% endif %} +
diff --git a/Custom_Templates/customer_templates/Zenjob/_training_session_calendars.html.liquid b/Custom_Templates/customer_templates/Zenjob/_training_session_calendars.html.liquid new file mode 100644 index 00000000..4d510009 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_training_session_calendars.html.liquid @@ -0,0 +1,43 @@ + diff --git a/Custom_Templates/customer_templates/Zenjob/_training_session_cta.html.liquid b/Custom_Templates/customer_templates/Zenjob/_training_session_cta.html.liquid new file mode 100644 index 00000000..7c3529da --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_training_session_cta.html.liquid @@ -0,0 +1,31 @@ +
+
+
+ {% form_authenticity_token %} + + {% if training_session.internal? and training_session.approved? %} + {% if features.training_events_google_calendar? %} + {% include "training_session_calendars" %} + + {% else %} + + {% endif %} + + + {% endif %} + + {% if training_session.not_registered? %} + + {% endif %} +
+
+
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_training_session_date.html.liquid b/Custom_Templates/customer_templates/Zenjob/_training_session_date.html.liquid new file mode 100644 index 00000000..c19c6053 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_training_session_date.html.liquid @@ -0,0 +1,12 @@ +
+
+ {{ training_session.day }} +
+
+
+ {{ training_session.month }} +
+
+ {{ training_session.year }} +
+
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_training_session_desktop_view.html.liquid b/Custom_Templates/customer_templates/Zenjob/_training_session_desktop_view.html.liquid new file mode 100644 index 00000000..89701b37 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_training_session_desktop_view.html.liquid @@ -0,0 +1,73 @@ +{% include "header", current_page_orgin: "training_events" %} +
+
+ +
+
+
+
+
+ {{ training_event.title }} +
+
+ + {% case training_event.event_type %} + {% when "online" %} + + Online Event + {% when "in_person" %} + + In-Person Event + {% endcase %} + +
+
+
+
+ + {% if training_event.description and training_event.description.size > 0 %} + {% include "training_session_description" %} + {% endif %} + +
+
+
+
+ +
+ +
+
+
+
+ {% include "training_session_details" %} + {% include "training_session_cta" %} +
+
+
+ +
+
+ {% t shared.more_sessions %} +
+ {% if training_event.sessions and training_event.sessions.size > 1 %} + {% include "training_session_more_sessions" %} + {% else %} +
+ {% t .empty %} +
+ {% t .empty %} +
+
+ {% endif %} +
+
+ +
+ +
+
+{% include "footer" %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/_training_session_details.html.liquid b/Custom_Templates/customer_templates/Zenjob/_training_session_details.html.liquid new file mode 100644 index 00000000..e0166d74 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/_training_session_details.html.liquid @@ -0,0 +1,60 @@ +
+ {% include "training_session_date", training_session: training_session %} + + {% if training_session.approved? %} +
+
+ + You're registered! +
+
+ {% elsif training_session.pending? %} +
+
+ Pending – waiting approval +
+
+ {% elsif training_session.denied? %} +
+
+ Denied – contact your academy admin +
+
+ {% elsif training_session.too_late? %} +
+
+ Too late – meeting started +
+
+ {% elsif training_session.no_seats? %} +
+
+ No seats available +
+
+ {% endif %} +
+ +
+
+ + {{ training_session.time_period | replace: "AM", "am" | replace: "PM", "pm" | replace: "-", "–" }} {{ training_session.time_zone }} +
+
+ {% if training_session.location %} + + {{ training_session.location }} + {% elsif training_session.session_url %} + + + {{ training_session.session_url }} + + {% endif %} +
+ {% if training_session.instructor and training_session.instructor.size > 0 %} +
+ + {{ training_session.instructor }} +
+ {% endif %} +
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/catalog.html.liquid b/Custom_Templates/customer_templates/Zenjob/catalog.html.liquid new file mode 100644 index 00000000..5f71ffaa --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/catalog.html.liquid @@ -0,0 +1,24 @@ +{% include "header" %} +
+

+ Deine Trainings für mehr Jobauswahl +

+ {% comment %}
+ {% capture label %}{% t shared.filters.by_category %}{% endcapture %} + {% if courses.in_catalog.any? %} + {% + include "filter_dropdown", + filters: courses.filters, + key: "category_uuid", + label: label + %} + {% endif %} {% endcomment %} + {% include "courses_catalog" %} +
+{% include "footer" %} + + diff --git a/Custom_Templates/customer_templates/Zenjob/course.html.liquid b/Custom_Templates/customer_templates/Zenjob/course.html.liquid new file mode 100644 index 00000000..0216e8a7 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/course.html.liquid @@ -0,0 +1,67 @@ +{% comment %} Skip cover page is course contains on the job category {% endcomment %} +{% for cat in course.categories %} + {% assign cat_name = cat.name | downcase %} + {% if cat_name == "on-the-job" or cat.id == "40b1f3d7-6faf-4d54-a74f-92d330831728" %} + + {% if course.enrolled? %} + + {% else %} + + {% endif %} + {% endif %} +{% endfor %} + +{% include "header", current_page_orgin: "catalog" %} +
+ + {% comment %} Get the full size background image by removing the modifier from the URL {% endcomment %} + {% assign course_image_full_size = course.image_url | replace: '/resize=width:820,height:500,fit:crop/', '/' %} + +
+
+
+ {% include "course_header" %} +
+
+
+ + {% if course.full_description and course.full_description.size > 0 %} + {% include "course_description" %} + {% endif %} + + {% if course.instructors and course.instructors.any? %} +
+ {% include "course_instructors" %} +
+ {% endif %} + + {% include "course_outline" %} + + {% if course.events and course.events.any? %} +
+ {% include "course_events" %} +
+ {% endif %} + + {% if course.enrolled? and course.started? %} + {% include "course_progress_and_cta" %} + {% else %} + {% include "course_cta_button" %} + {% endif %} + +
+
+
+
+{% include "footer" %} + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/courses.html.liquid b/Custom_Templates/customer_templates/Zenjob/courses.html.liquid new file mode 100644 index 00000000..57fcceab --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/courses.html.liquid @@ -0,0 +1,20 @@ +{% include "header" %} +{% comment %} {% include "sub_navigation", current_page: "/app/courses" %} {% endcomment %} +
+

+ Deine Trainings für mehr Jobauswahl +

+
+ {% include "courses_index", card_classes: "col-xs-12 col-sm-6 col-lg-4 np-stretch-content" %} +
+{% include "footer" %} + + + +{% comment %} {% endcomment %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/dashboard.html.liquid b/Custom_Templates/customer_templates/Zenjob/dashboard.html.liquid new file mode 100644 index 00000000..4e83237d --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/dashboard.html.liquid @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/homepage.html (3).liquid b/Custom_Templates/customer_templates/Zenjob/homepage.html (3).liquid new file mode 100644 index 00000000..d50d2e7d --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/homepage.html (3).liquid @@ -0,0 +1,354 @@ +{% assign isAuthenticatedUser = false %} + +{% for group in current_person.groups %} + {% if group.name == "All Users" or group.id == "6331d115-ea74-418a-99b2-af5c81208fe1" %} + {% assign isAuthenticatedUser = true %} + {% endif %} +{% endfor %} + +{% if current_person.email contains "+preview" %} + {% assign isAuthenticatedUser = true %} +{% endif %} + +{% unless isAuthenticatedUser %} +
+
+
+
+ {{ homepage.headline }} +
+
+ Entschuldigung! Es scheint, dass deine E-Mail-Adresse ({{current_person.email}}) nicht den richtigen Zugang erhalten hat. Bitte wende dich an talents@zenjob.com, um den Zugang zu den vollständigen Lerninhalten anzufragen. +
+
+
+
+{% endunless %} + +{% if isAuthenticatedUser %} + {% assign catalog_courses = courses.in_catalog %} + {% include "header", current_page_orgin: "false" %} + +
+
+
+
+ {{ homepage.headline }} +
+
+ Hallo {{ current_person.first_name }}, hier bereiten wir dich auf alles vor, was du für deine erste Schicht als + + wissen musst. + +
+
+ +
+ {% for course in catalog_courses %} + {% if course.properties.homepage_course %} + {% for cat in course.categories %} + {% if cat.id == "087ea56d-888b-4e0f-af1f-68627318c841" or cat.id == "9be55234-19c5-4df4-bd1d-03e93f0faf83" or cat.id == "6580e10e-eacf-402d-a330-51d202721cce" or cat.id == "a63019c7-0a46-40bd-bc1b-935c887a4380" %} + + {% endif %} + {% endfor %} + {% endif %} + {% endfor %} + + {% for learning_path in learning_paths.available %} + {% for learning_path_cat in learning_path.categories %} + {% if learning_path_cat.id == "087ea56d-888b-4e0f-af1f-68627318c841" or learning_path_cat.id == "9be55234-19c5-4df4-bd1d-03e93f0faf83" or learning_path_cat.id == "6580e10e-eacf-402d-a330-51d202721cce" or learning_path_cat.id == "a63019c7-0a46-40bd-bc1b-935c887a4380" %} + + {% endif %} + {% endfor %} + {% endfor %} +
+
+ +
+ {% include "footer" %} + {% endif %} + + + + diff --git a/Custom_Templates/customer_templates/Zenjob/homepage.html.liquid b/Custom_Templates/customer_templates/Zenjob/homepage.html.liquid new file mode 100644 index 00000000..23b8c3d1 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/homepage.html.liquid @@ -0,0 +1,354 @@ +{% assign isAuthenticatedUser = false %} + +{% for group in current_person.groups %} + {% if group.name == "All Users" or group.id == "6331d115-ea74-418a-99b2-af5c81208fe1" %} + {% assign isAuthenticatedUser = true %} + {% endif %} +{% endfor %} + +{% if current_person.email contains "+preview" %} + {% assign isAuthenticatedUser = true %} +{% endif %} + +{% unless isAuthenticatedUser %} +
+
+
+
+ {{ homepage.headline }} +
+
+ Entschuldigung! Es scheint, dass deine E-Mail-Adresse {{current_person.email}} nicht den richtigen Zugang erhalten hat. Es kann nach der Registrierung bis zu 24h dauern, bis du freigeschalten wirst. Sollte das Problem danach weiterhin bestehen, wende dich an talents@zenjob.com, um den Zugang zu den vollständigen Lerninhalten anzufragen. +
+
+
+
+{% endunless %} + +{% if isAuthenticatedUser %} + {% assign catalog_courses = courses.in_catalog %} + {% include "header", current_page_orgin: "false" %} + +
+
+
+
+ {{ homepage.headline }} +
+
+ Hallo {{ current_person.first_name }}, hier bereiten wir dich auf alles vor, was du für deine erste Schicht als + + wissen musst. + +
+
+ +
+ {% for course in catalog_courses %} + {% if course.properties.homepage_course %} + {% for cat in course.categories %} + {% if cat.id == "087ea56d-888b-4e0f-af1f-68627318c841" or cat.id == "9be55234-19c5-4df4-bd1d-03e93f0faf83" or cat.id == "6580e10e-eacf-402d-a330-51d202721cce" or cat.id == "a63019c7-0a46-40bd-bc1b-935c887a4380" %} + + {% endif %} + {% endfor %} + {% endif %} + {% endfor %} + + {% for learning_path in learning_paths.available %} + {% for learning_path_cat in learning_path.categories %} + {% if learning_path_cat.id == "087ea56d-888b-4e0f-af1f-68627318c841" or learning_path_cat.id == "9be55234-19c5-4df4-bd1d-03e93f0faf83" or learning_path_cat.id == "6580e10e-eacf-402d-a330-51d202721cce" or learning_path_cat.id == "a63019c7-0a46-40bd-bc1b-935c887a4380" %} + + {% endif %} + {% endfor %} + {% endfor %} +
+
+ +
+ {% include "footer" %} + {% endif %} + + + + diff --git a/Custom_Templates/customer_templates/Zenjob/learning_path.html.liquid b/Custom_Templates/customer_templates/Zenjob/learning_path.html.liquid new file mode 100644 index 00000000..5c92e795 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/learning_path.html.liquid @@ -0,0 +1,156 @@ +{% include "header", current_page_orgin: "learning_paths" %} + +{% assign lp_items_all_optional = true %} +{% for item in learning_path.items %} + {% unless item.optional? %} + {% assign lp_items_all_optional = false %} + {% endunless %} +{% endfor %} + +
+ +{% assign learning_path_image_full_size = learning_path.image_url | replace: '/resize=width:820,height:500,fit:crop/', '/' %} + +
+ +
+
+
+
+
+ {{ learning_path.name }} +
+
+
+
+ {% if learning_path.description and learning_path.description.size > 0 %} + {% include "learning_path_description" %} + {% endif %} + + {% if learning_path.instructors and learning_path.instructors.any? %} +
+ {% include "learning_path_instructors" %} +
+ + {% endif %} + +
+
+
+
+
+
+ {% include "learning_path_progress_and_cta" %} +
+ {% include "learning_path_outline" %} +
+ +
+
+{% include "footer" %} + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/learning_paths.html.liquid b/Custom_Templates/customer_templates/Zenjob/learning_paths.html.liquid new file mode 100644 index 00000000..3eec9a9b --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/learning_paths.html.liquid @@ -0,0 +1,60 @@ +{% include "header" %} +
+ {% include "learning_paths_index", items: learning_paths.available %} +
+{% include "footer" %} + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/on-the-job.html.liquid b/Custom_Templates/customer_templates/Zenjob/on-the-job.html.liquid new file mode 100644 index 00000000..16da8245 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/on-the-job.html.liquid @@ -0,0 +1,57 @@ +{% include "header" %} +
+

+ On-The-Job Videos +

+
+ + {% assign num_of_video_courses = 0 %} + {% if courses.in_catalog.any? %} +
+ {% for course in courses.in_catalog %} + {% for cat in course.categories %} + {% if cat.id == "40b1f3d7-6faf-4d54-a74f-92d330831728" %} +
+ {% include "cards_course" with course %} +
+ {% assign num_of_video_courses = num_of_video_courses | plus: 1 %} + {% endif %} + {% endfor %} + + {% endfor %} +
+ {% else %} + {% comment %} {% capture message %} + {% t shared.zero_state.courses.catalog, + key: current_school.course_vocabulary + %} + {% endcapture %} {% endcomment %} +
+
+

{% t shared.zero_state.courses.catalog, + key: current_school.course_vocabulary + %}

+
+ +
+ {% endif %} + + {% if num_of_video_courses == 0 %} +
+
+

{% t shared.zero_state.courses.catalog, + key: current_school.course_vocabulary + %}

+
+ +
+ {% endif %} + +
+{% include "footer" %} + + diff --git a/Custom_Templates/customer_templates/Zenjob/search.html.liquid b/Custom_Templates/customer_templates/Zenjob/search.html.liquid new file mode 100644 index 00000000..d2ec1d3f --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/search.html.liquid @@ -0,0 +1,58 @@ +{% include "header" %} +
+
+ {% t .title %} +
+
+
+ {% t .showing %} + {{ results.count }} + {% t .results_for %} + "{{ results.term }}" +
+ {% capture label %}{% t shared.filters.by_type %}{% endcapture %} + {% + include "filter_dropdown", + filters: results.filters, + key: "type", + label: label + %} +
+ {% if results.items.any? %} + {% render "search_result" for results.items as result %} + {% else %} + {% include "search_zero_state" %} + {% endif %} +
+{% include "footer" %} + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/styles.css.liquid b/Custom_Templates/customer_templates/Zenjob/styles.css.liquid new file mode 100644 index 00000000..1d4613a1 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/styles.css.liquid @@ -0,0 +1,1942 @@ + /* + Put your custom overlay styles in here + You can use your northpass color palette in this file + +{{ color_palette.button_font_color }} +{{ color_palette.button_color }} +{{ color_palette.button_hover_color }} +{{ color_palette.header_font_color }} +{{ color_palette.header_font_hover_color }} +{{ color_palette.header_color }} +*/ + +/* FONT IMPORTS */ +@font-face { + font-family: "EuclidFlex"; + src: url("https://s3.amazonaws.com/static.northpass.com/fonts/euclid-flexb/EuclidFlexB-Light-WebM.ttf") + format("truetype"); + font-weight: 300; + font-style: normal; +} + +@font-face { + font-family: "EuclidFlex"; + src: url("https://s3.amazonaws.com/static.northpass.com/fonts/euclid-flexb/EuclidFlexB-Regular-WebM.ttf") + format("truetype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "EuclidFlex"; + src: url("https://s3.amazonaws.com/static.northpass.com/fonts/euclid-flexb/EuclidFlexB-RegularItalic-WebM.ttf") + format("truetype"); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: "EuclidFlex"; + src: url("https://s3.amazonaws.com/static.northpass.com/fonts/euclid-flexb/EuclidFlexB-Medium-WebM.ttf") + format("truetype"); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: "EuclidFlex"; + src: url("https://s3.amazonaws.com/static.northpass.com/fonts/euclid-flexb/EuclidFlexB-Semibold-WebM.ttf") + format("truetype"); + font-weight: 600; + font-style: normal; +} + +@font-face { + font-family: "EuclidFlex"; + src: url("https://s3.amazonaws.com/static.northpass.com/fonts/euclid-flexb/EuclidFlexB-Bold-WebM.ttf") + format("truetype"); + font-weight: 700; + font-style: normal; +} + +/* ------------ Northpass Style Overrides ------------ */ + +/* ------ Learner/Admin Mode Button ------ */ +@media screen and ( max-width: 35.5rem ) { + body .Container-sc-1cu1r9y-3 { + position: unset; + } +} + +/* ------ Text ------ */ +body { + font-family: 'EuclidFlex', "Roboto", sans-serif; + line-height: 1.5; + display: flex; + flex-direction: column; + min-height: 100vh; + color: #5a616b; +} + +main { + flex-grow: 1; +} + +h1, h2, h3, h4, h5, h6, p { + margin: 0; +} + +p + p { + margin-top: 0.5rem; +} + +a { + color: #2574e1; +} +a:hover, +a:focus { + color: #ba37d6; +} +a:active { + color: #9630ab; +} +.np-text-light { + color: #6e7580; +} + +.np-text-title { + color: #5a616b; +} +.np-resource-title { + font-size: 1.5rem; + font-weight: 700; + margin-bottom: 0; + text-align: left; + color:#333333; +} +.np-resource-subtitle, +.np-training-events .np-resource-subtitle { + text-align: left; + padding: 0; + margin-top: 0.5rem; + margin-bottom: 0; +} + +@media screen and ( min-width: 48rem ) { + .np-resource-title { + font-size: 2rem; + } +} + +/* ------ Common Layout ------ */ + +/* --- Page Content --- */ +.page__primary-content { + margin-top: 2rem; +} +@media screen and ( min-width: 48rem ) { + .page__primary-content { + margin-top: 2.5rem; + } +} + +/* --- Box Container (for signup/password reset etc) --- */ +.np-box-container { + height: auto; + padding: 1rem; + display: flex; + flex-direction: column; + align-items: center; +} + +.np-box { + border-radius: 1rem; + box-shadow: rgba(141, 148, 158, 0.3) 0px 4px 12px; + margin: 0; + width: 100%; + max-width: 550px +} +.np-box-header { + border-top-right-radius: 1rem; + border-top-left-radius: 1rem; + height: auto; + padding: 1.5rem 2rem 1rem; +} +.np-box-header-logo { + height: 50px; +} + +.np-box-content-container { + padding: 2rem 2rem 3rem; +} +.np-box-content-container, +.np-alert + .np-box-content-container { + margin: 0; +} + +@media screen and ( min-width: 48rem ) { + .np-box-container::before, + .np-box-container::after { + content: ""; + display: block; + } + .np-box-container::before { + flex-grow: 1; + } + .np-box-container::after { + flex-grow: 2; + } + .np-box-container { + padding: 2rem; + } + .np-box-header { + padding: 2.5rem 2rem 2rem; + } + .np-box-header-logo { + height: 70px; + } + .np-box-content-container { + padding: 3rem 4rem 4rem; + } + .np-alert + .np-box-content-container { + padding-top: 2rem; + } +} + +/* --- Section Horizontal Padding --- */ +.np-header, +.np-sub-navigation, +.np-page-container, +.np-subpage-container, +.np-homepage-hero-content, +.page-section { + width: 100%; + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +@media screen and ( min-width: 48rem ) { + .np-header, + .np-sub-navigation, + .np-page-container, + .np-subpage-container, + .np-homepage-hero-content, + .page-section { + padding-left: 5rem; + padding-right: 5rem; + } +} + +/* --- Page Header Area --- */ +.page__header-wrapper, +.np-catalog-header-wrapper { + margin-bottom: 2rem; +} + +@media screen and ( min-width: 48rem ) { + .page__header-wrapper, + .np-catalog-header-wrapper { + margin-bottom: 2.5rem; + } +} + +/* --- Blocks Layout --- */ +.blocks-layout { + display: flex; + flex-direction: column; +} +.blocks-layout, +.blocks-layout > .blocks-layout { + width: calc( 100% + 1.5rem); + margin: -0.75rem; +} +.blocks-layout { + flex-wrap: wrap; +} +.blocks-layout > *, +.blocks-layout > .np-card { + padding: 0.75rem; + width: 100%; +} +@media screen and ( min-width: 35.5rem ) { + .blocks-layout, + .blocks-layout > .blocks-layout { + flex-direction: row; + } +} +@media screen and ( min-width: 48rem ) { + .blocks-layout { + flex-direction: row; + } + .blocks-layout, + .blocks-layout > .blocks-layout { + + width: calc( 100% + 2rem ); + margin: -1rem; + } + .blocks-layout > *, + .blocks-layout > .np-card { + padding: 1rem; + } +} + +/* --- Columns --- */ +/* Adding some column options for between the width of small and xs, in order to avoid overriding the other column sizing these only apply to the narrow range */ + +@media only screen and ( min-width: 35.5rem ) and ( max-width: calc(48rem - 1px) ) { + .col-x-sm-6 { + flex-basis: 50%; + max-width: 50% + } +} + +/* ------ Page/Subpage Container ------ */ +body, +.np-page-container, +.np-subpage-container { + background-color: #f5f7fa; + width: 100%; +} + +.np-page-container, +.np-subpage-container { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.np-page-container { + position: relative; + margin:0; +} + +@media screen and ( min-width: 48rem ) { + .np-page-container { + padding-top: 5rem; + padding-bottom: 5rem; + margin-top: 0; + + } + .np-subpage-container { + padding-top: 3rem; + padding-bottom: 3rem; + } +} + +/* ------ Footer ------ */ +/* --- Logo --- */ +.np-footer-logo-image { + filter: none; + height: 30px; + opacity: initial; +} + +/* ------ Northpass Powered By Signet ------ */ +div.np-powered-by { + display: none; +} + +/* ------ Sub Navigation ------ */ +/* --- Container --- */ +.np-sub-navigation { + padding-top: 1.25rem; + margin-bottom: 0; +} +.np-sub-navigation-content { + margin-left: -0.75rem; + margin-right: -0.75rem; +} + +/* --- Item --- */ +.np-sub-navigation-content-item { + display: flex; + flex-direction: column; + height: auto; + margin: 0 0.75rem; +} +.np-sub-navigation-content-item-link { + height: auto; + flex-grow: 1; + line-height: 1.15; +} +.np-sub-navigation-content-item-inactive .np-sub-navigation-content-item-link { + margin-bottom: 1rem; +} +.np-sub-navigation-content-item-icon, +.oa-sub-navigation-content-item-label { + flex-grow: 1; +} + +.oa-sub-navigation-content-item-label { + color:#333333; +} +/* Inactive Item */ +.np-sub-navigation-content-item-inactive .np-sub-navigation-content-item-icon { + color: #c5cbd1; +} + +/* --- Seperator --- */ +.oa-sub-navigation-seperator { + flex-grow: 1; +} + +/* ------------ Animations ------------ */ +/* --- Transitions --- */ +a, +button, +.np-button, +.np-course-outline-content-activity-link-completed::after, +.outline-card__icon-link, +.filter-list__item { + transition: all 0.3s ease; +} +/* --- Animation Defaults --- */ +.is-animation { + animation-timing-function: cubic-bezier( 0.36, 0.45, 0.63, 0.53); + animation-duration: 20s; + animation-iteration-count: infinite; +} +/* --- Slide --- */ +@keyframes slide-2 { + 0% { + transform: translateX( 0% ); + } + 100% { + transform: translateX( -200% ); + } +} +@keyframes slide-3 { + 0% { + transform: translateX( 0% ); + } + 100% { + transform: translateX( -300% ); + } +} +@keyframes slide-4 { + 0% { + transform: translateX( 0% ); + } + 100% { + transform: translateX( -400% ); + } +} +@keyframes slide-5 { + 0% { + transform: translateX( 0% ); + } + 100% { + transform: translateX( -500% ); + } +} +/* --- Rotate --- */ +@keyframes rotate { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +/* --- Pinwheel --- */ +@keyframes pinwheel { + 0% { + transform: rotate(45deg) translateX(0px); + } + 100% { + transform: rotate(-25deg) translateX(20px); + } +} +/* --- Text Gradient --- */ +@keyframes homepage-gradient { + 0% { + background-position-x: 0; + } + 100% { + background-position-x: 100%; + } +} + +/* ------------ Components ------------ */ + +/* ------ Card ------ */ +.np-card-container { + box-shadow: rgba(141, 148, 158, 0.3) 0px 4px 12px; + border-radius: 1rem; + justify-content: start; + align-items: stretch; + width: 100%; + height: 100%; + display: flex; + flex-direction: row; +} + + .np-card:not(.card--horizontal) .np-card-container { + flex-direction: column; + } + +.np-card .np-card-text-wrapper { + flex-grow: 1; + width: auto; +} + +@media screen and ( min-width: 48rem ) { + .np-card-padding-dynamic { + padding: 3rem; + } +} +/* Vertical Cards */ +@media screen and ( min-width: 35.5rem ) { + .np-card:not(.np-no-horizontal-padding) .np-card-container { + flex-direction: column; + } + .np-card:not(.np-no-horizontal-padding) .np-card-text-wrapper { + width: 100%; + } + + .np-card.np-learning-path-outline-item .np-card-container { + flex-direction: row; + } +} +/* --- Ribbon --- */ +.np-card-ribbon { + position: relative; + right: unset; + top: unset; + margin-left: 0.75rem; + background-color: #B6B9C2; + padding: 0.25rem 1rem; + border-radius: 1.5rem; + line-height: 1.1; + text-transform: none; + font-size: 0.75rem; + text-align: center; + align-self: start; +} + +.np-card-ribbon i { + margin-right: 3px; +} +.card__image .np-card-ribbon { + position: absolute; + right: 0.75rem; + top: 0.75rem; +} + +/* --- Image --- */ +.card__image { + position: relative; + background-size: cover; + background-position: center; + width: 50%; + border-color: #e0f3ff; + border-style: solid; + border-radius: 1rem 0 0 1rem; + border-width: 0 1px 0 0; + flex-shrink: 1; +} + +.np-card:not(.card--horizontal) .card__image { + width: 100%; + padding-top: calc(500 / 820 * 100% /2); + padding-bottom: calc(500 / 820 * 100% /2); + border-radius: 1rem 1rem 0 0; + border-width: 0 0 1px 0; + } + + /* .np-learning-path-outline-item .card__image { + text-align:center; + } */ + +/* Vertical Card */ +@media screen and ( min-width: 35.5rem ) { + .card__image { + width: calc(100% / 3); + flex-shrink: 0; + } + .np-card:not(.card--horizontal) .card__image { + width: 100%; + padding-top: calc(500 / 820 * 100% /2); + padding-bottom: calc(500 / 820 * 100% /2); + border-radius: 1rem 1rem 0 0; + border-width: 0 0 1px 0; + } +} + +/* --- Heading --- */ +.np-card-heading { + font-weight: 900; + font-size: 1.25rem; + line-height: 1.3; + color: #24272e; + margin-top: 0; + margin-bottom: 1rem; +} +@media screen and ( min-width: 48rem ) { + .np-card-heading { + margin-bottom: 1.25rem; + } +} +/* --- Text --- */ +.np-card-text { + margin-bottom: 1.5rem; + font-size: 1rem; + line-height: 1.5; +} +.np-card-text:last-child { + margin-bottom: 0; +} +@media screen and ( min-width: 48rem ) { + .np-card-text { + font-size: 1.125rem; + margin-bottom: 2rem; + } +} +/* --- Content Area --- */ +.np-card-content, +.np-learning-paths .np-card-content { + padding: 1.25rem; + height: 100%; +} +.np-card-content > * { + margin: 0; +} +.np-card-content > *:not(:last-child) { + margin-bottom: 0.5rem; +} +.np-card-content-title { + line-height: 1.3; + color:#333333; +} +.np-card-content .np-card-content-title { + margin-top: 0; +} +.np-card-content-subtitle { + font-size: 0.875rem; + font-weight: 700; + color: #795ae8; +} +/* Description */ +.np-card-content-description { + flex-grow: 1; + display: block; +} +.np-card-content-description p { + margin: 0; +} +@media screen and ( min-width: 48rem ) { + .np-card-content-description { + font-size: 1rem; + } +} +/* Footer */ +.np-card-content-footer { + padding-top: 0.5rem; + align-items: baseline; +} +.np-card-content-footer > *:first-child { + margin-left: 0; +} + +.np-card-content-progress { + margin-top: 0; + margin-left: 0.5rem; + font-size: 1rem; + text-transform: none; + color: #795ae8; +} + +/* Content Divider */ +.np-card-content-divider { + margin-top: 1.5rem; + margin-bottom: 1.5rem; + border-color: #94dbff; +} +.np-card-content-divider:last-child { + margin-bottom: 0; +} +@media screen and ( min-width: 48rem ) { + .np-card-content-divider { + margin-top: 2rem; + margin-bottom: 2rem; + padding-top: 2rem; + } +} +@media screen and ( min-width: 48rem ) { + .np-card-content-description { + font-size: 1rem; + } +} +/* --- Card Stack --- */ +.np-card-stack-level-1, +.np-card-stack-level-2 { + box-shadow: rgba(141, 148, 158, 0.3) 0px 4px 12px; + border-radius: 1rem; + height: 2rem; + margin-top: -1.4rem; +} + +/* --- Course / Learning Path / Event Details Card --- */ +/* Header Area */ +.details-card__header { + padding-bottom: 1rem; + margin-bottom: 0; +} +.np-top-title { + font-weight: 700; + font-size: 1.5rem; + line-height: 1.3; + color: #24272e; + margin-bottom: 0.75rem; +} +@media screen and ( min-width: 48rem ) { + .details-card__header { + padding-bottom: 1.5rem; + } + .np-resource-header { + flex-direction: row; + align-items: center; + padding-top: 2rem; + } + .np-top-title { + font-size: 2rem; + margin-bottom: 0; + } +} +/* Content Area */ +.details-card__card-container { + justify-content: top; + flex-direction: column; +} +.details-card__card-content { + padding-top: 1.5rem; + padding-bottom: 2rem; +} +@media screen and ( min-width: 48rem ) { + .details-card__card-content { + padding-top: 2rem; + padding-bottom: 3rem; + } +} +/* Heading Styles for User Generated Content */ +.details-card__card-content h4 { + margin-top: 1.5rem; + margin-bottom: 1rem; + color: #24272e; + font-weight: 700; +} +@media screen and ( min-width: 48rem ) { + .details-card__card-content h4 { + margin-top: 2rem; + } +} + +/* --- Training Session Card --- */ + +/* Date Bar */ +.np-card-training-session-date { + position: relative; +} +.np-card-training-session-date:not(:first-child) { + margin-top: 0.5rem; +} +.np-card-training-session-date-bar { + background-color: #795ae8; + left: -1.25rem; + height: 100%; + width: 0.5rem; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; + +} +.np-card-training-session-date-day { + color: #24272e; + font-weight: 900; +} +.card__month-year-container { + flex-grow: 1; +} +.np-card-training-session-date-month, +.np-card-training-session-date-year { + line-height: 1.1; +} +.np-card-training-session-date-month { + color: #795ae8; + text-transform: none; +} +.np-card-training-session-date-year { + color: #6e7580; +} +.session-date__other-info-container, +.session-date__other-info-container.np-training-session-cta-note { + height: 100%; + display: flex; + align-items: center; + justify-content: center; + margin-left: 1rem; + margin-right: -1.25rem; + min-height: 60px; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.session-date__other-info-container { + padding: 0.25rem 0.5rem 0.25rem 0.5rem; + background-color: #795ae8; + color: white; +} +.np-training-session-cta-note { + padding: 0.5rem 1.25rem 0.5rem 0.75rem; + margin-bottom: 0; + position: unset; +} +.session-date__other-info-wrapper { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + align-content: center; +} +.session-date__other-info-wrapper > * { + margin: 0 auto; + padding: 0.25rem; +} +.session-date__other-info-container::before, +.session-date__other-info-container::after { + display: block; + content: ""; +} +.session-date__other-info-container::before { + flex-basis: .5rem; + flex-shrink: 1; + padding: 0; +} +.session-date__other-info-container::after { + flex-basis: .75rem; + flex-shrink: 3; + padding: 0; +} +.np-card-training-sessions-icon { + color: #ffffff; + text-align: center; +} +.np-training-session-cta-note, +.np-card-training-sessions-label { + line-height: 1.1; + font-weight: 700; + text-align: center; +} +.np-card-training-sessions-label { + font-size: 0.875rem; + overflow: unset; +} +.np-card-training-sessions-label, +.session-date__other-info-wrapper > span { + white-space: unset; +} + +/* ------ Divider ------ */ + +/* --- Padding--- */ +.np-divider { + margin: 0 1.25rem; + border-color: #94dbff; +} +@media screen and ( min-width: 48rem ) { + .np-divider { + margin: 0 3rem; + } +} + +/* ------ Course Banner ------ */ +.banner-course { + box-shadow: rgba(141, 148, 158, 0.3) 0px 4px 12px; + background-color: #ffffff; + border-radius: 1rem; + display: flex; + flex-direction: row; + align-items: stretch; + width: 100%; + overflow: hidden; +} +/* Course Content */ +.banner-course__content { + padding: 1rem 0.75rem; + flex-grow: 1; + display: flex; + flex-direction: column; + align-items: start; +} +.banner-course__content > * { + margin: 0.25rem 0.5rem; +} +.banner-course__title { + color: #1b3e4f; + font-size: 1rem; + font-weight: 700; + line-height: 1.3; +} +.banner-course__description { + flex-grow: 1; +} +@media screen and ( min-width: 48rem ) { + .banner-course__title { + font-size: 1.25rem; + } +} +@media screen and ( min-width: 64rem ) { + .banner-course { + border-radius: 2.5rem; + } + .banner-course__content { + flex-direction: row; + align-items: center; + } + .banner-course__description { + font-size: 1.25rem; + } +} +/* Course Image */ +.banner-course__image { + position: relative; + background-size: cover; + background-position: center; + width: 25%; + max-width: 14rem; + border-color: #e0f3ff; + border-style: solid; + border-radius: 1rem 0 0 1rem; + border-width: 0 1px 0 0; + flex-shrink: 0; +} + +/* ------ Call to Action ------ */ +.cta__container { + margin: 1.5rem 0; +} +.cta__container:first-child { + margin-top: 0; +} +.cta__container:last-child { + margin-bottom: 0; +} +.np-top-cta { + border-radius: 3rem; + background-color: #e0f3ff; + padding: 0.5rem 1.5rem; + margin-bottom: 1.5rem; + position: relative; +} + +.np-top-cta .np-progress-bar-container { + background-color: #8B78FA; +} + +@media screen and ( min-width: 48rem ) { + .cta__container { + margin: 2rem 0; + } + .np-top-cta { + padding: 1rem; + margin-bottom: 0; + } + .np-top-cta .np-top-cta-progress-content { + margin-left: 1.25rem; + } +} + +/* ------ Progress Bar ------ */ +.np-progress-bar-container { + background-color: #dce1e5; + +} + +.np-top-cta-progress-content { + display: flex; + align-items: center; + min-height: 1.5rem; +} +@media screen and ( min-width: 48rem ) { + .np-top-cta-progress-content { + min-height: 1.5rem; + margin-right: 0.5rem; + } +} +/* Progress Bar Text and Bar */ +.np-top-cta-progress-content > * { + margin: 0; +} +.np-top-cta-progress-content > * + * { + margin-left: 1rem; +} +/* Progress Bar Text */ +.np-top-cta-progress-text, +.np-top-cta-progress-title { + font-size: 0.875rem; + text-transform: none; + line-height: 1.1; +} +.np-top-cta-progress-text { + flex-shrink: 0; + font-weight: 700; + line-height: 1.1; +} + +/* Card Progress bar */ +.np-card .np-progress-bar-container { + margin-left: 0.5rem; + margin-top: 0; +} +.np-card-progress-bar { + background-color: {{ color_palette.learning_progress_bar_color }}; +} + +/* ------ Buttons ------ */ +.np-button { + height: unset; + min-height: unset; + padding: 0.5rem 1.25rem; + border-radius: 1.5rem; + font-size: 1rem; + line-height: 1.5; +} +.np-button:hover, +.np-button:focus, +.np-button:active { + color: #fff; +} + +.np-button:focus { + background-color: {{ color_palette.button_hover_color }}; + outline: 2px solid #e79ff7; +} +.np-button:active { + background-color: #50185b; +} + +/* --- Wide Buttons --- */ +.np-button-wide { + padding-left: 1.75rem; + padding-right: 1.75rem; +} + +/* --- Secondary Buttons --- */ +.np-button-secondary { + color: #fff; + background-color: #6e7580 !important; +} +.np-button-secondary:hover, +.np-button-secondary:focus { + background-color: {{ color_palette.button_hover_color }} !important; +} +.np-button-secondary:active { + background-color: #50185b !important; +} + +/* ------ Dropdowns ------ */ +.dropdown-calendar-menu { + padding: 0.5rem 0; + border-radius: 1rem; + box-shadow: rgba(141, 148, 158, 0.3) 0px 4px 12px; +} +.dropdown-calendar-menu.is-open { + overflow: hidden; +} +.dropdown-calendar-item-element { + padding: .5rem 1.25rem; + color: #5a616b; +} +.dropdown-calendar-item-element:hover, +.dropdown-calendar-item-element:focus, +.dropdown-calendar-item-element:active { + color: #50185b; +} +.dropdown-calendar-item-element:hover, +.dropdown-calendar-item-element:focus { + background-color: #fae3ff; +} +.dropdown-calendar-item-element:active { + background-color: #fdf3ff; +} +/* ------ Form & Inputs ------ */ +.np-form-field { + margin-bottom: 1rem; +} +.np-input-label { + font-size: 1rem; + margin-bottom: 0.5rem; + color: #5a616b; +} +.np-input { + border-radius: 1.25rem; + height: 2.5rem; + padding: 0.5rem 1.25rem; + line-height: 1.5; + background-color: #f0feff; + border-color: #bfe4ff; + border-width: 2px; +} +.np-input:focus { + border-color: #4cc3ff; +} +.np-form-action { + margin-top: 0.5rem; +} +.np-form-link { + font-size: 0.875rem; + margin-top: 1.25rem; +} + +/* ------ Alerts ------ */ +.np-alert-wrapper { + padding: 1rem 2rem; + width: 100% +} +.np-alert { + min-height: unset; + font-size: 0.875rem; +} +.np-alert-error { + background-color: #ffe1e8; + color: #b11932; +} +.np-alert-success { + background-color: #e8ffe1; + color: #1d6e2c; +} + +@media screen and ( min-width: 48rem ) { + .np-alert-wrapper { + padding: 1rem 4rem; + } +} + +/* ------ Filter List ------ */ +.filter-list__container { + background-color: white; + border-radius: 1rem; + box-shadow: rgba(141, 148, 158, 0.3) 0px 4px 12px; +} +/* --- Header --- */ +.filter-list__header-container { + padding: 0.75rem 1.5rem 0.5rem; +} +.filter-list__header { + font-size: 1.125rem; + font-weight: 300; +} +@media screen and ( min-width: 48rem ) { + .filter-list__header { + font-size: 1.25rem; + } +} +/* --- Sections --- */ +.filter-list__section { + border-top: 1px solid #e0f3ff; +} +/* Header */ +.filter-list__section-header-container { + padding: 0.5rem 1.5rem; + display: flex; + align-items: center; + justify-content: space-between; + cursor: pointer; +} +.filter-list__section-header-container:focus { + outline: 2px solid #e79ff7; + outline-offset: -2px; +} +.filter-list__section-header { + font-size: 1rem; + color: #1b3e4f; +} +@media screen and ( min-width: 48rem ) { + .filter-list__section-header { + font-size: 1.125rem; + } +} +/* Icons */ +.filter-list__section-header-icon { + font-size: 1.5rem; + color: {{ color_palette.button_color }}; +} +.filter-list__section-header-container:hover .filter-list__section-header-icon, +.filter-list__section-header-container:hover .filter-list__section-header-icon { + color: #ba37d6; +} +/* Body */ +.filter-list__section-body { + padding: 0.75rem 0.75rem 0.75rem 1.5rem; + border-top: 1px solid #e0f3ff; +} +/* --- Interactivity --- */ +/* Icons */ +.filter-list__section.is-open .filter-list__open-icon, +.filter-list__section.is-collapsed .filter-list__collapse-icon { + display: none; +} +/* Body */ +.filter-list__section-body-container { + transition: max-height 0.3s ease, visibility 0.3s ease; + max-height: 45rem; + overflow: hidden; +} +.filter-list__section.is-collapsed .filter-list__section-body-container { + max-height: 0; + visibility: hidden; /* Prevents tabbing through hidden items */ +} +/* --- Subsections --- */ +.filter-list__subsection-header { + margin-bottom: 0.5rem; +} +.filter-list__subsection-header:not(:first-child) { + margin-top: 0.75rem; +} +/* --- List --- */ +.filter-list { + margin: 0; + padding: 0; +} +/* --- Item --- */ +.filter-list__item { + list-style-type: none; + display: flex; + align-items: center; + justify-content: space-between; + line-height: 1.1; + margin-bottom: 3px; + margin-left: -0.75rem; + padding: 0.2rem 0.75rem; + border-radius: 0.75rem; + color: {{ color_palette.button_color }}; +} + +.filter-list__item:hover, +.filter-list__item:focus { + background-color: #fdf3ff; + color: #9630ab; + cursor: pointer; +} +.filter-list__item:focus { + outline: 2px solid #e79ff7; +} +.filter-list__item.is-active { + background-color: {{ color_palette.button_color }}; + color: #ffffff; +} + +.filter-list__item.is-active:hover, +.filter-list__item.is-active:focus { + background-color: #ba37d6; +} +.filter-list__item-remove { + margin-left: 0.4rem; +} +.filter-list__item:not(.is-active) .filter-list__item-remove { + display: none; +} + +/* ------ Clear Filters ------ */ +.clear-filters__container { + display: flex; + flex-wrap: wrap; + margin: -0.25rem -0.25rem 0.75rem; +} +.clear-filters__container > * { + margin: 0.25rem; +} +.clear-filters__button { + display: flex; + align-items: center; + justify-content: space-between; + box-shadow: rgba(141, 148, 158, 0.3) 0px 4px 12px; + line-height: 1.1; + padding: 0.3rem 0.85rem; + border-radius: 0.85rem; + background-color: {{ color_palette.button_color }}; + color: #ffffff; +} +.clear-filters__button-clear-all { + background-color: #ffffff; + color: {{ color_palette.button_color }}; +} +.clear-filters__button:hover, +.clear-filters__button:focus { + background-color: #ba37d6; + color: #ffffff; + cursor: pointer; +} +.clear-filters__button:focus { + outline: 2px solid #e79ff7; +} +.clear-filters__button.is-active { + background-color: {{ color_palette.button_color }}; + color: #ffffff; +} +.clear-filters__icon { + margin-left: 0.4rem; +} + +/* ------ Outdated Popup ------ */ +.np-course-version-outdated-popup { + align-self: center; + margin-left: auto; + margin-right: 0.5rem +} + +/* --- Trigger --- */ +.np-course-version-outdated-popup-trigger { + color: #f8654c; + border-radius: 50%; +} +.np-course-version-outdated-popup-trigger:hover, +.np-course-version-outdated-popup-trigger:focus { + color: #d54224; +} +.np-course-version-outdated-popup-trigger:focus { + outline: 2px solid #ffa593; +} + +.np-course-version-outdated-popup { + margin-left: 0.5rem; + margin-right: auto; +} + +/* --- Popup --- */ +.np-popup-tooltip--visible { + border: 2px solid #ffe5e1; +} +.np-popup-tail { + border-top: 4px solid #ffc9c0; +} +.np-popup-header { + background-color: #ffe5e1; + padding-left: 1.25rem; + padding-right: 1.25rem; +} +.np-popup-header-icon { + color: #f8654c; +} +.np-popup-body { + padding-left: 1.25rem; +} +.np-popup-body-button { + border-radius: 1.5rem; + background-color: {{ color_palette.button_color }}; +} +.np-popup-body-button:hover, +.np-popup-body-button:focus { + background-color: {{ color_palette.button_hover_color }}; + color: #fff; +} +.np-popup-body-button:focus { + outline: 2px solid #e79ff7;; +} + + +/* ------------ Pages ------------ */ + + +/* ------ Catalog Page ------ */ +/* --- Header --- */ +.np-catalog-header-wrapper { + display: block; +} +.np-catalog-header { + align-items: start; + margin: 0; +} + +/* --- Content Layout --- */ +.catalog-layout__wrapper { + flex-direction: column-reverse; + flex-wrap: nowrap; +} +.catalog-layout__filters { + width: 100%; +} +.catalog-layout__results { + align-content: start; + flex-grow: 1; +} +@media screen and ( min-width: 48rem ) { + .catalog-layout__results { + width: 75%; + } +} +@media screen and ( min-width: 35.5rem ) { + .catalog-layout__wrapper { + flex-direction: row; + } +} + +/* ------ Course Overview Page ------ */ +.page--course-overview .np-card-container { + max-width: 800px; + margin: auto; + flex-direction: column; +} +/* Course Image */ +.np-top-image-spacing { + margin-top: 2.5rem; + margin-bottom: 0; +} + +/* --- Course Outline --- */ +.np-course-outline { + margin-top: 1.5rem; + margin-bottom: 1.5rem; +} +@media screen and ( min-width: 48rem ) { + .np-course-outline { + margin-top: 2rem; + margin-bottom: 2rem; + } +} +/* --- Course Instructors --- */ +/* Container */ +.instructors-list__container { + display: flex; + flex-direction: column; + margin: -0.5rem; +} +.instructors-list__container > * { + padding: 0.5rem; + margin: 0; +} +@media screen and ( min-width: 48rem ) { + .instructors-list__container { + flex-direction: row; + align-items: start; + flex-wrap: wrap; + } + .instructors-list__container > * { + width: 50%; + } +} +/* Item */ +.np-content-instructors-content-item { + align-items: center; +} +.np-content-instructors-content-image { + width: 2rem; + height: 2rem; + border-radius: 50%; + border: 1px solid #aeb5bd; +} +.np-content-instructors-content-description { + margin-left: 0.75rem; +} +.np-content-instructors-content-name { + color: #6e7580; + font-weight: 700; + line-height: 1.3; +} +.np-content-instructors-content-info { + font-size: 1rem; + line-height: 1.3; + color: #24272e; +} +@media screen and ( min-width: 48rem ) { + .np-content-instructors-content-name { + font-size: 1.125rem; + } + .np-content-instructors-content-info { + font-size: 0.875rem; + } +} +/* --- Table of Contents --- */ +.np-course-outline-content-section-list { + margin-bottom: 14px; +} + +/* Section Title */ +.np-course-outline-content-section-name { + color: #353a42; + font-size: 1rem; + line-height: 1.3; + border-bottom-width: 0; + padding-bottom:0; +} +@media screen and ( min-width: 48rem ) { + .np-course-outline-content-section-name { + font-size: 1.125rem; + } +} +/* List Item */ +.np-course-outline-content-activity-list { + display: flex; + align-items: center; + border-bottom-width: 0; + padding: 0.3rem 0; +} +/* Icon */ +.np-course-outline-content-activity-icon { + padding: 0 0.75rem 0 0; + color: #e9ecf0; +} +/* Connecting Bar */ +.np-course-outline-content-activity-list-bar { + background-color: #e9ecf0; + height: calc(50% - 9px); + top: calc(50% + 9px); + bottom: 0; + left: 9px; +} +.np-course-outline-content-activity-list-bar:before { + background-color: #e9ecf0; + content: ""; + display: block; + position: absolute; + height: 100%; + top: calc(-100% - 18px); + width: 2px; + z-index: 1; +} +.np-course-outline-content-activity-list:first-child .np-course-outline-content-activity-list-bar:before { + display: none; +} +.np-course-outline-content-activity-list-bar.np-progress-background-color:before { + background-color: {{ color_palette.learning_progress_bar_color }}; +} +/* Hide the last end bar without hiding the connecting element */ +.np-course-outline-content-activity-list:last-child .np-course-outline-content-activity-list-bar { + display: block; + background-color: transparent; +} +/* Chapter Headings */ +.np-course-outline-content-activity-icon-locked, +.np-course-outline-content-activity-link-completed { + color: #6e7580; +} +.np-course-outline-content-activity-link-completed:hover, +.np-course-outline-content-activity-link-completed:focus { + color: #131519; +} +/* Link Hover Effect */ +.np-course-outline-content-activity-link-completed { + position: relative; +} +.np-course-outline-content-activity-link-completed::after { + content: ""; + display: block; + position: absolute; + width: 0%; + background-color: #4cc3ff; + height: 0; + border-radius: 1px; +} +.np-course-outline-content-activity-link-completed:hover::after, +.np-course-outline-content-activity-link-completed:focus::after { + width: 100%; + height: 2px; +} +.np-course-outline-content-activity-link-completed:active::after { + background-color: #ba37d6; +} +/* Locked Icon */ +.np-course-outline-content-activity-icon-locked { + color: #aeb5bd; + font-weight: 700; +} +/* --- Course Events --- */ +.np-course-events-content-item { + margin-top: 1rem; +} +.np-course-events-content-date { + flex-shrink: 0; + border-radius: 50%; + text-transform: none; + background-color: #795ae8; + +} +.np-course-events-content-month, +.np-course-events-content-day { + line-height: 1; +} +.np-course-events-content-name, +.np-course-events-content-type, +.np-course-events-content-time { + line-height: 1.3; +} +.np-course-events-content-name { + color: #353a42; + font-size: 1rem; + font-weight: 700; +} +.np-course-events-content-type, +.np-course-events-content-time { + font-size: 0.875rem; +} +.np-course-events-content-type { + margin-bottom: 0; +} +.np-course-events-content-time { + color: #6b3fd1; +} + +/* --- Outline Bar Divider --- */ +.np-learning-path-outline-bar { + position: relative; +} + +/* ------ Learning Path Overview ------ */ + + +/* --- Top Vocabulary (Online or In Person Event) --- */ +.np-training-session .np-top-vocabulary { + font-weight: 700; + line-height: 1.3; + white-space: nowrap; + margin-bottom: 0; +} +@media screen and ( min-width: 48rem ) { + .np-training-session .np-top-vocabulary { + margin-left: 1rem; + } +} +.np-training-session .np-top-vocabulary .np-training-session-icon { + margin-left: 0; + margin-right: .5rem; + color: #795ae8; +} + +/* +/* --- CTA for Outline --- */ +.cta--outline { + position: relative; + text-align: center; + +} +.cta--outline .np-button { + width: 100%; +} +.cta--outline .np-top-cta { + box-shadow: rgba(141, 148, 158, 0.3) 0px 4px 12px; +} + +/* --- Outline Divider --- */ +.np-learning-path-outline-bar { + position: relative; +} + +.np-learning-path-outline > div { + position:relative; + margin-bottom:16px; +} + +.np-learning-path-outline > div:before { + content:""; + position: absolute; + height: calc(100% + 16px); + width: 1px; + border-right: 7px dashed #fff; + left: 50%; + top: 16px; +} + +.np-learning-path-outline > div:last-child:before { + height: 0; +} + +/* --- Outline Cards --- */ +.np-learning-path-outline-item { + margin: 0; + border-radius: 1rem; +} +@media screen and ( min-width: 48rem ) { + .np-learning-path-outline-item .np-card-container { + min-height: 135px; + } +} +.np-learning-path-outline-item:focus { + outline: 2px solid #e79ff7; +} +.outline-card__icon-container { + padding: 0.5rem; + border-radius: 50%; + height: 2.25rem; + width: 2.25rem; + align-self: center; + display: flex; + align-items: center; + justify-content: center; + margin-right: 1rem; + flex-shrink: 0; +} +.np-learning-path-outline-icon { + margin-left: unset; + font-size: 1rem; +} +/* Locked */ +.outline-card__icon-locked { + background-color: #e9ecf0; +} +.outline-card__icon-locked .np-learning-path-outline-icon { + color: #5a616b; +} +/* Complete */ +.outline-card__icon-complete { + background-color: #d7f7f1; +} +.outline-card__icon-complete .np-learning-path-outline-icon { + color: #008382; +} +/* Use an arrow icon on hvoer */ +a:hover .outline-card__icon-complete .np-learning-path-outline-icon::before, +a:focus .outline-card__icon-complete .np-learning-path-outline-icon::before, +a:active .outline-card__icon-complete .np-learning-path-outline-icon::before { + content: "\f054"; +} +/* Link */ +.outline-card__icon-link { + background-color: #3E1191; +} +.outline-card__icon-link .np-learning-path-outline-icon { + color: #fff; +} +a:hover .outline-card__icon-container, +a:focus .outline-card__icon-container { + background-color: #7625F7; +} +a:focus .outline-card__icon-container { + outline: 2px solid #7625F7; +} +a:hover .np-learning-path-outline-icon, +a:focus .np-learning-path-outline-icon { + color: #fff; +} +a:active .np-learning-path-outline-icon { + color: #fff; +}*/ + +/* ------ Events Overview ------ */ + +/* --- Date Bar --- */ +.np-training-session .np-card-training-session-date { + margin-top: 0; +} +.np-training-session .np-card-training-session-date-bar { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; + width: 0.5rem; +} +/* --- Session Details --- */ +.training-session__details { + margin-top: 0.5rem; + margin-bottom: 1rem !important; +} +.training-session__details .np-training-session-icon { + color: #795ae8; + width: 1.5rem; + text-align: center; + margin-right: 0.25rem; +} +.np-training-session .np-training-session-time, +.np-training-session-location { + margin-top: 0; +} +/* --- CTA --- */ +.np-training-session-cta { + padding-right: 0; + display: block; + width: 100%; +} +.np-training-session-cta-buttons form { + display: flex; + flex-wrap: wrap; + width: calc(100% + .5rem); + margin: -0.25rem; +} +.np-training-session-cta-buttons form > * { + margin: 0.25rem !important; +} +/* --- Additional Training Sessions --- */ +.np-training-session-tile { + background-color: #ffffff; + border-radius: 1rem; + box-shadow: rgba(141, 148, 158, 0.3) 0px 4px 12px; + color: #5a616b; +} +.np-training-session-tile:hover { + background-color: #ffffff; +} +.np-training-session-tile:focus { + outline: 2px solid #e79ff7; +} +/* Icon */ +.np-training-session-tile-icon { + color: #795ae8; +} +/* Details */ +.training-session-tile__details { + flex-grow: 1; +} +.np-training-session-tile-date { + color: #24272e; +} +.np-training-session-tile-time { + color: #5a616b; + font-size: 0.875rem; +} +/* Arrow */ +.training-session-tile__icon-container { + padding: 0.5rem; + border-radius: 50%; + height: 2.25rem; + width: 2.25rem; + align-self: center; + display: flex; + align-items: center; + justify-content: center; + margin-right: 1rem; + flex-shrink: 0; + background-color: #e0f3ff; + margin-left: 1rem; + margin-right: 0; +} +.training-session-tile__icon { + margin-left: unset; + font-size: 1rem; + color: #2574e1; +} +a:hover .training-session-tile__icon-container, +a:focus .training-session-tile__icon-container { + background-color: #f9e1ff; +} +a:focus .training-session-tile__icon-container { + outline: 2px solid #e79ff7; +} +a:hover .training-session-tile__icon, +a:focus .training-session-tile__icon { + color: #ba37d6; +} +a:active .training-session-tile__icon { + color: #712b80; +} + +/* ------ Empty States ------ */ + +.np-dashboard-resources-container, +.np-learning-paths-resources-container, +.np-training-session-zero-state { + width: 100%; + border-radius: 1rem; + border: 3px solid #dce1e5; +} +.np-training-session-zero-state { + display: flex; + padding: 2.5rem 2rem; + align-items: center; +} +.np-training-session-zero-state img { + height: 68px; + margin-right: 1rem; +} +.np-zero-state-text { + color: #6e7580; + font-size: 1.125rem; + font-weight: 700; +} +.np-zero-state-text button { + margin-top: 1rem; +} +.np-training-session-zero-state-text { + font-size: 1; + line-height: 1.3; +} + +/* ------ Search Results ------ */ + +/* --- Header / Summary --- */ +.search-summary__emphasis { + color: #6b3fd1; + font-weight: 700; +} + + + +/* ------ Custom Pages ------ */ +.custom-page__content { + margin-top: 0.75rem; +} +@media screen and ( min-width: 48rem ) { + .custom-page__content { + margin-top: 1rem; + } +} + +/* ------ Account Page ------ */ +.np-account-form .np-card-container { + flex-direction: column; +} +@media screen and ( max-width: 48rem ) { + .np-account-avatar .np-card-container { + flex-direction: row !important; + } +} + +/* ------------ Custom Freeform Content ------------ */ +/* This content is shared between the main academy and the LX experience */ + +/* --- Button --- */ +a.tutorial-button { + display: inline-block; + padding: 0.5rem 1.25rem; + border-radius: 1.5rem; + background-color: #2574e1; + color: #fff !important; +} +.tutorial-button:focus, +.tutorial-button:hover { + background-color: #712b80; +} +.tutorial-button:focus { + outline: 2px solid #e79ff7; +} +.tutorial-button:active { + background-color: #50185b; +} + + +/* --- Time Estimate --- */ +/* Includes a clock icon and light purple background with dark purple text */ +.tutorial-time-estimate { + position: relative; + border-radius: 1.25rem; + background-color: #e9e9ff; + padding: 0.5rem 1rem 0.5rem calc(3rem + 16px); + display: block; + overflow: hidden; + font-size: 1rem; + color: #6b3fd1; + margin: 1.5rem 0 !important; +} +.tutorial-time-estimate::before { + position: absolute; + display: flex; + align-items: center; + left: 0; + top: 0; + bottom: 0; + background-color: #6b3fd1; + color: #fff; + padding: 0.5rem 0.9rem 0.5rem 1rem; + content: "\f017"; + font-family: 'Font Awesome 5 Pro'; + font-size: 18px; + line-height: 1.5rem; +} + +/* ------------ Colors ------------ */ +.np-color-danger { + color: #E52242; +} +.np-color-success { + color: #368645; +} +.np-progress-color { + color: #4cc3ff; + +} +.np-progress-background-color { + background-color: #7625F7; +} diff --git a/Custom_Templates/customer_templates/Zenjob/training_events.html.liquid b/Custom_Templates/customer_templates/Zenjob/training_events.html.liquid new file mode 100644 index 00000000..9e4a107e --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/training_events.html.liquid @@ -0,0 +1,13 @@ +{% include "header", current_page_orgin: "training_events" %} +
+ + {% include "training_events_index" %} +
+{% include "footer" %} diff --git a/Custom_Templates/customer_templates/Zenjob/training_session.html.liquid b/Custom_Templates/customer_templates/Zenjob/training_session.html.liquid new file mode 100644 index 00000000..2d9ef1d6 --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/training_session.html.liquid @@ -0,0 +1 @@ +{% include "training_session_desktop_view" %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Zenjob/zertifikate.html.liquid b/Custom_Templates/customer_templates/Zenjob/zertifikate.html.liquid new file mode 100644 index 00000000..f81ca4bd --- /dev/null +++ b/Custom_Templates/customer_templates/Zenjob/zertifikate.html.liquid @@ -0,0 +1,74 @@ +{% include "header" %} +
+

+ {{custom_page.headline}} +

+
+ +
+
+ {% assign number_of_badges = 0 %} + {% for course in courses.in_catalog %} + {% unless course.properties.course_badge == "none" or course.properties.course_badge == "" %} + + {% assign number_of_badges = number_of_badges | plus: 1 %} + {% endunless %} + {% endfor %} + + {% if number_of_badges == 0 %} +
+ +
+ {% endif %} +
+
+
+{% include "footer" %} + + \ No newline at end of file diff --git a/Scripts/Jupyter/combo_3.ipynb b/Scripts/Jupyter/arr_pageviews_playground.ipynb similarity index 79% rename from Scripts/Jupyter/combo_3.ipynb rename to Scripts/Jupyter/arr_pageviews_playground.ipynb index b7705888..3bc3c3a2 100644 --- a/Scripts/Jupyter/combo_3.ipynb +++ b/Scripts/Jupyter/arr_pageviews_playground.ipynb @@ -1626,37 +1626,16 @@ }, { "cell_type": "code", - "execution_count": 917, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "malformed node or string on line 1: ", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[917], line 4\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mast\u001b[39;00m \u001b[39mimport\u001b[39;00m literal_eval\n\u001b[1;32m 2\u001b[0m \u001b[39m#usecases_split = usecases_split.use_case.str.split('|')\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[39m# usecases_split = usecases_split.groupby('use_case').agg({'total_views':'sum','arr':'sum'})\u001b[39;00m\n\u001b[0;32m----> 4\u001b[0m usecases_split\u001b[39m.\u001b[39muse_case \u001b[39m=\u001b[39m usecases_split\u001b[39m.\u001b[39;49muse_case\u001b[39m.\u001b[39;49mapply(literal_eval)\n\u001b[1;32m 5\u001b[0m usecases_split\u001b[39m.\u001b[39muse_case\u001b[39m.\u001b[39mexplode(usecases_split\u001b[39m.\u001b[39massign(use_case\u001b[39m=\u001b[39musecases_split\u001b[39m.\u001b[39muse_case\u001b[39m.\u001b[39mstr\u001b[39m.\u001b[39msplit(\u001b[39m'\u001b[39m\u001b[39m,\u001b[39m\u001b[39m'\u001b[39m)), \u001b[39m'\u001b[39m\u001b[39muse_case\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 6\u001b[0m usecases_split\u001b[39m.\u001b[39mhead(\u001b[39m25\u001b[39m)\n", - "File \u001b[0;32m~/.pyenv/versions/3.11.1/envs/jupyter/lib/python3.11/site-packages/pandas/core/series.py:4631\u001b[0m, in \u001b[0;36mSeries.apply\u001b[0;34m(self, func, convert_dtype, args, **kwargs)\u001b[0m\n\u001b[1;32m 4521\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mapply\u001b[39m(\n\u001b[1;32m 4522\u001b[0m \u001b[39mself\u001b[39m,\n\u001b[1;32m 4523\u001b[0m func: AggFuncType,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 4526\u001b[0m \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs,\n\u001b[1;32m 4527\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m DataFrame \u001b[39m|\u001b[39m Series:\n\u001b[1;32m 4528\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 4529\u001b[0m \u001b[39m Invoke function on values of Series.\u001b[39;00m\n\u001b[1;32m 4530\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 4629\u001b[0m \u001b[39m dtype: float64\u001b[39;00m\n\u001b[1;32m 4630\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 4631\u001b[0m \u001b[39mreturn\u001b[39;00m SeriesApply(\u001b[39mself\u001b[39;49m, func, convert_dtype, args, kwargs)\u001b[39m.\u001b[39;49mapply()\n", - "File \u001b[0;32m~/.pyenv/versions/3.11.1/envs/jupyter/lib/python3.11/site-packages/pandas/core/apply.py:1025\u001b[0m, in \u001b[0;36mSeriesApply.apply\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1022\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mapply_str()\n\u001b[1;32m 1024\u001b[0m \u001b[39m# self.f is Callable\u001b[39;00m\n\u001b[0;32m-> 1025\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mapply_standard()\n", - "File \u001b[0;32m~/.pyenv/versions/3.11.1/envs/jupyter/lib/python3.11/site-packages/pandas/core/apply.py:1076\u001b[0m, in \u001b[0;36mSeriesApply.apply_standard\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1074\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 1075\u001b[0m values \u001b[39m=\u001b[39m obj\u001b[39m.\u001b[39mastype(\u001b[39mobject\u001b[39m)\u001b[39m.\u001b[39m_values\n\u001b[0;32m-> 1076\u001b[0m mapped \u001b[39m=\u001b[39m lib\u001b[39m.\u001b[39;49mmap_infer(\n\u001b[1;32m 1077\u001b[0m values,\n\u001b[1;32m 1078\u001b[0m f,\n\u001b[1;32m 1079\u001b[0m convert\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mconvert_dtype,\n\u001b[1;32m 1080\u001b[0m )\n\u001b[1;32m 1082\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(mapped) \u001b[39mand\u001b[39;00m \u001b[39misinstance\u001b[39m(mapped[\u001b[39m0\u001b[39m], ABCSeries):\n\u001b[1;32m 1083\u001b[0m \u001b[39m# GH#43986 Need to do list(mapped) in order to get treated as nested\u001b[39;00m\n\u001b[1;32m 1084\u001b[0m \u001b[39m# See also GH#25959 regarding EA support\u001b[39;00m\n\u001b[1;32m 1085\u001b[0m \u001b[39mreturn\u001b[39;00m obj\u001b[39m.\u001b[39m_constructor_expanddim(\u001b[39mlist\u001b[39m(mapped), index\u001b[39m=\u001b[39mobj\u001b[39m.\u001b[39mindex)\n", - "File \u001b[0;32m~/.pyenv/versions/3.11.1/envs/jupyter/lib/python3.11/site-packages/pandas/_libs/lib.pyx:2834\u001b[0m, in \u001b[0;36mpandas._libs.lib.map_infer\u001b[0;34m()\u001b[0m\n", - "File \u001b[0;32m~/.pyenv/versions/3.11.1/lib/python3.11/ast.py:110\u001b[0m, in \u001b[0;36mliteral_eval\u001b[0;34m(node_or_string)\u001b[0m\n\u001b[1;32m 108\u001b[0m \u001b[39mreturn\u001b[39;00m left \u001b[39m-\u001b[39m right\n\u001b[1;32m 109\u001b[0m \u001b[39mreturn\u001b[39;00m _convert_signed_num(node)\n\u001b[0;32m--> 110\u001b[0m \u001b[39mreturn\u001b[39;00m _convert(node_or_string)\n", - "File \u001b[0;32m~/.pyenv/versions/3.11.1/lib/python3.11/ast.py:109\u001b[0m, in \u001b[0;36mliteral_eval.._convert\u001b[0;34m(node)\u001b[0m\n\u001b[1;32m 107\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 108\u001b[0m \u001b[39mreturn\u001b[39;00m left \u001b[39m-\u001b[39m right\n\u001b[0;32m--> 109\u001b[0m \u001b[39mreturn\u001b[39;00m _convert_signed_num(node)\n", - "File \u001b[0;32m~/.pyenv/versions/3.11.1/lib/python3.11/ast.py:83\u001b[0m, in \u001b[0;36mliteral_eval.._convert_signed_num\u001b[0;34m(node)\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 82\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39m-\u001b[39m operand\n\u001b[0;32m---> 83\u001b[0m \u001b[39mreturn\u001b[39;00m _convert_num(node)\n", - "File \u001b[0;32m~/.pyenv/versions/3.11.1/lib/python3.11/ast.py:74\u001b[0m, in \u001b[0;36mliteral_eval.._convert_num\u001b[0;34m(node)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_convert_num\u001b[39m(node):\n\u001b[1;32m 73\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39misinstance\u001b[39m(node, Constant) \u001b[39mor\u001b[39;00m \u001b[39mtype\u001b[39m(node\u001b[39m.\u001b[39mvalue) \u001b[39mnot\u001b[39;00m \u001b[39min\u001b[39;00m (\u001b[39mint\u001b[39m, \u001b[39mfloat\u001b[39m, \u001b[39mcomplex\u001b[39m):\n\u001b[0;32m---> 74\u001b[0m _raise_malformed_node(node)\n\u001b[1;32m 75\u001b[0m \u001b[39mreturn\u001b[39;00m node\u001b[39m.\u001b[39mvalue\n", - "File \u001b[0;32m~/.pyenv/versions/3.11.1/lib/python3.11/ast.py:71\u001b[0m, in \u001b[0;36mliteral_eval.._raise_malformed_node\u001b[0;34m(node)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[39mif\u001b[39;00m lno \u001b[39m:=\u001b[39m \u001b[39mgetattr\u001b[39m(node, \u001b[39m'\u001b[39m\u001b[39mlineno\u001b[39m\u001b[39m'\u001b[39m, \u001b[39mNone\u001b[39;00m):\n\u001b[1;32m 70\u001b[0m msg \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39mf\u001b[39m\u001b[39m'\u001b[39m\u001b[39m on line \u001b[39m\u001b[39m{\u001b[39;00mlno\u001b[39m}\u001b[39;00m\u001b[39m'\u001b[39m\n\u001b[0;32m---> 71\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(msg \u001b[39m+\u001b[39m \u001b[39mf\u001b[39m\u001b[39m'\u001b[39m\u001b[39m: \u001b[39m\u001b[39m{\u001b[39;00mnode\u001b[39m!r}\u001b[39;00m\u001b[39m'\u001b[39m)\n", - "\u001b[0;31mValueError\u001b[0m: malformed node or string on line 1: " - ] - } - ], + "outputs": [], "source": [ - "from ast import literal_eval\n", - "#usecases_split = usecases_split.use_case.str.split('|')\n", - "# usecases_split = usecases_split.groupby('use_case').agg({'total_views':'sum','arr':'sum'})\n", - "usecases_split.use_case = usecases_split.use_case.apply(literal_eval)\n", - "usecases_split.use_case.explode(usecases_split.assign(use_case=usecases_split.use_case.str.split(',')), 'use_case')\n", - "usecases_split.head(25)" + "# from ast import literal_eval\n", + "# #usecases_split = usecases_split.use_case.str.split('|')\n", + "# # usecases_split = usecases_split.groupby('use_case').agg({'total_views':'sum','arr':'sum'})\n", + "# usecases_split.use_case = usecases_split.use_case.apply(literal_eval)\n", + "# usecases_split.use_case.explode(usecases_split.assign(use_case=usecases_split.use_case.str.split(',')), 'use_case')\n", + "# usecases_split.head(25)" ] }, { @@ -1736,7 +1715,7 @@ }, { "cell_type": "code", - "execution_count": 891, + "execution_count": 954, "metadata": {}, "outputs": [ { @@ -1781,7 +1760,7 @@ " \n", " UX Design Institute\n", " 7167\n", - " 113580\n", + " 37860\n", " 64\n", " \n", " \n", @@ -1823,7 +1802,7 @@ " \n", " Hardskills Pte. Ltd\n", " 2780\n", - " 24996\n", + " 12498\n", " 24\n", " \n", " \n", @@ -1883,7 +1862,7 @@ " \n", " Upland Software Inc.\n", " 1600\n", - " 19552\n", + " 9776\n", " 14\n", " \n", " \n", @@ -1895,7 +1874,7 @@ " \n", " Cultural Care\n", " 1431\n", - " 21600\n", + " 10800\n", " 12\n", " \n", " \n", @@ -1919,7 +1898,7 @@ " \n", " Talkspace\n", " 1317\n", - " 261384\n", + " 87128\n", " 11\n", " \n", " \n", @@ -1930,14 +1909,14 @@ " total_views arr \n", "customer_name \n", "CHEK Institute 11138 20000 \\\n", - "UX Design Institute 7167 113580 \n", + "UX Design Institute 7167 37860 \n", "Anchor QEA, LLC 4853 10000 \n", "MOLITOR Formations 4009 9000 \n", "Whitetail Properties Real Estate 3604 18000 \n", "Luma Health, Inc. 3459 20000 \n", "SPS Commerce 3205 51000 \n", "American Concrete Pipe Association 2864 20000 \n", - "Hardskills Pte. Ltd 2780 24996 \n", + "Hardskills Pte. Ltd 2780 12498 \n", "Viva Online Services SA 2365 5837 \n", "English for Asia 2270 6060 \n", "Magis Center 2136 20000 \n", @@ -1947,13 +1926,13 @@ "Herrmann 1681 12000 \n", "Maven Clinic 1579 15225 \n", "Scinapsis Analytics Inc. d.b.a. BenchSci 1659 5100 \n", - "Upland Software Inc. 1600 19552 \n", + "Upland Software Inc. 1600 9776 \n", "Canavan Byrne 1380 23000 \n", - "Cultural Care 1431 21600 \n", + "Cultural Care 1431 10800 \n", "LJ Hooker Corporation Pty Ltd 1378 206250 \n", "Serge 1369 10860 \n", "The CORE Group 1419 20000 \n", - "Talkspace 1317 261384 \n", + "Talkspace 1317 87128 \n", "\n", " scaled_views_percent \n", "customer_name \n", @@ -1984,7 +1963,7 @@ "Talkspace 11 " ] }, - "execution_count": 891, + "execution_count": 954, "metadata": {}, "output_type": "execute_result" } @@ -1992,7 +1971,8 @@ "source": [ "from sklearn.preprocessing import MinMaxScaler\n", "\n", - "cust_groups = newpd.groupby('customer_name').agg({'total_views':'sum','arr':'sum'})\n", + "cust_groups = newpd.groupby('customer_name').agg({'total_views':'sum','arr':'mean'})\n", + "cust_groups.arr = cust_groups.arr.astype(int)\n", "\n", "scaler = MinMaxScaler()\n", "\n", @@ -2005,6 +1985,156 @@ "#icp_groups.head(12)" ] }, + { + "cell_type": "code", + "execution_count": 967, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "Yes, there appears to be a relationship between the arr column and total_views column. To further analyze this relationship, we can use a correlation coefficient to measure the strength of the relationship between the two variables. We can also use a scatter plot to visualize the relationship between the two variables. Additionally, we can use linear regression to determine if there is a linear relationship between the two variables. \n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cust_groups.sketch.ask(\"Is there a relationships between arr column and total_views column? Conduct further analysis on the relationship\")" + ] + }, + { + "cell_type": "code", + "execution_count": 968, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n",
+       "import pandas as pd\n",
+       "import numpy as np\n",
+       "from sklearn.linear_model import LinearRegression\n",
+       "\n",
+       "# Create the X and y data sets\n",
+       "X = cust_groups[['arr']]\n",
+       "y = cust_groups['total_views']\n",
+       "\n",
+       "# Fit the linear regression model\n",
+       "model = LinearRegression().fit(X, y)\n",
+       "\n",
+       "# Print the coefficients\n",
+       "print('Coefficient: ', model.coef_)\n",
+       "print('Intercept: ', model.intercept_)\n",
+       "
\n", + " \n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cust_groups.sketch.howto(\"Apply linear regression to determine if there is a linear relationships between arr and total_views\")" + ] + }, + { + "cell_type": "code", + "execution_count": 970, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LinearRegression()\n", + "Coefficient: [0.00205744]\n", + "Intercept: 788.6409091789558\n" + ] + } + ], + "source": [ + "from sklearn.linear_model import LinearRegression\n", + "\n", + "# Create the X and y data sets\n", + "X = cust_groups[['arr']]\n", + "y = cust_groups['total_views']\n", + "\n", + "# Fit the linear regression model\n", + "model = LinearRegression().fit(X, y)\n", + "\n", + "# Print the coefficients\n", + "print('Coefficient: ', model.coef_)\n", + "print('Intercept: ', model.intercept_)" + ] + }, + { + "cell_type": "code", + "execution_count": 960, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "total_views int64\n", + "arr int64\n", + "dtype: object" + ] + }, + "execution_count": 960, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Create new dataframe with only some columns. \n", + "corrspd = cust_groups[['total_views', 'arr']]\n", + "corrspd.plot.scatter(x=corrspd.total_views, y=corrspd.arr)\n", + "\n", + "\n", + "# Correlation Matrix. Not useful here. \n", + "# corrs = corrspd.corr()\n", + "# fig = plt.figure(figsize=(10,10))\n", + "# plt.matshow(corrs, cmap='RdBu')\n", + "# plt.xticks(range(len(corrs.columns)), corrs.columns, rotation='vertical')\n", + "# plt.yticks(range(len(corrs.columns)), corrs.columns)\n", + "# plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 952, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAGdCAYAAADDtX0BAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABiSklEQVR4nO3de3xU1bn/8c/OjVwgF5CYYCAXkhCBQEQDiqgg1CJSEKqWQntaUmKtUm1r9edBtNYaNaV6lIPaqFClViHlSJGrbSlYNVQFBBJuIQQM4RqESUgCuc3+/RGzYUiAhFxmMvN9v155ZWbvtfc8zwxJHtZae23DNE0TEREREWl3Xs4OQERERMRTqPASERER6SAqvEREREQ6iAovERERkQ6iwktERESkg6jwEhEREekgKrxEREREOogKLxEREZEOosJLREREpIOo8BIRERHpID7ODkAaO3nyJLW1tc4Oo1317NmTkpISZ4fRYTwpX+XqvjwpX+XqvtojXx8fH8LCwprXtk1fuY2sWbOG5cuXY7PZiI6OJi0tjfj4+Au237BhA4sXL6akpISIiAimTZvGkCFDrP2maZKdnc3atWupqKggKSmJGTNmEBkZabUpLy9nwYIFbNq0CcMwGDZsGNOnT8ff3x+AQ4cO8cYbb1BcXExlZSVhYWGMGDGCu+66Cx+f+rdx/fr1vPrqqw6x+fr68pe//KVF+dfW1lJTU9OiYzoTwzCA+jw94VahnpSvcnVfnpSvcnVfrpCvyxVeOTk5LFy4kPT0dBISEli5ciUZGRm89NJLhISENGq/e/duXn75ZaZOncqQIUP45JNPmDNnDpmZmfTp0weAZcuWsXr1ah544AHCw8NZvHgxGRkZvPjii/j5+QEwd+5cTp48yezZs6mrq+PVV18lKyuLhx56CABvb29uvvlmYmNjCQoK4quvviIrKwu73c7UqVOteAICAnj55Zc74J0SERGRzsbl5nitWLGC0aNHM2rUKKKiokhPT8fPz49169Y12X7VqlWkpKQwYcIEoqKimDJlCnFxcaxZswao7+1atWoVkydPJjU1lejoaGbOnMnJkyf54osvACguLmbLli3cd999JCQkkJSURFpaGjk5OZw4cQKAK6+8klGjRhETE0PPnj257rrrGDFiBLt27XKIxzAMQkNDHb5EREREwMV6vGprayksLOTOO++0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zvz58x0WUE1LS7vgAqrdunVj7NixjZa4uFQszVFSUuJwtaO7aVhy4LAHdW17Sr7K1X15Ur7K1X21V76+vr7NnuPlkoWXp1Ph5V48KV/l6r48KV/l6r5cofByuaFGEREREXelwktERESkg6jwEhEREekgKrxEREREOogKLxEREZEOosJLREREpIOo8BIRERHpICq8RERERDqICi8RERGRDuLj7ACkMR8fz/hYPCXPBp6Ur3J1X56Ur3J1X22db0vOp1sGiYiIiHQQDTVKhzt9+jT/7//9P06fPu3sUDqEJ+WrXN2XJ+WrXN2XK+Srwks6nGma7Nu3zyNuyAqela9ydV+elK9ydV+ukK8KLxEREZEOosJLREREpIOo8JIO5+vry1133YWvr6+zQ+kQnpSvcnVfnpSvcnVfrpCvrmoUERER6SDq8RIRERHpICq8RERERDqICi8RERGRDqLCS0RERKSDeNbNmaTNLF26lM8//5yDBw/i5+dHYmIiP/jBD+jVq5fV5qmnnmLHjh0Ox40ZM4Z7773Xen78+HHeeOMNtm/fjr+/P7fccgtTp07F29vbarN9+3YWLlzIgQMH6NGjB9/97ncZOXJku+fYIDs7myVLljhs69WrFy+99BIA1dXVLFy4kJycHGpqahg8eDAzZswgNDTUat8Z8mzwwAMPUFJS0mj7bbfdxowZMzr157pjxw4++OAD9u3bx8mTJ/n1r3/N0KFDrf2maZKdnc3atWupqKggKSmJGTNmEBkZabUpLy9nwYIFbNq0CcMwGDZsGNOnT8ff399q89VXXzF//nz27t1LcHAwY8eOZeLEiQ6xbNiwgcWLF1NSUkJERATTpk1jyJAhHZJrbW0tixYt4ssvv+TYsWMEBgaSnJzM1KlT6d69u3WOpv4tTJ06lTvvvNOlcr1UvgCvvPIKH330kcMxgwcP5vHHH7eeu8NnC3DPPfc0edwPfvADJkyYAHSez7Y5f2s68nfwmjVrWL58OTabjejoaNLS0oiPj29RTiq85LLs2LGDb3/72/Tt25e6ujree+89nnnmGV588UWHX1KjR4/me9/7nvXcz8/Pemy323nuuecIDQ3lmWee4eTJk8ybNw9vb2+mTp0KwLFjx3j++ef51re+xc9//nPy8vL44x//SGhoKCkpKR2Wb+/evXniiSes515eZzuL3377bTZv3syvfvUrAgMDmT9/Pi+88AK/+93vOl2eAM899xx2u916XlRUxDPPPMMNN9xgbeusn2tVVRUxMTHceuut/OEPf2i0f9myZaxevZoHHniA8PBwFi9eTEZGBi+++KKV49y5czl58iSzZ8+mrq6OV199laysLB566CEAKisreeaZZ0hOTiY9PZ2ioiJee+01goKCGDNmDAC7d+/m5ZdfZurUqQwZMoRPPvmEOXPmkJmZSZ8+fdo91+rqavbt28d3v/tdYmJiKC8v56233uL3v/89zz//vEPbe+65x4obcPj5dpVcL5Vvg5SUFO6//37r+fk3NnaHzxbg9ddfd3j+5Zdf8sc//pFhw4Y5bO8Mn21z/tZ01O/gnJwcFi5cSHp6OgkJCaxcuZKMjAxeeuklQkJCmp+UKdIGSktLzbvvvtvcvn27te03v/mN+ac//emCx2zevNm85557zJMnT1rbPvzwQ/O//uu/zJqaGtM0TfPPf/6z+atf/crhuP/5n/8xn3nmmTaN/2IWL15s/vrXv25yX0VFhTllyhRzw4YN1rbi4mLz7rvvNnfv3m2aZufJ80L+9Kc/mTNnzjTtdrtpmu7zud59993mZ599Zj232+1menq6uWzZMmtbRUWFOXXqVPOTTz4xTdM0Dxw4YN59991mQUGB1ebLL78077nnHvPrr782TbM+1x//+MdWrqZpmu+884750EMPWc9ffPFF87nnnnOIZ9asWWZWVlab5tjg/FybsmfPHvPuu+82S0pKrG3333+/uWLFigse44q5mmbT+c6bN8/MzMy84DHu/NlmZmaav/3tbx22ddbP9vy/NR35O/i///u/zTfffNN6XldXZ957773m0qVLW5SD5nhJm6isrASga9euDts//vhjfvKTn/Dwww/z7rvvUlVVZe3Lz8+nT58+Dt3BKSkpnD59mgMHDgCwZ88ekpOTHc45ePBg8vPz2ymTph05coSf/vSnzJw5k7lz53L8+HEACgsLqaurc4jxqquu4oorrrBi7Ex5nq+2tpaPP/6YUaNGYRiGtd1dPtdzHTt2DJvNxqBBg6xtgYGBxMfHO3yWQUFB9O3b12qTnJyMYRgUFBRYba6++mqH3pTBgwdz6NAhysvLrTZN5b9nz552y+9SKisrMQyDwMBAh+1/+9vfSEtL49FHH+WDDz6grq7O2tfZct2xYwczZszgoYce4o033uDUqVPWPnf9bG02G19++SW33npro32d8bM9/29NR/0Orq2tpbCw0KGNl5cXycnJLf69paFGaTW73c5bb71Fv379HLqXR4wYwRVXXEH37t356quv+Mtf/sKhQ4f49a9/DdT/Qjj3BwGwumttNpv1/fwu3JCQEE6fPk11dbXDEFd7SUhI4P7776dXr16cPHmSJUuW8OSTT/LCCy9gs9nw8fEhKCioUYzn5tAZ8mzK559/TkVFhcM8B3f5XM/XEFtTcZ0bd3BwsMN+b29vunbt6tAmPDzcoU3D+2Gz2ay2F3udjlZdXc1f/vIXbrzxRofC6/bbbyc2NpauXbuye/du3nvvPU6ePMmPfvQjoHPlmpKSwrBhwwgPD+fIkSO89957PPvss2RkZODl5eW2n+1HH32Ev7+/wxww6JyfbVN/azrqd3B5eTl2u73ReUJDQzl06FCL8lDhJa02f/58Dhw4wNNPP+2w/dy5A3369CEsLIynn36aI0eOEBER0dFhXrZrrrnGehwdHW0VYhs2bHBaQdRR1q1bR0pKisOEa3f5XKVebW0t//M//wPAjBkzHPaNHz/eehwdHY2Pjw9vvPEGU6dO7XS3mLnxxhutx3369CE6Opqf//znbN++vVFPhztZt24dN910U6PfVZ3xs73Q35rORkON0irz589n8+bN/OY3v6FHjx4Xbdtw5ceRI0eA+v8pnP8/o9LSUmtfw/eGbee2CQgIcFrRExQURK9evThy5AihoaHU1tZSUVHRKMZzc+iMeZaUlLBt2zZGjx590Xbu8rk2xNZUXOfGXVZW5rC/rq6O8vLyi37eDc8vlf/5/5tubw1F1/Hjx5k9e3ajYcbzJSQkUFdXZ10N15lyPd+VV15Jt27dHP7dutNnC7Bz504OHTrU5DDj+Vz9s73Q35qO+h0cHBxs9Yyeq6netEtR4SWXxTRN5s+fz+eff86TTz7ZqEu6Kfv37wcgLCwMgMTERIqKihz+sW/bto2AgACioqKA+l8Gubm5DufZtm0biYmJbZRJy505c8YquuLi4vD29naI8dChQxw/ftyKsbPmuW7dOkJCQi55abi7fK7h4eGEhoY6xFVZWUlBQYHDZ1lRUUFhYaHVJi8vD9M0rQI0MTGRnTt3Ultba7XZtm0bvXr1sualJCYmNpl/QkJCu+V3voai68iRIzzxxBN069btksfs378fwzCsIbnOkmtTvv76a8rLyx3+3brLZ9vgX//6F3FxccTExFyyrat+tpf6W9NRv4N9fHyIi4sjLy/P2m+328nLy2vx7y0VXnJZ5s+fz8cff8xDDz1EQEAANpsNm81GdXU1UN/7sWTJEgoLCzl27BgbN27klVde4eqrryY6Ohqon7gYFRXFvHnz2L9/P1u2bGHRokV8+9vftrq6b7vtNo4dO8Y777zDwYMH+fDDD9mwYQN33HFHh+W6cOFCduzYwbFjx9i9ezdz5szBy8uLESNGEBgYyK233srChQvJy8ujsLCQV199lcTEROuHsbPkeS673c769eu55ZZbHNa56eyf65kzZ9i/f79VLB47doz9+/dz/PhxDMNg3LhxvP/++2zcuJGioiLmzZtHWFgYqampAERFRZGSkkJWVhYFBQXs2rWLBQsWMHz4cGs4dsSIEfj4+PDHP/6RAwcOkJOTw+rVqx2GdsaNG8fWrVtZvnw5Bw8eJDs7m7179zJ27NgOybW2tpYXX3yRwsJCfv7zn2O3262f4YY/tPn5+axcuZL9+/dz9OhRPv74Y95++21uuukm6w+vq+R6qXzPnDnDn//8Z/Lz8zl27Bi5ubn8/ve/JyIigsGDBwPu89k2qKys5D//+U+TvV2d6bO91N+ajvwdPH78eNauXcv69espLi7mzTffpKqqqsXrDxqmaZpt8/aIJ7nQAn33338/I0eO5Pjx4/zv//4vBw4coKqqih49ejB06FAmT57sMJxRUlLCm2++yfbt2+nSpQu33HIL06ZNa7So3dtvv01xcbFTFhZ96aWX2LlzJ6dOnSI4OJikpCSmTJlizWdqWLzv008/pba2tsnF+zpDnufaunWrtT7NuQsVdvbPdfv27fz2t79ttP2WW27hgQcesBZQ/ec//0llZSVJSUn85Cc/cXgPysvLmT9/vsMim2lpaRdcZLNbt26MHTvWYWFKqF94ctGiRZSUlBAZGdnmC09eLNe7776bmTNnNnncb37zGwYMGEBhYSHz58/n4MGD1NTUEB4ezs0338z48eMd5gC5Qq6Xyjc9PZ05c+awb98+Kioq6N69O4MGDeJ73/uew8+pO3y2DzzwAAD//Oc/eeutt3j99dcbDSF3ps/2Un9roGN/B69Zs4YPPvgAm81GTEwM06dPb3EPnwovERERkQ6ioUYRERGRDqLCS0RERKSDqPASERER6SAqvEREREQ6iAovERERkQ6iwktERESkg6jwEhEREekgKrxEREREOogKLxEREZEOosJLREREpIOo8BIRERHpICq8RERERDrI/wdfiUFIxT8ozgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cust_plot = cust_groups[['total_views']].copy()\n", + "cust_plot = cust_plot.reset_index()\n", + "cust_plot.plot.kde(ind=[1000, 5000, 10000, 15000, 20000])\n", + "#cust_plot.plot(y=\"total_views\", x=\"customer_name\", figsize=(18,8))\n", + "plt.show()\n" + ] + }, { "cell_type": "code", "execution_count": 861,