From 64ec5f36dfaaf100a7fe802065fce3f288746846 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 09:12:06 +0100 Subject: [PATCH 01/36] [IMP] modules: began to replace sys.path appending with an import hook. bzr revid: vmt@openerp.com-20120109081206-p10yack8lhip11gt --- openerp-server | 53 +++++++++++++++++++++++++++++++++++++++ openerp/modules/module.py | 23 +---------------- 2 files changed, 54 insertions(+), 22 deletions(-) diff --git a/openerp-server b/openerp-server index 71a52d5f06b..9a4a04f2970 100755 --- a/openerp-server +++ b/openerp-server @@ -42,6 +42,9 @@ import openerp __author__ = openerp.release.author __version__ = openerp.release.version +import sys +import imp + def check_root_user(): """ Exit if the process's user is 'root' (on POSIX system).""" if os.name == 'posix': @@ -213,6 +216,56 @@ if __name__ == "__main__": check_root_user() openerp.tools.config.parse_config(sys.argv[1:]) + + + class ImportHook(object): + + def find_module(self, module_name, package_path): + module_parts = module_name.split('.') + if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): + return self # We act as a loader too. + + # TODO list of loadable modules can be cached instead of always + # calling get_module_path(). + if len(module_parts) == 1 and \ + openerp.modules.module.get_module_path(module_parts[0]): + return self # We act as a loader too. + + def load_module(self, module_name): + + module_parts = module_name.split('.') + if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): + module_part = module_parts[2] + if module_name in sys.modules: + return sys.modules[module_name] + + if len(module_parts) == 1: + module_part = module_parts[0] + if module_part in sys.modules: + return sys.modules[module_part] + + try: + # Check if the bare module name clashes with another module. + f, path, descr = imp.find_module(module_part) + print "Warning: ambiguous import:", module_name, f, path, descr + except ImportError, e: + # Using `import openerp.addons.` instead of + # `import ` is ugly but not harmful. + pass + + f, path, descr = imp.find_module(module_part, openerp.modules.module.ad_paths) + mod = imp.load_module(module_name, f, path, descr) + sys.modules[module_part] = mod + sys.modules['openerp.addons.' + module_part] = mod + return mod + + openerp.modules.module.initialize_sys_path() + sys.meta_path.append(ImportHook()) + + import openerp.addons.hr + print sys.modules.get('openerp.addons.hr') + print sys.modules.get('hr') + check_postgres_user() openerp.netsvc.init_logger() report_configuration() diff --git a/openerp/modules/module.py b/openerp/modules/module.py index 7f934275894..2282067c3b6 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -63,21 +63,11 @@ def initialize_sys_path(): not in the PYTHONPATH. """ global ad_paths - if ad_paths: return ad_paths = map(lambda m: os.path.abspath(tools.ustr(m.strip())), tools.config['addons_path'].split(',')) - - sys.path.insert(1, _ad) - - ad_cnt=1 - for adp in ad_paths: - if adp != _ad: - sys.path.insert(ad_cnt, adp) - ad_cnt+=1 - - ad_paths.append(_ad) # for get_module_path + ad_paths.append(_ad) # for get_module_path def get_module_path(module, downloaded=False): @@ -298,17 +288,6 @@ def init_module_models(cr, module_name, obj_list): t[1](cr, *t[2]) cr.commit() -# Import hook to write a addon m in both sys.modules['m'] and -# sys.modules['openerp.addons.m']. Otherwise it could be loaded twice -# if imported twice using different names. -#class MyImportHook(object): -# def find_module(self, module_name, package_path): -# print ">>>", module_name, package_path -# def load_module(self, module_name): -# raise ImportError("Restricted") - -#sys.meta_path.append(MyImportHook()) - def register_module_classes(m): """ Register module named m, if not already registered. From e50025945aa7ba328bed87db5a69fcea411d19e6 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 10:03:33 +0100 Subject: [PATCH 02/36] [FIX] modules: removed temporary line/print. bzr revid: vmt@openerp.com-20120109090333-8ptsvj3yokjd59rm --- openerp-server | 4 ---- 1 file changed, 4 deletions(-) diff --git a/openerp-server b/openerp-server index 9a4a04f2970..8d710141500 100755 --- a/openerp-server +++ b/openerp-server @@ -262,10 +262,6 @@ if __name__ == "__main__": openerp.modules.module.initialize_sys_path() sys.meta_path.append(ImportHook()) - import openerp.addons.hr - print sys.modules.get('openerp.addons.hr') - print sys.modules.get('hr') - check_postgres_user() openerp.netsvc.init_logger() report_configuration() From f24a29717ebf506e310cca40638db6ccdf17d4b6 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 11:16:47 +0100 Subject: [PATCH 03/36] [FIX] orm: correctly set the module name on the model, even when imported with `import openerp.modules.`. bzr revid: vmt@openerp.com-20120109101647-4hvy3n6eifzeozzq --- openerp-server | 18 +++++++++++------- openerp/addons/__init__.py | 6 +++--- openerp/modules/module.py | 5 +++-- openerp/osv/orm.py | 11 ++++++++++- openerp/tools/config.py | 3 --- 5 files changed, 27 insertions(+), 16 deletions(-) diff --git a/openerp-server b/openerp-server index 8d710141500..641bc7e97e2 100755 --- a/openerp-server +++ b/openerp-server @@ -222,19 +222,20 @@ if __name__ == "__main__": def find_module(self, module_name, package_path): module_parts = module_name.split('.') - if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): + if len(module_parts) == 3 and module_name.startswith('openerp.modules.'): return self # We act as a loader too. # TODO list of loadable modules can be cached instead of always # calling get_module_path(). if len(module_parts) == 1 and \ - openerp.modules.module.get_module_path(module_parts[0]): + openerp.modules.module.get_module_path(module_parts[0], + display_warning=False): return self # We act as a loader too. def load_module(self, module_name): module_parts = module_name.split('.') - if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): + if len(module_parts) == 3 and module_name.startswith('openerp.modules.'): module_part = module_parts[2] if module_name in sys.modules: return sys.modules[module_name] @@ -247,16 +248,19 @@ if __name__ == "__main__": try: # Check if the bare module name clashes with another module. f, path, descr = imp.find_module(module_part) - print "Warning: ambiguous import:", module_name, f, path, descr + logger = logging.getLogger('init') + logger.warning(""" + Ambiguous import: the OpenERP module `%s` is shadowing another module + (available at %s).""" % (module_name, path)) except ImportError, e: - # Using `import openerp.addons.` instead of - # `import ` is ugly but not harmful. + # Using `import ` instead of + # `import openerp.modules.` is ugly but not harmful. pass f, path, descr = imp.find_module(module_part, openerp.modules.module.ad_paths) mod = imp.load_module(module_name, f, path, descr) sys.modules[module_part] = mod - sys.modules['openerp.addons.' + module_part] = mod + sys.modules['openerp.modules.' + module_part] = mod return mod openerp.modules.module.initialize_sys_path() diff --git a/openerp/addons/__init__.py b/openerp/addons/__init__.py index 1f863eca509..02a5c9aa0a7 100644 --- a/openerp/addons/__init__.py +++ b/openerp/addons/__init__.py @@ -25,9 +25,9 @@ This module serves to contain all OpenERP addons, across all configured addons paths. For the code to manage those addons, see openerp.modules. -Addons are made available here (i.e. under openerp.addons) after -openerp.tools.config.parse_config() is called (so that the addons paths -are known). +Addons are made available under `openerp.modules` after +openerp.tools.config.parse_config() is called (so that the addons paths are +known). This module also conveniently reexports some symbols from openerp.modules. Importing them from here is deprecated. diff --git a/openerp/modules/module.py b/openerp/modules/module.py index 43b11b0d1b0..936c798767a 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -70,7 +70,7 @@ def initialize_sys_path(): ad_paths.append(_ad) # for get_module_path -def get_module_path(module, downloaded=False): +def get_module_path(module, downloaded=False, display_warning=True): """Return the path of the given module. Search the addons paths and return the first path where the given @@ -85,7 +85,8 @@ def get_module_path(module, downloaded=False): if downloaded: return opj(_ad, module) - logger.notifyChannel('init', netsvc.LOG_WARNING, 'module %s: module not found' % (module,)) + if display_warning: + logger.notifyChannel('init', netsvc.LOG_WARNING, 'module %s: module not found' % (module,)) return False diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 8236f096abf..23cc040af47 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -608,7 +608,16 @@ class MetaModel(type): super(MetaModel, self).__init__(name, bases, attrs) return - module_name = self.__module__.split('.')[0] + # The (OpenERP) module name can be in the `openerp.modules` namespace + # or not. For instance module `sale` can be imported as + # `openerp.modules.sale` (the good way) or `sale` (for backward + # compatibility). + module_parts = self.__module__.split('.') + if len(module_parts) > 2 and module_parts[0] == 'openerp' and \ + module_parts[1] == 'modules': + module_name = self.__module__.split('.')[2] + else: + module_name = self.__module__.split('.')[0] if not hasattr(self, '_module'): self._module = module_name diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 00815ed2055..8c980447f52 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -461,9 +461,6 @@ class configmanager(object): if complete: openerp.modules.module.initialize_sys_path() openerp.modules.loading.open_openerp_namespace() - # openerp.addons.__path__.extend(openerp.conf.addons_paths) # This - # is not compatible with initialize_sys_path(): import crm and - # import openerp.addons.crm load twice the module. def _generate_pgpassfile(self): """ From 1560538f8a336e9e44c35bc8fd9b48b7bc2a2d82 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 13:31:23 +0100 Subject: [PATCH 04/36] [IMP] module: use the `openerp.addons.` namespace to load addons. (openerp.modules will be changed in openerp.addons in the next commit). bzr revid: vmt@openerp.com-20120109123123-jt3canjbg0ozs05j --- openerp-server | 61 ++++++++++++++++++++++++++++++--------- openerp/modules/module.py | 2 +- 2 files changed, 49 insertions(+), 14 deletions(-) diff --git a/openerp-server b/openerp-server index 641bc7e97e2..44ba179830d 100755 --- a/openerp-server +++ b/openerp-server @@ -219,6 +219,28 @@ if __name__ == "__main__": class ImportHook(object): + """ + Import hook to load OpenERP addons from multiple paths. + + OpenERP implements its own import-hook to load its addons. OpenERP + addons are Python modules. Originally, they were each living in their + own top-level namespace, e.g. the sale module, or the hr module. For + backward compatibility, `import ` is still supported. Now they + are living in `openerp.addons`. The good way to import such modules is + thus `import openerp.addons.module`. + + For backward compatibility, loading an addons puts it in `sys.modules` + under both the legacy (short) name, and the new (longer) name. This + ensures that + import hr + import openerp.addons.hr + loads the hr addons only once. + + When an OpenERP addons name clashes with some other installed Python + module (for instance this is the case of the `resource` addons), + obtaining the OpenERP addons is only possible with the long name. The + short name will give the expected Python module. + """ def find_module(self, module_name, package_path): module_parts = module_name.split('.') @@ -230,7 +252,20 @@ if __name__ == "__main__": if len(module_parts) == 1 and \ openerp.modules.module.get_module_path(module_parts[0], display_warning=False): - return self # We act as a loader too. + try: + # Check if the bare module name clashes with another module. + f, path, descr = imp.find_module(module_parts[0]) + logger = logging.getLogger('init') + logger.warning(""" + Ambiguous import: the OpenERP module `%s` is shadowed by another + module (available at %s). + To import it, use `import openerp.modules..`.""" % (module_name, path)) + return + except ImportError, e: + # Using `import ` instead of + # `import openerp.modules.` is ugly but not harmful + # and kept for backward compatibility. + return self # We act as a loader too. def load_module(self, module_name): @@ -245,21 +280,21 @@ if __name__ == "__main__": if module_part in sys.modules: return sys.modules[module_part] - try: - # Check if the bare module name clashes with another module. - f, path, descr = imp.find_module(module_part) - logger = logging.getLogger('init') - logger.warning(""" - Ambiguous import: the OpenERP module `%s` is shadowing another module - (available at %s).""" % (module_name, path)) - except ImportError, e: - # Using `import ` instead of - # `import openerp.modules.` is ugly but not harmful. - pass + try: + # Check if the bare module name shadows another module. + f, path, descr = imp.find_module(module_part) + is_shadowing = True + except ImportError, e: + # Using `import ` instead of + # `import openerp.modules.` is ugly but not harmful + # and kept for backward compatibility. + is_shadowing = False + # Note: we don't support circular import. f, path, descr = imp.find_module(module_part, openerp.modules.module.ad_paths) mod = imp.load_module(module_name, f, path, descr) - sys.modules[module_part] = mod + if not is_shadowing: + sys.modules[module_part] = mod sys.modules['openerp.modules.' + module_part] = mod return mod diff --git a/openerp/modules/module.py b/openerp/modules/module.py index 936c798767a..a5c432722ea 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -314,7 +314,7 @@ def register_module_classes(m): try: zip_mod_path = mod_path + '.zip' if not os.path.isfile(zip_mod_path): - __import__(m) + __import__('openerp.modules.' + m) else: zimp = zipimport.zipimporter(zip_mod_path) zimp.load_module(m) From 455e47e5e83bbf70203f7513b876c420bd6abb06 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 13:41:20 +0100 Subject: [PATCH 05/36] [IMP] openerp.addons: openerp.addons is used instead of openerp.modules as the namespace of the OpenERP addons. bzr revid: vmt@openerp.com-20120109124120-06gguu3lzxv49i3j --- openerp-server | 12 ++++++------ openerp/addons/__init__.py | 2 +- openerp/modules/module.py | 2 +- openerp/osv/orm.py | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/openerp-server b/openerp-server index 44ba179830d..c44e6909687 100755 --- a/openerp-server +++ b/openerp-server @@ -244,7 +244,7 @@ if __name__ == "__main__": def find_module(self, module_name, package_path): module_parts = module_name.split('.') - if len(module_parts) == 3 and module_name.startswith('openerp.modules.'): + if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): return self # We act as a loader too. # TODO list of loadable modules can be cached instead of always @@ -259,18 +259,18 @@ if __name__ == "__main__": logger.warning(""" Ambiguous import: the OpenERP module `%s` is shadowed by another module (available at %s). - To import it, use `import openerp.modules..`.""" % (module_name, path)) + To import it, use `import openerp.addons..`.""" % (module_name, path)) return except ImportError, e: # Using `import ` instead of - # `import openerp.modules.` is ugly but not harmful + # `import openerp.addons.` is ugly but not harmful # and kept for backward compatibility. return self # We act as a loader too. def load_module(self, module_name): module_parts = module_name.split('.') - if len(module_parts) == 3 and module_name.startswith('openerp.modules.'): + if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): module_part = module_parts[2] if module_name in sys.modules: return sys.modules[module_name] @@ -286,7 +286,7 @@ if __name__ == "__main__": is_shadowing = True except ImportError, e: # Using `import ` instead of - # `import openerp.modules.` is ugly but not harmful + # `import openerp.addons.` is ugly but not harmful # and kept for backward compatibility. is_shadowing = False @@ -295,7 +295,7 @@ if __name__ == "__main__": mod = imp.load_module(module_name, f, path, descr) if not is_shadowing: sys.modules[module_part] = mod - sys.modules['openerp.modules.' + module_part] = mod + sys.modules['openerp.addons.' + module_part] = mod return mod openerp.modules.module.initialize_sys_path() diff --git a/openerp/addons/__init__.py b/openerp/addons/__init__.py index 02a5c9aa0a7..9554e9bd850 100644 --- a/openerp/addons/__init__.py +++ b/openerp/addons/__init__.py @@ -25,7 +25,7 @@ This module serves to contain all OpenERP addons, across all configured addons paths. For the code to manage those addons, see openerp.modules. -Addons are made available under `openerp.modules` after +Addons are made available under `openerp.addons` after openerp.tools.config.parse_config() is called (so that the addons paths are known). diff --git a/openerp/modules/module.py b/openerp/modules/module.py index a5c432722ea..5c50384c2bc 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -314,7 +314,7 @@ def register_module_classes(m): try: zip_mod_path = mod_path + '.zip' if not os.path.isfile(zip_mod_path): - __import__('openerp.modules.' + m) + __import__('openerp.addons.' + m) else: zimp = zipimport.zipimporter(zip_mod_path) zimp.load_module(m) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 23cc040af47..05da35a5aeb 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -608,13 +608,13 @@ class MetaModel(type): super(MetaModel, self).__init__(name, bases, attrs) return - # The (OpenERP) module name can be in the `openerp.modules` namespace + # The (OpenERP) module name can be in the `openerp.addons` namespace # or not. For instance module `sale` can be imported as - # `openerp.modules.sale` (the good way) or `sale` (for backward + # `openerp.addons.sale` (the good way) or `sale` (for backward # compatibility). module_parts = self.__module__.split('.') if len(module_parts) > 2 and module_parts[0] == 'openerp' and \ - module_parts[1] == 'modules': + module_parts[1] == 'addons': module_name = self.__module__.split('.')[2] else: module_name = self.__module__.split('.')[0] From d348a0de79139db57e5d736e36b44ef7fa35d494 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 13:52:43 +0100 Subject: [PATCH 06/36] [IMP] import hook: moved to a proper location (openerp.modules.module instead of openerp-server). bzr revid: vmt@openerp.com-20120109125243-qhtr070dvtc3akb5 --- openerp-server | 84 ------------------------------------- openerp/modules/module.py | 87 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 86 insertions(+), 85 deletions(-) diff --git a/openerp-server b/openerp-server index c44e6909687..87e75a5cf7b 100755 --- a/openerp-server +++ b/openerp-server @@ -217,90 +217,6 @@ if __name__ == "__main__": check_root_user() openerp.tools.config.parse_config(sys.argv[1:]) - - class ImportHook(object): - """ - Import hook to load OpenERP addons from multiple paths. - - OpenERP implements its own import-hook to load its addons. OpenERP - addons are Python modules. Originally, they were each living in their - own top-level namespace, e.g. the sale module, or the hr module. For - backward compatibility, `import ` is still supported. Now they - are living in `openerp.addons`. The good way to import such modules is - thus `import openerp.addons.module`. - - For backward compatibility, loading an addons puts it in `sys.modules` - under both the legacy (short) name, and the new (longer) name. This - ensures that - import hr - import openerp.addons.hr - loads the hr addons only once. - - When an OpenERP addons name clashes with some other installed Python - module (for instance this is the case of the `resource` addons), - obtaining the OpenERP addons is only possible with the long name. The - short name will give the expected Python module. - """ - - def find_module(self, module_name, package_path): - module_parts = module_name.split('.') - if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): - return self # We act as a loader too. - - # TODO list of loadable modules can be cached instead of always - # calling get_module_path(). - if len(module_parts) == 1 and \ - openerp.modules.module.get_module_path(module_parts[0], - display_warning=False): - try: - # Check if the bare module name clashes with another module. - f, path, descr = imp.find_module(module_parts[0]) - logger = logging.getLogger('init') - logger.warning(""" - Ambiguous import: the OpenERP module `%s` is shadowed by another - module (available at %s). - To import it, use `import openerp.addons..`.""" % (module_name, path)) - return - except ImportError, e: - # Using `import ` instead of - # `import openerp.addons.` is ugly but not harmful - # and kept for backward compatibility. - return self # We act as a loader too. - - def load_module(self, module_name): - - module_parts = module_name.split('.') - if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): - module_part = module_parts[2] - if module_name in sys.modules: - return sys.modules[module_name] - - if len(module_parts) == 1: - module_part = module_parts[0] - if module_part in sys.modules: - return sys.modules[module_part] - - try: - # Check if the bare module name shadows another module. - f, path, descr = imp.find_module(module_part) - is_shadowing = True - except ImportError, e: - # Using `import ` instead of - # `import openerp.addons.` is ugly but not harmful - # and kept for backward compatibility. - is_shadowing = False - - # Note: we don't support circular import. - f, path, descr = imp.find_module(module_part, openerp.modules.module.ad_paths) - mod = imp.load_module(module_name, f, path, descr) - if not is_shadowing: - sys.modules[module_part] = mod - sys.modules['openerp.addons.' + module_part] = mod - return mod - - openerp.modules.module.initialize_sys_path() - sys.meta_path.append(ImportHook()) - check_postgres_user() openerp.netsvc.init_logger() report_configuration() diff --git a/openerp/modules/module.py b/openerp/modules/module.py index 5c50384c2bc..1e46d3c8478 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -56,6 +56,91 @@ loaded = [] logger = netsvc.Logger() +class AddonsImportHook(object): + """ + Import hook to load OpenERP addons from multiple paths. + + OpenERP implements its own import-hook to load its addons. OpenERP + addons are Python modules. Originally, they were each living in their + own top-level namespace, e.g. the sale module, or the hr module. For + backward compatibility, `import ` is still supported. Now they + are living in `openerp.addons`. The good way to import such modules is + thus `import openerp.addons.module`. + + For backward compatibility, loading an addons puts it in `sys.modules` + under both the legacy (short) name, and the new (longer) name. This + ensures that + import hr + import openerp.addons.hr + loads the hr addons only once. + + When an OpenERP addons name clashes with some other installed Python + module (for instance this is the case of the `resource` addons), + obtaining the OpenERP addons is only possible with the long name. The + short name will give the expected Python module. + + Instead of relying on some addons path, an alternative approach would be + to use pkg_resources entry points from already installed Python libraries + (and install our addons as such). Even when implemented, we would still + have to support the addons path approach for backward compatibility. + """ + + def find_module(self, module_name, package_path): + module_parts = module_name.split('.') + if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): + return self # We act as a loader too. + + # TODO list of loadable modules can be cached instead of always + # calling get_module_path(). + if len(module_parts) == 1 and \ + get_module_path(module_parts[0], + display_warning=False): + try: + # Check if the bare module name clashes with another module. + f, path, descr = imp.find_module(module_parts[0]) + logger = logging.getLogger('init') + logger.warning(""" +Ambiguous import: the OpenERP module `%s` is shadowed by another +module (available at %s). +To import it, use `import openerp.addons..`.""" % (module_name, path)) + return + except ImportError, e: + # Using `import ` instead of + # `import openerp.addons.` is ugly but not harmful + # and kept for backward compatibility. + return self # We act as a loader too. + + def load_module(self, module_name): + + module_parts = module_name.split('.') + if len(module_parts) == 3 and module_name.startswith('openerp.addons.'): + module_part = module_parts[2] + if module_name in sys.modules: + return sys.modules[module_name] + + if len(module_parts) == 1: + module_part = module_parts[0] + if module_part in sys.modules: + return sys.modules[module_part] + + try: + # Check if the bare module name shadows another module. + f, path, descr = imp.find_module(module_part) + is_shadowing = True + except ImportError, e: + # Using `import ` instead of + # `import openerp.addons.` is ugly but not harmful + # and kept for backward compatibility. + is_shadowing = False + + # Note: we don't support circular import. + f, path, descr = imp.find_module(module_part, ad_paths) + mod = imp.load_module(module_name, f, path, descr) + if not is_shadowing: + sys.modules[module_part] = mod + sys.modules['openerp.addons.' + module_part] = mod + return mod + def initialize_sys_path(): """ Add all addons paths in sys.path. @@ -68,7 +153,7 @@ def initialize_sys_path(): ad_paths = map(lambda m: os.path.abspath(tools.ustr(m.strip())), tools.config['addons_path'].split(',')) ad_paths.append(_ad) # for get_module_path - + sys.meta_path.append(AddonsImportHook()) def get_module_path(module, downloaded=False, display_warning=True): """Return the path of the given module. From 6ab102ec11ceaaa9618f4eabc9ba9bef329cf128 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 14:09:30 +0100 Subject: [PATCH 07/36] [IMP] addons: use `openerp.addons.` instead of `` with __import__. bzr revid: vmt@openerp.com-20120109130930-xt13kjrxww2whdf0 --- addons/web/common/http.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/addons/web/common/http.py b/addons/web/common/http.py index 0c239decb64..1e84689caad 100644 --- a/addons/web/common/http.py +++ b/addons/web/common/http.py @@ -478,8 +478,6 @@ class Root(object): """ statics = {} for addons_path in self.config.addons_path: - if addons_path not in sys.path: - sys.path.insert(0, addons_path) for module in os.listdir(addons_path): if module not in addons_module: manifest_path = os.path.join(addons_path, module, '__openerp__.py') @@ -488,7 +486,7 @@ class Root(object): manifest = ast.literal_eval(open(manifest_path).read()) manifest['addons_path'] = addons_path _logger.info("Loading %s", module) - m = __import__(module) + m = __import__('openerp.addons.' + module) addons_module[module] = m addons_manifest[module] = manifest statics['/%s/static' % module] = path_static From a0d18681ee7e4a815832d4188b80062ecd87a916 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 14:12:05 +0100 Subject: [PATCH 08/36] [IMP] import: use `openerp.addons.` instead of `` with __import__. bzr revid: vmt@openerp.com-20120109131205-6j78jiw4gxxod1s4 --- addons/mail/wizard/mail_compose_message.py | 3 ++- addons/project/project.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index f5906d2b186..2c554c5f0c7 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -22,13 +22,14 @@ import re import tools -from mail.mail_message import to_email from osv import osv from osv import fields from tools.safe_eval import safe_eval as eval from tools.safe_eval import literal_eval from tools.translate import _ +from ..mail_message import to_email + # main mako-like expression pattern EXPRESSION_PATTERN = re.compile('(\$\{.+?\})') diff --git a/addons/project/project.py b/addons/project/project.py index aabea22da8e..dbd209a6691 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -25,7 +25,7 @@ from datetime import datetime, date from tools.translate import _ from osv import fields, osv -from resource.faces import task as Task +from openerp.addons.resource.faces import task as Task # I think we can remove this in v6.1 since VMT's improvements in the framework ? #class project_project(osv.osv): @@ -316,7 +316,7 @@ class project(osv.osv): resource_pool = self.pool.get('resource.resource') - result = "from resource.faces import *\n" + result = "from openerp.addons.resource.faces import *\n" result += "import datetime\n" for project in self.browse(cr, uid, ids, context=context): u_ids = [i.id for i in project.members] From 85295192d81b1c2c5408489a965848d5a4348587 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 16:10:55 +0100 Subject: [PATCH 09/36] [IMP] crm: avoid circular import (which is not supported by the AddonsImportHook). bzr revid: vmt@openerp.com-20120109151055-fmt3vgi3cffhb5zb --- addons/base_calendar/wizard/base_calendar_invite_attendee.py | 2 +- addons/crm/report/crm_lead_report.py | 2 +- addons/crm/report/crm_phonecall_report.py | 2 +- addons/crm/wizard/crm_add_note.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/base_calendar/wizard/base_calendar_invite_attendee.py b/addons/base_calendar/wizard/base_calendar_invite_attendee.py index a429db8e925..e3a38c069b8 100644 --- a/addons/base_calendar/wizard/base_calendar_invite_attendee.py +++ b/addons/base_calendar/wizard/base_calendar_invite_attendee.py @@ -19,7 +19,7 @@ # ############################################################################## -from base_calendar import base_calendar +from .. import base_calendar from osv import fields, osv from tools.translate import _ import tools diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py index a2215d28740..ab8c7ca7c83 100644 --- a/addons/crm/report/crm_lead_report.py +++ b/addons/crm/report/crm_lead_report.py @@ -21,7 +21,7 @@ from osv import fields,osv import tools -from crm import crm +from .. import crm AVAILABLE_STATES = [ ('draft','Draft'), diff --git a/addons/crm/report/crm_phonecall_report.py b/addons/crm/report/crm_phonecall_report.py index ef3bcccdc9a..ccf0775cfd5 100644 --- a/addons/crm/report/crm_phonecall_report.py +++ b/addons/crm/report/crm_phonecall_report.py @@ -21,7 +21,7 @@ from osv import fields,osv import tools -from crm import crm +from .. import crm AVAILABLE_STATES = [ ('draft','Draft'), diff --git a/addons/crm/wizard/crm_add_note.py b/addons/crm/wizard/crm_add_note.py index 6bd84bda21d..02f592f0136 100644 --- a/addons/crm/wizard/crm_add_note.py +++ b/addons/crm/wizard/crm_add_note.py @@ -1,4 +1,4 @@ -from crm import crm +from .. import crm from osv import fields, osv from tools.translate import _ from mail.mail_message import truncate_text From ca7b405aff962cefada1c0e634fe12306c53beed Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 16:16:42 +0100 Subject: [PATCH 10/36] [IMP] hr_recruitment: avoid circular import (which is not supported by the AddonsImportHook). bzr revid: vmt@openerp.com-20120109151642-6axabx8zevb9jmy5 --- addons/hr_recruitment/report/hr_recruitment_report.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hr_recruitment/report/hr_recruitment_report.py b/addons/hr_recruitment/report/hr_recruitment_report.py index 5234e933813..6ea03bbf114 100644 --- a/addons/hr_recruitment/report/hr_recruitment_report.py +++ b/addons/hr_recruitment/report/hr_recruitment_report.py @@ -20,7 +20,7 @@ ############################################################################## import tools from osv import fields,osv -from hr_recruitment import hr_recruitment +from .. import hr_recruitment from decimal_precision import decimal_precision as dp From a9a9ed989e3f651bb79f7467e8ed281fa75bd80d Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 16:22:16 +0100 Subject: [PATCH 11/36] [FIX] base_module_doc_rst: removed unnecessary import. bzr revid: vmt@openerp.com-20120109152216-5hqhg5a9ssb4ywgy --- addons/base_module_doc_rst/wizard/wizard_tech_guide_rst.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/base_module_doc_rst/wizard/wizard_tech_guide_rst.py b/addons/base_module_doc_rst/wizard/wizard_tech_guide_rst.py index bb02d7c33d2..39933c39a3e 100644 --- a/addons/base_module_doc_rst/wizard/wizard_tech_guide_rst.py +++ b/addons/base_module_doc_rst/wizard/wizard_tech_guide_rst.py @@ -30,9 +30,6 @@ import pooler import os import tools -import base_module_doc_rst - - choose_file_form = '''
From d8a66f14c721b0f55d5c38aaa2e7f2bdb4016a81 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 9 Jan 2012 16:33:02 +0100 Subject: [PATCH 12/36] [FIX] project_long_term: avoid name clash between resource modules. bzr revid: vmt@openerp.com-20120109153302-wrgfheqkl6x2hzw3 --- addons/project_long_term/project_long_term.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 1be274bc4f6..612bd784bb0 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -22,7 +22,7 @@ from datetime import datetime from tools.translate import _ from osv import fields, osv -from resource.faces import task as Task +from openerp.addons.resource.faces import task as Task class project_phase(osv.osv): _name = "project.phase" From 6c1ad196bf39563d62159ef1b988af39360849aa Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 10 Jan 2012 10:27:30 +0100 Subject: [PATCH 13/36] [IMP] openerp.modules: updated initialize_sys_path() docstring (although its name is now inaccurate). bzr revid: vmt@openerp.com-20120110092730-rqewzuo1wa5wy2q5 --- openerp/modules/module.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openerp/modules/module.py b/openerp/modules/module.py index 1e46d3c8478..b82597d656d 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -142,10 +142,13 @@ To import it, use `import openerp.addons..`.""" % (module_name, path)) return mod def initialize_sys_path(): - """ Add all addons paths in sys.path. + """ + Setup an import-hook to be able to import OpenERP addons from the different + addons paths. - This ensures something like ``import crm`` works even if the addons are - not in the PYTHONPATH. + This ensures something like ``import crm`` (or even + ``import openerp.addons.crm``) works even if the addons are not in the + PYTHONPATH. """ global ad_paths if ad_paths: From 40c1de87d821dea9933d920aac13cab1f149f9d9 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Sun, 15 Jan 2012 22:42:14 +0100 Subject: [PATCH 14/36] [REF] remove unused import, always import literal_eval from tools.safe_eval. bzr revid: florent.xicluna@gmail.com-20120115214214-0rjwn80choc9g0fs --- openerp/addons/base/ir/ir_actions.py | 5 ++--- openerp/netsvc.py | 1 - openerp/service/http_server.py | 14 +++++--------- openerp/service/web_services.py | 1 + openerp/service/websrv_lib.py | 3 --- openerp/sql_db.py | 5 ++--- openerp/tests/common.py | 1 - openerp/tests/test_ir_sequence.py | 3 --- openerp/tests/test_xmlrpc.py | 1 - 9 files changed, 10 insertions(+), 24 deletions(-) diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index f02269fa9bc..96b6bae848f 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -18,7 +18,6 @@ # along with this program. If not, see . # ############################################################################## -import ast import copy import logging import os @@ -31,7 +30,7 @@ import netsvc from osv import fields,osv from report.report_sxw import report_sxw, report_rml from tools.config import config -from tools.safe_eval import safe_eval as eval +from tools.safe_eval import safe_eval as eval, literal_eval from tools.translate import _ from socket import gethostname @@ -920,7 +919,7 @@ class act_client(osv.osv): def _get_params(self, cr, uid, ids, field_name, arg, context): return dict([ - ((record.id, ast.literal_eval(record.params_store)) + ((record.id, literal_eval(record.params_store)) if record.params_store else (record.id, False)) for record in self.browse(cr, uid, ids, context=context) ]) diff --git a/openerp/netsvc.py b/openerp/netsvc.py index c1120763ad4..ca08a362771 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -30,7 +30,6 @@ import socket import sys import threading import time -import traceback import types from pprint import pformat diff --git a/openerp/service/http_server.py b/openerp/service/http_server.py index 506138b7fb4..66d701e0681 100644 --- a/openerp/service/http_server.py +++ b/openerp/service/http_server.py @@ -39,21 +39,17 @@ static HTTP, DAV or other. """ -from websrv_lib import * -import openerp.netsvc as netsvc -import errno -import threading -import openerp.tools as tools +import base64 import posixpath import urllib import os -import select -import socket -import xmlrpclib import logging - from SimpleXMLRPCServer import SimpleXMLRPCDispatcher +from websrv_lib import * +import openerp.netsvc as netsvc +import openerp.tools as tools + try: import fcntl except ImportError: diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index f486a050a7f..3fa65d8c9ce 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -39,6 +39,7 @@ import openerp.sql_db as sql_db import openerp.tools as tools import openerp.modules import openerp.exceptions +from openerp.service import http_server #.apidoc title: Exported Service methods #.apidoc module-mods: member-order: bysource diff --git a/openerp/service/websrv_lib.py b/openerp/service/websrv_lib.py index a4bdebcec27..1e276ab7fa2 100644 --- a/openerp/service/websrv_lib.py +++ b/openerp/service/websrv_lib.py @@ -32,9 +32,6 @@ usable in other projects, too. """ -import socket -import base64 -import errno import SocketServer from BaseHTTPServer import * from SimpleHTTPServer import SimpleHTTPRequestHandler diff --git a/openerp/sql_db.py b/openerp/sql_db.py index 63ab2a13fb9..82851abd034 100644 --- a/openerp/sql_db.py +++ b/openerp/sql_db.py @@ -37,8 +37,7 @@ __all__ = ['db_connect', 'close_db'] from threading import currentThread import logging -from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT, ISOLATION_LEVEL_READ_COMMITTED, ISOLATION_LEVEL_SERIALIZABLE,\ - ISOLATION_LEVEL_REPEATABLE_READ +from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT, ISOLATION_LEVEL_READ_COMMITTED, ISOLATION_LEVEL_REPEATABLE_READ from psycopg2.psycopg1 import cursor as psycopg1cursor from psycopg2.pool import PoolError @@ -421,7 +420,7 @@ class ConnectionPool(object): try: result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection) - except psycopg2.Error, e: + except psycopg2.Error: self.__logger.exception('Connection to the database failed') raise self._connections.append((result, True)) diff --git a/openerp/tests/common.py b/openerp/tests/common.py index 57ebead925e..44696384ce7 100644 --- a/openerp/tests/common.py +++ b/openerp/tests/common.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- import os import time -import unittest2 import xmlrpclib import openerp diff --git a/openerp/tests/test_ir_sequence.py b/openerp/tests/test_ir_sequence.py index c926a52ed64..2e9623c09b9 100644 --- a/openerp/tests/test_ir_sequence.py +++ b/openerp/tests/test_ir_sequence.py @@ -7,11 +7,8 @@ # > OPENERP_ADDONS_PATH='../../../addons/trunk' OPENERP_PORT=8069 \ # OPENERP_DATABASE=yy PYTHONPATH=../:. unit2 test_ir_sequence # This assume an existing database. -import os import psycopg2 -import time import unittest2 -import xmlrpclib import openerp import common diff --git a/openerp/tests/test_xmlrpc.py b/openerp/tests/test_xmlrpc.py index 65d40af866a..954d3447360 100644 --- a/openerp/tests/test_xmlrpc.py +++ b/openerp/tests/test_xmlrpc.py @@ -6,7 +6,6 @@ # OPENERP_DATABASE=yy nosetests tests/test_xmlrpc.py # > OPENERP_ADDONS_PATH='../../../addons/trunk' OPENERP_PORT=8069 \ # OPENERP_DATABASE=yy PYTHONPATH=../:. unit2 test_xmlrpc -import os import time import unittest2 import xmlrpclib From 290961f08a60720c7bcf1c892645219537514c68 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Sun, 15 Jan 2012 22:47:02 +0100 Subject: [PATCH 15/36] [REF] consistently use simplejson as json library. bzr revid: florent.xicluna@gmail.com-20120115214702-dh7i7w17ubepc6eo --- openerp/osv/fields.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index 3a8448e22e5..c8226d27dfe 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -46,7 +46,7 @@ import openerp.netsvc as netsvc import openerp.tools as tools from openerp.tools.translate import _ from openerp.tools import float_round, float_repr -import json +import simplejson as json def _symbol_set(symb): if symb == None or symb == False: From 9f3096d31f10fd08ee2b6015c48f35a7b4f3669f Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Mon, 16 Jan 2012 00:52:15 +0100 Subject: [PATCH 16/36] [FIX] missing import and remove unused vars. bzr revid: florent.xicluna@gmail.com-20120115235215-6dgoxyu270bsquba --- openerp/wsgi.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/openerp/wsgi.py b/openerp/wsgi.py index 193d30fb285..b2624e13612 100644 --- a/openerp/wsgi.py +++ b/openerp/wsgi.py @@ -30,12 +30,12 @@ import urllib import xmlrpclib import StringIO +import errno import logging import os import signal import sys import threading -import time import traceback import openerp @@ -261,7 +261,7 @@ def http_to_wsgi(http_dir): def wsgi_handler(environ, start_response): # Extract from the WSGI environment the necessary data. - scheme = environ['wsgi.url_scheme'] + # scheme = environ['wsgi.url_scheme'] headers = {} for key, value in environ.items(): @@ -426,7 +426,7 @@ def serve(): import werkzeug.serving httpd = werkzeug.serving.make_server(interface, port, application, threaded=True) logging.getLogger('wsgi').info('HTTP service (werkzeug) running on %s:%s', interface, port) - except ImportError, e: + except ImportError: import wsgiref.simple_server logging.getLogger('wsgi').warn('Werkzeug module unavailable, falling back to wsgiref.') httpd = wsgiref.simple_server.make_server(interface, port, application) @@ -457,7 +457,6 @@ arbiter_pid = None def on_starting(server): global arbiter_pid arbiter_pid = os.getpid() # TODO check if this is true even after replacing the executable - config = openerp.tools.config #openerp.tools.cache = kill_workers_cache openerp.netsvc.init_logger() openerp.osv.osv.start_object_proxy() @@ -499,7 +498,7 @@ def kill_workers(): except OSError, e: if e.errno == errno.ESRCH: # no such pid return - raise + raise class kill_workers_cache(openerp.tools.ormcache): def clear(self, dbname, *args, **kwargs): From f51dc9a0bd7a19a9e3a5dacba4ecd83a0c9e0edc Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Mon, 16 Jan 2012 00:52:35 +0100 Subject: [PATCH 17/36] [FIX] handle correctly the case when the PATH_INFO ends with a slash. bzr revid: florent.xicluna@gmail.com-20120115235235-kw4vvmp622q8843f --- openerp/wsgi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/wsgi.py b/openerp/wsgi.py index b2624e13612..09d9264966b 100644 --- a/openerp/wsgi.py +++ b/openerp/wsgi.py @@ -152,7 +152,7 @@ def wsgi_xmlrpc_1(environ, start_response): path = environ['PATH_INFO'][len(XML_RPC_PATH_1):] if path.startswith('/'): path = path[1:] - if path.endswith('/'): p = path[:-1] + if path.endswith('/'): path = path[:-1] path = path.split('/') # All routes are hard-coded. @@ -196,7 +196,7 @@ def wsgi_xmlrpc(environ, start_response): path = environ['PATH_INFO'][len(XML_RPC_PATH):] if path.startswith('/'): path = path[1:] - if path.endswith('/'): p = path[:-1] + if path.endswith('/'): path = path[:-1] path = path.split('/') # All routes are hard-coded. From 61f200141499e8476a24039d4de67ba7aeccd6e7 Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Mon, 16 Jan 2012 14:51:55 +0530 Subject: [PATCH 18/36] [FIX] account_followup : Cannot create a followup if i am not admin lp bug: https://launchpad.net/bugs/915426 fixed bzr revid: mdi@tinyerp.com-20120116092155-bcjql4skjlvottgh --- addons/account_followup/security/ir.model.access.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/account_followup/security/ir.model.access.csv b/addons/account_followup/security/ir.model.access.csv index 75af9bf44f2..57292899825 100644 --- a/addons/account_followup/security/ir.model.access.csv +++ b/addons/account_followup/security/ir.model.access.csv @@ -2,5 +2,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_account_followup_followup_line,account_followup.followup.line,model_account_followup_followup_line,account.group_account_user,1,0,0,0 access_account_followup_followup_line_manager,account_followup.followup.line.manager,model_account_followup_followup_line,account.group_account_manager,1,1,1,1 access_account_followup_followup_accountant,account_followup.followup user,model_account_followup_followup,account.group_account_user,1,0,0,0 +access_account_followup_followup_manager,account_followup.followup.manager,model_account_followup_followup,account.group_account_manager,1,1,1,1 access_account_followup_stat_invoice,account_followup.stat.invoice,model_account_followup_stat,account.group_account_invoice,1,1,1,1 access_account_followup_stat_by_partner_manager,account_followup.stat.by.partner,model_account_followup_stat_by_partner,account.group_account_manager,1,1,1,1 From 1497062ba1dbfd814c69fa4250c4eb6a09a5206a Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 16 Jan 2012 11:43:29 +0100 Subject: [PATCH 19/36] [IMP] Removed the openerp.addons prefix when loading modules in stand-alone mode. Changed the import web.common to relative import (because the the import-hook in the server is not able to load modules with self-referential import). bzr revid: vmt@openerp.com-20120116104329-k68li2vul4b3j7ry --- addons/web/common/http.py | 11 ++++++---- addons/web/controllers/main.py | 40 +++++++++++++++++----------------- openerp-web | 2 +- 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/addons/web/common/http.py b/addons/web/common/http.py index 1e84689caad..f3ac8d0bcd9 100644 --- a/addons/web/common/http.py +++ b/addons/web/common/http.py @@ -403,7 +403,7 @@ class Root(object): only used in case the list of databases is requested by the server, will be filtered by this pattern """ - def __init__(self, options): + def __init__(self, options, openerp_addons_namespace=True): self.root = '/web/webclient/home' self.config = options @@ -417,7 +417,7 @@ class Root(object): self.session_cookie = 'sessionid' self.addons = {} - static_dirs = self._load_addons() + static_dirs = self._load_addons(openerp_addons_namespace) if options.serve_static: self.dispatch = werkzeug.wsgi.SharedDataMiddleware( self.dispatch, static_dirs) @@ -471,7 +471,7 @@ class Root(object): return response(environ, start_response) - def _load_addons(self): + def _load_addons(self, openerp_addons_namespace=True): """ Loads all addons at the specified addons path, returns a mapping of static URLs to the corresponding directories @@ -486,7 +486,10 @@ class Root(object): manifest = ast.literal_eval(open(manifest_path).read()) manifest['addons_path'] = addons_path _logger.info("Loading %s", module) - m = __import__('openerp.addons.' + module) + if openerp_addons_namespace: + m = __import__('openerp.addons.' + module) + else: + m = __import__(module) addons_module[module] = m addons_manifest[module] = manifest statics['/%s/static' % module] = path_static diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 852d5138177..e8760eca203 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -19,8 +19,8 @@ from cStringIO import StringIO import babel.messages.pofile import werkzeug.utils -import web.common -openerpweb = web.common.http +from .. import common +openerpweb = common.http #---------------------------------------------------------- # OpenERP Web web Controllers @@ -249,7 +249,7 @@ class WebClient(openerpweb.Controller): @openerpweb.jsonrequest def version_info(self, req): return { - "version": web.common.release.version + "version": common.release.version } class Proxy(openerpweb.Controller): @@ -382,7 +382,7 @@ class Session(openerpweb.Controller): @openerpweb.jsonrequest def authenticate(self, req, db, login, password, base_location=None): wsgienv = req.httprequest.environ - release = web.common.release + release = common.release env = dict( base_location=base_location, HTTP_HOST=wsgienv['HTTP_HOST'], @@ -476,8 +476,8 @@ class Session(openerpweb.Controller): no group by should be performed) """ context, domain = eval_context_and_domain(req.session, - web.common.nonliterals.CompoundContext(*(contexts or [])), - web.common.nonliterals.CompoundDomain(*(domains or []))) + common.nonliterals.CompoundContext(*(contexts or [])), + common.nonliterals.CompoundDomain(*(domains or []))) group_by_sequence = [] for candidate in (group_by_seq or []): @@ -837,14 +837,14 @@ class DataSet(openerpweb.Controller): def _call_kw(self, req, model, method, args, kwargs): for i in xrange(len(args)): - if isinstance(args[i], web.common.nonliterals.BaseContext): + if isinstance(args[i], common.nonliterals.BaseContext): args[i] = req.session.eval_context(args[i]) - elif isinstance(args[i], web.common.nonliterals.BaseDomain): + elif isinstance(args[i], common.nonliterals.BaseDomain): args[i] = req.session.eval_domain(args[i]) for k in kwargs.keys(): - if isinstance(kwargs[k], web.common.nonliterals.BaseContext): + if isinstance(kwargs[k], common.nonliterals.BaseContext): kwargs[k] = req.session.eval_context(kwargs[k]) - elif isinstance(kwargs[k], web.common.nonliterals.BaseDomain): + elif isinstance(kwargs[k], common.nonliterals.BaseDomain): kwargs[k] = req.session.eval_domain(kwargs[k]) return getattr(req.session.model(model), method)(*args, **kwargs) @@ -923,7 +923,7 @@ class View(openerpweb.Controller): xml = self.transform_view(arch, session, evaluation_context) else: xml = ElementTree.fromstring(arch) - fvg['arch'] = web.common.xml2json.Xml2Json.convert_element(xml, preserve_whitespaces) + fvg['arch'] = common.xml2json.Xml2Json.convert_element(xml, preserve_whitespaces) for field in fvg['fields'].itervalues(): if field.get('views'): @@ -1014,7 +1014,7 @@ class View(openerpweb.Controller): def parse_domain(domain, session): """ Parses an arbitrary string containing a domain, transforms it - to either a literal domain or a :class:`web.common.nonliterals.Domain` + to either a literal domain or a :class:`common.nonliterals.Domain` :param domain: the domain to parse, if the domain is not a string it is assumed to be a literal domain and is returned as-is @@ -1027,11 +1027,11 @@ def parse_domain(domain, session): return ast.literal_eval(domain) except ValueError: # not a literal - return web.common.nonliterals.Domain(session, domain) + return common.nonliterals.Domain(session, domain) def parse_context(context, session): """ Parses an arbitrary string containing a context, transforms it - to either a literal context or a :class:`web.common.nonliterals.Context` + to either a literal context or a :class:`common.nonliterals.Context` :param context: the context to parse, if the context is not a string it is assumed to be a literal domain and is returned as-is @@ -1043,7 +1043,7 @@ def parse_context(context, session): try: return ast.literal_eval(context) except ValueError: - return web.common.nonliterals.Context(session, context) + return common.nonliterals.Context(session, context) class ListView(View): _cp_path = "/web/listview" @@ -1107,10 +1107,10 @@ class SearchView(View): @openerpweb.jsonrequest def save_filter(self, req, model, name, context_to_save, domain): Model = req.session.model("ir.filters") - ctx = web.common.nonliterals.CompoundContext(context_to_save) + ctx = common.nonliterals.CompoundContext(context_to_save) ctx.session = req.session ctx = ctx.evaluate() - domain = web.common.nonliterals.CompoundDomain(domain) + domain = common.nonliterals.CompoundDomain(domain) domain.session = req.session domain = domain.evaluate() uid = req.session._uid @@ -1125,10 +1125,10 @@ class SearchView(View): @openerpweb.jsonrequest def add_to_dashboard(self, req, menu_id, action_id, context_to_save, domain, view_mode, name=''): - ctx = web.common.nonliterals.CompoundContext(context_to_save) + ctx = common.nonliterals.CompoundContext(context_to_save) ctx.session = req.session ctx = ctx.evaluate() - domain = web.common.nonliterals.CompoundDomain(domain) + domain = common.nonliterals.CompoundDomain(domain) domain.session = req.session domain = domain.evaluate() @@ -1554,7 +1554,7 @@ class Reports(View): report_srv = req.session.proxy("report") context = req.session.eval_context( - web.common.nonliterals.CompoundContext( + common.nonliterals.CompoundContext( req.context or {}, action[ "context"])) report_data = {} diff --git a/openerp-web b/openerp-web index a3b3d2fa1d5..ec72085db2c 100755 --- a/openerp-web +++ b/openerp-web @@ -86,7 +86,7 @@ if __name__ == "__main__": else: logging.basicConfig(level=getattr(logging, options.log_level.upper())) - app = web.common.http.Root(options) + app = web.common.http.Root(options, openerp_addons_namespace=False) if options.proxy_mode: app = werkzeug.contrib.fixers.ProxyFix(app) From 1a5158aa366af897e427ffe0b215b1355149bed5 Mon Sep 17 00:00:00 2001 From: "Divyesh Makwana (Open ERP)" Date: Tue, 17 Jan 2012 16:19:40 +0530 Subject: [PATCH 20/36] [FIX] sale : Invoicing - item not in translations lp bug: https://launchpad.net/bugs/916704 fixed bzr revid: mdi@tinyerp.com-20120117104940-bi26zopapb49r18g --- addons/sale/sale_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index f5b797c9f66..90d3838f5a0 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -498,7 +498,7 @@ src_model="product.product" groups="base.group_sale_salesman"/> - + From 8d826cc07d8b8751229e7493a73f3e9bb61ae0a3 Mon Sep 17 00:00:00 2001 From: "nicolas.bessi@camptocamp.com" <> Date: Tue, 17 Jan 2012 17:49:40 +0100 Subject: [PATCH 21/36] [IMP] database template in commande line, you can now use --db_template=my_template, default is template0 bzr revid: nicolas.bessi@camptocamp.com-20120117164940-i3g1zcu49x0g60t5 --- gunicorn.conf.py | 6 +++--- openerp/service/web_services.py | 10 ++++++---- openerp/sql_db.py | 4 +++- openerp/tools/config.py | 5 ++++- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 9962493d549..949ccc0b68d 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -35,14 +35,14 @@ conf = openerp.tools.config # Path to the OpenERP Addons repository (comma-separated for # multiple locations) -conf['addons_path'] = '/home/openerp/addons/trunk,/home/openerp/web/trunk/addons' +conf['addons_path'] = '/opt/openerp_61Launchpad/src/webclient/addons/,/opt/openerp_61Launchpad/src/server/openerp/addons' # Optional database config if not using local socket #conf['db_name'] = 'mycompany' #conf['db_host'] = 'localhost' -#conf['db_user'] = 'foo' +conf['db_user'] = 'openerp_geoengine' #conf['db_port'] = 5432 -#conf['db_password'] = 'secret' +conf['db_password'] = 'toto' # OpenERP Log Level # DEBUG=10, DEBUG_RPC=8, DEBUG_RPC_ANSWER=6, DEBUG_SQL=5, INFO=20, diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index f486a050a7f..01d45611d60 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -116,9 +116,10 @@ class db(netsvc.ExportService): def _create_empty_database(self, name): db = sql_db.db_connect('template1') cr = db.cursor() + chosen_template = tools.config['db_template'] try: cr.autocommit(True) # avoid transaction block - cr.execute("""CREATE DATABASE "%s" ENCODING 'unicode' TEMPLATE "template0" """ % name) + cr.execute("""CREATE DATABASE "%s" ENCODING 'unicode' TEMPLATE "%s" """ % (name, chosen_template)) finally: cr.close() @@ -304,7 +305,8 @@ class db(netsvc.ExportService): def exp_list(self, document=False): if not tools.config['list_db'] and not document: raise openerp.exceptions.AccessDenied() - + chosen_template = tools.config['db_template'] + templates_list = tuple(set(['template0', 'template1', 'postgres', chosen_template])) db = sql_db.db_connect('template1') cr = db.cursor() try: @@ -318,9 +320,9 @@ class db(netsvc.ExportService): res = cr.fetchone() db_user = res and str(res[0]) if db_user: - cr.execute("select decode(datname, 'escape') from pg_database where datdba=(select usesysid from pg_user where usename=%s) and datname not in ('template0', 'template1', 'postgres') order by datname", (db_user,)) + cr.execute("select decode(datname, 'escape') from pg_database where datdba=(select usesysid from pg_user where usename=%s) and datname not in %s order by datname", (db_user, templates_list)) else: - cr.execute("select decode(datname, 'escape') from pg_database where datname not in('template0', 'template1','postgres') order by datname") + cr.execute("select decode(datname, 'escape') from pg_database where datname not in %s order by datname", (templates_list,)) res = [str(name) for (name,) in cr.fetchall()] except Exception: res = [] diff --git a/openerp/sql_db.py b/openerp/sql_db.py index 63ab2a13fb9..f3a043d7a54 100644 --- a/openerp/sql_db.py +++ b/openerp/sql_db.py @@ -302,7 +302,9 @@ class Cursor(object): if leak: self._cnx.leaked = True else: - keep_in_pool = self.dbname not in ('template1', 'template0', 'postgres') + chosen_template = tools.config['db_template'] + templates_list = tuple(set(['template0', 'template1', 'postgres', chosen_template])) + keep_in_pool = self.dbname not in templates_list self._pool.give_back(self._cnx, keep_in_pool=keep_in_pool) @check diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 00815ed2055..1d346921a7d 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -68,6 +68,7 @@ class configmanager(object): 'publisher_warranty_url': 'http://services.openerp.com/publisher-warranty/', 'reportgz': False, 'root_path': None, + 'db_template': 'template0', } # Not exposed in the configuration file. @@ -217,6 +218,8 @@ class configmanager(object): help="specify the database port", type="int") group.add_option("--db_maxconn", dest="db_maxconn", type='int', my_default=64, help="specify the the maximum number of physical connections to posgresql") + group.add_option("--db_template", dest="db_template", my_default='template0', + help="specify a custom database template to create a new database") parser.add_option_group(group) group = optparse.OptionGroup(parser, "Internationalisation options", @@ -346,7 +349,7 @@ class configmanager(object): self.options['pidfile'] = False keys = ['xmlrpc_interface', 'xmlrpc_port', 'db_name', 'db_user', 'db_password', 'db_host', - 'db_port', 'logfile', 'pidfile', 'smtp_port', 'cache_timeout', + 'db_port', 'db_template', 'logfile', 'pidfile', 'smtp_port', 'cache_timeout', 'email_from', 'smtp_server', 'smtp_user', 'smtp_password', 'netrpc_interface', 'netrpc_port', 'db_maxconn', 'import_partial', 'addons_path', 'netrpc', 'xmlrpc', 'syslog', 'without_demo', 'timezone', From a3c18f317354e95c09f93f017fee0e40863b7fa0 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 18 Jan 2012 12:18:55 +0100 Subject: [PATCH 22/36] [IMP] tools.literal_eval -> ast.literal_eval (as we drop python 2.5 support). bzr revid: vmt@openerp.com-20120118111855-he177la0butae3jr --- addons/mail/mail_message.py | 4 ++-- addons/mail/wizard/mail_compose_message.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index fd00135816e..1693397f6fa 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -19,6 +19,7 @@ # ############################################################################## +import ast import base64 import dateutil.parser import email @@ -32,7 +33,6 @@ import tools from osv import osv from osv import fields from tools.translate import _ -from tools.safe_eval import literal_eval _logger = logging.getLogger('mail') @@ -508,7 +508,7 @@ class mail_message(osv.osv): object_id=message.res_id and ('%s-%s' % (message.res_id,message.model)), subtype=message.subtype, subtype_alternative=subtype_alternative, - headers=message.headers and literal_eval(message.headers)) + headers=message.headers and ast.literal_eval(message.headers)) res = ir_mail_server.send_email(cr, uid, msg, mail_server_id=message.mail_server_id.id, context=context) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 2c554c5f0c7..de4bcee4f76 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -19,13 +19,13 @@ # ############################################################################## +import ast import re import tools from osv import osv from osv import fields from tools.safe_eval import safe_eval as eval -from tools.safe_eval import literal_eval from tools.translate import _ from ..mail_message import to_email @@ -213,7 +213,7 @@ class mail_compose_message(osv.osv_memory): else: active_model = mail.model active_model_pool = self.pool.get(active_model) - active_ids = active_model_pool.search(cr, uid, literal_eval(mail.filter_id.domain), context=literal_eval(mail.filter_id.context)) + active_ids = active_model_pool.search(cr, uid, ast.literal_eval(mail.filter_id.domain), context=ast.literal_eval(mail.filter_id.context)) for active_id in active_ids: subject = self.render_template(cr, uid, mail.subject, active_model, active_id) From 4d77130107e22969aa37e67fff5c4ab2029c6b81 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 18 Jan 2012 12:24:00 +0100 Subject: [PATCH 23/36] [IMP] tools: removed literal_eval as we drop python 2.6 support. bzr revid: vmt@openerp.com-20120118112400-n7uulbbwm7wr5lpu --- openerp/addons/base/test/base_test.yml | 12 +++--- openerp/tools/safe_eval.py | 58 +------------------------- 2 files changed, 7 insertions(+), 63 deletions(-) diff --git a/openerp/addons/base/test/base_test.yml b/openerp/addons/base/test/base_test.yml index 450719af046..fe22e3a4935 100644 --- a/openerp/addons/base/test/base_test.yml +++ b/openerp/addons/base/test/base_test.yml @@ -13,17 +13,17 @@ 2. Try simple literal definition to verify it works with literal_eval - !python {model: ir.model}: | - from tools.safe_eval import literal_eval + import ast expected = (1, {"a": 9}, (True, False, None)) - actual = literal_eval('(1, {"a": 9}, (True, False, None))') + actual = ast.literal_eval('(1, {"a": 9}, (True, False, None))') assert actual == expected, "Simple python expressions are not working with literal_eval" - 3. Try arithmetic expression in literal_eval to verify it does not work - !python {model: ir.model}: | - from tools.safe_eval import literal_eval + import ast try: - literal_eval('(1, {"a": 2*9}, (True, False, None))') + ast.literal_eval('(1, {"a": 2*9}, (True, False, None))') assert False, "literal_eval should not accept arithmetic expressions" except ValueError: pass @@ -31,9 +31,9 @@ 4. Try forbidden expressions in literal_eval to verify they are not allowed - !python {model: ir.model}: | - from tools.safe_eval import literal_eval + import ast try: - literal_eval('{"a": True.__class__}') + ast.literal_eval('{"a": True.__class__}') assert False, "literal_eval should accept only literals" except ValueError: pass diff --git a/openerp/tools/safe_eval.py b/openerp/tools/safe_eval.py index f215bb2df8d..4a28d9de016 100644 --- a/openerp/tools/safe_eval.py +++ b/openerp/tools/safe_eval.py @@ -30,14 +30,13 @@ condition/math builtins. # - http://code.activestate.com/recipes/286134/ # - safe_eval in lp:~xrg/openobject-server/optimize-5.0 # - safe_eval in tryton http://hg.tryton.org/hgwebdir.cgi/trytond/rev/bbb5f73319ad -# - python 2.6's ast.literal_eval from opcode import HAVE_ARGUMENT, opmap, opname from types import CodeType import logging import os -__all__ = ['test_expr', 'literal_eval', 'safe_eval', 'const_eval', 'ext_eval' ] +__all__ = ['test_expr', 'safe_eval', 'const_eval', 'ext_eval' ] # The time module is usually already provided in the safe_eval environment # but some code, e.g. datetime.datetime.now() (Windows/Python 2.5.2, bug @@ -161,61 +160,6 @@ def expr_eval(expr): c = test_expr(expr, _EXPR_OPCODES) return eval(c) - -# Port of Python 2.6's ast.literal_eval for use under Python 2.5 -SAFE_CONSTANTS = {'None': None, 'True': True, 'False': False} - -try: - # first, try importing directly - from ast import literal_eval -except ImportError: - import _ast as ast - - def _convert(node): - if isinstance(node, ast.Str): - return node.s - elif isinstance(node, ast.Num): - return node.n - elif isinstance(node, ast.Tuple): - return tuple(map(_convert, node.elts)) - elif isinstance(node, ast.List): - return list(map(_convert, node.elts)) - elif isinstance(node, ast.Dict): - return dict((_convert(k), _convert(v)) for k, v - in zip(node.keys, node.values)) - elif isinstance(node, ast.Name): - if node.id in SAFE_CONSTANTS: - return SAFE_CONSTANTS[node.id] - raise ValueError('malformed or disallowed expression') - - def parse(expr, filename='', mode='eval'): - """parse(source[, filename], mode]] -> code object - Parse an expression into an AST node. - Equivalent to compile(expr, filename, mode, PyCF_ONLY_AST). - """ - return compile(expr, filename, mode, ast.PyCF_ONLY_AST) - - def literal_eval(node_or_string): - """literal_eval(expression) -> value - Safely evaluate an expression node or a string containing a Python - expression. The string or node provided may only consist of the - following Python literal structures: strings, numbers, tuples, - lists, dicts, booleans, and None. - - >>> literal_eval('[1,True,"spam"]') - [1, True, 'spam'] - - >>> literal_eval('1+3') - Traceback (most recent call last): - ... - ValueError: malformed or disallowed expression - """ - if isinstance(node_or_string, basestring): - node_or_string = parse(node_or_string) - if isinstance(node_or_string, ast.Expression): - node_or_string = node_or_string.body - return _convert(node_or_string) - def _import(name, globals=None, locals=None, fromlist=None, level=-1): if globals is None: globals = {} From b5caa70b833be8ad63f42b92c70bf5a3e9ccd610 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 18 Jan 2012 12:41:09 +0100 Subject: [PATCH 24/36] [IMP] tools: removed some functools functions (they were there for previous python versions). bzr revid: vmt@openerp.com-20120118114109-txh1cjv503xautty --- openerp/addons/base/ir/ir_mail_server.py | 1 - openerp/osv/osv.py | 2 +- openerp/sql_db.py | 12 ++--- openerp/tools/func.py | 68 ++---------------------- openerp/tools/misc.py | 12 ++--- 5 files changed, 13 insertions(+), 82 deletions(-) diff --git a/openerp/addons/base/ir/ir_mail_server.py b/openerp/addons/base/ir/ir_mail_server.py index 3cb1446a146..aca4778830f 100644 --- a/openerp/addons/base/ir/ir_mail_server.py +++ b/openerp/addons/base/ir/ir_mail_server.py @@ -34,7 +34,6 @@ from osv import osv from osv import fields from openerp.tools.translate import _ from openerp.tools import html2text -from openerp.tools.func import wraps import openerp.tools as tools # ustr was originally from tools.misc. diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py index 85df3e7e219..44597bf6507 100644 --- a/openerp/osv/osv.py +++ b/openerp/osv/osv.py @@ -21,6 +21,7 @@ #.apidoc title: Objects Services (OSV) +from functools import wraps import logging from psycopg2 import IntegrityError, errorcodes @@ -29,7 +30,6 @@ import openerp import openerp.netsvc as netsvc import openerp.pooler as pooler import openerp.sql_db as sql_db -from openerp.tools.func import wraps from openerp.tools.translate import translate from openerp.osv.orm import MetaModel, Model, TransientModel, AbstractModel import openerp.exceptions diff --git a/openerp/sql_db.py b/openerp/sql_db.py index 82851abd034..a268cfd3b2e 100644 --- a/openerp/sql_db.py +++ b/openerp/sql_db.py @@ -35,13 +35,13 @@ See also: the `pooler` module __all__ = ['db_connect', 'close_db'] -from threading import currentThread +from functools import wraps import logging -from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT, ISOLATION_LEVEL_READ_COMMITTED, ISOLATION_LEVEL_REPEATABLE_READ -from psycopg2.psycopg1 import cursor as psycopg1cursor -from psycopg2.pool import PoolError - import psycopg2.extensions +from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT, ISOLATION_LEVEL_READ_COMMITTED, ISOLATION_LEVEL_REPEATABLE_READ +from psycopg2.pool import PoolError +from psycopg2.psycopg1 import cursor as psycopg1cursor +from threading import currentThread import warnings psycopg2.extensions.register_type(psycopg2.extensions.UNICODE) @@ -66,7 +66,7 @@ psycopg2.extensions.register_type(psycopg2.extensions.new_type((700, 701, 1700,) import tools -from tools.func import wraps, frame_codeinfo +from tools.func import frame_codeinfo from datetime import datetime as mdt from datetime import timedelta import threading diff --git a/openerp/tools/func.py b/openerp/tools/func.py index 9f52f1da956..d1797e30b9a 100644 --- a/openerp/tools/func.py +++ b/openerp/tools/func.py @@ -20,68 +20,10 @@ # ############################################################################## -__all__ = ['partial', 'wraps', 'update_wrapper', 'synchronized'] - -try: - from functools import partial, wraps, update_wrapper -except ImportError: - # The functools module doesn't exist in python < 2.5 - # Code taken from python 2.5 - # http://svn.python.org/view/python/tags/r254/Lib/functools.py?view=markup - - def partial(fun, *args, **kwargs): - """ Partial implementation - - See: http://svn.python.org/view/python/tags/r254/Lib/functools.py - """ - def _partial(*args2, **kwargs2): - return fun(*(args+args2), **dict(kwargs, **kwargs2)) - return _partial - - ### --- code from python 2.5 - - # update_wrapper() and wraps() are tools to help write - # wrapper functions that can handle naive introspection - - WRAPPER_ASSIGNMENTS = ('__module__', '__name__', '__doc__') - WRAPPER_UPDATES = ('__dict__',) - def update_wrapper(wrapper, - wrapped, - assigned = WRAPPER_ASSIGNMENTS, - updated = WRAPPER_UPDATES): - """Update a wrapper function to look like the wrapped function - - wrapper is the function to be updated - wrapped is the original function - assigned is a tuple naming the attributes assigned directly - from the wrapped function to the wrapper function (defaults to - functools.WRAPPER_ASSIGNMENTS) - updated is a tuple naming the attributes off the wrapper that - are updated with the corresponding attribute from the wrapped - function (defaults to functools.WRAPPER_UPDATES) - """ - for attr in assigned: - setattr(wrapper, attr, getattr(wrapped, attr)) - for attr in updated: - getattr(wrapper, attr).update(getattr(wrapped, attr, {})) - # Return the wrapper so this can be used as a decorator via partial() - return wrapper - - def wraps(wrapped, - assigned = WRAPPER_ASSIGNMENTS, - updated = WRAPPER_UPDATES): - """Decorator factory to apply update_wrapper() to a wrapper function - - Returns a decorator that invokes update_wrapper() with the decorated - function as the wrapper argument and the arguments to wraps() as the - remaining arguments. Default arguments are as for update_wrapper(). - This is a convenience function to simplify applying partial() to - update_wrapper(). - """ - return partial(update_wrapper, wrapped=wrapped, - assigned=assigned, updated=updated) - +__all__ = ['synchronized'] +from functools import wraps +from inspect import getsourcefile def synchronized(lock_attr='_lock'): def decorator(func): @@ -96,10 +38,6 @@ def synchronized(lock_attr='_lock'): return wrapper return decorator - - -from inspect import getsourcefile - def frame_codeinfo(fframe, back=0): """ Return a (filename, line) pair for a previous frame . @return (filename, lineno) where lineno is either int or string=='' diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index 7fdb2f07386..b888c898e40 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -26,6 +26,7 @@ Miscelleanous tools used by OpenERP. """ +from functools import wraps import inspect import subprocess import logging @@ -50,10 +51,7 @@ from email import Encoders from itertools import islice, izip from lxml import etree from which import which -if sys.version_info[:2] < (2, 4): - from threadinglocal import local -else: - from threading import local +from threading import local try: from html2text import html2text except ImportError: @@ -715,8 +713,6 @@ def human_size(sz): return "%0.2f %s" % (s, units[i]) def logged(f): - from func import wraps - @wraps(f) def wrapper(*args, **kwargs): from pprint import pformat @@ -742,8 +738,6 @@ class profile(object): self.fname = fname def __call__(self, f): - from func import wraps - @wraps(f) def wrapper(*args, **kwargs): class profile_wrapper(object): @@ -1200,4 +1194,4 @@ class UnquoteEvalContext(defaultdict): def __missing__(self, key): return unquote(key) -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 8c3daeea1286cd52c2ba857e198d7061347e5be8 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 18 Jan 2012 12:46:40 +0100 Subject: [PATCH 25/36] [IMP] tools: removed __builtin__.{all,any} (they were there for previous python versions). bzr revid: vmt@openerp.com-20120118114640-sm71f9fi48n4qn3q --- openerp/tools/misc.py | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index b888c898e40..67e4fd6e655 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -545,28 +545,6 @@ class currency(float): def to_xml(s): return s.replace('&','&').replace('<','<').replace('>','>') -# to be compatible with python 2.4 -import __builtin__ -if not hasattr(__builtin__, 'all'): - def all(iterable): - for element in iterable: - if not element: - return False - return True - - __builtin__.all = all - del all - -if not hasattr(__builtin__, 'any'): - def any(iterable): - for element in iterable: - if element: - return True - return False - - __builtin__.any = any - del any - def get_iso_codes(lang): if lang.find('_') != -1: if lang.split('_')[0] == lang.split('_')[1].lower(): From a236a3ac75f58bec71598c0144a2417f6459ee18 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 18 Jan 2012 12:49:10 +0100 Subject: [PATCH 26/36] [IMP] tools: removed deprecated debug() function. bzr revid: vmt@openerp.com-20120118114910-xrynwguzu0e5zsng --- openerp/tools/misc.py | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index 67e4fd6e655..6739f45cc5a 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -731,40 +731,6 @@ class profile(object): return wrapper -def debug(what): - """ - This method allow you to debug your code without print - Example: - >>> def func_foo(bar) - ... baz = bar - ... debug(baz) - ... qnx = (baz, bar) - ... debug(qnx) - ... - >>> func_foo(42) - - This will output on the logger: - - [Wed Dec 25 00:00:00 2008] DEBUG:func_foo:baz = 42 - [Wed Dec 25 00:00:00 2008] DEBUG:func_foo:qnx = (42, 42) - - To view the DEBUG lines in the logger you must start the server with the option - --log-level=debug - - """ - warnings.warn("The tools.debug() method is deprecated, please use logging.", - DeprecationWarning, stacklevel=2) - from inspect import stack - from pprint import pformat - st = stack()[1] - param = re.split("debug *\((.+)\)", st[4][0].strip())[1].strip() - while param.count(')') > param.count('('): param = param[:param.rfind(')')] - what = pformat(what) - if param != what: - what = "%s = %s" % (param, what) - logging.getLogger(st[3]).debug(what) - - __icons_list = ['STOCK_ABOUT', 'STOCK_ADD', 'STOCK_APPLY', 'STOCK_BOLD', 'STOCK_CANCEL', 'STOCK_CDROM', 'STOCK_CLEAR', 'STOCK_CLOSE', 'STOCK_COLOR_PICKER', 'STOCK_CONNECT', 'STOCK_CONVERT', 'STOCK_COPY', 'STOCK_CUT', 'STOCK_DELETE', From c7094ab49fc832871b42261aee0dad485e393203 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 18 Jan 2012 12:57:43 +0100 Subject: [PATCH 27/36] [IMP] tools: removed our copy of the copy module. bzr revid: vmt@openerp.com-20120118115743-ce6p993l8v2kqlux --- openerp/tools/copy.py | 441 ------------------------------------- openerp/wizard/__init__.py | 3 +- 2 files changed, 2 insertions(+), 442 deletions(-) delete mode 100644 openerp/tools/copy.py diff --git a/openerp/tools/copy.py b/openerp/tools/copy.py deleted file mode 100644 index 2f8ddb52cd3..00000000000 --- a/openerp/tools/copy.py +++ /dev/null @@ -1,441 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -""" -FROM Python 2.5 -Generic (shallow and deep) copying operations. - -Interface summary: - - import copy - - x = copy.copy(y) # make a shallow copy of y - x = copy.deepcopy(y) # make a deep copy of y - -For module specific errors, copy.Error is raised. - -The difference between shallow and deep copying is only relevant for -compound objects (objects that contain other objects, like lists or -class instances). - -- A shallow copy constructs a new compound object and then (to the - extent possible) inserts *the same objects* into it that the - original contains. - -- A deep copy constructs a new compound object and then, recursively, - inserts *copies* into it of the objects found in the original. - -Two problems often exist with deep copy operations that don't exist -with shallow copy operations: - - a) recursive objects (compound objects that, directly or indirectly, - contain a reference to themselves) may cause a recursive loop - - b) because deep copy copies *everything* it may copy too much, e.g. - administrative data structures that should be shared even between - copies - -Python's deep copy operation avoids these problems by: - - a) keeping a table of objects already copied during the current - copying pass - - b) letting user-defined classes override the copying operation or the - set of components copied - -This version does not copy types like module, class, function, method, -nor stack trace, stack frame, nor file, socket, window, nor array, nor -any similar types. - -Classes can use the same interfaces to control copying that they use -to control pickling: they can define methods called __getinitargs__(), -__getstate__() and __setstate__(). See the documentation for module -"pickle" for information on these methods. -""" - -import types -from copy_reg import dispatch_table - -class Error(Exception): - pass -error = Error # backward compatibility - -try: - from org.python.core import PyStringMap -except ImportError: - PyStringMap = None - -__all__ = ["Error", "copy", "deepcopy"] - -def copy(x): - """Shallow copy operation on arbitrary Python objects. - - See the module's __doc__ string for more info. - """ - - cls = type(x) - - copier = _copy_dispatch.get(cls) - if copier: - return copier(x) - - copier = getattr(cls, "__copy__", None) - if copier: - return copier(x) - - reductor = dispatch_table.get(cls) - if reductor: - rv = reductor(x) - else: - reductor = getattr(x, "__reduce_ex__", None) - if reductor: - rv = reductor(2) - else: - reductor = getattr(x, "__reduce__", None) - if reductor: - rv = reductor() - else: - raise Error("un(shallow)copyable object of type %s" % cls) - - return _reconstruct(x, rv, 0) - - -_copy_dispatch = d = {} - -def _copy_immutable(x): - return x -for t in (type(None), int, long, float, bool, str, tuple, - frozenset, type, xrange, types.ClassType, - types.BuiltinFunctionType, - types.FunctionType): - d[t] = _copy_immutable -for name in ("ComplexType", "UnicodeType", "CodeType"): - t = getattr(types, name, None) - if t is not None: - d[t] = _copy_immutable - -def _copy_with_constructor(x): - return type(x)(x) -for t in (list, dict, set): - d[t] = _copy_with_constructor - -def _copy_with_copy_method(x): - return x.copy() -if PyStringMap is not None: - d[PyStringMap] = _copy_with_copy_method - -def _copy_inst(x): - if hasattr(x, '__copy__'): - return x.__copy__() - if hasattr(x, '__getinitargs__'): - args = x.__getinitargs__() - y = x.__class__(*args) - else: - y = _EmptyClass() - y.__class__ = x.__class__ - if hasattr(x, '__getstate__'): - state = x.__getstate__() - else: - state = x.__dict__ - if hasattr(y, '__setstate__'): - y.__setstate__(state) - else: - y.__dict__.update(state) - return y -d[types.InstanceType] = _copy_inst - -del d - -def deepcopy(x, memo=None, _nil=None): - """Deep copy operation on arbitrary Python objects. - - See the module's __doc__ string for more info. - """ - - if memo is None: - memo = {} - if _nil is None: - _nil = {} - - d = id(x) - y = memo.get(d, _nil) - if y is not _nil: - return y - - cls = type(x) - - copier = _deepcopy_dispatch.get(cls) - if copier: - y = copier(x, memo) - else: - try: - issc = issubclass(cls, type) - except TypeError: # cls is not a class (old Boost; see SF #502085) - issc = 0 - if issc: - y = _deepcopy_atomic(x, memo) - else: - copier = getattr(x, "__deepcopy__", None) - if copier: - y = copier(memo) - else: - reductor = dispatch_table.get(cls) - if reductor: - rv = reductor(x) - else: - reductor = getattr(x, "__reduce_ex__", None) - if reductor: - rv = reductor(2) - else: - reductor = getattr(x, "__reduce__", None) - if reductor: - rv = reductor() - else: - raise Error( - "un(deep)copyable object of type %s" % cls) - y = _reconstruct(x, rv, 1, memo) - - memo[d] = y - _keep_alive(x, memo) # Make sure x lives at least as long as d - return y - -_deepcopy_dispatch = d = {} - -def _deepcopy_atomic(x, memo): - return x -d[type(None)] = _deepcopy_atomic -d[int] = _deepcopy_atomic -d[long] = _deepcopy_atomic -d[float] = _deepcopy_atomic -d[bool] = _deepcopy_atomic -try: - d[complex] = _deepcopy_atomic -except NameError: - pass -d[str] = _deepcopy_atomic -try: - d[unicode] = _deepcopy_atomic -except NameError: - pass -try: - d[types.CodeType] = _deepcopy_atomic -except AttributeError: - pass -d[type] = _deepcopy_atomic -d[xrange] = _deepcopy_atomic -d[types.ClassType] = _deepcopy_atomic -d[types.BuiltinFunctionType] = _deepcopy_atomic -d[types.FunctionType] = _deepcopy_atomic - -def _deepcopy_list(x, memo): - y = [] - memo[id(x)] = y - for a in x: - y.append(deepcopy(a, memo)) - return y -d[list] = _deepcopy_list - -def _deepcopy_tuple(x, memo): - y = [] - for a in x: - y.append(deepcopy(a, memo)) - d = id(x) - try: - return memo[d] - except KeyError: - pass - for i in range(len(x)): - if x[i] is not y[i]: - y = tuple(y) - break - else: - y = x - memo[d] = y - return y -d[tuple] = _deepcopy_tuple - -def _deepcopy_dict(x, memo): - y = {} - memo[id(x)] = y - for key, value in x.iteritems(): - y[deepcopy(key, memo)] = deepcopy(value, memo) - return y -d[dict] = _deepcopy_dict -if PyStringMap is not None: - d[PyStringMap] = _deepcopy_dict - -def _keep_alive(x, memo): - """Keeps a reference to the object x in the memo. - - Because we remember objects by their id, we have - to assure that possibly temporary objects are kept - alive by referencing them. - We store a reference at the id of the memo, which should - normally not be used unless someone tries to deepcopy - the memo itself... - """ - try: - memo[id(memo)].append(x) - except KeyError: - # aha, this is the first one :-) - memo[id(memo)]=[x] - -def _deepcopy_inst(x, memo): - if hasattr(x, '__deepcopy__'): - return x.__deepcopy__(memo) - if hasattr(x, '__getinitargs__'): - args = x.__getinitargs__() - args = deepcopy(args, memo) - y = x.__class__(*args) - else: - y = _EmptyClass() - y.__class__ = x.__class__ - memo[id(x)] = y - if hasattr(x, '__getstate__'): - state = x.__getstate__() - else: - state = x.__dict__ - state = deepcopy(state, memo) - if hasattr(y, '__setstate__'): - y.__setstate__(state) - else: - y.__dict__.update(state) - return y -d[types.InstanceType] = _deepcopy_inst - -def _reconstruct(x, info, deep, memo=None): - if isinstance(info, str): - return x - assert isinstance(info, tuple) - if memo is None: - memo = {} - n = len(info) - assert n in (2, 3, 4, 5) - callable, args = info[:2] - if n > 2: - state = info[2] - else: - state = {} - if n > 3: - listiter = info[3] - else: - listiter = None - if n > 4: - dictiter = info[4] - else: - dictiter = None - if deep: - args = deepcopy(args, memo) - y = callable(*args) - memo[id(x)] = y - if listiter is not None: - for item in listiter: - if deep: - item = deepcopy(item, memo) - y.append(item) - if dictiter is not None: - for key, value in dictiter: - if deep: - key = deepcopy(key, memo) - value = deepcopy(value, memo) - y[key] = value - if state: - if deep: - state = deepcopy(state, memo) - if hasattr(y, '__setstate__'): - y.__setstate__(state) - else: - if isinstance(state, tuple) and len(state) == 2: - state, slotstate = state - else: - slotstate = None - if state is not None: - y.__dict__.update(state) - if slotstate is not None: - for key, value in slotstate.iteritems(): - setattr(y, key, value) - return y - -del d - -del types - -# Helper for instance creation without calling __init__ -class _EmptyClass: - pass - -def _test(): - l = [None, 1, 2L, 3.14, 'xyzzy', (1, 2L), [3.14, 'abc'], - {'abc': 'ABC'}, (), [], {}] - l1 = copy(l) - print l1==l - l1 = map(copy, l) - print l1==l - l1 = deepcopy(l) - print l1==l - class C: - def __init__(self, arg=None): - self.a = 1 - self.arg = arg - if __name__ == '__main__': - import sys - file = sys.argv[0] - else: - file = __file__ - self.fp = open(file) - self.fp.close() - def __getstate__(self): - return {'a': self.a, 'arg': self.arg} - def __setstate__(self, state): - for key, value in state.iteritems(): - setattr(self, key, value) - def __deepcopy__(self, memo=None): - new = self.__class__(deepcopy(self.arg, memo)) - new.a = self.a - return new - c = C('argument sketch') - l.append(c) - l2 = copy(l) - print l == l2 - print l - print l2 - l2 = deepcopy(l) - print l == l2 - print l - print l2 - l.append({l[1]: l, 'xyz': l[2]}) - l3 = copy(l) - import repr - print map(repr.repr, l) - print map(repr.repr, l1) - print map(repr.repr, l2) - print map(repr.repr, l3) - l3 = deepcopy(l) - import repr - print map(repr.repr, l) - print map(repr.repr, l1) - print map(repr.repr, l2) - print map(repr.repr, l3) - -if __name__ == '__main__': - _test() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/wizard/__init__.py b/openerp/wizard/__init__.py index 3ba23fdab79..848915d5091 100644 --- a/openerp/wizard/__init__.py +++ b/openerp/wizard/__init__.py @@ -19,8 +19,9 @@ # ############################################################################## +import copy + import openerp.netsvc as netsvc -from openerp.tools import copy from openerp.tools.misc import UpdateableStr, UpdateableDict from openerp.tools.translate import translate from lxml import etree From 0f9721533dffe9a44491e84ff888cfaa1f9023f6 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 18 Jan 2012 13:33:34 +0100 Subject: [PATCH 28/36] [IMP] fields: use simplejson instead of json (for consistency with orm.py). bzr revid: vmt@openerp.com-20120118123334-xxunyo1ph8jiwxc0 --- openerp/osv/fields.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index 3a8448e22e5..871fc32f884 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -46,7 +46,7 @@ import openerp.netsvc as netsvc import openerp.tools as tools from openerp.tools.translate import _ from openerp.tools import float_round, float_repr -import json +import simplejson def _symbol_set(symb): if symb == None or symb == False: @@ -1324,10 +1324,10 @@ class serialized(_column): """ def _symbol_set_struct(val): - return json.dumps(val) + return simplejson.dumps(val) def _symbol_get_struct(self, val): - return json.loads(val or '{}') + return simplejson.loads(val or '{}') _prefetch = False _type = 'serialized' From 34c7e0b08d5ed84673767bb2ce94f8458e230f96 Mon Sep 17 00:00:00 2001 From: Minh Tran Date: Wed, 18 Jan 2012 14:04:03 +0100 Subject: [PATCH 29/36] [FIX] Fixed transparent login pane issue in IE8 bzr revid: mit@openerp.com-20120118130403-5nfselwnwtkad4q4 --- addons/web/static/src/css/base.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 32c7f14b345..13068e123a5 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -171,6 +171,7 @@ body { padding: 0; margin: 0; } padding: 5px 10px; color: #eee; border: solid 1px #333; + background: #1e1e1e; background: rgba(30,30,30,0.94); -moz-border-radius: 0 0 8px 8px; -webkit-border-radius: 0 0 8px 8px; @@ -197,6 +198,7 @@ body { padding: 0; margin: 0; } left: 50%; margin: -160px -166px; border: solid 1px #333333; + background: #1e1e1e; background: rgba(30,30,30,0.94); padding: 22px 32px; text-align: left; From fbc0545842651054f917e672201e2394e2a3a9b6 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 18 Jan 2012 14:29:00 +0100 Subject: [PATCH 30/36] [IMP] base: change conflicting address-related "State" fields to "Fed. State" This will avoid ambiguous translations, until we can implement some sort of context-sensitive translation system. lp bug: https://launchpad.net/bugs/918086 fixed bzr revid: odo@openerp.com-20120118132900-427nc6j0p4h25bdn --- openerp/addons/base/i18n/base.pot | 8 ++++---- openerp/addons/base/res/res_bank.py | 4 ++-- openerp/addons/base/res/res_company.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/openerp/addons/base/i18n/base.pot b/openerp/addons/base/i18n/base.pot index 3eb1b6c2084..d92aa56de8d 100644 --- a/openerp/addons/base/i18n/base.pot +++ b/openerp/addons/base/i18n/base.pot @@ -5940,6 +5940,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -10725,10 +10729,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/res/res_bank.py b/openerp/addons/base/res/res_bank.py index 2467936a302..7eba6a4500d 100644 --- a/openerp/addons/base/res/res_bank.py +++ b/openerp/addons/base/res/res_bank.py @@ -31,7 +31,7 @@ class Bank(osv.osv): 'street2': fields.char('Street2', size=128), 'zip': fields.char('Zip', change_default=True, size=24), 'city': fields.char('City', size=128), - 'state': fields.many2one("res.country.state", 'State', + 'state': fields.many2one("res.country.state", 'Fed. State', domain="[('country_id', '=', country)]"), 'country': fields.many2one('res.country', 'Country'), 'email': fields.char('E-Mail', size=64), @@ -130,7 +130,7 @@ class res_partner_bank(osv.osv): 'city': fields.char('City', size=128), 'country_id': fields.many2one('res.country', 'Country', change_default=True), - 'state_id': fields.many2one("res.country.state", 'State', + 'state_id': fields.many2one("res.country.state", 'Fed. State', change_default=True, domain="[('country_id','=',country_id)]"), 'company_id': fields.many2one('res.company', 'Company', ondelete='cascade', help="Only if this bank account belong to your company"), diff --git a/openerp/addons/base/res/res_company.py b/openerp/addons/base/res/res_company.py index f9445ee8517..f04e28832a0 100644 --- a/openerp/addons/base/res/res_company.py +++ b/openerp/addons/base/res/res_company.py @@ -135,7 +135,7 @@ class res_company(osv.osv): 'street2': fields.function(_get_address_data, fnct_inv=_set_address_data, size=128, type='char', string="Street2", multi='address'), 'zip': fields.function(_get_address_data, fnct_inv=_set_address_data, size=24, type='char', string="Zip", multi='address'), 'city': fields.function(_get_address_data, fnct_inv=_set_address_data, size=24, type='char', string="City", multi='address'), - 'state_id': fields.function(_get_address_data, fnct_inv=_set_address_data, type='many2one', domain="[('country_id', '=', country_id)]", relation='res.country.state', string="State", multi='address'), + 'state_id': fields.function(_get_address_data, fnct_inv=_set_address_data, type='many2one', domain="[('country_id', '=', country_id)]", relation='res.country.state', string="Fed. State", multi='address'), 'bank_ids': fields.one2many('res.partner.bank','company_id', 'Bank Accounts', help='Bank accounts related to this company'), 'country_id': fields.function(_get_address_data, fnct_inv=_set_address_data, type='many2one', relation='res.country', string="Country", multi='address'), 'email': fields.function(_get_address_data, fnct_inv=_set_address_data, size=64, type='char', string="Email", multi='address'), From f1e60702e3a97cc763c046a13fd121d508f18c54 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 18 Jan 2012 15:48:26 +0100 Subject: [PATCH 31/36] [FIX] re-add auto_search lp bug: https://launchpad.net/bugs/908696 fixed bzr revid: xmo@openerp.com-20120118144826-3aio04bfrf35wx7i --- addons/web/static/src/js/views.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index cc108837f88..4853eebfab6 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -310,11 +310,15 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View this.views[view_type].deferred.resolve(view_type); $.when(view_promise).then(function() { self.on_controller_inited(view_type, controller); - if (self.searchview && view.controller.searchable !== false) { + if (self.searchview + && self.flags.auto_search !== false + && view.controller.searchable !== false) { self.searchview.ready.then(self.searchview.do_search); } }); - } else if (this.searchview && view.controller.searchable !== false) { + } else if (this.searchview + && self.flags.auto_search !== false + && view.controller.searchable !== false) { this.searchview.ready.then(this.searchview.do_search); } @@ -448,6 +452,7 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner // do not have it yet (and we don't, because we've not called our own // ``_super()``) rpc requests will blow up. var flags = action.flags || {}; + flags.auto_search = !!action.auto_search; if (action.res_model == 'board.board' && action.view_mode === 'form') { // Special case for Dashboards _.extend(flags, { From 518240854173151c04af7eeb0e0fd4c81a0c26c9 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 18 Jan 2012 17:15:17 +0100 Subject: [PATCH 32/36] [imp] added id to fields values to please tfr bzr revid: nicolas.vanhoren@openerp.com-20120118161517-dz9nwcgp49vbqgwj --- addons/web/static/src/js/view_form.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index ebcbfc18100..1892c4c085d 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -537,6 +537,8 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# get_fields_values: function(blacklist) { blacklist = blacklist || []; var values = {}; + var ids = this.get_selected_ids(); + values["id"] = ids.length > 0 ? ids[0] : false; _.each(this.fields, function(value, key) { if (_.include(blacklist, key)) return; From 3e7c98f5e5c45d2f4651582e50c1a65e874d0ad0 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 18 Jan 2012 17:17:35 +0100 Subject: [PATCH 33/36] [imp] cleared main html bzr revid: nicolas.vanhoren@openerp.com-20120118161735-2yuxisndfq92ctoi --- addons/web/controllers/main.html | 21 +++++++++++++++++++++ addons/web/controllers/main.py | 22 +++------------------- addons/web/static/src/js/chrome.js | 1 - 3 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 addons/web/controllers/main.html diff --git a/addons/web/controllers/main.html b/addons/web/controllers/main.html new file mode 100644 index 00000000000..fd0be5ba349 --- /dev/null +++ b/addons/web/controllers/main.html @@ -0,0 +1,21 @@ + + + + + OpenERP + + %(css)s + %(js)s + + + + + + \ No newline at end of file diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index a514cafb6c8..2af7ac115d8 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -84,24 +84,9 @@ def concat_files(file_list, reader=None, intersperse=""): files_concat = intersperse.join(files_content) return files_concat,files_timestamp -html_template = """ - - - - OpenERP - - %(css)s - %(js)s - - - - -""" +html_template = None +with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "main.html")) as html_file: + html_template = html_file.read() class WebClient(openerpweb.Controller): _cp_path = "/web/webclient" @@ -207,7 +192,6 @@ class WebClient(openerpweb.Controller): 'js': js, 'css': css, 'modules': simplejson.dumps(self.server_wide_modules(req)), - 'init': 'new s.web.WebClient().start();', } return r diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 8b9a0d4efc6..6a9e860aadc 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -1064,7 +1064,6 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie }, start: function() { var self = this; - this.$element = $(document.body); if (jQuery.param != undefined && jQuery.deparam(jQuery.param.querystring()).kitten != undefined) { this.$element.addClass("kitten-mode-activated"); this.$element.delegate('img.oe-record-edit-link-img', 'hover', function(e) { From f1dc3773b83e571e1b1a4da2fb17cf22dcec7117 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 18 Jan 2012 17:22:03 +0100 Subject: [PATCH 34/36] [FIX] email_template: properly pass target model in composition wizard reloading action This fixes reloading of the composition wizard after selecting templating options in the new web client. lp bug: https://launchpad.net/bugs/886144 fixed bzr revid: odo@openerp.com-20120118162203-17d1tug4lw40wpex --- addons/email_template/wizard/mail_compose_message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index 61006f96782..beb59ba1eea 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -37,7 +37,7 @@ def _reopen(self,res_id,model): # save original model in context, otherwise # it will be lost on the action's context switch - 'mail.compose.target.model': model, + 'context': {'mail.compose.target.model': model} } class mail_compose_message(osv.osv_memory): From 035b5b8bd5749f6b208228ccab73ff7b1e3d4170 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 19 Jan 2012 04:50:28 +0000 Subject: [PATCH 35/36] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120119045028-1hxblsnuw1g2r2vj --- openerp/addons/base/i18n/af.po | 12 +- openerp/addons/base/i18n/am.po | 12 +- openerp/addons/base/i18n/ar.po | 18 +-- openerp/addons/base/i18n/bg.po | 12 +- openerp/addons/base/i18n/bs.po | 12 +- openerp/addons/base/i18n/ca.po | 12 +- openerp/addons/base/i18n/cs.po | 12 +- openerp/addons/base/i18n/da.po | 12 +- openerp/addons/base/i18n/de.po | 16 ++- openerp/addons/base/i18n/el.po | 12 +- openerp/addons/base/i18n/en_GB.po | 12 +- openerp/addons/base/i18n/es.po | 12 +- openerp/addons/base/i18n/es_CL.po | 12 +- openerp/addons/base/i18n/es_EC.po | 12 +- openerp/addons/base/i18n/et.po | 12 +- openerp/addons/base/i18n/eu.po | 12 +- openerp/addons/base/i18n/fa.po | 12 +- openerp/addons/base/i18n/fa_AF.po | 12 +- openerp/addons/base/i18n/fi.po | 12 +- openerp/addons/base/i18n/fr.po | 18 +-- openerp/addons/base/i18n/gl.po | 12 +- openerp/addons/base/i18n/he.po | 12 +- openerp/addons/base/i18n/hr.po | 12 +- openerp/addons/base/i18n/hu.po | 12 +- openerp/addons/base/i18n/hy.po | 12 +- openerp/addons/base/i18n/id.po | 12 +- openerp/addons/base/i18n/is.po | 12 +- openerp/addons/base/i18n/it.po | 12 +- openerp/addons/base/i18n/ja.po | 12 +- openerp/addons/base/i18n/kk.po | 12 +- openerp/addons/base/i18n/ko.po | 12 +- openerp/addons/base/i18n/lt.po | 12 +- openerp/addons/base/i18n/lv.po | 12 +- openerp/addons/base/i18n/mk.po | 159 +++++++++++++++++---------- openerp/addons/base/i18n/mn.po | 12 +- openerp/addons/base/i18n/nb.po | 12 +- openerp/addons/base/i18n/nl.po | 12 +- openerp/addons/base/i18n/nl_BE.po | 12 +- openerp/addons/base/i18n/pl.po | 12 +- openerp/addons/base/i18n/pt.po | 12 +- openerp/addons/base/i18n/pt_BR.po | 12 +- openerp/addons/base/i18n/ro.po | 12 +- openerp/addons/base/i18n/ru.po | 12 +- openerp/addons/base/i18n/sk.po | 12 +- openerp/addons/base/i18n/sl.po | 12 +- openerp/addons/base/i18n/sq.po | 12 +- openerp/addons/base/i18n/sr.po | 12 +- openerp/addons/base/i18n/sr@latin.po | 12 +- openerp/addons/base/i18n/sv.po | 12 +- openerp/addons/base/i18n/th.po | 12 +- openerp/addons/base/i18n/tlh.po | 12 +- openerp/addons/base/i18n/tr.po | 12 +- openerp/addons/base/i18n/uk.po | 12 +- openerp/addons/base/i18n/ur.po | 12 +- openerp/addons/base/i18n/vi.po | 12 +- openerp/addons/base/i18n/zh_CN.po | 12 +- openerp/addons/base/i18n/zh_HK.po | 12 +- openerp/addons/base/i18n/zh_TW.po | 12 +- 58 files changed, 449 insertions(+), 410 deletions(-) diff --git a/openerp/addons/base/i18n/af.po b/openerp/addons/base/i18n/af.po index 6ec0e1c2573..3a58d6aa074 100644 --- a/openerp/addons/base/i18n/af.po +++ b/openerp/addons/base/i18n/af.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:26+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:39+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/am.po b/openerp/addons/base/i18n/am.po index d082c64fbff..f0d74f46943 100644 --- a/openerp/addons/base/i18n/am.po +++ b/openerp/addons/base/i18n/am.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:27+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:40+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/ar.po b/openerp/addons/base/i18n/ar.po index 4001ab9f0c5..eeffd038953 100644 --- a/openerp/addons/base/i18n/ar.po +++ b/openerp/addons/base/i18n/ar.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-09 04:49+0000\n" -"X-Generator: Launchpad (build 14640)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:40+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -1526,7 +1526,7 @@ msgstr "أدوات" #. module: base #: selection:ir.property,type:0 msgid "Float" -msgstr "" +msgstr "عشري" #. module: base #: model:ir.module.category,name:base.module_category_warehouse_management @@ -4960,7 +4960,7 @@ msgstr "" #: field:ir.ui.menu,parent_id:0 #: field:wizard.ir.model.menu.create,menu_id:0 msgid "Parent Menu" -msgstr "القائمة الأم" +msgstr "القائمة الرئيسية" #. module: base #: field:res.partner.bank,owner_name:0 @@ -6474,6 +6474,10 @@ msgstr "صلاحيات الإنشاء" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "المحافظة / الولاية" @@ -11426,7 +11430,7 @@ msgstr "" #. module: base #: view:ir.module.module:0 msgid "Created Menus" -msgstr "" +msgstr "أنشاء القوائم" #. module: base #: model:ir.actions.act_window,name:base.action_country_state @@ -11710,10 +11714,6 @@ msgstr "نوع التقرير" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/bg.po b/openerp/addons/base/i18n/bg.po index 8eba27e5cf8..cacbe8baa49 100644 --- a/openerp/addons/base/i18n/bg.po +++ b/openerp/addons/base/i18n/bg.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:28+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:41+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6486,6 +6486,10 @@ msgstr "Задай достъп" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Област" @@ -11714,10 +11718,6 @@ msgstr "Вид справка" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/bs.po b/openerp/addons/base/i18n/bs.po index 74b1e3a063a..20cd2d1ecc9 100644 --- a/openerp/addons/base/i18n/bs.po +++ b/openerp/addons/base/i18n/bs.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:27+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:40+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6393,6 +6393,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11598,10 +11602,6 @@ msgstr "Tip izvještaja" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/ca.po b/openerp/addons/base/i18n/ca.po index 726b3554b8f..85db68749fd 100644 --- a/openerp/addons/base/i18n/ca.po +++ b/openerp/addons/base/i18n/ca.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:28+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:41+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6584,6 +6584,10 @@ msgstr "Permís per crear" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Província" @@ -11872,10 +11876,6 @@ msgstr "Tipus d'informe" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/cs.po b/openerp/addons/base/i18n/cs.po index bfea6fcfc76..97ddf259079 100644 --- a/openerp/addons/base/i18n/cs.po +++ b/openerp/addons/base/i18n/cs.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:28+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:41+0000\n" +"X-Generator: Launchpad (build 14692)\n" "X-Poedit-Language: Czech\n" #. module: base @@ -6467,6 +6467,10 @@ msgstr "Vytvořit přístup" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Fed. stát" @@ -11717,10 +11721,6 @@ msgstr "Typ výkazu" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/da.po b/openerp/addons/base/i18n/da.po index 357e3d27506..1d1895430bc 100644 --- a/openerp/addons/base/i18n/da.po +++ b/openerp/addons/base/i18n/da.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:28+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:41+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/de.po b/openerp/addons/base/i18n/de.po index cb4b9b411c5..a4d51ad0512 100644 --- a/openerp/addons/base/i18n/de.po +++ b/openerp/addons/base/i18n/de.po @@ -15,8 +15,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:29+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:42+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -3639,8 +3639,6 @@ msgid "" "Value Added Tax number. Check the box if the partner is subjected to the " "VAT. Used by the VAT legal statement." msgstr "" -"Umsatzsteuer Identifikationsnummer. Aktivieren Sie die Option, wenn der " -"Partner Ust-pflichtig ist. Wird von der Ust-Voranmeldung verwendet." #. module: base #: selection:ir.sequence,implementation:0 @@ -3728,7 +3726,7 @@ msgstr "EAN Prüfung" #. module: base #: field:res.partner,vat:0 msgid "VAT" -msgstr "USt." +msgstr "USt-IdNr. / UID" #. module: base #: field:res.users,new_password:0 @@ -6576,6 +6574,10 @@ msgstr "Erzeuge Zugriff" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Bundesländer" @@ -11863,10 +11865,6 @@ msgstr "Report Type" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/el.po b/openerp/addons/base/i18n/el.po index 375b4143c81..65c5889d564 100644 --- a/openerp/addons/base/i18n/el.po +++ b/openerp/addons/base/i18n/el.po @@ -12,8 +12,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:29+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:43+0000\n" +"X-Generator: Launchpad (build 14692)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" "X-Poedit-SourceCharset: utf-8\n" @@ -6522,6 +6522,10 @@ msgstr "Δημιουργία Πρόσβασης" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Πολιτεία" @@ -11758,10 +11762,6 @@ msgstr "Τύπος Αναφοράς" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po index d08da5154cd..ff4d6c80b4b 100644 --- a/openerp/addons/base/i18n/en_GB.po +++ b/openerp/addons/base/i18n/en_GB.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:35+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:49+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6555,6 +6555,10 @@ msgstr "Create Access" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Fed. State" @@ -11832,10 +11836,6 @@ msgstr "Report Type" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po index a28babfe413..c12f9a1440b 100644 --- a/openerp/addons/base/i18n/es.po +++ b/openerp/addons/base/i18n/es.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:43+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:47+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6681,6 +6681,10 @@ msgstr "Permiso para crear" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Provincia" @@ -11970,10 +11974,6 @@ msgstr "Tipo de informe" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/es_CL.po b/openerp/addons/base/i18n/es_CL.po index b14861ddc1b..036494342a1 100644 --- a/openerp/addons/base/i18n/es_CL.po +++ b/openerp/addons/base/i18n/es_CL.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:36+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:49+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6595,6 +6595,10 @@ msgstr "Permiso para crear" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Provincia" @@ -11884,10 +11888,6 @@ msgstr "Tipo de informe" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/es_EC.po b/openerp/addons/base/i18n/es_EC.po index 08094123305..5a5c52a8ec1 100644 --- a/openerp/addons/base/i18n/es_EC.po +++ b/openerp/addons/base/i18n/es_EC.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:36+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:50+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6585,6 +6585,10 @@ msgstr "Permiso para crear" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Provincia" @@ -11877,10 +11881,6 @@ msgstr "Tipo de informe" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/et.po b/openerp/addons/base/i18n/et.po index feb800d653e..256c3cb4aae 100644 --- a/openerp/addons/base/i18n/et.po +++ b/openerp/addons/base/i18n/et.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:28+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:42+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6425,6 +6425,10 @@ msgstr "Loomisõigus" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Maakond" @@ -11638,10 +11642,6 @@ msgstr "Aruande tüüp" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/eu.po b/openerp/addons/base/i18n/eu.po index a0145d39156..7aa3187e1ee 100644 --- a/openerp/addons/base/i18n/eu.po +++ b/openerp/addons/base/i18n/eu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:27+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:40+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/fa.po b/openerp/addons/base/i18n/fa.po index 9bf69bd7b5e..0933edad6d7 100644 --- a/openerp/addons/base/i18n/fa.po +++ b/openerp/addons/base/i18n/fa.po @@ -9,8 +9,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:32+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:45+0000\n" +"X-Generator: Launchpad (build 14692)\n" "X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" "X-Poedit-Language: Persian\n" @@ -6428,6 +6428,10 @@ msgstr "پدیدن دسترسی" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "ایالت فدرال" @@ -11643,10 +11647,6 @@ msgstr "نوع گزارش" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/fa_AF.po b/openerp/addons/base/i18n/fa_AF.po index d42874ed09b..f90dfad10a1 100644 --- a/openerp/addons/base/i18n/fa_AF.po +++ b/openerp/addons/base/i18n/fa_AF.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:36+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:50+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/fi.po b/openerp/addons/base/i18n/fi.po index 5102b2646ea..177ee8a4fe7 100644 --- a/openerp/addons/base/i18n/fi.po +++ b/openerp/addons/base/i18n/fi.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-17 04:44+0000\n" -"X-Generator: Launchpad (build 14676)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:42+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6560,6 +6560,10 @@ msgstr "Luo käyttöoikeus" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Osavaltio" @@ -11834,10 +11838,6 @@ msgstr "Raportin tyyppi" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po index b6cede61f90..9a1e7479336 100644 --- a/openerp/addons/base/i18n/fr.po +++ b/openerp/addons/base/i18n/fr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:29+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:42+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -560,7 +560,7 @@ msgstr "" #. module: base #: view:base.module.upgrade:0 msgid "Your system will be updated." -msgstr "Votre système sera mis à jour." +msgstr "Votre système va être mis à jour." #. module: base #: field:ir.actions.todo,note:0 @@ -1269,7 +1269,7 @@ msgstr "Haïti" #: view:ir.ui.view:0 #: selection:ir.ui.view,type:0 msgid "Search" -msgstr "Rechercher" +msgstr "Recherche" #. module: base #: code:addons/osv.py:132 @@ -1846,7 +1846,7 @@ msgstr "Partenaires" #. module: base #: field:res.partner.category,parent_left:0 msgid "Left parent" -msgstr "Parenté de gauche" +msgstr "Parent de gauche" #. module: base #: model:ir.module.module,shortdesc:base.module_project_mrp @@ -6590,6 +6590,10 @@ msgstr "Accès en création" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "État fédéral" @@ -11888,10 +11892,6 @@ msgstr "Type de rapport" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/gl.po b/openerp/addons/base/i18n/gl.po index 8e9727ff852..3841b7e4677 100644 --- a/openerp/addons/base/i18n/gl.po +++ b/openerp/addons/base/i18n/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:29+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:43+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6572,6 +6572,10 @@ msgstr "Crear Acceso" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Estado Federal" @@ -11860,10 +11864,6 @@ msgstr "Tipo de informe" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/he.po b/openerp/addons/base/i18n/he.po index fde447de303..249ff1f271f 100644 --- a/openerp/addons/base/i18n/he.po +++ b/openerp/addons/base/i18n/he.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:29+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:43+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6413,6 +6413,10 @@ msgstr "צור גישה" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11625,10 +11629,6 @@ msgstr "סוג דוח" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po index e8c0833b066..dc4aecd198e 100644 --- a/openerp/addons/base/i18n/hr.po +++ b/openerp/addons/base/i18n/hr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:33+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:46+0000\n" +"X-Generator: Launchpad (build 14692)\n" "Language: hr\n" #. module: base @@ -6495,6 +6495,10 @@ msgstr "Pravo kreiranja" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Država/Pokrajina/Županija" @@ -11742,10 +11746,6 @@ msgstr "Tip izvještaja" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/hu.po b/openerp/addons/base/i18n/hu.po index 286c1ec5fae..a888835421f 100644 --- a/openerp/addons/base/i18n/hu.po +++ b/openerp/addons/base/i18n/hu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:30+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:43+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6564,6 +6564,10 @@ msgstr "Létrehozási hozzáférés" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Szöv. állam" @@ -11859,10 +11863,6 @@ msgstr "Jelentés típus" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/hy.po b/openerp/addons/base/i18n/hy.po index b8aafa8dd87..a836aab8517 100644 --- a/openerp/addons/base/i18n/hy.po +++ b/openerp/addons/base/i18n/hy.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:27+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:40+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/id.po b/openerp/addons/base/i18n/id.po index 834cf5f8c17..726ee81c716 100644 --- a/openerp/addons/base/i18n/id.po +++ b/openerp/addons/base/i18n/id.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:30+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:43+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6389,6 +6389,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11594,10 +11598,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/is.po b/openerp/addons/base/i18n/is.po index 12f1109e23f..d2bf11de821 100644 --- a/openerp/addons/base/i18n/is.po +++ b/openerp/addons/base/i18n/is.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:30+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:43+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/it.po b/openerp/addons/base/i18n/it.po index 4c832895fd9..77b218e7e52 100644 --- a/openerp/addons/base/i18n/it.po +++ b/openerp/addons/base/i18n/it.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:30+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:44+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6586,6 +6586,10 @@ msgstr "Creazione" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Stato fed." @@ -11880,10 +11884,6 @@ msgstr "Tipo Report" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po index de7633ae7e9..44556d092a7 100644 --- a/openerp/addons/base/i18n/ja.po +++ b/openerp/addons/base/i18n/ja.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-14 05:10+0000\n" -"X-Generator: Launchpad (build 14664)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:44+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/kk.po b/openerp/addons/base/i18n/kk.po index d4e91a14c7f..bb2e50df775 100644 --- a/openerp/addons/base/i18n/kk.po +++ b/openerp/addons/base/i18n/kk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:31+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:44+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/ko.po b/openerp/addons/base/i18n/ko.po index a1773cab8bc..6deafd6fde5 100644 --- a/openerp/addons/base/i18n/ko.po +++ b/openerp/addons/base/i18n/ko.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:31+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:44+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6442,6 +6442,10 @@ msgstr "접근 생성" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11651,10 +11655,6 @@ msgstr "리포트 타입" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/lt.po b/openerp/addons/base/i18n/lt.po index 6fffa645c66..2632f0d5725 100644 --- a/openerp/addons/base/i18n/lt.po +++ b/openerp/addons/base/i18n/lt.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:31+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:44+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6407,6 +6407,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Savivaldybė" @@ -11624,10 +11628,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/lv.po b/openerp/addons/base/i18n/lv.po index 83af47cb678..501555cdf61 100644 --- a/openerp/addons/base/i18n/lv.po +++ b/openerp/addons/base/i18n/lv.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:31+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:44+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6440,6 +6440,10 @@ msgstr "Izveidot Pieeju" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Fed. Valsts" @@ -11658,10 +11662,6 @@ msgstr "Atskaites Tips" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/mk.po b/openerp/addons/base/i18n/mk.po index 04e44b8a87c..2f51513d62d 100644 --- a/openerp/addons/base/i18n/mk.po +++ b/openerp/addons/base/i18n/mk.po @@ -14,13 +14,13 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:31+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:45+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh msgid "Saint Helena" -msgstr "" +msgstr "Света Елена" #. module: base #: view:ir.actions.report.xml:0 @@ -74,7 +74,7 @@ msgstr "" #. module: base #: field:base.language.import,code:0 msgid "Code (eg:en__US)" -msgstr "" +msgstr "Код (пр. en_US)" #. module: base #: view:workflow:0 @@ -94,7 +94,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Hungarian / Magyar" -msgstr "" +msgstr "Унгарски / Magyar" #. module: base #: selection:base.language.install,lang:0 @@ -111,7 +111,7 @@ msgstr "" #. module: base #: field:ir.actions.act_window,display_menu_tip:0 msgid "Display Menu Tips" -msgstr "" +msgstr "Прикажи ги советите во менито" #. module: base #: help:ir.cron,model:0 @@ -122,7 +122,7 @@ msgstr "" #. module: base #: view:ir.module.module:0 msgid "Created Views" -msgstr "" +msgstr "Креирани прикази" #. module: base #: code:addons/base/ir/ir_model.py:519 @@ -131,6 +131,8 @@ msgid "" "You can not write in this document (%s) ! Be sure your user belongs to one " "of these groups: %s." msgstr "" +"Не може да запишете во документот (%s)! Осигурајте се дека вашата кориснича " +"сметка припаѓа на една од овие групи: %s." #. module: base #: model:ir.module.module,description:base.module_event_project @@ -153,7 +155,7 @@ msgstr "" #. module: base #: field:res.partner,ref:0 msgid "Reference" -msgstr "" +msgstr "Референца" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba @@ -163,7 +165,7 @@ msgstr "" #. module: base #: field:ir.actions.act_window,target:0 msgid "Target Window" -msgstr "" +msgstr "Целен прозорец" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_analytic_plans @@ -179,7 +181,7 @@ msgstr "" #: code:addons/base/res/res_users.py:541 #, python-format msgid "Warning!" -msgstr "" +msgstr "Предупредување!" #. module: base #: code:addons/base/ir/ir_model.py:331 @@ -193,7 +195,7 @@ msgstr "" #: code:addons/osv.py:129 #, python-format msgid "Constraint Error" -msgstr "" +msgstr "Грешка при ограничувањето" #. module: base #: model:ir.model,name:base.model_ir_ui_view_custom @@ -203,13 +205,13 @@ msgstr "" #. module: base #: model:res.country,name:base.sz msgid "Swaziland" -msgstr "" +msgstr "Свазиленд" #. module: base #: code:addons/orm.py:4171 #, python-format msgid "created." -msgstr "" +msgstr "креирано." #. module: base #: model:ir.module.module,shortdesc:base.module_mrp_subproduct @@ -223,6 +225,9 @@ msgid "" "Some installed modules depend on the module you plan to Uninstall :\n" " %s" msgstr "" +"Некои инсталирани модули зависат од модулите кои пробувате да ги " +"отстраните:\n" +"%s" #. module: base #: field:ir.sequence,number_increment:0 @@ -233,7 +238,7 @@ msgstr "" #: model:ir.actions.act_window,name:base.action_res_company_tree #: model:ir.ui.menu,name:base.menu_action_res_company_tree msgid "Company's Structure" -msgstr "" +msgstr "Структура на компанијата" #. module: base #: selection:base.language.install,lang:0 @@ -256,7 +261,7 @@ msgstr "" #: code:addons/base/module/wizard/base_export_language.py:60 #, python-format msgid "new" -msgstr "" +msgstr "ново" #. module: base #: field:ir.actions.report.xml,multi:0 @@ -266,17 +271,17 @@ msgstr "" #. module: base #: field:ir.module.category,module_nr:0 msgid "Number of Modules" -msgstr "" +msgstr "Број на модули" #. module: base #: help:multi_company.default,company_dest_id:0 msgid "Company to store the current record" -msgstr "" +msgstr "Компанија за зачувување на тековниот запис" #. module: base #: field:res.partner.bank.type.field,size:0 msgid "Max. Size" -msgstr "" +msgstr "Макс. големина" #. module: base #: model:ir.module.category,name:base.module_category_reporting @@ -296,7 +301,7 @@ msgstr "" #: field:res.partner,subname:0 #: field:res.partner.address,name:0 msgid "Contact Name" -msgstr "" +msgstr "Име на контактот" #. module: base #: code:addons/base/module/wizard/base_export_language.py:56 @@ -320,7 +325,7 @@ msgstr "" #. module: base #: sql_constraint:res.lang:0 msgid "The name of the language must be unique !" -msgstr "" +msgstr "Името на јазикот мора да биде уникатно !" #. module: base #: model:ir.module.module,description:base.module_import_base @@ -365,7 +370,7 @@ msgstr "" #. module: base #: field:res.partner,credit_limit:0 msgid "Credit Limit" -msgstr "" +msgstr "Лимит на кредитот" #. module: base #: model:ir.module.module,description:base.module_web_graph @@ -375,7 +380,7 @@ msgstr "" #. module: base #: field:ir.model.data,date_update:0 msgid "Update Date" -msgstr "" +msgstr "Датум на ажурирање" #. module: base #: model:ir.module.module,shortdesc:base.module_base_action_rule @@ -385,12 +390,12 @@ msgstr "" #. module: base #: view:ir.attachment:0 msgid "Owner" -msgstr "" +msgstr "Сопственик" #. module: base #: field:ir.actions.act_window,src_model:0 msgid "Source Object" -msgstr "" +msgstr "Изворен објект" #. module: base #: model:res.partner.bank.type,format_layout:base.bank_normal @@ -411,13 +416,13 @@ msgstr "" #: field:res.widget.user,widget_id:0 #: field:res.widget.wizard,widgets_list:0 msgid "Widget" -msgstr "" +msgstr "Елемент" #. module: base #: view:ir.model.access:0 #: field:ir.model.access,group_id:0 msgid "Group" -msgstr "" +msgstr "Група" #. module: base #: constraint:res.lang:0 @@ -431,7 +436,7 @@ msgstr "" #: field:ir.translation,name:0 #: field:res.partner.bank.type.field,name:0 msgid "Field Name" -msgstr "" +msgstr "Име на полето" #. module: base #: model:ir.module.module,shortdesc:base.module_pad_project @@ -455,7 +460,7 @@ msgstr "" #. module: base #: model:res.country,name:base.tv msgid "Tuvalu" -msgstr "" +msgstr "Тувалу" #. module: base #: selection:ir.model,state:0 @@ -465,7 +470,7 @@ msgstr "" #. module: base #: field:res.lang,date_format:0 msgid "Date Format" -msgstr "" +msgstr "Формат на датумот" #. module: base #: model:ir.module.module,shortdesc:base.module_base_report_designer @@ -476,12 +481,12 @@ msgstr "" #: field:res.bank,email:0 #: field:res.partner.address,email:0 msgid "E-Mail" -msgstr "" +msgstr "Е-пошта" #. module: base #: model:res.country,name:base.an msgid "Netherlands Antilles" -msgstr "" +msgstr "Холандски антили" #. module: base #: model:res.country,name:base.ro @@ -495,6 +500,8 @@ msgid "" "You can not remove the admin user as it is used internally for resources " "created by OpenERP (updates, module installation, ...)" msgstr "" +"Не може да го отстраните admin корисникот затоа што се користи интерно за " +"ресурси креирани од OpenERP (ажурирања, инсталација на модули, ...)" #. module: base #: view:ir.values:0 @@ -514,7 +521,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Bosnian / bosanski jezik" -msgstr "" +msgstr "Босански / Bosanski jezik" #. module: base #: help:ir.actions.report.xml,attachment_use:0 @@ -522,6 +529,8 @@ msgid "" "If you check this, then the second time the user prints with same attachment " "name, it returns the previous report." msgstr "" +"Ако го штиклирате ова, тогаш вториот пат кога корисникот ќе принта со истото " +"име на приврзокот, ќе биде вратен претходниот извештај." #. module: base #: model:ir.module.module,shortdesc:base.module_sale_layout @@ -531,7 +540,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (VE) / Español (VE)" -msgstr "" +msgstr "Шпански (ВЕ) / Español (VE)" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice @@ -541,13 +550,13 @@ msgstr "" #. module: base #: view:base.module.upgrade:0 msgid "Your system will be updated." -msgstr "" +msgstr "Вашиот систем ќе се ажурира." #. module: base #: field:ir.actions.todo,note:0 #: selection:ir.property,type:0 msgid "Text" -msgstr "" +msgstr "Текст" #. module: base #: model:ir.module.module,description:base.module_account_followup @@ -576,12 +585,12 @@ msgstr "" #. module: base #: field:res.country,name:0 msgid "Country Name" -msgstr "" +msgstr "Име на државата" #. module: base #: model:res.country,name:base.co msgid "Colombia" -msgstr "" +msgstr "Колумбија" #. module: base #: code:addons/orm.py:1357 @@ -595,21 +604,23 @@ msgid "" "The ISO country code in two chars.\n" "You can use this field for quick search." msgstr "" +"ISO државен код со два знака.\n" +"Може да го користите ова поле за брзо пребарување." #. module: base #: model:res.country,name:base.pw msgid "Palau" -msgstr "" +msgstr "Пало" #. module: base #: view:res.partner:0 msgid "Sales & Purchases" -msgstr "" +msgstr "Продажба и набавки" #. module: base #: view:ir.translation:0 msgid "Untranslated" -msgstr "" +msgstr "Непреведено" #. module: base #: help:ir.actions.act_window,context:0 @@ -628,7 +639,7 @@ msgstr "" #: code:addons/base/ir/ir_model.py:282 #, python-format msgid "Custom fields must have a name that starts with 'x_' !" -msgstr "" +msgstr "Прилагодените полиња мора да имаат име кое почнува со 'x_' !" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_mx @@ -648,7 +659,7 @@ msgstr "" #. module: base #: view:base.language.export:0 msgid "Export done" -msgstr "" +msgstr "Извезувањето заврши" #. module: base #: model:ir.module.module,shortdesc:base.module_outlook @@ -659,7 +670,7 @@ msgstr "" #: view:ir.model:0 #: field:ir.model,name:0 msgid "Model Description" -msgstr "" +msgstr "Опис на моделот" #. module: base #: model:ir.actions.act_window,help:base.bank_account_update @@ -684,7 +695,7 @@ msgstr "" #. module: base #: model:res.country,name:base.jo msgid "Jordan" -msgstr "" +msgstr "Јордан" #. module: base #: help:ir.cron,nextcall:0 @@ -700,7 +711,7 @@ msgstr "" #. module: base #: model:res.country,name:base.er msgid "Eritrea" -msgstr "" +msgstr "Еритреа" #. module: base #: sql_constraint:res.company:0 @@ -711,13 +722,13 @@ msgstr "" #: view:res.config:0 #: view:res.config.installer:0 msgid "description" -msgstr "" +msgstr "Опис" #. module: base #: model:ir.ui.menu,name:base.menu_base_action_rule #: model:ir.ui.menu,name:base.menu_base_action_rule_admin msgid "Automated Actions" -msgstr "" +msgstr "Автоматизирани дејства" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_ro @@ -762,12 +773,12 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Swedish / svenska" -msgstr "" +msgstr "Шведска / Svenska" #. module: base #: model:res.country,name:base.rs msgid "Serbia" -msgstr "" +msgstr "Србија" #. module: base #: selection:ir.translation,type:0 @@ -777,7 +788,7 @@ msgstr "" #. module: base #: model:res.country,name:base.kh msgid "Cambodia, Kingdom of" -msgstr "" +msgstr "Клаството Камбоџа" #. module: base #: field:base.language.import,overwrite:0 @@ -2084,7 +2095,7 @@ msgstr "" #. module: base #: selection:res.request,state:0 msgid "active" -msgstr "" +msgstr "активно" #. module: base #: code:addons/base/res/res_partner.py:272 @@ -3570,7 +3581,7 @@ msgstr "" #. module: base #: help:res.lang,iso_code:0 msgid "This ISO code is the name of po files to use for translations" -msgstr "" +msgstr "ISO кодот е името на датотеките кои се користат за преведување" #. module: base #: view:ir.rule:0 @@ -4638,7 +4649,7 @@ msgstr "" #. module: base #: selection:ir.model.fields,select_level:0 msgid "Not Searchable" -msgstr "" +msgstr "Не може да се пребарува" #. module: base #: field:ir.config_parameter,key:0 @@ -6385,6 +6396,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11605,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 @@ -13442,7 +13453,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Greek / Ελληνικά" -msgstr "" +msgstr "Грчки / Ελληνικά" #. module: base #: model:res.country,name:base.do @@ -14884,4 +14895,34 @@ msgid "Russian / русский язык" msgstr "" #~ msgid "Metadata" -#~ msgstr "Метаподатоци" +#~ msgstr "Мета податоци" + +#~ msgid "Wood Suppliers" +#~ msgstr "Снабдувачи на дрва" + +#, python-format +#~ msgid "\"smtp_server\" needs to be set to send mails to users" +#~ msgstr "" +#~ "\"smtp_server\" треба да биде подесен да испраќа пошта до корисниците" + +#, python-format +#~ msgid "The read method is not implemented on this object !" +#~ msgstr "Методот за читање не е имплементиран во овој објект !" + +#~ msgid "Schedule Upgrade" +#~ msgstr "Закажана надградба" + +#~ msgid "Miscellaneous Suppliers" +#~ msgstr "Разновидни добавувачи" + +#~ msgid "Certified" +#~ msgstr "Сертифицирано" + +#~ msgid "New User" +#~ msgstr "Нов корисник" + +#~ msgid "Partner Form" +#~ msgstr "Формулар за партнери" + +#~ msgid "Event Type" +#~ msgstr "Тип на настан" diff --git a/openerp/addons/base/i18n/mn.po b/openerp/addons/base/i18n/mn.po index 36f0e3ba50b..56a86246e0a 100644 --- a/openerp/addons/base/i18n/mn.po +++ b/openerp/addons/base/i18n/mn.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:32+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:45+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6465,6 +6465,10 @@ msgstr "Хандалт үүсгэх" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Аймаг/Хот" @@ -11687,10 +11691,6 @@ msgstr "Тайлангийн төрөл" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/nb.po b/openerp/addons/base/i18n/nb.po index 4f1d9ae1cf7..b036bbfdaa2 100644 --- a/openerp/addons/base/i18n/nb.po +++ b/openerp/addons/base/i18n/nb.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:32+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:45+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6461,6 +6461,10 @@ msgstr "Tilgang til å opprette" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Stat (USA)" @@ -11676,10 +11680,6 @@ msgstr "Rapporttype" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/nl.po b/openerp/addons/base/i18n/nl.po index 8efc33c5eb2..6c2c21c479c 100644 --- a/openerp/addons/base/i18n/nl.po +++ b/openerp/addons/base/i18n/nl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:28+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:42+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6577,6 +6577,10 @@ msgstr "Aanmaken" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Staat/Provincie" @@ -11865,10 +11869,6 @@ msgstr "Soort overzicht" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/nl_BE.po b/openerp/addons/base/i18n/nl_BE.po index e4a35618946..5f71c543dad 100644 --- a/openerp/addons/base/i18n/nl_BE.po +++ b/openerp/addons/base/i18n/nl_BE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:36+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:49+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6400,6 +6400,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11605,10 +11609,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/pl.po b/openerp/addons/base/i18n/pl.po index ac7e35f58aa..3756c58ed8a 100644 --- a/openerp/addons/base/i18n/pl.po +++ b/openerp/addons/base/i18n/pl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:32+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:45+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6512,6 +6512,10 @@ msgstr "Prawo tworzenia" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "woj." @@ -11761,10 +11765,6 @@ msgstr "Typ raportu" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/pt.po b/openerp/addons/base/i18n/pt.po index 022f01f71dd..897941cb327 100644 --- a/openerp/addons/base/i18n/pt.po +++ b/openerp/addons/base/i18n/pt.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:32+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:46+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6500,6 +6500,10 @@ msgstr "Criação" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Estado federal" @@ -11766,10 +11770,6 @@ msgstr "Tipo de relatório" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/pt_BR.po b/openerp/addons/base/i18n/pt_BR.po index 4073ab15725..a5926f77589 100644 --- a/openerp/addons/base/i18n/pt_BR.po +++ b/openerp/addons/base/i18n/pt_BR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:43+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:49+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6576,6 +6576,10 @@ msgstr "Acesso Criação" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Estado(UF)" @@ -11865,10 +11869,6 @@ msgstr "Tipo de Relatório" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/ro.po b/openerp/addons/base/i18n/ro.po index 41b20552b42..72228770172 100644 --- a/openerp/addons/base/i18n/ro.po +++ b/openerp/addons/base/i18n/ro.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:33+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:46+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6590,6 +6590,10 @@ msgstr "Acces creare" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Stat federal" @@ -11888,10 +11892,6 @@ msgstr "Tip de raport" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po index f01b11da678..e24d0bc47bf 100644 --- a/openerp/addons/base/i18n/ru.po +++ b/openerp/addons/base/i18n/ru.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:33+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:46+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6566,6 +6566,10 @@ msgstr "Доступ на создание" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Область" @@ -11858,10 +11862,6 @@ msgstr "Тип отчета" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/sk.po b/openerp/addons/base/i18n/sk.po index 5d1a30ea1ff..aff5c8729ee 100644 --- a/openerp/addons/base/i18n/sk.po +++ b/openerp/addons/base/i18n/sk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:33+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:47+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6508,6 +6508,10 @@ msgstr "Právo vytvárať" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Federálny štát" @@ -11768,10 +11772,6 @@ msgstr "Typ výkazu" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/sl.po b/openerp/addons/base/i18n/sl.po index 6b1c987689c..6421a1ebbd3 100644 --- a/openerp/addons/base/i18n/sl.po +++ b/openerp/addons/base/i18n/sl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:34+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:47+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6555,6 +6555,10 @@ msgstr "Ustvari dostop" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Zvezna država" @@ -11834,10 +11838,6 @@ msgstr "Vrsta poročila" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/sq.po b/openerp/addons/base/i18n/sq.po index aa61bfd3455..ce2934835dd 100644 --- a/openerp/addons/base/i18n/sq.po +++ b/openerp/addons/base/i18n/sq.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:27+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:40+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6384,6 +6384,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11589,10 +11593,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/sr.po b/openerp/addons/base/i18n/sr.po index d2226d586ac..a411ad0eee2 100644 --- a/openerp/addons/base/i18n/sr.po +++ b/openerp/addons/base/i18n/sr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:33+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:46+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6494,6 +6494,10 @@ msgstr "Napravi pristup" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Država" @@ -11739,10 +11743,6 @@ msgstr "Tip izveštaja" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/sr@latin.po b/openerp/addons/base/i18n/sr@latin.po index c1f27857c24..81f4b11368d 100644 --- a/openerp/addons/base/i18n/sr@latin.po +++ b/openerp/addons/base/i18n/sr@latin.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:37+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:50+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/sv.po b/openerp/addons/base/i18n/sv.po index 44670e961da..355106a8f19 100644 --- a/openerp/addons/base/i18n/sv.po +++ b/openerp/addons/base/i18n/sv.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:34+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:47+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6517,6 +6517,10 @@ msgstr "Skapa åtkomst" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Fed. State" @@ -11781,10 +11785,6 @@ msgstr "Rapporttyp" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/th.po b/openerp/addons/base/i18n/th.po index 168ff935025..036e10cfc6d 100644 --- a/openerp/addons/base/i18n/th.po +++ b/openerp/addons/base/i18n/th.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:34+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:47+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/tlh.po b/openerp/addons/base/i18n/tlh.po index 037da201dd6..bb4c547a638 100644 --- a/openerp/addons/base/i18n/tlh.po +++ b/openerp/addons/base/i18n/tlh.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:34+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:47+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6384,6 +6384,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11589,10 +11593,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/tr.po b/openerp/addons/base/i18n/tr.po index 973c4c423f6..c4628fb2718 100644 --- a/openerp/addons/base/i18n/tr.po +++ b/openerp/addons/base/i18n/tr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-12 05:40+0000\n" -"X-Generator: Launchpad (build 14640)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:48+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6597,6 +6597,10 @@ msgstr "Erişim Oluştur" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "Federal Eyalet" @@ -11884,10 +11888,6 @@ msgstr "Rapor Türü" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/uk.po b/openerp/addons/base/i18n/uk.po index b1616361c8e..f67b6524acf 100644 --- a/openerp/addons/base/i18n/uk.po +++ b/openerp/addons/base/i18n/uk.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:35+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:48+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6431,6 +6431,10 @@ msgstr "Доступ для створення" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11641,10 +11645,6 @@ msgstr "Тип звіту" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/ur.po b/openerp/addons/base/i18n/ur.po index 5408988da69..69c120443cc 100644 --- a/openerp/addons/base/i18n/ur.po +++ b/openerp/addons/base/i18n/ur.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:35+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:48+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/vi.po b/openerp/addons/base/i18n/vi.po index a81c5a08ceb..da4e08393af 100644 --- a/openerp/addons/base/i18n/vi.po +++ b/openerp/addons/base/i18n/vi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:35+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:48+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6416,6 +6416,10 @@ msgstr "Quyền Tạo" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11625,10 +11629,6 @@ msgstr "Loại báo cáo" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po index c04d21659ae..68d77f23613 100644 --- a/openerp/addons/base/i18n/zh_CN.po +++ b/openerp/addons/base/i18n/zh_CN.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-14 05:10+0000\n" -"X-Generator: Launchpad (build 14664)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:49+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6418,6 +6418,10 @@ msgstr "创建权限" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "省/州" @@ -11637,10 +11641,6 @@ msgstr "报表类型" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/zh_HK.po b/openerp/addons/base/i18n/zh_HK.po index add8f5e99f0..1471a4fa7ec 100644 --- a/openerp/addons/base/i18n/zh_HK.po +++ b/openerp/addons/base/i18n/zh_HK.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:35+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:48+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6385,6 +6385,10 @@ msgstr "" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "" @@ -11590,10 +11594,6 @@ msgstr "" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 diff --git a/openerp/addons/base/i18n/zh_TW.po b/openerp/addons/base/i18n/zh_TW.po index 8d25ab97792..09d42b6903b 100644 --- a/openerp/addons/base/i18n/zh_TW.po +++ b/openerp/addons/base/i18n/zh_TW.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-05 05:36+0000\n" -"X-Generator: Launchpad (build 14625)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:49+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base #: model:res.country,name:base.sh @@ -6394,6 +6394,10 @@ msgstr "建立存取" #. module: base #: field:res.partner.address,state_id:0 +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: view:res.country.state:0 +#: field:res.partner.bank,state_id:0 msgid "Fed. State" msgstr "省或州" @@ -11611,10 +11615,6 @@ msgstr "報表類型" #: field:ir.module.module,state:0 #: field:ir.module.module.dependency,state:0 #: field:publisher_warranty.contract,state:0 -#: field:res.bank,state:0 -#: field:res.company,state_id:0 -#: view:res.country.state:0 -#: field:res.partner.bank,state_id:0 #: view:res.request:0 #: field:res.request,state:0 #: field:workflow.instance,state:0 From d49c7de24de366060b699cf25cb57c26c59b7fac Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 19 Jan 2012 04:51:14 +0000 Subject: [PATCH 36/36] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120119045114-1uzft0w0d45gb143 --- addons/account/i18n/pt_BR.po | 22 ++-- addons/account_analytic_default/i18n/pt_BR.po | 4 +- addons/account_asset/i18n/pt_BR.po | 4 +- addons/anonymization/i18n/nl.po | 10 +- addons/audittrail/i18n/nl.po | 14 +- addons/base_setup/i18n/nl.po | 28 +++- addons/board/i18n/pt_BR.po | 4 +- addons/crm_claim/i18n/nl.po | 44 +++---- addons/hr_evaluation/i18n/fr.po | 124 +++++++++++------- addons/marketing/i18n/nl.po | 12 +- addons/marketing_campaign/i18n/nl.po | 22 ++-- addons/project_scrum/i18n/pt_BR.po | 4 +- addons/sale_margin/i18n/nl.po | 10 +- addons/web_livechat/i18n/pt_BR.po | 4 +- addons/wiki/i18n/pt_BR.po | 4 +- 15 files changed, 179 insertions(+), 131 deletions(-) diff --git a/addons/account/i18n/pt_BR.po b/addons/account/i18n/pt_BR.po index c66787e3477..25eac0d0d03 100644 --- a/addons/account/i18n/pt_BR.po +++ b/addons/account/i18n/pt_BR.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-12-23 09:55+0000\n" -"PO-Revision-Date: 2012-01-18 02:49+0000\n" +"PO-Revision-Date: 2012-01-19 04:21+0000\n" "Last-Translator: Rafael Sales \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:44+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:50+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: account #: view:account.invoice.report:0 @@ -48,7 +48,7 @@ msgstr "Estatisticas da conta" #. module: account #: view:account.invoice:0 msgid "Proforma/Open/Paid Invoices" -msgstr "" +msgstr "Proforma / Aberto / Faturas Pagas" #. module: account #: field:report.invoice.created,residual:0 @@ -111,6 +111,8 @@ msgid "" "Configuration error! The currency chosen should be shared by the default " "accounts too." msgstr "" +"Erro de configuração! A moeda escolhida deve ser compartilhada pelas contas " +"padrão também." #. module: account #: report:account.invoice:0 @@ -715,7 +717,7 @@ msgstr "Parceiros Reconciliados Hoje" #. module: account #: view:report.hr.timesheet.invoice.journal:0 msgid "Sale journal in this year" -msgstr "" +msgstr "Diário de vendas deste ano" #. module: account #: selection:account.financial.report,display_detail:0 @@ -742,7 +744,7 @@ msgstr "Entradas analíticas por linha" #. module: account #: field:account.invoice.refund,filter_refund:0 msgid "Refund Method" -msgstr "" +msgstr "Método de reembolso" #. module: account #: code:addons/account/wizard/account_change_currency.py:38 @@ -965,7 +967,7 @@ msgstr "" #: code:addons/account/account.py:2578 #, python-format msgid "I can not locate a parent code for the template account!" -msgstr "" +msgstr "Não consigo localizar um código aparente para a conta do modelo!" #. module: account #: view:account.analytic.line:0 @@ -2312,6 +2314,8 @@ msgid "" "In order to delete a bank statement, you must first cancel it to delete " "related journal items." msgstr "" +"Para excluir um texto bancário, primeiro você deve cancelá-lo para excluir " +"itens relacionados ao diário." #. module: account #: field:account.invoice,payment_term:0 @@ -2625,7 +2629,7 @@ msgstr "" #. module: account #: sql_constraint:account.model.line:0 msgid "Wrong credit or debit value in model, they must be positive!" -msgstr "" +msgstr "Crédito errado ou valor do débito deve ser positivo!" #. module: account #: model:ir.ui.menu,name:account.menu_automatic_reconcile @@ -2672,7 +2676,7 @@ msgstr "Conta-pai de Impostos" #: code:addons/account/wizard/account_change_currency.py:59 #, python-format msgid "New currency is not configured properly !" -msgstr "" +msgstr "Nova moeda não está configurada corretamente!" #. module: account #: view:account.subscription.generate:0 diff --git a/addons/account_analytic_default/i18n/pt_BR.po b/addons/account_analytic_default/i18n/pt_BR.po index ea4c9e78981..01ffe84cab7 100644 --- a/addons/account_analytic_default/i18n/pt_BR.po +++ b/addons/account_analytic_default/i18n/pt_BR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:44+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:50+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: account_analytic_default #: help:account.analytic.default,partner_id:0 diff --git a/addons/account_asset/i18n/pt_BR.po b/addons/account_asset/i18n/pt_BR.po index 68d074a76c2..c337d901a3c 100644 --- a/addons/account_asset/i18n/pt_BR.po +++ b/addons/account_asset/i18n/pt_BR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:44+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:51+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: account_asset #: view:account.asset.asset:0 diff --git a/addons/anonymization/i18n/nl.po b/addons/anonymization/i18n/nl.po index 86f4fbe29e2..35b54ff7c5c 100644 --- a/addons/anonymization/i18n/nl.po +++ b/addons/anonymization/i18n/nl.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-12-22 18:44+0000\n" -"PO-Revision-Date: 2011-02-16 11:28+0000\n" -"Last-Translator: Douwe Wullink (Dypalio) \n" +"PO-Revision-Date: 2012-01-18 20:01+0000\n" +"Last-Translator: Erwin (Endian Solutions) \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-12-23 07:33+0000\n" -"X-Generator: Launchpad (build 14560)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:51+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: anonymization #: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard @@ -211,6 +211,8 @@ msgstr "Bericht" #, python-format msgid "You cannot have two fields with the same name on the same object!" msgstr "" +"Het is niet toegestaan om twee velden met dezelfde naam van hetzelfde object " +"te hebben!" #~ msgid "Database anonymization module" #~ msgstr "Database anonimisatie module" diff --git a/addons/audittrail/i18n/nl.po b/addons/audittrail/i18n/nl.po index 1f3819f7545..84f70b5d4f8 100644 --- a/addons/audittrail/i18n/nl.po +++ b/addons/audittrail/i18n/nl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-12-22 18:44+0000\n" -"PO-Revision-Date: 2011-01-11 18:42+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2012-01-18 20:04+0000\n" +"Last-Translator: Erwin (Endian Solutions) \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-12-23 07:04+0000\n" -"X-Generator: Launchpad (build 14560)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:50+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: audittrail #: code:addons/audittrail/audittrail.py:75 @@ -39,11 +39,13 @@ msgid "" "There is already a rule defined on this object\n" " You cannot define another: please edit the existing one." msgstr "" +"Er is al een regel gedefinieerd voor dit object\n" +" Het is niet mogelijk om een andere te definieren: Wijzig de bestaande." #. module: audittrail #: view:audittrail.rule:0 msgid "Subscribed Rule" -msgstr "" +msgstr "Geaboneerde regel" #. module: audittrail #: model:ir.model,name:audittrail.model_audittrail_rule @@ -327,7 +329,7 @@ msgstr "AuditTrails-logs" #. module: audittrail #: view:audittrail.rule:0 msgid "Draft Rule" -msgstr "" +msgstr "Concept regel" #. module: audittrail #: model:ir.model,name:audittrail.model_audittrail_log diff --git a/addons/base_setup/i18n/nl.po b/addons/base_setup/i18n/nl.po index 5ece536e0f6..f128faeeb54 100644 --- a/addons/base_setup/i18n/nl.po +++ b/addons/base_setup/i18n/nl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-12-22 18:44+0000\n" -"PO-Revision-Date: 2012-01-17 17:43+0000\n" +"PO-Revision-Date: 2012-01-18 20:23+0000\n" "Last-Translator: Erwin (Endian Solutions) \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:43+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:50+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: base_setup #: field:user.preferences.config,menu_tips:0 @@ -52,6 +52,8 @@ msgid "" "Set default for new user's timezone, used to perform timezone conversions " "between the server and the client." msgstr "" +"Stel de standaard tijdzone in voor nieuwe gebruikers. Deze wordt gebruikt om " +"tijdzone conversies te maken tussen server en client." #. module: base_setup #: selection:product.installer,customers:0 @@ -75,6 +77,9 @@ msgid "" "printed on your reports. You can click on the button 'Preview Header' in " "order to check the header/footer of PDF documents." msgstr "" +"Vul uw bedrijfsgegevens in (adres, logo, bankrekeningen) zo dat deze kunnen " +"worden afgedrukt op uw rapporten. U kan op de knop 'Voorbeeld kop' klikken " +"om de kop en voet van PDF documenten te controleren." #. module: base_setup #: field:product.installer,customers:0 @@ -98,6 +103,9 @@ msgid "" "you can import your existing partners by CSV spreadsheet from \"Import " "Data\" wizard" msgstr "" +"Maak of import klanten en de contactpersonen handmatig vanuit dit scherm of " +"u kunt uw bestaande partners vanuit een CSV bestand importeren via de " +"\"Import data\" wizard" #. module: base_setup #: view:user.preferences.config:0 @@ -152,6 +160,8 @@ msgid "" "You can use this wizard to change the terminologies for customers in the " "whole application." msgstr "" +"U kunt deze wizard gebruiken om de terminologie voor klanten, in de gehele " +"applicatie, te wijzigen." #. module: base_setup #: selection:base.setup.terminology,partner:0 @@ -175,6 +185,9 @@ msgid "" "available. If you want to Add new Language, you can add it from 'Load an " "Official Translation' wizard from 'Administration' menu." msgstr "" +"Dit stelt, wanneer er vertalingen aanwezig zijn, de standaard taal voor de " +"gebruikers weergave in. Als u een nieuwe taal wilt toevoegen, dan kan dit " +"via 'Laad een officiële taal' in het 'beheer' menu." #. module: base_setup #: view:user.preferences.config:0 @@ -183,6 +196,9 @@ msgid "" "ones. Afterwards, users are free to change those values on their own user " "preference form." msgstr "" +"Dit stelt de standaard voorkeuren voor nieuwe gebruikers in en werkt alle " +"bestaande gebruikers bij. Naderhand kunnen gebruikers zelfstandig deze " +"waardes aanpassen in hun voorkeuren scherm." #. module: base_setup #: field:base.setup.terminology,partner:0 @@ -192,7 +208,7 @@ msgstr "Hoe belt u een klant" #. module: base_setup #: field:migrade.application.installer.modules,quickbooks_ippids:0 msgid "Quickbooks Ippids" -msgstr "" +msgstr "Quickbooks Ippids" #. module: base_setup #: selection:base.setup.terminology,partner:0 @@ -276,12 +292,12 @@ msgstr "Relatie" #. module: base_setup #: view:base.setup.terminology:0 msgid "Specify Your Terminology" -msgstr "" +msgstr "Specificeer uw teminology" #. module: base_setup #: help:migrade.application.installer.modules,sync_google_contact:0 msgid "For Sync Google Contact" -msgstr "" +msgstr "Voor Sync Google contactpersonen" #~ msgid "" #~ "You can start configuring the system or connect directly to the database " diff --git a/addons/board/i18n/pt_BR.po b/addons/board/i18n/pt_BR.po index d41957243c7..67bf55e4e19 100644 --- a/addons/board/i18n/pt_BR.po +++ b/addons/board/i18n/pt_BR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:44+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:50+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: board #: view:res.log.report:0 diff --git a/addons/crm_claim/i18n/nl.po b/addons/crm_claim/i18n/nl.po index 3905e290af2..56d98318213 100644 --- a/addons/crm_claim/i18n/nl.po +++ b/addons/crm_claim/i18n/nl.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-12-22 18:44+0000\n" -"PO-Revision-Date: 2011-01-14 08:52+0000\n" -"Last-Translator: Douwe Wullink (Dypalio) \n" +"PO-Revision-Date: 2012-01-18 20:27+0000\n" +"Last-Translator: Erwin (Endian Solutions) \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-12-23 07:21+0000\n" -"X-Generator: Launchpad (build 14560)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:51+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: crm_claim #: field:crm.claim.report,nbr:0 @@ -85,12 +85,12 @@ msgstr "" #: code:addons/crm_claim/crm_claim.py:132 #, python-format msgid "The claim '%s' has been opened." -msgstr "" +msgstr "De klacht '%s' is geopend." #. module: crm_claim #: view:crm.claim:0 msgid "Date Closed" -msgstr "" +msgstr "Datum gesloten" #. module: crm_claim #: view:crm.claim.report:0 @@ -151,12 +151,12 @@ msgstr "Referentie" #. module: crm_claim #: view:crm.claim.report:0 msgid "Date of claim" -msgstr "" +msgstr "Datum van de klacht" #. module: crm_claim #: view:crm.claim:0 msgid "All pending Claims" -msgstr "" +msgstr "Alle lopende klachten" #. module: crm_claim #: view:crm.claim.report:0 @@ -187,7 +187,7 @@ msgstr "Relatie" #. module: crm_claim #: view:crm.claim.report:0 msgid "Month of claim" -msgstr "" +msgstr "Maand van de klacht" #. module: crm_claim #: selection:crm.claim,type_action:0 @@ -227,7 +227,7 @@ msgstr "Verstuur nieuwe email" #: selection:crm.claim,state:0 #: view:crm.claim.report:0 msgid "New" -msgstr "" +msgstr "Nieuw" #. module: crm_claim #: view:crm.claim:0 @@ -254,7 +254,7 @@ msgstr "Volgende actie" #. module: crm_claim #: view:crm.claim.report:0 msgid "My Sales Team(s)" -msgstr "" +msgstr "Mijn verkoop team(s)" #. module: crm_claim #: model:crm.case.stage,name:crm_claim.stage_claim3 @@ -321,7 +321,7 @@ msgstr "Contactpersoon" #. module: crm_claim #: view:crm.claim.report:0 msgid "Month-1" -msgstr "" +msgstr "Maand-1" #. module: crm_claim #: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim @@ -380,7 +380,7 @@ msgstr "Wijzigingsdatum" #. module: crm_claim #: view:crm.claim.report:0 msgid "Year of claim" -msgstr "" +msgstr "Jaar van de klacht" #. module: crm_claim #: view:crm.claim.report:0 @@ -402,7 +402,7 @@ msgstr "Waarde klachten" #. module: crm_claim #: view:crm.claim:0 msgid "Responsible User" -msgstr "" +msgstr "Verantwoordelijke gebruiker" #. module: crm_claim #: help:crm.claim,email_cc:0 @@ -490,7 +490,7 @@ msgstr "Gebruiker" #. module: crm_claim #: field:crm.claim,active:0 msgid "Active" -msgstr "" +msgstr "Actief" #. module: crm_claim #: selection:crm.claim.report,month:0 @@ -622,7 +622,7 @@ msgstr "Open" #. module: crm_claim #: view:crm.claim:0 msgid "New Claims" -msgstr "" +msgstr "Nieuwe klachten" #. module: crm_claim #: view:crm.claim:0 @@ -639,17 +639,17 @@ msgstr "Verantwoordelijke" #. module: crm_claim #: view:crm.claim.report:0 msgid "Claims created in current year" -msgstr "" +msgstr "Klachten aangemaakt in huidige jaar" #. module: crm_claim #: view:crm.claim:0 msgid "Unassigned Claims" -msgstr "" +msgstr "Niet toegewezen klachten" #. module: crm_claim #: view:crm.claim.report:0 msgid "Claims created in current month" -msgstr "" +msgstr "Klachten aangemaakt in huidige maand" #. module: crm_claim #: field:crm.claim.report,delay_expected:0 @@ -719,7 +719,7 @@ msgstr "Afgewerkte akties" #. module: crm_claim #: view:crm.claim.report:0 msgid "Claims created in last month" -msgstr "" +msgstr "Klachten aangemaakt in afgelopen maand" #. module: crm_claim #: model:crm.case.stage,name:crm_claim.stage_claim5 @@ -764,7 +764,7 @@ msgstr "Jaar" #. module: crm_claim #: view:crm.claim.report:0 msgid "My company" -msgstr "" +msgstr "Mijn bedrijf" #. module: crm_claim #: selection:crm.claim.report,month:0 @@ -814,7 +814,7 @@ msgstr "Aanmaakdatum" #. module: crm_claim #: view:crm.claim:0 msgid "In Progress Claims" -msgstr "" +msgstr "Klachten in behandeling" #~ msgid "Customer & Supplier Relationship Management" #~ msgstr "Customer & Supplier Relationship Management" diff --git a/addons/hr_evaluation/i18n/fr.po b/addons/hr_evaluation/i18n/fr.po index b095afc562f..34d9dbe6333 100644 --- a/addons/hr_evaluation/i18n/fr.po +++ b/addons/hr_evaluation/i18n/fr.po @@ -8,15 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-12-22 18:44+0000\n" -"PO-Revision-Date: 2011-01-18 16:47+0000\n" -"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) " -"\n" +"PO-Revision-Date: 2012-01-18 16:59+0000\n" +"Last-Translator: gde (OpenERP) \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-12-23 07:14+0000\n" -"X-Generator: Launchpad (build 14560)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:51+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: hr_evaluation #: help:hr_evaluation.plan.phase,send_anonymous_manager:0 @@ -26,7 +25,7 @@ msgstr "Envoyer un résumé anonyme au responsable" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 msgid "Start Appraisal" -msgstr "" +msgstr "Démarrer les évaluations" #. module: hr_evaluation #: view:hr.evaluation.interview:0 @@ -38,7 +37,7 @@ msgstr "Regrouper par..." #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 msgid "Appraisal that overpassed the deadline" -msgstr "" +msgstr "Evaluations ayant dépassé la limite" #. module: hr_evaluation #: field:hr.evaluation.interview,request_id:0 @@ -65,7 +64,7 @@ msgstr "Délai avant de commencer" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 msgid "Appraisal that are in waiting appreciation state" -msgstr "" +msgstr "Evaluations en attente d'appréciation" #. module: hr_evaluation #: code:addons/hr_evaluation/hr_evaluation.py:244 @@ -97,7 +96,7 @@ msgstr "Jour" #: view:hr_evaluation.plan:0 #: field:hr_evaluation.plan,phase_ids:0 msgid "Appraisal Phases" -msgstr "" +msgstr "Phases d'évaluation" #. module: hr_evaluation #: help:hr_evaluation.plan,month_first:0 @@ -105,8 +104,8 @@ msgid "" "This number of months will be used to schedule the first evaluation date of " "the employee when selecting an evaluation plan. " msgstr "" -"Le nombre de mois sera utilisé pour planifier la date de la première " -"évaluation de l'employé, lors du choix de plan d'évaluation. " +"Ce délai sera utilisé pour planifier la date de la première évaluation de " +"l'employé si cette campagne est choisie. " #. module: hr_evaluation #: view:hr.employee:0 @@ -116,7 +115,7 @@ msgstr "Remarques" #. module: hr_evaluation #: view:hr_evaluation.plan.phase:0 msgid "(eval_name)s:Appraisal Name" -msgstr "" +msgstr "Nom de l'évaluation" #. module: hr_evaluation #: model:ir.actions.act_window,help:hr_evaluation.open_view_hr_evaluation_tree @@ -127,6 +126,12 @@ msgid "" "manages all kind of evaluations: bottom-up, top-down, self-evaluation and " "final evaluation by the manager." msgstr "" +"Chaque employé peut se voir assigner une campagne d'évaluation spécifique. " +"Un telle campagne définit la fréquence et la manière de gérer l'évaluation " +"périodique du personnel. Il suffit d'en définir les étapes et d'y ajouter " +"des modèles d'entrevues. \r\n" +"OpenERP gère différents types d'évaluations: bottom up, top down et auto-" +"évaluation suivie d'une évaluation finale par le supérieur hiérarchique." #. module: hr_evaluation #: view:hr_evaluation.plan.phase:0 @@ -141,7 +146,7 @@ msgstr "Attendre les phases précédentes" #. module: hr_evaluation #: model:ir.model,name:hr_evaluation.model_hr_evaluation_evaluation msgid "Employee Appraisal" -msgstr "" +msgstr "Evaluations des employés" #. module: hr_evaluation #: selection:hr.evaluation.report,state:0 @@ -227,12 +232,12 @@ msgstr "" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 msgid "Appraisal that are in Plan In Progress state" -msgstr "" +msgstr "Evaluations en attente de planification" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 msgid "Reset to Draft" -msgstr "" +msgstr "Repasser à l'état \"Brouillon\"" #. module: hr_evaluation #: field:hr.evaluation.report,deadline:0 @@ -247,7 +252,7 @@ msgstr " Mois " #. module: hr_evaluation #: view:hr.evaluation.report:0 msgid "In progress Evaluations" -msgstr "" +msgstr "Evaluations en cours" #. module: hr_evaluation #: model:ir.model,name:hr_evaluation.model_survey_request @@ -291,7 +296,7 @@ msgstr "Employé" #. module: hr_evaluation #: selection:hr_evaluation.evaluation,state:0 msgid "New" -msgstr "" +msgstr "Brouillon" #. module: hr_evaluation #: field:hr_evaluation.plan.phase,mail_body:0 @@ -315,17 +320,17 @@ msgstr "" #. module: hr_evaluation #: view:hr.evaluation.report:0 msgid "Evaluation done in last month" -msgstr "" +msgstr "Evaluations réalisées le mois passé" #. module: hr_evaluation #: model:ir.model,name:hr_evaluation.model_mail_compose_message msgid "E-mail composition wizard" -msgstr "" +msgstr "Assistant de composition de message" #. module: hr_evaluation #: view:hr.evaluation.report:0 msgid "Creation Date" -msgstr "" +msgstr "Date de création" #. module: hr_evaluation #: help:hr_evaluation.plan.phase,send_answer_manager:0 @@ -336,7 +341,7 @@ msgstr "Envoyer toutes les réponses au responsable" #: selection:hr.evaluation.report,state:0 #: selection:hr_evaluation.evaluation,state:0 msgid "Plan In Progress" -msgstr "Plan en cours" +msgstr "En cours de planification" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 @@ -346,7 +351,7 @@ msgstr "Remarques publiques" #. module: hr_evaluation #: view:hr.evaluation.interview:0 msgid "Send Reminder Email" -msgstr "" +msgstr "Envoyer un message de rappel" #. module: hr_evaluation #: view:hr.evaluation.report:0 @@ -363,7 +368,7 @@ msgstr "Imprimer l'entretien" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 msgid "Pending" -msgstr "" +msgstr "En attente" #. module: hr_evaluation #: field:hr.evaluation.report,closed:0 @@ -390,7 +395,7 @@ msgstr "Juillet" #. module: hr_evaluation #: model:ir.actions.act_window,name:hr_evaluation.action_evaluation_plans_installer msgid "Review Appraisal Plans" -msgstr "" +msgstr "Revue des campagnes d'évaluations" #. module: hr_evaluation #: view:hr.evaluation.report:0 @@ -410,12 +415,12 @@ msgstr "Plan d'action" #. module: hr_evaluation #: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr_config msgid "Periodic Appraisal" -msgstr "" +msgstr "Evaluations périodiques" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 msgid "Appraisal to close within the next 7 days" -msgstr "" +msgstr "Evaluations à terminer endéans les 7 jours" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 @@ -435,6 +440,10 @@ msgid "" "employee's Appraisal Plan. Each user receives automatic emails and requests " "to evaluate their colleagues periodically." msgstr "" +"Les demandes d'évaluation sont automatiquement créées par le système en " +"fonction de la campagne d'évaluation de chaque employé. Chaque employé " +"reçoit automatiquement les rappels lui demandant d'évaluer périodiquement " +"ses collègues." #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 @@ -465,7 +474,7 @@ msgstr "Décembre" #. module: hr_evaluation #: view:hr.evaluation.report:0 msgid "Evaluation done in current year" -msgstr "" +msgstr "Evaluations effectuées dans l'année" #. module: hr_evaluation #: view:hr.evaluation.report:0 @@ -486,7 +495,7 @@ msgstr "Paramètrages des courriels" #. module: hr_evaluation #: model:ir.actions.act_window,name:hr_evaluation.evaluation_reminders msgid "Appraisal Reminders" -msgstr "" +msgstr "Rappels d'évaluation" #. module: hr_evaluation #: view:hr.evaluation.interview:0 @@ -511,7 +520,7 @@ msgstr "Légende" #. module: hr_evaluation #: field:hr_evaluation.plan,month_first:0 msgid "First Appraisal in (months)" -msgstr "" +msgstr "Délai évaluation initiale (mois)" #. module: hr_evaluation #: selection:hr.evaluation.report,state:0 @@ -536,7 +545,7 @@ msgstr "7 jours" #: field:hr_evaluation.plan.phase,plan_id:0 #: model:ir.model,name:hr_evaluation.model_hr_evaluation_plan msgid "Appraisal Plan" -msgstr "" +msgstr "Campagne d'évaluation" #. module: hr_evaluation #: selection:hr.evaluation.report,month:0 @@ -565,7 +574,7 @@ msgstr " (employee_name)s : Nom du partenaire" #: view:hr_evaluation.evaluation:0 #: field:hr_evaluation.evaluation,plan_id:0 msgid "Plan" -msgstr "Plan" +msgstr "Campagne" #. module: hr_evaluation #: field:hr_evaluation.plan,active:0 @@ -591,7 +600,7 @@ msgstr "" #. module: hr_evaluation #: model:ir.model,name:hr_evaluation.model_hr_evaluation_plan_phase msgid "Appraisal Plan Phase" -msgstr "" +msgstr "Phases de campagnes d'évaluation" #. module: hr_evaluation #: selection:hr.evaluation.report,month:0 @@ -601,7 +610,7 @@ msgstr "Janvier" #. module: hr_evaluation #: model:ir.actions.act_window,name:hr_evaluation.act_hr_employee_2_hr__evaluation_interview msgid "Appraisal Interviews" -msgstr "" +msgstr "Entrevues d'évaluations" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 @@ -639,12 +648,12 @@ msgstr "En attente d'appréciation" #: model:ir.actions.act_window,name:hr_evaluation.action_evaluation_report_all #: model:ir.ui.menu,name:hr_evaluation.menu_evaluation_report_all msgid "Appraisal Analysis" -msgstr "" +msgstr "Analyse des évaluations" #. module: hr_evaluation #: field:hr_evaluation.evaluation,date:0 msgid "Appraisal Deadline" -msgstr "" +msgstr "Echéance d'évaluation" #. module: hr_evaluation #: field:hr.evaluation.report,rating:0 @@ -682,6 +691,11 @@ msgid "" "\n" " Thanks," msgstr "" +"Bonjour %s,\n" +"\n" +"Pourriez-vous répondre à l'enquête \"%s\"?\n" +"\n" +"Merci," #. module: hr_evaluation #: selection:hr_evaluation.plan.phase,action:0 @@ -696,6 +710,11 @@ msgid "" "OpenERP can automatically generate interview requests to managers and/or " "subordinates." msgstr "" +"Vous pouvez définir des campagnes d'évaluation (ex: première interview dans " +"6 mois, puis chaque année). Chaque employé peut ensuite être lié à une " +"campagne d'évaluation, et le système se chargera de créer automatiquement " +"les demandes d'entrevues d'évaluation pour les employés et leurs supérieurs " +"hiérarchiques." #. module: hr_evaluation #: view:hr_evaluation.plan.phase:0 @@ -710,7 +729,7 @@ msgstr "Envoyer toutes les réponses à l'employé" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 msgid "Appraisal Data" -msgstr "" +msgstr "Données d'évaluation" #. module: hr_evaluation #: view:hr.evaluation.report:0 @@ -724,12 +743,12 @@ msgstr "Terminée" #: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_plan_tree #: model:ir.ui.menu,name:hr_evaluation.menu_open_view_hr_evaluation_plan_tree msgid "Appraisal Plans" -msgstr "" +msgstr "Campagnes d'évaluation" #. module: hr_evaluation #: model:ir.model,name:hr_evaluation.model_hr_evaluation_interview msgid "Appraisal Interview" -msgstr "" +msgstr "Entrevue d'évaluation" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 @@ -740,7 +759,7 @@ msgstr "Annuler" #: code:addons/hr_evaluation/wizard/mail_compose_message.py:49 #, python-format msgid "Reminder to fill up Survey" -msgstr "" +msgstr "Rappel de réponse à une enquête" #. module: hr_evaluation #: view:hr.evaluation.report:0 @@ -755,7 +774,7 @@ msgstr "À faire" #. module: hr_evaluation #: view:hr.evaluation.report:0 msgid "Final Validation Evaluations" -msgstr "" +msgstr "Entrevues d'évaluation finales" #. module: hr_evaluation #: field:hr_evaluation.plan.phase,mail_feature:0 @@ -779,6 +798,8 @@ msgid "" "The date of the next appraisal is computed by the appraisal plan's dates " "(first appraisal + periodicity)." msgstr "" +"La date de la prochaine évaluation est calculée suivant la campagne " +"d'évaluation (délai première évaluation + périodicité)" #. module: hr_evaluation #: field:hr.evaluation.report,overpass_delay:0 @@ -791,12 +812,13 @@ msgid "" "The number of month that depicts the delay between each evaluation of this " "plan (after the first one)." msgstr "" -"Le nombre de mois séparant chaque évaluation de ce plan (après la première)." +"Le nombre de mois séparant chaque évaluation de cette campagne (après la " +"première)." #. module: hr_evaluation #: field:hr_evaluation.plan,month_next:0 msgid "Periodicity of Appraisal (months)" -msgstr "" +msgstr "Périodicité des évaluations (mois)" #. module: hr_evaluation #: selection:hr_evaluation.plan.phase,action:0 @@ -852,23 +874,25 @@ msgstr "Février" #: view:hr.evaluation.interview:0 #: view:hr_evaluation.evaluation:0 msgid "Interview Appraisal" -msgstr "" +msgstr "Entrevue d'évaluation" #. module: hr_evaluation #: field:survey.request,is_evaluation:0 msgid "Is Appraisal?" -msgstr "" +msgstr "Est une évaluation?" #. module: hr_evaluation #: code:addons/hr_evaluation/hr_evaluation.py:320 #, python-format msgid "You cannot start evaluation without Appraisal." msgstr "" +"Vous ne pouvez démarrer une entrevue d'évaluation sans formulaire " +"d'évaluation" #. module: hr_evaluation #: view:hr.evaluation.report:0 msgid "Evaluation done in current month" -msgstr "" +msgstr "Evaluations effectuées ce mois-ci" #. module: hr_evaluation #: field:hr.evaluation.interview,user_to_review_id:0 @@ -883,18 +907,18 @@ msgstr "Avril" #. module: hr_evaluation #: view:hr_evaluation.plan.phase:0 msgid "Appraisal Plan Phases" -msgstr "" +msgstr "Phases de campagnes d'évaluation" #. module: hr_evaluation #: view:hr_evaluation.evaluation:0 msgid "Validate Appraisal" -msgstr "" +msgstr "Valider évaluation" #. module: hr_evaluation #: view:hr.evaluation.interview:0 #: view:hr_evaluation.evaluation:0 msgid "Search Appraisal" -msgstr "" +msgstr "Recherche d'évaluations" #. module: hr_evaluation #: field:hr_evaluation.plan.phase,sequence:0 @@ -928,12 +952,12 @@ msgstr "Année" #. module: hr_evaluation #: field:hr_evaluation.evaluation,note_summary:0 msgid "Appraisal Summary" -msgstr "" +msgstr "Résumé d'évaluation" #. module: hr_evaluation #: field:hr.employee,evaluation_date:0 msgid "Next Appraisal Date" -msgstr "" +msgstr "Date de prochaine évaluation" #~ msgid "Evaluation Type" #~ msgstr "Type d'évaluation" diff --git a/addons/marketing/i18n/nl.po b/addons/marketing/i18n/nl.po index 9ed8a0d3540..e570d3104e8 100644 --- a/addons/marketing/i18n/nl.po +++ b/addons/marketing/i18n/nl.po @@ -8,24 +8,24 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-12-22 18:45+0000\n" -"PO-Revision-Date: 2011-01-14 13:32+0000\n" -"Last-Translator: Douwe Wullink (Dypalio) \n" +"PO-Revision-Date: 2012-01-18 20:28+0000\n" +"Last-Translator: Erwin (Endian Solutions) \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-12-23 07:20+0000\n" -"X-Generator: Launchpad (build 14560)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:51+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: marketing #: model:res.groups,name:marketing.group_marketing_manager msgid "Manager" -msgstr "" +msgstr "Manager" #. module: marketing #: model:res.groups,name:marketing.group_marketing_user msgid "User" -msgstr "" +msgstr "Gebruiker" #~ msgid "Image" #~ msgstr "Afbeelding" diff --git a/addons/marketing_campaign/i18n/nl.po b/addons/marketing_campaign/i18n/nl.po index 80a907a542e..60367a1985a 100644 --- a/addons/marketing_campaign/i18n/nl.po +++ b/addons/marketing_campaign/i18n/nl.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-12-22 18:45+0000\n" -"PO-Revision-Date: 2011-01-14 15:24+0000\n" -"Last-Translator: Douwe Wullink (Dypalio) \n" +"PO-Revision-Date: 2012-01-18 20:30+0000\n" +"Last-Translator: Erwin (Endian Solutions) \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-12-23 07:23+0000\n" -"X-Generator: Launchpad (build 14560)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:51+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: marketing_campaign #: view:marketing.campaign:0 @@ -120,7 +120,7 @@ msgstr "Object" #. module: marketing_campaign #: view:marketing.campaign.segment:0 msgid "Sync mode: only records created after last sync" -msgstr "" +msgstr "Sync mode: alleen records welke zijn aangemaakt na laatste sync" #. module: marketing_campaign #: help:marketing.campaign.activity,condition:0 @@ -364,7 +364,7 @@ msgstr "Marketingrapporten" #: selection:marketing.campaign,state:0 #: selection:marketing.campaign.segment,state:0 msgid "New" -msgstr "" +msgstr "Nieuw" #. module: marketing_campaign #: field:marketing.campaign.activity,type:0 @@ -469,7 +469,7 @@ msgstr "Uur/Uren" #. module: marketing_campaign #: view:campaign.analysis:0 msgid " Month-1 " -msgstr "" +msgstr " Maand-1 " #. module: marketing_campaign #: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment @@ -669,12 +669,12 @@ msgstr "Juni" #. module: marketing_campaign #: model:ir.model,name:marketing_campaign.model_email_template msgid "Email Templates" -msgstr "" +msgstr "Email-sjablonen" #. module: marketing_campaign #: view:marketing.campaign.segment:0 msgid "Sync mode: all records" -msgstr "" +msgstr "Sync mode: Alle records" #. module: marketing_campaign #: selection:marketing.campaign.segment,sync_mode:0 @@ -711,7 +711,7 @@ msgstr "Het rapport wordt gegenereerd als de activiteit is geactiveerd" #. module: marketing_campaign #: field:marketing.campaign,unique_field_id:0 msgid "Unique Field" -msgstr "" +msgstr "Uniek veld" #. module: marketing_campaign #: selection:campaign.analysis,state:0 @@ -980,7 +980,7 @@ msgstr "" #. module: marketing_campaign #: view:marketing.campaign.segment:0 msgid "Sync mode: only records updated after last sync" -msgstr "" +msgstr "Sync mode: alleen records welke zijn bijgewerkt na laatste sync" #. module: marketing_campaign #: code:addons/marketing_campaign/marketing_campaign.py:792 diff --git a/addons/project_scrum/i18n/pt_BR.po b/addons/project_scrum/i18n/pt_BR.po index 24305294fe7..965ae41c4d3 100644 --- a/addons/project_scrum/i18n/pt_BR.po +++ b/addons/project_scrum/i18n/pt_BR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:43+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:50+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: project_scrum #: view:project.scrum.backlog.assign.sprint:0 diff --git a/addons/sale_margin/i18n/nl.po b/addons/sale_margin/i18n/nl.po index a10bc7d14ef..cc8c56d5323 100644 --- a/addons/sale_margin/i18n/nl.po +++ b/addons/sale_margin/i18n/nl.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-12-22 18:46+0000\n" -"PO-Revision-Date: 2011-01-18 08:35+0000\n" -"Last-Translator: Douwe Wullink (Dypalio) \n" +"PO-Revision-Date: 2012-01-18 21:11+0000\n" +"Last-Translator: Erwin (Endian Solutions) \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-12-23 07:16+0000\n" -"X-Generator: Launchpad (build 14560)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:51+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: sale_margin #: sql_constraint:sale.order:0 msgid "Order Reference must be unique per Company!" -msgstr "" +msgstr "Orderreferentie moet uniek zijn per bedrijf!" #. module: sale_margin #: field:sale.order.line,purchase_price:0 diff --git a/addons/web_livechat/i18n/pt_BR.po b/addons/web_livechat/i18n/pt_BR.po index 72a8ed40405..d816c33c14c 100644 --- a/addons/web_livechat/i18n/pt_BR.po +++ b/addons/web_livechat/i18n/pt_BR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:44+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:51+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: web_livechat #: sql_constraint:publisher_warranty.contract:0 diff --git a/addons/wiki/i18n/pt_BR.po b/addons/wiki/i18n/pt_BR.po index 3f18e7ce05e..c3f7159ea2e 100644 --- a/addons/wiki/i18n/pt_BR.po +++ b/addons/wiki/i18n/pt_BR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-01-18 04:44+0000\n" -"X-Generator: Launchpad (build 14681)\n" +"X-Launchpad-Export-Date: 2012-01-19 04:51+0000\n" +"X-Generator: Launchpad (build 14692)\n" #. module: wiki #: field:wiki.groups,template:0