Commit 2839ad87 by Ben McMorran

PR cleanup

parent 46932ee0
...@@ -240,6 +240,7 @@ def course_rerun_handler(request, course_key_string): ...@@ -240,6 +240,7 @@ def course_rerun_handler(request, course_key_string):
GET GET
html: return html page with form to rerun a course for the given course id html: return html page with form to rerun a course for the given course id
""" """
# Only global staff (PMs) are able to rerun courses during the soft launch
if not GlobalStaff().has_user(request.user): if not GlobalStaff().has_user(request.user):
raise PermissionDenied() raise PermissionDenied()
course_key = CourseKey.from_string(course_key_string) course_key = CourseKey.from_string(course_key_string)
...@@ -407,7 +408,7 @@ def course_listing(request): ...@@ -407,7 +408,7 @@ def course_listing(request):
def _get_rerun_link_for_item(course_key): def _get_rerun_link_for_item(course_key):
return '/course_rerun/{}/{}/{}'.format(course_key.org, course_key.course, course_key.run) return reverse_course_url('course_rerun_handler', course_key)
@login_required @login_required
......
...@@ -7,7 +7,7 @@ define(["domReady", "jquery", "underscore", "js/utils/cancel_on_escape"], ...@@ -7,7 +7,7 @@ define(["domReady", "jquery", "underscore", "js/utils/cancel_on_escape"],
url: $(this).data('dismiss-link'), url: $(this).data('dismiss-link'),
type: 'DELETE', type: 'DELETE',
success: function(result) { success: function(result) {
window.location.reload() window.location.reload();
} }
}); });
}; };
......
define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers", "js/views/course_rerun"], define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers", "js/views/course_rerun"],
function ($, create_sinon, view_helpers, CourseRerunPage) { function ($, create_sinon, view_helpers, CourseRerunUtils) {
describe("Create course rerun page", function () { describe("Create course rerun page", function () {
var selectors = { var selectors = {
courseOrg: '.rerun-course-org', courseOrg: '.rerun-course-org',
...@@ -30,7 +30,7 @@ define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers" ...@@ -30,7 +30,7 @@ define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers"
view_helpers.installMockAnalytics(); view_helpers.installMockAnalytics();
window.source_course_key = 'test_course_key'; window.source_course_key = 'test_course_key';
appendSetFixtures(mockCreateCourseRerunHTML); appendSetFixtures(mockCreateCourseRerunHTML);
CourseRerunPage.onReady(); CourseRerunUtils.onReady();
}); });
afterEach(function () { afterEach(function () {
...@@ -38,33 +38,33 @@ define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers" ...@@ -38,33 +38,33 @@ define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers"
delete window.source_course_key; delete window.source_course_key;
}); });
describe("validateRequiredField", function () { describe("Field validation", function () {
it("has a message for an empty string", function () { it("returns a message for an empty string", function () {
var message = CourseRerunPage.validateRequiredField(''); var message = CourseRerunUtils.validateRequiredField('');
expect(message).not.toBe(''); expect(message).not.toBe('');
}); });
it("does not have a message for a non empty string", function () { it("does not return a message for a non empty string", function () {
var message = CourseRerunPage.validateRequiredField('edX'); var message = CourseRerunUtils.validateRequiredField('edX');
expect(message).toBe(''); expect(message).toBe('');
}); });
}); });
describe("setNewCourseFieldInErr", function () { describe("Error messages", function () {
var setErrorMessage = function(selector, message) { var setErrorMessage = function(selector, message) {
var element = $(selector).parent(); var element = $(selector).parent();
CourseRerunPage.setNewCourseFieldInErr(element, message); CourseRerunUtils.setNewCourseFieldInErr(element, message);
return element; return element;
}; };
it("can show an error message", function () { it("shows an error message", function () {
var element = setErrorMessage(selectors.courseOrg, 'error message'); var element = setErrorMessage(selectors.courseOrg, 'error message');
expect(element).toHaveClass(classes.error); expect(element).toHaveClass(classes.error);
expect(element.children(selectors.errorField)).not.toHaveClass(classes.hidden); expect(element.children(selectors.errorField)).not.toHaveClass(classes.hidden);
expect(element.children(selectors.errorField)).toContainText('error message'); expect(element.children(selectors.errorField)).toContainText('error message');
}); });
it("can hide an error message", function () { it("hides an error message", function () {
var element = setErrorMessage(selectors.courseOrg, ''); var element = setErrorMessage(selectors.courseOrg, '');
expect(element).not.toHaveClass(classes.error); expect(element).not.toHaveClass(classes.error);
expect(element.children(selectors.errorField)).toHaveClass(classes.hidden); expect(element.children(selectors.errorField)).toHaveClass(classes.hidden);
...@@ -93,7 +93,7 @@ define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers" ...@@ -93,7 +93,7 @@ define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers"
}); });
}); });
it("can save course reruns", function () { it("saves course reruns", function () {
var requests = create_sinon.requests(this); var requests = create_sinon.requests(this);
window.source_course_key = 'test_course_key'; window.source_course_key = 'test_course_key';
fillInFields('DemoX', 'DM101', '2014', 'Demo course'); fillInFields('DemoX', 'DM101', '2014', 'Demo course');
......
define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers", "js/index"], define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers", "js/index"],
function ($, create_sinon, view_helpers, IndexPage) { function ($, create_sinon, view_helpers, IndexUtils) {
describe("Course listing page", function () { describe("Course listing page", function () {
var mockIndexPageHTML = readFixtures('mock/mock-index-page.underscore'); var mockIndexPageHTML = readFixtures('mock/mock-index-page.underscore');
beforeEach(function () { beforeEach(function () {
view_helpers.installMockAnalytics(); view_helpers.installMockAnalytics();
appendSetFixtures(mockIndexPageHTML); appendSetFixtures(mockIndexPageHTML);
IndexPage.onReady(); IndexUtils.onReady();
}); });
afterEach(function () { afterEach(function () {
...@@ -14,7 +14,6 @@ define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers" ...@@ -14,7 +14,6 @@ define(["jquery", "js/spec_helpers/create_sinon", "js/spec_helpers/view_helpers"
delete window.source_course_key; delete window.source_course_key;
}); });
it("can dismiss notifications", function () { it("can dismiss notifications", function () {
var requests = create_sinon.requests(this); var requests = create_sinon.requests(this);
$('.dismiss-button').click(); $('.dismiss-button').click();
......
...@@ -41,7 +41,7 @@ define(["domReady", "jquery", "underscore"], ...@@ -41,7 +41,7 @@ define(["domReady", "jquery", "underscore"],
}, },
function (data) { function (data) {
if (data.url !== undefined) { if (data.url !== undefined) {
window.location = data.url window.location = data.url;
} else if (data.ErrMsg !== undefined) { } else if (data.ErrMsg !== undefined) {
$('.wrapper-error').addClass('is-shown').removeClass('is-hidden'); $('.wrapper-error').addClass('is-shown').removeClass('is-hidden');
$('#course_rerun_error').html('<p>' + data.ErrMsg + '</p>'); $('#course_rerun_error').html('<p>' + data.ErrMsg + '</p>');
...@@ -64,7 +64,7 @@ define(["domReady", "jquery", "underscore"], ...@@ -64,7 +64,7 @@ define(["domReady", "jquery", "underscore"],
$('#course_rerun_error').html(''); $('#course_rerun_error').html('');
$('wrapper-error').removeClass('is-shown').addClass('is-hidden'); $('wrapper-error').removeClass('is-shown').addClass('is-hidden');
$('.rerun-course-save').off('click'); $('.rerun-course-save').off('click');
window.location.href = '/course/' window.location.href = '/course/';
}; };
var validateRequiredField = function (msg) { var validateRequiredField = function (msg) {
......
...@@ -25,7 +25,7 @@ define(["jquery", "underscore", "gettext", "js/views/pages/base_page", "js/views ...@@ -25,7 +25,7 @@ define(["jquery", "underscore", "gettext", "js/views/pages/base_page", "js/views
self.outlineView.handleAddEvent(event); self.outlineView.handleAddEvent(event);
}); });
this.model.on('change', this.setCollapseExpandVisibility, this); this.model.on('change', this.setCollapseExpandVisibility, this);
$('.dismiss-button').bind('click', this.dismissNotification) $('.dismiss-button').bind('click', this.dismissNotification);
}, },
setCollapseExpandVisibility: function() { setCollapseExpandVisibility: function() {
......
...@@ -73,4 +73,4 @@ class Migration(SchemaMigration): ...@@ -73,4 +73,4 @@ class Migration(SchemaMigration):
} }
} }
complete_apps = ['course_action_state'] complete_apps = ['course_action_state']
\ No newline at end of file
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