diff --git a/AUTHORS b/AUTHORS index 944d143cbaaba82cf61cda268da14c63a06b5206..bae4f76f00e587b4a99d06beaaa2af43e3bdf3eb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -159,6 +159,7 @@ Tim Babych <tim.babych@gmail.com> Brandon DeRosier <btd@cheesekeg.com> Daniel Li <swli@edx.org> Daniel Friedman <dfriedman@edx.org> +Zia Fazal <zia.fazal@arbisoft.com> Asad Iqbal <aiqbal@edx.org> Peter Pinch <pdpinch@mit.edu> Muhammad Shoaib <mshoaib@edx.org> diff --git a/cms/djangoapps/models/settings/course_metadata.py b/cms/djangoapps/models/settings/course_metadata.py index 7eb5713daec9e6fe0654fa685c201c9d683f4fb7..f8ca9c534b3e73afcfef15040401cda80b7cd554 100644 --- a/cms/djangoapps/models/settings/course_metadata.py +++ b/cms/djangoapps/models/settings/course_metadata.py @@ -77,8 +77,8 @@ class CourseMetadata(object): filtered_list.append('facebook_url') # Do not show social sharing url field if the feature is disabled. - if (not settings.FEATURES.get('SOCIAL_SHARING_SETTINGS') or - not settings.FEATURES.get("SOCIAL_SHARING_SETTINGS").get("CUSTOM_COURSE_URLS")): + if (not hasattr(settings, 'SOCIAL_SHARING_SETTINGS') or + not getattr(settings, 'SOCIAL_SHARING_SETTINGS', {}).get("CUSTOM_COURSE_URLS")): filtered_list.append('social_sharing_url') # Do not show teams configuration if feature is disabled. diff --git a/cms/envs/aws.py b/cms/envs/aws.py index 84d8947fbf8e3a5993d0feceade63ea866b55e26..9c0e7e168286d393734e72e189e26882a42c2732 100644 --- a/cms/envs/aws.py +++ b/cms/envs/aws.py @@ -146,6 +146,9 @@ SESSION_COOKIE_HTTPONLY = ENV_TOKENS.get('SESSION_COOKIE_HTTPONLY', True) SESSION_ENGINE = ENV_TOKENS.get('SESSION_ENGINE', SESSION_ENGINE) SESSION_COOKIE_SECURE = ENV_TOKENS.get('SESSION_COOKIE_SECURE', SESSION_COOKIE_SECURE) +# social sharing settings +SOCIAL_SHARING_SETTINGS = ENV_TOKENS.get('SOCIAL_SHARING_SETTINGS', SOCIAL_SHARING_SETTINGS) + # allow for environments to specify what cookie name our login subsystem should use # this is to fix a bug regarding simultaneous logins between edx.org and edge.edx.org which can # happen with some browsers (e.g. Firefox) diff --git a/cms/envs/bok_choy.env.json b/cms/envs/bok_choy.env.json index 981d4deca980fec487fe61930c8a9557a6678c30..ae7b67e0147ab8b8a2a6acfe6349cbb302a2e09a 100644 --- a/cms/envs/bok_choy.env.json +++ b/cms/envs/bok_choy.env.json @@ -62,13 +62,13 @@ "DEFAULT_FEEDBACK_EMAIL": "feedback@example.com", "DEFAULT_FROM_EMAIL": "registration@example.com", "EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend", + "SOCIAL_SHARING_SETTINGS": { + "CUSTOM_COURSE_URLS": true + }, "FEATURES": { "AUTH_USE_OPENID_PROVIDER": true, "CERTIFICATES_ENABLED": true, "CERTIFICATES_HTML_VIEW": true, - "SOCIAL_SHARING_SETTINGS": { - "CUSTOM_COURSE_URLS": true - }, "ENABLE_DISCUSSION_SERVICE": true, "ENABLE_S3_GRADE_DOWNLOADS": true, "ENTRANCE_EXAMS": true, diff --git a/cms/envs/common.py b/cms/envs/common.py index f1d34953a14a7f0e2c9d067e872c6194922a69f4..34d20e5632180dcd432712fdf4e8da23cb8e4405 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -161,12 +161,6 @@ FEATURES = { # Certificates Web/HTML Views 'CERTIFICATES_HTML_VIEW': False, - # Social Media Sharing on Student Dashboard - 'SOCIAL_SHARING_SETTINGS': { - # Note: Ensure 'CUSTOM_COURSE_URLS' has a matching value in lms/envs/common.py - 'CUSTOM_COURSE_URLS': False - }, - # Teams feature 'ENABLE_TEAMS': True, @@ -191,6 +185,11 @@ FEATURES = { ENABLE_JASMINE = False +############################# SOCIAL MEDIA SHARING ############################# +SOCIAL_SHARING_SETTINGS = { + # Note: Ensure 'CUSTOM_COURSE_URLS' has a matching value in lms/envs/common.py + 'CUSTOM_COURSE_URLS': False +} ############################# SET PATH INFORMATION ############################# PROJECT_ROOT = path(__file__).abspath().dirname().dirname() # /edx-platform/cms diff --git a/lms/djangoapps/certificates/views/webview.py b/lms/djangoapps/certificates/views/webview.py index 15f339c155626a97794f78d8d41c2750efa6d658..2f33b59bccf05bd7455e81a2bc80fcb2f5da0c5b 100644 --- a/lms/djangoapps/certificates/views/webview.py +++ b/lms/djangoapps/certificates/views/webview.py @@ -110,7 +110,7 @@ def _update_certificate_context(context, course, user, user_certificate): course_title_from_cert = context['certificate_data'].get('course_title', '') accomplishment_copy_course_name = course_title_from_cert if course_title_from_cert else course.display_name context['accomplishment_copy_course_name'] = accomplishment_copy_course_name - share_settings = settings.FEATURES.get('SOCIAL_SHARING_SETTINGS', {}) + share_settings = getattr(settings, 'SOCIAL_SHARING_SETTINGS', {}) context['facebook_share_enabled'] = share_settings.get('CERTIFICATE_FACEBOOK', False) context['facebook_app_id'] = getattr(settings, "FACEBOOK_APP_ID", None) context['facebook_share_text'] = share_settings.get( diff --git a/lms/envs/aws.py b/lms/envs/aws.py index 9399a79e6cfc561476af98132838d92665605d31..818ca5340d9fe3284f3713db38e40895d4d9cbc8 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -146,6 +146,8 @@ PLATFORM_NAME = ENV_TOKENS.get('PLATFORM_NAME', PLATFORM_NAME) PLATFORM_TWITTER_ACCOUNT = ENV_TOKENS.get('PLATFORM_TWITTER_ACCOUNT', PLATFORM_TWITTER_ACCOUNT) PLATFORM_FACEBOOK_ACCOUNT = ENV_TOKENS.get('PLATFORM_FACEBOOK_ACCOUNT', PLATFORM_FACEBOOK_ACCOUNT) +SOCIAL_SHARING_SETTINGS = ENV_TOKENS.get('SOCIAL_SHARING_SETTINGS', SOCIAL_SHARING_SETTINGS) + # Social media links for the page footer SOCIAL_MEDIA_FOOTER_URLS = ENV_TOKENS.get('SOCIAL_MEDIA_FOOTER_URLS', SOCIAL_MEDIA_FOOTER_URLS) diff --git a/lms/envs/bok_choy.env.json b/lms/envs/bok_choy.env.json index c7e5cdd26dfae16f98c042dec2d1b7e3495e9482..5c14be19bc86d57a5ecfe83752b088ceb21834fa 100644 --- a/lms/envs/bok_choy.env.json +++ b/lms/envs/bok_choy.env.json @@ -62,20 +62,20 @@ "DEFAULT_FEEDBACK_EMAIL": "feedback@example.com", "DEFAULT_FROM_EMAIL": "registration@example.com", "EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend", + "SOCIAL_SHARING_SETTINGS": { + "CUSTOM_COURSE_URLS": true, + "DASHBOARD_FACEBOOK": true, + "CERTIFICATE_FACEBOOK": true, + "CERTIFICATE_FACEBOOK_TEXT": "Testing facebook feature:", + "DASHBOARD_TWITTER": true, + "DASHBOARD_TWITTER_TEXT": "Testing feature:" + }, "FEATURES": { "AUTH_USE_OPENID_PROVIDER": true, "CERTIFICATES_ENABLED": true, "CERTIFICATES_HTML_VIEW": true, "CERTIFICATES_INSTRUCTOR_GENERATION": true, "MULTIPLE_ENROLLMENT_ROLES": true, - "SOCIAL_SHARING_SETTINGS": { - "CUSTOM_COURSE_URLS": true, - "DASHBOARD_FACEBOOK": true, - "CERTIFICATE_FACEBOOK": true, - "CERTIFICATE_FACEBOOK_TEXT": "Testing facebook feature:", - "DASHBOARD_TWITTER": true, - "DASHBOARD_TWITTER_TEXT": "Testing feature:" - }, "ENABLE_PAYMENT_FAKE": true, "ENABLE_VERIFIED_CERTIFICATES": true, "ENABLE_DISCUSSION_SERVICE": true, diff --git a/lms/envs/common.py b/lms/envs/common.py index 41924c2217afda8c9db7230704c61185b318be40..25c970d583c803c475564dbf71697fd16bf0e535 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -379,19 +379,6 @@ FEATURES = { # Batch-Generated Certificates from Instructor Dashboard 'CERTIFICATES_INSTRUCTOR_GENERATION': False, - # Social Media Sharing on Student Dashboard - 'SOCIAL_SHARING_SETTINGS': { - # Note: Ensure 'CUSTOM_COURSE_URLS' has a matching value in cms/envs/common.py - 'CUSTOM_COURSE_URLS': False, - 'DASHBOARD_FACEBOOK': False, - 'CERTIFICATE_FACEBOOK': False, - 'CERTIFICATE_FACEBOOK_TEXT': None, - 'CERTIFICATE_TWITTER': False, - 'CERTIFICATE_TWITTER_TEXT': None, - 'DASHBOARD_TWITTER': False, - 'DASHBOARD_TWITTER_TEXT': None - }, - # Course discovery feature 'ENABLE_COURSE_DISCOVERY': False, @@ -1999,6 +1986,20 @@ MKTG_URL_LINK_MAP = { 'WHAT_IS_VERIFIED_CERT': 'verified-certificate', } +############################# SOCIAL MEDIA SHARING ############################# +# Social Media Sharing on Student Dashboard +SOCIAL_SHARING_SETTINGS = { + # Note: Ensure 'CUSTOM_COURSE_URLS' has a matching value in cms/envs/common.py + 'CUSTOM_COURSE_URLS': False, + 'DASHBOARD_FACEBOOK': False, + 'CERTIFICATE_FACEBOOK': False, + 'CERTIFICATE_FACEBOOK_TEXT': None, + 'CERTIFICATE_TWITTER': False, + 'CERTIFICATE_TWITTER_TEXT': None, + 'DASHBOARD_TWITTER': False, + 'DASHBOARD_TWITTER_TEXT': None +} + ################# Social Media Footer Links ####################### # The names list controls the order of social media # links in the footer. diff --git a/lms/templates/dashboard.html b/lms/templates/dashboard.html index 956ede01d9086b5498fd0e12a3c746ddba394e0e..2dac645f01f8014e678e25ed3a652ea8177614d6 100644 --- a/lms/templates/dashboard.html +++ b/lms/templates/dashboard.html @@ -82,7 +82,7 @@ import json % if len(course_enrollments) > 0: <ul class="listing-courses"> - <% share_settings = settings.FEATURES.get('SOCIAL_SHARING_SETTINGS', {}) %> + <% share_settings = getattr(settings, 'SOCIAL_SHARING_SETTINGS', {}) %> % for dashboard_index, enrollment in enumerate(course_enrollments): <% show_courseware_link = (enrollment.course_id in show_courseware_links_for) %> <% cert_status = cert_statuses.get(enrollment.course_id) %>