Commit ace723c5 authored by Paul Brown's avatar Paul Brown

Add widget_format field to DateTimeField to allow modifying datetime format from form_widget_args

parent 73e294b1
......@@ -2,7 +2,6 @@ from wtforms import fields, validators
from sqlalchemy import Boolean, Column
from flask.ext.admin import form
from flask.ext.admin.form import Select2Field
from flask.ext.admin.model.form import (converts, ModelConverterBase,
InlineModelConverterBase, FieldPlaceholder)
from flask.ext.admin.model.fields import AjaxSelectField, AjaxSelectMultipleField
......@@ -238,7 +237,7 @@ class AdminModelConverter(ModelConverterBase):
if mapper.class_ == self.view.model and form_choices:
choices = form_choices.get(column.key)
if choices:
return Select2Field(
return form.Select2Field(
choices=choices,
allow_blank=column.nullable,
**kwargs
......@@ -287,8 +286,7 @@ class AdminModelConverter(ModelConverterBase):
@converts('DateTime')
def convert_datetime(self, field_args, **extra):
field_args['widget'] = form.DateTimePickerWidget()
return DateTimeField(**field_args)
return form.DateTimeField(**field_args)
@converts('Time')
def convert_time(self, field_args, **extra):
......
......@@ -9,6 +9,24 @@ from . import widgets as admin_widgets
__all__ = ['TimeField', 'Select2Field', 'Select2TagsField']
class DateTimeField(fields.DateTimeField):
widget = admin_widgets.DateTimePickerWidget()
def __init__(self, label=None, validators=None, widget_format=None, **kwargs):
"""
Constructor
:param label:
Label
:param validators:
Field validators
:param widget_format:
Widget date format. Defaults to 'hh:ii:ss'
:param kwargs:
Any additional parameters
"""
super(DateTimeField, self).__init__(label, validators, **kwargs)
self.widget_format = widget_format or 'yyyy-mm-dd hh:ii:ss'
class TimeField(fields.Field):
"""
......
......@@ -57,7 +57,7 @@ class DateTimePickerWidget(widgets.TextInput):
"""
def __call__(self, field, **kwargs):
kwargs['data-role'] = u'datetimepicker'
kwargs['data-date-format'] = u'yyyy-mm-dd hh:ii:ss'
kwargs['data-date-format'] = field.widget_format or u'yyyy-mm-dd hh:ii:ss'
kwargs['data-date-autoclose'] = u'true'
kwargs['data-date-today-btn'] = u'linked'
kwargs['data-date-today-highlight'] = u'true'
......
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