From 1e1b85e95b307f6eb61c46ae9149bf96a46f9145 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Sat, 22 Sep 2012 14:43:54 +0200 Subject: [PATCH 01/90] gevent first try bzr revid: al@openerp.com-20120922124354-unk1u8a9anst5hwo --- openerp-server | 6 ++++++ openerp/service/__init__.py | 3 ++- openerp/service/wsgi_server.py | 5 ++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/openerp-server b/openerp-server index 9025e2d50c2..4d28a4cb759 100755 --- a/openerp-server +++ b/openerp-server @@ -223,6 +223,12 @@ def main(): check_root_user() openerp.tools.config.parse_config(sys.argv[1:]) + # TODO GEVENT if event + import gevent.monkey + gevent.monkey.patch_all() + import gevent_psycopg2 + gevent_psycopg2.monkey_patch() + check_postgres_user() openerp.netsvc.init_logger() report_configuration() diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py index 30a765b1f60..d3a57135284 100644 --- a/openerp/service/__init__.py +++ b/openerp/service/__init__.py @@ -86,7 +86,8 @@ def start_services(): netrpc_server.init_servers() # Start the main cron thread. - openerp.cron.start_master_thread() + # TODO GEVENT if event use greenlet in cron + # openerp.cron.start_master_thread() # Start the top-level servers threads (normally HTTP, HTTPS, and NETRPC). openerp.netsvc.Server.startAll() diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py index 61556974a00..d15d423818b 100644 --- a/openerp/service/wsgi_server.py +++ b/openerp/service/wsgi_server.py @@ -424,7 +424,10 @@ def serve(): # TODO Change the xmlrpc_* options to http_* interface = config['xmlrpc_interface'] or '0.0.0.0' port = config['xmlrpc_port'] - httpd = werkzeug.serving.make_server(interface, port, application, threaded=True) + #httpd = werkzeug.serving.make_server(interface, port, application, threaded=True) + # TODO GEVENT if event + from gevent.wsgi import WSGIServer + httpd = WSGIServer((interface, port), application) _logger.info('HTTP service (werkzeug) running on %s:%s', interface, port) httpd.serve_forever() From 966cadcdd66dc9518a389d54eece1cc49a9ee247 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 15 Nov 2012 15:47:28 +0100 Subject: [PATCH 02/90] Put back cron thread bzr revid: nicolas.vanhoren@openerp.com-20121115144728-0ts5h9m7873892fd --- openerp/service/__init__.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py index 6e3de89ddff..11fe45aaf31 100644 --- a/openerp/service/__init__.py +++ b/openerp/service/__init__.py @@ -82,10 +82,8 @@ def start_services(): # Initialize the HTTP stack. netrpc_server.init_servers() - # Start the main cron thread. - # TODO GEVENT if event use greenlet in cron - #if openerp.conf.max_cron_threads: - # openerp.cron.start_master_thread() + if openerp.conf.max_cron_threads: + openerp.cron.start_master_thread() # Start the top-level servers threads (normally HTTP, HTTPS, and NETRPC). openerp.netsvc.Server.startAll() From 468652ccf7802f2b39a95144aca9e7eeb51dbca5 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Fri, 16 Nov 2012 10:41:18 +0100 Subject: [PATCH 03/90] Had to remove the cron again bzr revid: nicolas.vanhoren@openerp.com-20121116094118-ph3oxmwr5qhcp3c7 --- openerp/service/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py index 11fe45aaf31..9f5a7a03009 100644 --- a/openerp/service/__init__.py +++ b/openerp/service/__init__.py @@ -83,7 +83,8 @@ def start_services(): netrpc_server.init_servers() if openerp.conf.max_cron_threads: - openerp.cron.start_master_thread() + #openerp.cron.start_master_thread() + pass # Start the top-level servers threads (normally HTTP, HTTPS, and NETRPC). openerp.netsvc.Server.startAll() From 7137bb0b53f38d1a600d47d0b7b9ec83a824337f Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 22 Nov 2012 15:53:09 +0100 Subject: [PATCH 04/90] [IMP] Added configuration option for gevent bzr revid: nicolas.vanhoren@openerp.com-20121122145309-bim6m10p0q7rf6wj --- openerp-server | 14 +++++++++----- openerp/service/__init__.py | 6 +++--- openerp/service/wsgi_server.py | 9 +++++---- openerp/tools/config.py | 3 ++- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/openerp-server b/openerp-server index f0a858bbe2c..73586e58890 100755 --- a/openerp-server +++ b/openerp-server @@ -224,15 +224,19 @@ def main(): check_root_user() openerp.tools.config.parse_config(sys.argv[1:]) - # TODO GEVENT if event - import gevent.monkey - gevent.monkey.patch_all() - import gevent_psycopg2 - gevent_psycopg2.monkey_patch() + if openerp.tools.config.options["gevent"]: + _logger.info('Using gevent mode') + import gevent.monkey + gevent.monkey.patch_all() + import gevent_psycopg2 + gevent_psycopg2.monkey_patch() check_postgres_user() openerp.netsvc.init_logger() report_configuration() + + if openerp.tools.config.options["gevent"]: + _logger.info('Using gevent mode') config = openerp.tools.config diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py index 9f5a7a03009..154a93df001 100644 --- a/openerp/service/__init__.py +++ b/openerp/service/__init__.py @@ -82,9 +82,9 @@ def start_services(): # Initialize the HTTP stack. netrpc_server.init_servers() - if openerp.conf.max_cron_threads: - #openerp.cron.start_master_thread() - pass + if not openerp.tools.config.options["gevent"]: + if openerp.conf.max_cron_threads: + openerp.cron.start_master_thread() # Start the top-level servers threads (normally HTTP, HTTPS, and NETRPC). openerp.netsvc.Server.startAll() diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py index 8018657fd28..00ad54575b1 100644 --- a/openerp/service/wsgi_server.py +++ b/openerp/service/wsgi_server.py @@ -424,10 +424,11 @@ def serve(): # TODO Change the xmlrpc_* options to http_* interface = config['xmlrpc_interface'] or '0.0.0.0' port = config['xmlrpc_port'] - #httpd = werkzeug.serving.make_server(interface, port, application, threaded=True) - # TODO GEVENT if event - from gevent.wsgi import WSGIServer - httpd = WSGIServer((interface, port), application) + if not openerp.tools.config.options["gevent"]: + httpd = werkzeug.serving.make_server(interface, port, application, threaded=True) + else: + from gevent.wsgi import WSGIServer + httpd = WSGIServer((interface, port), application) _logger.info('HTTP service (werkzeug) running on %s:%s', interface, port) httpd.serve_forever() diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 56f1e5c7b83..e037bf7a6ac 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -106,6 +106,7 @@ class configmanager(object): help="specify additional addons paths (separated by commas).", action="callback", callback=self._check_addons_path, nargs=1, type="string") group.add_option("--load", dest="server_wide_modules", help="Comma-separated list of server-wide modules default=web") + group.add_option("--gevent", dest="gevent", action="store_true", my_default=False, help="Activate the GEvent mode, this also desactivate the cron.") parser.add_option_group(group) # XML-RPC / HTTP @@ -380,7 +381,7 @@ class configmanager(object): 'netrpc', 'xmlrpc', 'syslog', 'without_demo', 'timezone', 'xmlrpcs_interface', 'xmlrpcs_port', 'xmlrpcs', 'static_http_enable', 'static_http_document_root', 'static_http_url_prefix', - 'secure_cert_file', 'secure_pkey_file', 'dbfilter', 'log_handler', 'log_level' + 'secure_cert_file', 'secure_pkey_file', 'dbfilter', 'log_handler', 'log_level', 'gevent' ] for arg in keys: From c3cb554ab06df9bee9242dbf30bb0117d7751f03 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 22 Nov 2012 16:06:01 +0100 Subject: [PATCH 05/90] Improved config bzr revid: nicolas.vanhoren@openerp.com-20121122150601-7wha9rao9ix2myvv --- openerp/tools/config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/tools/config.py b/openerp/tools/config.py index e037bf7a6ac..7e5b3e0f334 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -381,7 +381,7 @@ class configmanager(object): 'netrpc', 'xmlrpc', 'syslog', 'without_demo', 'timezone', 'xmlrpcs_interface', 'xmlrpcs_port', 'xmlrpcs', 'static_http_enable', 'static_http_document_root', 'static_http_url_prefix', - 'secure_cert_file', 'secure_pkey_file', 'dbfilter', 'log_handler', 'log_level', 'gevent' + 'secure_cert_file', 'secure_pkey_file', 'dbfilter', 'log_handler', 'log_level' ] for arg in keys: @@ -400,7 +400,7 @@ class configmanager(object): 'list_db', 'xmlrpcs', 'proxy_mode', 'test_file', 'test_enable', 'test_commit', 'test_report_directory', 'osv_memory_count_limit', 'osv_memory_age_limit', 'max_cron_threads', 'unaccent', - 'workers', 'limit_memory_hard', 'limit_memory_soft', 'limit_time_cpu', 'limit_time_real', 'limit_request' + 'workers', 'limit_memory_hard', 'limit_memory_soft', 'limit_time_cpu', 'limit_time_real', 'limit_request', 'gevent' ] for arg in keys: From 96d50a9a40d77680ffbd1719385e33757c89f725 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 10 Dec 2012 15:16:02 +0100 Subject: [PATCH 06/90] [FIX] added period_id field to account_voucher dialog lp bug: https://launchpad.net/bugs/1062621 fixed bzr revid: jco@openerp.com-20121210141602-z7sa9lou4vkuczw3 --- addons/account_voucher/voucher_payment_receipt_view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml index b6f367601ff..0f923bcd1f4 100644 --- a/addons/account_voucher/voucher_payment_receipt_view.xml +++ b/addons/account_voucher/voucher_payment_receipt_view.xml @@ -305,6 +305,7 @@ widget="selection" on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)" string="Payment Method"/> + From dc47ad6c737e386d9ad163cb0cb39c6fe0c02724 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Wed, 19 Dec 2012 10:22:35 +0100 Subject: [PATCH 07/90] [FIX] Added onchange_company for gain and loss accounts in config settings lp bug: https://launchpad.net/bugs/1076509 fixed bzr revid: jco@openerp.com-20121219092235-wci6jo81q2ihgpgd --- addons/account_voucher/account_voucher.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index 41d3476442e..59399a766d5 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -56,6 +56,13 @@ class account_config_settings(osv.osv_memory): relation='account.account', string="Loss Exchange Rate Account"), } + def onchange_company_id(self, cr, uid, ids, company_id): + res = super(account_config_settings, self).onchange_company_id(cr, uid, ids, company_id) + if company_id: + company = self.pool.get('res.company').browse(cr, uid, company_id) + res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id, + 'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id}) + return res class account_voucher(osv.osv): def _check_paid(self, cr, uid, ids, name, args, context=None): From a02e894bfcad34945bceaf2a2ef97251555f2d78 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Wed, 19 Dec 2012 12:55:17 +0100 Subject: [PATCH 08/90] [FIX] Correction when no account or no company bzr revid: jco@openerp.com-20121219115517-uj3t8embox155kty --- addons/account_voucher/account_voucher.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index 59399a766d5..609a19661c0 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -49,19 +49,24 @@ class account_config_settings(osv.osv_memory): 'company_id', 'income_currency_exchange_account_id', type='many2one', relation='account.account', - string="Gain Exchange Rate Account"), + string="Gain Exchange Rate Account", + domain="[('type', '=', 'other')]"), 'expense_currency_exchange_account_id': fields.related( 'company_id', 'expense_currency_exchange_account_id', type="many2one", relation='account.account', - string="Loss Exchange Rate Account"), + string="Loss Exchange Rate Account", + domain="[('type', '=', 'other')]"), } def onchange_company_id(self, cr, uid, ids, company_id): res = super(account_config_settings, self).onchange_company_id(cr, uid, ids, company_id) if company_id: company = self.pool.get('res.company').browse(cr, uid, company_id) - res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id, - 'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id}) + res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id or False, + 'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id or False}) + else: + res['value'].update({'income_currency_exchange_account_id': False, + 'expense_currency_exchange_account_id': False}) return res class account_voucher(osv.osv): From dba6e07ecdf8ed61316bdc1f4c4af36e489a95be Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Fri, 21 Dec 2012 10:41:47 +0100 Subject: [PATCH 09/90] [FIX] Will take into account the type of the invoice for the default account in the invoice line lp bug: https://launchpad.net/bugs/1084819 fixed bzr revid: jco@openerp.com-20121221094147-mp7dhttfob7y2xis --- addons/account/account_invoice.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 02903ea8f33..e836e28d6c6 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1393,8 +1393,13 @@ class account_invoice_line(osv.osv): def _default_account_id(self, cr, uid, context=None): # XXX this gets the default account for the user's company, # it should get the default account for the invoice's company - # however, the invoice's company does not reach this point - prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context) + # however, the invoice's company does not reach this point (but will throw error on validation) + if context is None: + context = {} + if context.get('type') in ('out_invoice','out_refund'): + prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context) + else: + prop = self.pool.get('ir.property').get(cr, uid, 'property_account_expense_categ', 'product.category', context=context) return prop and prop.id or False _defaults = { From 0a6f2417e797e7ade9699d4638f2786f581c6e9f Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Fri, 21 Dec 2012 14:49:56 +0100 Subject: [PATCH 10/90] [FIX] Changes the period used into the period chosen and not the period of today lp bug: https://launchpad.net/bugs/1078004 fixed bzr revid: jco@openerp.com-20121221134956-fgg1ltu1qy1j2ion --- addons/account_asset/account_asset.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py index b7330352b12..b335063b758 100644 --- a/addons/account_asset/account_asset.py +++ b/addons/account_asset/account_asset.py @@ -331,6 +331,9 @@ class account_asset_asset(osv.osv): depreciation_obj = self.pool.get('account.asset.depreciation.line') period = period_obj.browse(cr, uid, period_id, context=context) depreciation_ids = depreciation_obj.search(cr, uid, [('asset_id', 'in', ids), ('depreciation_date', '<=', period.date_stop), ('depreciation_date', '>=', period.date_start), ('move_check', '=', False)], context=context) + if context is None: + context = {} + context.update({'depreciation_date':period.date_stop}) return depreciation_obj.create_move(cr, uid, depreciation_ids, context=context) def create(self, cr, uid, vals, context=None): @@ -388,7 +391,7 @@ class account_asset_depreciation_line(osv.osv): created_move_ids = [] asset_ids = [] for line in self.browse(cr, uid, ids, context=context): - depreciation_date = time.strftime('%Y-%m-%d') + depreciation_date = context.get('depreciation_date') or time.strftime('%Y-%m-%d') period_ids = period_obj.find(cr, uid, depreciation_date, context=context) company_currency = line.asset_id.company_id.currency_id.id current_currency = line.asset_id.currency_id.id From 383314f27381573294351060c7b6a7e01ec075a5 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 10 Jan 2013 17:19:36 +0100 Subject: [PATCH 11/90] First version working with multicorn bzr revid: nicolas.vanhoren@openerp.com-20130110161936-4515hhdlamd3d25r --- openerp/service/workers.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/openerp/service/workers.py b/openerp/service/workers.py index 0a54a80b963..9043eac1bcd 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -45,6 +45,7 @@ class Multicorn(object): self.socket = None self.workers_http = {} self.workers_cron = {} + self.workers_longpolling = {} self.workers = {} self.generation = 0 self.queue = [] @@ -140,6 +141,8 @@ class Multicorn(object): self.worker_spawn(WorkerHTTP, self.workers_http) while len(self.workers_cron) < config['max_cron_threads']: self.worker_spawn(WorkerCron, self.workers_cron) + while len(self.workers_longpolling) < 1: + self.worker_spawn(WorkerLongPolling, self.workers_longpolling) def sleep(self): try: @@ -334,6 +337,21 @@ class WorkerHTTP(Worker): Worker.start(self) self.server = WorkerBaseWSGIServer(self.multi.app) +class WorkerLongPolling(Worker): + """ Long polling workers """ + def start(self): + config.options["gevent"] = True + _logger.info('Using gevent mode') + import gevent.monkey + gevent.monkey.patch_all() + import gevent_psycopg2 + gevent_psycopg2.monkey_patch() + + Worker.start(self) + from gevent.wsgi import WSGIServer + httpd = WSGIServer(('0.0.0.0', 8072), self.multi.app) + httpd.serve_forever() + class WorkerBaseWSGIServer(werkzeug.serving.BaseWSGIServer): """ werkzeug WSGI Server patched to allow using an external listen socket """ From cb33e09d1bedce2aa17d02fc7c8047b4a2753f40 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 10 Jan 2013 17:33:14 +0100 Subject: [PATCH 12/90] Socket is inited by master process bzr revid: nicolas.vanhoren@openerp.com-20130110163314-449euw1z69eebtpz --- openerp/service/workers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/openerp/service/workers.py b/openerp/service/workers.py index 9043eac1bcd..aee639035a6 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -181,6 +181,12 @@ class Multicorn(object): self.socket.setblocking(0) self.socket.bind(self.address) self.socket.listen(8) + # long polling socket + self.long_polling_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.long_polling_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + self.long_polling_socket.setblocking(0) + self.long_polling_socket.bind(('0.0.0.0', 8072)) + self.long_polling_socket.listen(8) def stop(self, graceful=True): if graceful: @@ -349,8 +355,8 @@ class WorkerLongPolling(Worker): Worker.start(self) from gevent.wsgi import WSGIServer - httpd = WSGIServer(('0.0.0.0', 8072), self.multi.app) - httpd.serve_forever() + self.server = WSGIServer(self.multi.long_polling_socket, self.multi.app) + self.server.serve_forever() class WorkerBaseWSGIServer(werkzeug.serving.BaseWSGIServer): """ werkzeug WSGI Server patched to allow using an external listen socket From fc58729b2f2a6a2baa79d474cfc2eb15234f22a1 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Tue, 15 Jan 2013 18:47:05 +0100 Subject: [PATCH 13/90] [WIP] introduce a way to reference specific config options bzr revid: abo@openerp.com-20130115174705-qldpq3le1ul4nh0j --- openerp/addons/base/res/res_config.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index ff0c3bfe6ad..a3b168a8d82 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -570,17 +570,17 @@ class res_config_settings(osv.osv_memory): if action_ids: return act_window.read(cr, uid, action_ids[0], [], context=context) return {} - + def name_get(self, cr, uid, ids, context=None): """ Override name_get method to return an appropriate configuration wizard name, and not the generated name.""" - + if not ids: return [] # name_get may receive int id instead of an id list if isinstance(ids, (int, long)): ids = [ids] - + act_window = self.pool.get('ir.actions.act_window') action_ids = act_window.search(cr, uid, [('res_model', '=', self._name)], context=context) name = self._name @@ -588,4 +588,23 @@ class res_config_settings(osv.osv_memory): name = act_window.read(cr, uid, action_ids[0], ['name'], context=context)['name'] return [(record.id, name) for record in self.browse(cr, uid , ids, context=context)] + def get_path(self, cr, uid, module_name, menu_xml_id=None, field_name=None, context=None): + """ + Return a string representing the path to access a specific + configuration option through the interface. + """ + + config_path = '' + + # Fetch the path + if (menu_xml_id): + dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) + config_path += self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context).name + + # Fetch the exact config option name + #if (field_name): + # self.pool.get('mycfgobj')._get_all_columns().strings[field_name] + + return config_path + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From ff25f7a3d4d6dd15170692487de304a804060b0d Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Wed, 16 Jan 2013 18:14:11 +0100 Subject: [PATCH 14/90] [IMP] use a var to store the menuitem separator makes it easier to modify makes it possible to import anywhere bzr revid: abo@openerp.com-20130116171411-iugmyk4vqjewko2z --- openerp/addons/base/ir/ir_ui_menu.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index 5da85c43577..95379098cf4 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -30,6 +30,8 @@ from openerp.osv import fields, osv from openerp.tools.translate import _ from openerp import SUPERUSER_ID +MENU_ITEM_SEPARATOR = "/" + def one_in(setA, setB): """Check the presence of an element of setA in setB """ @@ -154,7 +156,7 @@ class ir_ui_menu(osv.osv): if level<=0: return '...' if elmt.parent_id: - parent_path = self._get_one_full_name(elmt.parent_id, level-1) + "/" + parent_path = self._get_one_full_name(elmt.parent_id, level-1) + MENU_ITEM_SEPARATOR else: parent_path = '' return parent_path + elmt.name From 70890bfa3250e33769e12a818780f90b3889be63 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Wed, 16 Jan 2013 18:14:54 +0100 Subject: [PATCH 15/90] [WIP] introduce a way to reference specific config options bzr revid: abo@openerp.com-20130116171454-s4tt2f6le80oruc0 --- openerp/addons/base/res/res_config.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index a3b168a8d82..f7085f44000 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -25,6 +25,7 @@ from openerp import pooler from openerp.osv import osv, fields from openerp.tools import ustr from openerp.tools.translate import _ +from openerp.addons.base.ir.ir_ui_menu import MENU_ITEM_SEPARATOR _logger = logging.getLogger(__name__) @@ -588,22 +589,24 @@ class res_config_settings(osv.osv_memory): name = act_window.read(cr, uid, action_ids[0], ['name'], context=context)['name'] return [(record.id, name) for record in self.browse(cr, uid , ids, context=context)] - def get_path(self, cr, uid, module_name, menu_xml_id=None, field_name=None, context=None): + def get_config_path(self, cr, uid, module_name, menu_xml_id=None, model_name=None, field_name=None, context=None): """ Return a string representing the path to access a specific configuration option through the interface. + + :return string """ config_path = '' # Fetch the path - if (menu_xml_id): + if (module_name and menu_xml_id): dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) - config_path += self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context).name + config_path += self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context).complete_name # Fetch the exact config option name - #if (field_name): - # self.pool.get('mycfgobj')._get_all_columns().strings[field_name] + if (model_name and field_name): + config_path += MENU_ITEM_SEPARATOR + self.pool.get(model_name)._all_columns.get(field_name).column.string return config_path From a4120a879adf2b50dd18ed8a6310b9bae65f0209 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 17 Jan 2013 11:30:57 +0100 Subject: [PATCH 16/90] [IMP] long polling: disable the watchdog for the WorkerLongPolling, added command-line option for its port. bzr revid: vmt@openerp.com-20130117103057-12ez48kj48pntb1g --- openerp/service/workers.py | 12 ++++++++++-- openerp/tools/config.py | 5 ++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/openerp/service/workers.py b/openerp/service/workers.py index 29ae9de10c0..7321978e859 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -35,6 +35,7 @@ class Multicorn(object): def __init__(self, app): # config self.address = (config['xmlrpc_interface'] or '0.0.0.0', config['xmlrpc_port']) + self.long_polling_address = (config['xmlrpc_interface'] or '0.0.0.0', config['longpolling_port']) self.population = config['workers'] self.timeout = config['limit_time_real'] self.limit_request = config['limit_request'] @@ -132,7 +133,8 @@ class Multicorn(object): def process_timeout(self): now = time.time() for (pid, worker) in self.workers.items(): - if now - worker.watchdog_time >= worker.watchdog_timeout: + if (worker.watchdog_timeout is not None) and \ + (now - worker.watchdog_time >= worker.watchdog_timeout): _logger.error("Worker (%s) timeout", pid) self.worker_kill(pid, signal.SIGKILL) @@ -185,7 +187,7 @@ class Multicorn(object): self.long_polling_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.long_polling_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.long_polling_socket.setblocking(0) - self.long_polling_socket.bind(('0.0.0.0', 8072)) + self.long_polling_socket.bind(self.long_polling_address) self.long_polling_socket.listen(8) def stop(self, graceful=True): @@ -230,6 +232,7 @@ class Worker(object): self.multi = multi self.watchdog_time = time.time() self.watchdog_pipe = multi.pipe_new() + # Can be set to None if no watchdog is desired. self.watchdog_timeout = multi.timeout self.ppid = os.getpid() self.pid = None @@ -345,6 +348,11 @@ class WorkerHTTP(Worker): class WorkerLongPolling(Worker): """ Long polling workers """ + def __init__(self, multi): + super(WorkerLongPolling, self).__init__(multi) + # Disable the watchdog feature for this kind of worker. + self.watchdog_timeout = None + def start(self): config.options["gevent"] = True _logger.info('Using gevent mode') diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 83a347f0864..dcbf26783e3 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -121,6 +121,8 @@ class configmanager(object): help="disable the XML-RPC protocol") group.add_option("--proxy-mode", dest="proxy_mode", action="store_true", my_default=False, help="Enable correct behavior when behind a reverse proxy") + group.add_option("--longpolling-port", dest="longpolling_port", my_default=8072, + help="specify the TCP port for longpolling requests", type="int") parser.add_option_group(group) # XML-RPC / HTTPS @@ -378,7 +380,8 @@ class configmanager(object): self.options['pidfile'] = False # if defined dont take the configfile value even if the defined value is None - keys = ['xmlrpc_interface', 'xmlrpc_port', 'db_name', 'db_user', 'db_password', 'db_host', + keys = ['xmlrpc_interface', 'xmlrpc_port', 'longpolling_port', + 'db_name', 'db_user', 'db_password', 'db_host', 'db_port', 'db_template', 'logfile', 'pidfile', 'smtp_port', 'email_from', 'smtp_server', 'smtp_user', 'smtp_password', 'netrpc_interface', 'netrpc_port', 'db_maxconn', 'import_partial', 'addons_path', From 8214854b7996804bdfc8ec3d4ea2398f03d50370 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 17 Jan 2013 15:47:55 +0100 Subject: [PATCH 17/90] [IMP] doc bzr revid: abo@openerp.com-20130117144755-r9oboeaw8rr1seqa --- openerp/osv/osv.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py index 018976ac663..20dfe74b7ff 100644 --- a/openerp/osv/osv.py +++ b/openerp/osv/osv.py @@ -39,6 +39,7 @@ import openerp.exceptions _logger = logging.getLogger(__name__) # Deprecated. +# Have a look at exceptions.py instead. class except_osv(Exception): def __init__(self, name, value): self.name = name From 6b926883ccdb362b85be7b8e878f21775ad0375e Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 17 Jan 2013 16:50:03 +0100 Subject: [PATCH 18/90] [IMP] add a missing import (exceptions) bzr revid: abo@openerp.com-20130117155003-5akv67tylaz59s7l --- openerp/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openerp/__init__.py b/openerp/__init__.py index c9db7076e71..0afcaf0bfc0 100644 --- a/openerp/__init__.py +++ b/openerp/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution # Copyright (C) 2004-2009 Tiny SPRL (). # @@ -15,7 +15,7 @@ # 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 . +# along with this program. If not, see . # ############################################################################## @@ -28,6 +28,7 @@ SUPERUSER_ID = 1 import addons import cli import conf +import exceptions import loglevels import modules import netsvc From c588e762d4dde0680e9609202065e5bf739edcec Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 17 Jan 2013 17:05:46 +0100 Subject: [PATCH 19/90] [IMP] simplify the new config reference mechanism code bzr revid: abo@openerp.com-20130117160546-mg9g9zrbvp4poly6 --- openerp/addons/base/res/res_config.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index f7085f44000..cec30a6d303 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -589,24 +589,34 @@ class res_config_settings(osv.osv_memory): name = act_window.read(cr, uid, action_ids[0], ['name'], context=context)['name'] return [(record.id, name) for record in self.browse(cr, uid , ids, context=context)] - def get_config_path(self, cr, uid, module_name, menu_xml_id=None, model_name=None, field_name=None, context=None): + def get_path(self, cr, uid, menu_xml_id=None, field_name=None, context=None): """ Return a string representing the path to access a specific configuration option through the interface. - :return string + :return string: may vary depending of the given params + - if menu_xml_id and not field_name: the string will contain the + path to the config option. + e.g.: "Settings/Configuration/Sales" + - if not menu_xml_id and field_name: the string will contain the + config option's human readable name + e.g.: "Create leads from incoming mails" + - if menu_xml_id and field_name: the string will contain the path + and the config option's human readable name + e.g.: "Settings/Configuration/Sales/Create leads from incoming mails" """ config_path = '' - # Fetch the path - if (module_name and menu_xml_id): + # Fetch the path to the config option + if (menu_xml_id): + module_name, menu_xml_id = menu_xml_id.split('.') dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) config_path += self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context).complete_name # Fetch the exact config option name - if (model_name and field_name): - config_path += MENU_ITEM_SEPARATOR + self.pool.get(model_name)._all_columns.get(field_name).column.string + if (field_name): + config_path += MENU_ITEM_SEPARATOR + self._all_columns.get(field_name).column.string return config_path From fb5288e93cc68197400d2deaf7fa522273d73a5a Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 17 Jan 2013 19:33:42 +0100 Subject: [PATCH 20/90] [IMP] get_path code; return a tuple instead of a string also add a helper bzr revid: abo@openerp.com-20130117183342-rhfnxh4y777rruqt --- openerp/addons/base/res/res_config.py | 39 +++++++++++++-------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index cec30a6d303..910c473a4be 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -589,35 +589,34 @@ class res_config_settings(osv.osv_memory): name = act_window.read(cr, uid, action_ids[0], ['name'], context=context)['name'] return [(record.id, name) for record in self.browse(cr, uid , ids, context=context)] - def get_path(self, cr, uid, menu_xml_id=None, field_name=None, context=None): + def get_path(self, cr, uid, menu_xml_id, field_name, context=None): """ Return a string representing the path to access a specific configuration option through the interface. - :return string: may vary depending of the given params - - if menu_xml_id and not field_name: the string will contain the - path to the config option. - e.g.: "Settings/Configuration/Sales" - - if not menu_xml_id and field_name: the string will contain the - config option's human readable name - e.g.: "Create leads from incoming mails" - - if menu_xml_id and field_name: the string will contain the path - and the config option's human readable name - e.g.: "Settings/Configuration/Sales/Create leads from incoming mails" + Note that we'll prefer to find back the model's name through the + ui_menu and then its action than directly using self. It will + make the call to this method from a helper function possible. + + :return tuple t: t[0] contains the full path, t[1] contains + the "human readable" configuration option name """ - config_path = '' - # Fetch the path to the config option - if (menu_xml_id): - module_name, menu_xml_id = menu_xml_id.split('.') - dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) - config_path += self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context).complete_name + module_name, menu_xml_id = menu_xml_id.split('.') + dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) + ir_ui_menu = self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context) + res_name = ir_ui_menu.complete_name # Fetch the exact config option name - if (field_name): - config_path += MENU_ITEM_SEPARATOR + self._all_columns.get(field_name).column.string + res_path = self.pool.get(ir_ui_menu.action.res_model)._all_columns.get(field_name).column.string - return config_path + return (res_name, res_path) + +def get_config_path(cr, uid, menu_xml_id=None, field_name=None, context=None): + """ + Simple helper for res_config_settings.get_path(). + """ + return pooler.get_pool(cr.dbname).get('res.config.settings').get_path(cr, uid, menu_xml_id, field_name, context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From a075983249df68cc9797b2c92f32f0039a4e68b9 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Fri, 18 Jan 2013 12:03:00 +0100 Subject: [PATCH 21/90] [IMP] simplify the helper by using SUPERUSER_ID bzr revid: abo@openerp.com-20130118110300-d0z0xr8df0zygiv5 --- openerp/addons/base/res/res_config.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 910c473a4be..81e01e46f2f 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -21,7 +21,7 @@ import logging from operator import attrgetter -from openerp import pooler +from openerp import pooler, SUPERUSER_ID from openerp.osv import osv, fields from openerp.tools import ustr from openerp.tools.translate import _ @@ -613,10 +613,10 @@ class res_config_settings(osv.osv_memory): return (res_name, res_path) -def get_config_path(cr, uid, menu_xml_id=None, field_name=None, context=None): +def get_config_path(cr, menu_xml_id=None, field_name=None, context=None): """ Simple helper for res_config_settings.get_path(). """ - return pooler.get_pool(cr.dbname).get('res.config.settings').get_path(cr, uid, menu_xml_id, field_name, context) + return pooler.get_pool(cr.dbname).get('res.config.settings').get_path(cr, SUPERUSER_ID, menu_xml_id, field_name, context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 8bd622202b123b4919ca7862b92d4fe19d5f464b Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Fri, 18 Jan 2013 16:23:46 +0100 Subject: [PATCH 22/90] [IMP] introduce a new type of exception: WarningConfig. Note that no corresponding RPC_FAULT_CODE has been added; WarningConfig will share the same RPC_FAULT_CODE than Warning (RPC_FAULT_CODE_WARNING = 2) Also remove a few whitespaces bzr revid: abo@openerp.com-20130118152346-5v4j94wjrq34hq4m --- openerp/exceptions.py | 8 ++++++++ openerp/netsvc.py | 4 +++- openerp/service/netrpc_server.py | 8 +++++--- openerp/service/wsgi_server.py | 4 +++- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/openerp/exceptions.py b/openerp/exceptions.py index fbf52c7f3a9..387e126b8c4 100644 --- a/openerp/exceptions.py +++ b/openerp/exceptions.py @@ -27,9 +27,17 @@ treated as a 'Server error'. """ +import re + class Warning(Exception): pass +class WarningConfig(Exception): + """ Warning bound to a misconfiguration. """ + def __init__(self, msg): + # todo: treat the msg (regex) + super(WarningConfig, self).__init__(msg) + class AccessDenied(Exception): """ Login/password error. No message, no traceback. """ def __init__(self): diff --git a/openerp/netsvc.py b/openerp/netsvc.py index 533b1659191..3362b86fac7 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -107,7 +107,7 @@ class ExportService(object): """ _services = {} - + def __init__(self, name): ExportService._services[name] = self self.__name = name @@ -306,6 +306,8 @@ def dispatch_rpc(service_name, method, params): raise except openerp.exceptions.Warning: raise + except openerp.exceptions.WarningConfig: + raise except openerp.exceptions.DeferredException, e: _logger.exception(tools.exception_to_unicode(e)) post_mortem(e.traceback) diff --git a/openerp/service/netrpc_server.py b/openerp/service/netrpc_server.py index af89a734f28..f87274ef6e6 100644 --- a/openerp/service/netrpc_server.py +++ b/openerp/service/netrpc_server.py @@ -15,7 +15,7 @@ # 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 . +# along with this program. If not, see . # ############################################################################## @@ -145,7 +145,7 @@ class TinySocketClientThread(threading.Thread): break except Exception, e: try: - valid_exception = Exception(netrpc_handle_exception_legacy(e)) + valid_exception = Exception(netrpc_handle_exception_legacy(e)) valid_traceback = getattr(e, 'traceback', sys.exc_info()) formatted_traceback = "".join(traceback.format_exception(*valid_traceback)) _logger.debug("netrpc: communication-level exception", exc_info=True) @@ -164,12 +164,14 @@ class TinySocketClientThread(threading.Thread): def stop(self): self.running = False - + def netrpc_handle_exception_legacy(e): if isinstance(e, openerp.osv.osv.except_osv): return 'warning -- ' + e.name + '\n\n' + e.value if isinstance(e, openerp.exceptions.Warning): return 'warning -- Warning\n\n' + str(e) + if isinstance(e, openerp.exceptions.WarningConfig): + return 'warning -- Warning\n\n' + str(e) if isinstance(e, openerp.exceptions.AccessError): return 'warning -- AccessError\n\n' + str(e) if isinstance(e, openerp.exceptions.AccessDenied): diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py index 67436a1c0bf..e83f06cc264 100644 --- a/openerp/service/wsgi_server.py +++ b/openerp/service/wsgi_server.py @@ -95,6 +95,8 @@ def xmlrpc_handle_exception(e): response = xmlrpclib.dumps(fault, allow_none=False, encoding=None) elif isinstance(e, openerp.exceptions.Warning): fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, str(e)) + elif isinstance(e, openerp.exceptions.WarningConfig): + fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, str(e)) response = xmlrpclib.dumps(fault, allow_none=False, encoding=None) elif isinstance (e, openerp.exceptions.AccessError): fault = xmlrpclib.Fault(RPC_FAULT_CODE_ACCESS_ERROR, str(e)) @@ -311,7 +313,7 @@ def http_to_wsgi(http_dir): handler.auth_provider.checkRequest(handler, path) except websrv_lib.AuthRequiredExc, ae: # Darwin 9.x.x webdav clients will report "HTTP/1.0" to us, while they support (and need) the - # authorisation features of HTTP/1.1 + # authorisation features of HTTP/1.1 if request_version != 'HTTP/1.1' and ('Darwin/9.' not in handler.headers.get('User-Agent', '')): start_response("403 Forbidden", []) return [] From 571276eb660b58a56f4680f2ba933aa28f521d11 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Fri, 18 Jan 2013 16:24:20 +0100 Subject: [PATCH 23/90] [IMP] introduce a new type of exception: WarningConfig. Note that no corresponding RPC_FAULT_CODE has been added; WarningConfig will share the same RPC_FAULT_CODE than Warning (RPC_FAULT_CODE_WARNING = 2) bzr revid: abo@openerp.com-20130118152420-9wk5nwuydwdwzoge --- addons/web/session.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/web/session.py b/addons/web/session.py index 30e9308d4e1..a2719482a2c 100644 --- a/addons/web/session.py +++ b/addons/web/session.py @@ -92,6 +92,8 @@ class OpenERPSession(object): raise xmlrpclib.Fault(code_string % (e.name, e.value), '') except openerp.exceptions.Warning, e: raise xmlrpclib.Fault(code_string % ("Warning", e), '') + except openerp.exceptions.WarningConfig, e: + raise xmlrpclib.Fault(code_string % ("Warning", e), '') except openerp.exceptions.AccessError, e: raise xmlrpclib.Fault(code_string % ("AccessError", e), '') except openerp.exceptions.AccessDenied, e: From ed0a292f5d2f766dd0be3cbf258d1f05a13fbbbf Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 18 Jan 2013 16:25:11 +0100 Subject: [PATCH 24/90] [IMP] gevent: no longer a command-line flag (always used in multi-process, never otherwise) The internal flag is in openerp.__init__ (as the multi_process flag). bzr revid: vmt@openerp.com-20130118152511-57u4gxyolz0hd4y8 --- openerp/__init__.py | 2 ++ openerp/cli/server.py | 10 ---------- openerp/service/__init__.py | 5 +++-- openerp/service/workers.py | 2 +- openerp/service/wsgi_server.py | 2 +- openerp/tools/config.py | 3 +-- 6 files changed, 8 insertions(+), 16 deletions(-) diff --git a/openerp/__init__.py b/openerp/__init__.py index c9db7076e71..307170b9033 100644 --- a/openerp/__init__.py +++ b/openerp/__init__.py @@ -51,6 +51,8 @@ wsgi.register_wsgi_handler = wsgi.wsgi_server.register_wsgi_handler # its own copy of the data structure and we don't need to care about # locks between threads. multi_process = False +# Is the server running with gevent. +evented = False # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/cli/server.py b/openerp/cli/server.py index 0df13ffb3a7..84a818c0c5d 100644 --- a/openerp/cli/server.py +++ b/openerp/cli/server.py @@ -230,20 +230,10 @@ def main(args): check_root_user() openerp.tools.config.parse_config(args) - if openerp.tools.config.options["gevent"]: - _logger.info('Using gevent mode') - import gevent.monkey - gevent.monkey.patch_all() - import gevent_psycopg2 - gevent_psycopg2.monkey_patch() - check_postgres_user() openerp.netsvc.init_logger() report_configuration() - if openerp.tools.config.options["gevent"]: - _logger.info('Using gevent mode') - config = openerp.tools.config configure_babel_localedata_path() diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py index dd8d4fe9152..dd654b4c8a2 100644 --- a/openerp/service/__init__.py +++ b/openerp/service/__init__.py @@ -34,6 +34,7 @@ import web_services import web_services import wsgi_server +import openerp import openerp.modules import openerp.netsvc import openerp.osv @@ -91,13 +92,13 @@ def start_services(): # Start the WSGI server. wsgi_server.start_service() # Start the main cron thread. - if not openerp.tools.config.options["gevent"]: + if not openerp.evented: cron.start_service() def stop_services(): """ Stop all services. """ # stop services - if not openerp.tools.config.options["gevent"]: + if not openerp.evented: cron.stop_service() netrpc_server.stop_service() wsgi_server.stop_service() diff --git a/openerp/service/workers.py b/openerp/service/workers.py index 7321978e859..3e8df86fede 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -354,7 +354,7 @@ class WorkerLongPolling(Worker): self.watchdog_timeout = None def start(self): - config.options["gevent"] = True + openerp.evented = True _logger.info('Using gevent mode') import gevent.monkey gevent.monkey.patch_all() diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py index 010a8cde957..196b3f5db7d 100644 --- a/openerp/service/wsgi_server.py +++ b/openerp/service/wsgi_server.py @@ -424,7 +424,7 @@ def serve(): # TODO Change the xmlrpc_* options to http_* interface = config['xmlrpc_interface'] or '0.0.0.0' port = config['xmlrpc_port'] - if not openerp.tools.config.options["gevent"]: + if not openerp.evented: httpd = werkzeug.serving.make_server(interface, port, application, threaded=True) else: from gevent.wsgi import WSGIServer diff --git a/openerp/tools/config.py b/openerp/tools/config.py index dcbf26783e3..c4b52c10b31 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -108,7 +108,6 @@ class configmanager(object): help="specify additional addons paths (separated by commas).", action="callback", callback=self._check_addons_path, nargs=1, type="string") group.add_option("--load", dest="server_wide_modules", help="Comma-separated list of server-wide modules default=web") - group.add_option("--gevent", dest="gevent", action="store_true", my_default=False, help="Activate the GEvent mode, this also desactivate the cron.") parser.add_option_group(group) # XML-RPC / HTTP @@ -412,7 +411,7 @@ class configmanager(object): 'list_db', 'xmlrpcs', 'proxy_mode', 'test_file', 'test_enable', 'test_commit', 'test_report_directory', 'osv_memory_count_limit', 'osv_memory_age_limit', 'max_cron_threads', 'unaccent', - 'workers', 'limit_memory_hard', 'limit_memory_soft', 'limit_time_cpu', 'limit_time_real', 'limit_request', 'gevent' + 'workers', 'limit_memory_hard', 'limit_memory_soft', 'limit_time_cpu', 'limit_time_real', 'limit_request', ] for arg in keys: From 6f5c0e1a08a003087b3d61e8602d1c7ab02dd688 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Fri, 18 Jan 2013 18:15:41 +0100 Subject: [PATCH 25/90] [REV] reintroduce the model's name in the get_path()'s signature, but in a different way bzr revid: abo@openerp.com-20130118171541-tyxl4k6w1wwa3kyl --- openerp/addons/base/res/res_config.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 81e01e46f2f..197b60ebab0 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -589,15 +589,11 @@ class res_config_settings(osv.osv_memory): name = act_window.read(cr, uid, action_ids[0], ['name'], context=context)['name'] return [(record.id, name) for record in self.browse(cr, uid , ids, context=context)] - def get_path(self, cr, uid, menu_xml_id, field_name, context=None): + def get_path(self, cr, uid, menu_xml_id=None, full_field_name=None, context=None): """ Return a string representing the path to access a specific configuration option through the interface. - Note that we'll prefer to find back the model's name through the - ui_menu and then its action than directly using self. It will - make the call to this method from a helper function possible. - :return tuple t: t[0] contains the full path, t[1] contains the "human readable" configuration option name """ @@ -606,12 +602,13 @@ class res_config_settings(osv.osv_memory): module_name, menu_xml_id = menu_xml_id.split('.') dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) ir_ui_menu = self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context) - res_name = ir_ui_menu.complete_name + res_path = ir_ui_menu.complete_name # Fetch the exact config option name - res_path = self.pool.get(ir_ui_menu.action.res_model)._all_columns.get(field_name).column.string + model_name, field_name = full_field_name.rsplit('.', 1) + res_name = self.pool.get(model_name)._all_columns.get(field_name).column.string - return (res_name, res_path) + return (res_path, res_name) def get_config_path(cr, menu_xml_id=None, field_name=None, context=None): """ From 64eedb68166a418ce355e3aa01c4d0bcba6cd39a Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Fri, 18 Jan 2013 18:16:19 +0100 Subject: [PATCH 26/90] [WIP] start the implementation of WarningConfig bzr revid: abo@openerp.com-20130118171619-dx0yjwuun0j7m43p --- openerp/exceptions.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/openerp/exceptions.py b/openerp/exceptions.py index 387e126b8c4..f99ed433049 100644 --- a/openerp/exceptions.py +++ b/openerp/exceptions.py @@ -35,7 +35,20 @@ class Warning(Exception): class WarningConfig(Exception): """ Warning bound to a misconfiguration. """ def __init__(self, msg): - # todo: treat the msg (regex) + # WIP WIP WIP WIP WIP WIP WIP + def sub_path(g): + menu_xml_id = g.group(1) + + return '(group to convert: '+menu_xml_id+')' + + def sub_path(g): + menu_xml_id = g.group(1) + + return '(group to convert: '+menu_xml_id+')' + + # Treat the msg: find the menu_xml_id and the field_name + teststr = 'coucou [path:blabla_bla_bla]' + print ">>>>> sub: ", re.sub(r'\[path:([a-z_]*)\]', sub_path, teststr) super(WarningConfig, self).__init__(msg) class AccessDenied(Exception): From 9d8a2b9eb523d2676dd6ed06d550b96094086ffd Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Mon, 21 Jan 2013 16:07:48 +0100 Subject: [PATCH 27/90] [WIP] move the code to another place bzr revid: abo@openerp.com-20130121150748-3bw28jhvsj23s1zo --- openerp/addons/base/res/res_config.py | 44 ++++++++++++++++++--------- openerp/exceptions.py | 16 ---------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 197b60ebab0..d96b2b5175c 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -20,12 +20,13 @@ ############################################################################## import logging from operator import attrgetter +import re from openerp import pooler, SUPERUSER_ID from openerp.osv import osv, fields from openerp.tools import ustr from openerp.tools.translate import _ -from openerp.addons.base.ir.ir_ui_menu import MENU_ITEM_SEPARATOR +from openerp import exceptions _logger = logging.getLogger(__name__) @@ -594,26 +595,41 @@ class res_config_settings(osv.osv_memory): Return a string representing the path to access a specific configuration option through the interface. - :return tuple t: t[0] contains the full path, t[1] contains + :return dict d: d['path'] contains the full path, d['name'] contains the "human readable" configuration option name """ + res = {'path': None, 'name': None} + # Fetch the path to the config option - module_name, menu_xml_id = menu_xml_id.split('.') - dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) - ir_ui_menu = self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context) - res_path = ir_ui_menu.complete_name + if (menu_xml_id): + module_name, menu_xml_id = menu_xml_id.split('.') + dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) + ir_ui_menu = self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context) + res['path'] = ir_ui_menu.complete_name # Fetch the exact config option name - model_name, field_name = full_field_name.rsplit('.', 1) - res_name = self.pool.get(model_name)._all_columns.get(field_name).column.string + if (full_field_name): + model_name, field_name = full_field_name.rsplit('.', 1) + res['name'] = self.pool.get(model_name)._all_columns.get(field_name).column.string - return (res_path, res_name) + return res -def get_config_path(cr, menu_xml_id=None, field_name=None, context=None): - """ - Simple helper for res_config_settings.get_path(). - """ - return pooler.get_pool(cr.dbname).get('res.config.settings').get_path(cr, SUPERUSER_ID, menu_xml_id, field_name, context) +def get_warning_config(cr, msg, context=None): + res_config_obj = pooler.get_pool(cr.dbname).get('res.config.settings') + + def sub_path(g): + s = g.group(1) + return res_config_obj.get_path(cr, SUPERUSER_ID, menu_xml_id=s, full_field_name=None, context=context)['path'] + + def sub_field(g): + s = g.group(1) + return res_config_obj.get_path(cr, SUPERUSER_ID, menu_xml_id=None, full_field_name=s, context=context)['name'] + + # Treat the msg: find the menu_xml_id and the field_name + msg = re.sub(r'\[path:([a-z_\.]*)\]', sub_path, msg) + msg = re.sub(r'\[field:([a-z_\.]*)\]', sub_field, msg) + + return exceptions.WarningConfig(msg) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/exceptions.py b/openerp/exceptions.py index f99ed433049..c43f706fa61 100644 --- a/openerp/exceptions.py +++ b/openerp/exceptions.py @@ -27,28 +27,12 @@ treated as a 'Server error'. """ -import re - class Warning(Exception): pass class WarningConfig(Exception): """ Warning bound to a misconfiguration. """ def __init__(self, msg): - # WIP WIP WIP WIP WIP WIP WIP - def sub_path(g): - menu_xml_id = g.group(1) - - return '(group to convert: '+menu_xml_id+')' - - def sub_path(g): - menu_xml_id = g.group(1) - - return '(group to convert: '+menu_xml_id+')' - - # Treat the msg: find the menu_xml_id and the field_name - teststr = 'coucou [path:blabla_bla_bla]' - print ">>>>> sub: ", re.sub(r'\[path:([a-z_]*)\]', sub_path, teststr) super(WarningConfig, self).__init__(msg) class AccessDenied(Exception): From 0a0e5e9fb02817a0a12c1019590e540ab4f9eb05 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Mon, 21 Jan 2013 17:59:16 +0100 Subject: [PATCH 28/90] [WIP] heavy refactoring of the get option path feature bzr revid: abo@openerp.com-20130121165916-9oc7ox7ygmpb6lhm --- openerp/addons/base/res/res_config.py | 55 ++++++++++++--------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index d96b2b5175c..68f11d989c6 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -590,46 +590,39 @@ class res_config_settings(osv.osv_memory): name = act_window.read(cr, uid, action_ids[0], ['name'], context=context)['name'] return [(record.id, name) for record in self.browse(cr, uid , ids, context=context)] - def get_path(self, cr, uid, menu_xml_id=None, full_field_name=None, context=None): - """ - Return a string representing the path to access a specific - configuration option through the interface. + def get_option_path(self, cr, uid, menu_xml_id=None, context=None): + module_name, menu_xml_id = menu_xml_id.split('.') + dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) + ir_ui_menu = self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context) - :return dict d: d['path'] contains the full path, d['name'] contains - the "human readable" configuration option name - """ + return ir_ui_menu.complete_name - res = {'path': None, 'name': None} + def get_option_name(self, cr, uid, full_field_name=None, context=None): + model_name, field_name = full_field_name.rsplit('.', 1) - # Fetch the path to the config option - if (menu_xml_id): - module_name, menu_xml_id = menu_xml_id.split('.') - dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) - ir_ui_menu = self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context) - res['path'] = ir_ui_menu.complete_name - - # Fetch the exact config option name - if (full_field_name): - model_name, field_name = full_field_name.rsplit('.', 1) - res['name'] = self.pool.get(model_name)._all_columns.get(field_name).column.string - - return res + return self.pool.get(model_name)._all_columns.get(field_name).column.string def get_warning_config(cr, msg, context=None): res_config_obj = pooler.get_pool(cr.dbname).get('res.config.settings') - def sub_path(g): - s = g.group(1) - return res_config_obj.get_path(cr, SUPERUSER_ID, menu_xml_id=s, full_field_name=None, context=context)['path'] + # Treat the msg + # 1/ find the path and field references, put them in a list + references = re.findall(r'\[((?:path|field):[a-z_\.]*)\]', msg, flags=re.I) - def sub_field(g): - s = g.group(1) - return res_config_obj.get_path(cr, SUPERUSER_ID, menu_xml_id=None, full_field_name=s, context=context)['name'] + # 2/ fetch the path and field replacement values + # (full path and human readable field's name) + values = [] + for item in references: + ref_type, ref = item.split(':') + if ref_type == 'path': + values.append(res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context)) + elif ref_type == 'field': + values.append(res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context)) - # Treat the msg: find the menu_xml_id and the field_name - msg = re.sub(r'\[path:([a-z_\.]*)\]', sub_path, msg) - msg = re.sub(r'\[field:([a-z_\.]*)\]', sub_field, msg) + # 3/ replace the text references by the %s conversion symbol + msg = re.sub(r'\[((?:path|field):[a-z_\.]*)\]', '%s', msg, flags=re.I) - return exceptions.WarningConfig(msg) + # 4/ translate all the strings, substitute and return the result + return exceptions.WarningConfig(_(msg) % tuple(map(_, values))) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 8ab50cc0efbc52fd043e4252d32e845abfad00a7 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Mon, 21 Jan 2013 19:16:50 +0100 Subject: [PATCH 29/90] [WIP] remove a useless translation phase bzr revid: abo@openerp.com-20130121181650-md0t80lokegr5kx1 --- openerp/addons/base/res/res_config.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 68f11d989c6..7f5dd7779e5 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -605,7 +605,7 @@ class res_config_settings(osv.osv_memory): def get_warning_config(cr, msg, context=None): res_config_obj = pooler.get_pool(cr.dbname).get('res.config.settings') - # Treat the msg + # Process the msg # 1/ find the path and field references, put them in a list references = re.findall(r'\[((?:path|field):[a-z_\.]*)\]', msg, flags=re.I) @@ -622,7 +622,7 @@ def get_warning_config(cr, msg, context=None): # 3/ replace the text references by the %s conversion symbol msg = re.sub(r'\[((?:path|field):[a-z_\.]*)\]', '%s', msg, flags=re.I) - # 4/ translate all the strings, substitute and return the result - return exceptions.WarningConfig(_(msg) % tuple(map(_, values))) + # 4/ substitute and return the result + return exceptions.WarningConfig(msg % tuple(values)) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 9419e59fefb9fce7450b95cb405623e8710a1d95 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Tue, 22 Jan 2013 15:31:56 +0100 Subject: [PATCH 30/90] [IMP] change the warning string's pattern to something more familiar to translators bzr revid: abo@openerp.com-20130122143156-ffp79tdg1ryvr5y2 --- openerp/addons/base/res/res_config.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 7f5dd7779e5..9580121e98f 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -604,25 +604,23 @@ class res_config_settings(osv.osv_memory): def get_warning_config(cr, msg, context=None): res_config_obj = pooler.get_pool(cr.dbname).get('res.config.settings') + regex_path = r'%\(((?:path|field):[a-z_\.]*)\)s' - # Process the msg - # 1/ find the path and field references, put them in a list - references = re.findall(r'\[((?:path|field):[a-z_\.]*)\]', msg, flags=re.I) + # Process the message + # 1/ find the path and/or field references, put them in a list + references = re.findall(regex_path, msg, flags=re.I) - # 2/ fetch the path and field replacement values + # 2/ fetch the path and/or field replacement values # (full path and human readable field's name) - values = [] + values = {} for item in references: ref_type, ref = item.split(':') if ref_type == 'path': - values.append(res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context)) + values[item] = res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context) elif ref_type == 'field': - values.append(res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context)) - - # 3/ replace the text references by the %s conversion symbol - msg = re.sub(r'\[((?:path|field):[a-z_\.]*)\]', '%s', msg, flags=re.I) + values[item] = res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context) # 4/ substitute and return the result - return exceptions.WarningConfig(msg % tuple(values)) + return exceptions.WarningConfig(msg % values) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 5cb047aa75922c2560f18fdf0f973e63a5f6c731 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Tue, 22 Jan 2013 17:22:23 +0100 Subject: [PATCH 31/90] [IMP] add documentation also replace the %(path:)s by %(menu:)s (more cohesive) bzr revid: abo@openerp.com-20130122162223-no1wzf1gyxpdvzqk --- openerp/addons/base/res/res_config.py | 41 +++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 9580121e98f..6ed28f88927 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -591,6 +591,15 @@ class res_config_settings(osv.osv_memory): return [(record.id, name) for record in self.browse(cr, uid , ids, context=context)] def get_option_path(self, cr, uid, menu_xml_id=None, context=None): + """ + Fetch the path to a specified configuration view. + + :param string menu_xml_id: the xml id of the menuitem where the view + is located, structured as follows: module_name.menuitem_xml_id + (e.g.: "base.menu_sale_config") + :return string: full path to the menuitem + (e.g.: "Settings/Configuration/Sales") + """ module_name, menu_xml_id = menu_xml_id.split('.') dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) ir_ui_menu = self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context) @@ -598,13 +607,41 @@ class res_config_settings(osv.osv_memory): return ir_ui_menu.complete_name def get_option_name(self, cr, uid, full_field_name=None, context=None): + """ + Fetch the human readable name of a specified configuration option. + + :param string full_field_name: the full name of the field, structured + as follows: model_name.field_name + (e.g.: "sale.config.settings.fetchmail_lead") + :return string: human readable name of the field + (e.g.: "Create leads from incoming mails") + """ model_name, field_name = full_field_name.rsplit('.', 1) return self.pool.get(model_name)._all_columns.get(field_name).column.string def get_warning_config(cr, msg, context=None): + """ + Helper: return a WarningConfig exception with the given message where the + %(field:)s and/or %(menu:)s are replaced by the human readable field's name + and/or menuitem's full path. + + Usage: + ------ + Just include in your error message %(field:model_name.field_name)s to + obtain the human readable field's name, and/or + %(menu:module_name.menuitem_xml_id)s to obtain the menuitem's full path. + + Example of use: + --------------- + from openerp.addons.base.res.res_config import get_warning_config + raise get_warning_config(cr, _("Error: this action is prohibited. You should check the field %(field:sale.config.settings.fetchmail_lead)s in %(menu:base.menu_sale_config)s."), context=context) + will return an exception containing the following message: + Error: this action is prohibited. You should check the field Create leads from incoming mails in Settings/Configuration/Sales. + """ + res_config_obj = pooler.get_pool(cr.dbname).get('res.config.settings') - regex_path = r'%\(((?:path|field):[a-z_\.]*)\)s' + regex_path = r'%\(((?:menu|field):[a-z_\.]*)\)s' # Process the message # 1/ find the path and/or field references, put them in a list @@ -615,7 +652,7 @@ def get_warning_config(cr, msg, context=None): values = {} for item in references: ref_type, ref = item.split(':') - if ref_type == 'path': + if ref_type == 'menu': values[item] = res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context) elif ref_type == 'field': values[item] = res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context) From 0b65aa2231e6aac97b3aae844bddfacf9a338c8c Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Wed, 23 Jan 2013 16:22:34 +0100 Subject: [PATCH 32/90] [IMP] fix a comment's indentation, remove a few whitespaces bzr revid: abo@openerp.com-20130123152234-g2ou48xajxsq8sqj --- openerp/osv/orm.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 6056e405b78..8b10d7da168 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -2287,7 +2287,7 @@ class BaseModel(object): if view_type == 'tree' or not action[2].get('multi')] resprint = [clean(print_) for print_ in resprint if view_type == 'tree' or not print_[2].get('multi')] - #When multi="True" set it will display only in More of the list view + #When multi="True" set it will display only in More of the list view resrelate = [clean(action) for action in resrelate if (action[2].get('multi') and view_type == 'tree') or (not action[2].get('multi') and view_type == 'form')] @@ -2682,17 +2682,17 @@ class BaseModel(object): order = orderby or groupby data_ids = self.search(cr, uid, [('id', 'in', alldata.keys())], order=order, context=context) - + # the IDs of records that have groupby field value = False or '' should be included too data_ids += set(alldata.keys()).difference(data_ids) - - if groupby: + + if groupby: data = self.read(cr, uid, data_ids, [groupby], context=context) # restore order of the search as read() uses the default _order (this is only for groups, so the footprint of data should be small): data_dict = dict((d['id'], d[groupby] ) for d in data) result = [{'id': i, groupby: data_dict[i]} for i in data_ids] else: - result = [{'id': i} for i in data_ids] + result = [{'id': i} for i in data_ids] for d in result: if groupby: @@ -2756,7 +2756,7 @@ class BaseModel(object): return _logger.info('Computing parent left and right for table %s...', self._table) def browse_rec(root, pos=0): -# TODO: set order + # TODO: set order where = self._parent_name+'='+str(root) if not root: where = self._parent_name+' IS NULL' @@ -3867,7 +3867,7 @@ class BaseModel(object): if operation in ('read','unlink'): # No need to warn about deleting an already deleted record. # And no error when reading a record that was deleted, to prevent spurious - # errors for non-transactional search/read sequences coming from clients + # errors for non-transactional search/read sequences coming from clients return _logger.warning('Failed operation on deleted record(s): %s, uid: %s, model: %s', operation, uid, self._name) raise except_orm(_('Missing document(s)'), @@ -4355,12 +4355,12 @@ class BaseModel(object): del vals[self._inherits[table]] record_id = tocreate[table].pop('id', None) - + # When linking/creating parent records, force context without 'no_store_function' key that - # defers stored functions computing, as these won't be computed in batch at the end of create(). + # defers stored functions computing, as these won't be computed in batch at the end of create(). parent_context = dict(context) parent_context.pop('no_store_function', None) - + if record_id is None or not record_id: record_id = self.pool.get(table).create(cr, user, tocreate[table], context=parent_context) else: @@ -4409,7 +4409,7 @@ class BaseModel(object): upd0 = upd0 + ',"' + field + '"' upd1 = upd1 + ',' + self._columns[field]._symbol_set[0] upd2.append(self._columns[field]._symbol_set[1](vals[field])) - #for the function fields that receive a value, we set them directly in the database + #for the function fields that receive a value, we set them directly in the database #(they may be required), but we also need to trigger the _fct_inv() if (hasattr(self._columns[field], '_fnct_inv')) and not isinstance(self._columns[field], fields.related): #TODO: this way to special case the related fields is really creepy but it shouldn't be changed at From 11dbed0fb7f9d5720c7e9b49c0df0d3f2a19c339 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Wed, 23 Jan 2013 16:37:22 +0100 Subject: [PATCH 33/90] [IMP] only call ir.translation when necessary bzr revid: abo@openerp.com-20130123153722-iijbl8hvesstneq3 --- openerp/osv/orm.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 8b10d7da168..471f72a82ac 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -3504,7 +3504,6 @@ class BaseModel(object): res = {} - translation_obj = self.pool.get('ir.translation') for parent in self._inherits: res.update(self.pool.get(parent).fields_get(cr, user, allfields, context)) @@ -3520,6 +3519,8 @@ class BaseModel(object): res[f]['states'] = {} if 'lang' in context: + translation_obj = self.pool.get('ir.translation') + if 'string' in res[f]: res_trans = translation_obj._get_source(cr, user, self._name + ',' + f, 'field', context['lang']) if res_trans: From 28960472df20d10024f2c45596a116dd87d81643 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Wed, 23 Jan 2013 16:49:43 +0100 Subject: [PATCH 34/90] [IMP] use fields_get() instead of _all_columns.get(): this method has the advantage to provide translation support bzr revid: abo@openerp.com-20130123154943-2ux9vpts4pmvr7nq --- openerp/addons/base/res/res_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 6ed28f88927..d2f2e8a265f 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -618,7 +618,7 @@ class res_config_settings(osv.osv_memory): """ model_name, field_name = full_field_name.rsplit('.', 1) - return self.pool.get(model_name)._all_columns.get(field_name).column.string + return self.pool.get(model_name).fields_get(cr, uid, allfields=[field_name], context=context)[field_name]['string'] def get_warning_config(cr, msg, context=None): """ From 59dc49061cf5e1520ef02df969e7c5bdf79a470b Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 24 Jan 2013 16:41:19 +0100 Subject: [PATCH 35/90] [IMP] we don't need a special type of exception anymore bzr revid: abo@openerp.com-20130124154119-5283u6x1it5xvt0r --- openerp/addons/base/res/res_config.py | 4 ++-- openerp/exceptions.py | 5 ----- openerp/netsvc.py | 2 -- openerp/service/netrpc_server.py | 2 -- openerp/service/wsgi_server.py | 3 --- 5 files changed, 2 insertions(+), 14 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index d2f2e8a265f..33615333447 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -622,7 +622,7 @@ class res_config_settings(osv.osv_memory): def get_warning_config(cr, msg, context=None): """ - Helper: return a WarningConfig exception with the given message where the + Helper: return a Warning exception with the given message where the %(field:)s and/or %(menu:)s are replaced by the human readable field's name and/or menuitem's full path. @@ -658,6 +658,6 @@ def get_warning_config(cr, msg, context=None): values[item] = res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context) # 4/ substitute and return the result - return exceptions.WarningConfig(msg % values) + return exceptions.Warning(msg % values) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/exceptions.py b/openerp/exceptions.py index c43f706fa61..fbf52c7f3a9 100644 --- a/openerp/exceptions.py +++ b/openerp/exceptions.py @@ -30,11 +30,6 @@ treated as a 'Server error'. class Warning(Exception): pass -class WarningConfig(Exception): - """ Warning bound to a misconfiguration. """ - def __init__(self, msg): - super(WarningConfig, self).__init__(msg) - class AccessDenied(Exception): """ Login/password error. No message, no traceback. """ def __init__(self): diff --git a/openerp/netsvc.py b/openerp/netsvc.py index 3362b86fac7..47ee4d81e20 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -306,8 +306,6 @@ def dispatch_rpc(service_name, method, params): raise except openerp.exceptions.Warning: raise - except openerp.exceptions.WarningConfig: - raise except openerp.exceptions.DeferredException, e: _logger.exception(tools.exception_to_unicode(e)) post_mortem(e.traceback) diff --git a/openerp/service/netrpc_server.py b/openerp/service/netrpc_server.py index f87274ef6e6..34bb30d8f75 100644 --- a/openerp/service/netrpc_server.py +++ b/openerp/service/netrpc_server.py @@ -170,8 +170,6 @@ def netrpc_handle_exception_legacy(e): return 'warning -- ' + e.name + '\n\n' + e.value if isinstance(e, openerp.exceptions.Warning): return 'warning -- Warning\n\n' + str(e) - if isinstance(e, openerp.exceptions.WarningConfig): - return 'warning -- Warning\n\n' + str(e) if isinstance(e, openerp.exceptions.AccessError): return 'warning -- AccessError\n\n' + str(e) if isinstance(e, openerp.exceptions.AccessDenied): diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py index 0b1cff68114..5da34e2e48a 100644 --- a/openerp/service/wsgi_server.py +++ b/openerp/service/wsgi_server.py @@ -95,9 +95,6 @@ def xmlrpc_handle_exception(e): response = xmlrpclib.dumps(fault, allow_none=False, encoding=None) elif isinstance(e, openerp.exceptions.Warning): fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, str(e)) - elif isinstance(e, openerp.exceptions.WarningConfig): - fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, str(e)) - response = xmlrpclib.dumps(fault, allow_none=False, encoding=None) elif isinstance (e, openerp.exceptions.AccessError): fault = xmlrpclib.Fault(RPC_FAULT_CODE_ACCESS_ERROR, str(e)) response = xmlrpclib.dumps(fault, allow_none=False, encoding=None) From 75ce079a814f8795d43171965a842aa19a51b2f3 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 24 Jan 2013 16:41:19 +0100 Subject: [PATCH 36/90] [IMP] we don't need a special type of exception anymore bzr revid: abo@openerp.com-20130124154119-flmuzwunpi72c02i --- addons/web/session.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/web/session.py b/addons/web/session.py index a2719482a2c..30e9308d4e1 100644 --- a/addons/web/session.py +++ b/addons/web/session.py @@ -92,8 +92,6 @@ class OpenERPSession(object): raise xmlrpclib.Fault(code_string % (e.name, e.value), '') except openerp.exceptions.Warning, e: raise xmlrpclib.Fault(code_string % ("Warning", e), '') - except openerp.exceptions.WarningConfig, e: - raise xmlrpclib.Fault(code_string % ("Warning", e), '') except openerp.exceptions.AccessError, e: raise xmlrpclib.Fault(code_string % ("AccessError", e), '') except openerp.exceptions.AccessDenied, e: From 3d0b141406b397fa989c56af0946f11595951ff5 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Wed, 30 Jan 2013 17:30:32 +0100 Subject: [PATCH 37/90] [IMP] remove default 'None' value (doesn't make sense anymore) bzr revid: abo@openerp.com-20130130163032-jsfm0fa5r54wmvpv --- openerp/addons/base/res/res_config.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 33615333447..0bbdf5b5e84 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -590,7 +590,7 @@ class res_config_settings(osv.osv_memory): name = act_window.read(cr, uid, action_ids[0], ['name'], context=context)['name'] return [(record.id, name) for record in self.browse(cr, uid , ids, context=context)] - def get_option_path(self, cr, uid, menu_xml_id=None, context=None): + def get_option_path(self, cr, uid, menu_xml_id, context=None): """ Fetch the path to a specified configuration view. @@ -606,7 +606,7 @@ class res_config_settings(osv.osv_memory): return ir_ui_menu.complete_name - def get_option_name(self, cr, uid, full_field_name=None, context=None): + def get_option_name(self, cr, uid, full_field_name, context=None): """ Fetch the human readable name of a specified configuration option. @@ -657,7 +657,7 @@ def get_warning_config(cr, msg, context=None): elif ref_type == 'field': values[item] = res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context) - # 4/ substitute and return the result + # 3/ substitute and return the result return exceptions.Warning(msg % values) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 2459399cac7426cf57fe9c31fbae43f3636bb221 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Wed, 30 Jan 2013 17:56:42 +0100 Subject: [PATCH 38/90] [IMP] make get_config_warning() a method of res.config.settings, avoiding heavy import of res_config or long path calls like 'openerp.addons.base.res.res_config.get_config_warning()' just use self.pool.get('res.config.settings').get_config_warning() instead bzr revid: abo@openerp.com-20130130165642-pq5sbdluesxu7p6d --- openerp/addons/base/res/res_config.py | 66 +++++++++++++-------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 0bbdf5b5e84..32e24238d52 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -620,44 +620,44 @@ class res_config_settings(osv.osv_memory): return self.pool.get(model_name).fields_get(cr, uid, allfields=[field_name], context=context)[field_name]['string'] -def get_warning_config(cr, msg, context=None): - """ - Helper: return a Warning exception with the given message where the - %(field:)s and/or %(menu:)s are replaced by the human readable field's name - and/or menuitem's full path. + def get_config_warning(self, cr, msg, context=None): + """ + Helper: return a Warning exception with the given message where the + %(field:)s and/or %(menu:)s are replaced by the human readable field's name + and/or menuitem's full path. - Usage: - ------ - Just include in your error message %(field:model_name.field_name)s to - obtain the human readable field's name, and/or - %(menu:module_name.menuitem_xml_id)s to obtain the menuitem's full path. + Usage: + ------ + Just include in your error message %(field:model_name.field_name)s to + obtain the human readable field's name, and/or + %(menu:module_name.menuitem_xml_id)s to obtain the menuitem's full path. - Example of use: - --------------- - from openerp.addons.base.res.res_config import get_warning_config - raise get_warning_config(cr, _("Error: this action is prohibited. You should check the field %(field:sale.config.settings.fetchmail_lead)s in %(menu:base.menu_sale_config)s."), context=context) - will return an exception containing the following message: - Error: this action is prohibited. You should check the field Create leads from incoming mails in Settings/Configuration/Sales. - """ + Example of use: + --------------- + from openerp.addons.base.res.res_config import get_warning_config + raise get_warning_config(cr, _("Error: this action is prohibited. You should check the field %(field:sale.config.settings.fetchmail_lead)s in %(menu:base.menu_sale_config)s."), context=context) + will return an exception containing the following message: + Error: this action is prohibited. You should check the field Create leads from incoming mails in Settings/Configuration/Sales. + """ - res_config_obj = pooler.get_pool(cr.dbname).get('res.config.settings') - regex_path = r'%\(((?:menu|field):[a-z_\.]*)\)s' + res_config_obj = pooler.get_pool(cr.dbname).get('res.config.settings') + regex_path = r'%\(((?:menu|field):[a-z_\.]*)\)s' - # Process the message - # 1/ find the path and/or field references, put them in a list - references = re.findall(regex_path, msg, flags=re.I) + # Process the message + # 1/ find the path and/or field references, put them in a list + references = re.findall(regex_path, msg, flags=re.I) - # 2/ fetch the path and/or field replacement values - # (full path and human readable field's name) - values = {} - for item in references: - ref_type, ref = item.split(':') - if ref_type == 'menu': - values[item] = res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context) - elif ref_type == 'field': - values[item] = res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context) + # 2/ fetch the path and/or field replacement values + # (full path and human readable field's name) + values = {} + for item in references: + ref_type, ref = item.split(':') + if ref_type == 'menu': + values[item] = res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context) + elif ref_type == 'field': + values[item] = res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context) - # 3/ substitute and return the result - return exceptions.Warning(msg % values) + # 3/ substitute and return the result + return exceptions.Warning(msg % values) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From a4af8609686386d3371289ea24e019a897ca13bd Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 31 Jan 2013 19:15:20 +0100 Subject: [PATCH 39/90] [IMP] introduce a new kind of exception: RedirectWarning (warning with an additional redirection button) bzr revid: abo@openerp.com-20130131181520-q5ol3ngsn93u7hg5 --- openerp/exceptions.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openerp/exceptions.py b/openerp/exceptions.py index fbf52c7f3a9..46f0a29b1e0 100644 --- a/openerp/exceptions.py +++ b/openerp/exceptions.py @@ -30,6 +30,19 @@ treated as a 'Server error'. class Warning(Exception): pass +class RedirectWarning(Exception): + """ Warning with a possibility to redirect the user instead of simply + discarding the warning message. + """ + def __init__(self, msg, action_id, button_text): + """ + :param int action_id: id of the action required to perform the + redirection + :param string button_text: text to put on the button which will trigger + the redirection + """ + super(RedirectWarning, self).__init__(msg, action_id, button_text) + class AccessDenied(Exception): """ Login/password error. No message, no traceback. """ def __init__(self): From a2d53ee33b23269a3c311daf696d3c919953e4e8 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 31 Jan 2013 19:18:53 +0100 Subject: [PATCH 40/90] [IMP] the implementation of get_option_path(): return a tuple with the full path and the id of the action linked to the given menu xml id bzr revid: abo@openerp.com-20130131181853-mp7r238q0zf5go4l --- openerp/addons/base/res/res_config.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 32e24238d52..35afafe1ad7 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -597,14 +597,16 @@ class res_config_settings(osv.osv_memory): :param string menu_xml_id: the xml id of the menuitem where the view is located, structured as follows: module_name.menuitem_xml_id (e.g.: "base.menu_sale_config") - :return string: full path to the menuitem - (e.g.: "Settings/Configuration/Sales") + :return tuple: + - t[0]: string: full path to the menuitem + (e.g.: "Settings/Configuration/Sales") + - t[1]: int: id of the menuitem's action """ module_name, menu_xml_id = menu_xml_id.split('.') dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) ir_ui_menu = self.pool.get('ir.ui.menu').browse(cr, uid, menu_id, context=context) - return ir_ui_menu.complete_name + return (ir_ui_menu.complete_name, ir_ui_menu.action.id) def get_option_name(self, cr, uid, full_field_name, context=None): """ @@ -644,20 +646,25 @@ class res_config_settings(osv.osv_memory): regex_path = r'%\(((?:menu|field):[a-z_\.]*)\)s' # Process the message - # 1/ find the path and/or field references, put them in a list + # 1/ find the menu and/or field references, put them in a list references = re.findall(regex_path, msg, flags=re.I) - # 2/ fetch the path and/or field replacement values - # (full path and human readable field's name) + # 2/ fetch the menu and/or field replacement values (full path and + # human readable field's name) and the action_id if any values = {} + action_id = None + buttontext = None for item in references: ref_type, ref = item.split(':') if ref_type == 'menu': - values[item] = res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context) + values[item], action_id = res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context) + buttontext = _('Go to the configuration panel') elif ref_type == 'field': values[item] = res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context) # 3/ substitute and return the result - return exceptions.Warning(msg % values) - + if (action_id): + return exceptions.RedirectWarning(msg % values, action_id, _('Go to the configuration panel')) + else: + return exceptions.Warning(msg % values) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 62285a48ed6d6ecba3776b994a10ad217d527f31 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 31 Jan 2013 19:29:21 +0100 Subject: [PATCH 41/90] [IMP] add a handler for the new exception RedirectWarning bzr revid: abo@openerp.com-20130131182921-9tv71vzjr2agdusc --- addons/web/static/src/js/chrome.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 1407df4d33f..86d0a20ed20 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -327,6 +327,34 @@ instance.web.ExceptionHandler = { */ instance.web.crash_manager_registry = new instance.web.Registry(); +/** + * Handle redirection warnings, which behave more or less like a regular + * warning, with an additional redirection button. + */ +instance.web.RedirectWarningHandler = instance.web.Dialog.extend(instance.web.ExceptionHandler, { + init: function(parent, error) { + this._super(parent); + this.error = error; + }, + display: function() { + error = this.error; + error.data.message = error.data.arguments[0]; + + instance.web.dialog($('
' + QWeb.render('CrashManager.warning', {error: error}) + '
'), { + title: "OpenERP " + (_.str.capitalize(error.type) || "Warning"), + buttons: [ + {text: _t("Ok"), click: function() { $(this).dialog("close"); }}, + {text: error.data.arguments[2], click: function() { + window.location.href='#action='+error.data.arguments[1]; + $(this).dialog("close"); + }} + ] + }); + this.destroy(); + } +}); +instance.web.crash_manager_registry.add('openerp.exceptions.RedirectWarning', 'instance.web.RedirectWarningHandler'); + instance.web.Loading = instance.web.Widget.extend({ template: _t("Loading"), init: function(parent) { From 8d5340a27d818929a7ce3e008cff7328ac0d260d Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Fri, 1 Feb 2013 17:50:15 +0100 Subject: [PATCH 42/90] [IMP] fix a typo, even if it doesn't matter (odo would probably say something like 'stop acting nitpicky !' ;)) bzr revid: abo@openerp.com-20130201165015-l3dtvil3u59kqzf7 --- openerp/tests/addons/test_exceptions/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/tests/addons/test_exceptions/models.py b/openerp/tests/addons/test_exceptions/models.py index 45f0e6dbd47..03788159bf8 100644 --- a/openerp/tests/addons/test_exceptions/models.py +++ b/openerp/tests/addons/test_exceptions/models.py @@ -29,5 +29,5 @@ class m(openerp.osv.osv.Model): raise Exception('AccessDenied') def generate_undefined(self, cr, uid, ids, context=None): - self.surely_undefined_sumbol + self.surely_undefined_symbol # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 195be49479f93239849cd18c8807425e1fc983e7 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Fri, 1 Feb 2013 18:17:42 +0100 Subject: [PATCH 43/90] [IMP] add a new test for the new exception type bzr revid: abo@openerp.com-20130201171742-axfcg7y99uxpersw --- openerp/exceptions.py | 2 ++ openerp/tests/addons/test_exceptions/models.py | 4 ++++ openerp/tests/addons/test_exceptions/view.xml | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/openerp/exceptions.py b/openerp/exceptions.py index 46f0a29b1e0..41fff85010c 100644 --- a/openerp/exceptions.py +++ b/openerp/exceptions.py @@ -25,6 +25,8 @@ This module defines a few exception types. Those types are understood by the RPC layer. Any other exception type bubbling until the RPC layer will be treated as a 'Server error'. +If you consider introducing new exceptions, check out the test_exceptions +addon. """ class Warning(Exception): diff --git a/openerp/tests/addons/test_exceptions/models.py b/openerp/tests/addons/test_exceptions/models.py index 03788159bf8..78f0e182b48 100644 --- a/openerp/tests/addons/test_exceptions/models.py +++ b/openerp/tests/addons/test_exceptions/models.py @@ -19,6 +19,9 @@ class m(openerp.osv.osv.Model): def generate_warning(self, cr, uid, ids, context=None): raise openerp.exceptions.Warning('description') + def generate_redirect_warning(self, cr, uid, ids, context=None): + raise openerp.exceptions.RedirectWarning('description', self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'action_client_base_menu'), 'go to the redirection') + def generate_access_denied(self, cr, uid, ids, context=None): raise openerp.exceptions.AccessDenied() @@ -30,4 +33,5 @@ class m(openerp.osv.osv.Model): def generate_undefined(self, cr, uid, ids, context=None): self.surely_undefined_symbol + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/tests/addons/test_exceptions/view.xml b/openerp/tests/addons/test_exceptions/view.xml index 180029e739a..0c8e373a278 100644 --- a/openerp/tests/addons/test_exceptions/view.xml +++ b/openerp/tests/addons/test_exceptions/view.xml @@ -21,6 +21,10 @@ From b409abe3ad591470c7c047d9045ae44357922da6 Mon Sep 17 00:00:00 2001 From: csn-openerp Date: Wed, 13 Feb 2013 16:41:37 +0100 Subject: [PATCH 70/90] [FIX]procurement : put back size limit on field message since some db in saas were not update and we need to truncate to size=124 for those bzr revid: csn@openerp.com-20130213154137-4jl6h3c8dn4xpguf --- addons/procurement/procurement.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index 1ccc08236c7..59f624ed712 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -103,7 +103,7 @@ class procurement_order(osv.osv): readonly=True, required=True, help="If you encode manually a Procurement, you probably want to use" \ " a make to order method."), 'note': fields.text('Note'), - 'message': fields.char('Latest error', help="Exception occurred while computing procurement orders."), + 'message': fields.char('Latest error', size=124, help="Exception occurred while computing procurement orders."), 'state': fields.selection([ ('draft','Draft'), ('cancel','Cancelled'), From e72d321e01ac24e3aed8bc8b7c9f18fba1db42dd Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 13 Feb 2013 17:36:18 +0100 Subject: [PATCH 71/90] [FIX] many2many in kanban templates are mixed up in some cases lp bug: https://launchpad.net/bugs/1121902 fixed bzr revid: fme@openerp.com-20130213163618-sm1ces6h1wm7hsjn --- addons/web_kanban/static/src/js/kanban.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 23fac79736b..53279d3ce20 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -134,7 +134,9 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ switch (node.tag) { case 'field': if (this.fields_view.fields[node.attrs.name].type === 'many2many') { - this.many2manys.push(node.attrs.name); + if (_.indexOf(this.many2manys, node.attrs.name) < 0) { + this.many2manys.push(node.attrs.name); + } node.tag = 'div'; node.attrs['class'] = (node.attrs['class'] || '') + ' oe_form_field oe_tags'; } else { From 522bf1508a196170c4d753f2d59f7226ba083ed1 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 14 Feb 2013 05:36:03 +0000 Subject: [PATCH 72/90] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130213052103-dyim9whx08wn9mg4 bzr revid: launchpad_translations_on_behalf_of_openerp-20130214053603-ct5y2ol2671v2jiy --- openerp/addons/base/i18n/es.po | 10 +++++----- openerp/addons/base/i18n/fr.po | 10 +++++----- openerp/addons/base/i18n/hr.po | 11 ++++++++--- openerp/addons/base/i18n/pl.po | 10 +++++----- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po index a6a64ab135d..c25d12a00d8 100644 --- a/openerp/addons/base/i18n/es.po +++ b/openerp/addons/base/i18n/es.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-01-30 10:48+0000\n" -"Last-Translator: Mustufa Rangwala (Open ERP) \n" +"PO-Revision-Date: 2013-02-13 07:54+0000\n" +"Last-Translator: Pedro Manuel Baeza \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-01-31 05:16+0000\n" -"X-Generator: Launchpad (build 16455)\n" +"X-Launchpad-Export-Date: 2013-02-14 05:36+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -8437,7 +8437,7 @@ msgstr "Territorio británico del Océano Índico" #. module: base #: model:ir.actions.server,name:base.action_server_module_immediate_install msgid "Module Immediate Install" -msgstr "Módulo de instalación inmediata" +msgstr "Instalación inmediata del módulo(s)" #. module: base #: view:ir.actions.server:0 diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po index a7f8b1797c2..c6df3c8b892 100644 --- a/openerp/addons/base/i18n/fr.po +++ b/openerp/addons/base/i18n/fr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-02-07 10:58+0000\n" -"Last-Translator: Quentin THEURET \n" +"PO-Revision-Date: 2013-02-13 14:15+0000\n" +"Last-Translator: WANTELLET Sylvain \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: 2013-02-08 05:22+0000\n" -"X-Generator: Launchpad (build 16482)\n" +"X-Launchpad-Export-Date: 2013-02-14 05:35+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -16149,7 +16149,7 @@ msgstr "" #. module: base #: view:res.partner:0 msgid "Internal Notes" -msgstr "" +msgstr "Notes internes" #. module: base #: model:res.partner.title,name:base.res_partner_title_pvt_ltd diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po index c29fea7fa14..9edcabd1f8f 100644 --- a/openerp/addons/base/i18n/hr.po +++ b/openerp/addons/base/i18n/hr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-01-26 15:01+0000\n" +"PO-Revision-Date: 2013-02-13 23:16+0000\n" "Last-Translator: Davor Bojkić \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-01-27 05:09+0000\n" -"X-Generator: Launchpad (build 16451)\n" +"X-Launchpad-Export-Date: 2013-02-14 05:35+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -391,6 +391,8 @@ msgid "" "There is already a shared filter set as default for %(model)s, delete or " "change it before setting a new default" msgstr "" +"Već postoji dijeljeni set filtera kao zadani za %(model)s, obrišite ga ili " +"izmjenite prije spremanja novog." #. module: base #: code:addons/orm.py:2648 @@ -856,6 +858,9 @@ msgid "" "image, with aspect ratio preserved. Use this field anywhere a small image is " "required." msgstr "" +"Mala sličica ovog kontakta. Veličina je automatski promijenjena na 64x64 px " +"sliku. sa očuvanim proporcijama. Koristite ovo polje gdjegod je potrebna " +"mala slika." #. module: base #: help:ir.actions.server,mobile:0 diff --git a/openerp/addons/base/i18n/pl.po b/openerp/addons/base/i18n/pl.po index a8374b70a7d..5c2cde6f92c 100644 --- a/openerp/addons/base/i18n/pl.po +++ b/openerp/addons/base/i18n/pl.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-02-03 21:52+0000\n" -"Last-Translator: Mike08 \n" +"PO-Revision-Date: 2013-02-12 11:37+0000\n" +"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-02-04 05:42+0000\n" -"X-Generator: Launchpad (build 16462)\n" +"X-Launchpad-Export-Date: 2013-02-13 05:21+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -14619,7 +14619,7 @@ msgstr "Uruchom" #. module: base #: selection:res.partner,type:0 msgid "Shipping" -msgstr "Przewoźnik" +msgstr "Dostawa" #. module: base #: model:ir.module.module,description:base.module_project_mrp From 94ffa103936e3b6d3135a4edc07897f7eaf47c31 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 14 Feb 2013 05:36:33 +0000 Subject: [PATCH 73/90] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130214053633-muupgrai3q1dopwe --- addons/account/i18n/es_MX.po | 12 +- addons/account/i18n/mn.po | 190 ++++++++++---- addons/auth_crypt/i18n/ru.po | 73 +----- addons/auth_oauth_signup/i18n/ru.po | 23 ++ addons/base_calendar/i18n/cs.po | 38 ++- addons/base_import/i18n/hr.po | 374 +++++++++++++++++++++++++--- addons/procurement/i18n/mn.po | 4 +- addons/stock/i18n/mn.po | 82 +++--- 8 files changed, 595 insertions(+), 201 deletions(-) create mode 100644 addons/auth_oauth_signup/i18n/ru.po diff --git a/addons/account/i18n/es_MX.po b/addons/account/i18n/es_MX.po index dbe6df94020..f425cc9a8ba 100644 --- a/addons/account/i18n/es_MX.po +++ b/addons/account/i18n/es_MX.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-02-14 00:11+0000\n" +"Last-Translator: OscarAlca \n" "Language-Team: Spanish (Mexico) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-01-18 06:30+0000\n" -"X-Generator: Launchpad (build 16430)\n" +"X-Launchpad-Export-Date: 2013-02-14 05:36+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -5664,7 +5664,7 @@ msgstr "" #: selection:account.invoice.report,type:0 #: selection:report.invoice.created,type:0 msgid "Customer Refund" -msgstr "" +msgstr "Nota de crédito" #. module: account #: field:account.tax,ref_tax_sign:0 @@ -6186,7 +6186,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_invoice_tree3 #: model:ir.ui.menu,name:account.menu_action_invoice_tree3 msgid "Customer Refunds" -msgstr "" +msgstr "Notas de crédito del cliente" #. module: account #: field:account.account,foreign_balance:0 diff --git a/addons/account/i18n/mn.po b/addons/account/i18n/mn.po index b7b5092501c..fcde26ed560 100644 --- a/addons/account/i18n/mn.po +++ b/addons/account/i18n/mn.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-02-13 04:11+0000\n" +"PO-Revision-Date: 2013-02-13 10:27+0000\n" "Last-Translator: gobi \n" "Language-Team: Mongolian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-02-13 05:21+0000\n" +"X-Launchpad-Export-Date: 2013-02-14 05:36+0000\n" "X-Generator: Launchpad (build 16491)\n" #. module: account @@ -610,7 +610,7 @@ msgstr "Данс энэ журнальд хэрэглэгдсэн" #: help:account.vat.declaration,chart_account_id:0 #: help:accounting.report,chart_account_id:0 msgid "Select Charts of Accounts" -msgstr "Дансны модоо сонго" +msgstr "Дансны төлөвлөгөө сонго" #. module: account #: model:ir.model,name:account.model_account_invoice_refund @@ -994,7 +994,8 @@ msgstr "өдөр" msgid "" "If checked, the new chart of accounts will not contain this by default." msgstr "" -"Хэрэв тэмдэглэгдсэн бол шинэ дансны мод нь үүнийг анхны байдлаараа агуулахгүй" +"Хэрэв тэмдэглэгдсэн бол шинэ дансны төлөвлөгөө нь үүнийг анхны байдлаараа " +"агуулахгүй" #. module: account #: model:ir.actions.act_window,help:account.action_account_manual_reconcile @@ -2059,7 +2060,7 @@ msgstr "Бүх харицлагч" #. module: account #: view:account.analytic.chart:0 msgid "Analytic Account Charts" -msgstr "Аналитик дансны мод" +msgstr "Аналитик дансны төлөвлөгөө" #. module: account #: report:account.overdue:0 @@ -2590,7 +2591,7 @@ msgstr "" #. module: account #: view:account.chart.template:0 msgid "Search Chart of Account Templates" -msgstr "Дансны Модны Үлгэр Хайх" +msgstr "Дансны Төлөвлөгөөний Үлгэр Хайх" #. module: account #: report:account.invoice:0 @@ -3583,7 +3584,7 @@ msgstr "Байнга" msgid "" "Full accounting features: journals, legal statements, chart of accounts, etc." msgstr "" -"Бүрэн санхүүгийн боломж: журнал, албан ёсны хуулга, дансны мод, r.м." +"Бүрэн санхүүгийн боломж: журнал, албан ёсны хуулга, дансны төлөвлөгөө, r.м." #. module: account #: view:account.analytic.line:0 @@ -3645,7 +3646,7 @@ msgstr "Тулгалтын Сурвалж" #. module: account #: field:account.config.settings,has_chart_of_accounts:0 msgid "Company has a chart of accounts" -msgstr "Компани нь дансны модтой байна" +msgstr "Компани нь дансны төлөвлөгөөтэй байна" #. module: account #: model:ir.model,name:account.model_account_tax_code_template @@ -3852,7 +3853,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_chart_template_form #: model:ir.ui.menu,name:account.menu_action_account_chart_template_form msgid "Chart of Accounts Templates" -msgstr "Дансны модны загвар" +msgstr "Дансны төлөвлөгөөний үлгэр" #. module: account #: view:account.bank.statement:0 @@ -4109,6 +4110,11 @@ msgid "" "by\n" " your supplier/customer." msgstr "" +"Энэхүү кредит баримтыг шууд засварлаад батлаж болно\n" +" эсвэл үүнийг ноорог хэвээр нь хадгалаад\n" +" нийлүүлэгч/захиалагчаас ирэх баримтыг " +"хүлээж\n" +" болно." #. module: account #: view:validate.account.move.lines:0 @@ -4126,6 +4132,8 @@ msgid "" "You have not supplied enough arguments to compute the initial balance, " "please select a period and a journal in the context." msgstr "" +"Эхлэлийн балансыг тооцоолоход хүрэлцэх аргументийг дамжуулсангүй, агуулга " +"дотор мөчлөг болон журналыг сонгоно уу." #. module: account #: model:ir.actions.report.xml,name:account.account_transfers @@ -4135,12 +4143,12 @@ msgstr "Шилжүүлэлт" #. module: account #: field:account.config.settings,expects_chart_of_accounts:0 msgid "This company has its own chart of accounts" -msgstr "Энэ компани нь өөрийн дансны модтой байна" +msgstr "Энэ компани нь өөрийн дансны төлөвлөгөөтэй байна" #. module: account #: view:account.chart:0 msgid "Account charts" -msgstr "Дансны мод" +msgstr "Дансны төлөвлөгөө" #. module: account #: view:cash.box.out:0 @@ -4176,6 +4184,18 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Захиалагчийн нэхэмжлэлийг үүсгэхдээ дарна.\n" +"

\n" +" OpenERP-н цахим нэхэмжлэл нь захиалагчийн төлбөрийг \n" +" цуглуулах ажлыг хялбарчлах, хурдасгах боломжийг олгоно. \n" +" Захиалагч имэйлээр нэхэмжлэлийг хүлээн авах бөгөөд \n" +" онлайнаар төлөх эсвэл импортлох боломжтой. \n" +"

\n" +" Нэхэмжлэлийн доод талд захиалагчтай харилцсан түүх шууд \n" +" ил харагдана.\n" +"

\n" +" " #. module: account #: field:account.tax.code,name:0 @@ -4207,6 +4227,8 @@ msgid "" "You cannot modify a posted entry of this journal.\n" "First you should set the journal to allow cancelling entries." msgstr "" +"Энэ журналын илгээгдсэн бичлэгийг засварлах боломжгүй.\n" +"Эхлээд журналыг цуцлахыг зөвшөөрдөг болгох хэрэгтэй." #. module: account #: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal @@ -4231,6 +4253,8 @@ msgid "" "There is no fiscal year defined for this date.\n" "Please create one from the configuration of the accounting menu." msgstr "" +"Энэ огноонд санхүүгийн жил тодорхойлогдоогүй байна.\n" +"Санхүүгийн менюний тохиргоо хэсгээс үүсгэнэ үү." #. module: account #: view:account.addtmpl.wizard:0 @@ -4242,7 +4266,7 @@ msgstr "Данс үүсгэх" #: code:addons/account/wizard/account_fiscalyear_close.py:62 #, python-format msgid "The entries to reconcile should belong to the same company." -msgstr "" +msgstr "Тулгах бичилтүүд нь ижил компанид харъяалагдаж байх ёстой." #. module: account #: field:account.invoice.tax,tax_amount:0 @@ -4263,6 +4287,7 @@ msgstr "Задаргаа" #: help:account.config.settings,default_purchase_tax:0 msgid "This purchase tax will be assigned by default on new products." msgstr "" +"Энэ худалдан авалтын татвар нь автоматаар шинээр үүсгэсэн бараанд олгогдоно." #. module: account #: report:account.invoice:0 @@ -4280,7 +4305,7 @@ msgstr "НӨАТ :" #: model:ir.actions.act_window,name:account.action_account_tree #: model:ir.ui.menu,name:account.menu_action_account_tree2 msgid "Chart of Accounts" -msgstr "Дансны мод" +msgstr "Дансны төлөвлөгөө" #. module: account #: view:account.tax.chart:0 @@ -4290,7 +4315,7 @@ msgstr "(Хэрэв та мөчлөг сонгохгүй бол бүх нээл #. module: account #: model:ir.model,name:account.model_account_journal_cashbox_line msgid "account.journal.cashbox.line" -msgstr "" +msgstr "account.journal.cashbox.line" #. module: account #: model:ir.model,name:account.model_account_partner_reconcile_process @@ -4360,7 +4385,7 @@ msgstr "Тулгалтыг арилгах" #. module: account #: view:account.chart.template:0 msgid "Chart of Accounts Template" -msgstr "Загвар дансны мод" +msgstr "Дансны төлөвлөгөөний үлгэр" #. module: account #: code:addons/account/account.py:2310 @@ -4431,7 +4456,7 @@ msgstr "" #. module: account #: field:account.config.settings,group_check_supplier_invoice_total:0 msgid "Check the total of supplier invoices" -msgstr "" +msgstr "Нийлүүлэгчийн нэхэмжлэлийн дүнг шалгана уу" #. module: account #: view:account.tax:0 @@ -4445,6 +4470,8 @@ msgid "" "When monthly periods are created. The status is 'Draft'. At the end of " "monthly period it is in 'Done' status." msgstr "" +"Сараар мөчлөгийг үүсгэгдэхэд төлөв нь 'Ноорог' байна. Сарын мөчлөгийн " +"төгсгөлд энэ нь 'Хийгдсэн' төлөвтэй болно." #. module: account #: view:account.invoice.report:0 @@ -4520,7 +4547,7 @@ msgstr "Татварын кодын үржүүлэх коэффициент" #. module: account #: field:account.config.settings,complete_tax_set:0 msgid "Complete set of taxes" -msgstr "" +msgstr "Татварын олонлогуудыг гүйцээнэ үү" #. module: account #: field:account.account,name:0 @@ -4538,12 +4565,12 @@ msgstr "Нэр" #: code:addons/account/installer.py:94 #, python-format msgid "No unconfigured company !" -msgstr "" +msgstr "Тохируулаагүй компани алга !" #. module: account #: field:res.company,expects_chart_of_accounts:0 msgid "Expects a Chart of Accounts" -msgstr "" +msgstr "Дансны төлөвлөгөөг гэж таамаглана" #. module: account #: field:account.move.line,date:0 @@ -4554,7 +4581,7 @@ msgstr "Огноо" #: code:addons/account/wizard/account_fiscalyear_close.py:100 #, python-format msgid "The journal must have default credit and debit account." -msgstr "" +msgstr "Журнал нь үндсэн утга байх дебит, кредит данстай байх ёстой." #. module: account #: model:ir.actions.act_window,name:account.action_bank_tree @@ -4565,7 +4592,7 @@ msgstr "Банкы дансдаа тохируулах" #. module: account #: xsl:account.transfer:0 msgid "Partner ID" -msgstr "" +msgstr "Харилцагчийн ID" #. module: account #: help:account.bank.statement,message_ids:0 @@ -4605,13 +4632,15 @@ msgid "" "Check this box if you don't want any tax related to this tax Code to appear " "on invoices." msgstr "" +"Хэрэв нэхэмжлэл дээр энэ кодтой холбогдсон ямарваа дансыг харуулахгүй байхыг " +"энэ сонголтыг тэмдэглэнэ." #. module: account #: code:addons/account/account_move_line.py:1061 #: code:addons/account/account_move_line.py:1144 #, python-format msgid "You cannot use an inactive account." -msgstr "" +msgstr "Идэвхгүй дансыг хэрэглэх боломжгүй." #. module: account #: model:ir.actions.act_window,name:account.open_board_account @@ -4732,7 +4761,7 @@ msgstr "(Нээх гэж буй нэхэмжлэл нь тулгагдаагүй #. module: account #: field:account.tax,account_analytic_collected_id:0 msgid "Invoice Tax Analytic Account" -msgstr "" +msgstr "Нэхэмжлэлийн Татварын Шинжилгээний Данс" #. module: account #: field:account.chart,period_from:0 @@ -4770,6 +4799,8 @@ msgid "" "This payment term will be used instead of the default one for sale orders " "and customer invoices" msgstr "" +"Энэ төлбөрийн нөхцөл нь борлуулалтын захиалга, захиалагчийн нэхэмжлэлийн " +"үндсэн утгын оронд хэрэглэгдэнэ." #. module: account #: view:account.config.settings:0 @@ -4777,6 +4808,7 @@ msgid "" "If you put \"%(year)s\" in the prefix, it will be replaced by the current " "year." msgstr "" +"Хэрэв \"%(year)s\" гэж угтварт нь тавьбал энэ одоогийн жилээр солигдоно." #. module: account #: help:account.account,active:0 @@ -4794,7 +4826,7 @@ msgstr "Батлагдсан журналын бичилтүүд" #. module: account #: field:account.move.line,blocked:0 msgid "No Follow-up" -msgstr "" +msgstr "Дагаж хийх зүйлс байхгүй" #. module: account #: view:account.tax.template:0 @@ -4813,6 +4845,9 @@ msgid "" "9.99 EUR, whereas a decimal precision of 4 will allow journal entries like: " "0.0231 EUR." msgstr "" +"Тухайлбал, аравны нарийвчлалын орон нь 2 гэж байвал журналын бичилт нь " +"дараах байдалтай байна: 9.99 EUR, харин аравны нарийвчлалын орон нь 4 гэж " +"байвал дараах байдалтай байна: 0.0231 EUR." #. module: account #: field:account.account,shortcut:0 @@ -4876,6 +4911,17 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Шинэ банкны данс тохируулахдаа дарна. \n" +"

\n" +" Компанийн банкны дансуудыг тохируулаад тайлангийн\n" +" хөлд харагдах дансыг нь сонгоно.\n" +"

\n" +" Хэрэв OpenERP-н санхүүгийн модулийг ашиглаж байгаа бол\n" +" журнал болон санхүүгийн данс нь тохируулсан өгөгдөл дээрээс\n" +" шууд үүснэ.\n" +"

\n" +" " #. module: account #: constraint:account.tax.code.template:0 @@ -4883,6 +4929,8 @@ msgid "" "Error!\n" "You cannot create recursive Tax Codes." msgstr "" +"Алдаа!\n" +"Тойрог хамааралтай татварын код үүсгэж болохгүй." #. module: account #: constraint:account.period:0 @@ -4890,6 +4938,8 @@ msgid "" "Error!\n" "The duration of the Period(s) is/are invalid." msgstr "" +"Алдаа!\n" +"Мөчлөгийн үргэлжлэх хугацаа буруу байна." #. module: account #: field:account.entries.report,month:0 @@ -4906,7 +4956,7 @@ msgstr "Сар" #: code:addons/account/account.py:668 #, python-format msgid "You cannot change the code of account which contains journal items!" -msgstr "" +msgstr "Журналын бичилт агуулж байгаа дансны кодыг өөрчлөж болохгүй!" #. module: account #: field:account.config.settings,purchase_sequence_prefix:0 @@ -4921,6 +4971,8 @@ msgid "" "Cannot find a chart of account, you should create one from Settings\\" "Configuration\\Accounting menu." msgstr "" +"Дансны төлөвлөгөөг олохгүй байна. Санхүү меню дахь Тохиргоо\\Тохиргоо " +"хэсгээс үүсгэнэ." #. module: account #: field:account.entries.report,product_uom_id:0 @@ -4942,7 +4994,7 @@ msgstr "Дансны төрөл" #. module: account #: selection:account.journal,type:0 msgid "Bank and Checks" -msgstr "" +msgstr "Банк болон Чек" #. module: account #: field:account.account.template,note:0 @@ -4970,7 +5022,7 @@ msgstr "Хоосон орхивол өнөөдрийн огноо сонгогд #: view:account.bank.statement:0 #: field:account.cashbox.line,subtotal_closing:0 msgid "Closing Subtotal" -msgstr "" +msgstr "Хаалтын Дэд дүн" #. module: account #: field:account.tax,base_code_id:0 @@ -4982,7 +5034,7 @@ msgstr "Account Base Code" #, python-format msgid "" "You have to provide an account for the write off/exchange difference entry." -msgstr "" +msgstr "Та Хасагдуулга/солилцооны ялгааны дансыг зааж өгөх ёстой." #. module: account #: help:res.company,paypal_account:0 @@ -5025,7 +5077,7 @@ msgstr "Хэрэв тэг үлдэгдэлтэй дансуудыг харахы #. module: account #: field:account.move.reconcile,opening_reconciliation:0 msgid "Opening Entries Reconciliation" -msgstr "" +msgstr "Нээлтийн Бичилтийн Тулгалт" #. module: account #. openerp-web @@ -5037,7 +5089,7 @@ msgstr "Сүүлчийн тулгалт:" #. module: account #: selection:account.move.line,state:0 msgid "Balanced" -msgstr "" +msgstr "Балансалсан" #. module: account #: model:process.node,note:account.process_node_importinvoice0 @@ -5051,16 +5103,18 @@ msgid "" "There is currently no company without chart of account. The wizard will " "therefore not be executed." msgstr "" +"Одоогоор дансны төлөвлөгөө үгүй компани байхгүй байна. Иймээс харилцах цонх " +"нь ажиллахгүй." #. module: account #: model:ir.actions.act_window,name:account.action_wizard_multi_chart msgid "Set Your Accounting Options" -msgstr "" +msgstr "Санхүүгийн сонголтуудыг тохируулах" #. module: account #: model:ir.model,name:account.model_account_chart msgid "Account chart" -msgstr "Дансны мод" +msgstr "Дансны төлөвлөгөө" #. module: account #: field:account.invoice,reference_type:0 @@ -5149,7 +5203,7 @@ msgstr "Мөчлөгийн нэр компаний хэмжээнд үл дав #. module: account #: help:wizard.multi.charts.accounts,currency_id:0 msgid "Currency as per company's country." -msgstr "" +msgstr "Компанийн хэмжээнд улсын валют" #. module: account #: view:account.tax:0 @@ -5169,7 +5223,7 @@ msgid "" "you want to generate accounts of this template only when loading its child " "template." msgstr "" -"Хэрэв энэ үлгэр нь Дансны Модыг үүсгэх харилцах цонхонд хэрэглэхээргүй " +"Хэрэв энэ үлгэр нь Дансны Төлөвлөгөөг үүсгэх харилцах цонхонд хэрэглэхээргүй " "байвал энэ тэмдэглэгээг арилгана. Энэ нь зөвхөн дэд үлгэрийг дуудаж дэд " "дансдыг үүсгэхэд л хэрэгтэй." @@ -5190,6 +5244,8 @@ msgid "" "Error!\n" "You cannot create an account which has parent account of different company." msgstr "" +"Алдаа!\n" +"Өөр компанийн дансыг эцэг дансаа болгосон данс үүсгэж болохгүй." #. module: account #: code:addons/account/account_invoice.py:631 @@ -5229,7 +5285,7 @@ msgstr "Давтан гүйлгээний загвар" #. module: account #: view:account.tax:0 msgid "Children/Sub Taxes" -msgstr "" +msgstr "Охин/Дэд татвар" #. module: account #: xsl:account.transfer:0 @@ -5261,12 +5317,12 @@ msgstr "Цуцлагдсан" #. module: account #: help:account.config.settings,group_proforma_invoices:0 msgid "Allows you to put invoices in pro-forma state." -msgstr "" +msgstr "Нэхэмжлэлийг урьдчилсан төлөвт тавих боломжийг олгоно." #. module: account #: view:account.journal:0 msgid "Unit Of Currency Definition" -msgstr "" +msgstr "Валютын нэгжний тодорхойлолт" #. module: account #: help:account.partner.ledger,amount_currency:0 @@ -5275,6 +5331,7 @@ msgid "" "It adds the currency column on report if the currency differs from the " "company currency." msgstr "" +"Энэ нь тайланд валют баганыг хэрэв компанийн валютаас ялгаатай байвал нэмнэ." #. module: account #: code:addons/account/account.py:3346 @@ -5349,6 +5406,9 @@ msgid "" "printed it comes to 'Printed' status. When all transactions are done, it " "comes in 'Done' status." msgstr "" +"Журналын мөчлөг нь үүсгэгдмэгцээ 'Ноорог' төлөвтэй байна. Хэрэв тайлан " +"хэвлэгдвэл 'Хэвлэгдсэн' төлөвт шилжинэ. Бүх гүйлгээ хийгдсэн бол 'Хийгдсэн' " +"төлөвт шилжинэ." #. module: account #: code:addons/account/account.py:3157 @@ -5377,7 +5437,7 @@ msgstr "Нэхэмжлэл" #. module: account #: help:account.config.settings,expects_chart_of_accounts:0 msgid "Check this box if this company is a legal entity." -msgstr "" +msgstr "Хэрэв энэ компани нь хуулийн этгээд бол энэ талбарыг тэмдэглэ." #. module: account #: model:account.account.type,name:account.conf_account_type_chk @@ -5494,6 +5554,8 @@ msgid "" "Set the account that will be set by default on invoice tax lines for " "invoices. Leave empty to use the expense account." msgstr "" +"Нэхэмжлэлийн татварын мөрөнд автоматаар сонгогдох дансыг тохируулж өгнө. " +"Хэрэв зардлын дансыг хэрэглэхээр бол хоосон үлдээнэ." #. module: account #: code:addons/account/account.py:890 @@ -5529,6 +5591,8 @@ msgid "" "Please verify the price of the invoice !\n" "The encoded total does not match the computed total." msgstr "" +"Нэхэмжлэлийн үнийг шалгана уу !\n" +"Оруулсан нийт дүн тооцоолсон нийт дүнтэй таарахгүй байна." #. module: account #: field:account.account,active:0 @@ -5544,7 +5608,7 @@ msgstr "Идэвхитэй" #: view:account.bank.statement:0 #: field:account.journal,cash_control:0 msgid "Cash Control" -msgstr "" +msgstr "Кассын хяналт" #. module: account #: field:account.analytic.balance,date2:0 @@ -5615,7 +5679,7 @@ msgstr "Ажил гүйлгээ" #: field:account.bank.statement,details_ids:0 #: view:account.journal:0 msgid "CashBox Lines" -msgstr "" +msgstr "Кассын мөрүүд" #. module: account #: model:ir.model,name:account.model_account_vat_declaration @@ -5628,6 +5692,8 @@ msgid "" "If you do not check this box, you will be able to do invoicing & payments, " "but not accounting (Journal Items, Chart of Accounts, ...)" msgstr "" +"Хэрэв энэ талбарыг тэмдэглэхгүй бол нэхэмжлэл, төлбөрийг хийх боломжтой байх " +"боловч санхүүг хөтлөж чадахгүй (Журналын бичилт, Дансны төлөвлөгөө, ...)" #. module: account #: view:account.period:0 @@ -5706,12 +5772,14 @@ msgstr "Хэрэглэх гүйлгээ" msgid "" "Move cannot be deleted if linked to an invoice. (Invoice: %s - Move ID:%s)" msgstr "" +"Хөдөлгөөн хэрэв энэ нэхэмжлэлтэй холбогдсон бол устгагдах боломжгүй. " +"(Нэхэмжлэл: %s - Хөдөлгөөн ID:%s)" #. module: account #: view:account.bank.statement:0 #: help:account.cashbox.line,number_opening:0 msgid "Opening Unit Numbers" -msgstr "" +msgstr "Нээлтийн нэгжийн тоонууд" #. module: account #: field:account.subscription,period_type:0 @@ -5793,11 +5861,14 @@ msgid "" "Put a sequence in the journal definition for automatic numbering or create a " "sequence manually for this piece." msgstr "" +"Энэ зүйлд автомат дарааллын дугаарыг үүсгэж чадахгүй.\n" +"Журналын тодорхойлолтыг дарааллыг сонгож өгөх хэрэгтэй эсвэл энэ зүйлд " +"дугаарыг гараараа оруулж явна." #. module: account #: view:account.invoice:0 msgid "Pro Forma Invoice " -msgstr "" +msgstr "Урьдчилсан нэхэмжлэл " #. module: account #: selection:account.subscription,period_type:0 @@ -5862,7 +5933,7 @@ msgstr "Тооцоолох програмчлалын код (хэрэв төр #, python-format msgid "" "Cannot find a chart of accounts for this company, you should create one." -msgstr "" +msgstr "Энэ компаний дансны төлөвлөгөө олдохгүй байна, үүсгэнэ үү." #. module: account #: selection:account.analytic.journal,type:0 @@ -6186,7 +6257,7 @@ msgstr "Төлбөрийн огноо" #: view:account.bank.statement:0 #: field:account.bank.statement,opening_details_ids:0 msgid "Opening Cashbox Lines" -msgstr "" +msgstr "Кассын Нээлтийн Мөрүүд" #. module: account #: view:account.analytic.account:0 @@ -6598,6 +6669,8 @@ msgid "" "You cannot validate this journal entry because account \"%s\" does not " "belong to chart of accounts \"%s\"." msgstr "" +"Энэ журналын бичилтийг батлаж чадахгүй учир нь данс \"%s\" нь \"%s\" дансны " +"төлөвлөгөөнд харъяалагдахгүй." #. module: account #: view:account.financial.report:0 @@ -7862,7 +7935,7 @@ msgstr "Үнэ" #: view:account.bank.statement:0 #: field:account.bank.statement,closing_details_ids:0 msgid "Closing Cashbox Lines" -msgstr "" +msgstr "Кассын Хаалтын Мөрүүд" #. module: account #: view:account.bank.statement:0 @@ -8127,6 +8200,24 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Шинэ шинжилгээний данс үүсгэхдээ дарна.\n" +"

\n" +" Энгийн дансны төлөвлөгөө нь улс орны хууль, эрх зүйн\n" +" дагууд тодорхойлогдсон бүтэцтэц байдаг. Харин шинжилгээний\n" +" дансны төлөвлөгөө нь өөрийн бизнесийн хэрэгцээ шаардлагын\n" +" дагууд өртөг/орлого зэрэгийн тайлангийн дагууд бүтэцтэй " +"байна.\n" +"

\n" +" Ихэвчлэн гэрээнүүд, төслүүд, бүтээгдэхүүнүүд, хэлтсүүд гэсэн " +"\n" +" байдлаар бүтэцлэгдсэн байдаг. OpenERP-н ихэнх үйлдлүүд нь " +"(нэхэмжлэл,\n" +" цаг бүртгэлийн хуудас, зардал, гм) санхүүгийн бичилтэй " +"холбогдох \n" +" шинжилгээний бичилтийг мөн давхар тогтмол үүсгэдэг.\n" +"

\n" +" " #. module: account #: model:account.account.type,name:account.data_account_type_view @@ -8263,6 +8354,7 @@ msgid "" "You have to set a code for the bank account defined on the selected chart of " "accounts." msgstr "" +"Сонгосон дансны төлөвгөөнд банкны дансны кодыг тодорхойлж өгөх хэрэгтэй." #. module: account #: model:ir.ui.menu,name:account.menu_manual_reconcile @@ -8326,7 +8418,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_chart_template msgid "Templates for Account Chart" -msgstr "Дансны модны загвар" +msgstr "Дансны төлөвлөгөөний үлгэр" #. module: account #: help:account.model.line,sequence:0 @@ -8523,7 +8615,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_cashbox_line msgid "CashBox Line" -msgstr "Кассын мөнгө" +msgstr "Кассын мөр" #. module: account #: field:account.installer,charts:0 @@ -8716,7 +8808,7 @@ msgstr "Нийт үлдэгдэл" #. module: account #: view:account.bank.statement:0 msgid "Opening Cash Control" -msgstr "" +msgstr "Кассын нээлтийн хяналт" #. module: account #: model:process.node,note:account.process_node_invoiceinvoice0 @@ -10085,7 +10177,7 @@ msgstr "7 сар" #. module: account #: view:account.account:0 msgid "Chart of accounts" -msgstr "Дансны мод" +msgstr "Дансны төлөвлөгөө" #. module: account #: field:account.subscription.line,subscription_id:0 diff --git a/addons/auth_crypt/i18n/ru.po b/addons/auth_crypt/i18n/ru.po index 9701a6ba556..b13e2c0effb 100644 --- a/addons/auth_crypt/i18n/ru.po +++ b/addons/auth_crypt/i18n/ru.po @@ -1,75 +1,28 @@ # Russian translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2011. +# FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2012-12-03 16:03+0000\n" -"PO-Revision-Date: 2012-12-07 08:15+0000\n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-02-13 09:46+0000\n" "Last-Translator: Denis Karataev \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-12-08 04:59+0000\n" -"X-Generator: Launchpad (build 16341)\n" +"X-Launchpad-Export-Date: 2013-02-14 05:36+0000\n" +"X-Generator: Launchpad (build 16491)\n" -#. module: base_crypt -#: model:ir.model,name:base_crypt.model_res_users +#. module: auth_crypt +#: field:res.users,password_crypt:0 +msgid "Encrypted Password" +msgstr "Зашифрованный пароль" + +#. module: auth_crypt +#: model:ir.model,name:auth_crypt.model_res_users msgid "Users" msgstr "Пользователи" - -#~ msgid "res.users" -#~ msgstr "res.users" - -#, python-format -#~ msgid "Error" -#~ msgstr "Error" - -#, python-format -#~ msgid "Please specify the password !" -#~ msgstr "Необходимо указать пароль!" - -#~ msgid "The chosen company is not in the allowed companies for this user" -#~ msgstr "" -#~ "Выбранная организация отсутствует в списке разрешённых для этого пользователя" - -#~ msgid "You can not have two users with the same login !" -#~ msgstr "Не может быть двух пользователей с одинаковым именем пользователя!" - -#~ msgid "Base - Password Encryption" -#~ msgstr "Основной - Шифрование паролей" - -#~ msgid "" -#~ "This module replaces the cleartext password in the database with a password " -#~ "hash,\n" -#~ "preventing anyone from reading the original password.\n" -#~ "For your existing user base, the removal of the cleartext passwords occurs " -#~ "the first time\n" -#~ "a user logs into the database, after installing base_crypt.\n" -#~ "After installing this module it won't be possible to recover a forgotten " -#~ "password for your\n" -#~ "users, the only solution is for an admin to set a new password.\n" -#~ "\n" -#~ "Note: installing this module does not mean you can ignore basic security " -#~ "measures,\n" -#~ "as the password is still transmitted unencrypted on the network (by the " -#~ "client),\n" -#~ "unless you are using a secure protocol such as XML-RPCS.\n" -#~ " " -#~ msgstr "" -#~ "Этот модуль заменяет текстовые пароли в базе данных на их хэши,\n" -#~ "предотвращая хищение оригинальных паролей.\n" -#~ "Для существующей базы пользователей, удаление текстового пароля происходит " -#~ "при\n" -#~ "первом входе пользователя после установки base_crypt.\n" -#~ "После установки этого модуля станет невозможно восстановление пароля \n" -#~ "пользователя. Возможна будет только замена пароля.\n" -#~ "\n" -#~ "Прим.: установка этого модуля не избавляет от необходимости соблюдать\n" -#~ "базовые меры безопасности, поскольку пароли всё ещё передаются открытым\n" -#~ "текстом по сети, если не используется безопасный протокол вроде XML-RPCS.\n" -#~ " " diff --git a/addons/auth_oauth_signup/i18n/ru.po b/addons/auth_oauth_signup/i18n/ru.po new file mode 100644 index 00000000000..2bb35847b10 --- /dev/null +++ b/addons/auth_oauth_signup/i18n/ru.po @@ -0,0 +1,23 @@ +# Russian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-02-13 09:46+0000\n" +"Last-Translator: Denis Karataev \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-02-14 05:36+0000\n" +"X-Generator: Launchpad (build 16491)\n" + +#. module: auth_oauth_signup +#: model:ir.model,name:auth_oauth_signup.model_res_users +msgid "Users" +msgstr "Пользователи" diff --git a/addons/base_calendar/i18n/cs.po b/addons/base_calendar/i18n/cs.po index 02184604710..bc88b5e0cb2 100644 --- a/addons/base_calendar/i18n/cs.po +++ b/addons/base_calendar/i18n/cs.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2013-02-12 18:30+0000\n" +"PO-Revision-Date: 2013-02-13 19:13+0000\n" "Last-Translator: Radomil Urbánek \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-02-13 05:21+0000\n" +"X-Launchpad-Export-Date: 2013-02-14 05:36+0000\n" "X-Generator: Launchpad (build 16491)\n" #. module: base_calendar @@ -68,7 +68,7 @@ msgstr "Opakovaná schůzka" #. module: base_calendar #: model:crm.meeting.type,name:base_calendar.categ_meet5 msgid "Feedback Meeting" -msgstr "" +msgstr "Objednaná schůzka" #. module: base_calendar #: model:ir.actions.act_window,name:base_calendar.action_res_alarm_view @@ -185,7 +185,7 @@ msgstr "Pokud je zaškrtnuto, nové zprávy vyžadují vaši pozornost." #. module: base_calendar #: help:calendar.attendee,rsvp:0 msgid "Indicats whether the favor of a reply is requested" -msgstr "" +msgstr "Vyznačuje, je-li vyžadováno odsouhlasení." #. module: base_calendar #: field:calendar.alarm,alarm_id:0 @@ -303,7 +303,7 @@ msgstr "Stav podílení účastníka" #. module: base_calendar #: view:crm.meeting:0 msgid "Mail To" -msgstr "" +msgstr "Odeslat na" #. module: base_calendar #: field:crm.meeting,name:0 @@ -360,6 +360,8 @@ msgid "" "Holds the Chatter summary (number of messages, ...). This summary is " "directly in html format in order to be inserted in kanban views." msgstr "" +"Udržuje souhrn klábosení (počet zpráv, ...). Tento souhrn je přímo ve " +"formátu HTML aby jej bylo možné vložit do pohledů kanban." #. module: base_calendar #: code:addons/base_calendar/base_calendar.py:399 @@ -528,7 +530,7 @@ msgstr "Informace budíku události" #: code:addons/base_calendar/base_calendar.py:1010 #, python-format msgid "Count cannot be negative or 0." -msgstr "" +msgstr "Počet nemůže být záporný nebo nulový." #. module: base_calendar #: field:crm.meeting,create_date:0 @@ -547,7 +549,7 @@ msgstr "Událost" #: selection:calendar.todo,rrule_type:0 #: selection:crm.meeting,rrule_type:0 msgid "Month(s)" -msgstr "" +msgstr "měsíc" #. module: base_calendar #: view:calendar.event:0 @@ -569,7 +571,7 @@ msgstr "URL Caldav" #. module: base_calendar #: model:ir.model,name:base_calendar.model_mail_wizard_invite msgid "Invite wizard" -msgstr "" +msgstr "Průvodce pozvánkou" #. module: base_calendar #: selection:calendar.event,month_list:0 @@ -1127,7 +1129,7 @@ msgstr "" #: field:calendar.todo,end_type:0 #: field:crm.meeting,end_type:0 msgid "Recurrence Termination" -msgstr "" +msgstr "Ukončení opakování" #. module: base_calendar #: view:crm.meeting:0 @@ -1185,6 +1187,14 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Klepněte pro naplánování nové schůzky.\n" +"

\n" +" Kalendář je sdílen zaměstnanci a je propojen\n" +" s dalšími moduly, jako dovolené zaměstnanců nebo obchodní\n" +" příležitosti.\n" +"

\n" +" " #. module: base_calendar #: help:calendar.alarm,description:0 @@ -1330,7 +1340,7 @@ msgstr "ir.values" #. module: base_calendar #: view:crm.meeting:0 msgid "Search Meetings" -msgstr "" +msgstr "Hledat schůzky" #. module: base_calendar #: model:ir.model,name:base_calendar.model_ir_attachment @@ -1366,6 +1376,13 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Klepni zde pro nastavení nového druhu upozornění.\n" +"

\n" +" Můžete vytvořit své upozornění, které pak můžete\n" +" použít pro události nebo schůzky v kalendáři.\n" +"

\n" +" " #. module: base_calendar #: selection:crm.meeting,state:0 @@ -1416,6 +1433,7 @@ msgid "" "Contains the text to be used as the message subject for " "email or contains the text to be used for display" msgstr "" +"Obsahuje text, který bude použit jako předmět e-mailu nebo pro zobrazení" #. module: base_calendar #: model:ir.model,name:base_calendar.model_mail_message diff --git a/addons/base_import/i18n/hr.po b/addons/base_import/i18n/hr.po index cb21df6c88b..c4d23e2020b 100644 --- a/addons/base_import/i18n/hr.po +++ b/addons/base_import/i18n/hr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-02-13 22:57+0000\n" +"Last-Translator: Davor Bojkić \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-01-18 06:36+0000\n" -"X-Generator: Launchpad (build 16430)\n" +"X-Launchpad-Export-Date: 2013-02-14 05:36+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base_import #. openerp-web @@ -29,7 +29,7 @@ msgstr "Dohvati sve moguće vrijednosti" #: code:addons/base_import/static/src/xml/import.xml:71 #, python-format msgid "Need to import data from an other application?" -msgstr "" +msgstr "Potreban je uvoz podataka iz druge aplikacije?" #. module: base_import #. openerp-web @@ -47,6 +47,15 @@ msgid "" "give \n" " you an example for Products and their Categories." msgstr "" +"Kada koristite vanjske ID-eve, možete uvesti csv datoteke \n" +" sa kolonom \"External ID\" " +"definirate vanjski ID svakog zapisa \n" +" koji uvozite. Tada ćete biti " +"u mogućnosti napraviti referencu \n" +" na taj zapis sa kolonama tipa " +"\"polje/External ID\". Sljedeća dvije \n" +" csv datoteke daju primjer za " +"proizvode i njihove kategorije." #. module: base_import #. openerp-web @@ -56,13 +65,16 @@ msgid "" "How to export/import different tables from an SQL \n" " application to OpenERP?" msgstr "" +"Kako izvesti/uvesti različite tablice iz SQL \n" +" " +"programa u OpenERP" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/js/import.js:310 #, python-format msgid "Relation Fields" -msgstr "" +msgstr "Relacijska polja" #. module: base_import #. openerp-web @@ -72,6 +84,9 @@ msgid "" "Country/Database ID: the unique OpenERP ID for a \n" " record, defined by the ID postgresql column" msgstr "" +"Država/ID baze: jedinstveni OpenERP ID za \n" +" " +" zapis, definran kolonom postgres kolonom ID" #. module: base_import #. openerp-web @@ -87,6 +102,16 @@ msgid "" "\n" " have a unique Database ID)" msgstr "" +"Korištenje \n" +" Država/ID " +"BAze : ovo bi trebali rijetko koristiti\n" +" za " +"označavanje. Ovo je većinom korišteno od strane programera\n" +" jer je " +"glavna prednost ovoga to što nikad nema konflikata \n" +" (možete " +"imati više zapisa istog naziva, ali uvjek sa jedinstvenim IDentifikatorom u " +"Bazi)" #. module: base_import #. openerp-web @@ -96,6 +121,9 @@ msgid "" "For the country \n" " Belgium, you can use one of these 3 ways to import:" msgstr "" +"Za državu \n" +" " +" Belgiju, možete koristiti jedan od ova 3 načina uza uvoz:" #. module: base_import #. openerp-web @@ -121,13 +149,20 @@ msgid "" "companies) TO \n" " '/tmp/company.csv' with CSV HEADER;" msgstr "" +"kopirajte \n" +" (select " +"'company_'||id as \"External ID\",company_name\n" +" as " +"\"Name\",'True' as \"Is a Company\" from companies) TO\n" +" " +"'/tmp/company.csv' with CSV HEADER;" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/xml/import.xml:206 #, python-format msgid "CSV file for Manufacturer, Retailer" -msgstr "" +msgstr "CSV datoteka za Proizvođače, Veletrgovce" #. module: base_import #. openerp-web @@ -139,6 +174,11 @@ msgid "" "\n" " data from a third party application." msgstr "" +"Koristi \n" +" Država/Vanjski ID. " +"koristite vanjski ID kad uvozite \n" +" podatke iz drugih " +"aplikacija." #. module: base_import #. openerp-web @@ -152,7 +192,7 @@ msgstr "" #: code:addons/base_import/static/src/xml/import.xml:80 #, python-format msgid "XXX/External ID" -msgstr "" +msgstr "XXX/Vanjski ID" #. module: base_import #. openerp-web @@ -181,6 +221,14 @@ msgid "" "\n" " See the following question." msgstr "" +"Primjetite da vaša csv datoteka \n" +" ima tabulator za " +"odvajanje, a OpenERP neće \n" +" primjetiti ta odvajanja. " +"Morate promjineiti format \n" +" zapisa u vašem tabličnom " +"kalkulatoru. \n" +" Vidi sljedeće pitanje." #. module: base_import #. openerp-web @@ -199,7 +247,7 @@ msgstr "" #: code:addons/base_import/static/src/xml/import.xml:239 #, python-format msgid "Can I import several times the same record?" -msgstr "" +msgstr "Mogu li isti zapis uvesti nekoliko puta?" #. module: base_import #. openerp-web @@ -213,7 +261,7 @@ msgstr "Potvrdi" #: code:addons/base_import/static/src/xml/import.xml:55 #, python-format msgid "Map your data to OpenERP" -msgstr "" +msgstr "Mapirajte vaše podatke na OpenERP" #. module: base_import #. openerp-web @@ -224,6 +272,10 @@ msgid "" " the easiest way when your data come from CSV files \n" " that have been created manually." msgstr "" +"Korištenje Države: ovo je \n" +" najlakši način kada vaši " +"podaci dolaze iz csv datoteka\n" +" koje su sastavljene ručno." #. module: base_import #. openerp-web @@ -233,6 +285,8 @@ msgid "" "What's the difference between Database ID and \n" " External ID?" msgstr "" +"Koja je razlika izmeži ID Baze i \n" +" vanjski ID?" #. module: base_import #. openerp-web @@ -244,25 +298,30 @@ msgid "" "\n" " you 3 different fields to import:" msgstr "" +"Na primjer, \n" +" referenciranje države " +"kontakta, OpenERP predlaže \n" +" 3 različita polja za " +"uvoz :" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/xml/import.xml:175 #, python-format msgid "What can I do if I have multiple matches for a field?" -msgstr "" +msgstr "Što da radim ako imam više istih zapisa za polje?" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/xml/import.xml:302 #, python-format msgid "External ID,Name,Is a Company" -msgstr "" +msgstr "Vanjski ID , Naziv, Je Tvrtka" #. module: base_import #: field:base_import.tests.models.preview,somevalue:0 msgid "Some Value" -msgstr "" +msgstr "Neka vrijednost" #. module: base_import #. openerp-web @@ -272,6 +331,9 @@ msgid "" "The following CSV file shows how to import \n" " suppliers and their respective contacts" msgstr "" +"Sljedeća csv datoteka pokazuje kako uvesti \n" +" " +" dobavljače i njihove pripadne kontakte" #. module: base_import #. openerp-web @@ -281,6 +343,9 @@ msgid "" "How can I change the CSV file format options when \n" " saving in my spreadsheet application?" msgstr "" +"Kako da promijenim opcije csv formata \n" +" " +"kada spremam datoteku u tabličnom kalkulatoru?" #. module: base_import #. openerp-web @@ -301,6 +366,21 @@ msgid "" "orignial \n" " database)." msgstr "" +"kako možete vidjeti iz ove datoteke, Fabien i Laurence \n" +" " +" rade za organizaciju Biggies (company_1), a \n" +" " +" Eric radi za Organi. Pozezivanje osoba i " +"organizacija se radi \n" +" " +" korištenjem Vanjskog ID-a organizacije. Morali smo " +"staviti prefix \n" +" " +" naziva tablice na Vanjski ID da izbjegnemo konflikt " +"istog ID-a osobe \n" +" " +" i organizacije (osoba_1 i organizacija_1 koji dijele " +"isti ID u originalnoj bazi)." #. module: base_import #. openerp-web @@ -315,13 +395,20 @@ msgid "" "\n" " '/tmp/person.csv' with CSV" msgstr "" +"kopirajte \n" +" (select'person_'||id as \"External ID\",person_name " +"as\n" +" \"Name\",'False' as \"Is a " +"Company\",'company_'||company_id\n" +" as \"Related Company/External ID\" from persons) TO\n" +" '/tmp/person.csv' with CSV" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/xml/import.xml:148 #, python-format msgid "Country: Belgium" -msgstr "" +msgstr "Država : Belgija" #. module: base_import #: model:ir.model,name:base_import.model_base_import_tests_models_char_stillreadonly @@ -342,7 +429,7 @@ msgstr "" #: code:addons/base_import/static/src/xml/import.xml:233 #, python-format msgid "Suppliers and their respective contacts" -msgstr "" +msgstr "Dobavljači i njihovi pripadni kontakti" #. module: base_import #. openerp-web @@ -364,6 +451,23 @@ msgid "" "category \n" " hierarchy." msgstr "" +"Ako na primjer imate dvije kategorije proizvoda \n" +" " +" sa podređenim nazivom \"za prodaju\" (npr. \"razno/proizvodi /za " +"prodaju\"\n" +" " +" i \"ostali proizvodi/za prodaju\" vaša validacija je zadržana, ali još " +"uvijek možete\n" +" " +" uvesti vaše podatke. Pazite, ne preporučamo vam da uvozite podatke jer\n" +" " +" će oni biti povezani na prvu kategoriju \"za prodaju\" pronađenu u " +"popisu \n" +" " +" kategorija (\"razno/proizvodi/za prodaju\"). Preporučamo Vam da " +"izmjenite \n" +" " +" jednu od dvostrukih vrijednosti ili hijerarhiju vaših kategorija." #. module: base_import #. openerp-web @@ -375,6 +479,11 @@ msgid "" "\n" " PSQL:" msgstr "" +"Za stvaranje csv datoteke za osobe povezane sa \n" +" " +" organizacijama, koristimo ljedeću SQL naredbu u \n" +" " +" PSQL:" #. module: base_import #. openerp-web @@ -386,6 +495,13 @@ msgid "" " (in 'Save As' dialog box > click 'Tools' dropdown \n" " list > Encoding tab)." msgstr "" +"Microsoft Excell će vam omogućiti \n" +" da promjenite kodnu stranu " +"jedino kod snimanja \n" +" (U 'Save as' dijalogu > " +"kliknite na 'Tools' padajući izbornik > \n" +" odaberite 'Encoding' " +"karticu)" #. module: base_import #: field:base_import.tests.models.preview,othervalue:0 @@ -402,6 +518,13 @@ msgid "" " later, it's thus good practice to specify it\n" " whenever possible" msgstr "" +"će također biti korišteno za ažuriranje originalnog \n" +" " +"uvoza, ako kasnije trebate ponovo uvesti \n" +" " +"izmjenjene podatke, zato se smatra dobrom praksom \n" +" " +"koristiti kad god je moguće" #. module: base_import #. openerp-web @@ -411,6 +534,9 @@ msgid "" "file to import. If you need a sample importable file, you\n" " can use the export tool to generate one." msgstr "" +"datoteka za uvoz. Ako trebate uzorak datoteke koja se može uvesti,\n" +" možete koristiti " +"alat za izvoz da napravite jednu." #. module: base_import #. openerp-web @@ -419,7 +545,7 @@ msgstr "" msgid "" "Country/Database \n" " ID: 21" -msgstr "" +msgstr "Država/Baza" #. module: base_import #: model:ir.model,name:base_import.model_base_import_tests_models_char @@ -429,14 +555,14 @@ msgstr "" #. module: base_import #: help:base_import.import,file:0 msgid "File to check and/or import, raw binary (not base64)" -msgstr "" +msgstr "Datoteke za provjeru i/ili uvoz, raw binary ( ne base64)" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/xml/import.xml:230 #, python-format msgid "Purchase orders with their respective purchase order lines" -msgstr "" +msgstr "Narudžbe i njihove pripadne stavke" #. module: base_import #. openerp-web @@ -448,6 +574,14 @@ msgid "" " field corresponding to the column. This makes imports\n" " simpler especially when the file has many columns." msgstr "" +"Ako datoteka sadrži\n" +" nazive kolona, OpenERP može " +"pokušati \n" +" automatski odrediti polja koja " +"odgovaraju kolonama. \n" +" Ovo čini uvoz jednostavnijim " +"pogotovo ako datoteka ima \n" +" mnogo kolona." #. module: base_import #. openerp-web @@ -464,6 +598,8 @@ msgid "" ". The issue is\n" " usually an incorrect file encoding." msgstr "" +". Problem je \n" +" obično netočna kodna strana." #. module: base_import #: model:ir.model,name:base_import.model_base_import_tests_models_m2o_required @@ -490,6 +626,19 @@ msgid "" "filter \n" " settings' > Save)." msgstr "" +"Ako uređujete i premate CSV datoteku u tabličnom kalkulatoru \n" +" " +" vaše regionalne postavke sa računala će biti\n" +" " +" primjenjene na separatore i odvajanja. \n" +" " +" Preporučamo da koristite OpenOffice ili LibreOffice kalkulator\n" +" " +" jer vam oni omogućuju izmjene sve tri postavke\n" +" " +" (u 'Spremi kao' dijalogu > označite 'uredi postavke filtera' \n" +" " +" > Spremi)" #. module: base_import #. openerp-web @@ -519,7 +668,7 @@ msgstr "ID baze podataka" #: code:addons/base_import/static/src/xml/import.xml:313 #, python-format msgid "It will produce the following CSV file:" -msgstr "" +msgstr "Će napraviti sljedeću csv datoteku:" #. module: base_import #. openerp-web @@ -548,7 +697,7 @@ msgstr "" #: code:addons/base_import/static/src/xml/import.xml:360 #, python-format msgid "Import preview failed due to:" -msgstr "" +msgstr "Predpregled uvoza nije uspio zbog:" #. module: base_import #. openerp-web @@ -560,6 +709,11 @@ msgid "" "\n" " that imported it)" msgstr "" +"Područje/Vanjski ID : ID ovog zapisa \n" +" je " +"referenciran u drugoj aplikaciji (ili XML datoteci \n" +" iz " +"koje je uvezen)" #. module: base_import #. openerp-web @@ -588,6 +742,19 @@ msgid "" "\n" " per field you want to import." msgstr "" +"Neka polja definiraju poveznice sa drugim \n" +" " +" objektima. na primjer, područje kontakta je veza \n" +" " +" na zapis objekta 'područje'. Kada ćelite uvesti ovakva polja, \n" +" " +" OpenERP će ponovo stvoriti veze između različitih zapisa.\n" +" " +" Da bi vam pomogao uvesti takva polja, OpenERP pruža 3 \n" +" " +" mehanizma. Možete koristiti jedan i samo jedan mehanizam \n" +" " +" po polju koje želite uvesti." #. module: base_import #. openerp-web @@ -601,6 +768,13 @@ msgid "" " then you will encode it as follow \"Manufacturer,\n" " Retailer\" in the same column of your CSV file." msgstr "" +"Podaci bi trebali biti odvojeni sa zarezima bez ikakvih \n" +" " +" razmaka. Na primjer. ako želite da vaš partner bude \n" +" " +" označen kao 'kupac' i kao 'dobavljač' tada u vačem CSV-u \n" +" " +" unosite \"kupac, dobavljač\" u istoj koloni." #. module: base_import #: code:addons/base_import/models.py:264 @@ -643,7 +817,7 @@ msgstr "Uvezi CSV datoteku" #: code:addons/base_import/static/src/js/import.js:74 #, python-format msgid "Quoting:" -msgstr "" +msgstr "Navođenje:" #. module: base_import #: model:ir.model,name:base_import.model_base_import_tests_models_m2o_required_related @@ -670,7 +844,7 @@ msgstr "Uvoz" #: code:addons/base_import/static/src/js/import.js:407 #, python-format msgid "Here are the possible values:" -msgstr "" +msgstr "Evo mogućih vrijednosti:" #. module: base_import #. openerp-web @@ -687,13 +861,15 @@ msgid "" "A single column was found in the file, this often means the file separator " "is incorrect" msgstr "" +"U datoteci je nađena samo jedna kolona, to često znači da je format " +"razdjelnika neispravan." #. module: base_import #. openerp-web #: code:addons/base_import/static/src/xml/import.xml:293 #, python-format msgid "dump of such a PostgreSQL database" -msgstr "" +msgstr "dump takve PostgereSQL baze" #. module: base_import #. openerp-web @@ -710,6 +886,9 @@ msgid "" "The following CSV file shows how to import purchase \n" " orders with their respective purchase order lines:" msgstr "" +"Sljedeća csv datoteka pokazuje kako uvesti \n" +" naloge za nabavu sa " +"njihovm pripadnim stavkama :" #. module: base_import #. openerp-web @@ -719,6 +898,9 @@ msgid "" "What can I do when the Import preview table isn't \n" " displayed correctly?" msgstr "" +"Što mogu uraditi kada se tablice Predpregleda za uvoz\n" +" " +" ne prikazuju ispravno?" #. module: base_import #: field:base_import.tests.models.char,value:0 @@ -749,7 +931,7 @@ msgstr "" #: code:addons/base_import/static/src/xml/import.xml:149 #, python-format msgid "Country/External ID: base.be" -msgstr "" +msgstr "Područje/Vanjski ID : base.be" #. module: base_import #. openerp-web @@ -764,20 +946,29 @@ msgid "" " the company he work for. (If you want to test this \n" " example, here is a" msgstr "" +"Kao primjer, pretpostavimo da imate SQL bazu \n" +" " +" sa dvije tablice koje želite uvesti: tvrtke i \n" +" " +" osobe. Svaka osoba pripada jednoj tvrtci, tako da \n" +" " +" ćete morati ponovo stvoriti poveznicu između osobe \n" +" " +" i tvrtke za koju radi. (Ako želite probati ovaj primjer, ovdje je" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/js/import.js:396 #, python-format msgid "(%d more)" -msgstr "" +msgstr "(%d više)" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/xml/import.xml:227 #, python-format msgid "File for some Quotations" -msgstr "" +msgstr "Dadoteka sa nekim ponudama" #. module: base_import #. openerp-web @@ -804,6 +995,19 @@ msgid "" "\n" " table. (like 'company_1', 'person_1' instead of '1')" msgstr "" +"Za upravljanje relacijama između tablica, \n" +" " +"možete koristiti \"Vanjski ID\" mogućnosti OpenERP-a. \n" +" " +"\"Vanjski ID\" zapisa je jedinstveni identifikator ovog zapisa\n" +" u " +"drugoj aplikaciji. Ovaj \"Vanjski ID\" mora biti jedinstven u\n" +" u " +"svim zapisima i svim objektima, pa je uobičajena dobra praksa\n" +" " +"dati prefiks tom \"Vanjskom ID\" po nazivu aplikacije ili tablice. \n" +" " +"(npr. 'company_1', 'osoba_1' umjesto '1')" #. module: base_import #. openerp-web @@ -814,6 +1018,9 @@ msgid "" " \"External ID\". In PSQL, write the following " "command:" msgstr "" +"Prvo ćemo izvesti ave organizacije i njihove \n" +" " +" \"Vanjske ID\". U PSQL, napišite sljedeću narebu:" #. module: base_import #. openerp-web @@ -823,13 +1030,16 @@ msgid "" "How can I import a one2many relationship (e.g. several \n" " Order Lines of a Sales Order)?" msgstr "" +"Kako da uvezem one2many relaciju (npr. nekoliko \n" +" " +" stavki prodajnog maloga)?" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/js/import.js:373 #, python-format msgid "Everything seems valid." -msgstr "" +msgstr "Sve se čini u redu." #. module: base_import #. openerp-web @@ -842,6 +1052,13 @@ msgid "" " use make use of the external ID for this field \n" " 'Category'." msgstr "" +"Međutim ukoliko ne želite mijenjati vaše \n" +" " +"postavke kategorija proizvoda, preporučamo vam da \n" +" " +"koristite vanjski ID za ovo polje \n" +" " +"'Kagtegorija'." #. module: base_import #. openerp-web @@ -858,6 +1075,9 @@ msgid "" "How can I import a many2many relationship field \n" " (e.g. a customer that has multiple tags)?" msgstr "" +"Kako mogu uvesti many2many relacijsko polje \n" +" " +" (npr, kupac koji ima višestruke oznake)?" #. module: base_import #. openerp-web @@ -880,6 +1100,15 @@ msgid "" " link between each person and the company they work \n" " for)." msgstr "" +"Ako trebate uvesti podatke iz različitih tablica, \n" +" " +" morate ponovo kreirati relacije između zapisa \n" +" " +" koji pripadaju različitim tablicama. (npr. ako uvozite\n" +" " +" organizacije i osobe, morate ponovo kreirati poveznicu\n" +" " +" između između svake osobe i organizacije za koju osoba radi)." #. module: base_import #. openerp-web @@ -892,6 +1121,13 @@ msgid "" " Here is when you should use one or the other, \n" " according to your need:" msgstr "" +"Sukladno vačim potrebama trebali bi koristiti \n" +" " +"jedan od 3 načina referenciranja zapisa u relacijama.\n" +" " +"Ovdje trebate koristiti jedan raspoloživih prema, \n" +" " +"vačim potrebama :" #. module: base_import #. openerp-web @@ -914,6 +1150,15 @@ msgid "" " will set the EMPTY value in the field, instead of \n" " assigning the default value." msgstr "" +"Ako ne postavite sva polja u vašoj csv datoteci, \n" +" OpenERP će " +"dodijeliti zadane vrijednosti za svako \n" +" nedefinirano " +"polje, ali ako postavite polja sa praznim virjenostima u csv-u \n" +" OpenERP će " +"postaviti vrijednost tih polja na \"PRAZNO\", umjesto da im \n" +" dodijeli zadane " +"vrijednosti" #. module: base_import #. openerp-web @@ -930,6 +1175,9 @@ msgid "" "What happens if I do not provide a value for a \n" " specific field?" msgstr "" +"Što se dešava ako ne dajem vrijednost za \n" +" " +"pojedino polje?" #. module: base_import #. openerp-web @@ -957,6 +1205,11 @@ msgid "" "spreadsheet \n" " application." msgstr "" +"Ovo vam \n" +" omogućuje da " +"koristite alat za Uvoz/Izvoz OpenERP-a \n" +" za izmjenu serija " +"zapisa u vašem omiljenom tabličnom kalkulatoru" #. module: base_import #. openerp-web @@ -967,6 +1220,10 @@ msgid "" " import an other record that links to the first\n" " one, use" msgstr "" +"kolona u OpenERP-u. Kada \n" +" uvozite drugi zapis " +"koji se referencira na prvi\n" +" koristite" #. module: base_import #. openerp-web @@ -987,20 +1244,33 @@ msgid "" " take care of creating or modifying each record \n" " depending if it's new or not." msgstr "" +"Ako uvozite datoteku koja sadži jednu od \n" +" " +"kolona \"Vanjski ID\" ili \"ID Baze\", zapisi koje ste već\n" +" " +"uvezli će biti izmjenjeni umjesto stvoreni. Ovo je \n" +" " +"veoma korisno i dozvoljava vam da uvozite nekoliko puta \n" +" " +"istu CSV datoteku, upisujući neke izmjene između dva\n" +" " +"uvoza. OpenERP će se pobrinuti o stvaranju ili izmjeni \n" +" " +"svakog zapisa ovisno o tome da li je novi ili postojeći." #. module: base_import #. openerp-web #: code:addons/base_import/static/src/xml/import.xml:169 #, python-format msgid "CSV file for categories" -msgstr "" +msgstr "CSV datoteka za kategorije" #. module: base_import #. openerp-web #: code:addons/base_import/static/src/js/import.js:309 #, python-format msgid "Normal Fields" -msgstr "" +msgstr "Normalna polja" #. module: base_import #. openerp-web @@ -1012,6 +1282,11 @@ msgid "" " identifier from the original application and\n" " map it to the" msgstr "" +"kako bi ponovo napravili relacije između\n" +" " +"različitih zapisa, trebali bi koristiti jedinstveni\n" +" " +"identifikator iz originalnog zapisa i njega mapirati na" #. module: base_import #. openerp-web @@ -1038,6 +1313,19 @@ msgid "" "\n" " the fields relative to the order." msgstr "" +"Ako želite uvesti prodajne naloge koji sadrže nekoliko \n" +" " +" stavki, za svaku stavku morate rezervirati\n" +" " +" njezin red u CSV datoteci. Prva stavka naloga \n" +" " +" će biti uvezena ako informacija vezana za taj \n" +" " +" nalog. Svaka dodatna stavka će trebati svoj\n" +" " +" dodatni red koji nema nikakve podatke u poljima\n" +" " +" vezanim za taj nalog." #. module: base_import #: model:ir.model,name:base_import.model_base_import_tests_models_m2o_related @@ -1054,7 +1342,7 @@ msgstr "Naziv" #: code:addons/base_import/static/src/xml/import.xml:80 #, python-format msgid "to the original unique identifier." -msgstr "" +msgstr "originalni jedinstveni identifikator" #. module: base_import #. openerp-web @@ -1090,6 +1378,17 @@ msgid "" " to the first company). You must first import the \n" " companies and then the persons." msgstr "" +"Dvije dobivene datoteke su spremne da budu uvežene u \n" +" " +" OpenERP bez ikakvih izmjena. Nakon uvoza\n" +" " +" ove dvije CSV datoteke, imaćete 4 kontakta \n" +" " +" i 3 organizacije. (prva dva kontakta su povezana na\n" +" " +" prvu organizaciju). Prvo morate uvesti organizacije\n" +" " +" a potom kontakte." #. module: base_import #. openerp-web @@ -1103,6 +1402,15 @@ msgid "" " (displayed under the Browse CSV file bar after you \n" " select your file)." msgstr "" +"Zadane postavke predpogleda za uvoz su zarezi \n" +" " +" za razdvajanje polja, i navodnici kao oznaka teksta. \n" +" " +" Ako vaša CSV datoteka nema ove postavke, možete ih \n" +" " +" izmjeniti u Opcijama postavki formata. (prikazanim u traci\n" +" " +" Potraži CSV datoteku nakon što odaberete jednu)." #. module: base_import #. openerp-web @@ -1131,14 +1439,14 @@ msgstr "Vanjski ID" #: code:addons/base_import/static/src/xml/import.xml:39 #, python-format msgid "File Format Options…" -msgstr "" +msgstr "Opcije Formata datoteka..." #. module: base_import #. openerp-web #: code:addons/base_import/static/src/js/import.js:392 #, python-format msgid "between rows %d and %d" -msgstr "" +msgstr "između reda %d i %d" #. module: base_import #. openerp-web @@ -1163,4 +1471,4 @@ msgstr "" #. module: base_import #: field:base_import.import,file:0 msgid "File" -msgstr "" +msgstr "Datoteka" diff --git a/addons/procurement/i18n/mn.po b/addons/procurement/i18n/mn.po index c88ed5041b2..06ac63d6e03 100644 --- a/addons/procurement/i18n/mn.po +++ b/addons/procurement/i18n/mn.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: 2013-02-13 05:21+0000\n" +"X-Launchpad-Export-Date: 2013-02-14 05:36+0000\n" "X-Generator: Launchpad (build 16491)\n" #. module: procurement #: model:ir.ui.menu,name:procurement.menu_stock_sched msgid "Schedulers" -msgstr "Төлөвлөгч" +msgstr "Товлогч" #. module: procurement #: model:ir.model,name:procurement.model_make_procurement diff --git a/addons/stock/i18n/mn.po b/addons/stock/i18n/mn.po index b42839648c0..b1c07b7f198 100644 --- a/addons/stock/i18n/mn.po +++ b/addons/stock/i18n/mn.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-02-13 04:17+0000\n" +"PO-Revision-Date: 2013-02-14 03:59+0000\n" "Last-Translator: gobi \n" "Language-Team: Mongolian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-02-13 05:21+0000\n" +"X-Launchpad-Export-Date: 2013-02-14 05:36+0000\n" "X-Generator: Launchpad (build 16491)\n" #. module: stock @@ -88,7 +88,7 @@ msgstr "Сөрөг урсгалыг Хөтлөх боломж" #: field:stock.picking.in,date_done:0 #: field:stock.picking.out,date_done:0 msgid "Date of Transfer" -msgstr "" +msgstr "Шилжүүлэх огноо" #. module: stock #: field:product.product,track_outgoing:0 @@ -160,7 +160,7 @@ msgstr "Тоо хэмжээ сөрөг байж болохгүй." #: view:stock.picking:0 #: view:stock.picking.in:0 msgid "Picking list" -msgstr "Агуулахын баримт" +msgstr "Бэлтгэх Жагсаалт" #. module: stock #: report:lot.stock.overview:0 @@ -319,7 +319,7 @@ msgstr "Боловсруулах Бараанууд" #. module: stock #: view:stock.move:0 msgid "New Pack" -msgstr "" +msgstr "Шинэ ачаа" #. module: stock #: help:stock.fill.inventory,set_stock_zero:0 @@ -472,7 +472,7 @@ msgstr "Хоцролт (Өдөрөөр)" #. module: stock #: selection:stock.picking.out,state:0 msgid "Ready to Deliver" -msgstr "" +msgstr "Хүргэхэд бэлэн" #. module: stock #: model:ir.model,name:stock.model_action_traceability @@ -536,7 +536,7 @@ msgstr "Валютын дундаж үнэ" #. module: stock #: view:product.product:0 msgid "Stock and Expected Variations" -msgstr "" +msgstr "Нөөц болон таамаглагдсан хазайлт" #. module: stock #: help:product.category,property_stock_valuation_account_id:0 @@ -564,7 +564,7 @@ msgstr "" #: code:addons/stock/product.py:196 #, python-format msgid "Products: " -msgstr "Бараа: " +msgstr "Бараанууд " #. module: stock #: field:report.stock.inventory,location_type:0 @@ -681,7 +681,7 @@ msgstr "Баглаа" #. module: stock #: model:ir.actions.report.xml,name:stock.report_picking_list_in msgid "Receipt Slip" -msgstr "" +msgstr "Хүлээн авсан тасалбар" #. module: stock #: code:addons/stock/wizard/stock_move.py:214 @@ -743,7 +743,7 @@ msgstr "Нэмэлт Сурвалжууд" #. module: stock #: view:stock.partial.picking.line:0 msgid "Stock Picking Line" -msgstr "" +msgstr "Бараа Бэлтгэх баримтын мөр" #. module: stock #: field:stock.location,complete_name:0 @@ -884,7 +884,7 @@ msgstr "Хураангуй" #. module: stock #: view:product.category:0 msgid "Account Stock Properties" -msgstr "" +msgstr "Барааны дансны үзүүлэлтүүд" #. module: stock #: sql_constraint:stock.picking:0 @@ -936,7 +936,7 @@ msgstr "Гологдол Бараанууд" #. module: stock #: view:product.product:0 msgid "- update" -msgstr "" +msgstr "- шинэчлэх" #. module: stock #: report:stock.picking.list:0 @@ -974,7 +974,7 @@ msgstr "IT Нийлүүлэгчид" #. module: stock #: view:stock.config.settings:0 msgid "Location & Warehouse" -msgstr "" +msgstr "Байрлал & Агуулах" #. module: stock #: selection:report.stock.inventory,location_type:0 @@ -993,7 +993,7 @@ msgstr "" #. module: stock #: field:stock.config.settings,decimal_precision:0 msgid "Decimal precision on weight" -msgstr "" +msgstr "Жингийн аравны нарийвчлал" #. module: stock #: view:stock.production.lot:0 @@ -1049,7 +1049,7 @@ msgstr "Дэлгэрэнгүй" #. module: stock #: selection:stock.picking,state:0 msgid "Ready to Transfer" -msgstr "" +msgstr "Шилжүүлэхэд бэлэн" #. module: stock #: report:lot.stock.overview:0 @@ -1089,7 +1089,7 @@ msgstr "Журнал" #. module: stock #: model:ir.actions.act_window,name:stock.action_stock_invoice_onshipping msgid "Create Draft Invoices" -msgstr "" +msgstr "Ноорог нэхэмжлэл үүсгэх" #. module: stock #: help:stock.picking,location_id:0 @@ -1107,7 +1107,7 @@ msgstr "" #. module: stock #: selection:stock.picking.in,state:0 msgid "Ready to Receive" -msgstr "" +msgstr "Хүлээн авахад бэлэн" #. module: stock #: view:stock.move:0 @@ -1138,12 +1138,12 @@ msgstr "Захиалгаарх хүлээн авалт/хүргэлт" #. module: stock #: view:stock.production.lot:0 msgid "Product Lots" -msgstr "" +msgstr "Олон бараанууд" #. module: stock #: view:stock.picking:0 msgid "Reverse Transfer" -msgstr "" +msgstr "Эсрэг шилжүүлэг" #. module: stock #: field:stock.config.settings,group_uos:0 @@ -1217,7 +1217,7 @@ msgstr "Үйлдвэрлэлийн байрлал" #: code:addons/stock/product.py:121 #, python-format msgid "Please define journal on the product category: \"%s\" (id: %d)." -msgstr "" +msgstr "Дараах барааны ангилалд журналыг тодорхойлно уу. \"%s\"(id:%d)." #. module: stock #: field:report.stock.lines.date,date:0 @@ -1294,7 +1294,7 @@ msgstr "" #. module: stock #: report:stock.picking.list:0 msgid "Internal Shipment :" -msgstr "" +msgstr "Дотоодын тээвэрлэлт:" #. module: stock #: view:stock.inventory.line:0 @@ -1310,7 +1310,7 @@ msgstr "Гар аргаар тохируулах" #: view:report.stock.move:0 #: field:report.stock.move,picking_id:0 msgid "Shipment" -msgstr "" +msgstr "Тээвэрлэлт" #. module: stock #: view:stock.location:0 @@ -1333,7 +1333,7 @@ msgstr "" #: code:addons/stock/product.py:113 #, python-format msgid "Please specify company in Location." -msgstr "" +msgstr "Компанийг байрлалд тодорхой заана уу." #. module: stock #: view:stock.move:0 @@ -1370,7 +1370,7 @@ msgstr "Тооллого" #: code:addons/stock/wizard/stock_move.py:214 #, python-format msgid "Processing Error!" -msgstr "" +msgstr "Боловсруулалтын алдаа!" #. module: stock #: help:stock.location,chained_company_id:0 @@ -1415,7 +1415,7 @@ msgstr "Нийт тоо хэмжээ" #: field:stock.picking.in,min_date:0 #: field:stock.picking.out,min_date:0 msgid "Scheduled Time" -msgstr "" +msgstr "Товлосон хугацаа" #. module: stock #: model:ir.actions.act_window,name:stock.move_consume @@ -1506,7 +1506,7 @@ msgstr "" #: code:addons/stock/stock.py:1890 #, python-format msgid "Warning: No Back Order" -msgstr "" +msgstr "Анхааруулга: Захиалга буцаагдаагүй" #. module: stock #: model:ir.model,name:stock.model_stock_move @@ -1623,7 +1623,7 @@ msgstr "Хуваах" #. module: stock #: model:ir.actions.report.xml,name:stock.report_picking_list_out msgid "Delivery Slip" -msgstr "" +msgstr "Хүргэлийн тасалбар" #. module: stock #: model:ir.actions.act_window,name:stock.open_board_warehouse @@ -1710,7 +1710,7 @@ msgstr "Доод хөдөлгөөнийг хянах" #. module: stock #: view:stock.picking.in:0 msgid "Receive" -msgstr "" +msgstr "Хүлээн авах" #. module: stock #: model:res.company,overdue_msg:stock.res_company_1 @@ -1795,7 +1795,7 @@ msgstr "" #: view:product.product:0 #: view:product.template:0 msgid "Storage Location" -msgstr "" +msgstr "Хадгалах байрлал" #. module: stock #: help:stock.partial.move.line,currency:0 @@ -1836,7 +1836,7 @@ msgstr "Төлөвлөгдсөн Сар" #: help:stock.picking.in,origin:0 #: help:stock.picking.out,origin:0 msgid "Reference of the document" -msgstr "" +msgstr "Баримтын сурвалж" #. module: stock #: view:stock.picking:0 @@ -1900,7 +1900,7 @@ msgstr "Бэлэн байдлыг цуцлах" #: code:addons/stock/wizard/stock_location_product.py:49 #, python-format msgid "Current Inventory" -msgstr "" +msgstr "Одоогийн Тооллого" #. module: stock #: help:product.template,property_stock_production:0 @@ -1962,7 +1962,7 @@ msgstr "Хүргэгдсэн Тоо Хэмжээ" #. module: stock #: view:stock.partial.picking:0 msgid "Transfer Products" -msgstr "" +msgstr "Бараануудыг Шилжүүлэх" #. module: stock #: help:product.template,property_stock_inventory:0 @@ -2140,7 +2140,7 @@ msgstr "Бэлтгэлтийн Буцаалт" #: model:ir.actions.act_window,name:stock.act_stock_return_picking_in #: model:ir.actions.act_window,name:stock.act_stock_return_picking_out msgid "Return Shipment" -msgstr "" +msgstr "Буцаах Тээвэрлэлт" #. module: stock #: model:ir.model,name:stock.model_stock_inventory_merge @@ -2284,7 +2284,7 @@ msgstr "Маршрутын нэр" #. module: stock #: report:stock.picking.list:0 msgid "Supplier Address :" -msgstr "" +msgstr "Нийлүүлэгчийн хаяг:" #. module: stock #: view:stock.inventory.line:0 @@ -2360,7 +2360,7 @@ msgstr "Нийлүүлэгчийн байрлал" #. module: stock #: view:stock.location.product:0 msgid "View Products Inventory" -msgstr "" +msgstr "Барааны бүртгэлийг харах" #. module: stock #: view:stock.move:0 @@ -2371,7 +2371,7 @@ msgstr "Үүсгэх" #: code:addons/stock/stock.py:1776 #, python-format msgid "Operation forbidden !" -msgstr "" +msgstr "Үйлдэл хориотой !" #. module: stock #: view:report.stock.inventory:0 @@ -2909,7 +2909,7 @@ msgstr "Идэвхтэй ID нь Context-д алга" #: view:stock.move:0 #: view:stock.picking:0 msgid "Force Availability" -msgstr "боломжийг хурдасгах" +msgstr "Хүчээр бэлэн болгох" #. module: stock #: field:product.template,loc_rack:0 @@ -3213,7 +3213,7 @@ msgstr "" #. module: stock #: view:stock.move:0 msgid "Process" -msgstr "Процесс" +msgstr "Гүйцэтгэх" #. module: stock #: field:stock.production.lot.revision,name:0 @@ -4203,7 +4203,7 @@ msgstr "Хийсвэр Барааны Өртөг" #: view:stock.picking.in:0 #: view:stock.picking.out:0 msgid "Return Products" -msgstr "Буцаах Бараанууд" +msgstr "Бараанууд Буцаах" #. module: stock #: view:stock.inventory:0 @@ -4597,7 +4597,7 @@ msgstr "Хүрэх байршил" #. module: stock #: model:ir.actions.report.xml,name:stock.report_picking_list msgid "Picking Slip" -msgstr "" +msgstr "Бэлтгэлтийн тасалбар" #. module: stock #: help:stock.move,product_packaging:0 @@ -4868,7 +4868,7 @@ msgstr "Сонголттой: дараалсан хөдөлгөөний үе д #. module: stock #: view:stock.picking.out:0 msgid "Print Delivery Slip" -msgstr "" +msgstr "Хүргэлтийн тасалбарыг хэвлэх" #. module: stock #: view:report.stock.inventory:0 From 608ef49402126a00657980d0287ecc06b118f089 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Thu, 14 Feb 2013 10:33:51 +0100 Subject: [PATCH 74/90] [FIX] base_calendar search view bzr revid: al@openerp.com-20130214093351-l975g7wuik0h9op9 --- addons/base_calendar/crm_meeting_view.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml index c2adc01cd54..d9b659b91fa 100644 --- a/addons/base_calendar/crm_meeting_view.xml +++ b/addons/base_calendar/crm_meeting_view.xml @@ -234,11 +234,12 @@ - + + + - - + From ca175b0237a754a267c846e2549936d8d35930ec Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Thu, 14 Feb 2013 16:08:25 +0100 Subject: [PATCH 75/90] [FIX] openerp/service/report: missing import bzr revid: rco@openerp.com-20130214150825-dp0twlvzc8qrkb7v --- openerp/service/report.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openerp/service/report.py b/openerp/service/report.py index 520faa8ead5..90ea5e963ba 100644 --- a/openerp/service/report.py +++ b/openerp/service/report.py @@ -6,6 +6,8 @@ import threading import openerp.netsvc import openerp.pooler +import security + _logger = logging.getLogger(__name__) # TODO: set a maximum report number per user to avoid DOS attacks From 49adee3488ff81ec86e7770bf8e7f6b3e414e6e3 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Thu, 14 Feb 2013 16:35:11 +0100 Subject: [PATCH 76/90] [FIX] openerp/service/report: add all missing imports! bzr revid: rco@openerp.com-20130214153511-r5omlvy5xa1t6rlm --- openerp/service/report.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openerp/service/report.py b/openerp/service/report.py index 90ea5e963ba..c20c7f0d7ec 100644 --- a/openerp/service/report.py +++ b/openerp/service/report.py @@ -1,10 +1,13 @@ # -*- coding: utf-8 -*- +import base64 import logging +import sys import threading import openerp.netsvc import openerp.pooler +from openerp import tools import security @@ -107,7 +110,7 @@ def exp_report(db, uid, object, ids, datas=None, context=None): cr.close() return True - thread.start_new_thread(go, (id, uid, ids, datas, context)) + threading.Thread(target=go, args=(id, uid, ids, datas, context)).start() return id def _check_report(report_id): From bf6c911b5d88c470dda2ea79f87bbe9ab848b440 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 14 Feb 2013 18:28:52 +0100 Subject: [PATCH 77/90] [IMP] remove whitespaces bzr revid: abo@openerp.com-20130214172852-l2vuptiwtc06xp47 --- addons/account/account_invoice.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index d7b2052305b..ddca98bc3b7 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -306,7 +306,7 @@ class account_invoice(osv.osv): ''' Find the partner for which the accounting entries will be created ''' - #if the chosen partner is not a company and has a parent company, use the parent for the journal entries + #if the chosen partner is not a company and has a parent company, use the parent for the journal entries #because you want to invoice 'Agrolait, accounting department' but the journal items are for 'Agrolait' part = inv.partner_id if part.parent_id and not part.is_company: @@ -417,7 +417,7 @@ class account_invoice(osv.osv): try: compose_form_id = ir_model_data.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form')[1] except ValueError: - compose_form_id = False + compose_form_id = False ctx = dict(context) ctx.update({ 'default_model': 'account.invoice', @@ -538,11 +538,11 @@ class account_invoice(osv.osv): return result def onchange_payment_term_date_invoice(self, cr, uid, ids, payment_term_id, date_invoice): - res = {} + res = {} if not date_invoice: date_invoice = time.strftime('%Y-%m-%d') if not payment_term_id: - return {'value':{'date_due': date_invoice}} #To make sure the invoice has a due date when no payment term + return {'value':{'date_due': date_invoice}} #To make sure the invoice has a due date when no payment term pterm_list = self.pool.get('account.payment.term').compute(cr, uid, payment_term_id, value=1, date_ref=date_invoice) if pterm_list: pterm_list = [line[0] for line in pterm_list] From 496a5803352815afc858b969005e513131f4f092 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 14 Feb 2013 18:31:56 +0100 Subject: [PATCH 78/90] [IMP] let the code breathe bzr revid: abo@openerp.com-20130214173156-e2o3ovrg6t8et90g --- addons/account/account_invoice.py | 6 ++++++ addons/auth_signup/res_users.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index ddca98bc3b7..fe10e10f7b4 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -564,22 +564,27 @@ class account_invoice(osv.osv): obj_journal = self.pool.get('account.journal') account_obj = self.pool.get('account.account') inv_line_obj = self.pool.get('account.invoice.line') + if company_id and part_id and type: acc_id = False partner_obj = self.pool.get('res.partner').browse(cr,uid,part_id) + if partner_obj.property_account_payable and partner_obj.property_account_receivable: if partner_obj.property_account_payable.company_id.id != company_id and partner_obj.property_account_receivable.company_id.id != company_id: property_obj = self.pool.get('ir.property') rec_pro_id = property_obj.search(cr, uid, [('name','=','property_account_receivable'),('res_id','=','res.partner,'+str(part_id)+''),('company_id','=',company_id)]) pay_pro_id = property_obj.search(cr, uid, [('name','=','property_account_payable'),('res_id','=','res.partner,'+str(part_id)+''),('company_id','=',company_id)]) + if not rec_pro_id: rec_pro_id = property_obj.search(cr, uid, [('name','=','property_account_receivable'),('company_id','=',company_id)]) if not pay_pro_id: pay_pro_id = property_obj.search(cr, uid, [('name','=','property_account_payable'),('company_id','=',company_id)]) + rec_line_data = property_obj.read(cr, uid, rec_pro_id, ['name','value_reference','res_id']) pay_line_data = property_obj.read(cr, uid, pay_pro_id, ['name','value_reference','res_id']) rec_res_id = rec_line_data and rec_line_data[0].get('value_reference',False) and int(rec_line_data[0]['value_reference'].split(',')[1]) or False pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False + if not rec_res_id and not pay_res_id: raise osv.except_osv(_('Configuration Error!'), _('Cannot find a chart of account, you should create one from Settings\Configuration\Accounting menu.')) @@ -587,6 +592,7 @@ class account_invoice(osv.osv): acc_id = rec_res_id else: acc_id = pay_res_id + val= {'account_id': acc_id} if ids: if company_id: diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py index 9718897ef82..077a0feded9 100644 --- a/addons/auth_signup/res_users.py +++ b/addons/auth_signup/res_users.py @@ -260,11 +260,13 @@ class res_users(osv.Model): template = self.pool.get('ir.model.data').get_object(cr, uid, 'auth_signup', 'reset_password_email') mail_obj = self.pool.get('mail.mail') assert template._name == 'email.template' + for user in self.browse(cr, uid, ids, context): if not user.email: raise osv.except_osv(_("Cannot send email: user has no email address."), user.name) mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, user.id, True, context=context) mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context) + if mail_state and mail_state['state'] == 'exception': raise osv.except_osv(_("Cannot send email: no outgoing email server configured.\nYou can configure it under Settings/General Settings."), user.name) else: From 75f80571dfaf2c92ffee501a01ca8bf2574e6f69 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 14 Feb 2013 18:34:13 +0100 Subject: [PATCH 79/90] [IMP] introduce two examples of use of the new get_config_warning() helper Typical use: self.pool.get("res.config.settings").get_config_warning(cr, _("Excpt message"), context) More documentation and examples in res_config.py doc (see method get_config_warning()) bzr revid: abo@openerp.com-20130214173413-lm4jm86eolinwz69 --- addons/account/account_invoice.py | 4 ++-- addons/auth_signup/res_users.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index fe10e10f7b4..e1e0fccd253 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -586,8 +586,8 @@ class account_invoice(osv.osv): pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False if not rec_res_id and not pay_res_id: - raise osv.except_osv(_('Configuration Error!'), - _('Cannot find a chart of account, you should create one from Settings\Configuration\Accounting menu.')) + raise self.pool.get('res.config.settings').get_config_warning(cr, _('Cannot find any chart of account: you can create a new one from %(menu:account.menu_account_config)s.'), context) + if type in ('out_invoice', 'out_refund'): acc_id = rec_res_id else: diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py index 077a0feded9..4e86de5b474 100644 --- a/addons/auth_signup/res_users.py +++ b/addons/auth_signup/res_users.py @@ -268,7 +268,7 @@ class res_users(osv.Model): mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context) if mail_state and mail_state['state'] == 'exception': - raise osv.except_osv(_("Cannot send email: no outgoing email server configured.\nYou can configure it under Settings/General Settings."), user.name) + raise self.pool.get('res.config.settings').get_config_warning(cr, _("Cannot send email: no outgoing email server configured.\nYou can configure it under %(menu:base_setup.menu_general_configuration)s."), context) else: return { 'type': 'ir.actions.client', From 4bfed04c8da9b39232546a8249a3c11b364abcbc Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Fri, 15 Feb 2013 04:38:55 +0000 Subject: [PATCH 80/90] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130215043855-aqjya28sl21tmpaf --- addons/knowledge/i18n/hu.po | 41 +++++--- addons/l10n_multilang/i18n/hu.po | 174 +++++++++++++++++++++++++++++++ addons/mail/i18n/hu.po | 130 ++++++++++++++--------- addons/marketing/i18n/hu.po | 34 +++--- 4 files changed, 297 insertions(+), 82 deletions(-) create mode 100644 addons/l10n_multilang/i18n/hu.po diff --git a/addons/knowledge/i18n/hu.po b/addons/knowledge/i18n/hu.po index d34305492f8..d6ff50f6700 100644 --- a/addons/knowledge/i18n/hu.po +++ b/addons/knowledge/i18n/hu.po @@ -7,24 +7,24 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2011-02-01 10:13+0000\n" -"Last-Translator: Krisztian Eyssen \n" +"PO-Revision-Date: 2013-02-14 15:58+0000\n" +"Last-Translator: krnkris \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-12-22 05:59+0000\n" -"X-Generator: Launchpad (build 16378)\n" +"X-Launchpad-Export-Date: 2013-02-15 04:38+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: knowledge #: view:knowledge.config.settings:0 msgid "Documents" -msgstr "" +msgstr "Dokumentumok" #. module: knowledge #: model:ir.model,name:knowledge.model_knowledge_config_settings msgid "knowledge.config.settings" -msgstr "" +msgstr "knowledge.config.settings" #. module: knowledge #: help:knowledge.config.settings,module_document_webdav:0 @@ -32,11 +32,13 @@ msgid "" "Access your documents in OpenERP through WebDAV.\n" " This installs the module document_webdav." msgstr "" +"Az OpenERP dokumentumok WebDAV-on keresztüli elérése.\n" +" Ez a document_webdav modult telepíti." #. module: knowledge #: help:knowledge.config.settings,module_document_page:0 msgid "This installs the module document_page." -msgstr "" +msgstr "Ez a document_page modult telepíti." #. module: knowledge #: model:ir.ui.menu,name:knowledge.menu_document2 @@ -47,12 +49,12 @@ msgstr "Csoportmunában készült tartalom" #: model:ir.actions.act_window,name:knowledge.action_knowledge_configuration #: view:knowledge.config.settings:0 msgid "Configure Knowledge" -msgstr "" +msgstr "Tudástár beállítása" #. module: knowledge #: view:knowledge.config.settings:0 msgid "Knowledge and Documents Management" -msgstr "" +msgstr "Tudástár és dokumentum kezelés" #. module: knowledge #: help:knowledge.config.settings,module_document:0 @@ -62,31 +64,36 @@ msgid "" "and a document dashboard.\n" " This installs the module document." msgstr "" +"Ez egy komplett dokumentum kezelő rendszer, beleértve: felhasználó " +"hitelesítást,\n" +" teljes dokumentum keresőt (de a pptx és docx nem " +"támogatott), és egy dokumentum vezérlőpultot.\n" +" Ez a document modult telepíti." #. module: knowledge #: field:knowledge.config.settings,module_document_page:0 msgid "Create static web pages" -msgstr "" +msgstr "Statikus weboldalak készítése" #. module: knowledge #: field:knowledge.config.settings,module_document_ftp:0 msgid "Share repositories (FTP)" -msgstr "" +msgstr "Elérési út (FTP) megosztás" #. module: knowledge #: field:knowledge.config.settings,module_document:0 msgid "Manage documents" -msgstr "" +msgstr "Dokumentum kezelés" #. module: knowledge #: view:knowledge.config.settings:0 msgid "Cancel" -msgstr "" +msgstr "Mégsem" #. module: knowledge #: view:knowledge.config.settings:0 msgid "Apply" -msgstr "" +msgstr "Alkalmaz" #. module: knowledge #: model:ir.ui.menu,name:knowledge.menu_document_configuration @@ -99,16 +106,18 @@ msgid "" "Access your documents in OpenERP through an FTP interface.\n" " This installs the module document_ftp." msgstr "" +"Az OpenERP dokumentumok elérése egy FTP csatolón keresztül.\n" +" Ez a document_ftp modult telepíti." #. module: knowledge #: view:knowledge.config.settings:0 msgid "or" -msgstr "" +msgstr "vagy" #. module: knowledge #: field:knowledge.config.settings,module_document_webdav:0 msgid "Share repositories (WebDAV)" -msgstr "" +msgstr "Elérési útvonal (webDAV) megosztás" #. module: knowledge #: model:ir.ui.menu,name:knowledge.menu_document diff --git a/addons/l10n_multilang/i18n/hu.po b/addons/l10n_multilang/i18n/hu.po new file mode 100644 index 00000000000..b56463cc70e --- /dev/null +++ b/addons/l10n_multilang/i18n/hu.po @@ -0,0 +1,174 @@ +# Hungarian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 01:06+0000\n" +"PO-Revision-Date: 2013-02-14 16:15+0000\n" +"Last-Translator: krnkris \n" +"Language-Team: Hungarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-02-15 04:38+0000\n" +"X-Generator: Launchpad (build 16491)\n" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_fiscal_position_template +msgid "Template for Fiscal Position" +msgstr "ÁFA pozíció sablon" + +#. module: l10n_multilang +#: sql_constraint:account.account:0 +msgid "The code of the account must be unique per company !" +msgstr "A főkönyvi számla számának egyedinek kell lennie!" + +#. module: l10n_multilang +#: constraint:account.account.template:0 +msgid "" +"Configuration Error!\n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" +"Beállítási hiba!\n" +"Nem tud al-számlát létrehozni egy számlához, melynek a belső \"Nézet\" " +"típusa különböző! " + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_analytic_journal +msgid "Analytic Journal" +msgstr "Analitikus/Gyüjtő napló" + +#. module: l10n_multilang +#: constraint:account.account.template:0 +msgid "Error ! You can not create recursive account templates." +msgstr "Hiba! Nem hozhat létre rekurzív főkönyvi számla sablonokat." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_journal +msgid "Journal" +msgstr "Napló" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_chart_template +msgid "Templates for Account Chart" +msgstr "Számlatükör sablonok" + +#. module: l10n_multilang +#: sql_constraint:account.tax:0 +msgid "The description must be unique per company!" +msgstr "A leírás egyedi kell legyen minden vállalathoz!" + +#. module: l10n_multilang +#: constraint:account.tax.code.template:0 +msgid "Error ! You can not create recursive Tax Codes." +msgstr "Hiba! Nem hozhat létre rekurzív adógyűjtőket." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_tax_template +msgid "account.tax.template" +msgstr "account.tax.template" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_tax +msgid "account.tax" +msgstr "account.tax" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_account +msgid "Account" +msgstr "Főkönyvi számla" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_wizard_multi_charts_accounts +msgid "wizard.multi.charts.accounts" +msgstr "wizard.multi.charts.accounts" + +#. module: l10n_multilang +#: constraint:account.journal:0 +msgid "" +"Configuration error! The currency chosen should be shared by the default " +"accounts too." +msgstr "" +"Beállítási hiba! A választott pénznemet meg kell osztani az alapértelmezett " +"főkönyvi számlával is." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_account_template +msgid "Templates for Accounts" +msgstr "Főkönyvi számla sablonok" + +#. module: l10n_multilang +#: help:account.chart.template,spoken_languages:0 +msgid "" +"State here the languages for which the translations of templates could be " +"loaded at the time of installation of this localization module and copied in " +"the final object when generating them from templates. You must provide the " +"language codes separated by ';'" +msgstr "" +"Adja meg itt a nyelvet amelyen a sablon be fog töltődni a lokalizációs modul " +"telepítése után és az át lesz másolva a végső objektumba a sablonokból való " +"létrehozás után. A nyelvi kódot ';' kell elválasztani." + +#. module: l10n_multilang +#: constraint:account.account:0 +msgid "Error ! You can not create recursive accounts." +msgstr "Hiba! Nem hozhat létre rekurzív számlákat." + +#. module: l10n_multilang +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not select an account type with a deferral method different of " +"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " +msgstr "" + +#. module: l10n_multilang +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "A napló nevének egyedinek kell lennie mindegyik vállalatra!" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analitikus/elemző könyvelés" + +#. module: l10n_multilang +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "A napló kódjának egyedinek kell lennie mindegyik vállalathoz!" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "Költségvetési pozíció" + +#. module: l10n_multilang +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" +"Beállítási hiba! \n" +"Nem tud al-számlát létrehozni egy számlához, melynek a belső \"Nézet\" " +"típusa különböző! " + +#. module: l10n_multilang +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "Hiba! Nem hozhat létre rekurzív gyűjtőkódokat." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_tax_code_template +msgid "Tax Code Template" +msgstr "" + +#. module: l10n_multilang +#: field:account.chart.template,spoken_languages:0 +msgid "Spoken Languages" +msgstr "Beszélt nyelvek" diff --git a/addons/mail/i18n/hu.po b/addons/mail/i18n/hu.po index c7781d6eeef..817c0a71fa4 100644 --- a/addons/mail/i18n/hu.po +++ b/addons/mail/i18n/hu.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-02-13 13:32+0000\n" +"PO-Revision-Date: 2013-02-14 16:43+0000\n" "Last-Translator: krnkris \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: 2013-02-14 04:37+0000\n" +"X-Launchpad-Export-Date: 2013-02-15 04:38+0000\n" "X-Generator: Launchpad (build 16491)\n" #. module: mail @@ -1340,7 +1340,7 @@ msgstr "Megbeszélés csoport" #: code:addons/mail/static/src/xml/mail.xml:224 #, python-format msgid "Done" -msgstr "" +msgstr "Kész" #. module: mail #: model:mail.message.subtype,name:mail.mt_comment @@ -1357,7 +1357,7 @@ msgstr "Követ" #. module: mail #: field:mail.group,name:0 msgid "Name" -msgstr "" +msgstr "Név" #. module: mail #: model:mail.group,name:mail.group_all_employees @@ -1370,45 +1370,45 @@ msgstr "Teljes vállalat" #: view:mail.compose.message:0 #, python-format msgid "and" -msgstr "" +msgstr "és" #. module: mail #: help:mail.mail,body_html:0 msgid "Rich-text/HTML message" -msgstr "" +msgstr "Rich-text/HTML üzenet" #. module: mail #: view:mail.mail:0 msgid "Creation Month" -msgstr "" +msgstr "Létrehozás hónapja" #. module: mail #. openerp-web #: code:addons/mail/static/src/xml/mail.xml:272 #, python-format msgid "Compose new Message" -msgstr "" +msgstr "Új üzenet létrehozása" #. module: mail #: field:mail.group,menu_id:0 msgid "Related Menu" -msgstr "" +msgstr "Kapcsolódó menü" #. module: mail #: view:mail.message:0 msgid "Content" -msgstr "" +msgstr "Tartalom" #. module: mail #: field:mail.mail,email_to:0 msgid "To" -msgstr "" +msgstr "Címzett" #. module: mail #: field:mail.compose.message,notified_partner_ids:0 #: field:mail.message,notified_partner_ids:0 msgid "Notified partners" -msgstr "" +msgstr "Értesített partnerek" #. module: mail #: help:mail.group,public:0 @@ -1416,11 +1416,13 @@ msgid "" "This group is visible by non members. Invisible groups can add " "members through the invite button." msgstr "" +"Ez a csoport azoknak is látható akik nem tagok. A nem látható csoportok " +"tagokat adhatnak a meghívó gombbal." #. module: mail #: model:mail.group,name:mail.group_board msgid "Board meetings" -msgstr "" +msgstr "Tanácskozás" #. module: mail #: constraint:mail.alias:0 @@ -1428,40 +1430,42 @@ msgid "" "Invalid expression, it must be a literal python dictionary definition e.g. " "\"{'field': 'value'}\"" msgstr "" +"Nem érvényes kifejezés, ennek python szótár kifejezésnek kell lennie pl.: " +"\"{'field': 'value'}\"" #. module: mail #: field:mail.alias,alias_model_id:0 msgid "Aliased Model" -msgstr "" +msgstr "Minta álnév" #. module: mail #: help:mail.compose.message,message_id:0 #: help:mail.message,message_id:0 msgid "Message unique identifier" -msgstr "" +msgstr "Üzenet egyedi azonosító" #. module: mail #: field:mail.group,description:0 #: field:mail.message.subtype,description:0 msgid "Description" -msgstr "" +msgstr "Leírás" #. module: mail #: model:ir.model,name:mail.model_mail_followers msgid "Document Followers" -msgstr "" +msgstr "Követők dokumentuma" #. module: mail #. openerp-web #: code:addons/mail/static/src/xml/mail_followers.xml:35 #, python-format msgid "Remove this follower" -msgstr "" +msgstr "Követő eltávolítása" #. module: mail #: selection:res.partner,notification_email_send:0 msgid "Never" -msgstr "" +msgstr "Soha" #. module: mail #: field:mail.mail,mail_server_id:0 @@ -1472,7 +1476,7 @@ msgstr "Kimenő levelező szerver" #: code:addons/mail/mail_message.py:920 #, python-format msgid "Partners email addresses not found" -msgstr "" +msgstr "A partnerek e-mail címei nem találhatóak" #. module: mail #: view:mail.mail:0 @@ -1483,19 +1487,21 @@ msgstr "Elküldött" #. module: mail #: field:mail.mail,body_html:0 msgid "Rich-text Contents" -msgstr "" +msgstr "Rich-text tartalmak" #. module: mail #: help:mail.compose.message,to_read:0 #: help:mail.message,to_read:0 msgid "Current user has an unread notification linked to this message" msgstr "" +"A jelenlegi felhasználónak van egy olvasatlan értesítése ehhez az üzenethez " +"csatolva" #. module: mail #: help:res.partner,notification_email_send:0 msgid "" "Choose in which case you want to receive an email when you receive new feeds." -msgstr "" +msgstr "Válassza ki milyen esetekben kíván e-mail kapni az új bevitelekből." #. module: mail #: model:ir.actions.act_window,name:mail.action_view_groups @@ -1511,13 +1517,17 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" nincs üzenete ebben a csoportban.\n" +"

\n" +" " #. module: mail #. openerp-web #: code:addons/mail/static/src/xml/mail.xml:195 #, python-format msgid "Please, wait while the file is uploading." -msgstr "" +msgstr "Kérem várjon amíg a fájl feltöltődik." #. module: mail #: view:mail.group:0 @@ -1527,6 +1537,9 @@ msgid "" "installed\n" " the portal module." msgstr "" +"Ez a csoport mindenki számára látható,\n" +" az ügyfeleinek is, ha telepítette a\n" +" portal modult." #. module: mail #. openerp-web @@ -1540,17 +1553,17 @@ msgstr "Visszahelyezés a feladatokhoz" #: code:addons/mail/static/src/xml/mail.xml:113 #, python-format msgid "this document" -msgstr "" +msgstr "ez a dokumentum" #. module: mail #: field:mail.compose.message,filter_id:0 msgid "Filters" -msgstr "" +msgstr "Szűrők" #. module: mail #: field:res.partner,notification_email_send:0 msgid "Receive Feeds by Email" -msgstr "" +msgstr "Új hozzászólások e-mailen fogadva" #. module: mail #: help:base.config.settings,alias_domain:0 @@ -1558,6 +1571,8 @@ msgid "" "If you have setup a catch-all email domain redirected to the OpenERP server, " "enter the domain name here." msgstr "" +"Ha be állítja az összes e-mail fogadása domain átirányítás az openERP " +"szerverre, akkor írja ide a domain nevet." #. module: mail #: model:ir.actions.act_window,name:mail.action_view_mail_message @@ -1574,7 +1589,7 @@ msgstr "Üzenetek" #: code:addons/mail/static/src/xml/mail.xml:126 #, python-format msgid "others..." -msgstr "" +msgstr "mások..." #. module: mail #: model:ir.actions.client,name:mail.action_mail_star_feeds @@ -1588,12 +1603,12 @@ msgstr "Feladat" #: field:mail.group,alias_id:0 #: field:res.users,alias_id:0 msgid "Alias" -msgstr "" +msgstr "Álnév" #. module: mail #: model:ir.model,name:mail.model_mail_mail msgid "Outgoing Mails" -msgstr "" +msgstr "Elküldött levelek" #. module: mail #: help:mail.compose.message,notification_ids:0 @@ -1602,6 +1617,8 @@ msgid "" "Technical field holding the message notifications. Use notified_partner_ids " "to access notified partners." msgstr "" +"Technikai mező a értesítés üzenetek tárolásához. Használja a " +"notified_partner_ids az értesített partnerek eléréséhez." #. module: mail #: model:ir.ui.menu,name:mail.mail_feeds @@ -1613,12 +1630,12 @@ msgstr "Üzenetek" #: view:mail.alias:0 #: field:mail.message.subtype,res_model:0 msgid "Model" -msgstr "" +msgstr "Modell" #. module: mail #: view:mail.message:0 msgid "Unread" -msgstr "" +msgstr "Olvasatlan" #. module: mail #: help:mail.followers,subtype_ids:0 @@ -1626,23 +1643,25 @@ msgid "" "Message subtypes followed, meaning subtypes that will be pushed onto the " "user's Wall." msgstr "" +"Üzenet altípus követve, azt jelenti, hogy az altípus ki lesz rakva a " +"felhasználó üzenőfalára." #. module: mail #: help:mail.group,message_ids:0 #: help:mail.thread,message_ids:0 #: help:res.partner,message_ids:0 msgid "Messages and communication history" -msgstr "" +msgstr "Üzenetek és kommunikáció történet" #. module: mail #: help:mail.mail,references:0 msgid "Message references, such as identifiers of previous messages" -msgstr "" +msgstr "Üzenet hivatkozások, mint előző üzenetek azonosítói" #. module: mail #: field:mail.compose.message,composition_mode:0 msgid "Composition mode" -msgstr "" +msgstr "Összeállítási mód" #. module: mail #: field:mail.compose.message,model:0 @@ -1650,14 +1669,14 @@ msgstr "" #: field:mail.message,model:0 #: field:mail.wizard.invite,res_model:0 msgid "Related Document Model" -msgstr "" +msgstr "Ide vonatkozó dokumentum modell" #. module: mail #. openerp-web #: code:addons/mail/static/src/xml/mail.xml:287 #, python-format msgid "unlike" -msgstr "" +msgstr "nem valószínű" #. module: mail #: help:mail.compose.message,author_id:0 @@ -1666,22 +1685,24 @@ msgid "" "Author of the message. If not set, email_from may hold an email address that " "did not match any partner." msgstr "" +"Az üzenet szerzője. Ha nincs beállítva, az e-mail ettől, egy címet " +"tartalmaz ami nem mutat egyik partnerre sem." #. module: mail #: help:mail.mail,email_cc:0 msgid "Carbon copy message recipients" -msgstr "" +msgstr "Üzenet másolat címzettjei" #. module: mail #: field:mail.alias,alias_domain:0 msgid "Alias domain" -msgstr "" +msgstr "Álénév domain" #. module: mail #: code:addons/mail/update.py:93 #, python-format msgid "Error during communication with the publisher warranty server." -msgstr "" +msgstr "Hiba a kiadó garancia szerverével történő kommunikációval." #. module: mail #: selection:mail.group,public:0 @@ -1701,32 +1722,41 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Nincs teendő.\n" +"

\n" +" Ha a Beérkezett üzeneteinél végez műveletet, " +"megjelölheti\n" +" mint teendő. Ebből a menüből, minden teendőjét " +"elvégezheti.\n" +"

\n" +" " #. module: mail #: selection:mail.mail,state:0 msgid "Delivery Failed" -msgstr "" +msgstr "Küldés sikertelen" #. module: mail #: field:mail.compose.message,partner_ids:0 msgid "Additional contacts" -msgstr "" +msgstr "További kapcsolatok" #. module: mail #: help:mail.compose.message,parent_id:0 #: help:mail.message,parent_id:0 msgid "Initial thread message." -msgstr "" +msgstr "Elsődleges összefűzött üzenet." #. module: mail #: model:mail.group,name:mail.group_hr_policies msgid "HR Policies" -msgstr "" +msgstr "HR Emberi erőforrás menedzsment házirend" #. module: mail #: selection:res.partner,notification_email_send:0 msgid "Emails only" -msgstr "" +msgstr "Kizárólag e-mailek" #. module: mail #: model:ir.actions.client,name:mail.action_mail_inbox_feeds @@ -1739,35 +1769,35 @@ msgstr "Beérkezett üzenetek" #: code:addons/mail/static/src/xml/mail.xml:58 #, python-format msgid "File" -msgstr "" +msgstr "Fájl" #. module: mail #. openerp-web #: code:addons/mail/static/src/js/many2many_tags_email.js:63 #, python-format msgid "Please complete partner's informations and Email" -msgstr "" +msgstr "Kérem egészítse ki a partner információkat és e-mailjét" #. module: mail #: model:ir.actions.act_window,name:mail.action_view_message_subtype #: model:ir.ui.menu,name:mail.menu_message_subtype msgid "Subtypes" -msgstr "" +msgstr "Altípusok" #. module: mail #: model:ir.model,name:mail.model_mail_alias msgid "Email Aliases" -msgstr "" +msgstr "e-amil álnevek" #. module: mail #: field:mail.group,image_small:0 msgid "Small-sized photo" -msgstr "" +msgstr "Kis-méretű fotó" #. module: mail #: help:mail.mail,reply_to:0 msgid "Preferred response address for the message" -msgstr "" +msgstr "Előnyben részesített válasz cím ehhez az üzenethez" #~ msgid "Open Attachments" #~ msgstr "Mellékletek megnyitása" diff --git a/addons/marketing/i18n/hu.po b/addons/marketing/i18n/hu.po index 48acf144f2e..cc8760c35a6 100644 --- a/addons/marketing/i18n/hu.po +++ b/addons/marketing/i18n/hu.po @@ -7,19 +7,19 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2011-01-31 14:00+0000\n" -"Last-Translator: Krisztian Eyssen \n" +"PO-Revision-Date: 2013-02-14 16:51+0000\n" +"Last-Translator: krnkris \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-12-22 05:59+0000\n" -"X-Generator: Launchpad (build 16378)\n" +"X-Launchpad-Export-Date: 2013-02-15 04:38+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: marketing #: model:ir.model,name:marketing.model_marketing_config_settings msgid "marketing.config.settings" -msgstr "" +msgstr "marketing.config.settings" #. module: marketing #: help:marketing.config.settings,module_marketing_campaign_crm_demo:0 @@ -33,7 +33,7 @@ msgstr "" #: model:ir.actions.act_window,name:marketing.action_marketing_configuration #: view:marketing.config.settings:0 msgid "Configure Marketing" -msgstr "" +msgstr "Értékesítés beállítás" #. module: marketing #: view:crm.lead:0 @@ -44,47 +44,47 @@ msgstr "Marketing" #. module: marketing #: field:marketing.config.settings,module_marketing_campaign:0 msgid "Marketing campaigns" -msgstr "" +msgstr "Értékesítési kampány" #. module: marketing #: view:marketing.config.settings:0 msgid "or" -msgstr "" +msgstr "vagy" #. module: marketing #: view:marketing.config.settings:0 msgid "Campaigns" -msgstr "" +msgstr "Kampányok" #. module: marketing #: model:res.groups,name:marketing.group_marketing_manager msgid "Manager" -msgstr "" +msgstr "Igazgató" #. module: marketing #: model:res.groups,name:marketing.group_marketing_user msgid "User" -msgstr "" +msgstr "Felhasználó" #. module: marketing #: view:marketing.config.settings:0 msgid "Campaigns Settings" -msgstr "" +msgstr "Kampány beállítások" #. module: marketing #: field:marketing.config.settings,module_crm_profiling:0 msgid "Track customer profile to focus your campaigns" -msgstr "" +msgstr "Vevő profil nyomonkövetése a kampányra összpontosítva" #. module: marketing #: view:marketing.config.settings:0 msgid "Cancel" -msgstr "" +msgstr "Mégsem" #. module: marketing #: view:marketing.config.settings:0 msgid "Apply" -msgstr "" +msgstr "Alkalmaz" #. module: marketing #: help:marketing.config.settings,module_marketing_campaign:0 @@ -101,11 +101,13 @@ msgid "" "Allows users to perform segmentation within partners.\n" " This installs the module crm_profiling." msgstr "" +"A felhasználóknak engedélyezi a partnerek kiválogatását.\n" +" Ez telepíti a crm_profiling modult." #. module: marketing #: field:marketing.config.settings,module_marketing_campaign_crm_demo:0 msgid "Demo data for marketing campaigns" -msgstr "" +msgstr "Demo adatok a merketing kampányhoz" #~ msgid "Configure Your Marketing Application" #~ msgstr "Marketing alkalmazásainak beállítása" From 5d31ed34d04163d59ccd4511d2626172aa6610b5 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Fri, 15 Feb 2013 04:49:06 +0000 Subject: [PATCH 81/90] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130215044906-l8qxbb03kjhy48it --- addons/web_kanban/i18n/da.po | 37 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/addons/web_kanban/i18n/da.po b/addons/web_kanban/i18n/da.po index 008b99dcc6b..69339d9a1c4 100644 --- a/addons/web_kanban/i18n/da.po +++ b/addons/web_kanban/i18n/da.po @@ -8,21 +8,21 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:06+0000\n" -"PO-Revision-Date: 2012-07-01 08:56+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-02-15 00:44+0000\n" +"Last-Translator: Casper Madsen of CloudMinds \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-02-07 05:09+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-15 04:49+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/js/kanban.js:704 #, python-format msgid "Edit column" -msgstr "" +msgstr "Rediger kolonne" #. module: web_kanban #. openerp-web @@ -30,6 +30,7 @@ msgstr "" #, python-format msgid "An error has occured while moving the record to this group." msgstr "" +"En fejl er opstået i forbindelse med flytningen af posten til denne gruppe." #. module: web_kanban #. openerp-web @@ -43,42 +44,42 @@ msgstr "Kanban" #: code:addons/web_kanban/static/src/js/kanban.js:557 #, python-format msgid "Undefined" -msgstr "Ikke defineret" +msgstr "Udefineret" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/js/kanban.js:723 #, python-format msgid "Are you sure to remove this column ?" -msgstr "" +msgstr "Er du sikker på at du vil fjerne denne kolonne?" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/xml/web_kanban.xml:42 #, python-format msgid "Edit" -msgstr "" +msgstr "Redigér" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/js/kanban.js:190 #, python-format msgid "Add column" -msgstr "" +msgstr "Tilføj kolonne" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/js/kanban.js:1100 #, python-format msgid "Create: " -msgstr "" +msgstr "Opret: " #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/xml/web_kanban.xml:24 #, python-format msgid "Add a new column" -msgstr "" +msgstr "Tilføj en ny kolonne" #. module: web_kanban #. openerp-web @@ -86,14 +87,14 @@ msgstr "" #: code:addons/web_kanban/static/src/xml/web_kanban.xml:40 #, python-format msgid "Fold" -msgstr "" +msgstr "Fold" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/xml/web_kanban.xml:91 #, python-format msgid "Add" -msgstr "" +msgstr "Tilføj" #. module: web_kanban #. openerp-web @@ -114,7 +115,7 @@ msgstr "Er du sikker på at du vil slette denne post?" #: code:addons/web_kanban/static/src/js/kanban.js:694 #, python-format msgid "Unfold" -msgstr "" +msgstr "Fold ud" #. module: web_kanban #. openerp-web @@ -128,7 +129,7 @@ msgstr "Vis mere ... (" #: code:addons/web_kanban/static/src/xml/web_kanban.xml:92 #, python-format msgid "Cancel" -msgstr "" +msgstr "Annullér" #. module: web_kanban #. openerp-web @@ -143,21 +144,21 @@ msgstr "tilbageværende)" #: code:addons/web_kanban/static/src/xml/web_kanban.xml:91 #, python-format msgid "or" -msgstr "" +msgstr "eller" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/xml/web_kanban.xml:51 #, python-format msgid "99+" -msgstr "" +msgstr "99+" #. module: web_kanban #. openerp-web #: code:addons/web_kanban/static/src/xml/web_kanban.xml:43 #, python-format msgid "Delete" -msgstr "" +msgstr "Slet" #~ msgid "Create" #~ msgstr "Opret" From b30307da329fef4589eae9876934a1a7d3daaae2 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Fri, 15 Feb 2013 13:33:24 +0100 Subject: [PATCH 82/90] Revert 4580 bzr revid: nicolas.vanhoren@openerp.com-20130215123324-m10141rj595x30pl --- openerp/service/workers.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/openerp/service/workers.py b/openerp/service/workers.py index da3a7a221da..0f962cdb968 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -141,8 +141,7 @@ class Multicorn(object): def process_spawn(self): while len(self.workers_http) < self.population: self.worker_spawn(WorkerHTTP, self.workers_http) - while len(self.workers_cron) < config['max_cron_threads'] \ - and config['db_name']: + while len(self.workers_cron) < config['max_cron_threads']: self.worker_spawn(WorkerCron, self.workers_cron) while len(self.workers_longpolling) < 1: self.worker_spawn(WorkerLongPolling, self.workers_longpolling) @@ -400,7 +399,7 @@ class WorkerCron(Worker): if config['db_name']: db_names = config['db_name'].split(',') else: - db_names = [] + db_names = openerp.service.db.exp_list(True) for db_name in db_names: if rpc_request_flag: start_time = time.time() From 0a27066e54e591bee841990441c179c9e6b442de Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Fri, 15 Feb 2013 15:35:03 +0100 Subject: [PATCH 83/90] [REF] code review bzr revid: qdp-launchpad@openerp.com-20130215143503-6a6x53gdeb6j33tm --- openerp/addons/base/res/res_config.py | 47 +++-- openerp/exceptions.py | 18 +- openerp/osv/orm.py | 3 +- openerp/service/netrpc_server.py.THIS | 245 -------------------------- openerp/service/wsgi_server.py | 3 +- 5 files changed, 30 insertions(+), 286 deletions(-) delete mode 100644 openerp/service/netrpc_server.py.THIS diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index 2dae5c7f865..354a612d075 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -594,16 +594,13 @@ class res_config_settings(osv.osv_memory): def get_option_path(self, cr, uid, menu_xml_id, context=None): """ - Fetch the path to a specified configuration view and the action id - to access it. + Fetch the path to a specified configuration view and the action id to access it. - :param string menu_xml_id: the xml id of the menuitem where the view - is located, structured as follows: module_name.menuitem_xml_id - (e.g.: "base.menu_sale_config") + :param string menu_xml_id: the xml id of the menuitem where the view is located, + structured as follows: module_name.menuitem_xml_id (e.g.: "base.menu_sale_config") :return tuple: - - t[0]: string: full path to the menuitem - (e.g.: "Settings/Configuration/Sales") - - t[1]: long: id of the menuitem's action + - t[0]: string: full path to the menuitem (e.g.: "Settings/Configuration/Sales") + - t[1]: long: id of the menuitem's action """ module_name, menu_xml_id = menu_xml_id.split('.') dummy, menu_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, module_name, menu_xml_id) @@ -615,11 +612,9 @@ class res_config_settings(osv.osv_memory): """ Fetch the human readable name of a specified configuration option. - :param string full_field_name: the full name of the field, structured - as follows: model_name.field_name - (e.g.: "sale.config.settings.fetchmail_lead") - :return string: human readable name of the field - (e.g.: "Create leads from incoming mails") + :param string full_field_name: the full name of the field, structured as follows: + model_name.field_name (e.g.: "sale.config.settings.fetchmail_lead") + :return string: human readable name of the field (e.g.: "Create leads from incoming mails") """ model_name, field_name = full_field_name.rsplit('.', 1) @@ -627,22 +622,23 @@ class res_config_settings(osv.osv_memory): def get_config_warning(self, cr, msg, context=None): """ - Helper: return a Warning exception with the given message where the - %(field:)s and/or %(menu:)s are replaced by the human readable field's name - and/or menuitem's full path. + Helper: return a Warning exception with the given message where the %(field:xxx)s + and/or %(menu:yyy)s are replaced by the human readable field's name and/or menuitem's + full path. Usage: ------ - Just include in your error message %(field:model_name.field_name)s to - obtain the human readable field's name, and/or - %(menu:module_name.menuitem_xml_id)s to obtain the menuitem's full path. + Just include in your error message %(field:model_name.field_name)s to obtain the human + readable field's name, and/or %(menu:module_name.menuitem_xml_id)s to obtain the menuitem's + full path. Example of use: --------------- from openerp.addons.base.res.res_config import get_warning_config raise get_warning_config(cr, _("Error: this action is prohibited. You should check the field %(field:sale.config.settings.fetchmail_lead)s in %(menu:base.menu_sale_config)s."), context=context) - will return an exception containing the following message: - Error: this action is prohibited. You should check the field Create leads from incoming mails in Settings/Configuration/Sales. + + This will return an exception containing the following message: + Error: this action is prohibited. You should check the field Create leads from incoming mails in Settings/Configuration/Sales. """ res_config_obj = pooler.get_pool(cr.dbname).get('res.config.settings') @@ -656,18 +652,15 @@ class res_config_settings(osv.osv_memory): # human readable field's name) and the action_id if any values = {} action_id = None - buttontext = None for item in references: ref_type, ref = item.split(':') if ref_type == 'menu': - values[item], action_id = res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context) - buttontext = _('Go to the configuration panel') + values[item], action_id = res_config_obj.get_option_path(cr, SUPERUSER_ID, ref, context=context) elif ref_type == 'field': - values[item] = res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context) + values[item] = res_config_obj.get_option_name(cr, SUPERUSER_ID, ref, context=context) # 3/ substitute and return the result if (action_id): return exceptions.RedirectWarning(msg % values, action_id, _('Go to the configuration panel')) - else: - return exceptions.Warning(msg % values) + return exceptions.Warning(msg % values) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/exceptions.py b/openerp/exceptions.py index 41fff85010c..7789345585c 100644 --- a/openerp/exceptions.py +++ b/openerp/exceptions.py @@ -25,8 +25,7 @@ This module defines a few exception types. Those types are understood by the RPC layer. Any other exception type bubbling until the RPC layer will be treated as a 'Server error'. -If you consider introducing new exceptions, check out the test_exceptions -addon. +If you consider introducing new exceptions, check out the test_exceptions addon. """ class Warning(Exception): @@ -34,16 +33,13 @@ class Warning(Exception): class RedirectWarning(Exception): """ Warning with a possibility to redirect the user instead of simply - discarding the warning message. + diplaying the warning message. + + Should receive as parameters: + :param int action_id: id of the action where to perform the redirection + :param string button_text: text to put on the button that will trigger + the redirection. """ - def __init__(self, msg, action_id, button_text): - """ - :param int action_id: id of the action required to perform the - redirection - :param string button_text: text to put on the button which will trigger - the redirection - """ - super(RedirectWarning, self).__init__(msg, action_id, button_text) class AccessDenied(Exception): """ Login/password error. No message, no traceback. """ diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index cbc56bf834d..ebde4c17a51 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -3500,6 +3500,7 @@ class BaseModel(object): res = {} + translation_obj = self.pool.get('ir.translation') for parent in self._inherits: res.update(self.pool.get(parent).fields_get(cr, user, allfields, context)) @@ -3515,8 +3516,6 @@ class BaseModel(object): res[f]['states'] = {} if 'lang' in context: - translation_obj = self.pool.get('ir.translation') - if 'string' in res[f]: res_trans = translation_obj._get_source(cr, user, self._name + ',' + f, 'field', context['lang']) if res_trans: diff --git a/openerp/service/netrpc_server.py.THIS b/openerp/service/netrpc_server.py.THIS deleted file mode 100644 index 34bb30d8f75..00000000000 --- a/openerp/service/netrpc_server.py.THIS +++ /dev/null @@ -1,245 +0,0 @@ -# -*- coding: utf-8 -*- - -# -# Copyright P. Christeas 2008,2009 -# 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 . -# -############################################################################## - -#.apidoc title: NET-RPC Server - -""" This file contains instance of the net-rpc server -""" -import logging -import select -import socket -import sys -import threading -import traceback -import openerp -import openerp.service.netrpc_socket -import openerp.netsvc as netsvc -import openerp.tools as tools - -_logger = logging.getLogger(__name__) - -class Server: - """ Generic interface for all servers with an event loop etc. - Override this to impement http, net-rpc etc. servers. - - Servers here must have threaded behaviour. start() must not block, - there is no run(). - """ - __is_started = False - __servers = [] - __starter_threads = [] - - # we don't want blocking server calls (think select()) to - # wait forever and possibly prevent exiting the process, - # but instead we want a form of polling/busy_wait pattern, where - # _server_timeout should be used as the default timeout for - # all I/O blocking operations - _busywait_timeout = 0.5 - - def __init__(self): - Server.__servers.append(self) - if Server.__is_started: - # raise Exception('All instances of servers must be inited before the startAll()') - # Since the startAll() won't be called again, allow this server to - # init and then start it after 1sec (hopefully). Register that - # timer thread in a list, so that we can abort the start if quitAll - # is called in the meantime - t = threading.Timer(1.0, self._late_start) - t.name = 'Late start timer for %s' % str(self.__class__) - Server.__starter_threads.append(t) - t.start() - - def start(self): - _logger.debug("called stub Server.start") - - def _late_start(self): - self.start() - for thr in Server.__starter_threads: - if thr.finished.is_set(): - Server.__starter_threads.remove(thr) - - def stop(self): - _logger.debug("called stub Server.stop") - - def stats(self): - """ This function should return statistics about the server """ - return "%s: No statistics" % str(self.__class__) - - @classmethod - def startAll(cls): - if cls.__is_started: - return - _logger.info("Starting %d services" % len(cls.__servers)) - for srv in cls.__servers: - srv.start() - cls.__is_started = True - - @classmethod - def quitAll(cls): - if not cls.__is_started: - return - _logger.info("Stopping %d services" % len(cls.__servers)) - for thr in cls.__starter_threads: - if not thr.finished.is_set(): - thr.cancel() - cls.__starter_threads.remove(thr) - - for srv in cls.__servers: - srv.stop() - cls.__is_started = False - - @classmethod - def allStats(cls): - res = ["Servers %s" % ('stopped', 'started')[cls.__is_started]] - res.extend(srv.stats() for srv in cls.__servers) - return '\n'.join(res) - - def _close_socket(self): - netsvc.close_socket(self.socket) - -class TinySocketClientThread(threading.Thread): - def __init__(self, sock, threads): - spn = sock and sock.getpeername() - spn = 'netrpc-client-%s:%s' % spn[0:2] - threading.Thread.__init__(self, name=spn) - self.sock = sock - # Only at the server side, use a big timeout: close the - # clients connection when they're idle for 20min. - self.sock.settimeout(1200) - self.threads = threads - - def run(self): - self.running = True - try: - ts = openerp.server.netrpc_socket.mysocket(self.sock) - except Exception: - self.threads.remove(self) - self.running = False - return False - - while self.running: - try: - msg = ts.myreceive() - result = netsvc.dispatch_rpc(msg[0], msg[1], msg[2:]) - ts.mysend(result) - except socket.timeout: - #terminate this channel because other endpoint is gone - break - except Exception, e: - try: - valid_exception = Exception(netrpc_handle_exception_legacy(e)) - valid_traceback = getattr(e, 'traceback', sys.exc_info()) - formatted_traceback = "".join(traceback.format_exception(*valid_traceback)) - _logger.debug("netrpc: communication-level exception", exc_info=True) - ts.mysend(valid_exception, exception=True, traceback=formatted_traceback) - break - except Exception, ex: - #terminate this channel if we can't properly send back the error - _logger.exception("netrpc: cannot deliver exception message to client") - break - - netsvc.close_socket(self.sock) - self.sock = None - self.threads.remove(self) - self.running = False - return True - - def stop(self): - self.running = False - -def netrpc_handle_exception_legacy(e): - if isinstance(e, openerp.osv.osv.except_osv): - return 'warning -- ' + e.name + '\n\n' + e.value - if isinstance(e, openerp.exceptions.Warning): - return 'warning -- Warning\n\n' + str(e) - if isinstance(e, openerp.exceptions.AccessError): - return 'warning -- AccessError\n\n' + str(e) - if isinstance(e, openerp.exceptions.AccessDenied): - return 'AccessDenied ' + str(e) - return openerp.tools.exception_to_unicode(e) - -class TinySocketServerThread(threading.Thread,Server): - def __init__(self, interface, port, secure=False): - threading.Thread.__init__(self, name="NetRPCDaemon-%d"%port) - Server.__init__(self) - self.__port = port - self.__interface = interface - self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - self.socket.bind((self.__interface, self.__port)) - self.socket.listen(5) - self.threads = [] - _logger.info("starting NET-RPC service on %s:%s", interface or '0.0.0.0', port) - - def run(self): - try: - self.running = True - while self.running: - fd_sets = select.select([self.socket], [], [], self._busywait_timeout) - if not fd_sets[0]: - continue - (clientsocket, address) = self.socket.accept() - ct = TinySocketClientThread(clientsocket, self.threads) - clientsocket = None - self.threads.append(ct) - ct.start() - lt = len(self.threads) - if (lt > 10) and (lt % 10 == 0): - # Not many threads should be serving at the same time, so log - # their abuse. - _logger.debug("Netrpc: %d threads", len(self.threads)) - self.socket.close() - except Exception, e: - _logger.warning("Netrpc: closing because of exception %s", e) - self.socket.close() - return False - - def stop(self): - self.running = False - for t in self.threads: - t.stop() - self._close_socket() - - def stats(self): - res = "Net-RPC: " + ( (self.running and "running") or "stopped") - i = 0 - for t in self.threads: - i += 1 - res += "\nNet-RPC #%d: %s " % (i, t.name) - if t.isAlive(): - res += "running" - else: - res += "finished" - if t.sock: - res += ", socket" - return res - -netrpcd = None - -def start_service(): - global netrpcd - if tools.config.get('netrpc', False): - netrpcd = TinySocketServerThread(tools.config.get('netrpc_interface', ''), int(tools.config.get('netrpc_port', 8070))) - -def stop_service(): - Server.quitAll() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py index 94177d7a9a6..1513094394a 100644 --- a/openerp/service/wsgi_server.py +++ b/openerp/service/wsgi_server.py @@ -94,8 +94,9 @@ def xmlrpc_handle_exception(e): if isinstance(e, openerp.osv.orm.except_orm): # legacy fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, openerp.tools.ustr(e.value)) response = xmlrpclib.dumps(fault, allow_none=False, encoding=None) - elif isinstance(e, openerp.exceptions.Warning): + elif isinstance(e, openerp.exceptions.Warning) or isinstance(e, openerp.exceptions.RedirectWarning): fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, str(e)) + response = xmlrpclib.dumps(fault, allow_none=False, encoding=None) elif isinstance (e, openerp.exceptions.AccessError): fault = xmlrpclib.Fault(RPC_FAULT_CODE_ACCESS_ERROR, str(e)) response = xmlrpclib.dumps(fault, allow_none=False, encoding=None) From f0eac0b71b3a2778e667e2f61bf5a4723fc9cae1 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Fri, 15 Feb 2013 15:37:18 +0100 Subject: [PATCH 84/90] [REF] code refactoring bzr revid: qdp-launchpad@openerp.com-20130215143718-96rdoi766tsm3fho --- addons/account/account_invoice.py | 6 +++--- addons/account/account_invoice_view.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 4fabfc0532a..60e3dc44328 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -558,7 +558,7 @@ class account_invoice(osv.osv): def onchange_partner_bank(self, cursor, user, ids, partner_bank_id=False): return {'value': {}} - def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id): + def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id, context=None): val = {} dom = {} obj_journal = self.pool.get('account.journal') @@ -567,7 +567,7 @@ class account_invoice(osv.osv): if company_id and part_id and type: acc_id = False - partner_obj = self.pool.get('res.partner').browse(cr,uid,part_id) + partner_obj = self.pool.get('res.partner').browse(cr, uid, part_id, context=context) if partner_obj.property_account_payable and partner_obj.property_account_receivable: if partner_obj.property_account_payable.company_id.id != company_id and partner_obj.property_account_receivable.company_id.id != company_id: @@ -586,7 +586,7 @@ class account_invoice(osv.osv): pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False if not rec_res_id and not pay_res_id: - raise self.pool.get('res.config.settings').get_config_warning(cr, _('Cannot find any chart of account: you can create a new one from %(menu:account.menu_account_config)s.'), context) + raise self.pool.get('res.config.settings').get_config_warning(cr, _('Cannot find any chart of account: you can create a new one from %(menu:account.menu_account_config)s.'), context=context) if type in ('out_invoice', 'out_refund'): acc_id = rec_res_id diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 6cca8e0ce46..9a440d3705b 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -257,7 +257,7 @@ - +
@@ -390,7 +390,7 @@ - + Date: Sun, 17 Feb 2013 04:47:51 +0000 Subject: [PATCH 85/90] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130216050946-w4syry6ser8ygl2j bzr revid: launchpad_translations_on_behalf_of_openerp-20130217044751-x711l71w351nknkb --- addons/web_kanban/i18n/da.po | 2 +- openerp/addons/base/i18n/ab.po | 4 +- openerp/addons/base/i18n/af.po | 4 +- openerp/addons/base/i18n/am.po | 4 +- openerp/addons/base/i18n/ar.po | 22 ++--- openerp/addons/base/i18n/bg.po | 4 +- openerp/addons/base/i18n/bs.po | 4 +- openerp/addons/base/i18n/ca.po | 4 +- openerp/addons/base/i18n/cs.po | 4 +- openerp/addons/base/i18n/da.po | 36 +++++++-- openerp/addons/base/i18n/de.po | 4 +- openerp/addons/base/i18n/el.po | 4 +- openerp/addons/base/i18n/en_GB.po | 4 +- openerp/addons/base/i18n/es.po | 6 +- openerp/addons/base/i18n/es_AR.po | 4 +- openerp/addons/base/i18n/es_CL.po | 4 +- openerp/addons/base/i18n/es_CR.po | 4 +- openerp/addons/base/i18n/es_DO.po | 4 +- openerp/addons/base/i18n/es_EC.po | 4 +- openerp/addons/base/i18n/es_MX.po | 4 +- openerp/addons/base/i18n/es_VE.po | 4 +- openerp/addons/base/i18n/et.po | 4 +- openerp/addons/base/i18n/eu.po | 4 +- openerp/addons/base/i18n/fa.po | 4 +- openerp/addons/base/i18n/fa_AF.po | 4 +- openerp/addons/base/i18n/fi.po | 4 +- openerp/addons/base/i18n/fr.po | 115 ++++++++++++++++++++++----- openerp/addons/base/i18n/gl.po | 4 +- openerp/addons/base/i18n/gu.po | 4 +- openerp/addons/base/i18n/he.po | 4 +- openerp/addons/base/i18n/hi.po | 4 +- openerp/addons/base/i18n/hr.po | 9 ++- openerp/addons/base/i18n/hu.po | 16 ++-- openerp/addons/base/i18n/hy.po | 4 +- openerp/addons/base/i18n/id.po | 4 +- openerp/addons/base/i18n/is.po | 4 +- openerp/addons/base/i18n/it.po | 4 +- openerp/addons/base/i18n/ja.po | 4 +- openerp/addons/base/i18n/ka.po | 4 +- openerp/addons/base/i18n/kk.po | 4 +- openerp/addons/base/i18n/ko.po | 22 +++-- openerp/addons/base/i18n/lt.po | 4 +- openerp/addons/base/i18n/lv.po | 4 +- openerp/addons/base/i18n/mk.po | 4 +- openerp/addons/base/i18n/mn.po | 4 +- openerp/addons/base/i18n/nb.po | 4 +- openerp/addons/base/i18n/nl.po | 33 +++++--- openerp/addons/base/i18n/nl_BE.po | 4 +- openerp/addons/base/i18n/pl.po | 6 +- openerp/addons/base/i18n/pt.po | 4 +- openerp/addons/base/i18n/pt_BR.po | 4 +- openerp/addons/base/i18n/ro.po | 15 ++-- openerp/addons/base/i18n/ru.po | 4 +- openerp/addons/base/i18n/sk.po | 4 +- openerp/addons/base/i18n/sl.po | 4 +- openerp/addons/base/i18n/sq.po | 4 +- openerp/addons/base/i18n/sr.po | 4 +- openerp/addons/base/i18n/sr@latin.po | 4 +- openerp/addons/base/i18n/sv.po | 4 +- openerp/addons/base/i18n/th.po | 4 +- openerp/addons/base/i18n/tlh.po | 4 +- openerp/addons/base/i18n/tr.po | 4 +- openerp/addons/base/i18n/uk.po | 4 +- openerp/addons/base/i18n/ur.po | 4 +- openerp/addons/base/i18n/vi.po | 4 +- openerp/addons/base/i18n/zh_CN.po | 4 +- openerp/addons/base/i18n/zh_HK.po | 4 +- openerp/addons/base/i18n/zh_TW.po | 4 +- 68 files changed, 317 insertions(+), 193 deletions(-) diff --git a/addons/web_kanban/i18n/da.po b/addons/web_kanban/i18n/da.po index 69339d9a1c4..0fa4a479ef1 100644 --- a/addons/web_kanban/i18n/da.po +++ b/addons/web_kanban/i18n/da.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-02-15 04:49+0000\n" +"X-Launchpad-Export-Date: 2013-02-16 05:09+0000\n" "X-Generator: Launchpad (build 16491)\n" #. module: web_kanban diff --git a/openerp/addons/base/i18n/ab.po b/openerp/addons/base/i18n/ab.po index 899abe16d6f..8b61d50744e 100644 --- a/openerp/addons/base/i18n/ab.po +++ b/openerp/addons/base/i18n/ab.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: 2013-02-07 04:43+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:37+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/af.po b/openerp/addons/base/i18n/af.po index 274e44a8692..645d82d1046 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: 2013-02-07 04:43+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:37+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/am.po b/openerp/addons/base/i18n/am.po index e34482d3e60..afb9d172fde 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: 2013-02-07 04:43+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:37+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ar.po b/openerp/addons/base/i18n/ar.po index a6f29207c17..e86afb7115c 100644 --- a/openerp/addons/base/i18n/ar.po +++ b/openerp/addons/base/i18n/ar.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2012-11-25 18:53+0000\n" -"Last-Translator: waleed bazaza \n" +"PO-Revision-Date: 2013-02-16 09:04+0000\n" +"Last-Translator: Ahmad Khayyat \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: 2013-02-07 04:43+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:37+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -953,7 +953,7 @@ msgstr "مستودعات مشتركة (WebDav)" #. module: base #: view:res.users:0 msgid "Email Preferences" -msgstr "تفضيلات البريد الالكتروني" +msgstr "تفضيلات البريد الإلكتروني" #. module: base #: code:addons/base/ir/ir_fields.py:195 @@ -1328,7 +1328,7 @@ msgstr "" #. module: base #: model:ir.actions.client,name:base.action_client_base_menu msgid "Open Settings Menu" -msgstr "" +msgstr "فتح قائمة الإعدادات" #. module: base #: selection:base.language.install,lang:0 @@ -2169,7 +2169,7 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_administration #: model:res.groups,name:base.group_system msgid "Settings" -msgstr "إعدادات" +msgstr "الإعدادات" #. module: base #: selection:ir.actions.act_window,view_type:0 @@ -4039,7 +4039,7 @@ msgstr "الجبل الأسود" #. module: base #: model:ir.module.module,shortdesc:base.module_fetchmail msgid "Email Gateway" -msgstr "بوابة البريد الالكتروني" +msgstr "بوابة البريد الإلكتروني" #. module: base #: code:addons/base/ir/ir_mail_server.py:465 @@ -4544,7 +4544,7 @@ msgstr "الهندية / हिंदी" #: model:ir.actions.act_window,name:base.action_view_base_language_install #: model:ir.ui.menu,name:base.menu_view_base_language_install msgid "Load a Translation" -msgstr "" +msgstr "تحميل ترجمة" #. module: base #: field:ir.module.module,latest_version:0 @@ -5254,7 +5254,7 @@ msgstr "الأسعار" #. module: base #: model:ir.module.module,shortdesc:base.module_email_template msgid "Email Templates" -msgstr "" +msgstr "قوالب البريد الإلكتروني" #. module: base #: model:res.country,name:base.sy @@ -11302,7 +11302,7 @@ msgstr "لا يمكن أن يكون حجم الحقل أقل من 1 !" #. module: base #: model:ir.module.module,shortdesc:base.module_mrp_operations msgid "Manufacturing Operations" -msgstr "" +msgstr "عمليات التصنيع" #. module: base #: view:base.language.export:0 diff --git a/openerp/addons/base/i18n/bg.po b/openerp/addons/base/i18n/bg.po index 90909a2bfa8..3810e84889e 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: 2013-02-07 04:44+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:38+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/bs.po b/openerp/addons/base/i18n/bs.po index a848cc3835f..bfe35fe0d52 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: 2013-02-07 04:44+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:38+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ca.po b/openerp/addons/base/i18n/ca.po index 5bc72b026fc..32175f266d6 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: 2013-02-07 04:44+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:38+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/cs.po b/openerp/addons/base/i18n/cs.po index c3001f7c711..4edaf0f412d 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: 2013-02-07 04:44+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:38+0000\n" +"X-Generator: Launchpad (build 16491)\n" "X-Poedit-Language: Czech\n" #. module: base diff --git a/openerp/addons/base/i18n/da.po b/openerp/addons/base/i18n/da.po index 04e55b19745..50165a1b609 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: 2013-02-07 04:44+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:38+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -25,6 +25,10 @@ msgid "" "================================================\n" " " msgstr "" +"\n" +"Modul for check-skrivning og -udprint.\n" +"================================================\n" +" " #. module: base #: model:res.country,name:base.sh @@ -48,6 +52,8 @@ msgid "" "The second argument of the many2many field %s must be a SQL table !You used " "%s, which is not a valid SQL table name." msgstr "" +"Det andet argument i many2many-feltet %s skal være en SQL-tabel. !Du brugte " +"%s, som ikke er et gyldigt tabelnavn." #. module: base #: field:ir.ui.view,arch:0 @@ -73,7 +79,7 @@ msgstr "Ungarsk / Magyar" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (PY) / Español (PY)" -msgstr "" +msgstr "Spanish (PY) / Spansk (PY)" #. module: base #: model:ir.module.category,description:base.module_category_project_management @@ -81,11 +87,13 @@ msgid "" "Helps you manage your projects and tasks by tracking them, generating " "plannings, etc..." msgstr "" +"Hjælper dig med at administrere dine projekter og opgaver ved at spore dem, " +"generere planlægning, osv. .." #. module: base #: model:ir.module.module,summary:base.module_point_of_sale msgid "Touchscreen Interface for Shops" -msgstr "" +msgstr "Touchscreen-grænseflade for butikker" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll @@ -101,7 +109,7 @@ msgstr "" #. module: base #: view:ir.module.module:0 msgid "Created Views" -msgstr "" +msgstr "Oprettede visninger" #. module: base #: model:ir.module.module,description:base.module_product_manufacturer @@ -118,11 +126,22 @@ msgid "" " * Product Attributes\n" " " msgstr "" +"\n" +"Et modul som tilføjer producenterne og attributter på produkt formularen.\n" +"====================================================================\n" +"\n" +"Du kan nu definere følgende for et produkt:\n" +"-----------------------------------------------\n" +" * Producent\n" +" * Producentens produktnavn\n" +" * Producentens produktkode\n" +" * Produktattributter\n" +" " #. module: base #: field:ir.actions.client,params:0 msgid "Supplementary arguments" -msgstr "" +msgstr "Supplerende argumenter" #. module: base #: model:ir.module.module,description:base.module_google_base_account @@ -131,11 +150,14 @@ msgid "" "The module adds google user in res user.\n" "========================================\n" msgstr "" +"\n" +"Modulet tilføjer google user i res user.\n" +"========================================\n" #. module: base #: help:res.partner,employee:0 msgid "Check this box if this contact is an Employee." -msgstr "" +msgstr "Afkryds denne boks hvis kontakten er en medarbejder." #. module: base #: help:ir.model.fields,domain:0 diff --git a/openerp/addons/base/i18n/de.po b/openerp/addons/base/i18n/de.po index 9b015dc92be..523d774d2db 100644 --- a/openerp/addons/base/i18n/de.po +++ b/openerp/addons/base/i18n/de.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: 2013-02-07 04:45+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:39+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/el.po b/openerp/addons/base/i18n/el.po index 8ee858b6d6b..b883501295f 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: 2013-02-07 04:46+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:40+0000\n" +"X-Generator: Launchpad (build 16491)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" "X-Poedit-SourceCharset: utf-8\n" diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po index 55ec9f2647c..364d5c46eda 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: 2013-02-07 04:51+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:46+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po index 216b131f1fd..8c40e08046c 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: 2013-02-07 04:50+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:44+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -8436,7 +8436,7 @@ msgstr "Territorio británico del Océano Índico" #. module: base #: model:ir.actions.server,name:base.action_server_module_immediate_install msgid "Module Immediate Install" -msgstr "Módulo de instalación inmediata" +msgstr "Instalación inmediata del módulo(s)" #. module: base #: view:ir.actions.server:0 diff --git a/openerp/addons/base/i18n/es_AR.po b/openerp/addons/base/i18n/es_AR.po index b0878db6476..1cc63b1d08c 100644 --- a/openerp/addons/base/i18n/es_AR.po +++ b/openerp/addons/base/i18n/es_AR.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: 2013-02-07 04:51+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:46+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_CL.po b/openerp/addons/base/i18n/es_CL.po index 87519633abd..0750e176485 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: 2013-02-07 04:52+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:46+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_CR.po b/openerp/addons/base/i18n/es_CR.po index 454b7a14415..8680af5bdc4 100644 --- a/openerp/addons/base/i18n/es_CR.po +++ b/openerp/addons/base/i18n/es_CR.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: 2013-02-07 04:52+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:47+0000\n" +"X-Generator: Launchpad (build 16491)\n" "Language: \n" #. module: base diff --git a/openerp/addons/base/i18n/es_DO.po b/openerp/addons/base/i18n/es_DO.po index 07b2740fc10..aae14bfadd9 100644 --- a/openerp/addons/base/i18n/es_DO.po +++ b/openerp/addons/base/i18n/es_DO.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: 2013-02-07 04:51+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:46+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_EC.po b/openerp/addons/base/i18n/es_EC.po index c9d62b9a777..adf40f0beb2 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: 2013-02-07 04:53+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:47+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_MX.po b/openerp/addons/base/i18n/es_MX.po index 81c2889acb5..3683ba67ca7 100644 --- a/openerp/addons/base/i18n/es_MX.po +++ b/openerp/addons/base/i18n/es_MX.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: 2013-02-07 04:52+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:47+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_VE.po b/openerp/addons/base/i18n/es_VE.po index c71dae6fbb4..a2fbcb32b52 100644 --- a/openerp/addons/base/i18n/es_VE.po +++ b/openerp/addons/base/i18n/es_VE.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: 2013-02-07 04:51+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:45+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/et.po b/openerp/addons/base/i18n/et.po index 57d183b0851..3af33a370ff 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: 2013-02-07 04:45+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:39+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/eu.po b/openerp/addons/base/i18n/eu.po index 4f510294299..281900e4e3d 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: 2013-02-07 04:44+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:37+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/fa.po b/openerp/addons/base/i18n/fa.po index 4f96538eeb0..0f63c33e275 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: 2013-02-07 04:48+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:42+0000\n" +"X-Generator: Launchpad (build 16491)\n" "X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" "X-Poedit-Language: Persian\n" diff --git a/openerp/addons/base/i18n/fa_AF.po b/openerp/addons/base/i18n/fa_AF.po index c9ce5eb59b5..583ff5b5173 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: 2013-02-07 04:53+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:47+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/fi.po b/openerp/addons/base/i18n/fi.po index 5416b5a4eae..578cfa0f498 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: 2013-02-07 04:45+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:39+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po index bc889e3b550..7a62b403471 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: 2013-02-07 04:45+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:39+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -42,7 +42,7 @@ msgstr "Autre configuration" #. module: base #: selection:ir.property,type:0 msgid "DateTime" -msgstr "Horodatage" +msgstr "Date/Heure" #. module: base #: code:addons/fields.py:643 @@ -698,6 +698,22 @@ msgid "" " A + B + C -> D + E\n" " " msgstr "" +"\n" +"Ce module vous permet de produire plusieurs produits à partir d'un ordre de " +"production.\n" +"======================================================================\n" +"\n" +"Vous pouvez configurer des sous-produits dans la nomenclature des " +"matériaux.\n" +"\n" +"Sans ce module :\n" +"----------------------\n" +" A + B + C -> D\n" +"\n" +"Avec ce module : \n" +"-----------------------\n" +" A + B + C -> D + E\n" +" " #. module: base #: selection:base.language.install,lang:0 @@ -2217,7 +2233,7 @@ msgstr "Accès en lecture" #. module: base #: help:ir.attachment,res_id:0 msgid "The record id this is attached to" -msgstr "" +msgstr "L'ID de l'enregistrement est attaché à" #. module: base #: model:ir.module.module,description:base.module_share @@ -3594,7 +3610,7 @@ msgstr "" #. module: base #: field:res.company,rml_header1:0 msgid "Company Tagline" -msgstr "" +msgstr "Slogan de la société" #. module: base #: code:addons/base/res/res_users.py:668 @@ -3612,6 +3628,8 @@ msgid "" "the user will have an access to the human resources configuration as well as " "statistic reports." msgstr "" +"l'utilisateur aura un accès à la configuration des ressources humaines comme " +"aux rapports statistiques." #. module: base #: model:ir.module.module,description:base.module_l10n_pl @@ -4409,6 +4427,18 @@ msgid "" "If you need to manage your meetings, you should install the CRM module.\n" " " msgstr "" +"\n" +"Ceci est un système complet d'agenda.\n" +"===============================\n" +"\n" +"Il supporte :\n" +"---------------\n" +" - L'agenda des événements,\n" +" - Les événements récurrents.\n" +"\n" +"Si vous souhaitez gérer vos rendez-vous, vous devriez installer le module " +"CRM.\n" +" " #. module: base #: model:res.country,name:base.je @@ -4438,7 +4468,7 @@ msgstr "%x - Représentation de date appropriée" #. module: base #: view:res.partner:0 msgid "Tag" -msgstr "" +msgstr "Étiquette" #. module: base #: view:res.lang:0 @@ -4478,7 +4508,7 @@ msgstr "" #. module: base #: model:res.country,name:base.sk msgid "Slovakia" -msgstr "" +msgstr "Slovaquie" #. module: base #: model:res.country,name:base.nr @@ -4719,6 +4749,18 @@ msgid "" "comptable\n" "Seddik au cours du troisième trimestre 2010." msgstr "" +"\n" +"Ce module de base permet de gérer le plan comptable pour le Maroc.\n" +"=================================================================\n" +"\n" +"Ce Module charge le modèle du plan de comptes standard Marocain et permet " +"de\n" +"générer les états comptables aux normes marocaines (Bilan, CPC (comptes de\n" +"produits et charges), balance générale à 6 colonnes, Grand livre " +"cumulatif...).\n" +"L'intégration comptable a été validé avec l'aide du Cabinet d'expertise " +"comptable\n" +"Seddik au cours du troisième trimestre 2010." #. module: base #: help:ir.module.module,auto_install:0 @@ -4753,7 +4795,7 @@ msgstr "Plans comtables" #. module: base #: model:ir.ui.menu,name:base.menu_event_main msgid "Events Organization" -msgstr "" +msgstr "Organisation d'évènements" #. module: base #: model:ir.actions.act_window,name:base.action_partner_customer_form @@ -4781,7 +4823,7 @@ msgstr "Champ de base" #. module: base #: model:ir.module.category,name:base.module_category_managing_vehicles_and_contracts msgid "Managing vehicles and contracts" -msgstr "" +msgstr "Gestion de véhicules et de contrats" #. module: base #: model:ir.module.module,description:base.module_base_setup @@ -4908,12 +4950,12 @@ msgstr "" #. module: base #: model:ir.module.module,summary:base.module_sale msgid "Quotations, Sales Orders, Invoicing" -msgstr "" +msgstr "Devis, commandes, facturation" #. module: base #: field:res.partner,parent_id:0 msgid "Related Company" -msgstr "" +msgstr "Société parente" #. module: base #: help:ir.actions.act_url,help:0 @@ -4959,7 +5001,7 @@ msgstr "`code` doit être unique." #. module: base #: model:ir.module.module,shortdesc:base.module_knowledge msgid "Knowledge Management System" -msgstr "" +msgstr "Base de connaissances" #. module: base #: view:workflow.activity:0 @@ -4983,6 +5025,14 @@ msgid "" "invite.\n" "\n" msgstr "" +"\n" +"Ce module met à jour les notes dans OpenERP, en utilisant un éditeur " +"externe\n" +"===============================================================\n" +"\n" +"Utilisez le pour mettre à jour vos notes en temps réel, avec les " +"utilisateurs invités.\n" +"\n" #. module: base #: model:ir.module.module,description:base.module_account_sequence @@ -5002,6 +5052,23 @@ msgid "" " * Number Padding\n" " " msgstr "" +"\n" +"Ce module permet de paramétrer les séquences de numérotation interne des " +"écritures comptables.\n" +"=============================================================================" +"=\n" +"\n" +"Il permet de configurer les séquences comptables\n" +"\n" +"Vous pouvez personnaliser les attributs suivants de la séquence : \n" +"-----------------------------------------------------------------------------" +"-----------\n" +" * Préfixe\n" +" * Suffixe\n" +" * Nombre suivant\n" +" * Incrément\n" +" * Espacement.\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_project_timesheet @@ -13513,7 +13580,7 @@ msgstr "Chypre" #. module: base #: field:res.users,new_password:0 msgid "Set Password" -msgstr "" +msgstr "Définir le mot de passe" #. module: base #: field:ir.actions.server,subject:0 @@ -14748,7 +14815,7 @@ msgstr "Thaïlande" #. module: base #: model:ir.model,name:base.model_change_password_wizard msgid "Change Password Wizard" -msgstr "" +msgstr "Assistant de changement de mot de passe" #. module: base #: model:ir.module.module,summary:base.module_account_voucher @@ -14867,7 +14934,7 @@ msgstr "Taux de la devise" #: view:base.module.upgrade:0 #: field:base.module.upgrade,module_info:0 msgid "Modules to Update" -msgstr "" +msgstr "Modules à mettre à jour" #. module: base #: model:ir.ui.menu,name:base.menu_custom_multicompany @@ -14956,7 +15023,7 @@ msgstr "Utilisation de l'action" #. module: base #: field:ir.module.module,name:0 msgid "Technical Name" -msgstr "" +msgstr "Nom technique" #. module: base #: model:ir.model,name:base.model_workflow_workitem @@ -15020,7 +15087,7 @@ msgstr "Allemagne - Comptabilité" #. module: base #: view:ir.sequence:0 msgid "Day of the Year: %(doy)s" -msgstr "" +msgstr "Jour de l'année: %(doy)s" #. module: base #: field:ir.ui.menu,web_icon:0 @@ -15043,6 +15110,8 @@ msgid "" "If this field is empty, the view applies to all users. Otherwise, the view " "applies to the users of those groups only." msgstr "" +"Si ce champ est vide, la vue s'applique à tous les utilisateurs. Sinon, la " +"vue s'applique aux utilisateurs de ces groupes uniquement." #. module: base #: selection:base.language.install,lang:0 @@ -15057,12 +15126,12 @@ msgstr "" #. module: base #: field:ir.actions.act_window,src_model:0 msgid "Source Model" -msgstr "" +msgstr "Classe source" #. module: base #: view:ir.sequence:0 msgid "Day of the Week (0:Monday): %(weekday)s" -msgstr "" +msgstr "Jour de la semaine (0: lundi): %(weekday)s" #. module: base #: code:addons/base/module/wizard/base_module_upgrade.py:84 @@ -15076,7 +15145,7 @@ msgstr "Dépendance non trouvé !" #: code:addons/base/ir/ir_model.py:1024 #, python-format msgid "Administrator access is required to uninstall a module" -msgstr "" +msgstr "L'accès administrateur est nécessaire pour désinstaller un module" #. module: base #: model:ir.model,name:base.model_base_module_configuration @@ -15780,7 +15849,7 @@ msgstr "Chili" #. module: base #: model:ir.module.module,shortdesc:base.module_web_view_editor msgid "View Editor" -msgstr "" +msgstr "Editeur de vue" #. module: base #: view:ir.cron:0 @@ -15860,6 +15929,8 @@ msgid "" "Do you confirm the uninstallation of this module? This will permanently " "erase all data currently stored by the module!" msgstr "" +"Confirmez-vous la désinstallation de ce module ? Cela efface définitivement " +"toutes les données actuellement stockées par le module !" #. module: base #: field:ir.actions.server,mobile:0 @@ -16077,7 +16148,7 @@ msgstr "" #. module: base #: view:res.partner:0 msgid "Internal Notes" -msgstr "" +msgstr "Notes internes" #. module: base #: model:res.partner.title,name:base.res_partner_title_pvt_ltd diff --git a/openerp/addons/base/i18n/gl.po b/openerp/addons/base/i18n/gl.po index 7973d78a9fb..561c4d34428 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: 2013-02-07 04:45+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:40+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/gu.po b/openerp/addons/base/i18n/gu.po index abc564b4665..55f2bd205e6 100644 --- a/openerp/addons/base/i18n/gu.po +++ b/openerp/addons/base/i18n/gu.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: 2013-02-07 04:46+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:40+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/he.po b/openerp/addons/base/i18n/he.po index ec3dbfd946d..6c2e7b4c248 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: 2013-02-07 04:46+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:40+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/hi.po b/openerp/addons/base/i18n/hi.po index 34212be5a98..101d61b59f8 100644 --- a/openerp/addons/base/i18n/hi.po +++ b/openerp/addons/base/i18n/hi.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: 2013-02-07 04:46+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:40+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po index 1ed80ec578a..4409e7226ae 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: 2013-02-07 04:49+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:43+0000\n" +"X-Generator: Launchpad (build 16491)\n" "Language: hr\n" #. module: base @@ -391,6 +391,8 @@ msgid "" "There is already a shared filter set as default for %(model)s, delete or " "change it before setting a new default" msgstr "" +"Već postoji dijeljeni set filtera kao zadani za %(model)s, obrišite ga ili " +"izmjenite prije spremanja novog." #. module: base #: code:addons/orm.py:2648 @@ -856,6 +858,9 @@ msgid "" "image, with aspect ratio preserved. Use this field anywhere a small image is " "required." msgstr "" +"Mala sličica ovog kontakta. Veličina je automatski promijenjena na 64x64 px " +"sliku. sa očuvanim proporcijama. Koristite ovo polje gdjegod je potrebna " +"mala slika." #. module: base #: help:ir.actions.server,mobile:0 diff --git a/openerp/addons/base/i18n/hu.po b/openerp/addons/base/i18n/hu.po index b7614e2a02c..77dcffb413c 100644 --- a/openerp/addons/base/i18n/hu.po +++ b/openerp/addons/base/i18n/hu.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: 2013-02-07 04:46+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:41+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -17983,7 +17983,7 @@ msgstr "Jamaika" #. module: base #: field:res.partner,color:0 msgid "Color Index" -msgstr "Szín mutató" +msgstr "Szín meghatározó" #. module: base #: model:ir.actions.act_window,help:base.action_partner_category_form @@ -17994,10 +17994,10 @@ msgid "" "also belong to his parent category." msgstr "" "Rendszerezze a partner kategóriákat annak érdekében, hogy hatékonyabban " -"tudja osztályozni őket a nyomonkövetési és analitikai célokra. Egy partner " -"több kategóriához is tartozhat és a kategóriák hierarchikus szerkezettel is " -"rendelkezhetnek: egy partner, aki egy adott kategóriához tartozik szintén " -"tartozhat a szülőkategóriához is." +"tudja osztályozni őket a nyomonkövetési és analitikai, elemzési célokra. Egy " +"partner több kategóriához is tartozhat és a kategóriák hierarchikus " +"szerkezettel is rendelkezhetnek: egy partner, aki egy adott kategóriához " +"tartozik, szintén tartozhat a szülőkategóriához is." #. module: base #: model:ir.module.module,description:base.module_survey @@ -18029,7 +18029,7 @@ msgstr "" "választ adhat a \n" "különböző kérdésekre ha a felmérés elkészült. Partnerek is küldhetnek emailt " "a felhasználó\n" -"nevével és jelszóval meghívásként a felmérésben való részvételhez.\n" +"nevével és jelszóval, meghívásként a felmérésben való részvételhez.\n" " " #. module: base diff --git a/openerp/addons/base/i18n/hy.po b/openerp/addons/base/i18n/hy.po index 20ec2b20b2f..ebbbf0f3cad 100644 --- a/openerp/addons/base/i18n/hy.po +++ b/openerp/addons/base/i18n/hy.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: 2013-02-07 04:43+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:37+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/id.po b/openerp/addons/base/i18n/id.po index 1ca3668a411..93d42d05c61 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: 2013-02-07 04:46+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:41+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/is.po b/openerp/addons/base/i18n/is.po index f03ad62b867..b1b9b136051 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: 2013-02-07 04:46+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:41+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/it.po b/openerp/addons/base/i18n/it.po index 30d251b7a13..41a4d069421 100644 --- a/openerp/addons/base/i18n/it.po +++ b/openerp/addons/base/i18n/it.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: 2013-02-07 04:47+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:41+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po index e7606212023..55e22742f6b 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: 2013-02-07 04:47+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:41+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ka.po b/openerp/addons/base/i18n/ka.po index 86ee7429002..523c9736b5c 100644 --- a/openerp/addons/base/i18n/ka.po +++ b/openerp/addons/base/i18n/ka.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: 2013-02-07 04:45+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:39+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/kk.po b/openerp/addons/base/i18n/kk.po index 213a1048df3..f67aac01beb 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: 2013-02-07 04:47+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:41+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ko.po b/openerp/addons/base/i18n/ko.po index 26503dde406..5844568aa4e 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: 2013-02-07 04:47+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:41+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -741,6 +741,12 @@ msgid "" "Contains the installer for marketing-related modules.\n" " " msgstr "" +"\n" +"마케팅 메뉴.\n" +"===================\n" +"\n" +"마케팅 관련 모듈의 설치 파일을 포함하고 있음.\n" +" " #. module: base #: model:ir.module.module,description:base.module_web_linkedin @@ -776,7 +782,7 @@ msgstr "" #. module: base #: help:ir.cron,nextcall:0 msgid "Next planned execution date for this job." -msgstr "" +msgstr "이 업무에 대한 다음 실행 계획일" #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -791,7 +797,7 @@ msgstr "에리트레아" #. module: base #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "회사명은 유일해야 함!" #. module: base #: model:ir.ui.menu,name:base.menu_base_action_rule_admin @@ -1006,6 +1012,12 @@ msgid "" "actions(Sign in/Sign out) performed by them.\n" " " msgstr "" +"\n" +"이 모듈은 직원의 출근(근태)관리를 목적으로 합니다.\n" +"==================================================\n" +"\n" +"직원의 계정의 활동 상황(로그인/로그아웃)에 기반하여 근태를 관리합니다.\n" +" " #. module: base #: model:res.country,name:base.nu @@ -1684,7 +1696,7 @@ msgstr "" msgid "" "Helps you manage your purchase-related processes such as requests for " "quotations, supplier invoices, etc..." -msgstr "" +msgstr "견적 요청, 공급업체 송장 요청 등과 같은 구매 관련 프로세스를 관리하는데 도움을 줍니다." #. module: base #: help:res.partner,website:0 diff --git a/openerp/addons/base/i18n/lt.po b/openerp/addons/base/i18n/lt.po index af5c3f35363..e4749b63ce8 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: 2013-02-07 04:47+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:42+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/lv.po b/openerp/addons/base/i18n/lv.po index ec629a95962..f928517c4b8 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: 2013-02-07 04:47+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:42+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/mk.po b/openerp/addons/base/i18n/mk.po index 73795499f14..a48d0f0afb3 100644 --- a/openerp/addons/base/i18n/mk.po +++ b/openerp/addons/base/i18n/mk.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: 2013-02-07 04:48+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:42+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/mn.po b/openerp/addons/base/i18n/mn.po index 4112f85bc77..97fd57bf06f 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: 2013-02-08 04:35+0000\n" -"X-Generator: Launchpad (build 16482)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:42+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/nb.po b/openerp/addons/base/i18n/nb.po index 29b4954a421..8d64cb5f9c0 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: 2013-02-07 04:48+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:42+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/nl.po b/openerp/addons/base/i18n/nl.po index 086e2d16c1b..cab24aae169 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: 2013-02-07 04:44+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:39+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -1563,7 +1563,7 @@ msgstr "" #. module: base #: field:ir.module.category,parent_id:0 msgid "Parent Application" -msgstr "Parent applicatie" +msgstr "Bovenliggende applicatie" #. module: base #: model:ir.actions.act_window,name:base.ir_action_wizard @@ -2225,7 +2225,7 @@ msgstr "%s (kopie)" #. module: base #: model:ir.module.module,shortdesc:base.module_account_chart msgid "Template of Charts of Accounts" -msgstr "Grootboekschema template" +msgstr "Grootboekschema sjabloon" #. module: base #: field:res.partner,type:0 @@ -6589,7 +6589,7 @@ msgstr "Toename nummer mag niet nul zijn." #. module: base #: model:ir.module.module,shortdesc:base.module_account_cancel msgid "Cancel Journal Entries" -msgstr "Annuleer journaalposten" +msgstr "Annuleer boekingen" #. module: base #: field:res.partner,tz_offset:0 @@ -6693,7 +6693,7 @@ msgid "" "the user will be able to manage his own human resources stuff (leave " "request, timesheets, ...), if he is linked to an employee in the system." msgstr "" -"de gebruiker heeft de mogelijkheid om zijn eigen personeelsbeheer zaken te " +"De gebruiker heeft de mogelijkheid om zijn eigen personeelsbeheer zaken te " "beheren (verlofaanvragen, urenstaten, etc.) als hij is gekoppeld aan een " "werknemer in het systeem." @@ -7232,7 +7232,7 @@ msgstr "" #: model:res.groups,comment:base.group_hr_user msgid "the user will be able to approve document created by employees." msgstr "" -"de gebruiker heeft de mogelijkheid om documenten goed te keuren welke zijn " +"De gebruiker heeft de mogelijkheid om documenten goed te keuren welke zijn " "gemaakt door werknemers." #. module: base @@ -7428,7 +7428,7 @@ msgstr "Brits Territorium in de Indische Oceaan" #. module: base #: model:ir.actions.server,name:base.action_server_module_immediate_install msgid "Module Immediate Install" -msgstr "Module directie installatie" +msgstr "Directe installatie" #. module: base #: view:ir.actions.server:0 @@ -9574,6 +9574,17 @@ msgid "" "Thank you in advance for your cooperation.\n" "Best Regards," msgstr "" +"Geachte heer / mevrouw,\n" +"\n" +"Uit onze gegevens blijkt dat sommige rekeningen nog niet zijn betaald. " +"Hieronder vindt u meer informatie.\n" +"Indien het bedrag reeds is betaald, dan kunt u dit bericht negeren. Anders " +"willen wij u vragen het totale bedrag hieronder vermeld, over te maken.\n" +"\n" +"Als u vragen hebt over uw facturen, neem dan contact met ons op.\n" +"\n" +"Dank u bij voorbaat voor uw medewerking.\n" +"Met vriendelijke groet," #. module: base #: view:ir.module.category:0 @@ -13951,7 +13962,7 @@ msgid "" msgstr "" "CSV formaat: kunt u rechtstreeks bewerken met uw favoriete spreadsheet-" "software,\n" -"                                 de meest rechtse kolom (waarde) bevat de " +" de meest rechtse kolom (waarde) bevat de " "vertalingen" #. module: base @@ -14733,7 +14744,7 @@ msgstr "Geplande acties uitvoeren" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_journal msgid "Invoicing Journals" -msgstr "Factuur journaalposten" +msgstr "Factureren boekingen" #. module: base #: help:ir.ui.view,groups_id:0 @@ -15272,6 +15283,8 @@ msgid "" "file encoding, please be sure to view and edit\n" " using the same encoding." msgstr "" +"bestand codering. Zorg ervoor dat u het bestand bekijkt en bewerkt\n" +" met dezelfde codering." #. module: base #: view:ir.rule:0 diff --git a/openerp/addons/base/i18n/nl_BE.po b/openerp/addons/base/i18n/nl_BE.po index 6ee5eb187c6..af08388f7f0 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: 2013-02-07 04:52+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:46+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/pl.po b/openerp/addons/base/i18n/pl.po index a12bbc9f9d4..428e8c79b2b 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: 2013-02-07 04:48+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:43+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -14618,7 +14618,7 @@ msgstr "Uruchom" #. module: base #: selection:res.partner,type:0 msgid "Shipping" -msgstr "Przewoźnik" +msgstr "Dostawa" #. module: base #: model:ir.module.module,description:base.module_project_mrp diff --git a/openerp/addons/base/i18n/pt.po b/openerp/addons/base/i18n/pt.po index 3417c833545..f843460c18e 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: 2013-02-07 04:48+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:43+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/pt_BR.po b/openerp/addons/base/i18n/pt_BR.po index 7c3f985f96d..f21c56f160a 100644 --- a/openerp/addons/base/i18n/pt_BR.po +++ b/openerp/addons/base/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: 2013-02-07 04:51+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:45+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ro.po b/openerp/addons/base/i18n/ro.po index fbcb6a5f0e3..029dccf009e 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: 2013-02-07 04:49+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:43+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -11497,11 +11497,12 @@ msgid "" msgstr "" "Stimate Domn/Doamna,\n" "\n" -"Inregistrarile noastre indica faptul ca unii parametrii din contul " -"dumneavoastra sunt inca scadente. Aveti toate detaliile mai jos.\n" -"Daca suma a fost deja platita, va rugam sa ignorati acest aviz. In cazul in " -"care nu a fost platita inca, va rugam sa efectuati plata restanta.\n" -"Daca aveti intrebari in legatura cu acest cont, va rugam sa ne contactati.\n" +"Inregistrarile noastre indica faptul ca aveti unele plati inca scadente. " +"Gasiti toate detaliile mai jos.\n" +"Daca suma a fost deja platita, va rugam sa ignorati acest aviz. In cazul " +"contrar, va rugam sa efectuati plata restanta descrisa mai jos.\n" +"Daca aveti intrebari in legatura cu contul dumneavoastra, va rugam sa ne " +"contactati.\n" "\n" "Va multumim anticipat pentru cooperarea dumneavoastra.\n" "Cu stima," diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po index f7abb90c79d..b7d1dfd77f7 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: 2013-02-07 04:49+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:43+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sk.po b/openerp/addons/base/i18n/sk.po index 2803d252a13..9b475e097d3 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: 2013-02-07 04:49+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:44+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sl.po b/openerp/addons/base/i18n/sl.po index ad63c5552c0..312e0e7e696 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: 2013-02-07 04:49+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:44+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sq.po b/openerp/addons/base/i18n/sq.po index 0b807f99742..c8162e55590 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: 2013-02-07 04:43+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:37+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sr.po b/openerp/addons/base/i18n/sr.po index 1c8fb3fdc48..6ea6258be22 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: 2013-02-07 04:49+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:43+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sr@latin.po b/openerp/addons/base/i18n/sr@latin.po index 8b8a2cf2647..8bf4a15e2ab 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: 2013-02-07 04:53+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:47+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sv.po b/openerp/addons/base/i18n/sv.po index d82136c0107..7445b2d2ab9 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: 2013-02-07 04:50+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:44+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/th.po b/openerp/addons/base/i18n/th.po index f44c434e785..76408c11a13 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: 2013-02-07 04:50+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:44+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/tlh.po b/openerp/addons/base/i18n/tlh.po index 892d8d1cc69..8521911a434 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: 2013-02-07 04:50+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:44+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/tr.po b/openerp/addons/base/i18n/tr.po index 230a10b03b2..78a47208137 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: 2013-02-07 04:50+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:45+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/uk.po b/openerp/addons/base/i18n/uk.po index bdf75fd0948..7e78a30bd82 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: 2013-02-07 04:50+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:45+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ur.po b/openerp/addons/base/i18n/ur.po index de667acc7f9..32f051788b6 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: 2013-02-07 04:50+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:45+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/vi.po b/openerp/addons/base/i18n/vi.po index 7b69b5379cd..e991fe537d8 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: 2013-02-07 04:51+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:45+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po index de526b0c906..66262e60048 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: 2013-02-07 04:52+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:47+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/zh_HK.po b/openerp/addons/base/i18n/zh_HK.po index 8b5a88f419b..9dbbf546b4b 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: 2013-02-07 04:51+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:45+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/zh_TW.po b/openerp/addons/base/i18n/zh_TW.po index c793d9f29c8..b9e74d7397f 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: 2013-02-07 04:52+0000\n" -"X-Generator: Launchpad (build 16477)\n" +"X-Launchpad-Export-Date: 2013-02-17 04:46+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing From ee256b5664665ce45b9397b5225bf004c0c35754 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 18 Feb 2013 16:31:07 +0100 Subject: [PATCH 86/90] [FIX] service: call stop() instead of shutdown() in the evented case. bzr revid: vmt@openerp.com-20130218153107-m5ikcn10gckk8ik3 --- openerp/service/wsgi_server.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py index 0676f8c02b0..0ca7dfcbd94 100644 --- a/openerp/service/wsgi_server.py +++ b/openerp/service/wsgi_server.py @@ -450,8 +450,13 @@ def stop_service(): The server is supposed to have been started by start_server() above. """ if httpd: - httpd.shutdown() - close_socket(httpd.socket) + if not openerp.evented: + httpd.shutdown() + close_socket(httpd.socket) + else: + import gevent + httpd.stop() + gevent.shutdown() def close_socket(sock): """ Closes a socket instance cleanly From b985c7302f387948f6d4ddd5ba7b02861c747885 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 18 Feb 2013 17:48:39 +0100 Subject: [PATCH 87/90] [FIX] openerp namespace: the import hook was still inserting modules in sys.moduls at their shortname. bzr revid: vmt@openerp.com-20130218164839-2qludhn3znpdftq5 --- openerp/modules/module.py | 56 --------------------------------------- openerp/service/cron.py | 6 +---- 2 files changed, 1 insertion(+), 61 deletions(-) diff --git a/openerp/modules/module.py b/openerp/modules/module.py index 9f716099b56..e71c1f1c519 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -62,23 +62,6 @@ class AddonsImportHook(object): 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): @@ -86,25 +69,6 @@ class AddonsImportHook(object): 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.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('.') @@ -113,29 +77,9 @@ To import it, use `import openerp.addons..`.""" % (module_name, path)) 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('openerp.addons.' + module_part, f, path, descr) - if not is_shadowing: - sys.modules[module_part] = mod - for k in sys.modules.keys(): - if k.startswith('openerp.addons.' + module_part): - sys.modules[k[len('openerp.addons.'):]] = sys.modules[k] sys.modules['openerp.addons.' + module_part] = mod return mod diff --git a/openerp/service/cron.py b/openerp/service/cron.py index f3c81fe785f..3155ed4259b 100644 --- a/openerp/service/cron.py +++ b/openerp/service/cron.py @@ -44,11 +44,7 @@ def cron_runner(number): _logger.debug('cron%d polling for jobs', number) for db_name, registry in registries.items(): while True and registry.ready: - # acquired = openerp.addons.base.ir.ir_cron.ir_cron._acquire_job(db_name) - # TODO why isnt openerp.addons.base defined ? - import sys - base = sys.modules['addons.base'] - acquired = base.ir.ir_cron.ir_cron._acquire_job(db_name) + acquired = openerp.addons.base.ir.ir_cron.ir_cron._acquire_job(db_name) if not acquired: break From 5bca6d888f2b244248a1fca8834a1d10472d7df1 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Tue, 19 Feb 2013 04:57:06 +0000 Subject: [PATCH 88/90] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130216045714-d9igbkeb3a2wzohp bzr revid: launchpad_translations_on_behalf_of_openerp-20130218044953-7p6xwm71bp0eaxna bzr revid: launchpad_translations_on_behalf_of_openerp-20130219045706-ixtnuj13l1xhob4u --- addons/account_analytic_analysis/i18n/mn.po | 79 +-- addons/account_test/i18n/ar.po | 241 +++++++++ addons/base_action_rule/i18n/cs.po | 338 ++++++++++++ addons/contacts/i18n/hu.po | 17 +- addons/google_docs/i18n/mn.po | 188 +++++++ addons/google_docs/i18n/sv.po | 188 +++++++ addons/hr/i18n/hu.po | 70 ++- addons/knowledge/i18n/mn.po | 32 +- addons/marketing/i18n/hu.po | 11 +- addons/marketing_campaign/i18n/hu.po | 180 +++++-- addons/portal_crm/i18n/ro.po | 568 ++++++++++++++++++++ addons/portal_sale/i18n/mn.po | 344 ++++++++++++ addons/report_webkit/i18n/mn.po | 517 ++++++++++++++++++ 13 files changed, 2637 insertions(+), 136 deletions(-) create mode 100644 addons/account_test/i18n/ar.po create mode 100644 addons/base_action_rule/i18n/cs.po create mode 100644 addons/google_docs/i18n/mn.po create mode 100644 addons/google_docs/i18n/sv.po create mode 100644 addons/portal_crm/i18n/ro.po create mode 100644 addons/portal_sale/i18n/mn.po create mode 100644 addons/report_webkit/i18n/mn.po diff --git a/addons/account_analytic_analysis/i18n/mn.po b/addons/account_analytic_analysis/i18n/mn.po index ca1f43d0234..d961188e2dc 100644 --- a/addons/account_analytic_analysis/i18n/mn.po +++ b/addons/account_analytic_analysis/i18n/mn.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: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2010-12-20 23:20+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2013-02-15 10:57+0000\n" +"Last-Translator: gobi \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-12-22 05:42+0000\n" -"X-Generator: Launchpad (build 16378)\n" +"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -29,12 +29,12 @@ msgstr "Бүлэглэх..." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "To Invoice" -msgstr "" +msgstr "Үнийн нэхэмжлэл" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Remaining" -msgstr "" +msgstr "Үлдэгдэл" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -71,12 +71,12 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "⇒ Invoice" -msgstr "" +msgstr "⇒ Нэхэмжлэл" #. module: account_analytic_analysis #: field:account.analytic.account,ca_invoiced:0 msgid "Invoiced Amount" -msgstr "Нэхэмжилсэн дүн" +msgstr "Нэхэмжлэлийн дүн" #. module: account_analytic_analysis #: field:account.analytic.account,last_worked_invoiced_date:0 @@ -86,7 +86,7 @@ msgstr "Эцсийн өртөгийг нэхэмжилсэн огноо" #. module: account_analytic_analysis #: help:account.analytic.account,fix_price_to_invoice:0 msgid "Sum of quotations for this contract." -msgstr "" +msgstr "Энэ гэрээний ханшийн нийлбэр." #. module: account_analytic_analysis #: help:account.analytic.account,ca_invoiced:0 @@ -120,7 +120,7 @@ msgstr "Аналитик данс" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Partner" -msgstr "" +msgstr "Харилцагч" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -149,12 +149,12 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "End Date" -msgstr "Дуусах огноо" +msgstr "Дуусан огноо" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Account Manager" -msgstr "" +msgstr "Дансны менежер" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_hours_to_invoice:0 @@ -164,12 +164,12 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Expected" -msgstr "" +msgstr "Тооцоолсон" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts not assigned" -msgstr "" +msgstr "Гэрээнүүд оноогдоогүй байна" #. module: account_analytic_analysis #: help:account.analytic.account,theorical_margin:0 @@ -205,6 +205,7 @@ msgstr "Бодит зөрүүний хэмжээ (%)" #: help:account.analytic.account,remaining_hours:0 msgid "Computed using the formula: Maximum Time - Total Worked Time" msgstr "" +"Тооцоололд ашиглагдсан томъёо: Хамгийн их хугацаа - Нийт ажилласан хугацаа" #. module: account_analytic_analysis #: help:account.analytic.account,hours_quantity:0 @@ -218,7 +219,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Nothing to invoice, create" -msgstr "" +msgstr "Нэхэмжлэх, үүсгэх зүйлс алга" #. module: account_analytic_analysis #: model:res.groups,name:account_analytic_analysis.group_template_required @@ -228,7 +229,7 @@ msgstr "" #. module: account_analytic_analysis #: field:account.analytic.account,hours_quantity:0 msgid "Total Worked Time" -msgstr "" +msgstr "Нийт ажилласан хугацаа" #. module: account_analytic_analysis #: field:account.analytic.account,real_margin:0 @@ -238,7 +239,7 @@ msgstr "Бодит зөрүү" #. module: account_analytic_analysis #: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_month msgid "Hours summary by month" -msgstr "Hours summary by month" +msgstr "Сарын цагийн хураангуй" #. module: account_analytic_analysis #: help:account.analytic.account,real_margin_rate:0 @@ -248,12 +249,12 @@ msgstr "Томъёг ашиглан тооцоолох: (Бодит зөрүү/ #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "or view" -msgstr "" +msgstr "эсвэл үзэх" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Customer Contracts" -msgstr "" +msgstr "Захиалагчийн гэрээнүүд" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -270,7 +271,7 @@ msgstr "Сар" #: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all msgid "Time & Materials to Invoice" -msgstr "" +msgstr "Хугацаа & Нэхэмжлэлийн материал" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue_all @@ -281,12 +282,12 @@ msgstr "Гэрээнүүд" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Start Date" -msgstr "" +msgstr "Эхлэх огноо" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Invoiced" -msgstr "" +msgstr "Нэхэмжилсэн" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -305,7 +306,7 @@ msgstr "Захиалагчтай шинэчлэхээр хүлээж байга #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Timesheets" -msgstr "" +msgstr "Цагийн хуудас" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_non_invoiced:0 @@ -329,7 +330,7 @@ msgstr "Тоо ширхэг хязгаараас давсан" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Status" -msgstr "" +msgstr "Төлөв" #. module: account_analytic_analysis #: field:account.analytic.account,ca_theorical:0 @@ -350,7 +351,7 @@ msgstr "OpenERP-д гэрээ нь харилцагч бүхий шинжилг #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_sales_order msgid "Sales Orders" -msgstr "" +msgstr "Борлуулалтын захиалгууд" #. module: account_analytic_analysis #: help:account.analytic.account,last_invoice_date:0 @@ -437,12 +438,12 @@ msgstr "" #. module: account_analytic_analysis #: field:account.analytic.account,toinvoice_total:0 msgid "Total to Invoice" -msgstr "" +msgstr "Нийт нэхэмжлэл" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Sale Orders" -msgstr "" +msgstr "Борлуулалтын захиалга" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -452,7 +453,7 @@ msgstr "Нээх" #. module: account_analytic_analysis #: field:account.analytic.account,invoiced_total:0 msgid "Total Invoiced" -msgstr "" +msgstr "Нийт нэхэмжлэл" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_ca:0 @@ -468,7 +469,7 @@ msgstr "Сүүлийн нэхэмжлэлийн огноо" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Units Remaining" -msgstr "" +msgstr "Нэгжийн үлдэгдэл" #. module: account_analytic_analysis #: model:ir.actions.act_window,help:account_analytic_analysis.action_hr_tree_invoiced_all @@ -497,7 +498,7 @@ msgstr "Нэхэмжлэх" #. module: account_analytic_analysis #: field:account.analytic.account,total_cost:0 msgid "Total Costs" -msgstr "Нийт өртөг" +msgstr "Нийт зардал" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_total:0 @@ -526,7 +527,7 @@ msgstr "Онолын Хязгаар" #. module: account_analytic_analysis #: field:account.analytic.account,remaining_total:0 msgid "Total Remaining" -msgstr "" +msgstr "Нийт үлдэгдэл" #. module: account_analytic_analysis #: help:account.analytic.account,real_margin:0 @@ -536,12 +537,12 @@ msgstr "Томъёг ашиглан тооцоолох: Нэхэмжилсэн #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_est:0 msgid "Estimation of Hours to Invoice" -msgstr "" +msgstr "Нэхэмжлэх цагийн тооцоолол" #. module: account_analytic_analysis #: field:account.analytic.account,fix_price_invoices:0 msgid "Fixed Price" -msgstr "" +msgstr "Тогтмол үнэ" #. module: account_analytic_analysis #: help:account.analytic.account,last_worked_date:0 @@ -551,23 +552,23 @@ msgstr "Энэ данс дээр хйигдсэн сүүлийн ажлын ог #. module: account_analytic_analysis #: model:ir.model,name:account_analytic_analysis.model_sale_config_settings msgid "sale.config.settings" -msgstr "" +msgstr "sale.config.settings" #. module: account_analytic_analysis #: field:sale.config.settings,group_template_required:0 msgid "Mandatory use of templates." -msgstr "" +msgstr "Үлгэрүүдийн зайлшгүй хэрэглээ" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.template_of_contract_action #: model:ir.ui.menu,name:account_analytic_analysis.menu_template_of_contract_action msgid "Contract Template" -msgstr "" +msgstr "Гэрээний загвар" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Units Done" -msgstr "" +msgstr "Хийгдсэн Нэгжүүд" #. module: account_analytic_analysis #: help:account.analytic.account,total_cost:0 @@ -581,7 +582,7 @@ msgstr "" #. module: account_analytic_analysis #: field:account.analytic.account,est_total:0 msgid "Total Estimation" -msgstr "" +msgstr "Нийт таамаг тооцоо" #. module: account_analytic_analysis #: field:account.analytic.account,remaining_ca:0 @@ -617,7 +618,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Total" -msgstr "" +msgstr "Нийт" #~ msgid "" #~ "Number of hours that can be invoiced plus those that already have been " diff --git a/addons/account_test/i18n/ar.po b/addons/account_test/i18n/ar.po new file mode 100644 index 00000000000..c2d46674b1b --- /dev/null +++ b/addons/account_test/i18n/ar.po @@ -0,0 +1,241 @@ +# Arabic translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-02-18 11:32+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-02-19 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" + +#. module: account_test +#: view:accounting.assert.test:0 +msgid "" +"Code should always set a variable named `result` with the result of your " +"test, that can be a list or\n" +"a dictionary. If `result` is an empty list, it means that the test was " +"succesful. Otherwise it will\n" +"try to translate and print what is inside `result`.\n" +"\n" +"If the result of your test is a dictionary, you can set a variable named " +"`column_order` to choose in\n" +"what order you want to print `result`'s content.\n" +"\n" +"Should you need them, you can also use the following variables into your " +"code:\n" +" * cr: cursor to the database\n" +" * uid: ID of the current user\n" +"\n" +"In any ways, the code must be legal python statements with correct " +"indentation (if needed).\n" +"\n" +"Example: \n" +" sql = '''SELECT id, name, ref, date\n" +" FROM account_move_line \n" +" WHERE account_id IN (SELECT id FROM account_account WHERE type " +"= 'view')\n" +" '''\n" +" cr.execute(sql)\n" +" result = cr.dictfetchall()" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_02 +msgid "Test 2: Opening a fiscal year" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_05 +msgid "" +"Check that reconciled invoice for Sales/Purchases has reconciled entries for " +"Payable and Receivable Accounts" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_03 +msgid "" +"Check if movement lines are balanced and have the same date and period" +msgstr "" + +#. module: account_test +#: field:accounting.assert.test,name:0 +msgid "Test Name" +msgstr "" + +#. module: account_test +#: report:account.test.assert.print:0 +msgid "Accouting tests on" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_01 +msgid "Test 1: General balance" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_06 +msgid "Check that paid/reconciled invoices are not in 'Open' state" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_05_2 +msgid "" +"Check that reconciled account moves, that define Payable and Receivable " +"accounts, are belonging to reconciled invoices" +msgstr "" + +#. module: account_test +#: view:accounting.assert.test:0 +msgid "Tests" +msgstr "" + +#. module: account_test +#: field:accounting.assert.test,desc:0 +msgid "Test Description" +msgstr "" + +#. module: account_test +#: view:accounting.assert.test:0 +msgid "Description" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_06_1 +msgid "Check that there's no move for any account with « View » account type" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_08 +msgid "Test 9 : Accounts and partners on account moves" +msgstr "" + +#. module: account_test +#: model:ir.actions.act_window,name:account_test.action_accounting_assert +#: model:ir.actions.report.xml,name:account_test.account_assert_test_report +#: model:ir.ui.menu,name:account_test.menu_action_license +msgid "Accounting Tests" +msgstr "" + +#. module: account_test +#: code:addons/account_test/report/account_test_report.py:74 +#, python-format +msgid "The test was passed successfully" +msgstr "" + +#. module: account_test +#: field:accounting.assert.test,active:0 +msgid "Active" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_06 +msgid "Test 6 : Invoices status" +msgstr "" + +#. module: account_test +#: model:ir.model,name:account_test.model_accounting_assert_test +msgid "accounting.assert.test" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_05 +msgid "" +"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices" +msgstr "" + +#. module: account_test +#: field:accounting.assert.test,code_exec:0 +msgid "Python code" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_07 +msgid "" +"Check on bank statement that the Closing Balance = Starting Balance + sum of " +"statement lines" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_07 +msgid "Test 8 : Closing balance on bank statements" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_03 +msgid "Test 3: Movement lines" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_05_2 +msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts" +msgstr "" + +#. module: account_test +#: view:accounting.assert.test:0 +msgid "Expression" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_04 +msgid "Test 4: Totally reconciled mouvements" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_04 +msgid "Check if the totally reconciled movements are balanced" +msgstr "" + +#. module: account_test +#: field:accounting.assert.test,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_02 +msgid "" +"Check if the balance of the new opened fiscal year matches with last year's " +"balance" +msgstr "" + +#. module: account_test +#: view:accounting.assert.test:0 +msgid "Python Code" +msgstr "" + +#. module: account_test +#: model:ir.actions.act_window,help:account_test.action_accounting_assert +msgid "" +"

\n" +" Click to create Accounting Test.\n" +"

\n" +" " +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_01 +msgid "Check the balance: Debit sum = Credit sum" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,desc:account_test.account_test_08 +msgid "Check that general accounts and partners on account moves are active" +msgstr "" + +#. module: account_test +#: model:accounting.assert.test,name:account_test.account_test_06_1 +msgid "Test 7: « View  » account type" +msgstr "" + +#. module: account_test +#: view:accounting.assert.test:0 +msgid "Code Help" +msgstr "" diff --git a/addons/base_action_rule/i18n/cs.po b/addons/base_action_rule/i18n/cs.po new file mode 100644 index 00000000000..2321a9b5d31 --- /dev/null +++ b/addons/base_action_rule/i18n/cs.po @@ -0,0 +1,338 @@ +# Czech translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-02-15 15:11+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" + +#. module: base_action_rule +#: selection:base.action.rule.lead.test,state:0 +msgid "In Progress" +msgstr "Probíhá" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "" +"- In this same \"Search\" view, select the menu \"Save Current Filter\", " +"enter the name (Ex: Create the 01/01/2012) and add the option \"Share with " +"all users\"" +msgstr "" +"- V tomto zobrazení \"Vyhledat\" zvolte nabídku \"Uložit aktuální filtr\", " +"zadejte jméno (Např.: Vytvořeno 01.01.2012) a přidejte volbu \"sdílet se " +"všemi uživateli\"" + +#. module: base_action_rule +#: model:ir.model,name:base_action_rule.model_base_action_rule +msgid "Action Rules" +msgstr "Pravidla akcí" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Select a filter or a timer as condition." +msgstr "Zvolte jako podmínku filtr nebo časovač" + +#. module: base_action_rule +#: field:base.action.rule.lead.test,user_id:0 +msgid "Responsible" +msgstr "Zodpovídá" + +#. module: base_action_rule +#: help:base.action.rule,server_action_ids:0 +msgid "Examples: email reminders, call object service, etc." +msgstr "Například: připomenutí e-mailu, volání služby, apod." + +#. module: base_action_rule +#: field:base.action.rule,act_followers:0 +msgid "Add Followers" +msgstr "Přidejte na vědomí" + +#. module: base_action_rule +#: field:base.action.rule,act_user_id:0 +msgid "Set Responsible" +msgstr "Nastavte odpovědnou osobu" + +#. module: base_action_rule +#: help:base.action.rule,trg_date_range:0 +msgid "" +"Delay after the trigger date.You can put a negative number if you need a " +"delay before thetrigger date, like sending a reminder 15 minutes before a " +"meeting." +msgstr "" +"Zpoždění po datu spuštění. Můžete zadat záporné číslo, pokud potřebujete " +"prodlevu před datem spuštění, jako zaslání připomenutí 15 minut před " +"schůzkou." + +#. module: base_action_rule +#: model:ir.model,name:base_action_rule.model_base_action_rule_lead_test +msgid "base.action.rule.lead.test" +msgstr "base.action.rule.lead.test" + +#. module: base_action_rule +#: selection:base.action.rule.lead.test,state:0 +msgid "Closed" +msgstr "Uzavřeno" + +#. module: base_action_rule +#: selection:base.action.rule.lead.test,state:0 +msgid "New" +msgstr "Nové" + +#. module: base_action_rule +#: field:base.action.rule,trg_date_range:0 +msgid "Delay after trigger date" +msgstr "Po datu spuštění" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Conditions" +msgstr "Podmínky" + +#. module: base_action_rule +#: selection:base.action.rule.lead.test,state:0 +msgid "Pending" +msgstr "Čekající" + +#. module: base_action_rule +#: field:base.action.rule.lead.test,state:0 +msgid "Status" +msgstr "Stav" + +#. module: base_action_rule +#: field:base.action.rule,filter_pre_id:0 +msgid "Before Update Filter" +msgstr "Filtr před aktualizací" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Action Rule" +msgstr "Pravidlo akce" + +#. module: base_action_rule +#: help:base.action.rule,filter_id:0 +msgid "" +"If present, this condition must be satisfied after the update of the record." +msgstr "Existuje-li, musí být tato podmínka po aktualizaci záznamu splněna." + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Fields to Change" +msgstr "Pole, která je možno měnit" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "The filter must therefore be available in this page." +msgstr "Filtr musí být na této straně k dispozici." + +#. module: base_action_rule +#: field:base.action.rule,filter_id:0 +msgid "After Update Filter" +msgstr "Filtr po aktualizaci" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_range_type:0 +msgid "Hours" +msgstr "hodin" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "To create a new filter:" +msgstr "Nový filtr vytvoříte:" + +#. module: base_action_rule +#: field:base.action.rule,active:0 +#: field:base.action.rule.lead.test,active:0 +msgid "Active" +msgstr "Aktivní" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Delay After Trigger Date" +msgstr "Zpoždění po datu spuštění" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "" +"An action rule is checked when you create or modify the \"Related Document " +"Model\". The precondition filter is checked right before the modification " +"while the postcondition filter is checked after the modification. A " +"precondition filter will therefore not work during a creation." +msgstr "" +"Pravidlo akce je ověřováno při vytváření nebo úpravě \"souvisejícího modelu " +"dokumentu\". Platnost filtru s podmínkou před je ověřována před úpravou, " +"zatímco platnost filtru s podmínkou po je kontrolována po úpravě. Filtr s " +"podmínkou před nebude tedy pracovat při vytváření." + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Filter Condition" +msgstr "Podmínka filtru" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "" +"- Go to your \"Related Document Model\" page and set the filter parameters " +"in the \"Search\" view (Example of filter based on Leads/Opportunities: " +"Creation Date \"is equal to\" 01/01/2012)" +msgstr "" +"- Přejděte na stránku \"Přiřazený model dokumentu\" a nastavte parametry " +"filtru v zobrazení \"Hledat\" (Příklad filtru na základě Zájemci / " +"Příležitosti: Datum vytvoření \"je\" 01.01.2012)" + +#. module: base_action_rule +#: field:base.action.rule,name:0 +msgid "Rule Name" +msgstr "Název pravidla" + +#. module: base_action_rule +#: model:ir.actions.act_window,name:base_action_rule.base_action_rule_act +#: model:ir.ui.menu,name:base_action_rule.menu_base_action_rule_form +msgid "Automated Actions" +msgstr "Automatické akce" + +#. module: base_action_rule +#: help:base.action.rule,sequence:0 +msgid "Gives the sequence order when displaying a list of rules." +msgstr "Udává pořadí příkazů při zobrazení seznamu pravidel." + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_range_type:0 +msgid "Months" +msgstr "měsíců" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_range_type:0 +msgid "Days" +msgstr "dnů" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Timer" +msgstr "Časovač" + +#. module: base_action_rule +#: field:base.action.rule,trg_date_range_type:0 +msgid "Delay type" +msgstr "Typ zpoždění" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Server actions to run" +msgstr "Akce serveru ke spuštění" + +#. module: base_action_rule +#: help:base.action.rule,active:0 +msgid "When unchecked, the rule is hidden and will not be executed." +msgstr "Pokud neoznačíte, pravidlo nebude vidět neprovede se." + +#. module: base_action_rule +#: selection:base.action.rule.lead.test,state:0 +msgid "Cancelled" +msgstr "Zrušeno" + +#. module: base_action_rule +#: field:base.action.rule,model:0 +msgid "Model" +msgstr "Model" + +#. module: base_action_rule +#: field:base.action.rule,last_run:0 +msgid "Last Run" +msgstr "Naposledy spuštěno" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_range_type:0 +msgid "Minutes" +msgstr "minut" + +#. module: base_action_rule +#: field:base.action.rule,model_id:0 +msgid "Related Document Model" +msgstr "Související model dokumentu" + +#. module: base_action_rule +#: help:base.action.rule,filter_pre_id:0 +msgid "" +"If present, this condition must be satisfied before the update of the record." +msgstr "Existuje-li, musí být podmínka spolněna po aktualizaci záznamu." + +#. module: base_action_rule +#: field:base.action.rule,sequence:0 +msgid "Sequence" +msgstr "Pořadí" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Actions" +msgstr "Akce" + +#. module: base_action_rule +#: model:ir.actions.act_window,help:base_action_rule.base_action_rule_act +msgid "" +"

\n" +" Click to setup a new automated action rule. \n" +"

\n" +" Use automated actions to automatically trigger actions for\n" +" various screens. Example: a lead created by a specific user " +"may\n" +" be automatically set to a specific sales team, or an\n" +" opportunity which still has status pending after 14 days " +"might\n" +" trigger an automatic reminder email.\n" +"

\n" +" " +msgstr "" +"

\n" +" Klepni pro vytvoření nového automatického pravidla akce. \n" +"

\n" +" Automatické akce používejte pro různé automaticky spouštěné\n" +" akce. Například: a zájemce vytvořený konkrétním uživatelem " +"může\n" +" být automaticky přiřazen do určité obchodní skupiny, nebo\n" +" příležitost, která je 14 dnů ve stavu \"čekající\" může " +"odeslat\n" +" upozorňující e-mail.\n" +"

\n" +" " + +#. module: base_action_rule +#: field:base.action.rule,create_date:0 +msgid "Create Date" +msgstr "Datum vytvoření" + +#. module: base_action_rule +#: field:base.action.rule.lead.test,date_action_last:0 +msgid "Last Action" +msgstr "Poslední akce" + +#. module: base_action_rule +#: field:base.action.rule.lead.test,partner_id:0 +msgid "Partner" +msgstr "Partner" + +#. module: base_action_rule +#: field:base.action.rule,trg_date_id:0 +msgid "Trigger Date" +msgstr "Datum spuštění" + +#. module: base_action_rule +#: view:base.action.rule:0 +#: field:base.action.rule,server_action_ids:0 +msgid "Server Actions" +msgstr "Akce serveru" + +#. module: base_action_rule +#: field:base.action.rule.lead.test,name:0 +msgid "Subject" +msgstr "Předmět" diff --git a/addons/contacts/i18n/hu.po b/addons/contacts/i18n/hu.po index 500d4f50c83..343ecb73bb4 100644 --- a/addons/contacts/i18n/hu.po +++ b/addons/contacts/i18n/hu.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2012-11-27 23:56+0000\n" -"Last-Translator: Krisztian Eyssen \n" +"PO-Revision-Date: 2013-02-15 16:22+0000\n" +"Last-Translator: krnkris \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-12-22 06:07+0000\n" -"X-Generator: Launchpad (build 16378)\n" +"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: contacts #: model:ir.actions.act_window,help:contacts.action_contacts @@ -29,6 +29,15 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Kattintson új kapcsolat hozzáadásához a címjegyzékhez.\n" +"

\n" +" OpenERP segít az összes tevékenység nyomon követésében ami \n" +" összefüggésben áll a vevőkkel; megbeszélésekkel, üzleti " +"lehetőségek történetével,\n" +" dokumentumokkal stb.\n" +"

\n" +" " #. module: contacts #: model:ir.actions.act_window,name:contacts.action_contacts diff --git a/addons/google_docs/i18n/mn.po b/addons/google_docs/i18n/mn.po new file mode 100644 index 00000000000..8968332fba0 --- /dev/null +++ b/addons/google_docs/i18n/mn.po @@ -0,0 +1,188 @@ +# Mongolian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-02-19 02:49+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Mongolian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-02-19 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:139 +#, python-format +msgid "Key Error!" +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"for a presentation (slide show) document with url like " +"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id" +".p`, the ID is `presentation:123456789`" +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"for a text document with url like " +"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is " +"`document:123456789`" +msgstr "" + +#. module: google_docs +#: field:google.docs.config,gdocs_resource_id:0 +msgid "Google Resource ID to Use as Template" +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"for a drawing document with url like " +"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is " +"`drawings:123456789`" +msgstr "" + +#. module: google_docs +#. openerp-web +#: code:addons/google_docs/static/src/xml/gdocs.xml:6 +#, python-format +msgid "Add Google Doc..." +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"This is the id of the template document, on google side. You can find it " +"thanks to its URL:" +msgstr "" + +#. module: google_docs +#: model:ir.model,name:google_docs.model_google_docs_config +msgid "Google Docs templates config" +msgstr "" + +#. module: google_docs +#. openerp-web +#: code:addons/google_docs/static/src/js/gdocs.js:25 +#, python-format +msgid "" +"The user google credentials are not set yet. Contact your administrator for " +"help." +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"for a spreadsheet document with url like " +"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, " +"the ID is `spreadsheet:123456789`" +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:101 +#, python-format +msgid "" +"Your resource id is not correct. You can find the id in the google docs URL." +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:125 +#, python-format +msgid "Creating google docs may only be done by one at a time." +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:56 +#: code:addons/google_docs/google_docs.py:101 +#: code:addons/google_docs/google_docs.py:125 +#, python-format +msgid "Google Docs Error!" +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:56 +#, python-format +msgid "Check your google configuration in Users/Users/Synchronization tab." +msgstr "" + +#. module: google_docs +#: model:ir.ui.menu,name:google_docs.menu_gdocs_config +msgid "Google Docs configuration" +msgstr "" + +#. module: google_docs +#: model:ir.actions.act_window,name:google_docs.action_google_docs_users_config +#: model:ir.ui.menu,name:google_docs.menu_gdocs_model_config +msgid "Models configuration" +msgstr "Моделийн тохиргоо" + +#. module: google_docs +#: field:google.docs.config,model_id:0 +msgid "Model" +msgstr "Модел" + +#. module: google_docs +#. openerp-web +#: code:addons/google_docs/static/src/js/gdocs.js:28 +#, python-format +msgid "User Google credentials are not yet set." +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:139 +#, python-format +msgid "Your Google Doc Name Pattern's key does not found in object." +msgstr "" + +#. module: google_docs +#: help:google.docs.config,name_template:0 +msgid "" +"Choose how the new google docs will be named, on google side. Eg. " +"gdoc_%(field_name)s" +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "Google Docs Configuration" +msgstr "" + +#. module: google_docs +#: help:google.docs.config,gdocs_resource_id:0 +msgid "" +"\n" +"This is the id of the template document, on google side. You can find it " +"thanks to its URL: \n" +"*for a text document with url like " +"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is " +"`document:123456789`\n" +"*for a spreadsheet document with url like " +"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, " +"the ID is `spreadsheet:123456789`\n" +"*for a presentation (slide show) document with url like " +"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id" +".p`, the ID is `presentation:123456789`\n" +"*for a drawing document with url like " +"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is " +"`drawings:123456789`\n" +"...\n" +msgstr "" + +#. module: google_docs +#: model:ir.model,name:google_docs.model_ir_attachment +msgid "ir.attachment" +msgstr "" + +#. module: google_docs +#: field:google.docs.config,name_template:0 +msgid "Google Doc Name Pattern" +msgstr "" diff --git a/addons/google_docs/i18n/sv.po b/addons/google_docs/i18n/sv.po new file mode 100644 index 00000000000..6228d0b7ad5 --- /dev/null +++ b/addons/google_docs/i18n/sv.po @@ -0,0 +1,188 @@ +# Swedish translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-02-15 14:26+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:139 +#, python-format +msgid "Key Error!" +msgstr "Nyckelfel!" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"for a presentation (slide show) document with url like " +"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id" +".p`, the ID is `presentation:123456789`" +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"for a text document with url like " +"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is " +"`document:123456789`" +msgstr "" + +#. module: google_docs +#: field:google.docs.config,gdocs_resource_id:0 +msgid "Google Resource ID to Use as Template" +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"for a drawing document with url like " +"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is " +"`drawings:123456789`" +msgstr "" + +#. module: google_docs +#. openerp-web +#: code:addons/google_docs/static/src/xml/gdocs.xml:6 +#, python-format +msgid "Add Google Doc..." +msgstr "Lägg till Google-dokument..." + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"This is the id of the template document, on google side. You can find it " +"thanks to its URL:" +msgstr "" + +#. module: google_docs +#: model:ir.model,name:google_docs.model_google_docs_config +msgid "Google Docs templates config" +msgstr "" + +#. module: google_docs +#. openerp-web +#: code:addons/google_docs/static/src/js/gdocs.js:25 +#, python-format +msgid "" +"The user google credentials are not set yet. Contact your administrator for " +"help." +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "" +"for a spreadsheet document with url like " +"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, " +"the ID is `spreadsheet:123456789`" +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:101 +#, python-format +msgid "" +"Your resource id is not correct. You can find the id in the google docs URL." +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:125 +#, python-format +msgid "Creating google docs may only be done by one at a time." +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:56 +#: code:addons/google_docs/google_docs.py:101 +#: code:addons/google_docs/google_docs.py:125 +#, python-format +msgid "Google Docs Error!" +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:56 +#, python-format +msgid "Check your google configuration in Users/Users/Synchronization tab." +msgstr "" + +#. module: google_docs +#: model:ir.ui.menu,name:google_docs.menu_gdocs_config +msgid "Google Docs configuration" +msgstr "" + +#. module: google_docs +#: model:ir.actions.act_window,name:google_docs.action_google_docs_users_config +#: model:ir.ui.menu,name:google_docs.menu_gdocs_model_config +msgid "Models configuration" +msgstr "" + +#. module: google_docs +#: field:google.docs.config,model_id:0 +msgid "Model" +msgstr "" + +#. module: google_docs +#. openerp-web +#: code:addons/google_docs/static/src/js/gdocs.js:28 +#, python-format +msgid "User Google credentials are not yet set." +msgstr "" + +#. module: google_docs +#: code:addons/google_docs/google_docs.py:139 +#, python-format +msgid "Your Google Doc Name Pattern's key does not found in object." +msgstr "" + +#. module: google_docs +#: help:google.docs.config,name_template:0 +msgid "" +"Choose how the new google docs will be named, on google side. Eg. " +"gdoc_%(field_name)s" +msgstr "" + +#. module: google_docs +#: view:google.docs.config:0 +msgid "Google Docs Configuration" +msgstr "" + +#. module: google_docs +#: help:google.docs.config,gdocs_resource_id:0 +msgid "" +"\n" +"This is the id of the template document, on google side. You can find it " +"thanks to its URL: \n" +"*for a text document with url like " +"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is " +"`document:123456789`\n" +"*for a spreadsheet document with url like " +"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, " +"the ID is `spreadsheet:123456789`\n" +"*for a presentation (slide show) document with url like " +"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id" +".p`, the ID is `presentation:123456789`\n" +"*for a drawing document with url like " +"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is " +"`drawings:123456789`\n" +"...\n" +msgstr "" + +#. module: google_docs +#: model:ir.model,name:google_docs.model_ir_attachment +msgid "ir.attachment" +msgstr "" + +#. module: google_docs +#: field:google.docs.config,name_template:0 +msgid "Google Doc Name Pattern" +msgstr "" diff --git a/addons/hr/i18n/hu.po b/addons/hr/i18n/hu.po index 82805ae8b7f..32337b6db0b 100644 --- a/addons/hr/i18n/hu.po +++ b/addons/hr/i18n/hu.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: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2012-05-10 18:17+0000\n" -"Last-Translator: Krisztian Eyssen \n" +"PO-Revision-Date: 2013-02-15 18:13+0000\n" +"Last-Translator: krnkris \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-12-22 05:48+0000\n" -"X-Generator: Launchpad (build 16378)\n" +"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: hr #: model:process.node,name:hr.process_node_openerpuser0 @@ -24,7 +24,7 @@ msgstr "OpenERP felhasználó" #. module: hr #: field:hr.config.settings,module_hr_timesheet_sheet:0 msgid "Allow timesheets validation by managers" -msgstr "" +msgstr "Engedélyezze az időkimutatások vezetőség általi megerősítését" #. module: hr #: field:hr.job,requirements:0 @@ -58,11 +58,14 @@ msgid "" "128x128px image, with aspect ratio preserved. Use this field in form views " "or some kanban views." msgstr "" +"Közepes méretű fotó az alkalmazottakról. Automatikusan átméretezett mint " +"128x128px kép, az arányok megtartása mellett. Használja ezt a mezőt a forma " +"nézetben és egyes kanban nézetben." #. module: hr #: view:hr.config.settings:0 msgid "Time Tracking" -msgstr "" +msgstr "Idő követés" #. module: hr #: view:hr.employee:0 @@ -78,12 +81,12 @@ msgstr "Saját osztály létrehozása" #. module: hr #: help:hr.job,no_of_employee:0 msgid "Number of employees currently occupying this job position." -msgstr "" +msgstr "Alakalmazottak száma akik jelenleg betöltik ezt az állás pozíciót." #. module: hr #: field:hr.config.settings,module_hr_evaluation:0 msgid "Organize employees periodic evaluation" -msgstr "" +msgstr "Alkalmazottak szervezése időközönkénti értékeléssel" #. module: hr #: view:hr.department:0 @@ -98,7 +101,7 @@ msgstr "Osztály, részleg" #. module: hr #: field:hr.employee,work_email:0 msgid "Work Email" -msgstr "" +msgstr "Munkahelyi e-mail" #. module: hr #: help:hr.employee,image:0 @@ -106,11 +109,13 @@ msgid "" "This field holds the image used as photo for the employee, limited to " "1024x1024px." msgstr "" +"Ez a mező tartalmazza a képet amit az alkalmazottakhoz használ, limitált " +"méret 1024x1024px." #. module: hr #: help:hr.config.settings,module_hr_holidays:0 msgid "This installs the module hr_holidays." -msgstr "" +msgstr "Ez a hr_holidays modult telepíti." #. module: hr #: view:hr.job:0 @@ -125,7 +130,7 @@ msgstr "Toborzás folyamatban" #. module: hr #: field:hr.job,message_unread:0 msgid "Unread Messages" -msgstr "" +msgstr "Olvasatlan üzenetek" #. module: hr #: field:hr.department,company_id:0 @@ -143,33 +148,33 @@ msgstr "Várható felvételek" #. module: hr #: field:res.users,employee_ids:0 msgid "Related employees" -msgstr "" +msgstr "Ide kapcsolódó alkalmazottak" #. module: hr #: constraint:hr.employee.category:0 msgid "Error! You cannot create recursive Categories." -msgstr "" +msgstr "Hiba! Nem tud többszörös kategóriát létrehozni." #. module: hr #: help:hr.config.settings,module_hr_recruitment:0 msgid "This installs the module hr_recruitment." -msgstr "" +msgstr "Ez a hr_recruitment modult telepíti." #. module: hr #: view:hr.employee:0 msgid "Birth" -msgstr "" +msgstr "Született" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_categ_form #: model:ir.ui.menu,name:hr.menu_view_employee_category_form msgid "Employee Tags" -msgstr "" +msgstr "Alkalmazott címke" #. module: hr #: view:hr.job:0 msgid "Launch Recruitement" -msgstr "" +msgstr "Ebéd igénylés" #. module: hr #: model:process.transition,name:hr.process_transition_employeeuser0 @@ -194,22 +199,22 @@ msgstr "Házas" #. module: hr #: field:hr.job,message_ids:0 msgid "Messages" -msgstr "" +msgstr "Üzenetek" #. module: hr #: view:hr.config.settings:0 msgid "Talent Management" -msgstr "" +msgstr "Képesség kezelés" #. module: hr #: help:hr.config.settings,module_hr_timesheet_sheet:0 msgid "This installs the module hr_timesheet_sheet." -msgstr "" +msgstr "Ez a hr_timesheet_sheet modult telepíti." #. module: hr #: view:hr.employee:0 msgid "Mobile:" -msgstr "" +msgstr "Mobil:" #. module: hr #: view:hr.employee:0 @@ -219,12 +224,12 @@ msgstr "Beosztás" #. module: hr #: help:hr.job,message_unread:0 msgid "If checked new messages require your attention." -msgstr "" +msgstr "Ha be van jelölve, akkor figyelje az új üzeneteket." #. module: hr #: field:hr.employee,color:0 msgid "Color Index" -msgstr "" +msgstr "Szín meghatározó" #. module: hr #: model:process.transition,note:hr.process_transition_employeeuser0 @@ -232,11 +237,13 @@ msgid "" "The Related user field on the Employee form allows to link the OpenERP user " "(and her rights) to the employee." msgstr "" +"Az alkalmazott űrlapján ide vonatkozó felhasználó mező lehetővé teszi az " +"OpenERP felhasználó (és jogosultságai) hozzárendelését az alkalmazottakhoz." #. module: hr #: field:hr.employee,image_medium:0 msgid "Medium-sized photo" -msgstr "" +msgstr "Közepes méretű fotó" #. module: hr #: field:hr.employee,identification_id:0 @@ -277,7 +284,7 @@ msgstr "Iroda címe" #. module: hr #: field:hr.job,message_follower_ids:0 msgid "Followers" -msgstr "" +msgstr "Követők" #. module: hr #: view:hr.employee:0 @@ -298,6 +305,9 @@ msgid "" "image, with aspect ratio preserved. Use this field anywhere a small image is " "required." msgstr "" +"Kis méretű fotó az alkalmazottról. Automatikusan átméretezve 64x64px képre, " +"az arányok megtartás mellett. Használja ezt mezőt bárhol ahol kisméretű " +"képet igényel." #. module: hr #: field:hr.employee,birthday:0 @@ -307,12 +317,12 @@ msgstr "Születési idő" #. module: hr #: help:hr.job,no_of_recruitment:0 msgid "Number of new employees you expect to recruit." -msgstr "" +msgstr "A felvenni kívánt alkalmazottak száma" #. module: hr #: model:ir.actions.client,name:hr.action_client_hr_menu msgid "Open HR Menu" -msgstr "" +msgstr "Munkaügy HR menü megnyitása" #. module: hr #: help:hr.job,message_summary:0 @@ -320,6 +330,8 @@ msgid "" "Holds the Chatter summary (number of messages, ...). This summary is " "directly in html format in order to be inserted in kanban views." msgstr "" +"A chettelés összegzést megállítja (üzenetek száma,...). Ez az összegzés " +"direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe." #. module: hr #: help:hr.config.settings,module_account_analytic_analysis:0 @@ -327,6 +339,8 @@ msgid "" "This installs the module account_analytic_analysis, which will install sales " "management too." msgstr "" +"Ez az account_analytic_analysis modult telepíti, amely az értékesítés " +"kezelést is magában foglalja." #. module: hr #: view:board.board:0 @@ -343,7 +357,7 @@ msgstr "Munka" #. module: hr #: field:hr.job,no_of_employee:0 msgid "Current Number of Employees" -msgstr "" +msgstr "Jelenlegi alkalmazottak száma" #. module: hr #: field:hr.department,member_ids:0 diff --git a/addons/knowledge/i18n/mn.po b/addons/knowledge/i18n/mn.po index 8f06a0378d0..223fbbd71cc 100644 --- a/addons/knowledge/i18n/mn.po +++ b/addons/knowledge/i18n/mn.po @@ -8,24 +8,24 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2010-12-19 23:48+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2013-02-15 10:59+0000\n" +"Last-Translator: erdenebold \n" "Language-Team: Mongolian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-12-22 05:59+0000\n" -"X-Generator: Launchpad (build 16378)\n" +"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: knowledge #: view:knowledge.config.settings:0 msgid "Documents" -msgstr "" +msgstr "Баримтууд" #. module: knowledge #: model:ir.model,name:knowledge.model_knowledge_config_settings msgid "knowledge.config.settings" -msgstr "" +msgstr "knowledge.config.settings" #. module: knowledge #: help:knowledge.config.settings,module_document_webdav:0 @@ -33,11 +33,13 @@ msgid "" "Access your documents in OpenERP through WebDAV.\n" " This installs the module document_webdav." msgstr "" +"OpenERP бичиг баримтууд руу WebDAV-р хандана.\n" +" Энэ нь document_webdav модулийг суулгана." #. module: knowledge #: help:knowledge.config.settings,module_document_page:0 msgid "This installs the module document_page." -msgstr "" +msgstr "Энэ нь мdocument_page модулийг суулгана." #. module: knowledge #: model:ir.ui.menu,name:knowledge.menu_document2 @@ -48,12 +50,12 @@ msgstr "Хамтарсан агуулга" #: model:ir.actions.act_window,name:knowledge.action_knowledge_configuration #: view:knowledge.config.settings:0 msgid "Configure Knowledge" -msgstr "" +msgstr "Баримтын Тохиргоо" #. module: knowledge #: view:knowledge.config.settings:0 msgid "Knowledge and Documents Management" -msgstr "" +msgstr "Бичиг Баримт, Мэдлэгийн менежмент" #. module: knowledge #: help:knowledge.config.settings,module_document:0 @@ -67,7 +69,7 @@ msgstr "" #. module: knowledge #: field:knowledge.config.settings,module_document_page:0 msgid "Create static web pages" -msgstr "" +msgstr "Статик веб хуудас үүсгэх." #. module: knowledge #: field:knowledge.config.settings,module_document_ftp:0 @@ -77,17 +79,17 @@ msgstr "" #. module: knowledge #: field:knowledge.config.settings,module_document:0 msgid "Manage documents" -msgstr "" +msgstr "Бичиг баримтуудыг менежмент хийх" #. module: knowledge #: view:knowledge.config.settings:0 msgid "Cancel" -msgstr "" +msgstr "Цуцлах" #. module: knowledge #: view:knowledge.config.settings:0 msgid "Apply" -msgstr "" +msgstr "Ашиглах" #. module: knowledge #: model:ir.ui.menu,name:knowledge.menu_document_configuration @@ -100,11 +102,13 @@ msgid "" "Access your documents in OpenERP through an FTP interface.\n" " This installs the module document_ftp." msgstr "" +"OpenERP бичиг баримтууд руу FTP интерфейсээр хандана.\n" +"Энэ нь document_ftp модулийг суулгана." #. module: knowledge #: view:knowledge.config.settings:0 msgid "or" -msgstr "" +msgstr "эсвэл" #. module: knowledge #: field:knowledge.config.settings,module_document_webdav:0 diff --git a/addons/marketing/i18n/hu.po b/addons/marketing/i18n/hu.po index cc8760c35a6..d30ea159220 100644 --- a/addons/marketing/i18n/hu.po +++ b/addons/marketing/i18n/hu.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2013-02-14 16:51+0000\n" +"PO-Revision-Date: 2013-02-15 16:10+0000\n" "Last-Translator: krnkris \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: 2013-02-15 04:38+0000\n" +"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n" "X-Generator: Launchpad (build 16491)\n" #. module: marketing @@ -28,6 +28,9 @@ msgid "" "Campaigns.\n" " This installs the module marketing_campaign_crm_demo." msgstr "" +"Demó adatok telepítése mint érdeklődések, kampányok és szakaszok a Marketing " +"kampányokhoz.\n" +" Ez a marketing_campaign_crm_demo modult telepíti.." #. module: marketing #: model:ir.actions.act_window,name:marketing.action_marketing_configuration @@ -94,6 +97,10 @@ msgid "" "CRM leads.\n" " This installs the module marketing_campaign." msgstr "" +"Marketing kampányokon keresztüli érdeklődés automatizálást biztosít.\n" +" Kampányt meg lehet határozni valójában bármely forrásból, " +"nem csak a CMR érdeklődésekből.\n" +" Ez a marketing_campaign modult telepíti." #. module: marketing #: help:marketing.config.settings,module_crm_profiling:0 diff --git a/addons/marketing_campaign/i18n/hu.po b/addons/marketing_campaign/i18n/hu.po index 460d35dd20e..7ccfe78d3ee 100644 --- a/addons/marketing_campaign/i18n/hu.po +++ b/addons/marketing_campaign/i18n/hu.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: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2011-02-04 14:42+0000\n" -"Last-Translator: Krisztian Eyssen \n" +"PO-Revision-Date: 2013-02-15 12:34+0000\n" +"Last-Translator: krnkris \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-12-22 06:01+0000\n" -"X-Generator: Launchpad (build 16378)\n" +"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" #. module: marketing_campaign #: view:marketing.campaign:0 @@ -31,16 +31,18 @@ msgstr "Előző tevékenység" #, python-format msgid "The current step for this item has no email or report to preview." msgstr "" +"Ennek a tételnek az aktuális lépéséhez nincs előnézeti e-mail vagy jelentés." #. module: marketing_campaign #: constraint:marketing.campaign.transition:0 msgid "The To/From Activity of transition must be of the same Campaign " msgstr "" +"A tól/hoz átvezetési tevékenységnek ugyanahhoz a kampányhoz kell tartoznia. " #. module: marketing_campaign #: selection:marketing.campaign.transition,trigger:0 msgid "Time" -msgstr "" +msgstr "Idő" #. module: marketing_campaign #: selection:marketing.campaign.activity,type:0 @@ -62,16 +64,19 @@ msgid "" "reached this point has generated a certain revenue. You can get revenue " "statistics in the Reporting section" msgstr "" +"Állítson be elvárt jövedelmet, ha figyelembe akarja venni amikor az egyes " +"kampány termékek elérik ezt a szintet akkor azok bevételt generálnak. El " +"tudja érni a bevétel statisztikát a Jelentések részen." #. module: marketing_campaign #: field:marketing.campaign.transition,trigger:0 msgid "Trigger" -msgstr "" +msgstr "Indítás" #. module: marketing_campaign #: view:marketing.campaign:0 msgid "Follow-Up" -msgstr "" +msgstr "Fizetési emlékeztető" #. module: marketing_campaign #: field:campaign.analysis,count:0 @@ -89,7 +94,7 @@ msgstr "Kampányszerkesztő" #: view:marketing.campaign.segment:0 #: selection:marketing.campaign.segment,state:0 msgid "Running" -msgstr "" +msgstr "Folyamatban lévő" #. module: marketing_campaign #: model:email.template,body_html:marketing_campaign.email_template_3 @@ -97,6 +102,7 @@ msgid "" "Hi, we are delighted to let you know that you have entered the select circle " "of our Gold Partners" msgstr "" +"Helló, mi örömmel tudatjuk, hogy bekerül az arany kiválasztott tagok körébe" #. module: marketing_campaign #: selection:campaign.analysis,month:0 @@ -112,6 +118,7 @@ msgstr "Tárgy" #: view:marketing.campaign.segment:0 msgid "Sync mode: only records created after last sync" msgstr "" +"Szinkronizációs mód: csak a legutóbbi szinkronizlás után létrehozott rekordok" #. module: marketing_campaign #: help:marketing.campaign.activity,condition:0 @@ -125,6 +132,15 @@ msgid "" " - transitions: list of campaign transitions outgoing from this activity\n" "...- re: Python regular expression module" msgstr "" +"Python kifejezés annak eldöntésére, hogy a tevékenység végrehajtható, egyéb " +"esetben törölve vagy visszavonva lesz. A kifejezés a használhatja a " +"következő [böngészhető] változókat:\n" +" - tevékenység: a vállalat tevékenysége\n" +" - feladatelemek: a kampány feladatelem\n" +" - forrás: ezt a kampányt képviselő forrás termék\n" +" - átmeneti időszakok: kampány átmeneti időszak listák amik ebből a " +"tevékenységből származnak\n" +"...- re: Python általános kifejező modul" #. module: marketing_campaign #: view:marketing.campaign:0 @@ -145,11 +161,13 @@ msgid "" "The campaign cannot be started. It does not have any starting activity. " "Modify campaign's activities to mark one as the starting point." msgstr "" +"A kampány nem indítható el. Nincs semmilyen elindítható tevékenysége. " +"Módosítsa a kampány tevékenységet, legyen egy induló pontja." #. module: marketing_campaign #: help:marketing.campaign.activity,email_template_id:0 msgid "The email to send when this activity is activated" -msgstr "" +msgstr "A küldendő email a tevékenység aktiválása után" #. module: marketing_campaign #: view:marketing.campaign.segment:0 @@ -176,12 +194,12 @@ msgstr "Visszaállítás" #. module: marketing_campaign #: help:marketing.campaign,object_id:0 msgid "Choose the resource on which you want this campaign to be run" -msgstr "" +msgstr "Válasszon forrást amelyen a kampányt futtatni szeretné" #. module: marketing_campaign #: model:ir.actions.client,name:marketing_campaign.action_client_marketing_menu msgid "Open Marketing Menu" -msgstr "" +msgstr "Merketing menü megnyitása" #. module: marketing_campaign #: field:marketing.campaign.segment,sync_last_date:0 @@ -199,6 +217,8 @@ msgid "" "Date on which this segment was synchronized last time (automatically or " "manually)" msgstr "" +"Dátum amelyen a szakasz utoljára szinkronizálva lett (automatikusan vagy " +"kézzel)" #. module: marketing_campaign #: selection:campaign.analysis,state:0 @@ -225,16 +245,25 @@ msgid "" "Normal - the campaign runs normally and automatically sends all emails and " "reports (be very careful with this mode, you're live!)" msgstr "" +"Teszt - Ez közvetlenül, automatikusan létrehozza és futtatja az összes " +"tevékenységet (anélkül, hogy az átmenetek késésére várakozna) de nem küld e-" +"maileket és nem készít jelentéseket.\n" +"Valós idejű teszt - Ez közvetlenül létrehozza és futtatja tevékenységeket de " +"nem küld e-maileket és nem készít jelentéseket.\n" +"Kézi visszaigazolással - a kampány normál futása, de a felhasználónak kézzel " +"kell érvényesítenie a feladatelemet.\n" +"Normál - a kampány normál futása és automatikus email küldések és jelentés " +"készítések (legyen nagyon óvatos ezzel a móddal, élőben tesz mindent!)" #. module: marketing_campaign #: help:marketing.campaign.segment,date_run:0 msgid "Initial start date of this segment." -msgstr "" +msgstr "Elsődleges indítási dátuma ennek a szakasznak." #. module: marketing_campaign #: view:res.partner:0 msgid "False" -msgstr "" +msgstr "Hamis" #. module: marketing_campaign #: view:campaign.analysis:0 @@ -251,7 +280,7 @@ msgstr "Kampány" #. module: marketing_campaign #: model:email.template,body_html:marketing_campaign.email_template_1 msgid "Hello, you will receive your welcome pack via email shortly." -msgstr "" +msgstr "Helló, nemsokára emailben megkapja az üdvözlő csomagot." #. module: marketing_campaign #: view:campaign.analysis:0 @@ -266,7 +295,7 @@ msgstr "Szakasz" #: code:addons/marketing_campaign/marketing_campaign.py:214 #, python-format msgid "You cannot duplicate a campaign, Not supported yet." -msgstr "" +msgstr "Nem sokszorozhat kampányt, még nem támogatott." #. module: marketing_campaign #: help:marketing.campaign.activity,type:0 @@ -279,11 +308,20 @@ msgid "" "of the resource record\n" " " msgstr "" +"A művelet típusa melyet elvégez, amikor ehhez a tevékenységhez bevisz egy " +"tételt, úgy mint:\n" +" - Email: email küldése az előre definiált sablonból\n" +" - Jelentés: a erőforrás tételnél meghatározott jelentés nyomtatása és " +"elmentése egy konkrét könyvtárba\n" +" - Egyedi művelet: előre meghatározott művelet végrehajtása, pl.: " +"erőforrás rekord mező módosítása\n" +" " #. module: marketing_campaign #: help:marketing.campaign.segment,date_next_sync:0 msgid "Next time the synchronization job is scheduled to run automatically" msgstr "" +"Következő időpont a munka szinkronizálására amikor az automatikusan futni fog" #. module: marketing_campaign #: selection:marketing.campaign.transition,interval_type:0 @@ -301,7 +339,7 @@ msgstr "Partner" #. module: marketing_campaign #: model:ir.filters,name:marketing_campaign.filter0 msgid "Partners" -msgstr "" +msgstr "Partnerek" #. module: marketing_campaign #: view:campaign.analysis:0 @@ -312,7 +350,7 @@ msgstr "Marketing jelentések" #: selection:marketing.campaign,state:0 #: selection:marketing.campaign.segment,state:0 msgid "New" -msgstr "" +msgstr "Új" #. module: marketing_campaign #: sql_constraint:marketing.campaign.transition:0 @@ -322,7 +360,7 @@ msgstr "Az intervallumnak pozitívnak vagy 0-nak kell lennie" #. module: marketing_campaign #: selection:marketing.campaign.activity,type:0 msgid "Email" -msgstr "" +msgstr "E-mail" #. module: marketing_campaign #: field:marketing.campaign,name:0 @@ -335,7 +373,7 @@ msgstr "Név" #. module: marketing_campaign #: field:marketing.campaign.workitem,res_name:0 msgid "Resource Name" -msgstr "" +msgstr "Erőforrás neve" #. module: marketing_campaign #: field:marketing.campaign.segment,sync_mode:0 @@ -346,7 +384,7 @@ msgstr "Szinkronizálási mód" #: view:marketing.campaign:0 #: view:marketing.campaign.segment:0 msgid "Run" -msgstr "" +msgstr "Futtatás" #. module: marketing_campaign #: view:marketing.campaign.activity:0 @@ -357,12 +395,12 @@ msgstr "Előző tevékenységek" #. module: marketing_campaign #: model:email.template,subject:marketing_campaign.email_template_2 msgid "Congratulations! You are now a Silver Partner!" -msgstr "" +msgstr "Gratulálok! Ön mostmár Ezüst partner!" #. module: marketing_campaign #: help:marketing.campaign.segment,date_done:0 msgid "Date this segment was last closed or cancelled." -msgstr "" +msgstr "Dátum amikor ez a szakasz utoljára le volt zárva vagy visszavonva." #. module: marketing_campaign #: view:marketing.campaign.workitem:0 @@ -417,6 +455,9 @@ msgid "" "reached this point has entailed a certain cost. You can get cost statistics " "in the Reporting section" msgstr "" +"Változó költség beállítása ha úgy dönt, hogy mindegyik kampány tétel amikor " +"eléri ezt a szintet akkor maga után von egy bizonyos költséget. Megkaphatja " +"a költség statisztikát a Jelentés résznél" #. module: marketing_campaign #: selection:marketing.campaign.transition,interval_type:0 @@ -434,6 +475,9 @@ msgid "" "By activating this option, workitems that aren't executed because the " "condition is not met are marked as cancelled instead of being deleted." msgstr "" +"Ennek a lehetőségnek a aktiválásával, feladatelemek melyek a körülmények " +"miatt nem végrehajthatóak azok visszavontak ahelyett, hogy törölte volna " +"azokat." #. module: marketing_campaign #: view:campaign.analysis:0 @@ -444,7 +488,7 @@ msgstr "Kivételek" #: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_followup #: field:res.partner,workitem_ids:0 msgid "Workitems" -msgstr "" +msgstr "Feladatelemek" #. module: marketing_campaign #: field:marketing.campaign,fixed_cost:0 @@ -477,6 +521,23 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Kattintson marketing kampány létrehozásához.\n" +"

\n" +" OpenERP marketing kampánya lehetővé teszi a kiállításaihoz\n" +" az automatikus kommunikációt. Szakaszokat tud meghatározni \n" +" (körülmények megadásával) az érdeklődőkhöz és a partnerekhez \n" +" a kampány elvégzéséhez.\n" +"

\n" +" Egy kampánynak több tevékenysége lehet mint: email küldés, " +"levél\n" +" nyomtatás, csoporthoz fűzés, stb. ezek a tevékenységek " +"kapcsolhatóak\n" +" egy sajátos helyzethez; kapcsolati űrlap, 10 nappal az első " +"kapcsolat\n" +" felvételtől, ha az érdeklődés még nincs lezárva, stb.\n" +"

\n" +" " #. module: marketing_campaign #: field:marketing.campaign.transition,interval_nbr:0 @@ -507,6 +568,10 @@ msgid "" "for reporting purposes, via the Campaign Analysis or Campaign Follow-up " "views." msgstr "" +"A létrehozott feladatelemek a rekordhoz tartozó partnerhez lesznek csatlova. " +"Ha a rekord a partnerrel megegyezik akkor a mezőt hagyja üresen. Ez hasznos " +"jelentés céljából, a Kampány analízis elemzéshez vagy a Kampány nyomkövetés " +"nézetben." #. module: marketing_campaign #: view:campaign.analysis:0 @@ -535,6 +600,7 @@ msgstr "Tesztmód" #: selection:marketing.campaign.segment,sync_mode:0 msgid "Only records modified after last sync (no duplicates)" msgstr "" +"Csak az utolsó szinkronizálás óta módosult rekordok (nincs többszörözés)" #. module: marketing_campaign #: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml @@ -549,7 +615,7 @@ msgstr "Kampánystatisztikák" #. module: marketing_campaign #: help:marketing.campaign.activity,server_action_id:0 msgid "The action to perform when this activity is activated" -msgstr "" +msgstr "Az elvégzett művelet miután tevékenység aktiválásra került" #. module: marketing_campaign #: field:marketing.campaign,partner_field_id:0 @@ -574,6 +640,13 @@ msgid "" "records which have the same value for the unique field as other records that " "already entered the campaign." msgstr "" +"Még egy kritérium meghatározásának hozzáadása a szűrőhöz, amikor egy új " +"rekordot választ a kampányba való beillesztéshez \"Nincs többszörözés\" " +"megakadályozva olyan rekord választását melyek már előzőleg be lettek " +"illesztve a kampányba. Ha a kampányban van \"Egyedi mező\" beállítva, " +"\"nincs többszörözés\" akkor is megakadályozza olyan rekord kiválasztását, " +"melynek ugyanaz az értéke az egyedi mezőre mint a másik rekordnak, mely már " +"be lett írva a kampányba." #. module: marketing_campaign #: selection:marketing.campaign,mode:0 @@ -599,7 +672,7 @@ msgstr "Tervezet" #. module: marketing_campaign #: view:marketing.campaign.workitem:0 msgid "Marketing Campaign Activity" -msgstr "" +msgstr "marketing kampány tevékenység" #. module: marketing_campaign #: view:marketing.campaign.workitem:0 @@ -616,7 +689,7 @@ msgstr "Előnézet" #: view:marketing.campaign.workitem:0 #: field:marketing.campaign.workitem,state:0 msgid "Status" -msgstr "" +msgstr "Állapot" #. module: marketing_campaign #: selection:campaign.analysis,month:0 @@ -639,6 +712,9 @@ msgid "" "An activity with a signal can be called programmatically. Be careful, the " "workitem is always created when a signal is sent" msgstr "" +"Egy tevékenység jeladóval ellátva úgy is nevezhető mint programozott " +"végrehajtó. Vigyázzon, a feladatelem mindig létre lesz hozva, ha a jelet " +"elküldik" #. module: marketing_campaign #: view:campaign.analysis:0 @@ -646,7 +722,7 @@ msgstr "" #: view:marketing.campaign.workitem:0 #: selection:marketing.campaign.workitem,state:0 msgid "To Do" -msgstr "" +msgstr "Teendő" #. module: marketing_campaign #: selection:campaign.analysis,month:0 @@ -656,17 +732,17 @@ msgstr "Június" #. module: marketing_campaign #: model:ir.model,name:marketing_campaign.model_email_template msgid "Email Templates" -msgstr "" +msgstr "E-mail sablonok" #. module: marketing_campaign #: view:marketing.campaign.segment:0 msgid "Sync mode: all records" -msgstr "" +msgstr "Szinkronizációs mód: minden rekord" #. module: marketing_campaign #: selection:marketing.campaign.segment,sync_mode:0 msgid "All records (no duplicates)" -msgstr "" +msgstr "Minden rekord (nincs sokszorozás)" #. module: marketing_campaign #: view:marketing.campaign.segment:0 @@ -696,7 +772,7 @@ msgstr "Jelentés generálódik, amikor ez a tevékenység aktiválódott" #. module: marketing_campaign #: field:marketing.campaign,unique_field_id:0 msgid "Unique Field" -msgstr "" +msgstr "Egyedi mező" #. module: marketing_campaign #: selection:campaign.analysis,state:0 @@ -729,7 +805,7 @@ msgstr "Kivitelezés dátuma" #. module: marketing_campaign #: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem msgid "Campaign Workitem" -msgstr "" +msgstr "Kampány feladatelem" #. module: marketing_campaign #: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity @@ -739,7 +815,7 @@ msgstr "Kampánytevékenység" #. module: marketing_campaign #: help:marketing.campaign.activity,report_directory_id:0 msgid "This folder is used to store the generated reports" -msgstr "" +msgstr "Ez a könyvtár a létrehozott jelentések tárolására szolgál" #. module: marketing_campaign #: code:addons/marketing_campaign/marketing_campaign.py:136 @@ -781,12 +857,12 @@ msgstr "Folyamat" #: selection:marketing.campaign.transition,trigger:0 #, python-format msgid "Cosmetic" -msgstr "" +msgstr "Kozmetika" #. module: marketing_campaign #: help:marketing.campaign.transition,trigger:0 msgid "How is the destination workitem triggered" -msgstr "" +msgstr "Ahogy a végső feladatelem kapcsolva lesz" #. module: marketing_campaign #: view:campaign.analysis:0 @@ -809,7 +885,7 @@ msgstr "Nem támogatott művelet" #: view:marketing.campaign.segment:0 #: view:marketing.campaign.workitem:0 msgid "Cancel" -msgstr "" +msgstr "Visszavonás" #. module: marketing_campaign #: view:marketing.campaign.segment:0 @@ -820,6 +896,7 @@ msgstr "Zárás" #: constraint:marketing.campaign.segment:0 msgid "Model of filter must be same as resource model of Campaign " msgstr "" +"A szűrő modelljének ugyanannak kell lennie mint a kampány erőforrás modellje " #. module: marketing_campaign #: view:marketing.campaign.segment:0 @@ -835,12 +912,12 @@ msgstr "Erőforrás ID" #. module: marketing_campaign #: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition msgid "Campaign Transition" -msgstr "" +msgstr "Kampány átmenet" #. module: marketing_campaign #: view:marketing.campaign.segment:0 msgid "Marketing Campaign Segment" -msgstr "" +msgstr "Marketing kampány szakasz" #. module: marketing_campaign #: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened @@ -854,7 +931,7 @@ msgstr "Szegmensek" #. module: marketing_campaign #: field:marketing.campaign.activity,keep_if_condition_not_met:0 msgid "Don't Delete Workitems" -msgstr "" +msgstr "Ne törölje a feladatelemeket" #. module: marketing_campaign #: view:marketing.campaign.activity:0 @@ -876,7 +953,7 @@ msgstr "Tevékenységek" #. module: marketing_campaign #: selection:marketing.campaign,mode:0 msgid "With Manual Confirmation" -msgstr "" +msgstr "Kézi visszaigazolással" #. module: marketing_campaign #: selection:campaign.analysis,month:0 @@ -891,7 +968,7 @@ msgstr "Típus" #. module: marketing_campaign #: model:email.template,subject:marketing_campaign.email_template_3 msgid "Congratulations! You are now one of our Gold Partners!" -msgstr "" +msgstr "Gratulálunk! Most már Ön is egy Arany tagsággal rendelkezik!" #. module: marketing_campaign #: help:marketing.campaign,unique_field_id:0 @@ -910,7 +987,7 @@ msgstr "" #: code:addons/marketing_campaign/marketing_campaign.py:529 #, python-format msgid "After %(interval_nbr)d %(interval_type)s" -msgstr "" +msgstr "Után %(interval_nbr)d %(interval_type)s" #. module: marketing_campaign #: model:ir.model,name:marketing_campaign.model_marketing_campaign @@ -937,7 +1014,7 @@ msgstr "Február" #: view:marketing.campaign.workitem:0 #: field:marketing.campaign.workitem,object_id:0 msgid "Resource" -msgstr "" +msgstr "Erőforrás" #. module: marketing_campaign #: help:marketing.campaign,fixed_cost:0 @@ -946,11 +1023,15 @@ msgid "" "revenue on each campaign activity. Cost and Revenue statistics are included " "in Campaign Reporting." msgstr "" +"fix költség a kampány futtatásához. Lehetősége van megadni változó költséget " +"is és bevételt mindegyik kampány tevékenységhez. Költség és bevétel " +"statisztikák a Kampány jelentéseknél." #. module: marketing_campaign #: view:marketing.campaign.segment:0 msgid "Sync mode: only records updated after last sync" msgstr "" +"Szinkronizálási mód: csak az utolsó szinkronizálás óta frissített rekordok" #. module: marketing_campaign #: code:addons/marketing_campaign/marketing_campaign.py:793 @@ -961,12 +1042,12 @@ msgstr "E-mail előnézet" #. module: marketing_campaign #: field:marketing.campaign.activity,signal:0 msgid "Signal" -msgstr "" +msgstr "Jel" #. module: marketing_campaign #: help:marketing.campaign.workitem,date:0 msgid "If date is not set, this workitem has to be run manually" -msgstr "" +msgstr "Ha nincs beállítva a dátum, ezt a feladatelemet kézzel kell futtatni" #. module: marketing_campaign #: selection:campaign.analysis,month:0 @@ -978,6 +1059,7 @@ msgstr "Április" #, python-format msgid "The campaign cannot be marked as done before all segments are closed." msgstr "" +"Minden szakasz lezárása előtt a kampányt nem lehet elvégzettnek jelölni." #. module: marketing_campaign #: view:marketing.campaign:0 @@ -1006,7 +1088,7 @@ msgstr "" #: code:addons/marketing_campaign/marketing_campaign.py:136 #, python-format msgid "The campaign cannot be started. There are no activities in it." -msgstr "" +msgstr "a kampány nem indítható el. Nincs tevékenység benne." #. module: marketing_campaign #: field:marketing.campaign.segment,date_next_sync:0 @@ -1017,7 +1099,7 @@ msgstr "Következő szinkronizáció" #: model:email.template,body_html:marketing_campaign.email_template_2 msgid "" "Hi, we are delighted to welcome you among our Silver Partners as of today!" -msgstr "" +msgstr "Helló, örömmel köszöntjük az Ezüst Partnereink között a mai naptól!" #. module: marketing_campaign #: field:marketing.campaign.segment,ir_filter_id:0 @@ -1032,7 +1114,7 @@ msgstr "Összes" #. module: marketing_campaign #: selection:marketing.campaign.segment,sync_mode:0 msgid "Only records created after last sync" -msgstr "" +msgstr "Csak az utolsó szinkronizáció után létrehozott rekordok" #. module: marketing_campaign #: field:marketing.campaign.activity,variable_cost:0 @@ -1042,7 +1124,7 @@ msgstr "Változó költség" #. module: marketing_campaign #: model:email.template,subject:marketing_campaign.email_template_1 msgid "Welcome to the OpenERP Partner Channel!" -msgstr "" +msgstr "Köszöntjük az OpenERP Partnereknél!" #. module: marketing_campaign #: view:campaign.analysis:0 diff --git a/addons/portal_crm/i18n/ro.po b/addons/portal_crm/i18n/ro.po new file mode 100644 index 00000000000..5fa2bfd0036 --- /dev/null +++ b/addons/portal_crm/i18n/ro.po @@ -0,0 +1,568 @@ +# Romanian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-02-17 16:28+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-02-18 04:49+0000\n" +"X-Generator: Launchpad (build 16491)\n" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,type:0 +msgid "Lead" +msgstr "Pista" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,title:0 +msgid "Title" +msgstr "Titlu" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,probability:0 +msgid "Success Rate (%)" +msgstr "Rata de succes (%)" + +#. module: portal_crm +#: view:portal_crm.crm_contact_us:0 +msgid "Contact us" +msgstr "Contactati-ne" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,date_action:0 +msgid "Next Action Date" +msgstr "Data Actiunii Urmatoare" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,fax:0 +msgid "Fax" +msgstr "Fax" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,zip:0 +msgid "Zip" +msgstr "Cod postal" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,message_unread:0 +msgid "Unread Messages" +msgstr "Mesaje Necitite" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,company_id:0 +msgid "Company" +msgstr "Companie" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,day_open:0 +msgid "Days to Open" +msgstr "Zile pana la deschidere" + +#. module: portal_crm +#: view:portal_crm.crm_contact_us:0 +msgid "Thank you for your interest, we'll respond to your request shortly." +msgstr "" +"va multumim pentru interes, vom da raspuns solicitarii dumneavoastra in " +"scurt timp." + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,priority:0 +msgid "Highest" +msgstr "Cel mai ridicat (cea mai ridicata)" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,mobile:0 +msgid "Mobile" +msgstr "Mobil" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,description:0 +msgid "Notes" +msgstr "Note" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,message_ids:0 +msgid "Messages" +msgstr "Mesaje" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,color:0 +msgid "Color Index" +msgstr "Index de Culori" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,partner_latitude:0 +msgid "Geo Latitude" +msgstr "Latitudine Geo" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,partner_name:0 +msgid "Customer Name" +msgstr "Numele clientului" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,state:0 +msgid "Cancelled" +msgstr "Anulat(a)" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "Daca este selectat, mesajele noi necesita atentia dumneavoastra." + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,channel_id:0 +msgid "Communication channel (mail, direct, phone, ...)" +msgstr "Canal de comunicare (e-mail, direct, telefon, ...)" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,type_id:0 +msgid "Campaign" +msgstr "Campanie" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,ref:0 +msgid "Reference" +msgstr "Referinta" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,date_action_next:0 +#: field:portal_crm.crm_contact_us,title_action:0 +msgid "Next Action" +msgstr "Urmatoarea actiune" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "" +"Contine rezumatul Chatter (numar de mesaje, ...). Acest rezumat este direct " +"in format HTML, cu scopul de a se introduce in vizualizari kanban." + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,partner_id:0 +msgid "Partner" +msgstr "Partener" + +#. module: portal_crm +#: model:ir.actions.act_window,name:portal_crm.action_contact_us +msgid "Contact Us" +msgstr "Contactati-ne" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,name:0 +msgid "Subject" +msgstr "Subiect" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,opt_out:0 +msgid "Opt-Out" +msgstr "Nu participati" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,priority:0 +msgid "Priority" +msgstr "Prioritate" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,state_id:0 +msgid "State" +msgstr "Stare" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,message_follower_ids:0 +msgid "Followers" +msgstr "Urmari" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,partner_id:0 +msgid "Linked partner (optional). Usually created when converting the lead." +msgstr "" +"Partener asociat (optional). Creat de obicei atunci cand pista este " +"transformata." + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,payment_mode:0 +msgid "Payment Mode" +msgstr "Modalitatea de plata" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,state:0 +msgid "New" +msgstr "Nou(a)" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,type:0 +msgid "Type" +msgstr "Tip" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,email_from:0 +msgid "Email" +msgstr "E-mail" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,channel_id:0 +msgid "Channel" +msgstr "Canal" + +#. module: portal_crm +#: view:portal_crm.crm_contact_us:0 +msgid "Name" +msgstr "Nume" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,priority:0 +msgid "Lowest" +msgstr "Cel mai scazut (cea mai scazuta)" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,create_date:0 +msgid "Creation Date" +msgstr "Data Crearii" + +#. module: portal_crm +#: view:portal_crm.crm_contact_us:0 +msgid "Close" +msgstr "Inchide" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,state:0 +msgid "Pending" +msgstr "In asteptare" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,type:0 +msgid "Type is used to separate Leads and Opportunities" +msgstr "Tip folosit pentru a separa Clientii potentiali si Oportunitatile" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,categ_ids:0 +msgid "Categories" +msgstr "Categorii" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,stage_id:0 +msgid "Stage" +msgstr "Etapa" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,user_login:0 +msgid "User Login" +msgstr "Autentificare Utilizator" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,opt_out:0 +msgid "" +"If opt-out is checked, this contact has refused to receive emails or " +"unsubscribed to a campaign." +msgstr "" +"Daca este bifata optiunea de neparticipare, acest contact a refuzat sa " +"primeasca e-mailuri sau s-a dezabonat de la o campanie." + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,contact_name:0 +msgid "Contact Name" +msgstr "Numele Contactului" + +#. module: portal_crm +#: model:ir.ui.menu,name:portal_crm.portal_company_contact +msgid "Contact" +msgstr "Contact" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,partner_address_email:0 +msgid "Partner Contact Email" +msgstr "E-mail Contact Partener" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,planned_revenue:0 +msgid "Expected Revenue" +msgstr "Venituri Estimate" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,task_ids:0 +msgid "Tasks" +msgstr "Sarcini" + +#. module: portal_crm +#: view:portal_crm.crm_contact_us:0 +msgid "Contact form" +msgstr "Formular de contact" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,company_currency:0 +msgid "Currency" +msgstr "Moneda" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,write_date:0 +msgid "Update Date" +msgstr "Data Actualizarii" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,date_deadline:0 +msgid "Expected Closing" +msgstr "Inchidere estimata" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,ref2:0 +msgid "Reference 2" +msgstr "Referinta 2" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,user_email:0 +msgid "User Email" +msgstr "E-mail utilizator" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,date_open:0 +msgid "Opened" +msgstr "Deschis(a)" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,state:0 +msgid "In Progress" +msgstr "In curs de desfasurare" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,partner_name:0 +msgid "" +"The name of the future partner company that will be created while converting " +"the lead into opportunity" +msgstr "" +"Numele viitorului partener al companiei care va fi creat in timpul " +"transformarii pistei in oportunitate" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,planned_cost:0 +msgid "Planned Costs" +msgstr "Costuri planificate" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,date_deadline:0 +msgid "Estimate of the date on which the opportunity will be won." +msgstr "Estimarea datei in care oportunitatea va fi castigata." + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,email_cc:0 +msgid "" +"These email addresses will be added to the CC field of all inbound and " +"outbound emails for this record before being sent. Separate multiple email " +"addresses with a comma" +msgstr "" +"Aceste adrese de email vor fi adaugate in campul CC al tuturor email-urilor " +"primite si trimise pentru aceasta inregistrare inainte de a fi trimise. " +"Despartiti adresele de mail multiple cu o virgula" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,priority:0 +msgid "Low" +msgstr "Scazut(a)" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,date_closed:0 +#: selection:portal_crm.crm_contact_us,state:0 +msgid "Closed" +msgstr "Inchis(a)" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,date_assign:0 +msgid "Assignation Date" +msgstr "Data alocarii" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,state:0 +msgid "Status" +msgstr "Status" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,priority:0 +msgid "Normal" +msgstr "Normal" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,email_cc:0 +msgid "Global CC" +msgstr "CC global" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,street2:0 +msgid "Street2" +msgstr "Strada2" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,id:0 +msgid "ID" +msgstr "ID" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,phone:0 +msgid "Phone" +msgstr "Telefon" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,message_is_follower:0 +msgid "Is a Follower" +msgstr "Este o persoana interesata" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,active:0 +msgid "Active" +msgstr "Activ(a)" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,user_id:0 +msgid "Salesperson" +msgstr "Agent de vanzari" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,day_close:0 +msgid "Days to Close" +msgstr "Zile pana la inchidere" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,company_ids:0 +msgid "Companies" +msgstr "Companii" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,message_summary:0 +msgid "Summary" +msgstr "Continut" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,section_id:0 +msgid "" +"When sending mails, the default email address is taken from the sales team." +msgstr "" +"Atunci cand trimiteti email-uri, adresa implicita este luata de la echipa de " +"vanzari." + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,partner_address_name:0 +msgid "Partner Contact Name" +msgstr "Numele de Contact al Partenerului" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,partner_longitude:0 +msgid "Geo Longitude" +msgstr "Geo Longitudine" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,date_assign:0 +msgid "Last date this case was forwarded/assigned to a partner" +msgstr "" +"Ultima data cand acest caz a fost redirectionat/atribuit unui partener" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,email_from:0 +msgid "Email address of the contact" +msgstr "Adresa de email a contactului" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,city:0 +msgid "City" +msgstr "Oras" + +#. module: portal_crm +#: view:portal_crm.crm_contact_us:0 +msgid "Submit" +msgstr "Trimite" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,function:0 +msgid "Function" +msgstr "Functie" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,referred:0 +msgid "Referred By" +msgstr "Recomandat de" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,partner_assigned_id:0 +msgid "Assigned Partner" +msgstr "Partenerul Alocat" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,type:0 +msgid "Opportunity" +msgstr "Oportunitate" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,partner_assigned_id:0 +msgid "Partner this case has been forwarded/assigned to." +msgstr "Partenerul caruia i-a fost redirectionat/atribuit cazul." + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,country_id:0 +msgid "Country" +msgstr "Tara" + +#. module: portal_crm +#: view:portal_crm.crm_contact_us:0 +msgid "Thank you" +msgstr "Va multumim" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,state:0 +msgid "" +"The Status is set to 'Draft', when a case is created. If the case is in " +"progress the Status is set to 'Open'. When the case is over, the Status is " +"set to 'Done'. If the case needs to be reviewed then the Status is set to " +"'Pending'." +msgstr "" +"Starea este setata pe 'Ciorna' atunci cand este creat un caz. Atunci cand " +"cazul este in desfasurare, Starea este setata pe 'Deschis'. Cand cazul este " +"finalizat, Starea este setata pe 'Efectuat'. Cand cazul trebuie revazut, " +"atunci Starea este setata pe 'In asteptare'." + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,message_ids:0 +msgid "Messages and communication history" +msgstr "Istoric mesaje si conversatii" + +#. module: portal_crm +#: help:portal_crm.crm_contact_us,type_id:0 +msgid "" +"From which campaign (seminar, marketing campaign, mass mailing, ...) did " +"this contact come from?" +msgstr "" +"Din ce campanie (seminar, campanie de marketing, trimitere de e-mail-uri in " +"masa,...) provine acest contact?" + +#. module: portal_crm +#: selection:portal_crm.crm_contact_us,priority:0 +msgid "High" +msgstr "Ridicat(a)" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,section_id:0 +msgid "Sales Team" +msgstr "Echipa de vanzari" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,street:0 +msgid "Street" +msgstr "Strada" + +#. module: portal_crm +#: field:portal_crm.crm_contact_us,date_action_last:0 +msgid "Last Action" +msgstr "Ultima Actiune" + +#. module: portal_crm +#: model:ir.model,name:portal_crm.model_portal_crm_crm_contact_us +msgid "Contact form for the portal" +msgstr "Formular de contact pentru portal" diff --git a/addons/portal_sale/i18n/mn.po b/addons/portal_sale/i18n/mn.po new file mode 100644 index 00000000000..7306fd1e385 --- /dev/null +++ b/addons/portal_sale/i18n/mn.po @@ -0,0 +1,344 @@ +# Mongolian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:06+0000\n" +"PO-Revision-Date: 2013-02-18 08:59+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Mongolian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-02-19 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" + +#. module: portal_sale +#: model:ir.model,name:portal_sale.model_account_config_settings +msgid "account.config.settings" +msgstr "" + +#. module: portal_sale +#: model:ir.actions.act_window,help:portal_sale.portal_action_invoices +msgid "We haven't sent you any invoice." +msgstr "" + +#. module: portal_sale +#: model:email.template,report_name:portal_sale.email_template_edi_sale +msgid "" +"${(object.name or '').replace('/','_')}_${object.state == 'draft' and " +"'draft' or ''}" +msgstr "" + +#. module: portal_sale +#: model:res.groups,name:portal_sale.group_payment_options +msgid "View Online Payment Options" +msgstr "" + +#. module: portal_sale +#: field:account.config.settings,group_payment_options:0 +msgid "Show payment buttons to employees too" +msgstr "" + +#. module: portal_sale +#: model:email.template,subject:portal_sale.email_template_edi_sale +msgid "" +"${object.company_id.name} ${object.state in ('draft', 'sent') and " +"'Quotation' or 'Order'} (Ref ${object.name or 'n/a' })" +msgstr "" + +#. module: portal_sale +#: model:ir.actions.act_window,help:portal_sale.action_quotations_portal +msgid "We haven't sent you any quotation." +msgstr "" + +#. module: portal_sale +#: model:ir.ui.menu,name:portal_sale.portal_sales_orders +msgid "Sales Orders" +msgstr "Борлуулалтын захиалгууд" + +#. module: portal_sale +#: model:res.groups,comment:portal_sale.group_payment_options +msgid "" +"Members of this group see the online payment options\n" +"on Sale Orders and Customer Invoices. These options are meant for customers " +"who are accessing\n" +"their documents through the portal." +msgstr "" + +#. module: portal_sale +#: model:email.template,body_html:portal_sale.email_template_edi_sale +msgid "" +"\n" +"
\n" +"\n" +"

Hello ${object.partner_id.name},

\n" +" \n" +"

Here is your ${object.state in ('draft', 'sent') and 'quotation' or " +"'order confirmation'} from ${object.company_id.name}:

\n" +"\n" +"

\n" +"   REFERENCES
\n" +"   Order number: ${object.name}
\n" +"   Order total: ${object.amount_total} " +"${object.pricelist_id.currency_id.name}
\n" +"   Order date: ${object.date_order}
\n" +" % if object.origin:\n" +"   Order reference: ${object.origin}
\n" +" % endif\n" +" % if object.client_order_ref:\n" +"   Your reference: ${object.client_order_ref}
\n" +" % endif\n" +" % if object.user_id:\n" +"   Your contact: ${object.user_id.name}\n" +" % endif\n" +"

\n" +"\n" +" <% set signup_url = object.get_signup_url() %>\n" +" % if signup_url:\n" +"

\n" +" You can access this document and pay online via our Customer Portal:\n" +"

\n" +" View ${object.state in ('draft', 'sent') " +"and 'Quotation' or 'Order'}\n" +" % endif\n" +"\n" +" % if object.paypal_url:\n" +"
\n" +"

It is also possible to directly pay with Paypal:

\n" +" \n" +" \n" +" \n" +" % endif\n" +"\n" +"
\n" +"

If you have any question, do not hesitate to contact us.

\n" +"

Thank you for choosing ${object.company_id.name or 'us'}!

\n" +"
\n" +"
\n" +"
\n" +"

\n" +" ${object.company_id.name}

\n" +"
\n" +"
\n" +" \n" +" % if object.company_id.street:\n" +" ${object.company_id.street}
\n" +" % endif\n" +" % if object.company_id.street2:\n" +" ${object.company_id.street2}
\n" +" % endif\n" +" % if object.company_id.city or object.company_id.zip:\n" +" ${object.company_id.zip} ${object.company_id.city}
\n" +" % endif\n" +" % if object.company_id.country_id:\n" +" ${object.company_id.state_id and ('%s, ' % " +"object.company_id.state_id.name) or ''} ${object.company_id.country_id.name " +"or ''}
\n" +" % endif\n" +"
\n" +" % if object.company_id.phone:\n" +"
\n" +" Phone:  ${object.company_id.phone}\n" +"
\n" +" % endif\n" +" % if object.company_id.website:\n" +"
\n" +" Web : ${object.company_id.website}\n" +"
\n" +" % endif\n" +"

\n" +"
\n" +"
\n" +" " +msgstr "" + +#. module: portal_sale +#: model:email.template,report_name:portal_sale.email_template_edi_invoice +msgid "" +"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' " +"and 'draft' or ''}" +msgstr "" + +#. module: portal_sale +#: model:email.template,subject:portal_sale.email_template_edi_invoice +msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })" +msgstr "" + +#. module: portal_sale +#: model:ir.model,name:portal_sale.model_mail_mail +msgid "Outgoing Mails" +msgstr "Гарах мэйлүүд" + +#. module: portal_sale +#: model:ir.actions.act_window,name:portal_sale.action_quotations_portal +#: model:ir.ui.menu,name:portal_sale.portal_quotations +msgid "Quotations" +msgstr "Үнэ ханш" + +#. module: portal_sale +#: model:ir.model,name:portal_sale.model_sale_order +msgid "Sales Order" +msgstr "Борлуулалтын захиалга" + +#. module: portal_sale +#: field:account.invoice,portal_payment_options:0 +#: field:sale.order,portal_payment_options:0 +msgid "Portal Payment Options" +msgstr "Портал Төлбөрийг Тохируулга" + +#. module: portal_sale +#: help:account.config.settings,group_payment_options:0 +msgid "" +"Show online payment options on Sale Orders and Customer Invoices to " +"employees. If not checked, these options are only visible to portal users." +msgstr "" + +#. module: portal_sale +#: model:ir.actions.act_window,name:portal_sale.portal_action_invoices +#: model:ir.ui.menu,name:portal_sale.portal_invoices +msgid "Invoices" +msgstr "Нэхэмжлэлүүд" + +#. module: portal_sale +#: view:account.config.settings:0 +msgid "Configure payment acquiring methods" +msgstr "" + +#. module: portal_sale +#: model:email.template,body_html:portal_sale.email_template_edi_invoice +msgid "" +"\n" +"
\n" +"\n" +"

Hello ${object.partner_id.name},

\n" +"\n" +"

A new invoice is available for you:

\n" +" \n" +"

\n" +"   REFERENCES
\n" +"   Invoice number: ${object.number}
\n" +"   Invoice total: ${object.amount_total} " +"${object.currency_id.name}
\n" +"   Invoice date: ${object.date_invoice}
\n" +" % if object.origin:\n" +"   Order reference: ${object.origin}
\n" +" % endif\n" +" % if object.user_id:\n" +"   Your contact: ${object.user_id.name}\n" +" % endif\n" +"

\n" +"\n" +" <% set signup_url = object.get_signup_url() %>\n" +" % if signup_url:\n" +"

\n" +" You can access the invoice document and pay online via our Customer " +"Portal:\n" +"

\n" +" View Invoice\n" +" % endif\n" +" \n" +" % if object.paypal_url:\n" +"
\n" +"

It is also possible to directly pay with Paypal:

\n" +" \n" +" \n" +" \n" +" % endif\n" +" \n" +"
\n" +"

If you have any question, do not hesitate to contact us.

\n" +"

Thank you for choosing ${object.company_id.name or 'us'}!

\n" +"
\n" +"
\n" +"
\n" +"

\n" +" ${object.company_id.name}

\n" +"
\n" +"
\n" +" \n" +" % if object.company_id.street:\n" +" ${object.company_id.street}
\n" +" % endif\n" +" % if object.company_id.street2:\n" +" ${object.company_id.street2}
\n" +" % endif\n" +" % if object.company_id.city or object.company_id.zip:\n" +" ${object.company_id.zip} ${object.company_id.city}
\n" +" % endif\n" +" % if object.company_id.country_id:\n" +" ${object.company_id.state_id and ('%s, ' % " +"object.company_id.state_id.name) or ''} ${object.company_id.country_id.name " +"or ''}
\n" +" % endif\n" +"
\n" +" % if object.company_id.phone:\n" +"
\n" +" Phone:  ${object.company_id.phone}\n" +"
\n" +" % endif\n" +" % if object.company_id.website:\n" +"
\n" +" Web : ${object.company_id.website}\n" +"
\n" +" % endif\n" +"

\n" +"
\n" +"
\n" +" " +msgstr "" + +#. module: portal_sale +#: model:ir.actions.act_window,help:portal_sale.action_orders_portal +msgid "We haven't sent you any sales order." +msgstr "" + +#. module: portal_sale +#: model:ir.model,name:portal_sale.model_account_invoice +msgid "Invoice" +msgstr "Нэхэмжлэл" + +#. module: portal_sale +#: model:ir.actions.act_window,name:portal_sale.action_orders_portal +msgid "Sale Orders" +msgstr "Борлуулалтын захиалга" diff --git a/addons/report_webkit/i18n/mn.po b/addons/report_webkit/i18n/mn.po new file mode 100644 index 00000000000..dc73fc69f20 --- /dev/null +++ b/addons/report_webkit/i18n/mn.po @@ -0,0 +1,517 @@ +# Mongolian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:06+0000\n" +"PO-Revision-Date: 2013-02-18 09:23+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Mongolian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-02-19 04:57+0000\n" +"X-Generator: Launchpad (build 16491)\n" + +#. module: report_webkit +#: view:ir.actions.report.xml:0 +msgid "Webkit Template (used if Report File is not found)" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "Tabloid 29 279.4 x 431.8 mm" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "Ledger 28 431.8 x 279.4 mm" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:233 +#, python-format +msgid "No header defined for this Webkit report!" +msgstr "" + +#. module: report_webkit +#: help:ir.header_img,type:0 +msgid "Image type(png,gif,jpeg)" +msgstr "" + +#. module: report_webkit +#: help:ir.actions.report.xml,precise_mode:0 +msgid "" +"This mode allow more precise element " +" position as each object is printed on a separate HTML. " +" but memory and disk " +"usage is wider" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "Executive 4 7.5 x 10 inches, 190.5 x 254 mm" +msgstr "" + +#. module: report_webkit +#: field:ir.header_img,company_id:0 +#: field:ir.header_webkit,company_id:0 +msgid "Company" +msgstr "Компани" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:234 +#, python-format +msgid "Please set a header in company settings." +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "DLE 26 110 x 220 mm" +msgstr "DLE 26 110 x 200 mm" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B7 21 88 x 125 mm" +msgstr "" + +#. module: report_webkit +#: view:res.company:0 +msgid "Headers" +msgstr "Толгой хэсэг" + +#. module: report_webkit +#: help:ir.header_img,name:0 +msgid "Name of Image" +msgstr "" + +#. module: report_webkit +#: model:ir.actions.act_window,name:report_webkit.action_header_webkit +#: model:ir.ui.menu,name:report_webkit.menu_header_webkit +msgid "Webkit Headers/Footers" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "Legal 3 8.5 x 14 inches, 215.9 x 355.6 mm" +msgstr "" + +#. module: report_webkit +#: model:ir.model,name:report_webkit.model_ir_header_webkit +msgid "ir.header_webkit" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A4 0 210 x 297 mm, 8.26 x 11.69 inches" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:176 +#, python-format +msgid "Webkit error" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B2 17 500 x 707 mm" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:260 +#: code:addons/report_webkit/webkit_report.py:271 +#: code:addons/report_webkit/webkit_report.py:280 +#: code:addons/report_webkit/webkit_report.py:293 +#: code:addons/report_webkit/webkit_report.py:304 +#, python-format +msgid "Webkit render!" +msgstr "" + +#. module: report_webkit +#: model:ir.model,name:report_webkit.model_ir_header_img +msgid "ir.header_img" +msgstr "" + +#. module: report_webkit +#: field:ir.actions.report.xml,precise_mode:0 +msgid "Precise Mode" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:96 +#, python-format +msgid "" +"Please install executable on your system (sudo apt-get install wkhtmltopdf) " +"or download it from here: " +"http://code.google.com/p/wkhtmltopdf/downloads/list and set the path in the " +"ir.config_parameter with the webkit_path key.Minimal version is 0.9.9" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A0 5 841 x 1189 mm" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "C5E 24 163 x 229 mm" +msgstr "" + +#. module: report_webkit +#: field:ir.header_img,type:0 +msgid "Type" +msgstr "Төрөл" + +#. module: report_webkit +#: code:addons/report_webkit/wizard/report_webkit_actions.py:133 +#, python-format +msgid "Client Actions Connections" +msgstr "" + +#. module: report_webkit +#: field:res.company,header_image:0 +msgid "Available Images" +msgstr "" + +#. module: report_webkit +#: field:ir.header_webkit,html:0 +msgid "webkit header" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B1 15 707 x 1000 mm" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A1 6 594 x 841 mm" +msgstr "" + +#. module: report_webkit +#: help:ir.actions.report.xml,webkit_header:0 +msgid "The header linked to the report" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:95 +#, python-format +msgid "Wkhtmltopdf library path is not set" +msgstr "" + +#. module: report_webkit +#: view:ir.actions.report.xml:0 +#: view:res.company:0 +msgid "Webkit" +msgstr "" + +#. module: report_webkit +#: help:ir.header_webkit,format:0 +msgid "Select Proper Paper size" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B5 1 176 x 250 mm, 6.93 x 9.84 inches" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A7 11 74 x 105 mm" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A6 10 105 x 148 mm" +msgstr "" + +#. module: report_webkit +#: help:ir.actions.report.xml,report_webkit_data:0 +msgid "This template will be used if the main report file is not found" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "Folio 27 210 x 330 mm" +msgstr "" + +#. module: report_webkit +#: field:ir.header_webkit,margin_top:0 +msgid "Top Margin (mm)" +msgstr "" + +#. module: report_webkit +#: view:report.webkit.actions:0 +msgid "_Ok" +msgstr "" + +#. module: report_webkit +#: help:report.webkit.actions,print_button:0 +msgid "" +"Check this to add a Print action for this Report in the sidebar of the " +"corresponding document types" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B3 18 353 x 500 mm" +msgstr "" + +#. module: report_webkit +#: field:ir.actions.report.xml,webkit_header:0 +msgid "Webkit Header" +msgstr "" + +#. module: report_webkit +#: help:ir.actions.report.xml,webkit_debug:0 +msgid "Enable the webkit engine debugger" +msgstr "" + +#. module: report_webkit +#: field:ir.header_img,img:0 +msgid "Image" +msgstr "" + +#. module: report_webkit +#: view:ir.header_img:0 +msgid "Header Image" +msgstr "Толгой зураг" + +#. module: report_webkit +#: field:res.company,header_webkit:0 +msgid "Available html" +msgstr "" + +#. module: report_webkit +#: help:report.webkit.actions,open_action:0 +msgid "" +"Check this to view the newly added internal print action after creating it " +"(technical view) " +msgstr "" + +#. module: report_webkit +#: view:res.company:0 +msgid "Images" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,orientation:0 +msgid "Portrait" +msgstr "" + +#. module: report_webkit +#: view:report.webkit.actions:0 +msgid "or" +msgstr "эсвэл" + +#. module: report_webkit +#: selection:ir.header_webkit,orientation:0 +msgid "Landscape" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B8 22 62 x 88 mm" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:177 +#, python-format +msgid "The command 'wkhtmltopdf' failed with error code = %s. Message: %s" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A2 7 420 x 594 mm" +msgstr "" + +#. module: report_webkit +#: field:report.webkit.actions,print_button:0 +msgid "Add print button" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A9 13 37 x 52 mm" +msgstr "" + +#. module: report_webkit +#: model:ir.model,name:report_webkit.model_res_company +msgid "Companies" +msgstr "" + +#. module: report_webkit +#: field:ir.header_webkit,margin_bottom:0 +msgid "Bottom Margin (mm)" +msgstr "" + +#. module: report_webkit +#: model:ir.model,name:report_webkit.model_report_webkit_actions +msgid "Webkit Actions" +msgstr "" + +#. module: report_webkit +#: field:report.webkit.actions,open_action:0 +msgid "Open added action" +msgstr "" + +#. module: report_webkit +#: field:ir.header_webkit,margin_right:0 +msgid "Right Margin (mm)" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:228 +#, python-format +msgid "Webkit report template not found!" +msgstr "" + +#. module: report_webkit +#: field:ir.header_webkit,orientation:0 +msgid "Orientation" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B6 20 125 x 176 mm" +msgstr "" + +#. module: report_webkit +#: help:ir.header_webkit,html:0 +msgid "Set Webkit Report Header" +msgstr "" + +#. module: report_webkit +#: field:ir.header_webkit,format:0 +msgid "Paper size" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid ":B10 16 31 x 44 mm" +msgstr "" + +#. module: report_webkit +#: view:report.webkit.actions:0 +msgid "Cancel" +msgstr "" + +#. module: report_webkit +#: field:ir.header_webkit,css:0 +msgid "Header CSS" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B4 19 250 x 353 mm" +msgstr "" + +#. module: report_webkit +#: model:ir.actions.act_window,name:report_webkit.action_header_img +#: model:ir.ui.menu,name:report_webkit.menu_header_img +msgid "Webkit Logos" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:172 +#, python-format +msgid "No diagnosis message was provided" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A3 8 297 x 420 mm" +msgstr "" + +#. module: report_webkit +#: field:ir.actions.report.xml,report_webkit_data:0 +msgid "Webkit Template" +msgstr "" + +#. module: report_webkit +#: field:ir.header_webkit,footer_html:0 +msgid "webkit footer" +msgstr "" + +#. module: report_webkit +#: field:ir.actions.report.xml,webkit_debug:0 +msgid "Webkit debug" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "Letter 2 8.5 x 11 inches, 215.9 x 279.4 mm" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B0 14 1000 x 1414 mm" +msgstr "" + +#. module: report_webkit +#: field:ir.header_img,name:0 +#: field:ir.header_webkit,name:0 +msgid "Name" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A5 9 148 x 210 mm" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "A8 12 52 x 74 mm" +msgstr "" + +#. module: report_webkit +#: model:ir.actions.act_window,name:report_webkit.wizard_ofdo_report_actions +#: view:report.webkit.actions:0 +msgid "Add Print Buttons" +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "Comm10E 25 105 x 241 mm, U.S. Common 10 Envelope" +msgstr "" + +#. module: report_webkit +#: field:ir.header_webkit,margin_left:0 +msgid "Left Margin (mm)" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:228 +#, python-format +msgid "Error!" +msgstr "" + +#. module: report_webkit +#: help:ir.header_webkit,footer_html:0 +msgid "Set Webkit Report Footer." +msgstr "" + +#. module: report_webkit +#: selection:ir.header_webkit,format:0 +msgid "B9 23 33 x 62 mm" +msgstr "" + +#. module: report_webkit +#: model:ir.model,name:report_webkit.model_ir_actions_report_xml +msgid "ir.actions.report.xml" +msgstr "" + +#. module: report_webkit +#: code:addons/report_webkit/webkit_report.py:174 +#, python-format +msgid "The following diagnosis message was provided:\n" +msgstr "" + +#. module: report_webkit +#: view:ir.header_webkit:0 +msgid "HTML Header" +msgstr "" From 713ff5c65dbf7b4ffccc01f35a7aa7161ac68be1 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 19 Feb 2013 09:42:55 +0100 Subject: [PATCH 89/90] [FIX] use openerp namespace. bzr revid: vmt@openerp.com-20130219084255-m8kxcsejob64hh72 --- addons/crm/crm_lead.py | 2 +- addons/l10n_in_hr_payroll/report/report_payslip_details.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 294adc863b5..6498a69673b 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -28,7 +28,7 @@ from openerp import tools from openerp.tools.translate import _ from openerp.tools import html2plaintext -from base.res.res_partner import format_address +from openerp.addons.base.res.res_partner import format_address CRM_LEAD_FIELDS_TO_MERGE = ['name', 'partner_id', diff --git a/addons/l10n_in_hr_payroll/report/report_payslip_details.py b/addons/l10n_in_hr_payroll/report/report_payslip_details.py index 462bb374287..37cb7c2a0b7 100644 --- a/addons/l10n_in_hr_payroll/report/report_payslip_details.py +++ b/addons/l10n_in_hr_payroll/report/report_payslip_details.py @@ -20,7 +20,7 @@ ############################################################################## from openerp.report import report_sxw -from hr_payroll import report +from openerp.addons.hr_payroll import report class payslip_details_report_in(report.report_payslip_details.payslip_details_report): @@ -32,4 +32,4 @@ class payslip_details_report_in(report.report_payslip_details.payslip_details_re report_sxw.report_sxw('report.paylip.details.in', 'hr.payslip', 'l10n_in_hr_payroll/report/report_payslip_details.rml', parser=payslip_details_report_in) -# 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 b3e9037dd96d0e6c6352f086cb67c8cb3110748d Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 19 Feb 2013 10:09:58 +0100 Subject: [PATCH 90/90] [FIX] use openerp namespace. bzr revid: vmt@openerp.com-20130219090958-88o2o9flbqjfikjb --- addons/document_webdav/nodes.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/document_webdav/nodes.py b/addons/document_webdav/nodes.py index e08abe6f488..5e819e01754 100644 --- a/addons/document_webdav/nodes.py +++ b/addons/document_webdav/nodes.py @@ -20,12 +20,14 @@ ############################################################################## -from document import document as nodes -from openerp.tools.safe_eval import safe_eval as eval import time import urllib import uuid + from openerp import SUPERUSER_ID +from openerp.tools.safe_eval import safe_eval as eval + +from openerp.addons.document import document as nodes def dict_filter(srcdic, keys, res=None): ''' Return a copy of srcdic that has only keys set.