我正在尝试在创建过去发生的事件时,在Plone 4的“创建事件”表单中执行以下操作之一:
我。将“开始日期”和“结束日期”下拉列表中的默认开始/结束日期设置为更大的值范围(我无法在2001年之前或2016年之后创建事件)。
OR
II。允许用户以文本形式输入事件的开始/结束日期(而不是从下拉列表中选择)。
我无法在任何地方找到控制此表格的内容......经过数小时的谷歌搜索!
答案 0 :(得分:3)
开始和结束字段是标准的Archetypes DateTimeField字段,使用默认的CalendarWidget小部件。
CalendarWidget重用Plone中一些相当古老而又古老的日历宏,这些宏从网站属性中读取可选年份的范围。您可以在ZMI中更改这些内容,找到portal_properties
工具,然后找到其中的site_properties
属性表。要查找的两个属性是:
<强> calendar_starting_year 强>
在日历小部件中显示的起始年份。默认值是2001。
<强> calendar_future_years_available 强>
在今年之后的日历小部件中显示的未来年份数。默认为空,然后小部件可以回溯到5年。
另见site properties documentation;您也可以使用GenericSetup profile来设置这些内容。
这些值适用于日历宏的所有用法。您还可以仅为事件类型设置此项,方法是在CalendarWidget上为startDate和endDate字段设置starting_year
,ending_year
和/或future_years
属性。如果您设置ending_year
,则会忽略future_years
属性。
修补事件架构的Monkey-patch样式:
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
答案 1 :(得分:0)
如果在calendarwidget的定义级别(在ATEvent模式实现的定义内)没有定义starting_year和ending_year,则在内部进行一些关于年份范围的假设
产品/ CMFPlone /皮/ plone_scripts / date_components_support.py
修改date_components_support.py脚本中的相关代码。