diff --git a/cms/djangoapps/contentstore/tests/test_course_settings.py b/cms/djangoapps/contentstore/tests/test_course_settings.py index 99740573cc..7170adff52 100644 --- a/cms/djangoapps/contentstore/tests/test_course_settings.py +++ b/cms/djangoapps/contentstore/tests/test_course_settings.py @@ -299,8 +299,6 @@ class CourseDetailsViewTest(CourseTestCase, MilestonesTestCaseMixin): self.assertContains(response, "Enrollment Start Date") self.assertContains(response, "Enrollment End Date") - self.assertContains(response, "Introducing Your Course") - self.assertContains(response, "Course Card Image") self.assertContains(response, "Course Short Description") self.assertNotContains(response, "Course About Sidebar HTML") self.assertNotContains(response, "Course Title") diff --git a/cms/djangoapps/contentstore/views/course.py b/cms/djangoapps/contentstore/views/course.py index 21924ccc8c..c278cb9704 100644 --- a/cms/djangoapps/contentstore/views/course.py +++ b/cms/djangoapps/contentstore/views/course.py @@ -1305,11 +1305,18 @@ def advanced_settings_handler(request, course_key_string): with modulestore().bulk_operations(course_key): course_module = get_course_and_check_access(course_key, request.user) if 'text/html' in request.META.get('HTTP_ACCEPT', '') and request.method == 'GET': + publisher_enabled = configuration_helpers.get_value_for_org( + course_module.location.org, + 'ENABLE_PUBLISHER', + settings.FEATURES.get('ENABLE_PUBLISHER', False) + ) return render_to_response('settings_advanced.html', { 'context_course': course_module, 'advanced_dict': CourseMetadata.fetch(course_module), - 'advanced_settings_url': reverse_course_url('advanced_settings_handler', course_key) + 'advanced_settings_url': reverse_course_url('advanced_settings_handler', course_key), + 'publisher_enabled': publisher_enabled, + }) elif 'application/json' in request.META.get('HTTP_ACCEPT', ''): if request.method == 'GET': diff --git a/cms/djangoapps/models/settings/course_metadata.py b/cms/djangoapps/models/settings/course_metadata.py index 239817ff47..7f2057c888 100644 --- a/cms/djangoapps/models/settings/course_metadata.py +++ b/cms/djangoapps/models/settings/course_metadata.py @@ -178,7 +178,8 @@ class CourseMetadata(object): 'value': field.read_json(descriptor), 'display_name': _(field.display_name), 'help': field_help, - 'deprecated': field.runtime_options.get('deprecated', False) + 'deprecated': field.runtime_options.get('deprecated', False), + 'hide_on_enabled_publisher': field.runtime_options.get('hide_on_enabled_publisher', False) } return result diff --git a/cms/static/js/factories/settings_advanced.js b/cms/static/js/factories/settings_advanced.js index 16eb86f45e..474e94e33f 100644 --- a/cms/static/js/factories/settings_advanced.js +++ b/cms/static/js/factories/settings_advanced.js @@ -2,7 +2,7 @@ define([ 'jquery', 'gettext', 'js/models/settings/advanced', 'js/views/settings/advanced' ], function($, gettext, AdvancedSettingsModel, AdvancedSettingsView) { 'use strict'; - return function(advancedDict, advancedSettingsUrl) { + return function(advancedDict, advancedSettingsUrl, publisherEnabled) { var advancedModel, editor; $('form :input') @@ -17,6 +17,14 @@ define([ advancedModel = new AdvancedSettingsModel(advancedDict, {parse: true}); advancedModel.url = advancedSettingsUrl; + // set the hidden property to true on relevant fields if publisher is enabled + if (publisherEnabled && advancedModel.attributes) { + Object.keys(advancedModel.attributes).forEach(function(am) { + var field = advancedModel.attributes[am]; + field.hidden = field.hide_on_enabled_publisher; + }); + } + editor = new AdvancedSettingsView({ el: $('.settings-advanced'), model: advancedModel diff --git a/cms/static/js/views/settings/advanced.js b/cms/static/js/views/settings/advanced.js index 3ab7ff1a36..20f94dbfef 100644 --- a/cms/static/js/views/settings/advanced.js +++ b/cms/static/js/views/settings/advanced.js @@ -153,7 +153,7 @@ define(['js/views/validation', var newKeyId = _.uniqueId('policy_key_'), newEle = this.template({key: key, display_name: model.display_name, help: model.help, value: JSON.stringify(model.value, null, 4), deprecated: model.deprecated, - keyUniqueId: newKeyId, valueUniqueId: _.uniqueId('policy_value_')}); + keyUniqueId: newKeyId, valueUniqueId: _.uniqueId('policy_value_'), hidden: model.hidden}); this.fieldToSelectorMap[key] = newKeyId; this.selectorToField[newKeyId] = key; diff --git a/cms/templates/js/advanced_entry.underscore b/cms/templates/js/advanced_entry.underscore index 913ab7594a..b2e4d09e37 100644 --- a/cms/templates/js/advanced_entry.underscore +++ b/cms/templates/js/advanced_entry.underscore @@ -1,14 +1,16 @@ -
  • -
    -

    <%= display_name %>

    -
    +<% if (!hidden) { %> +
  • +
    +

    <%- display_name %>

    +
    -
    - - - <%= help %> -
    - <% if (deprecated) { %> - <%= gettext("Deprecated") %> - <% } %> -
  • +
    + + + <%- help %>`` +
    + <% if (deprecated) { %> + <%- gettext("Deprecated") %> + <% } %> + +<% } %> diff --git a/cms/templates/settings.html b/cms/templates/settings.html index a4657c2666..19a736466c 100644 --- a/cms/templates/settings.html +++ b/cms/templates/settings.html @@ -341,10 +341,14 @@ CMS.URL.UPLOAD_ASSET = '${upload_asset_url | n, js_escaped_string}'
    + + % if about_page_editable:

    ${_("Introducing Your Course")}

    ${_("Information for prospective students")}
    + % endif +
      % if enable_extended_course_details: @@ -405,6 +409,7 @@ CMS.URL.UPLOAD_ASSET = '${upload_asset_url | n, js_escaped_string}' % endif % endif + % if about_page_editable:
    1. @@ -437,6 +442,7 @@ CMS.URL.UPLOAD_ASSET = '${upload_asset_url | n, js_escaped_string}'
    2. + % endif % if enable_extended_course_details:
    3. diff --git a/cms/templates/settings_advanced.html b/cms/templates/settings_advanced.html index 62938b7163..c3571a3b8e 100644 --- a/cms/templates/settings_advanced.html +++ b/cms/templates/settings_advanced.html @@ -25,7 +25,8 @@ require(["js/factories/settings_advanced"], function(SettingsAdvancedFactory) { SettingsAdvancedFactory( ${advanced_dict | n, dump_js_escaped_json}, - "${advanced_settings_url | n, js_escaped_string}" + "${advanced_settings_url | n, js_escaped_string}", + ${publisher_enabled | n, dump_js_escaped_json} ); }); diff --git a/common/lib/xmodule/xmodule/course_module.py b/common/lib/xmodule/xmodule/course_module.py index cc7178a58e..38086a8494 100644 --- a/common/lib/xmodule/xmodule/course_module.py +++ b/common/lib/xmodule/xmodule/course_module.py @@ -19,6 +19,7 @@ from pytz import utc from six import text_type from xblock.fields import Boolean, Dict, Float, Integer, List, Scope, String +from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers from openedx.core.djangoapps.video_pipeline.models import VideoUploadsEnabledByDefault from openedx.core.lib.license import LicenseMixin from xmodule import course_metadata_utils @@ -332,7 +333,8 @@ class CourseFields(object): help=_("Enter the name of the course as it should appear in the edX.org course list."), default="Empty", display_name=_("Course Display Name"), - scope=Scope.settings + scope=Scope.settings, + hide_on_enabled_publisher=True ) course_edit_method = String( display_name=_("Course Editor"), @@ -550,7 +552,8 @@ class CourseFields(object): ), scope=Scope.settings, # Ensure that courses imported from XML keep their image - default="images_course_image.jpg" + default="images_course_image.jpg", + hide_on_enabled_publisher=True ) banner_image = String( display_name=_("Course Banner Image"),