更改plone事件表单中的输入方法?

更改plone事件表单中的输入方法?,plone,archetypes,Plone,Archetypes,在创建过去发生的事件时,我尝试在Plone 4的“创建事件”表单中执行以下操作之一: 一,。将“开始日期”和“结束日期”下拉列表中的默认开始/结束日期设置为更大范围的值(我无法在2001年之前或2016年之后创建事件) 或 二,。允许用户以文本形式输入事件的开始/结束日期(而不是从下拉列表中选择) 我似乎在任何地方都找不到是什么在控制这个表单。。。经过几个小时的谷歌搜索 如果没有在calendarwidget的定义级别(在ATEvent架构实现的定义中)定义起始年和结束年,则在内部对年范围进行一

在创建过去发生的事件时,我尝试在Plone 4的“创建事件”表单中执行以下操作之一:

一,。将“开始日期”和“结束日期”下拉列表中的默认开始/结束日期设置为更大范围的值(我无法在2001年之前或2016年之后创建事件)

二,。允许用户以文本形式输入事件的开始/结束日期(而不是从下拉列表中选择)


我似乎在任何地方都找不到是什么在控制这个表单。。。经过几个小时的谷歌搜索

如果没有在calendarwidget的定义级别(在ATEvent架构实现的定义中)定义起始年和结束年,则在内部对年范围进行一些假设

产品/CMFPlone/skins/plone\u脚本/date\u components\u support.py


修改date\u components\u support.py脚本中的相关代码。

开始和结束字段是标准的原型DateTimeField字段,使用默认的CalendarWidget小部件

CalendarWidget重用Plone中一些相当旧和粗糙的日历宏,这些宏从站点属性读取可选择的年份范围。您可以在ZMI中更改这些属性,找到
portal\u属性
工具,然后在该工具中找到
site\u属性
属性表。要查找的两个属性是:

日历\u开始年份

在日历小部件中显示的起始年份。违约日期为2001年

日历\未来\可用年份

日历小部件中显示的当前年份之后的未来年份数。默认值为空,小部件将返回到5年

又见,;您也可以使用来设置这些

这些值适用于日历宏的所有用法。您还可以通过在CalendarWidget上为startDate和endDate字段设置
起始年
结束年
和/或
未来年
属性来设置事件类型。如果设置了一个
结束年份
,则将忽略
未来年份
属性

事件架构的Monkey补丁样式更改:

from Products.Archetypes.content import event

ATEventSchema['startDate'].widget.starting_year = 1999
ATEventSchema['startDate'].widget.ending_year = 2020
ATEventSchema['endDate'].widget.starting_year = 1999
ATEventSchema['endDate'].widget.ending_year = 2020

这正是我们所需要的。我编辑了站点属性文件并得到了所需的结果。非常感谢!