leider muss ich noch mal Eure Hilfe in Anspruch nehmen:
Folgendes Archetypes hab ich da liegen:
Code: Alles auswählen
from Products.Terminverwaltung.config import *
from Products.Archetypes.public import *
from Products.Archetypes.Marshall import PrimaryFieldMarshaller
from Products.CMFCore import CMFCorePermissions
from Products.PythonScripts.standard import html_quote
from AccessControl import ClassSecurityInfo
schema = BaseSchema + Schema((
LinesField('subject',
searchable=True,
accessor = "Subject",
vocabulary=KATEGORIE,
widget=SelectionWidget(),
),
StringField('betreff',
searchable=1,
widget=StringWidget(),
),
BooleanField('ganztagestermin',
searchable=1,
widget=BooleanWidget(),
),
StringField('ort',
searchable=1,
widget=StringWidget(),
),
DateTimeField('anfang',
searchable=1,
vocabulary = 'post_validate',
widget=CalendarWidget(),
),
DateTimeField('ende',
searchable=1,
vocabulary = 'post_validate',
widget=CalendarWidget(),
),
#StringField('dauer',
# searchable=True,
# vocabulary='setDauer',
# widget=DecimalWidget(),
# ),
TextField('kommentar',
searchable=1,
widget=TextAreaWidget()
),
LinesField('teilnehmer',
searchable=True,
multiValued=True,
vocabulary='_voc_teilnehmer',
widget=MultiSelectionWidget(label="Teilnehmer"),
),
),
)
Dafür verwende ich folgende Methode:
Code: Alles auswählen
def post_validate(self, request=None, errors=None):
"""Validates start and end date
End date must be after start date
"""
#request = context.REQUEST
rstartDate = REQUEST.get('anfang', None)
rendDate = REQUEST.get('ende', None)
if rendDate:
end = DateTime(rendDate)
else:
end = self.end()
if rstartDate:
start = DateTime(rstartDate)
else:
start = self.start()