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