I am trying do one of the following in the "Create Event"开发者_如何学Go form in Plone 4, when creating events which happened in the past:
i. Set the default start/end dates in the "Start Date" and "End Date" drop-downs to a larger range of values (I cannot create events before 2001 or after 2016).
OR
ii. Allow users to input start/end dates for events as text (rather than select from a drop-down).
I can't seem to find what is controlling this form anywhere... after hours of googling!
The start and end fields are standard Archetypes DateTimeField fields, using the default CalendarWidget widgets.
The CalendarWidget reuses some fairly old and crufty calendar macros from Plone, and these read the range of selectable years from the site properties. You can change these in the ZMI, find the portal_properties
tool, then the site_properties
property sheet within that. The two properties to look for are:
calendar_starting_year
The starting year to show in the calendar widget. Default is 2001.
calendar_future_years_available
The number of future years, after the current year, to show in the calendar widget. Default is empty, and the widget then falls back to 5 years.
Also see the site properties documentation; you can also use a GenericSetup profile to set these.
These values apply to all usage of the calendar macros. You can also set this for just the event type, by setting the starting_year
, ending_year
and/or future_years
properties on the CalendarWidget for the startDate and endDate fields. If you set an ending_year
the future_years
property is ignored.
Monkey-patch style altering of the event schema:
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
If the starting_year and ending_year are not defined on the definition level of the calendarwidget (inside the definition of the ATEvent schema implementation) then some assumptions about the year range is made inside
Products/CMFPlone/skins/plone_scripts/date_components_support.py
Modify the related code inside the date_components_support.py script.
精彩评论