New course cannot be started till web certificate is active
fixed broken test changes based on feedback on 6/24 fixed broken unit test after feedback changes added more checks and updated tests fixed broken bok choy test Fixed pylint quality error trying to fix pylint quality error
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
define(["backbone", "underscore", "gettext", "js/models/validation_helpers"],
|
||||
function(Backbone, _, gettext, ValidationHelpers) {
|
||||
define(["backbone", "underscore", "gettext", "js/models/validation_helpers", "js/utils/date_utils"],
|
||||
function(Backbone, _, gettext, ValidationHelpers, DateUtils) {
|
||||
|
||||
var CourseDetails = Backbone.Model.extend({
|
||||
defaults: {
|
||||
@@ -28,14 +28,21 @@ var CourseDetails = Backbone.Model.extend({
|
||||
// Returns either nothing (no return call) so that validate works or an object of {field: errorstring} pairs
|
||||
// A bit funny in that the video key validation is asynchronous; so, it won't stop the validation.
|
||||
var errors = {};
|
||||
newattrs = DateUtils.convertDateStringsToObjects(
|
||||
newattrs, ["start_date", "end_date", "enrollment_start", "enrollment_end"]
|
||||
);
|
||||
|
||||
if (newattrs.start_date === null) {
|
||||
errors.start_date = gettext("The course must have an assigned start date.");
|
||||
}
|
||||
if (this.hasChanged("start_date") && this.get("has_cert_config") === false){
|
||||
errors.start_date = gettext("The course must have at least one active certificate configuration before it can be started.");
|
||||
}
|
||||
if (newattrs.start_date && newattrs.end_date && newattrs.start_date >= newattrs.end_date) {
|
||||
errors.end_date = gettext("The course end date cannot be before the course start date.");
|
||||
errors.end_date = gettext("The course end date must be later than the course start date.");
|
||||
}
|
||||
if (newattrs.start_date && newattrs.enrollment_start && newattrs.start_date < newattrs.enrollment_start) {
|
||||
errors.enrollment_start = gettext("The course start date cannot be before the enrollment start date.");
|
||||
errors.enrollment_start = gettext("The course start date must be later than the enrollment start date.");
|
||||
}
|
||||
if (newattrs.enrollment_start && newattrs.enrollment_end && newattrs.enrollment_start >= newattrs.enrollment_end) {
|
||||
errors.enrollment_end = gettext("The enrollment start date cannot be after the enrollment end date.");
|
||||
|
||||
@@ -31,7 +31,8 @@ define([
|
||||
entrance_exam_enabled : '',
|
||||
entrance_exam_minimum_score_pct: '50',
|
||||
license: null,
|
||||
language: ''
|
||||
language: '',
|
||||
has_cert_config: false
|
||||
},
|
||||
mockSettingsPage = readFixtures('mock/mock-settings-page.underscore');
|
||||
|
||||
@@ -71,6 +72,13 @@ define([
|
||||
);
|
||||
});
|
||||
|
||||
it('Changing course start date without active certificate configuration should result in error', function () {
|
||||
this.view.$el.find('#course-start-date')
|
||||
.val('10/06/2014')
|
||||
.trigger('change');
|
||||
expect(this.view.$el.find('span.message-error').text()).toContain("course must have at least one active certificate configuration");
|
||||
});
|
||||
|
||||
it('Selecting a course in pre-requisite drop down should save it as part of course details', function () {
|
||||
var pre_requisite_courses = ['test/CSS101/2012_T1'];
|
||||
var requests = AjaxHelpers.requests(this),
|
||||
|
||||
@@ -35,9 +35,29 @@ define(["jquery", "date", "jquery.ui", "jquery.timepicker"], function($, date) {
|
||||
);
|
||||
};
|
||||
|
||||
var parseDateFromString = function(stringDate){
|
||||
if (stringDate && typeof stringDate === "string"){
|
||||
return new Date(stringDate);
|
||||
}
|
||||
else {
|
||||
return stringDate;
|
||||
}
|
||||
};
|
||||
|
||||
var convertDateStringsToObjects = function(obj, dateFields){
|
||||
for (var i = 0; i < dateFields.length; i++){
|
||||
if (obj[dateFields[i]]){
|
||||
obj[dateFields[i]] = parseDateFromString(obj[dateFields[i]]);
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
};
|
||||
|
||||
return {
|
||||
getDate: getDate,
|
||||
setDate: setDate,
|
||||
renderDate: renderDate
|
||||
renderDate: renderDate,
|
||||
convertDateStringsToObjects: convertDateStringsToObjects,
|
||||
parseDateFromString: parseDateFromString
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user