From 14c14b07db2859d4dc62f3fe8927eefcf53dea0f Mon Sep 17 00:00:00 2001
From: Zia Fazal <zia.fazal@arbisoft.com>
Date: Wed, 16 Sep 2015 16:03:40 +0500
Subject: [PATCH] moved SOCIAL_SHARING_SETTINGS out of FEATURES

fixed object has no attribute 'get'

fixed 'LazySettings' object has no attribute

add social settings to cms/env/aws
---
 AUTHORS                                       |  1 +
 .../models/settings/course_metadata.py        |  4 +--
 cms/envs/aws.py                               |  3 +++
 cms/envs/bok_choy.env.json                    |  6 ++---
 cms/envs/common.py                            | 11 ++++----
 lms/djangoapps/certificates/views/webview.py  |  2 +-
 lms/envs/aws.py                               |  2 ++
 lms/envs/bok_choy.env.json                    | 16 +++++------
 lms/envs/common.py                            | 27 ++++++++++---------
 lms/templates/dashboard.html                  |  2 +-
 10 files changed, 40 insertions(+), 34 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index 944d143cbaa..bae4f76f00e 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 7eb5713daec..f8ca9c534b3 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 84d8947fbf8..9c0e7e16828 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 981d4deca98..ae7b67e0147 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 f1d34953a14..34d20e56321 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 15f339c1556..2f33b59bccf 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 9399a79e6cf..818ca5340d9 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 c7e5cdd26df..5c14be19bc8 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 41924c2217a..25c970d583c 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 956ede01d90..2dac645f01f 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) %>
-- 
GitLab