diff --git a/data_fixtures/migrations/0002_unit_page_copy_updates.py b/data_fixtures/migrations/0002_unit_page_copy_updates.py new file mode 100644 index 0000000000..d8d3b29523 --- /dev/null +++ b/data_fixtures/migrations/0002_unit_page_copy_updates.py @@ -0,0 +1,131 @@ +# Generated by Django 4.2.13 on 2024-07-08 17:08 + +from django.db import migrations + +fixtures = [ + { + "name": "ocw", + "offeror_configuration": { + "audience": ["Students", "Professionals", "Educators", "Lifelong Learners"], + "value_prop": ( + "For millions of learners and educators around the " + "world, OpenCourseWare shares free open educational resources from " + "across the entire MIT curriculum. With no " + "sign-up needed, thousands of downloadable materials, " + "and convenient online access, you're " + "empowered for self-paced learning and adapting these materials in " + "the ways that suit you best." + ), + }, + "channel_configuration": { + "sub_heading": ( + "For millions of learners and educators around " + "the world, OpenCourseWare shares free open educational resources" + " from across the entire MIT curriculum. With no sign-up needed, " + "thousands of downloadable materials, and convenient online access, " + "you're empowered for self-paced learning and adapting these " + "materials in the ways that suit you best." + ), + }, + }, + { + "name": "mitx", + "channel_configuration": {}, + "offeror_configuration": { + "audience": ["Lifelong Learners", "Students", "Professionals"], + "certifications": ["Certificate of Completion", "MicroMasters Credential"], + }, + }, + { + "name": "mitpe", + "offeror_configuration": { + "audience": [ + "Engineering Professionals", + "Technical Professionals", + "Scientists and Researchers", + "Senior Executives", + ], + "formats": ["Online", "In-Person", "Hybrid"], + "certifications": ["Certificate of Completion", "Professional Certificate"], + "content_types": ["Professional"], + "value_prop": ( + "MIT Professional Education is a leader in " + "technology and engineering education" + " for working professionals pursuing career advancement, and " + "for organizations seeking to meet modern-day challenges " + "by expanding the knowledge and skills of their employees. " + "Courses are delivered in a range of formats—in-person " + "(on-campus and live virtual), online, and through hybrid " + "approaches—to meet the needs of today's learners." + ), + }, + "channel_configuration": { + "heading": ( + "Join a powerful network of innovators and master " + "skills the global market needs in years to come." + ), + "sub_heading": ( + "MIT Professional Education is a leader in technology and engineering " + "education for working professionals pursuing career " + "advancement, and for organizations seeking to meet modern-day " + "challenges by expanding the knowledge and skills of their employees. " + "Courses are delivered in a range of formats—in-person (on-campus and" + " live virtual), online, and through hybrid approaches—to " + "meet the needs of today's learners." + ), + }, + }, + { + "name": "see", + "offeror_configuration": { + "audience": [ + "Business Professionals", + "Senior Executives", + "Entrepreneurs", + "Intrapreneurs", + ], + "formats": ["Online", "In-Person", "Hybrid"], + "fee": ["Paid"], + "certifications": ["Certificate of Completion", "Professional Certificate"], + }, + "channel_configuration": {}, + }, + { + "name": "xpro", + "offeror_configuration": { + "formats": ["Online", "In Person", "Hybrid"], + "certifications": ["Professional Certificate"], + }, + "channel_configuration": {}, + }, +] + + +def update_copy(apps, schema_editor): + Channel = apps.get_model("channels", "Channel") + LearningResourceOfferor = apps.get_model( + "learning_resources", "LearningResourceOfferor" + ) + for fixture in fixtures: + channel_configuration_updates = fixture["channel_configuration"] + offeror_configuration_updates = fixture["offeror_configuration"] + channel = Channel.objects.get(name=fixture["name"]) + if Channel.objects.filter(name=fixture["name"]).exists(): + for key, val in channel_configuration_updates.items(): + channel.configuration[key] = val + channel.save() + if LearningResourceOfferor.objects.filter(code=fixture["name"]).exists(): + offeror = LearningResourceOfferor.objects.get(code=fixture["name"]) + for key, val in offeror_configuration_updates.items(): + setattr(offeror, key, val) + offeror.save() + + +class Migration(migrations.Migration): + dependencies = [ + ("data_fixtures", "0001_add_testimonial_data"), + ] + + operations = [ + migrations.RunPython(update_copy, migrations.RunPython.noop), + ] diff --git a/frontends/mit-open/src/page-components/ChannelDetails/ChannelDetails.tsx b/frontends/mit-open/src/page-components/ChannelDetails/ChannelDetails.tsx index 9cbab94378..27dee8fa8e 100644 --- a/frontends/mit-open/src/page-components/ChannelDetails/ChannelDetails.tsx +++ b/frontends/mit-open/src/page-components/ChannelDetails/ChannelDetails.tsx @@ -88,9 +88,11 @@ const getFacetManifest = (channelType: ChannelTypeEnum) => { { name: "more_information", title: "More Information", + labelFunction: (key: string, channelTitle: string) => ( - - {channelTitle} website + // eslint-disable react/jsx-no-target-blank + + {channelTitle} Website ), order: 1, @@ -107,7 +109,7 @@ const getFacetManifest = (channelType: ChannelTypeEnum) => { }, { name: "certifications", - title: "Certificate", + title: "Certificates", order: 0, }, { diff --git a/frontends/mit-open/src/pages/UnitsListingPage/UnitsListingPage.tsx b/frontends/mit-open/src/pages/UnitsListingPage/UnitsListingPage.tsx index 2374dbdd58..b6b0e556ed 100644 --- a/frontends/mit-open/src/pages/UnitsListingPage/UnitsListingPage.tsx +++ b/frontends/mit-open/src/pages/UnitsListingPage/UnitsListingPage.tsx @@ -390,7 +390,7 @@ const UnitsListingPage: React.FC = () => { icon: , title: "Academic Units", description: - "MIT's Academic courses, programs and materials mirror MIT curriculum and residential programs, making these available to a global audience. Approved by faculty committees, academic content furnishes a comprehensive foundation of knowledge, skills, and abilities for students pursuing their academic objectives. Renowned for their rigor and challenge, MIT's academic offerings deliver an experience on par with the campus environment.", + "MIT's Academic courses, programs, and materials mirror MIT curriculum and residential programs, making these available to a global audience. Approved by faculty committees, Academic content furnishes a comprehensive foundation of knowledge, skills, and abilities for students pursuing their academic objectives. Renowned for their rigor and challenge, MIT's Academic offerings deliver an experience on par with the campus environment.", units: academicUnits, }, { @@ -415,7 +415,7 @@ const UnitsListingPage: React.FC = () => { /> } title="Academic & Professional Learning" - description="Extending MIT's knowledge to the world" + description="Non-degree learning resources tailored to the needs of students and working professionals." backgroundUrl={UNITS_BANNER_IMAGE} /> @@ -426,7 +426,10 @@ const UnitsListingPage: React.FC = () => { MIT is dedicated to advancing knowledge beyond students enrolled in MIT's campus programs. Several units within MIT offer educational opportunities accessible to learners worldwide, - catering to a diverse range of needs. + catering to a diverse range of needs. There are two types of + non-degree learning content: Academic and Professional. Each + unit and offering is tagged by content type to help learners + choose courses and programs aligned with their learning goals.