Commit 2c90fd18 by Alexander Kryklia Committed by polesye

Rename IsoTime to RelativeTime.

parent ece4cb66
......@@ -108,7 +108,7 @@ define(["backbone"], function(Backbone) {
Metadata.GENERIC_TYPE = "Generic";
Metadata.LIST_TYPE = "List";
Metadata.VIDEO_LIST_TYPE = "VideoList";
Metadata.ISO_TIME_TYPE = "IsoTime";
Metadata.RELATIVE_TIME_TYPE = "RelativeTime";
return Metadata;
});
......@@ -38,8 +38,9 @@ function(Backbone, _, MetadataModel, AbstractEditor, VideoList) {
}
else if(model.getType() === MetadataModel.VIDEO_LIST_TYPE) {
new VideoList(data);
else if(model.getType() === MetadataModel.ISO_TIME_TYPE) {
new Metadata.IsoTime(data);
}
else if(model.getType() === MetadataModel.RELATIVE_TIME_TYPE) {
new Metadata.RelativeTime(data);
}
else {
// Everything else is treated as GENERIC_TYPE, which uses String editor.
......@@ -293,7 +294,7 @@ function(Backbone, _, MetadataModel, AbstractEditor, VideoList) {
}
});
Metadata.IsoTime = Metadata.AbstractEditor.extend({
Metadata.RelativeTime = AbstractEditor.extend({
events : {
"change input" : "updateModel",
......@@ -304,7 +305,7 @@ function(Backbone, _, MetadataModel, AbstractEditor, VideoList) {
templateName: "metadata-string-entry",
initialize: function () {
Metadata.AbstractEditor.prototype.initialize.apply(this);
AbstractEditor.prototype.initialize.apply(this);
// This list of definitions is used for creating appropriate
// time format mask;
......
......@@ -118,7 +118,7 @@ class Timedelta(Field):
return ' '.join(values)
class IsoTime(Field):
class RelativeTime(Field):
"""
Field for start_time and end_time video module properties.
......@@ -134,8 +134,8 @@ class IsoTime(Field):
In database we previously had float type for start_time and end_time fields,
so we are checking it also.
Python object of IsoTime is datetime.timedelta.
JSONed representation of IsoTime is "HH:MM:SS"
Python object of RelativeTime is datetime.timedelta.
JSONed representation of RelativeTime is "HH:MM:SS"
"""
# Timedeltas are immutable, see http://docs.python.org/2/library/datetime.html#available-types
MUTABLE = False
......@@ -151,7 +151,7 @@ class IsoTime(Field):
obj_time = time.strptime(value, '%H:%M:%S')
except ValueError as e:
raise ValueError(
"Incorrect IsoTime value {} was set in XML or serialized."
"Incorrect RelativeTime value {} was set in XML or serialized."
"Original parse message is {}".format(value, e.message)
)
return datetime.timedelta(
......@@ -177,7 +177,7 @@ class IsoTime(Field):
if isinstance(value, basestring):
return self._isotime_to_timedelta(value)
msg = "IsoTime Field {0} has bad value '{1}'".format(self._name, value)
msg = "RelativeTime Field {0} has bad value '{1}'".format(self._name, value)
raise TypeError(msg)
def to_json(self, value):
......@@ -201,9 +201,9 @@ class IsoTime(Field):
if isinstance(value, datetime.timedelta):
if value.total_seconds() > 86400: # sanity check
raise ValueError(
"IsoTime max value is 23:59:59=86400.0 seconds, "
"RelativeTime max value is 23:59:59=86400.0 seconds, "
"but {} seconds is passed".format(value.total_seconds())
)
return str(value)
raise TypeError("IsoTime: cannot convert {!r} to json".format(value))
raise TypeError("RelativeTime: cannot convert {!r} to json".format(value))
......@@ -2,7 +2,7 @@
import datetime
import unittest
from django.utils.timezone import UTC
from xmodule.fields import Date, Timedelta, IsoTime
from xmodule.fields import Date, Timedelta, RelativeTime
from xmodule.timeinfo import TimeInfo
import time
......@@ -118,52 +118,52 @@ class TimeInfoTest(unittest.TestCase):
due_date + Timedelta().from_json(grace_pd_string))
class IsoTimeTest(unittest.TestCase):
class RelativeTimeTest(unittest.TestCase):
delta = IsoTime()
delta = RelativeTime()
def test_from_json(self):
self.assertEqual(
IsoTimeTest.delta.from_json('0:05:07'),
RelativeTimeTest.delta.from_json('0:05:07'),
datetime.timedelta(seconds=307)
)
self.assertEqual(
IsoTimeTest.delta.from_json(100.0),
RelativeTimeTest.delta.from_json(100.0),
datetime.timedelta(seconds=100)
)
self.assertEqual(
IsoTimeTest.delta.from_json(None),
RelativeTimeTest.delta.from_json(None),
datetime.timedelta(seconds=0)
)
with self.assertRaises(TypeError):
IsoTimeTest.delta.from_json(1234) # int
RelativeTimeTest.delta.from_json(1234) # int
with self.assertRaises(ValueError):
IsoTimeTest.delta.from_json("77:77:77")
RelativeTimeTest.delta.from_json("77:77:77")
def test_to_json(self):
self.assertEqual(
"1:02:03",
IsoTimeTest.delta.to_json(datetime.timedelta(seconds=3723))
RelativeTimeTest.delta.to_json(datetime.timedelta(seconds=3723))
)
self.assertEqual(
"00:00:00",
IsoTimeTest.delta.to_json(None)
RelativeTimeTest.delta.to_json(None)
)
self.assertEqual(
"0:01:40",
IsoTimeTest.delta.to_json(100.0)
RelativeTimeTest.delta.to_json(100.0)
)
with self.assertRaises(ValueError) as cm:
IsoTimeTest.delta.to_json(datetime.timedelta(seconds=90000))
RelativeTimeTest.delta.to_json(datetime.timedelta(seconds=90000))
self.assertEqual(
cm.exception.message,
"IsoTime max value is 23:59:59=86400.0 seconds, but 90000.0 seconds is passed"
"RelativeTime max value is 23:59:59=86400.0 seconds, but 90000.0 seconds is passed"
)
with self.assertRaises(TypeError):
IsoTimeTest.delta.to_json("123")
RelativeTimeTest.delta.to_json("123")
......@@ -10,7 +10,7 @@ from xblock.field_data import DictFieldData
from xblock.fields import Scope, String, Dict, Boolean, Integer, Float, Any, List
from xblock.runtime import DbModel
from xmodule.fields import Date, Timedelta, IsoTime
from xmodule.fields import Date, Timedelta, RelativeTime
from xmodule.modulestore.inheritance import InheritanceKeyValueStore, InheritanceMixin
from xmodule.xml_module import XmlDescriptor, serialize_field, deserialize_field
from xmodule.course_module import CourseDescriptor
......@@ -389,10 +389,10 @@ class TestDeserializeTimedelta(TestDeserialize):
self.assertDeserializeNonString()
class TestDeserializeIsoTime(TestDeserialize):
class TestDeserializeRelativeTime(TestDeserialize):
""" Tests deserialize as related to Timedelta type. """
test_field = IsoTime
test_field = RelativeTime
def test_deserialize(self):
"""
......
......@@ -29,7 +29,7 @@ from xmodule.raw_module import EmptyDataRawDescriptor
from xmodule.xml_module import is_pointer_tag, name_to_pathname, deserialize_field
from xmodule.modulestore import Location
from xblock.fields import Scope, String, Boolean, List, Integer, ScopeIds
from xmodule.fields import IsoTime
from xmodule.fields import RelativeTime
from xmodule.modulestore.inheritance import InheritanceKeyValueStore
from xblock.runtime import DbModel
......@@ -80,13 +80,13 @@ class VideoFields(object):
scope=Scope.settings,
default=""
)
start_time = IsoTime( # datetime.timedelta object
start_time = RelativeTime( # datetime.timedelta object
help="Start time for the video.",
display_name="Start Time",
scope=Scope.settings,
default=datetime.timedelta(seconds=0)
)
end_time = IsoTime( # datetime.timedelta object
end_time = RelativeTime( # datetime.timedelta object
help="End time for the video.",
display_name="End Time",
scope=Scope.settings,
......
......@@ -13,7 +13,7 @@ from xmodule.modulestore.exceptions import ItemNotFoundError, InsufficientSpecif
from xblock.core import XBlock
from xblock.fields import Scope, Integer, Float, List, XBlockMixin, String
from xmodule.fields import IsoTime
from xmodule.fields import RelativeTime
from xblock.fragment import Fragment
from xblock.runtime import Runtime
from xmodule.errortracker import exc_info_to_str
......@@ -709,8 +709,8 @@ class XModuleDescriptor(XModuleMixin, HTMLSnippet, ResourceTemplates, XBlock):
editor_type = "Float"
elif isinstance(field, List):
editor_type = "List"
elif isinstance(field, IsoTime):
editor_type = "IsoTime"
elif isinstance(field, RelativeTime):
editor_type = "RelativeTime"
metadata_fields[field.name]['type'] = editor_type
metadata_fields[field.name]['options'] = [] if values is None else values
......
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