From 9ee15bf0075662776bef9279642a2291b1fd05c7 Mon Sep 17 00:00:00 2001 From: Stephen Sanchez Date: Fri, 15 Aug 2014 15:16:22 +0000 Subject: [PATCH] Updating the footer for edx.org and open edx. Move the open edx logo inside the div Adding a bunch of placeholder views. indenting. Making some styles work against LMS sass. Adding back the old edx footer and associated icons, with a feature flag. --- common/djangoapps/student/views.py | 4 - .../third_party_auth/tests/specs/base.py | 4 +- .../courseware/features/homepage.feature | 2 +- .../courseware/features/homepage.py | 8 +- .../courseware/tests/test_footer.py | 10 +- .../dashboard/tests/test_sysadmin.py | 3 +- .../shoppingcart/tests/test_views.py | 4 +- lms/envs/common.py | 15 +- lms/static/images/footer-seal.png | Bin 0 -> 53326 bytes lms/static/sass/base/_variables.scss | 9 + lms/static/sass/shared/_footer.scss | 302 ++++++++++++++++++ lms/templates/edx_footer.html | 149 ++++----- lms/templates/footer.html | 4 +- lms/templates/main.html | 5 +- lms/templates/navigation.html | 2 +- lms/templates/original_edx_footer.html | 96 ++++++ lms/templates/static_templates/blog.html | 9 + lms/templates/static_templates/donate.html | 9 + lms/templates/static_templates/news.html | 10 + lms/urls.py | 21 +- 20 files changed, 558 insertions(+), 108 deletions(-) create mode 100644 lms/static/images/footer-seal.png create mode 100644 lms/templates/original_edx_footer.html create mode 100644 lms/templates/static_templates/blog.html create mode 100644 lms/templates/static_templates/donate.html create mode 100644 lms/templates/static_templates/news.html diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index a7a389359e..effbbe11e4 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -148,10 +148,6 @@ def embargo(_request): return render_to_response("static_templates/embargo.html") -def press(request): - return render_to_response('static_templates/press.html') - - def process_survey_link(survey_link, user): """ If {UNIQUE_ID} appears in the link, replace it with a unique id for the user. diff --git a/common/djangoapps/third_party_auth/tests/specs/base.py b/common/djangoapps/third_party_auth/tests/specs/base.py index 3135032975..4eb40fff3d 100644 --- a/common/djangoapps/third_party_auth/tests/specs/base.py +++ b/common/djangoapps/third_party_auth/tests/specs/base.py @@ -123,8 +123,8 @@ class IntegrationTest(testutil.TestCase, test.TestCase): assert_duplicate_presence_fn = self.assertIn if duplicate else self.assertNotIn self.assertEqual(200, response.status_code) - self.assertIn(user.email, response.content) - self.assertIn(user.username, response.content) + self.assertIn(user.email, response.content.decode('UTF-8')) + self.assertIn(user.username, response.content.decode('UTF-8')) assert_duplicate_presence_fn(duplicate_account_error_needle, response.content) if linked is not None: diff --git a/lms/djangoapps/courseware/features/homepage.feature b/lms/djangoapps/courseware/features/homepage.feature index c4df77842d..c66d06694a 100644 --- a/lms/djangoapps/courseware/features/homepage.feature +++ b/lms/djangoapps/courseware/features/homepage.feature @@ -20,4 +20,4 @@ Feature: LMS.Homepage for web users | jobs | Jobs | | faq | FAQ | | contact | Contact| - | press | Press | + | press | News | diff --git a/lms/djangoapps/courseware/features/homepage.py b/lms/djangoapps/courseware/features/homepage.py index fc5a249cba..3c17ed4f3c 100644 --- a/lms/djangoapps/courseware/features/homepage.py +++ b/lms/djangoapps/courseware/features/homepage.py @@ -2,7 +2,7 @@ # pylint: disable=W0621 from lettuce import world, step -from nose.tools import assert_in, assert_equals # pylint: disable=E0611 +from nose.tools import assert_equals, assert_greater # pylint: disable=E0611 @step(u'I should see the following links and ids') @@ -11,5 +11,9 @@ def should_see_a_link_called(step): link_id = link_id_pair['id'] text = link_id_pair['Link'] link = world.browser.find_by_id(link_id) - assert len(link) > 0 + assert_greater( + len(link), + 0, + "Link length is less than 1. ID: {id} Text: {text}".format(id=link_id, text=text) + ) assert_equals(link.text, text) diff --git a/lms/djangoapps/courseware/tests/test_footer.py b/lms/djangoapps/courseware/tests/test_footer.py index 25d7d2f453..1d1a705f8d 100644 --- a/lms/djangoapps/courseware/tests/test_footer.py +++ b/lms/djangoapps/courseware/tests/test_footer.py @@ -18,8 +18,9 @@ class TestFooter(TestCase): resp = self.client.get('/') self.assertEqual(resp.status_code, 200) - # assert that footer template has been properly overriden on homepage - self.assertContains(resp, 'EdX is a non-profit created by founding partners Harvard and MIT') + # assert that footer template has been properly overridden on homepage + # test the top-level element class; which is less likely to change than copy. + self.assertContains(resp, 'edx-footer') @override_settings(SITE_NAME="example.com") def test_openedx_footer(self): @@ -31,5 +32,6 @@ class TestFooter(TestCase): resp = self.client.get('/') self.assertEqual(resp.status_code, 200) - # assert that footer template has been properly overriden on homepage - self.assertContains(resp, 'Powered by Open edX') + # assert that footer template has been properly overridden on homepage + # test the top-level element class; which is less likely to change than copy. + self.assertContains(resp, 'wrapper-footer') diff --git a/lms/djangoapps/dashboard/tests/test_sysadmin.py b/lms/djangoapps/dashboard/tests/test_sysadmin.py index 091f452553..f4c802b059 100644 --- a/lms/djangoapps/dashboard/tests/test_sysadmin.py +++ b/lms/djangoapps/dashboard/tests/test_sysadmin.py @@ -538,8 +538,7 @@ class TestSysAdminMongoCourseImport(SysadminBaseTestCase): with (override_settings(TIME_ZONE=timezone)): date_text = get_time_display(date, tz_format, settings.TIME_ZONE) response = self.client.get(reverse('gitlogs')) - - self.assertIn(date_text, response.content) + self.assertIn(date_text, response.content.decode('UTF-8')) self._rm_edx4edx() diff --git a/lms/djangoapps/shoppingcart/tests/test_views.py b/lms/djangoapps/shoppingcart/tests/test_views.py index 7f63fe6b71..cfb6205e71 100644 --- a/lms/djangoapps/shoppingcart/tests/test_views.py +++ b/lms/djangoapps/shoppingcart/tests/test_views.py @@ -758,7 +758,7 @@ class CSVReportViewsTest(ModuleStoreTestCase): self.assertEqual(template, 'shoppingcart/download_report.html') self.assertFalse(context['total_count_error']) self.assertFalse(context['date_fmt_error']) - self.assertIn(_("Download CSV Reports"), response.content) + self.assertIn(_("Download CSV Reports"), response.content.decode('UTF-8')) @patch('shoppingcart.views.render_to_response', render_mock) def test_report_csv_bad_date(self): @@ -771,7 +771,7 @@ class CSVReportViewsTest(ModuleStoreTestCase): self.assertFalse(context['total_count_error']) self.assertTrue(context['date_fmt_error']) self.assertIn(_("There was an error in your date input. It should be formatted as YYYY-MM-DD"), - response.content) + response.content.decode('UTF-8')) CORRECT_CSV_NO_DATE_ITEMIZED_PURCHASE = ",1,purchased,1,40,40,usd,Registration for Course: Robot Super Course," diff --git a/lms/envs/common.py b/lms/envs/common.py index e22692d2b1..0ca6bd2ffb 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -41,8 +41,14 @@ from lms.lib.xblock.mixin import LmsBlockMixin # The display name of the platform to be used in templates/emails/etc. PLATFORM_NAME = "Your Platform Name Here" CC_MERCHANT_NAME = PLATFORM_NAME -PLATFORM_TWITTER_ACCOUNT = "@YourPlatformTwitterAccount" + PLATFORM_FACEBOOK_ACCOUNT = "http://www.facebook.com/YourPlatformFacebookAccount" +PLATFORM_TWITTER_ACCOUNT = "@YourPlatformTwitterAccount" +PLATFORM_TWITTER_URL = "https://twitter.com/YourPlatformTwitterAccount" +PLATFORM_MEETUP_URL = "http://www.meetup.com/YourMeetup" +PLATFORM_LINKEDIN_URL = "http://www.linkedin.com/company/YourPlatform" +PLATFORM_GOOGLE_PLUS_URL = "https://plus.google.com/YourGooglePlusAccount/" + COURSEWARE_ENABLED = True ENABLE_JASMINE = False @@ -264,6 +270,10 @@ FEATURES = { # Default to false here b/c dev environments won't have the api, will override in aws.py 'ENABLE_ANALYTICS_ACTIVE_COUNT': False, + # TODO: ECOM-136 remove this feature flag when new styles are available on main site.for + # Enable the new edX footer to be rendered. Defaults to false. + 'ENABLE_NEW_EDX_FOOTER': False, + # TODO: ECOM-136 # Enables the new navigation template and styles. This should be enabled # when the styles appropriately match the edX.org website. @@ -1381,7 +1391,10 @@ MKTG_URL_LINK_MAP = { 'HONOR': 'honor', 'PRIVACY': 'privacy_edx', 'JOBS': 'jobs', + 'NEWS': 'news', 'PRESS': 'press', + 'BLOG': 'edx-blog', + 'DONATE': 'donate', # Verified Certificates 'WHAT_IS_VERIFIED_CERT': 'verified-certificate', diff --git a/lms/static/images/footer-seal.png b/lms/static/images/footer-seal.png new file mode 100644 index 0000000000000000000000000000000000000000..7a5544a4cbf01499b6376c57813ec28dfc65f9f8 GIT binary patch literal 53326 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 literal 0 HcmV?d00001 diff --git a/lms/static/sass/base/_variables.scss b/lms/static/sass/base/_variables.scss index ad610a5135..870162e6ed 100644 --- a/lms/static/sass/base/_variables.scss +++ b/lms/static/sass/base/_variables.scss @@ -12,6 +12,15 @@ $fg-max-columns: 12; $fg-max-width: 1400px; $fg-min-width: 810px; +// Card Sizes +// breakpoints for course cards +$bp-xl-min: 1180px; +$bp-l-min: 980px; +$bp-m-min: 768px; +$bp-s-min: 320px; +$bp-s-max: 320px; +$bp-m-max: 768px; + // ==================== // FONTS diff --git a/lms/static/sass/shared/_footer.scss b/lms/static/sass/shared/_footer.scss index 49428868a8..b03f6eee38 100644 --- a/lms/static/sass/shared/_footer.scss +++ b/lms/static/sass/shared/_footer.scss @@ -1,3 +1,305 @@ +//--------------------------------- +// edX.org specific footer styles. +//--------------------------------- + +.region-footer { + border: 1px solid #f1f1f1; + padding-top: 16px; + background: none; + background-color: #fcfcfc; + .container { + background: none !important; + max-width: 1180px !important; + padding: 15px 20px; + width: calc(100% - 40px) !important; + } +} +.region-footer-columns { + padding: 0!important; + background: none; + border: none; + + > .region-container-inner { + width: 100%; + margin: auto; + border: none; + background: none; + } + + .region-footer-first { + width: 100% ; + float: none ; + + .region-inner { + padding-right: 10px; + } + + nav { + margin-bottom: 1em; + } + } + h2{ + color: #3f4041; + font-size: 13px; + font-weight: 600; + border-bottom: none; + } + ul.menu{ + padding: 0px; + margin-top: 1em; + li{ + list-style: none none; + color: #8a8c8f; + font-size: 14px; + float: none !important; + padding-top: 3px !important; + span{font-size: 0px; color: #fcfcfc;} + a{ + font-size: 14px; + color: #009ee7; + font-family: "Open Sans",Arial,Helvetica,sans-serif; + line-height: 24px; + span{font-size: 14px; font-weight: semibold;} + &.edx-bold{font-weight: 600;} + i{ + font-size: 24px; + width: 25px; + display: inline-block; + margin-right: 10px; + font-family: FontAwesome; + } + } + } + } + ul.menu li a.fa{ + line-height: 42px; + } + p.copyright{ + color: #8a8c8f !important; + } + + .region-footer-second { + width: 100% ; + float: none ; + nav { + margin-bottom: 1em; + width: 100%; + float: none; + padding-right: 0px; + padding-left: 0px; + border-left: none; + border-right: none; + margin-top: 30px; + } + .nav{ + clear: none; + } + + section.block-menu-social{ + width: 100%; + padding: 0px; + margin-top: 30px; + } + } + + .block-disclosure { + p{ + font-size: 14px; + font-weight: normal; + line-height: 21px; + color: #3d3e3f; + padding-right: 20px; + img{ + display: block; + padding: 15px 0px; + } + + } + + } + + .block-menu-business a { + color: #565656; + + &:hover { + color: #2F73BC; + } + } + + .block-menu-social { + a { + border: 0; + } + + ul.menu li { + margin: 0; + padding: 0; + float: right; + + .menu_icon { + display: block; + background-position: center top !important; + overflow: hidden; + text-indent: -9999px; + width: 45px; + margin: 0; + padding: 0 !important; + } + } + + li { + margin: 0; + padding: 0; + float: right; + } + } + + .block-menu-supplement { + + ul.menu li { + margin: 0; + padding: 0; + float: right; + + a:hover { + border-bottom: 1px dotted #2F73BC; + } + + span.separator { + padding: 0 10px; + } + } + + .block-menu-supplement li { + margin: 0; + padding: 0; + float: right; + + a:hover { + border-bottom: 1px dotted #2F73BC; + } + + span.separator { + padding: 0 10px; + } + } + } +} + +/* + * Smarthphone Portrait + */ + +@media only screen and ( min-width: $bp-s-min ) { + .region-footer { + background: none; + background-color: #fcfcfc; + } + .region-footer-columns { + .region-footer-first { + width: 100% ; + float: none ; + } + .region-footer-second { + width: 100% ; + float: none ; + nav{ + width: 100%; + padding-left: 0px; + padding-right: 0px; + border-left: none; + border-right: none; + margin-top: 30px; + } + section.block-menu-social{ + width: 100%; + padding: 0px; + margin-top: 30px; + } + } + ul.menu li a.fa{ + line-height: 42px; + } + } +} + + +/* + * Smartphone Landscape and up + */ +@media only screen and ( min-width: $bp-m-min ) { + .region-footer { + background: #fcfcfc url("../images/footer-seal.png") -310px 20px no-repeat; + } + .region-footer-columns { + .region-footer-first { + width: 50% ; + float: left ; + } + .region-footer-second { + width: 50% ; + float: left ; + nav{ + width: 43%; + padding-right: 20px; + padding-left: 25px; + border-left: 1px solid #e6e6e6; + border-right: 1px solid #e6e6e6; + margin-top: 15px; + float: left; + } + section.block-menu-social{ + width: 33%; + padding: 0px 15px 15px 20px; + margin-top: 15px; + float: left !important; + } + } + } +} + + +/* + * Tablet and up + */ +@media only screen and ( min-width: $bp-l-min ) { + .region-footer-columns { + .region-footer-second { + nav{ + width: 45%; + } + section.block-menu-social{ + width: 35%; + } + } + ul.menu li a.fa{ + line-height: 36px; + } + } +} + + +/* + * Desktops/laptops and up + */ +@media only screen and ( min-width: $bp-xl-min ) { + > .region-container-inner{margin:auto !important;} + .region-footer-columns { + .region-footer-second { + nav{ + width: 43%; + } + section.block-menu-social{ + width: 42%; + } + } + } +} + +//----------------------------------------- +// Open Source edX Footer Styling +//----------------------------------------- + .wrapper-footer { box-shadow: 0 -1px 5px 0 rgba(0,0,0, 0.1); border-top: 1px solid tint($m-gray,50%); diff --git a/lms/templates/edx_footer.html b/lms/templates/edx_footer.html index 606c689f5c..9ccbadf8d0 100644 --- a/lms/templates/edx_footer.html +++ b/lms/templates/edx_footer.html @@ -3,89 +3,78 @@ <%! from django.utils.translation import ugettext as _ %> <%namespace name='static' file='static_content.html'/> - + + + diff --git a/lms/templates/footer.html b/lms/templates/footer.html index 8f8391266a..4f32bb282d 100644 --- a/lms/templates/footer.html +++ b/lms/templates/footer.html @@ -20,8 +20,8 @@