## mako
<%page expression_filter="h"/>
<%inherit file="/main.html" />
<%!
from datetime import datetime
from django.urls import reverse
from django.utils.translation import ugettext as _
from mako import exceptions
from openedx.core.djangolib.markup import HTML, Text
%>
<%namespace name='static' file='../static_content.html'/>
## Override the default styles_version to use Bootstrap
<%! main_css = "css/bootstrap/lms-main.css" %>
<%
faqs = program['faq']
program_type = program['type'] if program['type'] else 'Program'
title = program['title']
courses = program['courses']
subtitle = program['subtitle']
overview = program['overview']
instructors = program['instructors']
job_outlook_items = program['job_outlook_items']
weeks_to_complete = program['weeks_to_complete']
full_program_price_format = '{0:.0f}' if program['full_program_price'].is_integer() else '{0:.2f}'
full_program_price = full_program_price_format.format(program['full_program_price'])
expected_learning_items = program['expected_learning_items']
min_hours_effort_per_week = program['min_hours_effort_per_week']
max_hours_effort_per_week = program['max_hours_effort_per_week']
## Start Endorsement
corporate_endorsement = program['corporate_endorsements'][0] if program['corporate_endorsements'] else {}
corporate_endorsement_name = corporate_endorsement.get('corporation_name')
corporate_endorsement_image = corporate_endorsement['image']['src'] if corporate_endorsement.get('image') else ''
endorsements = corporate_endorsement.get('individual_endorsements')
endorsement = endorsements[0] if endorsements else {}
endorsement_quote = endorsement.get('quote')
endorser = endorsement.get('endorser', {})
endorser_given_name = endorser.get('given_name') if endorser.get('given_name') else ''
endorser_family_name = endorser.get('family_name') if endorser.get('family_name') else ''
endorser_name = (endorser_given_name + ' ' + endorser_family_name).strip()
endorser_position = endorser.get('position') if endorser.get('position') else {}
endorser_title = endorser_position.get('title', '')
endorser_org = endorser_position.get('organization_name') or corporate_endorsement_name
%>
<%block name="js_extra">
%block>
<%block name="pagetitle">${program['title']}%block>
<%block name="marketing_hero">
<%
banner_image = program.get('banner_image', {}).get('large', {}).get('url', '')
authoring_organizations = program['authoring_organizations']
video_url = program['video'].get('src') if program['video'] else ''
faqs = program['faq']
courses = program['courses']
instructors = program['instructors']
full_program_price_format = '{0:.0f}' if program['full_program_price'].is_integer() else '{0:.2f}'
full_program_price = full_program_price_format.format(program['full_program_price'])
%>
${HTML(program['overview'])}
% if job_outlook_items:
${_('Job Outlook')}
% for item in job_outlook_items:
- ${item}
% endfor
% endif
% if endorsement:
${_('Real Career Impact')}
% if corporate_endorsement_image:
% endif
"${endorsement_quote}"
%endif
% if expected_learning_items:
${_('What You\'ll Learn')}
% for item in expected_learning_items:
- ${item}
% endfor
%endif
-
${_('Average Length')}
${Text(_('{weeks_to_complete} weeks per course')).format(
weeks_to_complete=weeks_to_complete
)}
-
${_('Effort')}
${Text(_('{min_hours_effort_per_week}-{max_hours_effort_per_week} hours per week, per course')).format(
max_hours_effort_per_week=max_hours_effort_per_week,
min_hours_effort_per_week=min_hours_effort_per_week
)}
-
${_('Number of Courses')}
${Text(_('{number_of_courses} courses in program')).format(
number_of_courses=len(courses)
)}
-
${_('Price (USD)')}
% if program.get('discount_data') and program['discount_data']['is_discounted']:
${Text(_('${oldPrice}')).format(
oldPrice=full_program_price_format.format(program['discount_data']['total_incl_tax_excl_discounts'])
)}
${Text(_('${newPrice}{htmlEnd} for entire program')).format(
newPrice=full_program_price,
htmlEnd=HTML('')
)}
${Text(_('You save ${discount_value} {currency}')).format(
discount_value=full_program_price_format.format(program['discount_data']['discount_value']),
currency=program['discount_data']['currency']
)}
% else:
${Text(_('${full_program_price} for entire program')).format(
full_program_price=full_program_price
)}
% endif
% if courses:
${_('Courses in the {}').format(
program_type
)}
% for course in courses:
<%
## The goal here is to get the `oldest course run that still has open enrollment`.
## We fall back on the newest course if none are available for enrollment.
sorted_course_runs = sorted(course['course_runs'], key=lambda run: run['start'])
open_course_runs = [run for run in sorted_course_runs if run['is_enrollment_open']]
course_run = open_course_runs[0] if open_course_runs else sorted_course_runs[-1]
course_img = course_run.get('image')
course_about_url = reverse('about_course', args=[course_run['key']])
course_purchase_url = course_run['upgrade_url'] if course_run['upgrade_url'] else course_about_url
%>
% if course_img:

% endif
${course_run['short_description']}
${Text(_('Starts on {}')).format(
datetime.strptime(course_run['start'], '%Y-%m-%dT%H:%M:%SZ').strftime('%B %-d, %Y')
)}
% if program.get('is_learner_eligible_for_one_click_purchase') != True:
% if course_run['is_enrollment_open'] and course_run['can_enroll'] and not course_run['is_course_ended']:
% else:
% endif
% endif
% endfor
% endif
% if instructors:
${_('Instructors')}
% for instructor in instructors:
<%
instructor_hash = hash(instructor['name'])
%>
${instructor['name']}
% if instructor.get('title'):
${instructor['title']}
% endif
% if instructor.get('organization'):
${instructor['organization']}
% endif
% if instructor.get('bio'):
${HTML(instructor['bio'])}
% endif
% endfor
% endif
% if faqs:
${_('Frequently Asked Questions')}
% for faq in faqs:
${faq['question']}
${HTML(faq['answer'])}
% endfor
% endif