Validieren
Verfasst: Samstag 28. Mai 2005, 16:16
Hallo,
leider muss ich noch mal Eure Hilfe in Anspruch nehmen:
Folgendes Archetypes hab ich da liegen:
Nun möchte ich, dass der Anwender kein Enddatum eintragen kann, welches vor dem Anfangsdatum liegt und gleichzeitig, dass er keinen Termin in der Vergangenheit eintragen kann.
Dafür verwende ich folgende Methode:
Nun bekomme ich den Fehler, dass der Name REQUEST unbekannt ist. Muss ich hierfür ein speziells Paket importieren? Wer kann mir helfen?
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()