Got time change hooked up but gained a spurious call to change on date

change.
This commit is contained in:
Don Mitchell
2012-11-27 15:15:28 -05:00
parent d165da3f81
commit 5331ae055f
4 changed files with 25 additions and 16 deletions

View File

@@ -91,10 +91,10 @@ CMS.Views.Settings.Details = Backbone.View.extend({
},
render: function() {
this.setupDatePicker('#course-start-date', 'start_date');
this.setupDatePicker('#course-end-date', 'end_date');
this.setupDatePicker('#course-enrollment-start-date', 'enrollment_start');
this.setupDatePicker('#course-enrollment-end-date', 'enrollment_end');
this.setupDatePicker('#course-start', 'start_date');
this.setupDatePicker('#course-end', 'end_date');
this.setupDatePicker('#enrollment-start', 'enrollment_start');
this.setupDatePicker('#enrollment-end', 'enrollment_end');
if (this.model.has('syllabus')) {
this.$el.find('.current-course-syllabus .doc-filename').html(
@@ -123,11 +123,20 @@ CMS.Views.Settings.Details = Backbone.View.extend({
setupDatePicker : function(elementName, fieldName) {
var cacheModel = this.model;
var picker = this.$el.find(elementName);
picker.datepicker({ onSelect : function(newVal) {
cacheModel.save(fieldName, new Date(newVal));
}});
picker.datepicker('setDate', this.model.get(fieldName));
var div = this.$el.find(elementName);
var datefield = $(div).find(".date");
var timefield = $(div).find(".time");
var savefield = function(event) {
cacheModel.save(fieldName, new Date(datefield.datepicker('getDate').getTime()
+ timefield.timepicker("getSecondsFromMidnight") * 1000));
};
// FIXME being called 2x on each change. Was trapping datepicker onSelect b4 but change to datepair broke that
datefield.on('change', savefield);
timefield.on('changeTime', savefield);
datefield.datepicker('setDate', this.model.get(fieldName));
timefield.timepicker('setTime', this.model.get(fieldName));
},
updateModel: function(event) {

View File

@@ -220,7 +220,7 @@ from contentstore import utils
<h4 class="label">Course Dates:</h4>
<div class="field datepair">
<div class="input multi multi-inline">
<div class="input multi multi-inline" id="course-start">
<div class="group">
<label for="course-start-date">Start Date</label>
<input type="text" class="start-date date" id="course-start-date" placeholder="MM/DD/YYYY" autocomplete="off">
@@ -236,7 +236,7 @@ from contentstore import utils
</div>
<div class="field field-additional datepair">
<div class="input multi multi-inline">
<div class="input multi multi-inline" id="course-end">
<div class="group">
<label for="course-end-date">End Date</label>
<input type="text" class="end-date date" id="course-end-date" placeholder="MM/DD/YYYY" autocomplete="off">
@@ -256,7 +256,7 @@ from contentstore import utils
<h4 class="label">Enrollment Dates:</h4>
<div class="field datepair">
<div class="input multi multi-inline">
<div class="input multi multi-inline" id="enrollment-start">
<div class="group">
<label for="course-enrollment-start-date">Start Date</label>
<input type="text" class="start-date date" id="course-enrollment-start-date" placeholder="MM/DD/YYYY">
@@ -272,7 +272,7 @@ from contentstore import utils
</div>
<div class="field field-additional datepair">
<div class="input multi multi-inline">
<div class="input multi multi-inline" id="enrollment-end">
<div class="group">
<label for="course-enrollment-end-date">Start Date</label>
<input type="text" class="start-end date" id="course-enrollment-end-date" placeholder="MM/DD/YYYY">

View File

@@ -1,11 +1,10 @@
from xmodule.modulestore.django import modulestore
from xmodule.course_module import CourseDescriptor
from xmodule.modulestore import Location
from xmodule.modulestore.exceptions import ItemNotFoundError
import json
from json.encoder import JSONEncoder
import time
from util.converters import time_to_date, jsdate_to_time
from util.converters import jsdate_to_time, time_to_date
class CourseDetails:
def __init__(self, location):

View File

@@ -1,11 +1,12 @@
import time, datetime
import re
import calendar
def time_to_date(time_obj):
"""
Convert a time.time_struct to a true universal time (can pass to js Date constructor)
"""
return time.mktime(time_obj) * 1000
return calendar.timegm(time_obj) * 1000
def jsdate_to_time(field):
"""