예제 #1
0
 def context_reload(self):
     self.context = {}
     self.timezone = 'utc'
     self.context = self.rpc_exec_auth('/object', 'execute', 'res.users', 'context_get') or {}
     if 'lang' in self.context:
         import translate
         translate.setlang(self.context['lang'])
         options.options['client.lang']=self.context['lang']
         ids = self.rpc_exec_auth('/object', 'execute', 'res.lang', 'search', [('code', '=', self.context['lang'])])
         if ids:
             l = self.rpc_exec_auth('/object', 'execute', 'res.lang', 'read', ids, ['direction'])
             if l and 'direction' in l[0]:
                 common.DIRECTION = l[0]['direction']
                 import gtk
                 if common.DIRECTION == 'rtl':
                     gtk.widget_set_default_direction(gtk.TEXT_DIR_RTL)
                 else:
                     gtk.widget_set_default_direction(gtk.TEXT_DIR_LTR)
     if self.context.get('tz'):
         # FIXME: Timezone handling
         #   rpc_session.timezone contains the server's idea of its timezone (from time.tzname[0]),
         #   which is quite quite unreliable in some cases. We'll fix this in trunk.
         self.timezone = self.rpc_exec_auth('/common', 'timezone_get')
         try:
             pytz.timezone(self.timezone)
         except pytz.UnknownTimeZoneError:
             # Server timezone is not recognized!
             # Time values will be displayed as if located in the server timezone. (nothing we can do)
             pass
예제 #2
0
    def context_reload(self):
        self.context = {}
        self.timezone = 'utc'
        self.context = self.rpc_exec_auth('/object', 'execute', 'res.users', 'context_get') or {}
        if 'lang' in self.context:
            import translate
            translate.setlang(self.context['lang'])
            options.options['client.lang'] = self.context['lang']
            lang_ids = self.rpc_exec_auth('/object', 'execute', 'res.lang', 'search', [('code', '=', self.context['lang'])])
            if lang_ids:
                lang_data = self.rpc_exec_auth('/object', 'execute', 'res.lang', 'read', lang_ids, ['date_format', 'time_format', 'grouping', 'decimal_point', 'thousands_sep','direction'])
                if lang_data and 'direction' in lang_data[0]:
                    common.DIRECTION = lang_data[0]['direction']
                    import gtk
                    if common.DIRECTION == 'rtl':
                        gtk.widget_set_default_direction(gtk.TEXT_DIR_RTL)
                    else:
                        gtk.widget_set_default_direction(gtk.TEXT_DIR_LTR)
                tools.user_locale_format.set_locale_cache(lang_data and lang_data[0] or {})

        if self.context.get('tz'):
            # FIXME: Timezone handling
            #   rpc_session.timezone contains the server's idea of its timezone (from time.tzname[0]),
            #   which is quite quite unreliable in some cases. We'll fix this in trunk.
            self.timezone = self.rpc_exec_auth('/common', 'timezone_get')
            try:
                import pytz
                pytz.timezone(self.timezone)
            except pytz.UnknownTimeZoneError:
                # Server timezone is not recognized!
                # Time values will be displayed as if located in the server timezone. (nothing we can do)
                pass
예제 #3
0
 def _create_default_config(self):
     bin_dir = join(self.openerp_dir, 'bin')
     with working_directory_keeper:
         # import translate from openerp instead of python
         sys.path.insert(0, bin_dir)
         import gtk.glade  # NOQA
         import release
         __version__ = release.version
         import __builtin__
         __builtin__.__dict__['openerp_version'] = __version__
         import translate
         translate.setlang()
         # temp replacing sys.argv to avoid buildout options
         # being interpreted by gtk client's OptionParser
         argv_bak = sys.argv
         sys.argv = [argv_bak[0]]
         import options
         options.configmanager(self.config_path).save()
         sys.argv = argv_bak
예제 #4
0
#gtk.gdk.threads_init() # causes the GTK client to block everything.

import locale
import gettext

import atk
import gtk._gtk
import pango

if os.name == 'nt':
    sys.path.insert(0, os.path.join(os.getcwd(), os.path.dirname(sys.argv[0])))
    os.environ['PATH'] = os.path.join(os.getcwd(), os.path.dirname(
        sys.argv[0])) + ";" + os.environ['PATH']

import translate
translate.setlang()

import options

# On first run, client won't have a language option,
# so try with the LANG environ, or fallback to english
client_lang = options.options['client.lang']
if not client_lang:
    client_lang = os.environ.get('LANG', '').split('.')[0]

translate.setlang(client_lang)

# add new log levels below DEBUG
logging.DEBUG_RPC = logging.DEBUG - 1
logging.addLevelName(logging.DEBUG_RPC, 'DEBUG_RPC')
logging.Logger.debug_rpc = lambda self, msg, *args, **kwargs: self.log(
예제 #5
0
#gtk.gdk.threads_init() # causes the GTK client to block everything.

import locale
import gettext

import atk
import gtk._gtk
import pango

if os.name == 'nt':
    sys.path.insert(0, os.path.join(os.getcwd(), os.path.dirname(sys.argv[0])))
    os.environ['PATH'] = os.path.join(os.getcwd(), os.path.dirname(sys.argv[0])) + ";" + os.environ['PATH']

import translate
translate.setlang()

import options

# On first run, client won't have a language option,
# so try with the LANG environ, or fallback to english
client_lang = options.options['client.lang']
if not client_lang:
    client_lang = os.environ.get('LANG', '').split('.')[0]

translate.setlang(client_lang)


# add new log levels below DEBUG
logging.DEBUG_RPC = logging.DEBUG - 1
logging.addLevelName(logging.DEBUG_RPC, 'DEBUG_RPC')