Изменить метод ввода в формах событий Plone? - PullRequest
3 голосов
/ 13 апреля 2011

Я пытаюсь выполнить одно из следующих действий в форме «Создать событие» в Plone 4 при создании событий, которые произошли в прошлом:

я. Установите даты начала / окончания по умолчанию в раскрывающихся списках «Дата начала» и «Дата окончания» на больший диапазон значений (я не могу создавать события до 2001 года или после 2016 года).

OR

II. Разрешить пользователям вводить даты начала / окончания событий в виде текста (а не выбирать из выпадающего списка).

Кажется, я нигде не могу найти то, что контролирует эту форму ... после нескольких часов поиска в Google!

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

Начальное и конечное поля являются стандартными полями Archetypes DateTimeField с использованием виджетов CalendarWidget по умолчанию.

CalendarWidget использует некоторые довольно старые и грубые макросы календаря из Plone, и они считывают диапазон выбираемых лет с сайтасвойства.Вы можете изменить их в ZMI, найти инструмент portal_properties, а затем лист свойств site_properties.Два свойства для поиска:

calendar_starting_year

Начальный год для отображения в виджете календаря.По умолчанию 2001.

calendar_future_years_available

Количество будущих лет после текущего года, отображаемых в виджете календаря.По умолчанию пусто, и виджет затем возвращается к 5 годам.

Также см. документацию по свойствам сайта ;Вы также можете использовать профиль GenericSetup для их установки.

Эти значения применяются ко всем видам использования макроса календаря.Вы также можете установить это только для типа события, установив свойства starting_year, ending_year и / или future_years в CalendarWidget для полей startDate и endDate.Если вы установите 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
0 голосов
/ 13 апреля 2011

Если начальный_год и конечный_год не определены на уровне определения календаря (внутри определения реализации схемы ATEvent), то в

Products / CMFPlone / skins / делается несколько предположений относительно диапазона года.plone_scripts / date_components_support.py

Измените связанный код в скрипте date_components_support.py.

...