diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index d771bc59506..af762611ec2 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -97,6 +97,8 @@ class account_invoice(osv.osv):
for m in invoice.move_id.line_id:
if m.account_id.type in ('receivable','payable'):
result[invoice.id] += m.amount_residual_currency
+ #prevent the residual amount on the invoice to be less than 0
+ result[invoice.id] = max(result[invoice.id], 0.0)
return result
# Give Journal Items related to the payment reconciled to this invoice
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index a96ed889aae..36d211c11d2 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -741,20 +741,17 @@ class account_move_line(osv.osv):
def list_partners_to_reconcile(self, cr, uid, context=None):
cr.execute(
- """
- SELECT partner_id
- FROM (
- SELECT l.partner_id, p.last_reconciliation_date, SUM(l.debit) AS debit, SUM(l.credit) AS credit
+ """SELECT partner_id FROM (
+ SELECT l.partner_id, p.last_reconciliation_date, SUM(l.debit) AS debit, SUM(l.credit) AS credit, MAX(l.date) AS max_date
FROM account_move_line l
RIGHT JOIN account_account a ON (a.id = l.account_id)
RIGHT JOIN res_partner p ON (l.partner_id = p.id)
WHERE a.reconcile IS TRUE
AND l.reconcile_id IS NULL
- AND (p.last_reconciliation_date IS NULL OR l.date > p.last_reconciliation_date)
AND l.state <> 'draft'
GROUP BY l.partner_id, p.last_reconciliation_date
) AS s
- WHERE debit > 0 AND credit > 0
+ WHERE debit > 0 AND credit > 0 AND (last_reconciliation_date IS NULL OR max_date > last_reconciliation_date)
ORDER BY last_reconciliation_date""")
ids = cr.fetchall()
ids = len(ids) and [x[0] for x in ids] or []
diff --git a/addons/account/partner.py b/addons/account/partner.py
index 346cc38f5df..ae8d2fc1871 100644
--- a/addons/account/partner.py
+++ b/addons/account/partner.py
@@ -233,7 +233,7 @@ class res_partner(osv.osv):
help="This payment term will be used instead of the default one for purchase orders and supplier invoices"),
'ref_companies': fields.one2many('res.company', 'partner_id',
'Companies that refers to partner'),
- 'last_reconciliation_date': fields.datetime('Latest Reconciliation Date', help='Date on which the partner accounting entries were fully reconciled last time. It differs from the date of the last reconciliation made for this partner, as here we depict the fact that nothing more was to be reconciled at this date. This can be achieved in 2 ways: either the last debit/credit entry was reconciled, either the user pressed the button "Fully Reconciled" in the manual reconciliation process')
+ 'last_reconciliation_date': fields.datetime('Latest Full Reconciliation Date', help='Date on which the partner accounting entries were fully reconciled last time. It differs from the last date where a reconciliation has been made for this partner, as here we depict the fact that nothing more was to be reconciled at this date. This can be achieved in 2 different ways: either the last unreconciled debit/credit entry of this partner was reconciled, either the user pressed the button "Nothing more to reconcile" during the manual reconciliation process.')
}
res_partner()
diff --git a/addons/account/static/src/xml/account_move_reconciliation.xml b/addons/account/static/src/xml/account_move_reconciliation.xml
index d7b5301238d..3074fdb49b1 100644
--- a/addons/account/static/src/xml/account_move_reconciliation.xml
+++ b/addons/account/static/src/xml/account_move_reconciliation.xml
@@ -22,13 +22,13 @@
- Last Reconciliation:
+ Latest Manual Reconciliation Processed:
-
+
diff --git a/addons/account/test/account_bank_statement.yml b/addons/account/test/account_bank_statement.yml
index cbd35be438a..3711cff4d56 100644
--- a/addons/account/test/account_bank_statement.yml
+++ b/addons/account/test/account_bank_statement.yml
@@ -7,7 +7,7 @@
import time
journal = self._default_journal_id(cr, uid, {'lang': u'en_US', 'tz': False, 'active_model': 'ir.ui.menu',
'journal_type': 'bank', 'period_id': time.strftime('%m'), 'active_ids': [ref('menu_bank_statement_tree')], 'active_id': ref('menu_bank_statement_tree')})
- assert journal, _('Journal has not been selected')
+ assert journal, 'Journal has not been selected'
-
I create a bank statement with Opening and Closing balance 0.
-
diff --git a/addons/account/test/account_use_model.yml b/addons/account/test/account_use_model.yml
index ab69b251919..16153cd6f8c 100644
--- a/addons/account/test/account_use_model.yml
+++ b/addons/account/test/account_use_model.yml
@@ -41,7 +41,7 @@
ids = self.search(cr, uid, [('ref', '=', 'My Test Model')])
self.button_validate(cr, uid, ids, {})
moves = self.browse(cr, uid, ids)[0]
- assert(moves.state == 'posted'), _('Journal Entries are not in posted state')
+ assert(moves.state == 'posted'), 'Journal Entries are not in posted state'
-
Then I create Recurring Lines
-
@@ -57,7 +57,7 @@
self.compute(cr, uid, [ref('test_recurring_lines')], {'lang': u'en_US', 'active_model': 'ir.ui.menu',
'active_ids': [ref('menu_action_subscription_form')], 'tz': False, 'active_id': ref('menu_action_subscription_form')})
subscription_lines = subscription_line_obj.search(cr, uid, [('subscription_id', '=', ref('test_recurring_lines'))])
- assert subscription_lines, _('Subscription lines has not been created')
+ assert subscription_lines, 'Subscription lines has not been created'
-
I provide date in 'Generate Entries' wizard
-
@@ -69,5 +69,5 @@
!python {model: account.subscription.generate}: |
res = self.action_generate(cr, uid, [ref('account_subscription_generate')], {'lang': u'en_US', 'active_model': 'ir.ui.menu',
'active_ids': [ref('menu_generate_subscription')], 'tz': False, 'active_id': ref('menu_generate_subscription')})
- assert res, _('Move for subscription lines has not been created')
+ assert res, 'Move for subscription lines has not been created'
diff --git a/addons/account_test/i18n/zh_CN.po b/addons/account_test/i18n/zh_CN.po
new file mode 100644
index 00000000000..081320aa24a
--- /dev/null
+++ b/addons/account_test/i18n/zh_CN.po
@@ -0,0 +1,241 @@
+# Chinese (Simplified) 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-03-21 19:22+0000\n"
+"Last-Translator: Liuming \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-22 04:57+0000\n"
+"X-Generator: Launchpad (build 16532)\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 "测试2: 打开一个会计年度"
+
+#. 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/analytic_contract_hr_expense/analytic_contract_hr_expense.py b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py
index 254dad95c7d..8b10381434d 100644
--- a/addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py
+++ b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py
@@ -76,11 +76,11 @@ class account_analytic_account(osv.osv):
GROUP BY product_id, user_id, to_invoice, product_uom_id, line.name""", (account.id,))
res[account.id] = 0.0
- for product_id, price, user_id, factor_id, qty, uom, line_name in cr.fetchall():
+ for product_id, total_amount, user_id, factor_id, qty, uom, line_name in cr.fetchall():
#the amount to reinvoice is the real cost. We don't use the pricelist
- price = -price
+ total_amount = -total_amount
factor = self.pool.get('hr_timesheet_invoice.factor').browse(cr, uid, factor_id, context=context)
- res[account.id] += price * qty * (100 - factor.factor or 0.0) / 100.0
+ res[account.id] += total_amount * (100 - factor.factor or 0.0) / 100.0
return res
def _expense_invoiced_calc(self, cr, uid, ids, name, arg, context=None):
@@ -89,8 +89,13 @@ class account_analytic_account(osv.osv):
for account in self.browse(cr, uid, ids, context=context):
res[account.id] = 0.0
line_ids = lines_obj.search(cr, uid, [('account_id','=', account.id), ('invoice_id','!=',False), ('to_invoice','!=', False), ('journal_id.type', '=', 'purchase')], context=context)
+ #Put invoices in separate array in order not to calculate them double
+ invoices = []
for line in lines_obj.browse(cr, uid, line_ids, context=context):
- res[account.id] += line.invoice_id.amount_untaxed
+ if line.invoice_id not in invoices:
+ invoices.append(line.invoice_id)
+ for invoice in invoices:
+ res[account.id] += invoice.amount_untaxed
return res
def _ca_invoiced_calc(self, cr, uid, ids, name, arg, context=None):
diff --git a/addons/analytic_contract_hr_expense/i18n/hu.po b/addons/analytic_contract_hr_expense/i18n/hu.po
new file mode 100644
index 00000000000..f89f0239698
--- /dev/null
+++ b/addons/analytic_contract_hr_expense/i18n/hu.po
@@ -0,0 +1,72 @@
+# 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-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-03-20 14:54+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-03-21 04:38+0000\n"
+"X-Generator: Launchpad (build 16532)\n"
+
+#. module: analytic_contract_hr_expense
+#: view:account.analytic.account:0
+msgid "or view"
+msgstr "vagy nézet"
+
+#. module: analytic_contract_hr_expense
+#: view:account.analytic.account:0
+msgid "Nothing to invoice, create"
+msgstr "Nincs mit számlázni, hozzon létre"
+
+#. module: analytic_contract_hr_expense
+#: view:account.analytic.account:0
+msgid "expenses"
+msgstr "költségek"
+
+#. module: analytic_contract_hr_expense
+#: model:ir.model,name:analytic_contract_hr_expense.model_account_analytic_account
+msgid "Analytic Account"
+msgstr "Gyűjtő/elemző könyvelés"
+
+#. module: analytic_contract_hr_expense
+#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:129
+#, python-format
+msgid "Expenses to Invoice of %s"
+msgstr "Ennek számlázandó költségei %s"
+
+#. module: analytic_contract_hr_expense
+#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:121
+#, python-format
+msgid "Expenses of %s"
+msgstr "Ennek költségei %s"
+
+#. module: analytic_contract_hr_expense
+#: field:account.analytic.account,expense_invoiced:0
+#: field:account.analytic.account,expense_to_invoice:0
+#: field:account.analytic.account,remaining_expense:0
+msgid "unknown"
+msgstr "ismeretlen"
+
+#. module: analytic_contract_hr_expense
+#: field:account.analytic.account,est_expenses:0
+msgid "Estimation of Expenses to Invoice"
+msgstr "Költségek költségek számlázára"
+
+#. module: analytic_contract_hr_expense
+#: field:account.analytic.account,charge_expenses:0
+msgid "Charge Expenses"
+msgstr "Költségek felszámolása"
+
+#. module: analytic_contract_hr_expense
+#: view:account.analytic.account:0
+msgid "⇒ Invoice"
+msgstr "⇒ Számla"
diff --git a/addons/analytic_user_function/i18n/hu.po b/addons/analytic_user_function/i18n/hu.po
index 1fd3d635c10..64b7d6b3367 100644
--- a/addons/analytic_user_function/i18n/hu.po
+++ b/addons/analytic_user_function/i18n/hu.po
@@ -7,44 +7,44 @@ 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-09 13:28+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-03-20 14:30+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-03-16 05:34+0000\n"
+"X-Launchpad-Export-Date: 2013-03-21 04:38+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: analytic_user_function
#: model:ir.model,name:analytic_user_function.model_account_analytic_line
msgid "Analytic Line"
-msgstr ""
+msgstr "Gyűjtőkód tételsor"
#. module: analytic_user_function
#: view:account.analytic.account:0
msgid "Invoice Price Rate per User"
-msgstr ""
+msgstr "Számlázási ár mértéke felhasználónként"
#. module: analytic_user_function
#: field:analytic.user.funct.grid,product_id:0
msgid "Service"
-msgstr ""
+msgstr "Szolgáltatás"
#. module: analytic_user_function
#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
msgid "Price per User"
-msgstr ""
+msgstr "Felhasználónkénti ár"
#. module: analytic_user_function
#: field:analytic.user.funct.grid,price:0
msgid "Price"
-msgstr ""
+msgstr "Ár"
#. module: analytic_user_function
#: help:analytic.user.funct.grid,price:0
msgid "Price per hour for this user."
-msgstr ""
+msgstr "Ennek a felhasználónak a óránkénti ára."
#. module: analytic_user_function
#: field:analytic.user.funct.grid,account_id:0
@@ -57,12 +57,12 @@ msgstr "Gyűjtőkód"
#: code:addons/analytic_user_function/analytic_user_function.py:135
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Hiba!"
#. module: analytic_user_function
#: view:analytic.user.funct.grid:0
msgid "Invoicing Data"
-msgstr ""
+msgstr "Számlázási adatok"
#. module: analytic_user_function
#: field:account.analytic.account,user_product_ids:0
@@ -78,11 +78,16 @@ msgid ""
" of the default values when invoicing the "
"customer."
msgstr ""
+"Határozzon meg egy sajátos szolgáltatást (pl. Rangelső tanácsadó)\n"
+" és árat egy pár felhasználóhoz ezeknek az "
+"adatoknak az alap\n"
+" adatok helyetti használatához a vevő "
+"számlázására."
#. module: analytic_user_function
#: field:analytic.user.funct.grid,uom_id:0
msgid "Unit of Measure"
-msgstr ""
+msgstr "Mértékegység"
#. module: analytic_user_function
#: code:addons/analytic_user_function/analytic_user_function.py:107
@@ -105,6 +110,13 @@ msgid ""
" specific user. This allows to set invoicing\n"
" conditions for a group of contracts."
msgstr ""
+"OpenERP visszamenőlegesen keresi a szülő fiókokban annak\n"
+" ellenőrzésére, hogy sajátos körülmények vannak-"
+"e\n"
+" meghatározva a felhasználóhoz. Ez lehetővé "
+"teszi\n"
+" sajátos számlázási körülmény beállítását egy "
+"vevő csoporthoz."
#. module: analytic_user_function
#: field:analytic.user.funct.grid,user_id:0
diff --git a/addons/anonymization/i18n/hu.po b/addons/anonymization/i18n/hu.po
new file mode 100644
index 00000000000..bcaca33f351
--- /dev/null
+++ b/addons/anonymization/i18n/hu.po
@@ -0,0 +1,350 @@
+# 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-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-03-20 14:51+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-03-21 04:38+0000\n"
+"X-Generator: Launchpad (build 16532)\n"
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
+msgid "ir.model.fields.anonymize.wizard"
+msgstr "ir.model.fields.anonymize.wizard"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,model_id:0
+msgid "Object"
+msgstr "Objektum"
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_migration_fix
+msgid "ir.model.fields.anonymization.migration.fix"
+msgstr "ir.model.fields.anonymization.migration.fix"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.migration.fix,target_version:0
+msgid "Target Version"
+msgstr "Cél verziója"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
+msgid "sql"
+msgstr "sql"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:91
+#, python-format
+msgid ""
+"The database anonymization is currently in an unstable state. Some fields "
+"are anonymized, while some fields are not anonymized. You should try to "
+"solve this problem before trying to create, write or delete fields."
+msgstr ""
+"Az adatbázis névtelenítő/titkosító bizonytalan állapotban van. Egyes mezők "
+"névtelenítettek/titkosítottak lesznek, de egyesek nem. Ezt a problémát meg "
+"kell oldania, mielőtt mezőket hozna létre, írna vagy törölne."
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,field_name:0
+msgid "Field Name"
+msgstr "Mezőnév"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,field_id:0
+#: field:ir.model.fields.anonymization.migration.fix,field_name:0
+msgid "Field"
+msgstr "Mező"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+msgid "New"
+msgstr "Új"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,file_import:0
+msgid "Import"
+msgstr "Importálás"
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
+msgid "ir.model.fields.anonymization"
+msgstr "ir.model.fields.anonymization"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:300
+#, python-format
+msgid ""
+"Before executing the anonymization process, you should make a backup of your "
+"database."
+msgstr ""
+"Mielőtt kiadna egy névtelenítő/titkosító folyamatot, készítsen mentést az "
+"adatbázisról."
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,state:0
+#: field:ir.model.fields.anonymize.wizard,state:0
+msgid "Status"
+msgstr "Állapot"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,direction:0
+msgid "Direction"
+msgstr "Irány"
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree
+#: view:ir.model.fields.anonymization:0
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields
+msgid "Anonymized Fields"
+msgstr "névtelenített/titkosított mezők"
+
+#. module: anonymization
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
+msgid "Database anonymization"
+msgstr "Adatbázis névtelenítés/titkosítás"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,direction:0
+msgid "clear -> anonymized"
+msgstr "törlés -> titkosított"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Anonymized"
+msgstr "Névtelenített/titkosított"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,state:0
+msgid "unknown"
+msgstr "ismeretlen"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:448
+#, python-format
+msgid "Anonymized value is None. This cannot happens."
+msgstr "Nincs névtelenítés/titkosítás. Ilyen nincs."
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,filepath:0
+msgid "File path"
+msgstr "Fájl elérési útvonal"
+
+#. module: anonymization
+#: help:ir.model.fields.anonymize.wizard,file_import:0
+msgid ""
+"This is the file created by the anonymization process. It should have the "
+"'.pickle' extention."
+msgstr ""
+"Ez a névtelenítési/titkosítási folyamat által létrehozott fájl. Ennek "
+"'.pickle' kiterjesztésűnek kell lennie."
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,date:0
+msgid "Date"
+msgstr "Dátum"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,file_export:0
+msgid "Export"
+msgstr "Exportálás"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Reverse the Database Anonymization"
+msgstr "Állítsa vissza az adatbázis névtelenítését/titkosítását"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:444
+#, python-format
+msgid ""
+"Cannot anonymize fields of these types: binary, many2many, many2one, "
+"one2many, reference."
+msgstr ""
+"ilyen típusú mezőket nem tud névteleníteni/titkosítani: bináris, many2many, "
+"many2one, one2many, referencia, hivatkozás."
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Database Anonymization"
+msgstr "Adatbázis névtelenítése/titkosítása"
+
+#. module: anonymization
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
+msgid "Anonymize database"
+msgstr "Adatbázis névtelenítés/titkosítás"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
+msgid "python"
+msgstr "python"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization.history:0
+#: field:ir.model.fields.anonymization.history,field_ids:0
+msgid "Fields"
+msgstr "Mezők"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Clear"
+msgstr "Tiszta"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:533
+#, python-format
+msgid ""
+"It is not possible to reverse the anonymization process without supplying "
+"the anonymization export file."
+msgstr ""
+"Nem lehetséges a névtelenítés/titkosítás visszaállítási folyamat az "
+"névtelenítési/titkosítási export fájl megléte nélkül."
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,summary:0
+msgid "Summary"
+msgstr "Összegzés"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization:0
+msgid "Anonymized Field"
+msgstr "Névtelenített/titkosított mező"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:391
+#: code:addons/anonymization/anonymization.py:526
+#, python-format
+msgid ""
+"The database anonymization is currently in an unstable state. Some fields "
+"are anonymized, while some fields are not anonymized. You should try to "
+"solve this problem before trying to do anything."
+msgstr ""
+"Az adatbázis névtelenítő/titkosító bizonytalan állapotban van. Egyes mezők "
+"névtelenítettek/titkosítottak lesznek, de egyesek nem. Ezt a problémát meg "
+"kell oldania, mielőtt tenne valamit."
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Unstable"
+msgstr "Bizonytalan"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Exception occured"
+msgstr "Kivétel keletkezett"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+msgid "Not Existing"
+msgstr "Nem létező"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,model_name:0
+msgid "Object Name"
+msgstr "Tárgy neve"
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree
+#: view:ir.model.fields.anonymization.history:0
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history
+msgid "Anonymization History"
+msgstr "Névtelenítési/titkosítási történet"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.migration.fix,model_name:0
+msgid "Model"
+msgstr "Modell"
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
+msgid "ir.model.fields.anonymization.history"
+msgstr "ir.model.fields.anonymization.history"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:358
+#, python-format
+msgid ""
+"The database anonymization is currently in an unstable state. Some fields "
+"are anonymized, while some fields are not anonymized. You should try to "
+"solve this problem before trying to do anything else."
+msgstr ""
+"Az adatbázis névtelenítő/titkosító bizonytalan állapotban van. Egyes mezők "
+"névtelenítettek/titkosítottak lesznek, de egyesek nem. Ezt a problémát meg "
+"kell oldania, mielőtt tenne valami mást."
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:389
+#: code:addons/anonymization/anonymization.py:448
+#, python-format
+msgid "Error !"
+msgstr "Hiba!"
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Anonymize Database"
+msgstr "Adatbázis névtelenítés/titkosítás"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,name:0
+msgid "File Name"
+msgstr "Fájl neve"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.migration.fix,sequence:0
+msgid "Sequence"
+msgstr "Sorrend/szekvencia"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,direction:0
+msgid "anonymized -> clear"
+msgstr "névtelenített/titkosított -> üres"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Started"
+msgstr "Elkezdve"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:389
+#, python-format
+msgid "The database is currently anonymized, you cannot anonymize it again."
+msgstr ""
+"Az adatbázis jelenleg névtelenítettek/titkosítot, nem tudja még egyszer "
+"névteleníteteni/titkosítani."
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Done"
+msgstr "Elvégezve"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.migration.fix,query:0
+#: field:ir.model.fields.anonymization.migration.fix,query_type:0
+msgid "Query"
+msgstr "Kérdés"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization.history:0
+#: field:ir.model.fields.anonymization.history,msg:0
+#: field:ir.model.fields.anonymize.wizard,msg:0
+msgid "Message"
+msgstr "Üzenet"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:65
+#: sql_constraint:ir.model.fields.anonymization:0
+#, python-format
+msgid "You cannot have two fields with the same name on the same object!"
+msgstr "Nem lehet ugyanazon a tárgyon lévő két mezőnek ugyanaz a neve!"
diff --git a/addons/association/i18n/hu.po b/addons/association/i18n/hu.po
index ee3d0d9963b..e35eb0d4f7b 100644
--- a/addons/association/i18n/hu.po
+++ b/addons/association/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: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-02-02 16:47+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-03-20 13:52+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-03-16 05:47+0000\n"
+"X-Launchpad-Export-Date: 2013-03-21 04:38+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: association
@@ -29,7 +29,7 @@ msgstr "Események kezelése"
#. module: association
#: field:profile.association.config.install_modules_wizard,project_gtd:0
msgid "Getting Things Done"
-msgstr ""
+msgstr "Getting Things Done - GTD módszer, végezzük el a feladatokat"
#. module: association
#: model:ir.module.module,description:association.module_meta_information
@@ -81,6 +81,8 @@ msgid ""
"GTD is a methodology to efficiently organise yourself and your tasks. This "
"module fully integrates GTD principle with OpenERP's project management."
msgstr ""
+"A GTD a feladatok hatékony rendszerezésére szolgáló módszertan. Ez a modul "
+"teljesen integrálja a GTD alapelvet az OpenERP projektmenedzsmentjébe."
#. module: association
#: view:profile.association.config.install_modules_wizard:0
diff --git a/addons/audittrail/i18n/hu.po b/addons/audittrail/i18n/hu.po
index 4fb375181cd..e5bee742c5c 100644
--- a/addons/audittrail/i18n/hu.po
+++ b/addons/audittrail/i18n/hu.po
@@ -7,25 +7,25 @@ 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 12:50+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-03-20 14:23+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-03-16 05:32+0000\n"
+"X-Launchpad-Export-Date: 2013-03-21 04:38+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: audittrail
#: view:audittrail.log:0
msgid "Old Value Text : "
-msgstr ""
+msgstr "Szöveg régi értéke: "
#. module: audittrail
#: code:addons/audittrail/audittrail.py:76
#, python-format
msgid "WARNING: audittrail is not part of the pool"
-msgstr ""
+msgstr "VIGYÁZAT: sávvizsgálat nem képezi részét az összegyűjtött edatnak"
#. module: audittrail
#: field:audittrail.log.line,log_id:0
@@ -36,7 +36,7 @@ msgstr "Napló"
#: view:audittrail.rule:0
#: selection:audittrail.rule,state:0
msgid "Subscribed"
-msgstr ""
+msgstr "Feliratkozva"
#. module: audittrail
#: code:addons/audittrail/audittrail.py:260
@@ -44,31 +44,31 @@ msgstr ""
#: code:addons/audittrail/audittrail.py:408
#, python-format
msgid "'%s' Model does not exist..."
-msgstr ""
+msgstr "'%s' Modell nem létezik..."
#. module: audittrail
#: view:audittrail.rule:0
msgid "Subscribed Rule"
-msgstr ""
+msgstr "Szabály a feliratkozáshoz"
#. module: audittrail
#: view:audittrail.rule:0
#: model:ir.model,name:audittrail.model_audittrail_rule
msgid "Audittrail Rule"
-msgstr ""
+msgstr "Szabály a sávvizsgálatra"
#. module: audittrail
#: view:audittrail.rule:0
#: field:audittrail.rule,state:0
msgid "Status"
-msgstr ""
+msgstr "Állapot"
#. module: audittrail
#: view:audittrail.view.log:0
#: model:ir.actions.act_window,name:audittrail.action_audittrail_log_tree
#: model:ir.ui.menu,name:audittrail.menu_audit_logs
msgid "Audit Logs"
-msgstr ""
+msgstr "Vizsgálati naplózások"
#. module: audittrail
#: view:audittrail.log:0
@@ -79,7 +79,7 @@ msgstr "Csoportosítás..."
#. module: audittrail
#: view:audittrail.rule:0
msgid "_Subscribe"
-msgstr ""
+msgstr "_Feliratkozás"
#. module: audittrail
#: view:audittrail.rule:0
@@ -103,6 +103,8 @@ msgid ""
"Select this if you want to keep track of read/open on any record of the "
"object of this rule"
msgstr ""
+"Válassza ezt, ha nyomon akarja követni ehhez a szabályhoz tartozó bármely "
+"objektum rekord írását/olvasását"
#. module: audittrail
#: field:audittrail.log,method:0
@@ -112,7 +114,7 @@ msgstr "Módszer"
#. module: audittrail
#: field:audittrail.view.log,from:0
msgid "Log From"
-msgstr ""
+msgstr "Naplózási forma"
#. module: audittrail
#: field:audittrail.log.line,log:0
@@ -127,7 +129,7 @@ msgstr "Forrás ID"
#. module: audittrail
#: help:audittrail.rule,user_id:0
msgid "if User is not added then it will applicable for all users"
-msgstr ""
+msgstr "Ha nincs felhasználó hozzáadva akkor minden felhasználó hozzáférhet"
#. module: audittrail
#: help:audittrail.rule,log_workflow:0
@@ -135,6 +137,8 @@ msgid ""
"Select this if you want to keep track of workflow on any record of the "
"object of this rule"
msgstr ""
+"Válassza ezt, ha nyomon akarja követni ehhez a szabályhoz tartozó bármely "
+"objektum rekord munkafolyamatát"
#. module: audittrail
#: field:audittrail.rule,user_id:0
@@ -144,7 +148,7 @@ msgstr "Felhasználók"
#. module: audittrail
#: view:audittrail.log:0
msgid "Log Lines"
-msgstr ""
+msgstr "Naplózási sorok"
#. module: audittrail
#: view:audittrail.log:0
@@ -156,28 +160,28 @@ msgstr "Tárgy"
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rule"
-msgstr ""
+msgstr "Sávvizsgálati szabály"
#. module: audittrail
#: field:audittrail.view.log,to:0
msgid "Log To"
-msgstr ""
+msgstr "Napló erre"
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value Text: "
-msgstr ""
+msgstr "Új érték a szövegre: "
#. module: audittrail
#: view:audittrail.rule:0
msgid "Search Audittrail Rule"
-msgstr ""
+msgstr "Sávvizsgálati szabály keresése"
#. module: audittrail
#: model:ir.actions.act_window,name:audittrail.action_audittrail_rule_tree
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree
msgid "Audit Rules"
-msgstr ""
+msgstr "Vizsgálati szabályok"
#. module: audittrail
#: view:audittrail.log:0
@@ -201,42 +205,45 @@ msgid ""
"Select this if you want to keep track of modification on any record of the "
"object of this rule"
msgstr ""
+"Válassza ezt, ha nyomon akarja követni ehhez a szabályhoz tartozó bármely "
+"objektum rekord módosítását"
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rules"
-msgstr ""
+msgstr "Sávvizsgálati szabályok"
#. module: audittrail
#: help:audittrail.rule,object_id:0
msgid "Select object for which you want to generate log."
-msgstr ""
+msgstr "Válassza ki az objektumot amire a naplózást szeretné végezni."
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_audit
msgid "Audit"
-msgstr ""
+msgstr "Vizsgálat"
#. module: audittrail
#: field:audittrail.rule,log_workflow:0
msgid "Log Workflow"
-msgstr ""
+msgstr "Naplózza a munkafolyamatot"
#. module: audittrail
#: field:audittrail.rule,log_read:0
msgid "Log Reads"
-msgstr ""
+msgstr "Naplózza az olvasásokat"
#. module: audittrail
#: code:addons/audittrail/audittrail.py:77
#, python-format
msgid "Change audittrail depends -- Setting rule as DRAFT"
msgstr ""
+"Sávvizsgálat függőség megváltoztatása -- A szabály TERVEZET -re állítja"
#. module: audittrail
#: field:audittrail.log,line_ids:0
msgid "Log lines"
-msgstr ""
+msgstr "Naplózza a sorokat"
#. module: audittrail
#: field:audittrail.log.line,field_id:0
@@ -246,7 +253,7 @@ msgstr "Mezők"
#. module: audittrail
#: field:audittrail.rule,log_create:0
msgid "Log Creates"
-msgstr ""
+msgstr "Naplózza a létrehozásokat"
#. module: audittrail
#: help:audittrail.rule,log_unlink:0
@@ -254,6 +261,8 @@ msgid ""
"Select this if you want to keep track of deletion on any record of the "
"object of this rule"
msgstr ""
+"Válassza ezt, ha nyomon akarja követni ehhez a szabályhoz tartozó bármely "
+"objektum rekord törlését"
#. module: audittrail
#: view:audittrail.log:0
@@ -270,6 +279,8 @@ msgstr "Művelet ID"
#: view:audittrail.rule:0
msgid "Users (if User is not added then it will applicable for all users)"
msgstr ""
+"Felhasználók (ha nincs felhasználó hozzáadva akkor az összes felhasználóra "
+"érvényes)"
#. module: audittrail
#: view:audittrail.rule:0
@@ -282,17 +293,19 @@ msgid ""
"There is already a rule defined on this object\n"
" You cannot define another: please edit the existing one."
msgstr ""
+"Erre az objektumra már van szabály\n"
+" Nem tud másikat meghatározni: kérem szerkessze a meglévőt."
#. module: audittrail
#: field:audittrail.rule,log_unlink:0
msgid "Log Deletes"
-msgstr ""
+msgstr "Naplók a törlésre"
#. module: audittrail
#: view:audittrail.log:0
#: view:audittrail.rule:0
msgid "Model"
-msgstr ""
+msgstr "Modell"
#. module: audittrail
#: field:audittrail.log.line,field_description:0
@@ -302,22 +315,22 @@ msgstr "Mező leírása"
#. module: audittrail
#: view:audittrail.log:0
msgid "Search Audittrail Log"
-msgstr ""
+msgstr "Sávvizsgálat napló keresése"
#. module: audittrail
#: field:audittrail.rule,log_write:0
msgid "Log Writes"
-msgstr ""
+msgstr "Napló az írásra"
#. module: audittrail
#: view:audittrail.view.log:0
msgid "Open Logs"
-msgstr ""
+msgstr "Naplók megnyitása"
#. module: audittrail
#: field:audittrail.log.line,new_value_text:0
msgid "New value Text"
-msgstr ""
+msgstr "Szöveh új értéke"
#. module: audittrail
#: field:audittrail.rule,name:0
@@ -333,29 +346,31 @@ msgstr "Új érték"
#: code:addons/audittrail/audittrail.py:223
#, python-format
msgid "'%s' field does not exist in '%s' model"
-msgstr ""
+msgstr "'%s' mező nem létezik a '%s' modellben"
#. module: audittrail
#: view:audittrail.log:0
msgid "AuditTrail Logs"
-msgstr ""
+msgstr "Sávvizsgálati naplók"
#. module: audittrail
#: view:audittrail.rule:0
msgid "Draft Rule"
-msgstr ""
+msgstr "Szabály tervezet"
#. module: audittrail
#: view:audittrail.log:0
#: model:ir.model,name:audittrail.model_audittrail_log
msgid "Audittrail Log"
-msgstr ""
+msgstr "Sávvizsgálati napló"
#. module: audittrail
#: help:audittrail.rule,log_action:0
msgid ""
"Select this if you want to keep track of actions on the object of this rule"
msgstr ""
+"VVálassza ezt, ha nyomon akarja követni ehhez a szabályhoz tartozó bármely "
+"objektum rekord műveleteit"
#. module: audittrail
#: view:audittrail.log:0
@@ -365,32 +380,32 @@ msgstr "Új érték : "
#. module: audittrail
#: field:audittrail.log.line,old_value_text:0
msgid "Old value Text"
-msgstr ""
+msgstr "Szöveg régi értéke"
#. module: audittrail
#: view:audittrail.view.log:0
msgid "Cancel"
-msgstr ""
+msgstr "Megszakítás"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_view_log
msgid "View Log"
-msgstr ""
+msgstr "Napló megtekintése"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log_line
msgid "Log Line"
-msgstr ""
+msgstr "Napló a sorokra"
#. module: audittrail
#: view:audittrail.view.log:0
msgid "or"
-msgstr ""
+msgstr "vagy"
#. module: audittrail
#: field:audittrail.rule,log_action:0
msgid "Log Action"
-msgstr ""
+msgstr "napló a műveletekre"
#. module: audittrail
#: help:audittrail.rule,log_create:0
@@ -398,6 +413,8 @@ msgid ""
"Select this if you want to keep track of creation on any record of the "
"object of this rule"
msgstr ""
+"Válassza ezt, ha nyomon akarja követni ehhez a szabályhoz tartozó bármely "
+"objektum rekord létrehozását"
#~ msgid "State"
#~ msgstr "Állapot"
diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py
index 1c38f7f4eae..3f7ef2f3f0c 100644
--- a/addons/auth_oauth/controllers/main.py
+++ b/addons/auth_oauth/controllers/main.py
@@ -64,8 +64,13 @@ class OAuthController(oeweb.Controller):
u = registry.get('res.users')
credentials = u.auth_oauth(cr, SUPERUSER_ID, provider, kw, context=context)
cr.commit()
- action = state.get('a', None)
- url = '/#action=' + action if action else '/'
+ action = state.get('a')
+ menu = state.get('m')
+ url = '/'
+ if action:
+ url = '/#action=%s' % action
+ elif menu:
+ url = '/#menu_id=%s' % menu
return login_and_redirect(req, *credentials, redirect_url=url)
except AttributeError:
# auth_signup is not installed
diff --git a/addons/auth_oauth/i18n/tr.po b/addons/auth_oauth/i18n/tr.po
new file mode 100644
index 00000000000..7faa18ccebf
--- /dev/null
+++ b/addons/auth_oauth/i18n/tr.po
@@ -0,0 +1,135 @@
+# Turkish 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-03-21 19:39+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Turkish
A password reset was requested for the OpenERP account linked to this "
+"email.
\n"
+"\n"
+"
You may change your password by following this link.
\n"
+"\n"
+"
Note: If you do not expect this, you can safely ignore this email.
"
+msgstr ""
+"\n"
+"
Se ha solicitado un cambio de contraseña dedse la cuenta de OpenERP "
+"asociada con este correo eléctronico.
\n"
+"\n"
+"
Debería cambiar su contraseña siguiendo este enlace.
\n"
+"\n"
+"
Nota: Si no espera estanotificación, puede ignorarla de forma segura.
"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:111
+#, python-format
+msgid "Please enter a name."
+msgstr "Por favor, introduzca un nombre."
+
+#. module: auth_signup
+#: model:ir.model,name:auth_signup.model_res_users
+msgid "Users"
+msgstr "Usuarios"
+
+#. module: auth_signup
+#: field:res.partner,signup_url:0
+msgid "Signup URL"
+msgstr "URL de Ingreso"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:114
+#, python-format
+msgid "Please enter a username."
+msgstr "Por favor, introduzca un nombre de usuario."
+
+#. module: auth_signup
+#: selection:res.users,state:0
+msgid "Active"
+msgstr "Activo(a)"
+
+#. module: auth_signup
+#: code:addons/auth_signup/res_users.py:269
+#, python-format
+msgid ""
+"Cannot send email: no outgoing email server configured.\n"
+"You can configure it under Settings/General Settings."
+msgstr ""
+"No se puede enviar el correo electrónico: no se ha configurado un servidor "
+"de correo saliente.\n"
+"Puede configurarlo en Configuración / Configuraciones Generales."
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:12
+#, python-format
+msgid "Username"
+msgstr "Nombre de Usuario"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:8
+#, python-format
+msgid "Name"
+msgstr "Nombre"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:170
+#, python-format
+msgid "Please enter a username or email address."
+msgstr ""
+"Por favor ingresea un Nombre de Usuario o dirección de correo electrónico."
+
+#. module: auth_signup
+#: selection:res.users,state:0
+msgid "Resetting Password"
+msgstr "Restableciendo la Contraseña"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:13
+#, python-format
+msgid "Username (Email)"
+msgstr "Nombre de Usuario (Dirección de correo electrónico)"
+
+#. module: auth_signup
+#: field:res.partner,signup_expiration:0
+msgid "Signup Expiration"
+msgstr "Vencimiento del Ingreso"
+
+#. module: auth_signup
+#: help:base.config.settings,auth_signup_reset_password:0
+msgid "This allows users to trigger a password reset from the Login page."
+msgstr ""
+"Esto permite a los usuarios lanzar un restablecimiento de la contraseña "
+"desde la página de Inicio de Sesión."
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
+#, python-format
+msgid "Log in"
+msgstr "Iniciar Sesión"
+
+#. module: auth_signup
+#: field:res.partner,signup_valid:0
+msgid "Signup Token is Valid"
+msgstr "La Palabra de Ingreso es Válida"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:108
+#: code:addons/auth_signup/static/src/js/auth_signup.js:111
+#: code:addons/auth_signup/static/src/js/auth_signup.js:114
+#: code:addons/auth_signup/static/src/js/auth_signup.js:117
+#: code:addons/auth_signup/static/src/js/auth_signup.js:120
+#: code:addons/auth_signup/static/src/js/auth_signup.js:167
+#: code:addons/auth_signup/static/src/js/auth_signup.js:170
+#, python-format
+msgid "Login"
+msgstr "Inicio de Sesión"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:94
+#, python-format
+msgid "Invalid signup token"
+msgstr "Palabra de ingreso no válida"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:120
+#, python-format
+msgid "Passwords do not match; please retype them."
+msgstr "Las contraseñas no coinciden. Por favor vuelva a escribirlas."
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:108
+#: code:addons/auth_signup/static/src/js/auth_signup.js:167
+#, python-format
+msgid "No database selected !"
+msgstr "No se ha seleccionado ninguna base de datos!"
+
+#. module: auth_signup
+#: view:res.users:0
+msgid "Reset Password"
+msgstr ""
+
+#. module: auth_signup
+#: field:base.config.settings,auth_signup_reset_password:0
+msgid "Enable password reset from Login page"
+msgstr ""
+"Habilitar restablecimiento de la contraseña desde la página de Inicio de "
+"Sesión"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:27
+#, python-format
+msgid "Back to Login"
+msgstr "Volver al Inicio de Sesión"
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
+#, python-format
+msgid "Sign up"
+msgstr ""
+
+#. module: auth_signup
+#: model:ir.model,name:auth_signup.model_res_partner
+msgid "Partner"
+msgstr "Empresa/Cliente"
+
+#. module: auth_signup
+#: field:res.partner,signup_token:0
+msgid "Signup Token"
+msgstr "Palabra de Ingreso"
diff --git a/addons/auth_signup/i18n/hu.po b/addons/auth_signup/i18n/hu.po
index ead6979d91c..91f76b57206 100644
--- a/addons/auth_signup/i18n/hu.po
+++ b/addons/auth_signup/i18n/hu.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: 2013-01-11 17:36+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-03-20 13:50+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-03-16 05:52+0000\n"
+"X-Launchpad-Export-Date: 2013-03-21 04:38+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: auth_signup
#: field:res.partner,signup_type:0
msgid "Signup Token Type"
-msgstr ""
+msgstr "Feliratkozó Token típus"
#. module: auth_signup
#: field:base.config.settings,auth_signup_uninvited:0
msgid "Allow external users to sign up"
-msgstr ""
+msgstr "Külső felhasználók bejelentkezésének engedéjezése"
#. module: auth_signup
#. openerp-web
@@ -37,18 +37,18 @@ msgstr "Jelszó megerõsítése"
#. module: auth_signup
#: help:base.config.settings,auth_signup_uninvited:0
msgid "If unchecked, only invited users may sign up."
-msgstr ""
+msgstr "He nincs bejelölve, vsak maghívott felhasználók jelentkezhetnek be."
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_base_config_settings
msgid "base.config.settings"
-msgstr ""
+msgstr "base.config.settings"
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:265
#, python-format
msgid "Cannot send email: user has no email address."
-msgstr ""
+msgstr "Nem küldhető e-mail: a felhasználónak nincs e-mail címe."
#. module: auth_signup
#. openerp-web
@@ -61,7 +61,7 @@ msgstr "Jelszó visszaállítása"
#. module: auth_signup
#: field:base.config.settings,auth_signup_template_user_id:0
msgid "Template user for new users created through signup"
-msgstr ""
+msgstr "Sablon felhasználó amit a új felhasznlók létrehozásához használ"
#. module: auth_signup
#: model:email.template,subject:auth_signup.reset_password_email
@@ -78,7 +78,7 @@ msgstr "Kérem adjon meg egy jelszót és erősítse meg."
#. module: auth_signup
#: view:res.users:0
msgid "Send an email to the user to (re)set their password."
-msgstr ""
+msgstr "Küldjön egy e-mailt a felhasználónak a jelszava visszaállításához."
#. module: auth_signup
#. openerp-web
@@ -97,12 +97,12 @@ msgstr "Új"
#: code:addons/auth_signup/res_users.py:258
#, python-format
msgid "Mail sent to:"
-msgstr ""
+msgstr "Címzett:"
#. module: auth_signup
#: field:res.users,state:0
msgid "Status"
-msgstr ""
+msgstr "Állapot"
#. module: auth_signup
#: model:email.template,body_html:auth_signup.reset_password_email
@@ -116,6 +116,15 @@ msgid ""
"\n"
"
Note: If you do not expect this, you can safely ignore this email.
"
msgstr ""
+"\n"
+"
Egy jelszó visszaállítást indított el az e-mailhez tartozó OpenERP "
+"fiókhoz.
\n"
+"\n"
+"
Meg kell változtatnia a jelszavát a következő linken.
\n"
+"\n"
+"
Megjegyzés: Ha nem várta ezt az e-mail-t, akkor biztonságosan törölje "
+"azt.
"
#. module: auth_signup
#. openerp-web
@@ -132,14 +141,14 @@ msgstr "Felhasználók"
#. module: auth_signup
#: field:res.partner,signup_url:0
msgid "Signup URL"
-msgstr ""
+msgstr "Bejelentkezési URL elérési útvonal"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:114
#, python-format
msgid "Please enter a username."
-msgstr ""
+msgstr "Kérjük, adja meg a felhasználónevet."
#. module: auth_signup
#: selection:res.users,state:0
@@ -153,6 +162,8 @@ msgid ""
"Cannot send email: no outgoing email server configured.\n"
"You can configure it under Settings/General Settings."
msgstr ""
+"Nem küldhető e-mail: nincs kimenő e-mail szerver beállítva.\n"
+"Beállíthatja a Beállítások/Általános beállítások alatt."
#. module: auth_signup
#. openerp-web
@@ -173,7 +184,7 @@ msgstr "Név"
#: code:addons/auth_signup/static/src/js/auth_signup.js:170
#, python-format
msgid "Please enter a username or email address."
-msgstr ""
+msgstr "Kérem adjon meg egy felhasználónevet vagy e-mail címet."
#. module: auth_signup
#: selection:res.users,state:0
@@ -190,12 +201,14 @@ msgstr "Felhasználónév (Email)"
#. module: auth_signup
#: field:res.partner,signup_expiration:0
msgid "Signup Expiration"
-msgstr ""
+msgstr "Bejelentkezési határidő"
#. module: auth_signup
#: help:base.config.settings,auth_signup_reset_password:0
msgid "This allows users to trigger a password reset from the Login page."
msgstr ""
+"Ez lehetővé teszi a felhasználó részére a jelszó megváltoztatásának "
+"elindítását a bejelentkezési oldalról."
#. module: auth_signup
#. openerp-web
@@ -247,12 +260,12 @@ msgstr "Nincs kiválasztott adatbázis!"
#. module: auth_signup
#: view:res.users:0
msgid "Reset Password"
-msgstr ""
+msgstr "Jelszó visszaállítása"
#. module: auth_signup
#: field:base.config.settings,auth_signup_reset_password:0
msgid "Enable password reset from Login page"
-msgstr ""
+msgstr "Jelszóváltoztató engedélyezése a belépési oldalról"
#. module: auth_signup
#. openerp-web
diff --git a/addons/base_action_rule/base_action_rule_view.xml b/addons/base_action_rule/base_action_rule_view.xml
index 4e551fa21c5..5eaaf08dad4 100644
--- a/addons/base_action_rule/base_action_rule_view.xml
+++ b/addons/base_action_rule/base_action_rule_view.xml
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/addons/contacts/i18n/es_CO.po b/addons/contacts/i18n/es_CO.po
new file mode 100644
index 00000000000..d4b8e87b899
--- /dev/null
+++ b/addons/contacts/i18n/es_CO.po
@@ -0,0 +1,46 @@
+# Spanish (Colombia) 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-03-21 21:43+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish (Colombia) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-22 04:57+0000\n"
+"X-Generator: Launchpad (build 16532)\n"
+
+#. module: contacts
+#: model:ir.actions.act_window,help:contacts.action_contacts
+msgid ""
+"
\n"
+" Click to add a contact in your address book.\n"
+"
\n"
+" OpenERP helps you easily track all activities related to\n"
+" a customer; discussions, history of business opportunities,\n"
+" documents, etc.\n"
+"
\n"
+" "
+msgstr ""
+"
\n"
+" Pulse para añadir un contacto a su libreta de direcciones.\n"
+"
\n"
+" OpenERP le ayuda a seguir el rastro a todas las actividades "
+"relativas a\n"
+" un cliente: discusiones, histórico de oportunidades de negocio,\n"
+" documentos, etc.\n"
+"
\n"
+" "
+
+#. module: contacts
+#: model:ir.actions.act_window,name:contacts.action_contacts
+#: model:ir.ui.menu,name:contacts.menu_contacts
+msgid "Contacts"
+msgstr "Contactos"
diff --git a/addons/hr_payroll/test/payslip.yml b/addons/hr_payroll/test/payslip.yml
index 0e60a5b6af4..f78ad4a374d 100644
--- a/addons/hr_payroll/test/payslip.yml
+++ b/addons/hr_payroll/test/payslip.yml
@@ -68,9 +68,8 @@
I verify that the payslip is in done state
-
!python {model: hr.payslip}: |
- from openerp.tools.translate import _
payslip_brw=self.browse(cr, uid, ref("hr_payslip_0"))
- assert(payslip_brw.state == 'done'), _('State not changed!')
+ assert(payslip_brw.state == 'done'), 'State not changed!'
-
I want to check refund payslip so I click on refund button.
-
diff --git a/addons/hr_payroll_account/test/hr_payroll_account.yml b/addons/hr_payroll_account/test/hr_payroll_account.yml
index c8b6bf42fdd..c637b5f319a 100644
--- a/addons/hr_payroll_account/test/hr_payroll_account.yml
+++ b/addons/hr_payroll_account/test/hr_payroll_account.yml
@@ -89,9 +89,8 @@
I verify the payslip is in draft state.
-
!python {model: hr.payslip}: |
- from openerp.tools.translate import _
payslip_brw=self.browse(cr, uid, ref("hr_payslip_0"))
- assert(payslip_brw.state == 'draft'), _('State not changed!')
+ assert(payslip_brw.state == 'draft'), 'State not changed!'
-
I click on "Compute Sheet" button.
-
@@ -120,7 +119,6 @@
I verify that the payslip is in done state.
-
!python {model: hr.payslip}: |
- from openerp.tools.translate import _
payslip_brw=self.browse(cr, uid, ref("hr_payslip_0"))
- assert(payslip_brw.state == 'done'), _('State not changed!')
+ assert(payslip_brw.state == 'done'), 'State not changed!'
diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py
index 6a538e5d09c..cc9c0653a85 100644
--- a/addons/hr_timesheet/hr_timesheet.py
+++ b/addons/hr_timesheet/hr_timesheet.py
@@ -74,8 +74,9 @@ class hr_analytic_timesheet(osv.osv):
toremove = {}
for obj in self.browse(cr, uid, ids, context=context):
toremove[obj.line_id.id] = True
+ super(hr_analytic_timesheet, self).unlink(cr, uid, ids, context=context)
self.pool.get('account.analytic.line').unlink(cr, uid, toremove.keys(), context=context)
- return super(hr_analytic_timesheet, self).unlink(cr, uid, ids, context=context)
+ return True
def on_change_unit_amount(self, cr, uid, id, prod_id, unit_amount, company_id, unit=False, journal_id=False, context=None):
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml
index 74d0fa1daf6..17ac669d26d 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml
@@ -9,16 +9,17 @@
@@ -724,10 +719,6 @@
string="Partial"
type="action" states="confirmed,assigned"
icon="gtk-justify-fill"/>
-
diff --git a/addons/mrp_repair/i18n/lv.po b/addons/mrp_repair/i18n/lv.po
new file mode 100644
index 00000000000..2e4e1148cf5
--- /dev/null
+++ b/addons/mrp_repair/i18n/lv.po
@@ -0,0 +1,819 @@
+# Latvian 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-03-24 11:43+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Latvian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-25 04:38+0000\n"
+"X-Generator: Launchpad (build 16540)\n"
+
+#. module: mrp_repair
+#: field:mrp.repair.line,move_id:0
+msgid "Inventory Move"
+msgstr ""
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Group By..."
+msgstr "Grupēt pēc..."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Recreate Invoice"
+msgstr "Pārveidot rēķinu"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:371
+#, python-format
+msgid "You have to select a Partner Invoice Address in the repair form !"
+msgstr "Labojumu formā Jums ir jānorāda partnera rēķina adrese!"
+
+#. module: mrp_repair
+#: model:ir.actions.act_window,name:mrp_repair.action_cancel_repair
+#: view:mrp.repair.cancel:0
+msgid "Cancel Repair Order"
+msgstr "Atcelt labojumu orderi"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,to_invoice:0
+#: field:mrp.repair.line,to_invoice:0
+msgid "To Invoice"
+msgstr ""
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Unit of Measure"
+msgstr "Mērvienība"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Printing Date"
+msgstr "Drukāšanas datums"
+
+#. module: mrp_repair
+#: field:mrp.repair.make_invoice,group:0
+msgid "Group by partner invoice address"
+msgstr "Grupēt pēc partnera rēķina adreses"
+
+#. module: mrp_repair
+#: field:mrp.repair,message_unread:0
+msgid "Unread Messages"
+msgstr "Neizlasītie ziņojumi"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:435
+#, python-format
+msgid "No product defined on Fees!"
+msgstr "Maksājumam nav nodefinēts produkts!"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,company_id:0
+msgid "Company"
+msgstr "Uzņēmums"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Set to Draft"
+msgstr "Atzīmēt kā melnrakstu"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "Invoice Exception"
+msgstr "Rēķina izņēmums"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Serial Number"
+msgstr "Sērijas numurs"
+
+#. module: mrp_repair
+#: field:mrp.repair,address_id:0
+msgid "Delivery Address"
+msgstr "Piegādes adrese"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "History"
+msgstr "Vēsture"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,price_subtotal:0
+#: field:mrp.repair.line,price_subtotal:0
+msgid "Subtotal"
+msgstr "Kopā"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Invoice address :"
+msgstr "Rēķina adrese:"
+
+#. module: mrp_repair
+#: help:mrp.repair,partner_id:0
+msgid "Choose partner for whom the order will be invoiced and delivered."
+msgstr ""
+"Izvēlieties partneri kuram pēc ordera tiks izveidots rēķins un piegādāts."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Guarantee limit"
+msgstr "Garantijas limits"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Notes"
+msgstr "Piezīmes"
+
+#. module: mrp_repair
+#: field:mrp.repair,message_ids:0
+msgid "Messages"
+msgstr "Ziņojumi"
+
+#. module: mrp_repair
+#: field:mrp.repair,amount_tax:0
+#: field:mrp.repair.fee,tax_id:0
+#: field:mrp.repair.line,tax_id:0
+msgid "Taxes"
+msgstr "Nodokļi"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:385
+#: code:addons/mrp_repair/mrp_repair.py:413
+#: code:addons/mrp_repair/mrp_repair.py:442
+#, python-format
+msgid "Error!"
+msgstr "Kļūda!"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Net Total :"
+msgstr "Neto kopā:"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+#: selection:mrp.repair.line,state:0
+msgid "Cancelled"
+msgstr "Atcelts"
+
+#. module: mrp_repair
+#: help:mrp.repair,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Operations"
+msgstr "Operācijas"
+
+#. module: mrp_repair
+#: model:ir.actions.act_window,help:mrp_repair.action_repair_order_tree
+msgid ""
+"
\n"
+" Click to create a reparation order. \n"
+"
\n"
+" In a repair order, you can detail the components you "
+"remove,\n"
+" add or replace and record the time you spent on the "
+"different\n"
+" operations.\n"
+"
\n"
+" The repair order uses the warranty date on the Serial Number "
+"in\n"
+" order to know if whether the repair should be invoiced to "
+"the\n"
+" customer or not.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: mrp_repair
+#: help:mrp.repair.line,state:0
+msgid ""
+" * The 'Draft' status is set automatically as draft when repair order in "
+"draft status. \n"
+"* The 'Confirmed' status is set automatically as confirm when repair order "
+"in confirm status. \n"
+"* The 'Done' status is set automatically when repair order is completed. "
+" \n"
+"* The 'Cancelled' status is set automatically when user cancel repair order."
+msgstr ""
+
+#. module: mrp_repair
+#: field:mrp.repair,move_id:0
+msgid "Move"
+msgstr "Kustība"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Tax"
+msgstr "Nodoklis"
+
+#. module: mrp_repair
+#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree
+#: model:ir.ui.menu,name:mrp_repair.menu_repair_order
+msgid "Repair Orders"
+msgstr "Labojumu orderi"
+
+#. module: mrp_repair
+#: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair
+msgid "Quotation / Order"
+msgstr "Piedāvājums / Orderis"
+
+#. module: mrp_repair
+#: help:mrp.repair,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 ""
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Extra Info"
+msgstr "Papildus informācija"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:336
+#: code:addons/mrp_repair/mrp_repair.py:349
+#: code:addons/mrp_repair/mrp_repair.py:435
+#: code:addons/mrp_repair/wizard/cancel_repair.py:49
+#, python-format
+msgid "Warning!"
+msgstr "Brīdinājums!"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "(update)"
+msgstr "(atjaunināt)"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,partner_id:0
+msgid "Partner"
+msgstr "Partneris"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:385
+#, python-format
+msgid "No account defined for partner \"%s\"."
+msgstr "Nav nodefinēt konts partnerim \"%s\"."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: selection:mrp.repair,state:0
+#: selection:mrp.repair.line,state:0
+msgid "Confirmed"
+msgstr "Apstiprināts"
+
+#. module: mrp_repair
+#: help:mrp.repair,state:0
+msgid ""
+" * The 'Draft' status is used when a user is encoding a new and unconfirmed "
+"repair order. \n"
+"* The 'Confirmed' status is used when a user confirms the repair order. "
+" \n"
+"* The 'Ready to Repair' status is used to start to repairing, user can start "
+"repairing only after repair order is confirmed. \n"
+"* The 'To be Invoiced' status is used to generate the invoice before or "
+"after repairing done. \n"
+"* The 'Done' status is set when repairing is completed. \n"
+"* The 'Cancelled' status is used when user cancel repair order."
+msgstr ""
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Repairs order"
+msgstr "Labojumu orderis"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:336
+#, python-format
+msgid "Serial number is required for operation line with product '%s'"
+msgstr "Sērijas numurs ir obligāts operācijas rindai ar produktu '%s'"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Repair Order N° :"
+msgstr "Labojumu orderis Nr. :"
+
+#. module: mrp_repair
+#: field:mrp.repair,prodlot_id:0
+#: field:mrp.repair.line,prodlot_id:0
+#: report:repair.order:0
+msgid "Lot Number"
+msgstr "Partijas numurs"
+
+#. module: mrp_repair
+#: field:mrp.repair,message_follower_ids:0
+msgid "Followers"
+msgstr "Sekotāji"
+
+#. module: mrp_repair
+#: field:mrp.repair,fees_lines:0
+msgid "Fees Lines"
+msgstr ""
+
+#. module: mrp_repair
+#: field:mrp.repair.line,type:0
+msgid "Type"
+msgstr "Veids"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Fees Line(s)"
+msgstr "Maksājumu rinda(s)"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "To be Invoiced"
+msgstr "Tiks izrakstīts rēķins"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Shipping address :"
+msgstr "Piegādes adrese:"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Total :"
+msgstr "Kopā:"
+
+#. module: mrp_repair
+#: view:mrp.repair.cancel:0
+msgid ""
+"This operation will cancel the Repair process, but will not cancel it's "
+"Invoice. Do you want to continue?"
+msgstr ""
+"Šī darbība atcels labojumu procesu, bet neatcels tā rēķinu. Vai vēlaties "
+"turpināt?"
+
+#. module: mrp_repair
+#: field:mrp.repair,pricelist_id:0
+msgid "Pricelist"
+msgstr "Cenrādis"
+
+#. module: mrp_repair
+#: field:mrp.repair,quotation_notes:0
+msgid "Quotation Notes"
+msgstr "Piedāvājuma piezīmes"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,state:0
+#: field:mrp.repair.line,state:0
+msgid "Status"
+msgstr "Statuss"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Search Reair Orders"
+msgstr "Meklēt labojumu orderus"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "(Add)"
+msgstr "(Pievienot)"
+
+#. module: mrp_repair
+#: model:ir.model,name:mrp_repair.model_mrp_repair_line
+#: view:mrp.repair:0
+msgid "Repair Line"
+msgstr "Labojumu rinda"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "N° :"
+msgstr "Nr. :"
+
+#. module: mrp_repair
+#: field:mrp.repair,invoice_method:0
+msgid "Invoice Method"
+msgstr "Rēķina metode"
+
+#. module: mrp_repair
+#: field:mrp.repair,repaired:0
+#: selection:mrp.repair,state:0
+msgid "Repaired"
+msgstr "Izlabots"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,invoice_line_id:0
+#: field:mrp.repair.line,invoice_line_id:0
+msgid "Invoice Line"
+msgstr "Rēķina rinda"
+
+#. module: mrp_repair
+#: selection:mrp.repair,invoice_method:0
+msgid "Before Repair"
+msgstr "Pirms labojumiem"
+
+#. module: mrp_repair
+#: field:mrp.repair,location_id:0
+msgid "Current Location"
+msgstr "Pašreizējā atrašanās vieta"
+
+#. module: mrp_repair
+#: view:mrp.repair.cancel:0
+msgid "Yes"
+msgstr "Jā"
+
+#. module: mrp_repair
+#: view:mrp.repair.cancel:0
+#: view:mrp.repair.make_invoice:0
+msgid "or"
+msgstr "vai"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,invoiced:0
+#: field:mrp.repair.fee,invoiced:0
+#: field:mrp.repair.line,invoiced:0
+msgid "Invoiced"
+msgstr "Rēķins izrakstīts"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,product_uom:0
+#: field:mrp.repair.line,product_uom:0
+msgid "Product Unit of Measure"
+msgstr "Produkta mērvienība"
+
+#. module: mrp_repair
+#: view:mrp.repair.make_invoice:0
+msgid "Create invoices"
+msgstr "Izveidot rēķinus"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "(Remove)"
+msgstr "(Noņemt)"
+
+#. module: mrp_repair
+#: selection:mrp.repair.line,type:0
+msgid "Add"
+msgstr "Pievienot"
+
+#. module: mrp_repair
+#: selection:mrp.repair.line,state:0
+msgid "Draft"
+msgstr "Melnraksts"
+
+#. module: mrp_repair
+#: field:mrp.repair,name:0
+msgid "Repair Reference"
+msgstr "Labojuma atsauce"
+
+#. module: mrp_repair
+#: model:ir.model,name:mrp_repair.model_mrp_repair
+#: view:mrp.repair:0
+msgid "Repair Order"
+msgstr "Labojumu orderis"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "Under Repair"
+msgstr ""
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Ready To Repair"
+msgstr "Gatavs labojumiem"
+
+#. module: mrp_repair
+#: field:mrp.repair,amount_untaxed:0
+msgid "Untaxed Amount"
+msgstr "Summa bez nodokļa"
+
+#. module: mrp_repair
+#: help:mrp.repair,invoice_method:0
+msgid ""
+"Selecting 'Before Repair' or 'After Repair' will allow you to generate "
+"invoice before or after the repair is done respectively. 'No invoice' means "
+"you don't want to generate invoice for this repair order."
+msgstr ""
+
+#. module: mrp_repair
+#: field:mrp.repair,guarantee_limit:0
+msgid "Warranty Expiration"
+msgstr "Garantijas termiņš"
+
+#. module: mrp_repair
+#: help:mrp.repair,pricelist_id:0
+msgid "Pricelist of the selected partner."
+msgstr "Atzīmētā partnera cenrādis."
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Guarantee Limit"
+msgstr "Garantijas limits"
+
+#. module: mrp_repair
+#: field:mrp.repair,default_address_id:0
+msgid "unknown"
+msgstr "nezināms"
+
+#. module: mrp_repair
+#: field:mrp.repair,product_id:0
+#: report:repair.order:0
+msgid "Product to Repair"
+msgstr "Produkts labojumam"
+
+#. module: mrp_repair
+#: selection:mrp.repair,invoice_method:0
+msgid "After Repair"
+msgstr "Pēc labojuma"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/wizard/cancel_repair.py:41
+#, python-format
+msgid "Active ID not Found"
+msgstr "Aktīvs ID nav atrasts"
+
+#. module: mrp_repair
+#: field:mrp.repair,message_is_follower:0
+msgid "Is a Follower"
+msgstr "Ir sekotājs"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Date"
+msgstr "Datums"
+
+#. module: mrp_repair
+#: model:ir.model,name:mrp_repair.model_mrp_repair_fee
+msgid "Repair Fees Line"
+msgstr "Labojuma maksājumu rinda"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "Quotation"
+msgstr ""
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Confirm Repair"
+msgstr "Apstiprināt labojumu"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Repair Quotation"
+msgstr "Labojuma piedāvājums"
+
+#. module: mrp_repair
+#: field:mrp.repair,message_summary:0
+msgid "Summary"
+msgstr "Kopsavilkums"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "End Repair"
+msgstr "Beigt labojumu"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:413
+#: code:addons/mrp_repair/mrp_repair.py:442
+#, python-format
+msgid "No account defined for product \"%s\"."
+msgstr "Produktam \"%s\" nav nodefinēts konts."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Quotations"
+msgstr "Piedāvājumi"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair.fee,product_uom_qty:0
+#: field:mrp.repair.line,product_uom_qty:0
+#: report:repair.order:0
+msgid "Quantity"
+msgstr "Daudzums"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Product Information"
+msgstr "Produkta informācija"
+
+#. module: mrp_repair
+#: model:ir.actions.act_window,name:mrp_repair.act_mrp_repair_invoice
+#: model:ir.model,name:mrp_repair.model_mrp_repair_make_invoice
+#: view:mrp.repair:0
+msgid "Make Invoice"
+msgstr "Veidot rēķinu"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Start Repair"
+msgstr "Sākt labojumu"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,price_unit:0
+#: field:mrp.repair.line,price_unit:0
+#: report:repair.order:0
+msgid "Unit Price"
+msgstr "Vienības cena"
+
+#. module: mrp_repair
+#: selection:mrp.repair.line,state:0
+msgid "Done"
+msgstr "Pabeigts"
+
+#. module: mrp_repair
+#: field:mrp.repair,invoice_id:0
+msgid "Invoice"
+msgstr "Rēķins"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Fees"
+msgstr "Maksājumi"
+
+#. module: mrp_repair
+#: view:mrp.repair.cancel:0
+#: view:mrp.repair.make_invoice:0
+msgid "Cancel"
+msgstr "Atcelt"
+
+#. module: mrp_repair
+#: field:mrp.repair.line,location_dest_id:0
+msgid "Dest. Location"
+msgstr "Piegādes vieta"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Operation Line(s)"
+msgstr "Operācijas rinda(s)"
+
+#. module: mrp_repair
+#: field:mrp.repair,location_dest_id:0
+msgid "Delivery Location"
+msgstr "Piegādes vieta"
+
+#. module: mrp_repair
+#: help:mrp.repair,deliver_bool:0
+msgid ""
+"Check this box if you want to manage the delivery once the product is "
+"repaired and create a picking with selected product. Note that you can "
+"select the locations in the Info tab, if you have the extended view."
+msgstr ""
+
+#. module: mrp_repair
+#: help:mrp.repair,guarantee_limit:0
+msgid ""
+"The warranty expiration limit is computed as: last move date + warranty "
+"defined on selected product. If the current date is below the warranty "
+"expiration limit, each operation and fee you will add will be set as 'not to "
+"invoiced' by default. Note that you can change manually afterwards."
+msgstr ""
+
+#. module: mrp_repair
+#: view:mrp.repair.make_invoice:0
+msgid "Create Invoice"
+msgstr "Izveidot rēķinu"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Reair Orders"
+msgstr "Labojumu orderi"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,name:0
+#: field:mrp.repair.line,name:0
+#: report:repair.order:0
+msgid "Description"
+msgstr "Apraksts"
+
+#. module: mrp_repair
+#: field:mrp.repair,operations:0
+msgid "Operation Lines"
+msgstr "Operāciju rindas"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair.fee,product_id:0
+#: field:mrp.repair.line,product_id:0
+msgid "Product"
+msgstr "Produkts"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Invoice Corrected"
+msgstr "Rēķins izlabots"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Price"
+msgstr "Cena"
+
+#. module: mrp_repair
+#: field:mrp.repair,deliver_bool:0
+msgid "Deliver"
+msgstr "Piegādāt"
+
+#. module: mrp_repair
+#: field:mrp.repair,internal_notes:0
+msgid "Internal Notes"
+msgstr "Iekšējās piezīmes"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Taxes:"
+msgstr "Nodokļi:"
+
+#. module: mrp_repair
+#: view:mrp.repair.make_invoice:0
+msgid "Do you really want to create the invoice(s)?"
+msgstr "Vai Jūs tiešām vēlaties izveidot rēķinu(s)?"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:349
+#, python-format
+msgid "Repair order is already invoiced."
+msgstr "No labojumu ordera rēķins jau ir izveidots."
+
+#. module: mrp_repair
+#: field:mrp.repair,picking_id:0
+msgid "Picking"
+msgstr "Izsniegšana"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Untaxed amount"
+msgstr "Summa bez nodokļiem"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,repair_id:0
+#: field:mrp.repair.line,repair_id:0
+msgid "Repair Order Reference"
+msgstr "Labojumu ordera atsauce"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/wizard/cancel_repair.py:49
+#, python-format
+msgid "Repair order is not invoiced."
+msgstr "No labojumu ordera rēķins nav izveidots."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Total amount"
+msgstr "Summa kopā"
+
+#. module: mrp_repair
+#: selection:mrp.repair.line,type:0
+msgid "Remove"
+msgstr "Izņemt"
+
+#. module: mrp_repair
+#: field:mrp.repair,partner_invoice_id:0
+msgid "Invoicing Address"
+msgstr "Rēķina adrese"
+
+#. module: mrp_repair
+#: help:mrp.repair,message_ids:0
+msgid "Messages and communication history"
+msgstr "Ziņojumu un komunikāciju vēsture"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Invoicing"
+msgstr "Rēķina izrakstīšana"
+
+#. module: mrp_repair
+#: field:mrp.repair.line,location_id:0
+msgid "Source Location"
+msgstr "Resursa novietojums"
+
+#. module: mrp_repair
+#: model:ir.model,name:mrp_repair.model_mrp_repair_cancel
+#: view:mrp.repair:0
+msgid "Cancel Repair"
+msgstr "Atcelt labojumu"
+
+#. module: mrp_repair
+#: selection:mrp.repair,invoice_method:0
+msgid "No Invoice"
+msgstr "Nav rēķina"
+
+#. module: mrp_repair
+#: field:mrp.repair,amount_total:0
+msgid "Total"
+msgstr "Kopā"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "Ready to Repair"
+msgstr "Gatavs labojumiem"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:371
+#, python-format
+msgid "No partner !"
+msgstr "Nav partnera!"
diff --git a/addons/mrp_repair/test/test_mrp_repair_afterinv.yml b/addons/mrp_repair/test/test_mrp_repair_afterinv.yml
index 5ceb3f9b02b..eed121050b8 100644
--- a/addons/mrp_repair/test/test_mrp_repair_afterinv.yml
+++ b/addons/mrp_repair/test/test_mrp_repair_afterinv.yml
@@ -33,4 +33,4 @@
-
!python {model: mrp.repair}: |
repair_id = self.browse(cr, uid, [ref('mrp_repair_rmrp0')], context=context)[0]
- assert repair_id.invoice_id.id, _("No invoice exists for this repair order")
+ assert repair_id.invoice_id.id, "No invoice exists for this repair order"
diff --git a/addons/mrp_repair/test/test_mrp_repair_b4inv.yml b/addons/mrp_repair/test/test_mrp_repair_b4inv.yml
index 47e301cd0bd..83badf48be9 100644
--- a/addons/mrp_repair/test/test_mrp_repair_b4inv.yml
+++ b/addons/mrp_repair/test/test_mrp_repair_b4inv.yml
@@ -18,7 +18,7 @@
-
!python {model: mrp.repair}: |
repair_id = self.browse(cr, uid, [ref('mrp_repair_rmrp2')], context=context)[0]
- assert repair_id.invoice_id.id, _("No invoice exists for this repair order.")
+ assert repair_id.invoice_id.id, "No invoice exists for this repair order."
-
I start the Repairing process by clicking on "Start Repair" button.
-
diff --git a/addons/mrp_repair/test/test_mrp_repair_noneinv.yml b/addons/mrp_repair/test/test_mrp_repair_noneinv.yml
index 4334af01958..b8006d0d485 100644
--- a/addons/mrp_repair/test/test_mrp_repair_noneinv.yml
+++ b/addons/mrp_repair/test/test_mrp_repair_noneinv.yml
@@ -23,5 +23,5 @@
-
!python {model: mrp.repair}: |
repair_id = self.browse(cr, uid, [ref('mrp_repair_rmrp1')], context=context)[0]
- assert not repair_id.invoice_id.id, _("Invoice should not be exists for this repair order")
+ assert not repair_id.invoice_id.id, "Invoice should not be exists for this repair order"
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index af5d7aa663c..7e8487b2b2b 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -89,7 +89,7 @@ class pos_config(osv.osv):
'sequence_id' : False,
}
d.update(default)
- return super(pos_order, self).copy(cr, uid, id, d, context=context)
+ return super(pos_config, self).copy(cr, uid, id, d, context=context)
def name_get(self, cr, uid, ids, context=None):
diff --git a/addons/point_of_sale/wizard/pos_box.py b/addons/point_of_sale/wizard/pos_box.py
index 14e653b915c..776d962a3a8 100644
--- a/addons/point_of_sale/wizard/pos_box.py
+++ b/addons/point_of_sale/wizard/pos_box.py
@@ -31,6 +31,10 @@ class PosBoxIn(PosBox):
_inherit = 'cash.box.in'
def _compute_values_for_statement_line(self, cr, uid, box, record, context=None):
+
+ if context is None:
+ context = {}
+
values = super(PosBoxIn, self)._compute_values_for_statement_line(cr, uid, box, record, context=context)
active_model = context.get('active_model', False) or False
diff --git a/addons/portal_anonymous/static/src/js/portal_anonymous.js b/addons/portal_anonymous/static/src/js/portal_anonymous.js
index a719a285908..d4f6351efc9 100644
--- a/addons/portal_anonymous/static/src/js/portal_anonymous.js
+++ b/addons/portal_anonymous/static/src/js/portal_anonymous.js
@@ -43,8 +43,12 @@ openerp.portal_anonymous = function(instance) {
instance.web.Login.include({
start: function() {
var self = this;
+ var anonymous_mode = (!self.session.session_is_valid() && !(self.params.token || self.params.login));
+ if (anonymous_mode) {
+ self.$el.hide();
+ }
return $.when(this._super()).then(function() {
- if (!self.session.session_is_valid() && !(self.params.token || self.params.login)) {
+ if (anonymous_mode) {
self.remember_credentials = false;
// XXX get login/pass from server (via a rpc call) ?
return self.do_login(self.selected_db, 'anonymous', 'anonymous');
diff --git a/addons/portal_project_long_term/__init__.py b/addons/portal_project_long_term/__init__.py
new file mode 100644
index 00000000000..c8d82ed19bd
--- /dev/null
+++ b/addons/portal_project_long_term/__init__.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2010-Today OpenERP S.A. ().
+#
+# 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 .
+#
+##############################################################################
diff --git a/addons/portal_project_long_term/__openerp__.py b/addons/portal_project_long_term/__openerp__.py
new file mode 100644
index 00000000000..44156afbc06
--- /dev/null
+++ b/addons/portal_project_long_term/__openerp__.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2010-Today OpenERP S.A. ().
+#
+# 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 .
+#
+##############################################################################
+
+
+{
+ 'name': 'Portal Project Long Term',
+ 'version': '1.0',
+ 'category': 'Tools',
+ 'complexity': 'easy',
+ 'description': """
+This module adds necessary security rules and access rights for project long term and portal.
+=============================================================================================
+ """,
+ 'author': 'OpenERP SA',
+ 'depends': ['project_long_term', 'portal'],
+ 'data': [
+ 'security/portal_security.xml',
+ 'security/ir.model.access.csv',
+ ],
+ 'installable': True,
+ 'auto_install': True,
+ 'category': 'Hidden',
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/portal_project_long_term/security/ir.model.access.csv b/addons/portal_project_long_term/security/ir.model.access.csv
new file mode 100644
index 00000000000..738c264a71c
--- /dev/null
+++ b/addons/portal_project_long_term/security/ir.model.access.csv
@@ -0,0 +1,2 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_issues,project_phase,project_long_term.model_project_phase,portal.group_portal,1,0,0,0
diff --git a/addons/portal_project_long_term/security/portal_security.xml b/addons/portal_project_long_term/security/portal_security.xml
new file mode 100644
index 00000000000..b46d277e4ee
--- /dev/null
+++ b/addons/portal_project_long_term/security/portal_security.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Portal Personal Long term project
+
+ ['|',('project_id.message_follower_ids','in', [user.partner_id.id]),('task_ids.message_follower_ids','in', [user.partner_id.id])]
+
+
+
+
+
+
+
+
+
diff --git a/addons/portal_sale/i18n/es_MX.po b/addons/portal_sale/i18n/es_MX.po
new file mode 100644
index 00000000000..2852d1f6327
--- /dev/null
+++ b/addons/portal_sale/i18n/es_MX.po
@@ -0,0 +1,548 @@
+# Spanish (Mexico) 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-03-22 02:49+0000\n"
+"Last-Translator: FULL NAME \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-03-23 05:10+0000\n"
+"X-Generator: Launchpad (build 16540)\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"
+" "
+
+#. 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/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 9233a95634c..01dab2962f3 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -392,10 +392,18 @@ class project_issue(base_stage, osv.osv):
context=context)
def write(self, cr, uid, ids, vals, context=None):
- #Update last action date every time the user change the stage, the state or send a new email
- logged_fields = ['stage_id', 'state', 'message_ids']
- if any([field in vals for field in logged_fields]):
- vals['date_action_last'] = time.strftime('%Y-%m-%d %H:%M:%S')
+
+ #Update last action date every time the user changes the stage
+ if 'stage_id' in vals:
+ vals['date_action_last'] = time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)
+ state = self.pool.get('project.task.type').browse(cr, uid, vals['stage_id'], context=context).state
+ for issue in self.browse(cr, uid, ids, context=context):
+ # Change from draft to not draft EXCEPT cancelled: The issue has been opened -> set the opening date
+ if issue.state == 'draft' and state not in ('draft', 'cancelled'):
+ vals['date_open'] = time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)
+ # Change from not done to done: The issue has been closed -> set the closing date
+ if issue.state != 'done' and state == 'done':
+ vals['date_closed'] = time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)
return super(project_issue, self).write(cr, uid, ids, vals, context)
@@ -545,6 +553,19 @@ class project_issue(base_stage, osv.osv):
return super(project_issue, self).message_update(cr, uid, ids, msg, update_vals=update_vals, context=context)
+ def message_post(self, cr, uid, thread_id, body='', subject=None, type='notification', subtype=None, parent_id=False, attachments=None, context=None, content_subtype='html', **kwargs):
+ """ Overrides mail_thread message_post so that we can set the date of last action field when
+ a new message is posted on the issue.
+ """
+ if context is None:
+ context = {}
+
+ res = super(project_issue, self).message_post(cr, uid, thread_id, body=body, subject=subject, type=type, subtype=subtype, parent_id=parent_id, attachments=attachments, context=context, content_subtype=content_subtype, **kwargs)
+
+ if thread_id:
+ self.write(cr, uid, thread_id, {'date_action_last': time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)}, context=context)
+
+ return res
class project(osv.osv):
_inherit = "project.project"
diff --git a/addons/sale/report/sale_order.py b/addons/sale/report/sale_order.py
index b4f0b1589aa..134e87a0c2e 100644
--- a/addons/sale/report/sale_order.py
+++ b/addons/sale/report/sale_order.py
@@ -27,9 +27,18 @@ class order(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context=None):
super(order, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
- 'time': time,
+ 'time': time,
+ 'show_discount':self._show_discount,
})
+ def _show_discount(self, uid, context=None):
+ cr = self.cr
+ try:
+ group_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'sale', 'group_discount_per_so_line')[1]
+ except:
+ return False
+ return group_id in [x.id for x in self.pool.get('res.users').browse(cr, uid, uid, context=context).groups_id]
+
report_sxw.report_sxw('report.sale.order', 'sale.order', 'addons/sale/report/sale_order.rml', parser=order, header="external")
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale/report/sale_order.rml b/addons/sale/report/sale_order.rml
index a00d2d4e3ef..130220535f9 100644
--- a/addons/sale/report/sale_order.rml
+++ b/addons/sale/report/sale_order.rml
@@ -251,7 +251,7 @@
Unit Price
- Disc.(%)
+ [[not show_discount(user.id) and removeParentNode('para') ]]Disc.(%)
- [[ formatLang(line.discount, digits=get_digits(dp='Discount'))]]
+ [[show_discount(user.id) and formatLang(line.discount, digits=get_digits(dp='Discount')) or '']]
[[ formatLang(line.price_subtotal, digits=get_digits(dp='Account'), currency_obj=o.pricelist_id.currency_id) ]]
diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py
index a20ba01f300..070e9c4336f 100644
--- a/addons/sale/report/sale_report.py
+++ b/addons/sale/report/sale_report.py
@@ -88,12 +88,11 @@ class sale_report(osv.osv):
s.project_id as analytic_account_id
from
sale_order s
- left join sale_order_line l on (s.id=l.order_id)
+ join sale_order_line l on (s.id=l.order_id)
left join product_product p on (l.product_id=p.id)
left join product_template t on (p.product_tmpl_id=t.id)
left join product_uom u on (u.id=l.product_uom)
left join product_uom u2 on (u2.id=t.uom_id)
- where l.product_id is not null
group by
l.product_id,
l.product_uom_qty,
diff --git a/addons/sale_mrp/test/sale_mrp.yml b/addons/sale_mrp/test/sale_mrp.yml
index 9b70e052854..5be5210b623 100644
--- a/addons/sale_mrp/test/sale_mrp.yml
+++ b/addons/sale_mrp/test/sale_mrp.yml
@@ -92,11 +92,10 @@
I verify that a procurement has been generated for sale order
-
!python {model: procurement.order}: |
- from openerp.tools.translate import _
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- assert proc_ids, _('No Procurements!')
+ assert proc_ids, 'No Procurements!'
-
Then I click on the "Run Procurement" button
-
@@ -112,7 +111,7 @@
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
- assert proc_ids, _('Procurement is not in the running state!')
+ assert proc_ids, 'Procurement is not in the running state!'
-
I verify that a manufacturing order has been generated, and that its name and reference are correct
-
@@ -120,7 +119,7 @@
mnf_obj = self.pool.get('mrp.production')
so = self.browse(cr, uid, ref("sale_order_so0"))
mnf_id = mnf_obj.search(cr, uid, [('origin','=',so.name)])
- assert mnf_id, _('Manufacturing order has not been generated')
+ assert mnf_id, 'Manufacturing order has not been generated'
mo = mnf_obj.browse(cr, uid, mnf_id)[0]
assert mo.sale_name == so.name, 'Wrong Name for the Manufacturing Order. Expected %s, Got %s' % (so.name, mo.name)
assert mo.sale_ref == so.client_order_ref, 'Wrong Sale Reference for the Manufacturing Order'
diff --git a/addons/sale_stock/report/sale_report.py b/addons/sale_stock/report/sale_report.py
index ade84b269e6..1f1e4a625be 100644
--- a/addons/sale_stock/report/sale_report.py
+++ b/addons/sale_stock/report/sale_report.py
@@ -68,8 +68,8 @@ class sale_report(osv.osv):
s.project_id as analytic_account_id
from
sale_order s
- left join sale_order_line l on (s.id=l.order_id)
- left join product_product p on (l.product_id=p.id)
+ join sale_order_line l on (s.id=l.order_id)
+ left join product_product p on (l.product_id=p.id)
left join product_template t on (p.product_tmpl_id=t.id)
left join product_uom u on (u.id=l.product_uom)
left join product_uom u2 on (u2.id=t.uom_id)
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 6bf020623f7..be0dd59468c 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -19,7 +19,6 @@
#
##############################################################################
-from lxml import etree
from datetime import datetime
from dateutil.relativedelta import relativedelta
import time
@@ -617,7 +616,7 @@ class stock_picking(osv.osv):
return res
def create(self, cr, user, vals, context=None):
- if ('name' not in vals) or (vals.get('name')=='/'):
+ if ('name' not in vals) or (vals.get('name')=='/') or (vals.get('name') == False):
seq_obj_name = self._name
vals['name'] = self.pool.get('ir.sequence').get(cr, user, seq_obj_name)
new_id = super(stock_picking, self).create(cr, user, vals, context)
@@ -704,29 +703,29 @@ class stock_picking(osv.osv):
default = {}
default = default.copy()
picking_obj = self.browse(cr, uid, id, context=context)
- move_obj=self.pool.get('stock.move')
- if ('name' not in default) or (picking_obj.name=='/'):
- seq_obj_name = 'stock.picking.' + picking_obj.type
+ move_obj = self.pool.get('stock.move')
+ if ('name' not in default) or (picking_obj.name == '/'):
+ seq_obj_name = 'stock.picking.' + picking_obj.type
default['name'] = self.pool.get('ir.sequence').get(cr, uid, seq_obj_name)
default['origin'] = ''
default['backorder_id'] = False
if 'invoice_state' not in default and picking_obj.invoice_state == 'invoiced':
default['invoice_state'] = '2binvoiced'
- res=super(stock_picking, self).copy(cr, uid, id, default, context)
+ res = super(stock_picking, self).copy(cr, uid, id, default, context)
if res:
picking_obj = self.browse(cr, uid, res, context=context)
for move in picking_obj.move_lines:
- move_obj.write(cr, uid, [move.id], {'tracking_id': False,'prodlot_id':False, 'move_history_ids2': [(6, 0, [])], 'move_history_ids': [(6, 0, [])]})
+ move_obj.write(cr, uid, [move.id], {'tracking_id': False, 'prodlot_id': False, 'move_history_ids2': [(6, 0, [])], 'move_history_ids': [(6, 0, [])]})
return res
-
+
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
if view_type == 'form' and not view_id:
mod_obj = self.pool.get('ir.model.data')
if self._name == "stock.picking.in":
- model,view_id = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_in_form')
+ model, view_id = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_in_form')
if self._name == "stock.picking.out":
- model,view_id = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_out_form')
- return super(stock_picking,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
+ model, view_id = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_out_form')
+ return super(stock_picking, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
def onchange_partner_in(self, cr, uid, ids, partner_id=None, context=None):
return {}
@@ -2440,9 +2439,8 @@ class stock_move(osv.osv):
context = {}
ctx = context.copy()
for move in self.browse(cr, uid, ids, context=context):
- if move.state != 'draft' and not ctx.get('call_unlink',False):
- raise osv.except_osv(_('User Error!'),
- _('You can only delete draft moves.'))
+ if move.state != 'draft' and not ctx.get('call_unlink', False):
+ raise osv.except_osv(_('User Error!'), _('You can only delete draft moves.'))
return super(stock_move, self).unlink(
cr, uid, ids, context=ctx)
@@ -2470,13 +2468,20 @@ class stock_move(osv.osv):
raise osv.except_osv(_('Warning!'), _('Please provide a positive quantity to scrap.'))
res = []
for move in self.browse(cr, uid, ids, context=context):
+ source_location = move.location_id
+ if move.state == 'done':
+ source_location = move.location_dest_id
+ if source_location.usage != 'internal':
+ #restrict to scrap from a virtual location because it's meaningless and it may introduce errors in stock ('creating' new products from nowhere)
+ raise osv.except_osv(_('Error!'), _('Forbidden operation: it is not allowed to scrap products from a virtual location.'))
move_qty = move.product_qty
uos_qty = quantity / move_qty * move.product_uos_qty
default_val = {
+ 'location_id': source_location.id,
'product_qty': quantity,
'product_uos_qty': uos_qty,
'state': move.state,
- 'scrapped' : True,
+ 'scrapped': True,
'location_dest_id': location_id,
'tracking_id': move.tracking_id.id,
'prodlot_id': move.prodlot_id.id,
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index bc47d83dc89..6162d073fde 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -1129,7 +1129,7 @@
stock.move
-
+
diff --git a/addons/stock_location/test/stock_location_push_flow.yml b/addons/stock_location/test/stock_location_push_flow.yml
index 27164848f77..64bd30e0c99 100644
--- a/addons/stock_location/test/stock_location_push_flow.yml
+++ b/addons/stock_location/test/stock_location_push_flow.yml
@@ -94,12 +94,11 @@
I check the move is in waiting state.
-
!python {model: stock.picking }: |
- from openerp.tools.translate import _
picking_id = self.search(cr, uid, [('origin','=','Pushed Flow Test'),('type','=','out')])
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
for move in pick.move_lines:
- assert(move.state == 'waiting'), _('Stock is not in waiting state')
+ assert(move.state == 'waiting'), 'Stock is not in waiting state'
-
I receive the order of the supplier Micro Link Technologies from the Incoming Shipments menu.
-
@@ -123,8 +122,7 @@
I check the Outgoing Orders is automatically done.
-
!python {model: stock.picking }: |
- from openerp.tools.translate import _
picking_id = self.search(cr, uid, [('origin','=','Pushed Flow Test'),('type','=','out')])
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
- assert(pick.state == 'done'), _('Picking is not in done state')
+ assert(pick.state == 'done'), 'Picking is not in done state'
diff --git a/addons/subscription/subscription.py b/addons/subscription/subscription.py
index d181e97e8f0..92bde135bc6 100644
--- a/addons/subscription/subscription.py
+++ b/addons/subscription/subscription.py
@@ -85,6 +85,17 @@ class subscription_subscription(osv.osv):
'state': lambda *a: 'draft'
}
+ def _auto_end(self, cr, context=None):
+ super(subscription_subscription, self)._auto_end(cr, context=context)
+ # drop the FK from subscription to ir.cron, as it would cause deadlocks
+ # during cron job execution. When model_copy() tries to write() on the subscription,
+ # it has to wait for an ExclusiveLock on the cron job record, but the latter
+ # is locked by the cron system for the duration of the job!
+ # FIXME: the subscription module should be reviewed to simplify the scheduling process
+ # and to use a unique cron job for all subscriptions, so that it never needs to
+ # be updated during its execution.
+ cr.execute("ALTER TABLE %s DROP CONSTRAINT %s" % (self._table, '%s_cron_id_fkey' % self._table))
+
def set_process(self, cr, uid, ids, context=None):
for row in self.read(cr, uid, ids, context=context):
mapping = {'name':'name','interval_number':'interval_number','interval_type':'interval_type','exec_init':'numbercall','date_init':'nextcall'}