跳转到主要内容

A z3c.form 日期选择器小部件(维护者 Thomas Buchberger)

项目描述

ftw.datepicker

ftw.datepicker 提供了一个基于 jQuery 的 DateTimePicker 小部件的日期/时间选择器小部件,用于您的 z3c.form 字段。它与 Plone 4.3 和 5.1 兼容。

截图

https://github.com/4teamwork/ftw.datepicker/raw/master/docs/screenshot.png

安装

将 ftw.datepicker 添加到您的 buildout 配置中。

[instance]
eggs +=
    ...
    ftw.datepicker

导入 ftw.datepicker 的通用设置配置文件。

用法

您可以使用 plone.directives.form 帮助将小部件应用于字段。

from plone.directives import form
from plone.supermodel import model
from ftw.datepicker.widget import DateTimePickerWidgetFactory

class MySchema(model.Schema):
    form.widget(due_date=DateTimePickerWidgetFactory)
    due_date = schema.Datetime()

这将渲染一个允许选择日期和时间的部件。

您可以通过这种方式传递部件的自定义配置

from plone.directives import form
from plone.supermodel import model
from ftw.datepicker.widget import DateTimePickerWidgetFactory

class MySchema(model.Schema):
    form.widget('due_date', DateTimePickerWidgetFactory, config=my_config)
    due_date = schema.Datetime()

config 可以是一个字典或一个生成字典的可调用对象。然后值会被转换成 JSON 对象并传递给模板,以便部件可以获取。例如:{‘format’: ‘d.m.Y’, ‘timepicker’: False}

有关选项的完整列表,请参阅 http://xdsoft.net/jqplugins/datetimepicker/

如果需要,您甚至可以将部件应用于 TextLine 字段。

如果您希望为需要时区的日期字段使用部件,可以通过将 default_timezone 设置为 Olson DB/pytz 时区标识符或一个回调(该回调接受上下文作为参数)来告知它。

from plone.directives import form
from plone.supermodel import model
from ftw.datepicker.widget import DateTimePickerWidgetFactory

class MySchema(model.Schema):
    form.widget('due_date',
                DateTimePickerWidgetFactory,
                default_timezone='Europe/Berlin') # or in
    due_date = schema.Datetime()

如果您想为已经定义的字段使用此部件,您也可以这样做。在 IEventBasic 的情况下,由于 plone.appe.event 的工作方式,您必须设置 default_timezone

from plone.autoform.interfaces import WIDGETS_KEY

WIDGETS = {
    MySchema: {'start_date': DatePickerFieldWidget,
               'end_date': DatePickerFieldWidget},
}

for schema, widget_config in WIDGETS.items():
    values = schema.queryTaggedValue(WIDGETS_KEY, {})
    values.update(widget_config)
    schema.setTaggedValue(WIDGETS_KEY, values)

# Or with the default_timezone and/or config set:

from plone.app.event.base import default_timezone
from plone.app.event.dx.behaviors import IEventBasic
from plone.autoform.interfaces import WIDGETS_KEY
from plone.autoform.widgets import ParameterizedWidget

WIDGETS = {
    IEventBasic: {'start': ParameterizedWidget(DatePickerFieldWidget,
                                               default_timezone=default_timezone,
                                               config=my_config),
                  'end': ParameterizedWidget(DatePickerFieldWidget,
                                             default_timezone=default_timezone,
                                             config=my_config)},
}

for schema, widget_config in WIDGETS.items():
    values = schema.queryTaggedValue(WIDGETS_KEY, {})
    values.update(widget_config)
    schema.setTaggedValue(WIDGETS_KEY, values)

开发

可以下载 jQuery 插件,并将其解压缩到 ftw/datepicker/resources/js 内的单独文件夹中。只有配置文件中定义的 CSS 和 JS 文件将被使用。

变更日志

1.6.2 (2020-07-30)

  • 修复如果软件包最初安装于 1.1.0 和 1.1.1 时重新安装的问题(更多信息请见 #30) [Nachtalb, maethu]

1.6.1 (2020-07-29)

  • 修复从 Plone 4 升级到 Plone 5 时在重新安装时失败的问题,这是由于其 IDatetimeRegistry.formats 字段在 registry.xml 中的奇怪行为 [Nachtalb]

1.6.0 (2020-02-27)

  • 为部件添加时区支持 [Nachtalb]

1.5.1 (2020-02-05)

  • IResourceRegistry 在 plone4 中不存在。在“修复资源包”升级步骤中添加条件。 [2e12]

  • 检查 AMD 支持,并相应地加载模块 [tinagerber]

  • 纠正 plone 4 jsregistry 中的错误引用 [tinagerber]

1.5.0 (2019-12-16)

  • 添加构建和加载资源的新方式 [busykoala]

1.4.0 (2019-03-20)

  • 将资源移动到 plone 包 [busykoala]

1.3.4 (2018-07-23)

  • 禁用日期选择器的自动完成和自动填充功能 [tarnap]

1.3.3 (2018-05-24)

  • 修复针对具有多种语言和非组合语言代码的部署的语言格式选择问题 [lgraf]

1.3.2 (2018-04-13)

  • 修复 JS 注册表中的 insert-after 引用问题 [phgross]

1.3.1 (2018-04-12)

  • 使用 minified 版本的 jquery.datetimepicker JS [phgross]

1.3.0 (2018-03-19)

  • 添加对组合(国家特定)语言代码的支持 [mathias.leimgruber]

  • 更新 DateTimePicker 到版本 2.5.18 [mathias.leimgruber]

  • 添加对 Plone 5.1 的支持 [njohner]

1.2.1 (2017-06-22)

  • 通过触发加载和重新加载事件来支持覆盖 [mathias.leimgruber]

1.2.0 (2017-02-22)

  • 更新翻译,使其正常工作 [mathias.leimgruber]

  • 不允许年份早于 1900。Python 2.7 的 strftime 不支持 1900 年之前的年份 [mathias.leimgruber]

  • 实现额外的配置选项 [tschanzt]

  • 停止与 Plone 4.1 和 Plone 4.2 的兼容性 [mbaechtold]

1.1.2 (2016-07-25)

  • 修复 registry.xml 的导入/导出问题 [mbaechtold]

1.1.1 (2015-12-04)

  • 最小化 JS 资源 [mathias.leimgruber]

1.1.0 (2015-09-30)

  • 使根据当前语言使用不同的日期格式成为可能 [tschanzt]

  • 使用XDSoft的DateTimePicker小部件,它也支持时间选择(http://xdsoft.net/jqplugins/datetimepicker/)。注意:已停止对Plone 4.0.x的支持。[mbaechtold]

1.0.5 (2015-08-03)

  • 修复了Plone 4.3站点的日历图标。[phgross]

1.0.4 (2014-02-12)

  • 将软件包移动到GitHub。[lknoepfel]

1.0.3 (2012-11-28)

  • 调整javascript:使用$代替已弃用的jq。[phgross]

1.0.2 (2012-09-11)

1.0.1 (2012-02-24)

  • 添加了一些法语翻译。[ttschanz]

  • 修复了法语语言的日期解析(支持小写月份名称)。[jone]

1.0 (2011-11-17)

  • 最终发布。[phgross]

1.0a10 (2011-09-29)

  • 修复了更改日志,并使其与zest.releaser兼容。[phgross]

1.0a9 (2011-09-29)

1.0a8

  • 修复了测试:将zope.schema.Field()添加到text.form中[7.7.2011, elio.schmutz]

1.0a7

  • 为DateTimeParseError添加了翻译。[ttschanz]

1.0a6

  • 修复了当日期为小写时ftw.datepicker失败的问题。[ttschanz]

1.0a5

  • 移除了安装时的inline导入jquery.ui.all.css,并在安装时安装collective.js.jqueryui。[01.12.2010, fsprenger]

1.0a4

1.0a3

  • 在安装配置文件时,日期选择器被配置为默认小部件。[jbaumann]

1.0a2

1.0

  • 初始发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

ftw.datepicker-1.6.2.tar.gz (177.4 kB 查看散列值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页