From 150d5a9e18b83ec2525ac01a7b6a514925fde9fc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Wed, 12 Feb 2014 16:27:37 +0100
Subject: [PATCH 1/9] [IMP] mail: mail_thread: message routing: raise
exceptions instead of using asserts. Indeed assert are statements meant to be
used when developping, for debug purpose. In a production environment it is
safer to use real exceptions that can be managed accordingly.
bzr revid: tde@openerp.com-20140212152737-c7q339psd9hi4iwd
---
addons/mail/mail_thread.py | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index 18486919977..edc1b6e7ba5 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -522,7 +522,8 @@ class mail_thread(osv.AbstractModel):
does not reply to an existing thread and does not match any mail alias.
:return: list of [model, thread_id, custom_values, user_id]
"""
- assert isinstance(message, Message), 'message must be an email.message.Message at this point'
+ if not isinstance(message, Message):
+ raise TypeError('message must be an email.message.Message at this point')
message_id = message.get('Message-Id')
email_from = decode_header(message, 'From')
email_to = decode_header(message, 'To')
@@ -593,9 +594,12 @@ class mail_thread(osv.AbstractModel):
thread_id = int(thread_id)
except:
thread_id = False
- assert thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new'), \
- "No possible route found for incoming message from %s to %s (Message-Id %s:)." \
- "Create an appropriate mail.alias or force the destination model." % (email_from, email_to, message_id)
+ if not (thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new')):
+ raise ValueError(
+ 'No possible route found for incoming message from %s to %s (Message-Id %s:).'
+ 'Create an appropriate mail.alias or force the destination model.' %
+ (email_from, email_to, message_id)
+ )
if thread_id and not model_pool.exists(cr, uid, thread_id):
_logger.warning('Received mail reply to missing document %s! Ignoring and creating new document instead for Message-Id %s',
thread_id, message_id)
@@ -679,9 +683,11 @@ class mail_thread(osv.AbstractModel):
context.update({'thread_model': model})
if model:
model_pool = self.pool.get(model)
- assert thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new'), \
- "Undeliverable mail with Message-Id %s, model %s does not accept incoming emails" % \
+ if not (thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new')):
+ raise ValueError(
+ "Undeliverable mail with Message-Id %s, model %s does not accept incoming emails" %
(msg['message_id'], model)
+ )
# disabled subscriptions during message_new/update to avoid having the system user running the
# email gateway become a follower of all inbound messages
@@ -692,7 +698,8 @@ class mail_thread(osv.AbstractModel):
nosub_ctx = dict(nosub_ctx, mail_create_nolog=True)
thread_id = model_pool.message_new(cr, user_id, msg, custom_values, context=nosub_ctx)
else:
- assert thread_id == 0, "Posting a message without model should be with a null res_id, to create a private message."
+ if thread_id:
+ raise ValueError("Posting a message without model should be with a null res_id, to create a private message.")
model_pool = self.pool.get('mail.thread')
new_msg_id = model_pool.message_post(cr, uid, [thread_id], context=context, subtype='mail.mt_comment', **msg)
From e09f5cd2646e4ada2800bf4bc13f6ed4f3f6b10a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Wed, 12 Feb 2014 16:31:41 +0100
Subject: [PATCH 2/9] [FIX] mail: fixed tests, no more assertionerror, but
valueerror
bzr revid: tde@openerp.com-20140212153141-ajwmd26of69tfoer
---
addons/mail/tests/test_mail_gateway.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/mail/tests/test_mail_gateway.py b/addons/mail/tests/test_mail_gateway.py
index 8b10afe82f5..e7a22065ea1 100644
--- a/addons/mail/tests/test_mail_gateway.py
+++ b/addons/mail/tests/test_mail_gateway.py
@@ -411,14 +411,14 @@ class TestMailgateway(TestMailBase):
# --------------------------------------------------
# Do: incoming email with model that does not accepts incoming emails must raise
- self.assertRaises(AssertionError,
+ self.assertRaises(ValueError,
format_and_process,
MAIL_TEMPLATE,
to='noone@example.com', subject='spam', extra='', model='res.country',
msg_id='<1198923581.41972151344608186760.JavaMail.new4@agrolait.com>')
# Do: incoming email without model and without alias must raise
- self.assertRaises(AssertionError,
+ self.assertRaises(ValueError,
format_and_process,
MAIL_TEMPLATE,
to='noone@example.com', subject='spam', extra='',
From bc0232cee63c2dbc79e2d9b93c8c10e034bc385f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Wed, 12 Feb 2014 17:08:57 +0100
Subject: [PATCH 3/9] [FORWARD] [FIX] Forward port of revision 6920 of 6.1
addons branch. Revid: revid:odo@openerp.com-20120727150051-e1q0m92tyrazz82f
Purpose: some fixes and more robuts handling of incoming emails
bzr revid: tde@openerp.com-20140212160857-s889npk2q133xvy2
---
addons/fetchmail/fetchmail.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index d408e7da9ac..ae3d60cee0a 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -198,6 +198,7 @@ openerp_mailgate: "|/path/to/openerp-mailgate.py --host=localhost -u %(uid)d -p
result, data = imap_server.search(None, '(UNSEEN)')
for num in data[0].split():
result, data = imap_server.fetch(num, '(RFC822)')
+ imap_server.store(num, '-FLAGS', '\\Seen')
res_id = mail_thread.message_process(cr, uid, server.object_id.model,
data[0][1],
save_original=server.original,
@@ -205,8 +206,8 @@ openerp_mailgate: "|/path/to/openerp-mailgate.py --host=localhost -u %(uid)d -p
context=context)
if res_id and server.action_id:
action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id], 'active_model': context.get("thread_model", server.object_id.model)})
- imap_server.store(num, '+FLAGS', '\\Seen')
- cr.commit()
+ imap_server.store(num, '+FLAGS', '\\Seen')
+ cr.commit()
count += 1
_logger.info("fetched/processed %s email(s) on %s server %s", count, server.type, server.name)
except Exception:
From faf6d33bc0c9baee79129c679901d9106d205f63 Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Thu, 13 Feb 2014 06:47:42 +0000
Subject: [PATCH 4/9] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20140213064742-xiotlx8wzfhexnhc
---
addons/board/i18n/fi.po | 2 +-
addons/hr/i18n/pl.po | 10 +-
addons/hr_payroll_account/i18n/pl.po | 18 +-
addons/mrp/i18n/mn.po | 227 ++++++++++++++++++++-----
addons/mrp_byproduct/i18n/mn.po | 27 ++-
addons/mrp_jit/i18n/mn.po | 14 +-
addons/mrp_operations/i18n/mn.po | 41 ++++-
addons/procurement/i18n/ja.po | 10 +-
addons/stock/i18n/ja.po | 68 ++++----
addons/stock/i18n/zh_TW.po | 25 ++-
addons/stock_no_autopicking/i18n/mn.po | 14 +-
11 files changed, 316 insertions(+), 140 deletions(-)
diff --git a/addons/board/i18n/fi.po b/addons/board/i18n/fi.po
index 6c503135857..c7f8e9d8778 100644
--- a/addons/board/i18n/fi.po
+++ b/addons/board/i18n/fi.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: 2014-02-12 06:23+0000\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: board
diff --git a/addons/hr/i18n/pl.po b/addons/hr/i18n/pl.po
index 619ddd0b0e8..be389d056dd 100644
--- a/addons/hr/i18n/pl.po
+++ b/addons/hr/i18n/pl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
-"PO-Revision-Date: 2013-11-16 19:03+0000\n"
-"Last-Translator: Mirosław Bojanowicz \n"
+"PO-Revision-Date: 2014-02-12 15:17+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-11-21 06:10+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
+"X-Generator: Launchpad (build 16916)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -781,7 +781,7 @@ msgstr ""
#: code:addons/hr/hr.py:221
#, python-format
msgid "Welcome to %s! Please help him/her take the first steps with OpenERP!"
-msgstr "Witamy %s! Proszę pomużcie jemu/jej w pierwszych krokach z OpenERP!"
+msgstr "Witamy %s! Proszę pomóżcie jemu/jej w pierwszych krokach z OpenERP!"
#. module: hr
#: view:hr.employee.category:0
diff --git a/addons/hr_payroll_account/i18n/pl.po b/addons/hr_payroll_account/i18n/pl.po
index 0e872d9c4ee..e1edc1a8ea7 100644
--- a/addons/hr_payroll_account/i18n/pl.po
+++ b/addons/hr_payroll_account/i18n/pl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2013-11-19 21:17+0000\n"
-"Last-Translator: Mirosław Bojanowicz \n"
+"PO-Revision-Date: 2014-02-12 15:21+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-11-21 06:13+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
+"X-Generator: Launchpad (build 16916)\n"
#. module: hr_payroll_account
#: field:hr.salary.rule,account_credit:0
@@ -39,7 +39,7 @@ msgstr ""
#. module: hr_payroll_account
#: field:hr.payslip,move_id:0
msgid "Accounting Entry"
-msgstr "Wpis księgowy"
+msgstr "Zapis księgowy"
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:173
@@ -53,7 +53,7 @@ msgstr ""
#. module: hr_payroll_account
#: field:hr.salary.rule,account_tax_id:0
msgid "Tax Code"
-msgstr "Kod podatku"
+msgstr "Rejestr podatkowy"
#. module: hr_payroll_account
#: field:hr.payslip,period_id:0
@@ -64,7 +64,7 @@ msgstr "Wymuś okres"
#: help:hr.payslip,period_id:0
msgid "Keep empty to use the period of the validation(Payslip) date."
msgstr ""
-"Pozostaw puste żeby używać daty okresu zatwierdzenie (odcinka wypłaty)."
+"Pozostaw puste żeby zastosować okresu z daty zatwierdzenia (odcinka wypłaty)."
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_contract
@@ -80,7 +80,7 @@ msgstr "Konto analityczne"
#. module: hr_payroll_account
#: field:hr.salary.rule,account_debit:0
msgid "Debit Account"
-msgstr "Konto płatności"
+msgstr "Konto Winien"
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_run
@@ -120,7 +120,7 @@ msgstr "Pasek wypłaty"
#: code:addons/hr_payroll_account/hr_payroll_account.py:175
#, python-format
msgid "Adjustment Entry"
-msgstr "Wpis korygujący"
+msgstr "Zapis korygujący"
#. module: hr_payroll_account
#: field:hr.contract,journal_id:0
diff --git a/addons/mrp/i18n/mn.po b/addons/mrp/i18n/mn.po
index 8e1c7e9e73f..3ad01272980 100644
--- a/addons/mrp/i18n/mn.po
+++ b/addons/mrp/i18n/mn.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
-"PO-Revision-Date: 2014-02-10 14:33+0000\n"
+"PO-Revision-Date: 2014-02-13 00:38+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: 2014-02-11 06:41+0000\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: mrp
@@ -117,8 +117,8 @@ msgid ""
"Number of iterations this work center has to do in the specified operation "
"of the routing."
msgstr ""
-"Үйлдвэрлэлийн нэг шугамын хувьд уг дамжлага өөрийн үйлдлийг давтан гүйцэтгэх "
-"давтамжын тоо."
+"Үйлдвэрлэлийн нэг шугамын хувьд уг дамжлага өөрийн ажиллагааг давтан "
+"гүйцэтгэх давтамжын тоо."
#. module: mrp
#: view:product.product:0
@@ -488,6 +488,16 @@ msgid ""
"'In Production'.\n"
" When the production is over, the status is set to 'Done'."
msgstr ""
+"Үйлдвэрлэлийн захиалга үүсгэгдсэн дараагаараа 'Ноорог' төлөвтэй байна.\n"
+" Үйлдвэрлэлийн захиалгыг батласан дараагаар 'Бараа хүлээж "
+"буй' төлөвтэй болдог.\n"
+" Хэрвээ ямарваа саатал үүссэн бол 'Бэлтгэлтийн саатал' "
+"төлөвтэй болдог.\n"
+" Хэрэв нөөц бэлэн бол төлөв нь 'Үйлдвэрлэхэд Бэлэн' төлөвтэй "
+"болдог.\n"
+" Үйлдвэрлэл эхэлсэн бол төлөв нь 'Үйлдвэлэгдэж буй' төлөвтэй "
+"болдог.\n"
+" Үйлдвэрлэл дууссан бол 'Хийгдсэн' төлөвтэй болдог."
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_in_out_picking_tree
@@ -514,6 +524,20 @@ msgid ""
"
\n"
" "
msgstr ""
+"\n"
+" Шинэ үзүүлэлт үүсгэхдээ дарна уу.\n"
+"
\n"
+" OpenERP-д үзүүлэлт гэдэг нь нэг барааг үйлдвэрлэхдээ "
+"ялгаатай \n"
+" орцуудыг сонгох тохиолдолд хэрэглэгддэг. Орц бүрт олон "
+"үзүүлэлтийг\n"
+" оноох боломжтой. Борлуулалтын ажилтан борлуулалтын захиалга "
+"үүсгэхдээ\n"
+" олон үзүүлэлтийг холбож өгөх боломжтой бөгөөд OpenERP нь "
+"шаардлагын дагууд\n"
+" харгалзах орцыг автоматаар сонгодог.\n"
+"
\n"
+" "
#. module: mrp
#: view:mrp.production:0
@@ -542,8 +566,8 @@ msgid ""
"partner location if you subcontract the manufacturing operations."
msgstr ""
"Дууссан барааны байрлалд үйлдвэрлэхээр бол хоосон байлга. Тогтмол байрлалд "
-"үйлдвэрлэх бол байрлалыг тааруул. Хэрэв үйлдвэрлэлийг дэд гэрээгээр хийдэг "
-"бол харилцагчийн байрлал байж болно."
+"үйлдвэрлэх бол байрлалыг тааруул. Хэрэв үйлдвэрлэлийн ажиллагааг дэд "
+"гэрээгээр хийдэг бол харилцагчийн байрлал байж болно."
#. module: mrp
#: view:board.board:0
@@ -663,11 +687,20 @@ msgid ""
"assembly operation.\n"
" This installs the module stock_no_autopicking."
msgstr ""
+"Энэ модуль нь үйлдвэрлэлийн захиалга түүхий эдийг бэлтгэх дундын процессыг "
+"бий болгодог.\n"
+" Тухайлбал нийлүүлэгчээр (дэд гэрээлэгчээр) үйлдвэрлэл "
+"хийгдэх ажлын менежмент.\n"
+" Үүнийг хийхийн тулд дэд гэрээгээр угсрагддаг барааг "
+"\"Автомат Бэлтгэнгүй\" гэж тохируулаад\n"
+" угсрах үйл ажиллагааны шугамын байрлал дээр нийлүүлэгчийн "
+"байрлалыг сонгож өгнө.\n"
+" Энэ нь stock_no_autopicking модулийг суулгадаг."
#. module: mrp
#: selection:mrp.production,state:0
msgid "Picking Exception"
-msgstr "Бэлтгэлтийн Сондгойрол"
+msgstr "Бэлтгэлтийн Саатал"
#. module: mrp
#: field:mrp.bom,bom_lines:0
@@ -743,9 +776,9 @@ msgid ""
"operations and to plan future loads on work centers based on production "
"plannification."
msgstr ""
-"Эцсийн барааг үйлдвэрлэх үйлдлүүд (дамжлагууд)-н жагсаалт. Шугам гэдэг нь "
-"үндсэндээ дамжлагуудын өртөгийг тооцоолох болон ажлын ачааллыг тооцоолоход "
-"үйлдвэрлэлийн төлөвлөгөөн дээр суурилан бодоход хэрэглэгддэг."
+"Эцсийн барааг үйлдвэрлэх ажиллагаанууд (дамжлагууд)-н жагсаалт. Шугам гэдэг "
+"нь үндсэндээ дамжлагуудын өртөгийг тооцоолох болон ажлын ачааллыг "
+"тооцоолоход үйлдвэрлэлийн төлөвлөгөөн дээр суурилан бодоход хэрэглэгддэг."
#. module: mrp
#: help:mrp.workcenter,time_cycle:0
@@ -765,6 +798,16 @@ msgid ""
" \n"
" "
msgstr ""
+"\n"
+" Орцын бүрэлдхүүнийг нэмэхдээ дарна уу.\n"
+"
\n"
+" Орцын бүрэлдхүүн гэдэг нь орцыг бүрдүүлэхэд хэрэглэгддэг "
+"бүрэлдхүүн болон \n"
+" дайвар бүтээгдэхүүнүүд юм. Энэ менюг ашиглан бүрэлдхүүн ямар "
+"орцод орсон \n"
+" болохыг хайдаг.\n"
+"
\n"
+" "
#. module: mrp
#: constraint:mrp.bom:0
@@ -791,6 +834,12 @@ msgid ""
" * Product Attributes.\n"
" This installs the module product_manufacturer."
msgstr ""
+"Энэ бараанд бараанд дараах талбаруудыг тодорхойлох боломжийг олгодог:\n"
+" * Үйлдвэрлэгч\n"
+" * Үйлдвэрлэгчийн барааны нэр\n"
+" * Үйлдвэрлэгчийн барааны код\n"
+" * Барааны талбарууд.\n"
+" Энэ нь product_manufacturer модулийг суулгадаг."
#. module: mrp
#: view:mrp.product_price:0
@@ -818,6 +867,17 @@ msgid ""
" \n"
" "
msgstr ""
+"\n"
+" Дамжлага нэмэхдээ дарна уу.\n"
+"
\n"
+" Дамжлага нь үйлдвэрлэлийн нэгжүүдийг үүсгэх, удирдахад "
+"тусладаг. \n"
+" Эдгээр нь хүн эсвэл машинаас бүрдэх бөгөөд даалгавар оноох "
+"нэгж\n"
+" гэж үзэгдэхээс гадна чадал, төлөвлөлтийг хийх таамаглахад "
+"хэрэглэгддэг.\n"
+"
\n"
+" "
#. module: mrp
#: model:process.node,note:mrp.process_node_minimumstockrule0
@@ -834,7 +894,7 @@ msgstr "Сарын хэмжээнд"
msgid ""
"Unit of Measure (Unit of Measure) is the unit of measurement for the "
"inventory control"
-msgstr ""
+msgstr "Хэмжих нэгж нь нөөцийн хяналтын хэмжих нэгж"
#. module: mrp
#: report:bom.structure:0
@@ -883,7 +943,7 @@ msgstr ""
#. module: mrp
#: view:mrp.production:0
msgid "Mark as Started"
-msgstr ""
+msgstr "Эхэлснээр тэмдэглэх"
#. module: mrp
#: view:mrp.production:0
@@ -923,6 +983,8 @@ msgid ""
"The Product Unit of Measure you chose has a different category than in the "
"product form."
msgstr ""
+"Таны сонгосон барааны хэмжих нэгж нь барааны маягт дээр сонгосон хэмжих "
+"нэгжээс ялгаатай ангилалтай байна."
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production
@@ -987,6 +1049,19 @@ msgid ""
" \n"
" "
msgstr ""
+"\n"
+" Шинэ үйлдвэрлэлийн захиалга эхлэхдээ дарна уу. \n"
+"
\n"
+" Үйлдвэрлэлийн захиалга гэдэг нь орц дээр суурилан түүхий "
+"эдийг хангаж\n"
+" улмаар эцсийн бэлэн бүтээгдэхүүнийг үйлдвэрлэдэг.\n"
+"
\n"
+" Үйлдвэрлэлийн захиалга нь захиалагчийн шаардлага эсвэл "
+"зохистой нөөцийн дүрэм \n"
+" зэрэг автомат дүрмүүд дээр үндэслэн ихэнхдээ автоматаар "
+"санал болгогддог .\n"
+"
\n"
+" "
#. module: mrp
#: field:mrp.bom,type:0
@@ -998,8 +1073,7 @@ msgstr "Орцын төрөл"
#, python-format
msgid ""
"Procurement '%s' has an exception: 'No BoM defined for this product !'"
-msgstr ""
-"'%s' татан авалтад сондгойрол байна: 'Бараанд орц тодорхойлогдоогүй !'"
+msgstr "'%s' татан авалтын саатал: 'Бараанд орц тодорхойлогдоогүй !'"
#. module: mrp
#: view:mrp.property:0
@@ -1165,7 +1239,7 @@ msgstr "Горим"
#: help:mrp.production,message_ids:0
#: help:mrp.production.workcenter.line,message_ids:0
msgid "Messages and communication history"
-msgstr ""
+msgstr "Зурвас болон харилцсан түүх"
#. module: mrp
#: field:mrp.workcenter.load,measure_unit:0
@@ -1181,6 +1255,11 @@ msgid ""
" cases entail a small performance impact.\n"
" This installs the module mrp_jit."
msgstr ""
+"Энэ нь татан авалтыг яг хугацаандаа тооцооллыг хийх боломжийг олгодог.\n"
+" Бүх татан авалтын захиалга нь шууд боловсруулагддаг бөгөөд "
+"энэ нь заримдаа\n"
+" системийн ажиллагаад ачаалал өгөх тохиолдол байдаг.\n"
+" Энэ нь mrp_jit модулийг суулгадаг."
#. module: mrp
#: help:mrp.workcenter,costs_hour:0
@@ -1193,8 +1272,8 @@ msgid ""
"Number of operations this Work Center can do in parallel. If this Work "
"Center represents a team of 5 workers, the capacity per cycle is 5."
msgstr ""
-"Энэ дамжлагын нэгэн зэрэг хийж чадах үйлдлийн тоо. Хэрэв энэ дамжлага нь 5 "
-"ажилтантай баг бол циклийн чадавхи нь 5 байх юм."
+"Энэ дамжлагын нэгэн зэрэг хийж чадах ажиллагааны тоо. Хэрэв энэ дамжлага нь "
+"5 ажилтантай баг бол циклийн чадавхи нь 5 байх юм."
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action3
@@ -1253,7 +1332,8 @@ msgstr "Нөөцүүд"
msgid ""
"Time in hours for this Work Center to achieve the operation of the specified "
"routing."
-msgstr "Заагдсан шугамын үйлдлийг гүйцэтгэхэд энэ дамжлагын хугацаа цагаар."
+msgstr ""
+"Заагдсан шугамын ажиллагааг гүйцэтгэхэд энэ дамжлагын хугацаа цагаар."
#. module: mrp
#: field:mrp.workcenter,costs_journal_id:0
@@ -1264,7 +1344,7 @@ msgstr "Шинжилгээний журнал"
#: code:addons/mrp/report/price.py:139
#, python-format
msgid "Supplier Price per Unit of Measure"
-msgstr ""
+msgstr "Хэмжих нэгжээрх нийлүүлэгчийн үнэ"
#. module: mrp
#: selection:mrp.workcenter.load,time_unit:0
@@ -1276,7 +1356,7 @@ msgstr "Долооногийн хэмжээнд"
#: field:mrp.production,message_unread:0
#: field:mrp.production.workcenter.line,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "Уншаагүй Зурвасууд"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockmts0
@@ -1290,7 +1370,7 @@ msgstr ""
#. module: mrp
#: view:mrp.routing:0
msgid "Work Center Operations"
-msgstr "Дамжлагын Үйлдлүүд"
+msgstr "Дамжлагын Ажиллагаанууд"
#. module: mrp
#: view:mrp.routing:0
@@ -1321,7 +1401,7 @@ msgstr "Хугацааний нэгжийг сонго"
#: model:ir.ui.menu,name:mrp.menu_mrp_product_form
#: view:mrp.config.settings:0
msgid "Products"
-msgstr ""
+msgstr "Бараанууд"
#. module: mrp
#: view:report.workcenter.load:0
@@ -1348,7 +1428,7 @@ msgstr ""
#: code:addons/mrp/mrp.py:505
#, python-format
msgid "Invalid Action!"
-msgstr ""
+msgstr "Буруу Үйлдэл!"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_producttostockrules0
@@ -1388,12 +1468,14 @@ msgid ""
"Bill of Materials allow you to define the list of required raw materials to "
"make a finished product."
msgstr ""
+"Орц гэдэг нь эцсийн бэлэн бүтээгдэхүүнийг үйлдвэрлэхэд шаардлагата түүхий "
+"эдийн жагсаалтыг тодорхойлдог."
#. module: mrp
#: code:addons/mrp/mrp.py:375
#, python-format
msgid "%s (copy)"
-msgstr ""
+msgstr "%s (хуулбар)"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_product_line
@@ -1409,7 +1491,7 @@ msgstr "%s ажлын өртөг %s"
#. module: mrp
#: help:res.company,manufacturing_lead:0
msgid "Security days for each manufacturing operation."
-msgstr "Үйлдвэрлэлийн үйлдэл бүрийн нууц хоногууд"
+msgstr "Үйлдвэрлэлийн ажиллагаа бүрийн нууц хоногууд"
#. module: mrp
#: model:process.node,name:mrp.process_node_mts0
@@ -1484,7 +1566,7 @@ msgstr "Цагийн Данс"
#: field:mrp.production,product_uom:0
#: field:mrp.production.product.line,product_uom:0
msgid "Product Unit of Measure"
-msgstr ""
+msgstr "Барааны хэмжих нэгж"
#. module: mrp
#: view:mrp.production:0
@@ -1516,6 +1598,11 @@ msgid ""
"are attached to bills of materials\n"
" that will define the required raw materials."
msgstr ""
+"Шугам гэдэг нь барааг үйлдвэрлэхэд шаардлагатай дамжлагуудийн "
+"ажиллагаануудын дарааллыг\n"
+" тодорхойлж, менежментийг хийх боломжийг олгодог. Эдгээр нь "
+"орцод хавсрагдана. \n"
+" Харин орц нь түүхий эдийг тодорхойлдог."
#. module: mrp
#: view:report.workcenter.load:0
@@ -1587,7 +1674,7 @@ msgstr "Хийгдсэн"
#. module: mrp
#: view:product.product:0
msgid "When you sell this product, OpenERP will trigger"
-msgstr ""
+msgstr "Энэ барааг борлуулахад OpenERP нь дараах ажлыг хийнэ"
#. module: mrp
#: field:mrp.production,origin:0
@@ -1645,6 +1732,27 @@ msgid ""
" \n"
" "
msgstr ""
+"\n"
+" Үзүүлэлтүүдийн бүлгийг тодорхойлохдоо дарна уу.\n"
+"
\n"
+" Орц болон борлуулалтын захиалгад оноогдож болох "
+"үзүүлэлтүүдийн\n"
+" бүлэгийг тодорхойлно. Үзүүлэлт гэдэг нь борлуулалтын "
+"ажилтан\n"
+" борлуулалтын захиалга дээр ямар үзүүлэлт сонгосноос "
+"хамааруулан\n"
+" харгалзах зөв орцыг сонгох боломжийг олгодог.\n"
+"
\n"
+" Тухайлбал, \"Баталгаа\" гэсэн үзүүлэлтийн бүлгэд 1 жилийн "
+"баталгаа, \n"
+" 3 жилийн баталгаа гэсэн хоёр үзүүлэлттэй байлаа гэж үзье. "
+"Тэгвэл\n"
+" Борлуулалтын захиалгад аль үзүүлэлтийг сонгосноос хамаараад "
+"\n"
+" OpenERP нь харгалзах орц бүхий үйлдвэрлэлийн захиалгыг "
+"товлоно.\n"
+"
\n"
+" "
#. module: mrp
#: field:mrp.workcenter,capacity_per_cycle:0
@@ -1746,7 +1854,7 @@ msgid ""
"operations and to plan future loads on work centers based on production "
"planning."
msgstr ""
-"Барааг үйлдвэрлэх үйлдлийн жагсаалт (дамжлагын жагсаалт). Шугам нь "
+"Барааг үйлдвэрлэх ажиллагааны жагсаалт (дамжлагын жагсаалт). Шугам нь "
"үйлдвэрлэлийн захиалга дээр үндэслэн дамжлагуудын өртөгийг тооцох, ажлын "
"ирээдүйн ачааллыг тооцоолох зэрэгт голчлон хэрэглэгддэг."
@@ -1758,7 +1866,7 @@ msgstr "Батлах"
#. module: mrp
#: view:mrp.config.settings:0
msgid "Order"
-msgstr ""
+msgstr "Захиалга"
#. module: mrp
#: view:mrp.property.group:0
@@ -1825,7 +1933,7 @@ msgstr "Цуцлагдсан"
#. module: mrp
#: view:mrp.production:0
msgid "(Update)"
-msgstr ""
+msgstr "(Шинэчлэх)"
#. module: mrp
#: help:mrp.config.settings,module_mrp_operations:0
@@ -1834,6 +1942,9 @@ msgid ""
"lines (in the \"Work Centers\" tab).\n"
" This installs the module mrp_operations."
msgstr ""
+"Энэ нь төлөв, эхлэх огноо, зогсох огноо гэсэн талбаруудыг үйлдвэрлэлийн "
+"захиалгын ажиллагааны мөрүүдэд нэмдэг (\"Дамжлага\" хавтас дээр).\n"
+" Энэ нь mrp_operations модулийг суулгадаг."
#. module: mrp
#: code:addons/mrp/mrp.py:737
@@ -1867,7 +1978,7 @@ msgstr "Компани"
#. module: mrp
#: view:mrp.bom:0
msgid "Default Unit of Measure"
-msgstr ""
+msgstr "Үндсэн хэмжих нэгж"
#. module: mrp
#: field:mrp.workcenter,time_cycle:0
@@ -1897,7 +2008,7 @@ msgstr "Автомат татан авах дүрэм"
#: field:mrp.production,message_ids:0
#: field:mrp.production.workcenter.line,message_ids:0
msgid "Messages"
-msgstr ""
+msgstr "Зурвас"
#. module: mrp
#: view:mrp.production:0
@@ -1910,7 +2021,7 @@ msgstr "Өгөгдлийг Тооцоолох"
#: code:addons/mrp/wizard/change_production_qty.py:88
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Алдаа!"
#. module: mrp
#: code:addons/mrp/report/price.py:139
@@ -1928,7 +2039,7 @@ msgstr "Орцын бүтэц"
#. module: mrp
#: field:mrp.config.settings,module_mrp_jit:0
msgid "Generate procurement in real time"
-msgstr ""
+msgstr "Татан авалтыг бодит хугацаанд үүсгэнэ"
#. module: mrp
#: field:mrp.bom,date_stop:0
@@ -1954,7 +2065,7 @@ msgstr "Үйлдвэрлэлийн урьтал хугацаа"
#: code:addons/mrp/mrp.py:285
#, python-format
msgid "Warning"
-msgstr ""
+msgstr "Анхааруулга"
#. module: mrp
#: field:mrp.bom,product_uos_qty:0
@@ -1991,7 +2102,7 @@ msgstr "Үйлдвэрлэлийн Хэмнэлт"
#: field:mrp.production,message_follower_ids:0
#: field:mrp.production.workcenter.line,message_follower_ids:0
msgid "Followers"
-msgstr ""
+msgstr "Дагагчид"
#. module: mrp
#: help:mrp.bom,active:0
@@ -2096,6 +2207,19 @@ msgid ""
" \n"
" "
msgstr ""
+"\n"
+" Орцыг тодорхойлохдоо дарна уу. \n"
+"
\n"
+" Орц нь эцсийн бэлэн бүтээгдэхүүнийг үйлдвэрлэхэд шаардагдах\n"
+" түүхий эдийн жагсаалтыг тодорхойлдог; үүнийг үйлдвэрлэлийн "
+"захиалга эсвэл барааны\n"
+" савлагаагаар хийдэг.\n"
+"
\n"
+" OpenERP нь татан авалтын хэрэгцээнд суурилан үйлдвэрлэлийн "
+"захиалгыг автоматаар\n"
+" санал болгохдоо орцыг ашигладаг.\n"
+"
\n"
+" "
#. module: mrp
#: field:mrp.routing.workcenter,routing_id:0
@@ -2110,7 +2234,7 @@ msgstr "Суурилуулах хугацаа цагаар"
#. module: mrp
#: field:mrp.config.settings,module_mrp_repair:0
msgid "Manage repairs of products "
-msgstr ""
+msgstr "Бараануудын засварын менежментийг хийх "
#. module: mrp
#: help:mrp.config.settings,module_mrp_byproduct:0
@@ -2120,6 +2244,10 @@ msgid ""
" With this module: A + B + C -> D + E.\n"
" This installs the module mrp_byproduct."
msgstr ""
+"Орцод дайвар бүтээгдэхүүнийг тохируулна.\n"
+" Энэ модуль байхгүй бол: A + B + C -> D.\n"
+" Энэ модуль байвал: A + B + C -> D + E.\n"
+" Энэ нь mrp_byproduct модулийг суулгадаг."
#. module: mrp
#: field:procurement.order,bom_id:0
@@ -2142,7 +2270,7 @@ msgstr "Бараанаас хуваарилах"
#: code:addons/mrp/report/price.py:139
#, python-format
msgid "Cost Price per Unit of Measure"
-msgstr ""
+msgstr "Хэмжих нэгжээрх Өртөг"
#. module: mrp
#: field:report.mrp.inout,date:0
@@ -2237,7 +2365,7 @@ msgstr "Орцууд"
#: code:addons/mrp/mrp.py:610
#, python-format
msgid "Cannot find a bill of material for this product."
-msgstr ""
+msgstr "Энэ бараанд орц олж чадахгүй байна."
#. module: mrp
#: view:product.product:0
@@ -2246,11 +2374,14 @@ msgid ""
" The delivery order will be ready once the production "
"is done."
msgstr ""
+"Энэ бараанд оноогдсон орцыг ашиглаж байна.\n"
+" Үйлдвэрлэл хийгдмэгц хүргэлтийн захиалга бэлэн болох "
+"болно."
#. module: mrp
#: field:mrp.config.settings,module_stock_no_autopicking:0
msgid "Manage manual picking to fulfill manufacturing orders "
-msgstr ""
+msgstr "Үйлдвэрлэлийн захиалгыг хангах гар бэлтгэнийг менежмент хийнэ "
#. module: mrp
#: view:mrp.routing.workcenter:0
@@ -2267,7 +2398,7 @@ msgstr "Үйлдвэрлэлүүд"
#: model:ir.model,name:mrp.model_stock_move_split
#: view:mrp.production:0
msgid "Split in Serial Numbers"
-msgstr ""
+msgstr "Серийн дугааруудаар салгах"
#. module: mrp
#: help:mrp.bom,product_uos:0
@@ -2293,7 +2424,7 @@ msgstr "Ажлын Захиалга"
#. module: mrp
#: view:board.board:0
msgid "Procurements in Exception"
-msgstr "Сондгойрсон Татан авалтууд"
+msgstr "Саатсан Татан авалтууд"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_product_price
@@ -2351,6 +2482,12 @@ msgid ""
"product, it will be sold and shipped as a set of components, instead of "
"being produced."
msgstr ""
+"Хэрэв дайвар бүтээгдэхүүн хэд хэдэн бараанд хэрэглэгдсэн бол энэ нь өөрийн "
+"орцыг тодорхойлоход хэрэглэгдэж болно. Иймд энэ дайвар бүтээгдэхүүнд тусдаа "
+"үйлдвэрлэлийн захиалга байхыг хүсэхгүй бол орцын төрлийг Цогц/дайвар гэж "
+"сонгоно. Хэрэв язгуур бараанд дайвар гэсэн орцыг хэрэглэсэн бол энэ нь "
+"бүрэлдхүүн байдлаар борлуулагдаж хүргэгдэнэ. Өөрөөр хэлбэл бэлэн "
+"бүтээгдэхүүн гэж үзэгдэхгүй."
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_mrp_configuration
@@ -2368,7 +2505,7 @@ msgstr "үйлдвэрлэл"
#. module: mrp
#: field:mrp.config.settings,group_mrp_properties:0
msgid "Allow several bill of materials per products using properties"
-msgstr ""
+msgstr "Үзүүлэлт ашиглан нэг бараанд хэд хэдэн орцтой байх боломжийг олгоно"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_property_group_action
@@ -2407,7 +2544,7 @@ msgstr "Цэвэрлэх хугацаа цагаар."
#: field:mrp.production,message_summary:0
#: field:mrp.production.workcenter.line,message_summary:0
msgid "Summary"
-msgstr ""
+msgstr "Хураангуй"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_purchaseprocure0
@@ -2469,7 +2606,7 @@ msgstr "Орцын жагсаалтыг харуулах дэс дарааллы
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_config_settings
msgid "mrp.config.settings"
-msgstr ""
+msgstr "mrp.config.settings"
#. module: mrp
#: view:mrp.production:0
diff --git a/addons/mrp_byproduct/i18n/mn.po b/addons/mrp_byproduct/i18n/mn.po
index 432e9db2b78..6958d29f0bf 100644
--- a/addons/mrp_byproduct/i18n/mn.po
+++ b/addons/mrp_byproduct/i18n/mn.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2013-04-06 05:33+0000\n"
+"PO-Revision-Date: 2014-02-13 00:34+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-11-21 06:21+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
+"X-Generator: Launchpad (build 16916)\n"
#. module: mrp_byproduct
#: help:mrp.subproduct,subproduct_type:0
@@ -28,6 +28,13 @@ msgid ""
"BoM / quantity of manufactured product set on the BoM * quantity of "
"manufactured product in the production order.)'"
msgstr ""
+"Үйлдвэрлэлийн захиалга дээр орцыг ашиглан барааны тоо хэмжээг хэрхэн зааж "
+"өгөхийг тодорхойлдог. 'Тогтмол' гэвэл үйлдвэрлэлийн захиалгаар хэд "
+"үйлдвэрлэгдсэн нь хамаагүйгээр орц дээр зааж өгсөн тоогоор дайвар "
+"бүтээгдэхүүн үйлдвэрлэгдэнэ. Харин эсрэгээрээ 'Хувьсах' гэсэн бол дараах "
+"байдлаар тооцоологдоно. '(Орц дээр тодорхойлсон дайвар бүтээгдэхүүний тоо "
+"хэмжээ / орц дээр тодорхойлсон үйлдвэрлэгдсэн бараа * үйлдвэрлэлийн захиалга "
+"дээрх үйлдвэрлэгдсэн бараа)'"
#. module: mrp_byproduct
#: field:mrp.subproduct,product_id:0
@@ -37,7 +44,7 @@ msgstr "Бараа"
#. module: mrp_byproduct
#: field:mrp.subproduct,product_uom:0
msgid "Product Unit of Measure"
-msgstr ""
+msgstr "Барааны хэмжих нэгж"
#. module: mrp_byproduct
#: model:ir.model,name:mrp_byproduct.model_mrp_production
@@ -47,13 +54,13 @@ msgstr "Үйлдвэрлэлийн Захиалга"
#. module: mrp_byproduct
#: model:ir.model,name:mrp_byproduct.model_change_production_qty
msgid "Change Quantity of Products"
-msgstr ""
+msgstr "Бараануудын Тоо хэмжээг өөрчлөх"
#. module: mrp_byproduct
#: view:mrp.bom:0
#: field:mrp.bom,sub_products:0
msgid "Byproducts"
-msgstr ""
+msgstr "Дайвар бүтээгдэхүүнүүд"
#. module: mrp_byproduct
#: field:mrp.subproduct,subproduct_type:0
@@ -74,7 +81,7 @@ msgstr "Барааны тоо"
#: code:addons/mrp_byproduct/mrp_byproduct.py:63
#, python-format
msgid "Warning"
-msgstr ""
+msgstr "Анхааруулга"
#. module: mrp_byproduct
#: field:mrp.subproduct,bom_id:0
@@ -89,7 +96,7 @@ msgstr "Хувьсах"
#. module: mrp_byproduct
#: selection:mrp.subproduct,subproduct_type:0
msgid "Fixed"
-msgstr "Тогтсон"
+msgstr "Тогтмол"
#. module: mrp_byproduct
#: code:addons/mrp_byproduct/mrp_byproduct.py:63
@@ -98,8 +105,10 @@ msgid ""
"The Product Unit of Measure you chose has a different category than in the "
"product form."
msgstr ""
+"Таны сонгосон барааны хэмжих нэгж нь барааны маягт дээр сонгосон хэмжих "
+"нэгжээс ялгаатай ангилалтай байна."
#. module: mrp_byproduct
#: model:ir.model,name:mrp_byproduct.model_mrp_subproduct
msgid "Byproduct"
-msgstr ""
+msgstr "Дайвар бүтээгдэхүүн"
diff --git a/addons/mrp_jit/i18n/mn.po b/addons/mrp_jit/i18n/mn.po
index 7f5df3134b4..0f919101e19 100644
--- a/addons/mrp_jit/i18n/mn.po
+++ b/addons/mrp_jit/i18n/mn.po
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2014-02-13 00:00+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-11-21 06:21+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
+"X-Generator: Launchpad (build 16916)\n"
#. module: mrp_jit
#: model:ir.module.module,shortdesc:mrp_jit.module_meta_information
msgid "MRP JIT"
-msgstr "Бодит цагийн үйлдвэрлэл"
+msgstr "Яг хугацаандаа үйлдвэрлэл"
#. module: mrp_jit
#: model:ir.module.module,description:mrp_jit.module_meta_information
@@ -51,8 +51,8 @@ msgstr ""
" Энэ модуль нь татан авалтын Яг хугацаандаа тооцооллыг хийх боломжийг "
"олгодог.\n"
"\n"
-" Энэ модулийн суулгавал тогтмол хугацаанд товлогчийг ажиллах шаардлагагүй "
-"болно.\n"
+" Энэ модулийн суулгавал тогтмол хугацаанд товлогчийг ажиллуулах "
+"шаардлагагүй болно.\n"
" (Гэхдээ хамгийн бага нөөцийн дүрэмийг өдөр тутам ажиллуулах "
"шаардлагатай.)\n"
" Бүх татан авах захиалгууд шууд боловсруулагдах тул хэрэглэгчдийг жаахан "
diff --git a/addons/mrp_operations/i18n/mn.po b/addons/mrp_operations/i18n/mn.po
index 9bfe35d9445..6e636eb3e06 100644
--- a/addons/mrp_operations/i18n/mn.po
+++ b/addons/mrp_operations/i18n/mn.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2013-04-06 05:39+0000\n"
+"PO-Revision-Date: 2014-02-13 00:48+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-11-21 06:21+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
+"X-Generator: Launchpad (build 16916)\n"
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_form
@@ -55,7 +55,7 @@ msgstr "Шугамын тодорхойлолтоосх мэдээлэл"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,uom:0
msgid "Unit of Measure"
-msgstr ""
+msgstr "Хэмжих нэгж"
#. module: mrp_operations
#: selection:mrp.workorder,month:0
@@ -173,7 +173,7 @@ msgstr "Нөөцийн хөдөлгөөн"
#: code:addons/mrp_operations/mrp_operations.py:481
#, python-format
msgid "No operation to cancel."
-msgstr ""
+msgstr "Цуцлах ажиллагаа алга."
#. module: mrp_operations
#: code:addons/mrp_operations/mrp_operations.py:474
@@ -199,12 +199,12 @@ msgstr "Ноорог"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Actual Production Date"
-msgstr ""
+msgstr "Үйлдвэрлэлийн бодит огноо"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
msgid "Production Workcenter"
-msgstr ""
+msgstr "Үйлдвэрлэлийн дамжлага"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,date_finished:0
@@ -241,7 +241,7 @@ msgstr "Ажлын Захиалгын Шинжилгээ"
#. module: mrp_operations
#: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_action_planning
msgid "Work Orders By Resource"
-msgstr ""
+msgstr "Ажлын захиалга нөөцөөр"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
@@ -315,6 +315,20 @@ msgid ""
" \n"
" "
msgstr ""
+"\n"
+" Шинэ ажлын захиалга үүсгэхдээ дарна уу. \n"
+"
\n"
+" Ажлын захиалга гэдэг нь үйлдвэрлэлийн захиалга бүр дээр \n"
+" хийгдэх ажиллагаануудын жагсаалт юм. Үйлдвэрлэлийн захиалгын\n"
+" эхний ажилын захиалга дээр ажиллаж эхэлмэгц үйлдвэрлэлийн "
+"захиалга\n"
+" автоматаар эхэлсэн төлөвтэй болдог. Үйлдвэрлэлийн захиалгын\n"
+" сүүлийн ажиллагааг дуусгахад үйлдвэрлэлийн захиалга нь "
+"автоматаар\n"
+" хийгдсэн төлөвтэй болж эцсийн бэлэн бүтээгдэхүүн "
+"үйлдвэрлэгддэг.\n"
+"
\n"
+" "
#. module: mrp_operations
#: help:mrp.production.workcenter.line,delay:0
@@ -377,7 +391,7 @@ msgstr "Бараанууд Хүлээж буй"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,production_state:0
msgid "Production Status"
-msgstr ""
+msgstr "Үйлдвэрлэлийн Төлөв"
#. module: mrp_operations
#: selection:mrp.workorder,state:0
@@ -453,6 +467,8 @@ msgid ""
"Operation has already started! You can either Pause/Finish/Cancel the "
"operation."
msgstr ""
+"Ажиллагаа хэдийнээ эхлэсэн байна! Та Түр зогсоох/Дуусгах/Цуцлах үйлдлүүдийг "
+"хийх боломжтой."
#. module: mrp_operations
#: selection:mrp.workorder,month:0
@@ -616,6 +632,13 @@ msgid ""
"* When order is completely processed that time it is set in 'Finished' "
"status."
msgstr ""
+"* Ажлын захиалга үүсгэгдсэн дараагаараа 'Ноорог' төлөвтэй байдаг.\n"
+"* Ажлын захиалгыг хэрэглэгч эхэлсэн горимд оруулахад 'Боловсруулагдаж буй' "
+"төлөвтэй болно.\n"
+"* Ажлыг захиалаг явагдаж байхад хэрэглэгж түүнийг зогсоох, өөрчлөлт хийхийг "
+"хүсвэл 'Шийд хүлээсэн' төлөвт оруулж болно.\n"
+"* Хэрэглэгч ажлын захиалгыг цуцласан бол 'Цуцласан' төлөвтэй болно.\n"
+"* Ажлын захиалга бүрэн дууссан тохиолдолд төлөв нь 'Дууссан' төлөвтэй болно."
#. module: mrp_operations
#: model:process.node,name:mrp_operations.process_node_startoperation0
diff --git a/addons/procurement/i18n/ja.po b/addons/procurement/i18n/ja.po
index 8049140984b..10eb61c8c91 100644
--- a/addons/procurement/i18n/ja.po
+++ b/addons/procurement/i18n/ja.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2014-02-08 16:41+0000\n"
-"Last-Translator: hiro TAKADA \n"
+"PO-Revision-Date: 2014-02-13 01:15+0000\n"
+"Last-Translator: Yoshi Tashiro \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-02-09 06:51+0000\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: procurement
@@ -176,7 +176,7 @@ msgstr ""
#. module: procurement
#: selection:procurement.order,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "取消済"
#. module: procurement
#: view:procurement.order:0
@@ -958,7 +958,7 @@ msgstr "再発注規則"
#: code:addons/procurement/procurement.py:139
#, python-format
msgid "Cannot delete Procurement Order(s) which are in %s state."
-msgstr ""
+msgstr "%s ステータスの調達オーダは削除できません。"
#. module: procurement
#: field:procurement.order,product_uos:0
diff --git a/addons/stock/i18n/ja.po b/addons/stock/i18n/ja.po
index 739989ccf2d..b4843218d19 100644
--- a/addons/stock/i18n/ja.po
+++ b/addons/stock/i18n/ja.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2014-02-06 15:56+0000\n"
-"PO-Revision-Date: 2014-02-11 08:06+0000\n"
+"PO-Revision-Date: 2014-02-12 10:07+0000\n"
"Last-Translator: Yoshi Tashiro \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-02-12 06:23+0000\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: stock
@@ -447,7 +447,7 @@ msgstr "入荷可能"
#: selection:report.stock.inventory,location_type:0
#: selection:stock.location,usage:0
msgid "Internal Location"
-msgstr "内部の場所"
+msgstr "内部ロケーション"
#. module: stock
#: view:stock.move:0
@@ -524,7 +524,7 @@ msgstr ""
#. module: stock
#: field:stock.warehouse,lot_output_id:0
msgid "Location Output"
-msgstr "場所の出力"
+msgstr "ロケーション出力"
#. module: stock
#: model:ir.actions.act_window,name:stock.split_into
@@ -577,7 +577,7 @@ msgstr "製品: "
#: field:report.stock.inventory,location_type:0
#: field:stock.location,usage:0
msgid "Location Type"
-msgstr "場所のタイプ"
+msgstr "ロケーションタイプ"
#. module: stock
#: model:ir.actions.act_window,name:stock.action_inventory_form_draft
@@ -731,7 +731,7 @@ msgstr "追加情報"
#: report:lot.stock.overview:0
#: report:lot.stock.overview_all:0
msgid "Location / Product"
-msgstr "場所 / 製品"
+msgstr "ロケーション/製品"
#. module: stock
#: field:stock.move,partner_id:0
@@ -758,7 +758,7 @@ msgstr ""
#: field:stock.location,complete_name:0
#: field:stock.location,name:0
msgid "Location Name"
-msgstr "場所名"
+msgstr "ロケーション名"
#. module: stock
#: view:stock.inventory:0
@@ -863,7 +863,7 @@ msgstr ""
#: model:ir.actions.act_window,name:stock.action_location_tree
#: model:ir.ui.menu,name:stock.menu_action_location_tree
msgid "Location Structure"
-msgstr "場所の構造"
+msgstr "ロケーション構造"
#. module: stock
#: field:stock.location,child_ids:0
@@ -933,7 +933,7 @@ msgstr "目的地への移動"
#. module: stock
#: field:stock.location,partner_id:0
msgid "Location Address"
-msgstr "場所の住所"
+msgstr "ロケーション所在地"
#. module: stock
#: model:ir.model,name:stock.model_stock_move_scrap
@@ -957,7 +957,7 @@ msgstr "重量"
#. module: stock
#: field:stock.warehouse,lot_input_id:0
msgid "Location Input"
-msgstr "場所の入力"
+msgstr "ロケーション入力"
#. module: stock
#: help:stock.partial.move,hide_tracking:0
@@ -985,7 +985,7 @@ msgstr "IT仕入先"
#. module: stock
#: view:stock.config.settings:0
msgid "Location & Warehouse"
-msgstr "場所と倉庫"
+msgstr "ロケーションと倉庫"
#. module: stock
#: selection:report.stock.inventory,month:0
@@ -1141,7 +1141,7 @@ msgstr "部分移動処理ウィザード"
#. module: stock
#: model:ir.actions.act_window,name:stock.act_stock_product_location_open
msgid "Stock by Location"
-msgstr "場所別の在庫"
+msgstr "ロケーション別在庫"
#. module: stock
#: model:ir.ui.menu,name:stock.menu_stock_warehouse_mgmt
@@ -1609,7 +1609,7 @@ msgstr "確認済、利用可能、完了の集荷のみ返却できます。"
#. module: stock
#: view:stock.location:0
msgid "Stock Locations"
-msgstr "在庫場所"
+msgstr "在庫ロケーション"
#. module: stock
#: view:stock.picking:0
@@ -1713,7 +1713,7 @@ msgstr "在庫分割行"
#: model:ir.actions.report.xml,name:stock.report_location_overview
#: report:lot.stock.overview:0
msgid "Location Inventory Overview"
-msgstr "在庫場所の概要"
+msgstr "ロケーション在庫概要"
#. module: stock
#: view:report.stock.inventory:0
@@ -1768,7 +1768,7 @@ msgstr "請求書:%s"
#: view:stock.location:0
#: field:stock.location,location_id:0
msgid "Parent Location"
-msgstr "親の場所"
+msgstr "親ロケーション"
#. module: stock
#: code:addons/stock/product.py:168
@@ -1811,7 +1811,7 @@ msgstr ""
#: view:product.product:0
#: view:product.template:0
msgid "Storage Location"
-msgstr "保管場所"
+msgstr "保管ロケーション"
#. module: stock
#: help:stock.partial.move.line,currency:0
@@ -2057,7 +2057,7 @@ msgstr "拡張フィルタ…"
#. module: stock
#: field:stock.warehouse,lot_stock_id:0
msgid "Location Stock"
-msgstr "在庫場所"
+msgstr "ロケーション在庫"
#. module: stock
#: code:addons/stock/wizard/stock_partial_picking.py:97
@@ -2463,7 +2463,7 @@ msgstr ""
#. module: stock
#: view:stock.location:0
msgid "Chained Locations"
-msgstr "連鎖した場所"
+msgstr "連鎖ロケーション"
#. module: stock
#: model:stock.location,name:stock.location_inventory
@@ -2485,7 +2485,7 @@ msgstr "単位"
#. module: stock
#: field:stock.config.settings,group_stock_multiple_locations:0
msgid "Manage multiple locations and warehouses"
-msgstr "複数の場所と倉庫を管理"
+msgstr "複数ロケーション・倉庫を管理"
#. module: stock
#: field:stock.config.settings,group_stock_production_lot:0
@@ -2547,7 +2547,7 @@ msgstr "入庫ロット追跡"
#. module: stock
#: view:stock.location:0
msgid "Internal Locations"
-msgstr "内部の場所"
+msgstr "内部ロケーション"
#. module: stock
#: view:board.board:0
@@ -2651,7 +2651,7 @@ msgstr "配送方法"
#: help:stock.picking.in,location_dest_id:0
#: help:stock.picking.out,location_dest_id:0
msgid "Location where the system will stock the finished products."
-msgstr "システムが完成した製品を在庫する場所です。"
+msgstr "システムが完成品を在庫するロケーション。"
#. module: stock
#: view:board.board:0
@@ -2775,7 +2775,7 @@ msgstr "移動元"
#: field:stock.report.prodlots,location_id:0
#: field:stock.report.tracklots,location_id:0
msgid "Location"
-msgstr "場所"
+msgstr "ロケーション"
#. module: stock
#: model:ir.model,name:stock.model_stock_picking
@@ -2810,7 +2810,7 @@ msgstr "単位"
#. module: stock
#: selection:stock.location,chained_location_type:0
msgid "Fixed Location"
-msgstr "固定の場所"
+msgstr "固定ロケーション"
#. module: stock
#: field:report.stock.inventory,scrap_location:0
@@ -3495,7 +3495,7 @@ msgstr "通路(X)"
#. module: stock
#: field:stock.config.settings,group_stock_packaging:0
msgid "Allow to define several packaging methods on products"
-msgstr "複数の梱包方法を製品に定義できます。"
+msgstr "複数の梱包方法を製品に定義"
#. module: stock
#: model:stock.location,name:stock.stock_location_7
@@ -3523,7 +3523,7 @@ msgstr "他の操作待ち"
#. module: stock
#: view:stock.location:0
msgid "Supplier Locations"
-msgstr "仕入先場所"
+msgstr "仕入先ロケーション"
#. module: stock
#: field:stock.partial.move.line,wizard_id:0
@@ -3541,7 +3541,7 @@ msgstr "在庫移動の完了"
#: model:ir.actions.act_window,name:stock.action_view_stock_location_product
#: model:ir.model,name:stock.model_stock_location_product
msgid "Products by Location"
-msgstr "場所別の製品"
+msgstr "ロケーション別製品"
#. module: stock
#: view:stock.config.settings:0
@@ -3599,7 +3599,7 @@ msgstr "梱包の参照"
#: field:stock.move,location_id:0
#: field:stock.move.split,location_id:0
msgid "Source Location"
-msgstr "元の場所"
+msgstr "移動元ロケーション"
#. module: stock
#: view:product.template:0
@@ -3819,7 +3819,7 @@ msgstr "アイコン"
#: selection:report.stock.inventory,location_type:0
#: selection:stock.location,usage:0
msgid "Transit Location for Inter-Companies Transfers"
-msgstr "会社間転送の中継場所"
+msgstr "会社間移動中継ロケーション"
#. module: stock
#: field:stock.partial.move,hide_tracking:0
@@ -4025,7 +4025,7 @@ msgstr ""
#. module: stock
#: view:stock.location:0
msgid "Stock Location"
-msgstr "在庫場所"
+msgstr "在庫ロケーション"
#. module: stock
#: help:stock.location,scrap_location:0
@@ -4109,7 +4109,7 @@ msgstr "設定"
#. module: stock
#: model:res.groups,name:stock.group_locations
msgid "Manage Multiple Locations and Warehouses"
-msgstr "複数の場所と倉庫を管理"
+msgstr "複数ロケーション・倉庫を管理"
#. module: stock
#: help:stock.change.standard.price,new_price:0
@@ -4566,7 +4566,7 @@ msgstr ""
#: view:stock.location:0
#: view:stock.move:0
msgid "Locations"
-msgstr "場所"
+msgstr "ロケーション"
#. module: stock
#: help:stock.picking,backorder_id:0
@@ -4726,7 +4726,7 @@ msgstr "上流追跡能力"
#: model:ir.actions.report.xml,name:stock.report_location_overview_all
#: report:lot.stock.overview_all:0
msgid "Location Content"
-msgstr "場所のコンテンツ"
+msgstr "ロケーション内容"
#. module: stock
#: code:addons/stock/product.py:478
@@ -4744,7 +4744,7 @@ msgstr "在庫払出勘定"
#. module: stock
#: field:stock.location,chained_location_type:0
msgid "Chained Location Type"
-msgstr "連鎖場所のタイプ"
+msgstr "連鎖ロケーションタイプ"
#. module: stock
#: help:stock.picking,min_date:0
@@ -4814,7 +4814,7 @@ msgstr "確認・移動"
#: field:stock.location,scrap_location:0
#: view:stock.move.scrap:0
msgid "Scrap Location"
-msgstr "廃棄場所"
+msgstr "廃棄ロケーション"
#. module: stock
#: model:ir.actions.act_window,name:stock.action_partial_picking
diff --git a/addons/stock/i18n/zh_TW.po b/addons/stock/i18n/zh_TW.po
index 69d15b79f3f..a8c31dd966d 100644
--- a/addons/stock/i18n/zh_TW.po
+++ b/addons/stock/i18n/zh_TW.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2014-02-06 15:56+0000\n"
-"PO-Revision-Date: 2014-02-10 12:26+0000\n"
+"PO-Revision-Date: 2014-02-12 15:05+0000\n"
"Last-Translator: Andy Cheng \n"
"Language-Team: Chinese (Traditional) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-02-11 06:41+0000\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: stock
@@ -2620,7 +2620,7 @@ msgstr "備註"
msgid ""
"The unit of measure rounding does not allow you to ship \"%s %s\", only "
"rounding of \"%s %s\" is accepted by the Unit of Measure."
-msgstr ""
+msgstr "您無法以這個度量單位運送「%s %s」,僅能接受四捨五入後的「%s %s」。"
#. module: stock
#: report:lot.stock.overview:0
@@ -2760,7 +2760,7 @@ msgid ""
"Inventory Analysis allows you to easily check and analyse your company stock "
"levels. Sort and group by selection criteria in order to better analyse and "
"manage your company activities."
-msgstr ""
+msgstr "庫存分析讓您輕鬆地檢查及分析您公司的庫存水平。藉由篩選條件進行排序及分組,協助您妥善的分析與管理您公司的活動。"
#. module: stock
#: help:report.stock.move,location_id:0
@@ -2768,7 +2768,7 @@ msgstr ""
msgid ""
"Sets a location if you produce at a fixed location. This can be a partner "
"location if you subcontract the manufacturing operations."
-msgstr ""
+msgstr "假如您在一個固定地點生產,則請設定倉位。假如您有外包製造,則可以設為一個夥伴倉位。"
#. module: stock
#: view:stock.invoice.onshipping:0
@@ -2778,7 +2778,7 @@ msgstr "建立"
#. module: stock
#: field:stock.change.product.qty,new_quantity:0
msgid "New Quantity on Hand"
-msgstr ""
+msgstr "在庫數量調整"
#. module: stock
#: field:stock.move,priority:0
@@ -2862,12 +2862,12 @@ msgstr "報廢"
msgid ""
"By changing the quantity here, you accept the new quantity as complete: "
"OpenERP will not automatically generate a Back Order."
-msgstr ""
+msgstr "修改此處的數量,則以新的數量視為完成。OpenERP 將不會自動建立一個延期交貨單。"
#. module: stock
#: report:stock.inventory.move:0
msgid "Manual Quantity"
-msgstr ""
+msgstr "手動調整數量"
#. module: stock
#: view:product.product:0
@@ -2902,7 +2902,7 @@ msgid ""
"specific filtering criteria. If you do frequent and partial inventories, you "
"need this report in order to ensure that the stock of each product is "
"controlled at least once a year."
-msgstr ""
+msgstr "顯示您最後一次盤點結果,並可輕鬆地用篩選條件排序。假如您經常進行部分盤點,建議您至少每年一次以這份報表確定控管每個產品的庫存。"
#. module: stock
#: code:addons/stock/wizard/stock_invoice_onshipping.py:112
@@ -2921,6 +2921,13 @@ msgid ""
" - alert date.\n"
"This installs the module product_expiry."
msgstr ""
+"對產品及序號追蹤不同的日期。\n"
+"以下的日期可被追蹤:\n"
+" - 壽命終止日期\n"
+" - 最佳使用日期\n"
+" - 移除日期\n"
+" - 提醒日期\n"
+"此功能將安裝模組 product_expiry 。"
#. module: stock
#: code:addons/stock/wizard/stock_partial_picking.py:174
diff --git a/addons/stock_no_autopicking/i18n/mn.po b/addons/stock_no_autopicking/i18n/mn.po
index a9bbfa7b587..175e3be5753 100644
--- a/addons/stock_no_autopicking/i18n/mn.po
+++ b/addons/stock_no_autopicking/i18n/mn.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-06-07 19:37+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2014-02-12 23:46+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-11-21 06:37+0000\n"
-"X-Generator: Launchpad (build 16831)\n"
+"X-Launchpad-Export-Date: 2014-02-13 06:47+0000\n"
+"X-Generator: Launchpad (build 16916)\n"
#. module: stock_no_autopicking
#: model:ir.model,name:stock_no_autopicking.model_mrp_production
@@ -25,14 +25,14 @@ msgstr "Үйлдвэрлэлийн Захиалга"
#. module: stock_no_autopicking
#: model:ir.model,name:stock_no_autopicking.model_product_product
msgid "Product"
-msgstr "Бүтээгдэхүүн"
+msgstr "Бараа"
#. module: stock_no_autopicking
#: field:product.product,auto_pick:0
msgid "Auto Picking"
-msgstr "Автомат Сонголт"
+msgstr "Автомат Бэлтгэн"
#. module: stock_no_autopicking
#: help:product.product,auto_pick:0
msgid "Auto picking for raw materials of production orders."
-msgstr "Бүтээгдэхүүн захиалгын түүхий матералуудын автомат сонголт"
+msgstr "Үйлдвэрлэлийн захиалгын түүхийн эдийн автомат бэлтгэн"
From 409c3cfe9f1cdda1b8d9672fc3c0c246ed425894 Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Thu, 13 Feb 2014 09:50:08 +0100
Subject: [PATCH 5/9] [FIX] data: _.find (prefered to older _.detect) may
return undefined if no match and would trow an error when applying .values
Instead returns undefined which is handled below. This does not solve the
issue when records are not loaded properly but gives a better information on
the reason.
bzr revid: mat@openerp.com-20140213085008-pnq4r0ebfl072u78
---
addons/web/static/src/js/data.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js
index e1290deac02..abfb4c15347 100644
--- a/addons/web/static/src/js/data.js
+++ b/addons/web/static/src/js/data.js
@@ -848,7 +848,8 @@ instance.web.BufferedDataSet = instance.web.DataSetStatic.extend({
});
var return_records = function() {
var records = _.map(ids, function(id) {
- return _.extend({}, _.detect(self.cache, function(c) {return c.id === id;}).values, {"id": id});
+ var c = _.find(self.cache, function(c) {return c.id === id;});
+ return _.isUndefined(c) ? c : _.extend({}, c.values, {"id": id});
});
if (self.debug_mode) {
if (_.include(records, undefined)) {
From dca7f71d71250fdd3308dbea6fcbdeb3be1c733e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Thu, 13 Feb 2014 10:01:22 +0100
Subject: [PATCH 6/9] [DOC] mail_thread: docstrings to add raised exceptions in
message_process and message_route
bzr revid: tde@openerp.com-20140213090122-0gwin1pjigwu42sz
---
addons/mail/mail_thread.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index edc1b6e7ba5..030daaae1a9 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -521,6 +521,8 @@ class mail_thread(osv.AbstractModel):
to which this mail should be attached. Only used if the message
does not reply to an existing thread and does not match any mail alias.
:return: list of [model, thread_id, custom_values, user_id]
+
+ :raises: ValueError, TypeError
"""
if not isinstance(message, Message):
raise TypeError('message must be an email.message.Message at this point')
@@ -641,6 +643,8 @@ class mail_thread(osv.AbstractModel):
to which this mail should be attached. When provided, this
overrides the automatic detection based on the message
headers.
+
+ :raises: ValueError, TypeError
"""
if context is None:
context = {}
From ec5291c130416164d3e6f39ddd2b2da7eb208f1b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Thu, 13 Feb 2014 10:57:17 +0100
Subject: [PATCH 7/9] [IMP] fetchmail: try / except the processinf of each
email and log any exception found during processing. This way, all emails in
the queue are managed and all failed emails have their own exception in the
logs, allowing easier debugging. Note that a failed email is set as seen to
avoid processing it every time the scheduler runs.
bzr revid: tde@openerp.com-20140213095717-tcwgkl143i3ujw8h
---
addons/fetchmail/fetchmail.py | 41 +++++++++++++++++++++--------------
addons/mail/mail_thread.py | 2 +-
2 files changed, 26 insertions(+), 17 deletions(-)
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index ae3d60cee0a..5bd360390da 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -188,7 +188,7 @@ openerp_mailgate: "|/path/to/openerp-mailgate.py --host=localhost -u %(uid)d -p
for server in self.browse(cr, uid, ids, context=context):
_logger.info('start checking for new emails on %s server %s', server.type, server.name)
context.update({'fetchmail_server_id': server.id, 'server_type': server.type})
- count = 0
+ count, failed = 0, 0
imap_server = False
pop_server = False
if server.type == 'imap':
@@ -197,21 +197,26 @@ openerp_mailgate: "|/path/to/openerp-mailgate.py --host=localhost -u %(uid)d -p
imap_server.select()
result, data = imap_server.search(None, '(UNSEEN)')
for num in data[0].split():
+ res_id = None
result, data = imap_server.fetch(num, '(RFC822)')
imap_server.store(num, '-FLAGS', '\\Seen')
- res_id = mail_thread.message_process(cr, uid, server.object_id.model,
- data[0][1],
- save_original=server.original,
- strip_attachments=(not server.attach),
- context=context)
+ try:
+ res_id = mail_thread.message_process(cr, uid, server.object_id.model,
+ data[0][1],
+ save_original=server.original,
+ strip_attachments=(not server.attach),
+ context=context)
+ except Exception:
+ _logger.exception('Failed to process mail from %s server %s.', server.type, server.name)
+ failed += 1
if res_id and server.action_id:
- action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id], 'active_model': context.get("thread_model", server.object_id.model)})
+ action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids': [res_id], 'active_model': context.get("thread_model", server.object_id.model)})
imap_server.store(num, '+FLAGS', '\\Seen')
cr.commit()
count += 1
- _logger.info("fetched/processed %s email(s) on %s server %s", count, server.type, server.name)
+ _logger.info("Fetched %d email(s) on %s server %s; %d succeeded, %d failed.", count, server.type, server.name, (count - failed), failed)
except Exception:
- _logger.exception("Failed to fetch mail from %s server %s.", server.type, server.name)
+ _logger.exception("General fallure when trying to fetch mail from %s server %s.", server.type, server.name)
finally:
if imap_server:
imap_server.close()
@@ -224,16 +229,20 @@ openerp_mailgate: "|/path/to/openerp-mailgate.py --host=localhost -u %(uid)d -p
for num in range(1, numMsgs + 1):
(header, msges, octets) = pop_server.retr(num)
msg = '\n'.join(msges)
- res_id = mail_thread.message_process(cr, uid, server.object_id.model,
- msg,
- save_original=server.original,
- strip_attachments=(not server.attach),
- context=context)
+ try:
+ res_id = mail_thread.message_process(cr, uid, server.object_id.model,
+ msg,
+ save_original=server.original,
+ strip_attachments=(not server.attach),
+ context=context)
+ except Exception:
+ _logger.exception('Failed to process mail from %s server %s.', server.type, server.name)
+ failed += 1
if res_id and server.action_id:
- action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id], 'active_model': context.get("thread_model", server.object_id.model)})
+ action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids': [res_id], 'active_model': context.get("thread_model", server.object_id.model)})
pop_server.dele(num)
cr.commit()
- _logger.info("fetched/processed %s email(s) on %s server %s", numMsgs, server.type, server.name)
+ _logger.info("Fetched %d email(s) on %s server %s; %d succeeded, %d failed.", numMsgs, server.type, server.name, (numMsgs - failed), failed)
except Exception:
_logger.exception("Failed to fetch mail from %s server %s.", server.type, server.name)
finally:
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index 030daaae1a9..40a4fefa8a8 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -598,7 +598,7 @@ class mail_thread(osv.AbstractModel):
thread_id = False
if not (thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new')):
raise ValueError(
- 'No possible route found for incoming message from %s to %s (Message-Id %s:).'
+ 'No possible route found for incoming message from %s to %s (Message-Id %s:). '
'Create an appropriate mail.alias or force the destination model.' %
(email_from, email_to, message_id)
)
From 0f111f7b9656fa545dc068bf192ece06c92e87fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Thu, 13 Feb 2014 12:29:46 +0100
Subject: [PATCH 8/9] [FIX] fetchmail: typos in logger messages
bzr revid: tde@openerp.com-20140213112946-i351aazw4r2ezfz4
---
addons/fetchmail/fetchmail.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index 5bd360390da..3402241bf5d 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -216,7 +216,7 @@ openerp_mailgate: "|/path/to/openerp-mailgate.py --host=localhost -u %(uid)d -p
count += 1
_logger.info("Fetched %d email(s) on %s server %s; %d succeeded, %d failed.", count, server.type, server.name, (count - failed), failed)
except Exception:
- _logger.exception("General fallure when trying to fetch mail from %s server %s.", server.type, server.name)
+ _logger.exception("General failure when trying to fetch mail from %s server %s.", server.type, server.name)
finally:
if imap_server:
imap_server.close()
@@ -244,7 +244,7 @@ openerp_mailgate: "|/path/to/openerp-mailgate.py --host=localhost -u %(uid)d -p
cr.commit()
_logger.info("Fetched %d email(s) on %s server %s; %d succeeded, %d failed.", numMsgs, server.type, server.name, (numMsgs - failed), failed)
except Exception:
- _logger.exception("Failed to fetch mail from %s server %s.", server.type, server.name)
+ _logger.exception("General failure when trying to fetch mail from %s server %s.", server.type, server.name)
finally:
if pop_server:
pop_server.quit()
From ff389d847877241559600e614fbdead68aac4b25 Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Thu, 13 Feb 2014 13:03:49 +0100
Subject: [PATCH 9/9] [FIX] remove useless cr.commit in fields creation This is
require to be able to create revertable tests adding new fields
bzr revid: mat@openerp.com-20140213120349-a0p3bist5l5uyg6b
---
openerp/osv/orm.py | 4 ----
1 file changed, 4 deletions(-)
diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py
index fde94ff90f0..e95c6ed7533 100644
--- a/openerp/osv/orm.py
+++ b/openerp/osv/orm.py
@@ -765,8 +765,6 @@ class BaseModel(object):
(name_id, context['module'], 'ir.model', model_id)
)
- cr.commit()
-
cr.execute("SELECT * FROM ir_model_fields WHERE model=%s", (self._name,))
cols = {}
for rec in cr.dictfetchall():
@@ -834,7 +832,6 @@ class BaseModel(object):
for key, val in vals.items():
if cols[k][key] != vals[key]:
cr.execute('update ir_model_fields set field_description=%s where model=%s and name=%s', (vals['field_description'], vals['model'], vals['name']))
- cr.commit()
cr.execute("""UPDATE ir_model_fields SET
model_id=%s, field_description=%s, ttype=%s, relation=%s,
view_load=%s, select_level=%s, readonly=%s ,required=%s, selectable=%s, relation_field=%s, translate=%s, serialization_field_id=%s
@@ -845,7 +842,6 @@ class BaseModel(object):
vals['select_level'], bool(vals['readonly']), bool(vals['required']), bool(vals['selectable']), vals['relation_field'], bool(vals['translate']), vals['serialization_field_id'], vals['model'], vals['name']
))
break
- cr.commit()
#
# Goal: try to apply inheritance at the instanciation level and