When I submit the form adding my discount to a payable item I get an attribute error looking up self.request.locale. For some reason the HTTPRequest does not have a local associated with it. The code that fails is:
parts/zope2/lib/python/zope/formlib/form.py(809)handle_edit_action()805 @action(_("Apply"), condition=haveInputWidgets)806 def handle_edit_action(self, action, data):807 if applyChanges(self.context, self.form_fields, data, self.adapters):808 zope.event.notify(ObjectModifiedEvent(self.context))809 -> formatter = self.request.locale.dates.getFormatter(810 'dateTime', 'medium')811812 try:813 time_zone = idatetime.ITZInfo(self.request)814 except TypeError:I can get my own locale object like this while in the pdb session:
from Acquisition import aq_inner
from zope.component import getMultiAdapter
context = aq_inner(self.context)
portal_state = getMultiAdapter((context, self.request), name=u'plone_portal_state')
current_locale = portal_state.locale()but I'm guessing I shouldn't modify formlib. I'm also curious why my request doesn't have a local associated with it. I've run this both in chrome and firefox on os x, firefox sends HTTP_ACCEPT_LANGUAGE in the headers, chrome does not, but it does send en-US in the user agent. Any thoughts or suggestions on where else I should look? Thanks.-Rob
--
GetPaid for Plone: http://www.plonegetpaid.com (overview info) | http://code.google.com/p/getpaid (code and issue tracker)
You received this message because you are subscribed to the Google Groups "getpaid-dev" group.
To post to this group, send email to getpa...@googlegroups.com
To unsubscribe from this group, send email to getpaid-dev...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/getpaid-dev?hl=en?hl=en
I might be wrong request.locales is some magical Zope 3 variable which gets set by z2.setup_locale() in plone.z3cform. It is not enabled on Zope 3 by default-
Rob> Also a final question on what is the correct localizable way to
Rob> print out currency values? Currently I've just assumed the
Rob> format is x.xx which I know is not correct. Thanks.
I don't know if plone has a service for this, but python's locale module
can give you all the info you need, have a look at LC_MONETARY
localeconv() category of keys, they should be all you need
http://docs.python.org/library/locale.html .
Thanks, it looks like adding that got me past my issue. I do have some questions about the correct way to mark the new dependency on plone.z3cform.I've currently done this:in getpaid.discount's setup.py added plone.z3cform to install-requiresin getpaid.discount's configure.xml added:
<include package="plone.z3cform" />in my buildout cfg (335.cfg from getpaid.buildout)added plone.z3cform to buildout:eggspinned plone.z3cform to 0.6.0pinned z3c.form to 1.9.0A lot of that sounds fragile but I'm not sure how to include the dependencies and the versions without breaking anything else.