From 181d0e46c5a4898048b1e5ea6b58129a221c64e5 Mon Sep 17 00:00:00 2001 From: Martyn James Date: Mon, 9 Feb 2015 14:51:43 -0500 Subject: [PATCH] Reorganise reindexing operation --- cms/djangoapps/contentstore/views/course.py | 5 ++++- cms/static/js/spec/views/pages/course_outline_spec.js | 8 ++++++-- cms/static/js/views/pages/course_outline.js | 7 +++---- cms/templates/course_outline.html | 4 ++-- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/cms/djangoapps/contentstore/views/course.py b/cms/djangoapps/contentstore/views/course.py index ef2c648f59..92e9df5230 100644 --- a/cms/djangoapps/contentstore/views/course.py +++ b/cms/djangoapps/contentstore/views/course.py @@ -481,6 +481,9 @@ def course_index(request, course_key): with modulestore().bulk_operations(course_key): course_module = get_course_and_check_access(course_key, request.user, depth=None) lms_link = get_lms_link_for_item(course_module.location) + reindex_link = None + if settings.FEATURES.get('ENABLE_COURSEWARE_INDEX', False): + reindex_link = "/course_search_index/{course_id}".format(course_id=unicode(course_key)) sections = course_module.get_children() course_structure = _course_outline_json(request, course_module) locator_to_show = request.REQUEST.get('show', None) @@ -504,7 +507,7 @@ def course_index(request, course_key): 'rerun_notification_id': current_action.id if current_action else None, 'course_release_date': course_release_date, 'settings_url': settings_url, - 'reindex_button': settings.FEATURES.get('ENABLE_COURSEWARE_INDEX', False), + 'reindex_link': reindex_link, 'notification_dismiss_url': reverse_course_url( 'course_notifications_handler', current_action.course_key, diff --git a/cms/static/js/spec/views/pages/course_outline_spec.js b/cms/static/js/spec/views/pages/course_outline_spec.js index bfc0285fe6..1e216c6794 100644 --- a/cms/static/js/spec/views/pages/course_outline_spec.js +++ b/cms/static/js/spec/views/pages/course_outline_spec.js @@ -329,8 +329,10 @@ define(["jquery", "js/common_helpers/ajax_helpers", "js/views/utils/view_utils", var reindexSpy = spyOn(outlinePage, 'startReIndex').andCallThrough(); var successSpy = spyOn(outlinePage, 'onIndexSuccess').andCallThrough(); var reindexButton = outlinePage.$('.button.button-reindex'); + var test_url = '/course_search_index/5'; + reindexButton.attr('href', test_url) reindexButton.trigger('click'); - AjaxHelpers.expectJsonRequest(requests, 'GET', '/course_search_index/5'); + AjaxHelpers.expectJsonRequest(requests, 'GET', test_url); AjaxHelpers.respondWithJson(requests, createMockIndexJSON(true)); expect(reindexSpy).toHaveBeenCalled(); expect(successSpy).toHaveBeenCalled(); @@ -340,8 +342,10 @@ define(["jquery", "js/common_helpers/ajax_helpers", "js/views/utils/view_utils", createCourseOutlinePage(this, mockSingleSectionCourseJSON); var reindexSpy = spyOn(outlinePage, 'startReIndex').andCallThrough(); var reindexButton = outlinePage.$('.button.button-reindex'); + var test_url = '/course_search_index/5'; + reindexButton.attr('href', test_url) reindexButton.trigger('click'); - AjaxHelpers.expectJsonRequest(requests, 'GET', '/course_search_index/5'); + AjaxHelpers.expectJsonRequest(requests, 'GET', test_url); AjaxHelpers.respondWithJson(requests, createMockIndexJSON(false)); expect(reindexSpy).toHaveBeenCalled(); }); diff --git a/cms/static/js/views/pages/course_outline.js b/cms/static/js/views/pages/course_outline.js index 806e135e2d..34779b7486 100644 --- a/cms/static/js/views/pages/course_outline.js +++ b/cms/static/js/views/pages/course_outline.js @@ -110,15 +110,14 @@ define(["jquery", "underscore", "gettext", "js/views/pages/base_page", "js/views event.preventDefault(); var target = $(event.currentTarget); target.css('cursor', 'wait'); - this.startReIndex() + this.startReIndex(target.attr('href')) .done(function() {self.onIndexSuccess();}) .always(function() {target.css('cursor', 'pointer');}); }, - startReIndex: function() { - var locator = window.course.id; + startReIndex: function(reindex_url) { return $.ajax({ - url: '/course_search_index/' + locator, + url: reindex_url, method: 'GET' }); }, diff --git a/cms/templates/course_outline.html b/cms/templates/course_outline.html index 5b8be69600..ceeedf38a2 100644 --- a/cms/templates/course_outline.html +++ b/cms/templates/course_outline.html @@ -68,9 +68,9 @@ from contentstore.utils import reverse_usage_url ${_('New Section')} - %if reindex_button: + %if reindex_link: