Commit 181d0e46 by Martyn James

Reorganise reindexing operation

parent 847f56d1
...@@ -481,6 +481,9 @@ def course_index(request, course_key): ...@@ -481,6 +481,9 @@ def course_index(request, course_key):
with modulestore().bulk_operations(course_key): with modulestore().bulk_operations(course_key):
course_module = get_course_and_check_access(course_key, request.user, depth=None) course_module = get_course_and_check_access(course_key, request.user, depth=None)
lms_link = get_lms_link_for_item(course_module.location) 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() sections = course_module.get_children()
course_structure = _course_outline_json(request, course_module) course_structure = _course_outline_json(request, course_module)
locator_to_show = request.REQUEST.get('show', None) locator_to_show = request.REQUEST.get('show', None)
...@@ -504,7 +507,7 @@ def course_index(request, course_key): ...@@ -504,7 +507,7 @@ def course_index(request, course_key):
'rerun_notification_id': current_action.id if current_action else None, 'rerun_notification_id': current_action.id if current_action else None,
'course_release_date': course_release_date, 'course_release_date': course_release_date,
'settings_url': settings_url, 'settings_url': settings_url,
'reindex_button': settings.FEATURES.get('ENABLE_COURSEWARE_INDEX', False), 'reindex_link': reindex_link,
'notification_dismiss_url': reverse_course_url( 'notification_dismiss_url': reverse_course_url(
'course_notifications_handler', 'course_notifications_handler',
current_action.course_key, current_action.course_key,
......
...@@ -329,8 +329,10 @@ define(["jquery", "js/common_helpers/ajax_helpers", "js/views/utils/view_utils", ...@@ -329,8 +329,10 @@ define(["jquery", "js/common_helpers/ajax_helpers", "js/views/utils/view_utils",
var reindexSpy = spyOn(outlinePage, 'startReIndex').andCallThrough(); var reindexSpy = spyOn(outlinePage, 'startReIndex').andCallThrough();
var successSpy = spyOn(outlinePage, 'onIndexSuccess').andCallThrough(); var successSpy = spyOn(outlinePage, 'onIndexSuccess').andCallThrough();
var reindexButton = outlinePage.$('.button.button-reindex'); var reindexButton = outlinePage.$('.button.button-reindex');
var test_url = '/course_search_index/5';
reindexButton.attr('href', test_url)
reindexButton.trigger('click'); reindexButton.trigger('click');
AjaxHelpers.expectJsonRequest(requests, 'GET', '/course_search_index/5'); AjaxHelpers.expectJsonRequest(requests, 'GET', test_url);
AjaxHelpers.respondWithJson(requests, createMockIndexJSON(true)); AjaxHelpers.respondWithJson(requests, createMockIndexJSON(true));
expect(reindexSpy).toHaveBeenCalled(); expect(reindexSpy).toHaveBeenCalled();
expect(successSpy).toHaveBeenCalled(); expect(successSpy).toHaveBeenCalled();
...@@ -340,8 +342,10 @@ define(["jquery", "js/common_helpers/ajax_helpers", "js/views/utils/view_utils", ...@@ -340,8 +342,10 @@ define(["jquery", "js/common_helpers/ajax_helpers", "js/views/utils/view_utils",
createCourseOutlinePage(this, mockSingleSectionCourseJSON); createCourseOutlinePage(this, mockSingleSectionCourseJSON);
var reindexSpy = spyOn(outlinePage, 'startReIndex').andCallThrough(); var reindexSpy = spyOn(outlinePage, 'startReIndex').andCallThrough();
var reindexButton = outlinePage.$('.button.button-reindex'); var reindexButton = outlinePage.$('.button.button-reindex');
var test_url = '/course_search_index/5';
reindexButton.attr('href', test_url)
reindexButton.trigger('click'); reindexButton.trigger('click');
AjaxHelpers.expectJsonRequest(requests, 'GET', '/course_search_index/5'); AjaxHelpers.expectJsonRequest(requests, 'GET', test_url);
AjaxHelpers.respondWithJson(requests, createMockIndexJSON(false)); AjaxHelpers.respondWithJson(requests, createMockIndexJSON(false));
expect(reindexSpy).toHaveBeenCalled(); expect(reindexSpy).toHaveBeenCalled();
}); });
......
...@@ -110,15 +110,14 @@ define(["jquery", "underscore", "gettext", "js/views/pages/base_page", "js/views ...@@ -110,15 +110,14 @@ define(["jquery", "underscore", "gettext", "js/views/pages/base_page", "js/views
event.preventDefault(); event.preventDefault();
var target = $(event.currentTarget); var target = $(event.currentTarget);
target.css('cursor', 'wait'); target.css('cursor', 'wait');
this.startReIndex() this.startReIndex(target.attr('href'))
.done(function() {self.onIndexSuccess();}) .done(function() {self.onIndexSuccess();})
.always(function() {target.css('cursor', 'pointer');}); .always(function() {target.css('cursor', 'pointer');});
}, },
startReIndex: function() { startReIndex: function(reindex_url) {
var locator = window.course.id;
return $.ajax({ return $.ajax({
url: '/course_search_index/' + locator, url: reindex_url,
method: 'GET' method: 'GET'
}); });
}, },
......
...@@ -68,9 +68,9 @@ from contentstore.utils import reverse_usage_url ...@@ -68,9 +68,9 @@ from contentstore.utils import reverse_usage_url
<i class="icon fa fa-plus"></i>${_('New Section')} <i class="icon fa fa-plus"></i>${_('New Section')}
</a> </a>
</li> </li>
%if reindex_button: %if reindex_link:
<li class="nav-item"> <li class="nav-item">
<a href="#" class="button button-reindex" data-category="reindex" title="${_('Reindex current course')}"> <a href="${reindex_link}" class="button button-reindex" data-category="reindex" title="${_('Reindex current course')}">
<i class="icon-arrow-right"></i>${_('Reindex')} <i class="icon-arrow-right"></i>${_('Reindex')}
</a> </a>
</li> </li>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment