Browse Source

Fixed #25845 -- Fixed incorrect timezone warnings in custom admin templates.

Sven Grunewaldt 9 years ago
parent
commit
9af40f5df1

+ 2 - 2
django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js

@@ -21,7 +21,7 @@
         init: function() {
             var body = document.getElementsByTagName('body')[0];
             var serverOffset = body.getAttribute('data-admin-utc-offset');
-            if (serverOffset !== undefined) {
+            if (serverOffset) {
                 var localOffset = new Date().getTimezoneOffset() * -60;
                 DateTimeShortcuts.timezoneOffset = localOffset - serverOffset;
             }
@@ -43,7 +43,7 @@
         now: function() {
             var body = document.getElementsByTagName('body')[0];
             var serverOffset = body.getAttribute('data-admin-utc-offset');
-            if (serverOffset !== undefined) {
+            if (serverOffset) {
                 var localNow = new Date();
                 var localOffset = localNow.getTimezoneOffset() * -60;
                 localNow.setTime(localNow.getTime() + 1000 * (serverOffset - localOffset));

+ 4 - 0
docs/releases/1.9.1.txt

@@ -46,3 +46,7 @@ Bugfixes
 
 * Fixed ``TypedChoiceField`` change detection with nullable fields
   (:ticket:`25942`).
+
+* Fixed incorrect timezone warnings in custom admin templates that don't have
+  a ``data-admin-utc-offset`` attribute in the ``body`` tag.
+  (:ticket:`25845`).

+ 4 - 0
js_tests/admin/DateTimeShortcuts.test.js

@@ -16,4 +16,8 @@ test('init', function(assert) {
     assert.equal(shortcuts.length, 1);
     assert.equal(shortcuts.find('a:first').text(), 'Today');
     assert.equal(shortcuts.find('a:last .date-icon').length, 1);
+
+    // To prevent incorrect timezone warnings on date/time widgets, timezoneOffset
+    // should be 0 when a timezone offset isn't set in the HTML body attribute.
+    assert.equal(DateTimeShortcuts.timezoneOffset, 0);
 });