DatetimeI18nWidget bug, wie lösen ?
Vladislav Vorobiev <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Message-ID | <[email protected]> |
Hallo,
ich generiere die Formulare mit formlib und auf die Datetime Felder
wende ich DatetimeI18nWidget's an, etwa. so:
from zope.formlib.form import AddForm,
from zope.app.form.browser import DatetimeI18nWidget
class GenericBoxingFormularEdit(AddForm):
form_fields = form.Fields(IFelder)
def setUpWidgets(self, ignore_request=False):
field.custom_widget = DatetimeI18nWidget
Mein Interface (IFelder)
class IFelder
publishDate = Datetime(
title=u"Veroffentlichen",
description=u"",
required = False,
default=datetime.datetime.today(),
)
Es funktioniert, allerdings mit kleinen Einschränkungen.
Wenn die Akzeptierte Sprache im Browser auf deutsch steht, liefert
formlib beim ersten zugriff das englische Datum Format (2009-03-10
22:00:22). Es währe halb so wild, aber beim abschicken bekommt man
eine Fehlermeldung (Datum Zeit ungültig) da anscheinend Zope ein
deutsches Datumsformat erwartet.
Das Problem lässt sich umgehen in dem man die Seite ein paar mal
Aktualisiert. Nach drücken der F5 Taste ist alles wieder in Ordnung
und als Defaultwert wert ist das deutsche Datumsformat eingetragen. Es
passiert immer nach dem Server Neustart. Weiss jemand wie man das
Fixen kann, ohne formlib zu patchen? Es ist gerade der Scharm vom
DatetimI18nWidget dass das Regionsspezifische Datumskonventionen
angewendet werden können.
Das einbauen in die Aufrufmethoden von Zeilen sollcher Art:
locale.setlocale(locale.LC_ALL, "de_DE.UTF-8")
self.context.REQUEST.set('HTTP_ACCEPT_LANGUAGE', 'de')
würde ich sehr ungern, außer dem Hat es nichts gebracht.
Das i18nWidget ruft
formatter = self.request.locale.dates.getFormatter(
self._category, (self.displayStyle or None))
return formatter.parse(input)
Da blicke ich schon nicht mehr durch. Hat jemand ein Tip was man
setzen muss um zumindest immer deutsches Datum zu bekommen, sonst
sieht es nach einem Bug aus.
Das Accept-Language: de
wird übrigens vom Browser immer mitgeschickt. Es ist ein Zope-2.12.3
mit python2.6
_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope