1 """
2 Clases de base para vistas y formularios
3
4 @author: Juan Pablo Gimenez
5 @contact: jpg@rcom.com.ar
6 """
7 __author__ = """Juan Pablo Gimenez <jpg@rcom.com.ar>"""
8 __docformat__ = 'plaintext'
9
10 from datetime import datetime
11 import zope
12 from zope.i18n.interfaces import IUserPreferredLanguages
13 from zope.i18n.locales import locales, LoadLocaleError
14 from zope.formlib import form
15 from zope.formlib.namedtemplate import NamedTemplate, \
16 NamedTemplateImplementation
17
18 from Products.Five.browser.pagetemplatefile import ZopeTwoPageTemplateFile
19 from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
20 from zope.app.pagetemplate import ViewPageTemplateFile as ZopeViewPageTemplateFile
21 from Products.Five.formlib import formbase
22
23 from platecom.utils.i18n import _
26 """ So this mixin fixes some issues with doing zope3 in zope2
27 for views specifically it puts a debug attribute on the request
28 which some view machinery checks for secondly it lookups the
29 user locale, and attaches it as an attribute on the request where
30 the i10n widget machinery expects to find it.
31 """
32
34 """ Si request.debug no existe lo definimos como False """
35 if not hasattr( request, 'debug'):
36 request.debug = False
37
39 """ Slightly adapted from zope.publisher.http.HTTPRequest.setupLocale
40 Nos aseguramos que exista el request.locale
41 """
42 if getattr( request, 'locale', None) is not None:
43 return
44
45 envadapter = IUserPreferredLanguages(request, None)
46 if envadapter is None:
47 request.locale = locales.getLocale(None, None, None)
48 return
49
50 langs = envadapter.getPreferredLanguages()
51 for httplang in langs:
52 parts = (httplang.split('-') + [None, None])[:3]
53 try:
54 request.locale = locales.getLocale(*parts)
55 return
56 except LoadLocaleError:
57
58 pass
59 else:
60
61
62 request.locale = locales.getLocale(None, None, None)
63
87
111
112 settings_form_template = NamedTemplateImplementation(
113 ZopeViewPageTemplateFile('templates/settings-page.pt'),
114 BaseSettingsForm)
115