From 5c0063f429aea44a20d0b82989f7ca8db8ab899e Mon Sep 17 00:00:00 2001 From: Peter Quade <pq@qdevelop.de> Date: Mon, 18 Jan 2016 18:28:30 +0100 Subject: [PATCH] making datetimepicker aware of FIRST_DAY_OF_WEEK --- CHANGELOG.txt | 1 + CONTRIBUTORS.rst | 1 + docs/releases/1.4.rst | 3 +++ .../static_src/wagtailadmin/js/page-editor.js | 20 +++++++++---------- wagtail/wagtailadmin/widgets.py | 11 ++++++++-- 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 65bef00a22..56343be9b3 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,6 +5,7 @@ Changelog ~~~~~~~~~~~~~~~~ * The `Document` model can now be overridden using the new `WAGTAILDOCS_DOCUMENT_MODEL` setting (Alex Gleason) + * Date/time pickers now respect the locale's 'first day of week' setting (Peter Quade) * Fix: Custom page managers no longer raise an error when used on an abstract model * Fix: Wagtail's migrations are now all reversible (benjaoming) * Fix: Deleting a page content type now preserves existing pages as basic Page instances, to prevent tree corruption diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index d7face3446..1f6737ad57 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -97,6 +97,7 @@ Contributors * Alexander Bogushov * Aarni Koskela * alexpilot11 +* Peter Quade Translators diff --git a/docs/releases/1.4.rst b/docs/releases/1.4.rst index cb7c25993b..43763e3f2c 100644 --- a/docs/releases/1.4.rst +++ b/docs/releases/1.4.rst @@ -19,6 +19,9 @@ The `Document` model can now be overridden using the new `WAGTAILDOCS_DOCUMENT_M Minor features ~~~~~~~~~~~~~~ + * Date/time pickers now respect the locale's 'first day of week' setting (Peter Quade) + + Bug fixes ~~~~~~~~~ diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/js/page-editor.js b/wagtail/wagtailadmin/static_src/wagtailadmin/js/page-editor.js index fb75130e03..7f93bc80a9 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/js/page-editor.js +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/js/page-editor.js @@ -71,9 +71,9 @@ function insertRichTextDeleteControl(elem) { }); } -function initDateChooser(id) { +function initDateChooser(id, opts) { if (window.dateTimePickerTranslations) { - $('#' + id).datetimepicker({ + $('#' + id).datetimepicker($.extend({ closeOnDateSelect: true, timepicker: false, scrollInput:false, @@ -82,13 +82,13 @@ function initDateChooser(id) { lang: window.dateTimePickerTranslations }, lang: 'lang' - }); + }, opts || {})); } else { - $('#' + id).datetimepicker({ + $('#' + id).datetimepicker($.extend({ timepicker: false, scrollInput:false, format: 'Y-m-d' - }); + }, opts || {})); } } @@ -112,9 +112,9 @@ function initTimeChooser(id) { } } -function initDateTimeChooser(id) { +function initDateTimeChooser(id, opts) { if (window.dateTimePickerTranslations) { - $('#' + id).datetimepicker({ + $('#' + id).datetimepicker($.extend({ closeOnDateSelect: true, format: 'Y-m-d H:i', scrollInput:false, @@ -122,11 +122,11 @@ function initDateTimeChooser(id) { lang: window.dateTimePickerTranslations }, language: 'lang' - }); + }, opts || {})); } else { - $('#' + id).datetimepicker({ + $('#' + id).datetimepicker($.extend({ format: 'Y-m-d H:i' - }); + }, opts || {})); } } diff --git a/wagtail/wagtailadmin/widgets.py b/wagtail/wagtailadmin/widgets.py index 38d4814bc5..9e791c6a54 100644 --- a/wagtail/wagtailadmin/widgets.py +++ b/wagtail/wagtailadmin/widgets.py @@ -2,6 +2,7 @@ from __future__ import absolute_import, unicode_literals import json +from django.utils.formats import get_format from django.core.urlresolvers import reverse from django.forms import widgets from django.contrib.contenttypes.models import ContentType @@ -36,7 +37,10 @@ class AdminDateInput(WidgetWithScript, widgets.DateInput): super(AdminDateInput, self).__init__(attrs=attrs, format=format) def render_js_init(self, id_, name, value): - return 'initDateChooser({0});'.format(json.dumps(id_)) + return 'initDateChooser({0}, {1});'.format( + json.dumps(id_), + json.dumps({'dayOfWeekStart': get_format('FIRST_DAY_OF_WEEK')}) + ) class AdminTimeInput(WidgetWithScript, widgets.TimeInput): @@ -52,7 +56,10 @@ class AdminDateTimeInput(WidgetWithScript, widgets.DateTimeInput): super(AdminDateTimeInput, self).__init__(attrs=attrs, format=format) def render_js_init(self, id_, name, value): - return 'initDateTimeChooser({0});'.format(json.dumps(id_)) + return 'initDateTimeChooser({0}, {1});'.format( + json.dumps(id_), + json.dumps({'dayOfWeekStart': get_format('FIRST_DAY_OF_WEEK')}) + ) class AdminTagWidget(WidgetWithScript, TagWidget):