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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.