diff --git a/addons/account/account_financial_report.py b/addons/account/account_financial_report.py
index 28b5e08dc99..1d9a4a794eb 100644
--- a/addons/account/account_financial_report.py
+++ b/addons/account/account_financial_report.py
@@ -39,6 +39,8 @@ class account_financial_report(osv.osv):
_description = "Account Report"
def _get_level(self, cr, uid, ids, field_name, arg, context=None):
+ '''Returns a dictionary with key=the ID of a record and value = the level of this
+ record in the tree structure.'''
res = {}
for report in self.browse(cr, uid, ids, context=context):
level = 0
@@ -48,6 +50,8 @@ class account_financial_report(osv.osv):
return res
def _get_children_by_order(self, cr, uid, ids, context=None):
+ '''returns a dictionary with the key= the ID of a record and value = all its children,
+ computed recursively, and sorted by sequence. Ready for the printing'''
res = []
for id in ids:
res.append(id)
@@ -56,6 +60,12 @@ class account_financial_report(osv.osv):
return res
def _get_balance(self, cr, uid, ids, field_names, args, context=None):
+ '''returns a dictionary with key=the ID of a record and value=the balance amount
+ computed for this record. If the record is of type :
+ 'accounts' : it's the sum of the linked accounts
+ 'account_type' : it's the sum of leaf accoutns with such an account_type
+ 'account_report' : it's the amount of the related report
+ 'sum' : it's the sum of the children of this record (aka a 'view' record)'''
account_obj = self.pool.get('account.account')
res = {}
for report in self.browse(cr, uid, ids, context=context):
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index 250a0446534..60e3dc44328 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -23,7 +23,6 @@ import time
from lxml import etree
import openerp.addons.decimal_precision as dp
-from openerp import netsvc
from openerp import pooler
from openerp.osv import fields, osv, orm
from openerp.tools.translate import _
@@ -80,11 +79,10 @@ class account_invoice(osv.osv):
def _reconciled(self, cr, uid, ids, name, args, context=None):
res = {}
- wf_service = netsvc.LocalService("workflow")
for inv in self.browse(cr, uid, ids, context=context):
res[inv.id] = self.test_paid(cr, uid, [inv.id])
if not res[inv.id] and inv.state == 'paid':
- wf_service.trg_validate(uid, 'account.invoice', inv.id, 'open_test', cr)
+ self.signal_open_test(cr, uid, [inv.id])
return res
def _get_reference_type(self, cr, uid, context=None):
@@ -308,7 +306,7 @@ class account_invoice(osv.osv):
'''
Find the partner for which the accounting entries will be created
'''
- #if the chosen partner is not a company and has a parent company, use the parent for the journal entries
+ #if the chosen partner is not a company and has a parent company, use the parent for the journal entries
#because you want to invoice 'Agrolait, accounting department' but the journal items are for 'Agrolait'
part = inv.partner_id
if part.parent_id and not part.is_company:
@@ -419,7 +417,7 @@ class account_invoice(osv.osv):
try:
compose_form_id = ir_model_data.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form')[1]
except ValueError:
- compose_form_id = False
+ compose_form_id = False
ctx = dict(context)
ctx.update({
'default_model': 'account.invoice',
@@ -540,11 +538,11 @@ class account_invoice(osv.osv):
return result
def onchange_payment_term_date_invoice(self, cr, uid, ids, payment_term_id, date_invoice):
- res = {}
+ res = {}
if not date_invoice:
date_invoice = time.strftime('%Y-%m-%d')
if not payment_term_id:
- return {'value':{'date_due': date_invoice}} #To make sure the invoice has a due date when no payment term
+ return {'value':{'date_due': date_invoice}} #To make sure the invoice has a due date when no payment term
pterm_list = self.pool.get('account.payment.term').compute(cr, uid, payment_term_id, value=1, date_ref=date_invoice)
if pterm_list:
pterm_list = [line[0] for line in pterm_list]
@@ -560,35 +558,41 @@ class account_invoice(osv.osv):
def onchange_partner_bank(self, cursor, user, ids, partner_bank_id=False):
return {'value': {}}
- def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id):
+ def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id, context=None):
val = {}
dom = {}
obj_journal = self.pool.get('account.journal')
account_obj = self.pool.get('account.account')
inv_line_obj = self.pool.get('account.invoice.line')
+
if company_id and part_id and type:
acc_id = False
- partner_obj = self.pool.get('res.partner').browse(cr,uid,part_id)
+ partner_obj = self.pool.get('res.partner').browse(cr, uid, part_id, context=context)
+
if partner_obj.property_account_payable and partner_obj.property_account_receivable:
if partner_obj.property_account_payable.company_id.id != company_id and partner_obj.property_account_receivable.company_id.id != company_id:
property_obj = self.pool.get('ir.property')
rec_pro_id = property_obj.search(cr, uid, [('name','=','property_account_receivable'),('res_id','=','res.partner,'+str(part_id)+''),('company_id','=',company_id)])
pay_pro_id = property_obj.search(cr, uid, [('name','=','property_account_payable'),('res_id','=','res.partner,'+str(part_id)+''),('company_id','=',company_id)])
+
if not rec_pro_id:
rec_pro_id = property_obj.search(cr, uid, [('name','=','property_account_receivable'),('company_id','=',company_id)])
if not pay_pro_id:
pay_pro_id = property_obj.search(cr, uid, [('name','=','property_account_payable'),('company_id','=',company_id)])
+
rec_line_data = property_obj.read(cr, uid, rec_pro_id, ['name','value_reference','res_id'])
pay_line_data = property_obj.read(cr, uid, pay_pro_id, ['name','value_reference','res_id'])
rec_res_id = rec_line_data and rec_line_data[0].get('value_reference',False) and int(rec_line_data[0]['value_reference'].split(',')[1]) or False
pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False
+
if not rec_res_id and not pay_res_id:
- raise osv.except_osv(_('Configuration Error!'),
- _('Cannot find a chart of account, you should create one from Settings\Configuration\Accounting menu.'))
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _('Cannot find any chart of account: you can create a new one from %(menu:account.menu_account_config)s.'), context=context)
+
if type in ('out_invoice', 'out_refund'):
acc_id = rec_res_id
else:
acc_id = pay_res_id
+
val= {'account_id': acc_id}
if ids:
if company_id:
@@ -638,10 +642,8 @@ class account_invoice(osv.osv):
# go from canceled state to draft state
def action_cancel_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state':'draft'})
- wf_service = netsvc.LocalService("workflow")
- for inv_id in ids:
- wf_service.trg_delete(uid, 'account.invoice', inv_id, cr)
- wf_service.trg_create(uid, 'account.invoice', inv_id, cr)
+ self.delete_workflow(cr, uid, ids)
+ self.create_workflow(cr, uid, ids)
return True
# Workflow stuff
@@ -1394,7 +1396,12 @@ class account_invoice_line(osv.osv):
# XXX this gets the default account for the user's company,
# it should get the default account for the invoice's company
# however, the invoice's company does not reach this point
- prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context)
+ if context is None:
+ context = {}
+ if context.get('type') in ('out_invoice','out_refund'):
+ prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context)
+ else:
+ prop = self.pool.get('ir.property').get(cr, uid, 'property_account_expense_categ', 'product.category', context=context)
return prop and prop.id or False
_defaults = {
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 6cca8e0ce46..9a440d3705b 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -257,7 +257,7 @@
-
+
@@ -390,7 +390,7 @@
-
+ =', time.strftime('%Y-%m-%d')),
diff --git a/addons/account/res_config_view.xml b/addons/account/res_config_view.xml
index 4bfd3697d89..7977c0fc505 100644
--- a/addons/account/res_config_view.xml
+++ b/addons/account/res_config_view.xml
@@ -33,7 +33,7 @@
- ''' % (currency.symbol)
+ '''
total = 0
for aml in currency_dict['line']:
block = aml['blocked'] and 'X' or ' '
@@ -268,13 +274,28 @@ class res_partner(osv.osv):
if date <= current_date and aml['balance'] > 0:
strbegin = "
"
total = rml_parse.formatLang(total, dp='Account', currency_obj=currency)
followup_table += '''
-
Amount due: %s
''' % (total)
+
''' + _("Amount due") + ''' : %s
''' % (total)
return followup_table
+ def write(self, cr, uid, ids, vals, context=None):
+ if vals.get("payment_responsible_id", False):
+ for part in self.browse(cr, uid, ids, context=context):
+ if part.payment_responsible_id <> vals["payment_responsible_id"]:
+ #Find partner_id of user put as responsible
+ responsible_partner_id = self.pool.get("res.users").browse(cr, uid, vals['payment_responsible_id'], context=context).partner_id.id
+ self.pool.get("mail.thread").message_post(cr, uid, 0,
+ body = _("You became responsible to do the next action for the payment follow-up of") + " " + part.name + " ",
+ type = 'comment',
+ subtype = "mail.mt_comment", context = context,
+ model = 'res.partner', res_id = part.id,
+ notified_partner_ids = [(6, 0, [responsible_partner_id])],
+ partner_ids = [(6, 0, [responsible_partner_id])])
+ return super(res_partner, self).write(cr, uid, ids, vals, context=context)
+
def action_done(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'payment_next_action_date': False, 'payment_next_action':'', 'payment_responsible_id': False}, context=context)
@@ -408,13 +429,16 @@ class res_partner(osv.osv):
_inherit = "res.partner"
_columns = {
'payment_responsible_id':fields.many2one('res.users', ondelete='set null', string='Follow-up Responsible',
- help="Optionally you can assign a user to this field, which will make him responsible for the action."),
- 'payment_note':fields.text('Customer Payment Promise', help="Payment Note"),
+ help="Optionally you can assign a user to this field, which will make him responsible for the action.",
+ track_visibility="onchange"),
+ 'payment_note':fields.text('Customer Payment Promise', help="Payment Note", track_visibility="onchange"),
'payment_next_action':fields.text('Next Action',
- help="This is the next action to be taken. It will automatically be set when the partner gets a follow-up level that requires a manual action. "),
+ help="This is the next action to be taken. It will automatically be set when the partner gets a follow-up level that requires a manual action. ",
+ track_visibility="onchange"),
'payment_next_action_date':fields.date('Next Action Date',
help="This is when the manual follow-up is needed. " \
- "The date will be set to the current date when the partner gets a follow-up level that requires a manual action. Can be practical to set manually e.g. to see if he keeps his promises."),
+ "The date will be set to the current date when the partner gets a follow-up level that requires a manual action. "\
+ "Can be practical to set manually e.g. to see if he keeps his promises."),
'unreconciled_aml_ids':fields.one2many('account.move.line', 'partner_id', domain=['&', ('reconcile_id', '=', False), '&',
('account_id.active','=', True), '&', ('account_id.type', '=', 'receivable'), ('state', '!=', 'draft')]),
'latest_followup_date':fields.function(_get_latest, method=True, type='date', string="Latest Follow-up Date",
diff --git a/addons/account_followup/account_followup_customers.xml b/addons/account_followup/account_followup_customers.xml
index 8a27730b003..691d1555e8d 100644
--- a/addons/account_followup/account_followup_customers.xml
+++ b/addons/account_followup/account_followup_customers.xml
@@ -35,10 +35,10 @@
-
+
-
+
@@ -132,6 +132,18 @@
-
+
+ My Follow-Ups
+
+ res.partner
+ form
+ tree,form
+ [('payment_amount_due', '>', 0.0)]
+ {'Followupfirst':True, 'search_default_todo': True, 'search_default_my': True}
+
+
+
+
diff --git a/addons/account_followup/tests/test_account_followup.py b/addons/account_followup/tests/test_account_followup.py
index 14f458de98d..8ddf3f82288 100644
--- a/addons/account_followup/tests/test_account_followup.py
+++ b/addons/account_followup/tests/test_account_followup.py
@@ -44,8 +44,7 @@ class TestAccountFollowup(TransactionCase):
'quantity': 5,
'price_unit':200
})]})
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.invoice', self.invoice_id, 'invoice_open', cr)
+ self.registry('account.invoice').signal_invoice_open(cr, uid, [self.invoice_id])
self.voucher = self.registry("account.voucher")
diff --git a/addons/account_followup/wizard/account_followup_print.py b/addons/account_followup/wizard/account_followup_print.py
index e93b4dd8b69..76aee365e00 100644
--- a/addons/account_followup/wizard/account_followup_print.py
+++ b/addons/account_followup/wizard/account_followup_print.py
@@ -26,6 +26,8 @@ from openerp import tools
from openerp.osv import fields, osv
from openerp.tools.translate import _
+from openerp import SUPERUSER_ID
+
class account_followup_stat_by_partner(osv.osv):
_name = "account_followup.stat.by.partner"
_description = "Follow-up Statistics by Partner"
@@ -127,7 +129,7 @@ class account_followup_print(osv.osv_memory):
'email_body': fields.text('Email Body'),
'summary': fields.text('Summary', readonly=True),
'test_print': fields.boolean('Test Print',
- help='Check if you want to print follow-ups without changing follow-ups level.'),
+ help='Check if you want to print follow-ups without changing follow-up level.'),
}
def _get_followup(self, cr, uid, context=None):
@@ -204,7 +206,7 @@ class account_followup_print(osv.osv_memory):
if not part.unreconciled_aml_ids:
partners_to_clear.append(part.id)
self.pool.get('res.partner').action_done(cr, uid, partners_to_clear, context=context)
- return len(ids)
+ return len(partners_to_clear)
def do_process(self, cr, uid, ids, context=None):
if context is None:
@@ -313,6 +315,13 @@ class account_followup_print(osv.osv_memory):
if stat_line_id not in partner_list:
partner_list.append(stat_line_id)
to_update[str(id)]= {'level': fups[followup_line_id][1], 'partner_id': stat_line_id}
+ #Remove partners that are other companies in OpenERP
+ comp_obj = self.pool.get("res.company")
+ comp_ids = comp_obj.search(cr, SUPERUSER_ID, [], context=context)
+ for comp in comp_obj.browse(cr, SUPERUSER_ID, comp_ids, context=context):
+ company_partner_wiz_id = comp.partner_id.id * 10000 + company_id
+ if company_partner_wiz_id in partner_list:
+ partner_list.remove(company_partner_wiz_id)
return {'partner_ids': partner_list, 'to_update': to_update}
account_followup_print()
diff --git a/addons/account_payment/account_payment.py b/addons/account_payment/account_payment.py
index d67db60e590..bf0377111a8 100644
--- a/addons/account_payment/account_payment.py
+++ b/addons/account_payment/account_payment.py
@@ -23,7 +23,6 @@ import logging
import time
from openerp.osv import fields, osv
-from openerp import netsvc
_logger = logging.getLogger(__name__)
@@ -120,9 +119,7 @@ class payment_order(osv.osv):
def set_to_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'draft'})
- wf_service = netsvc.LocalService("workflow")
- for id in ids:
- wf_service.trg_create(uid, 'payment.order', id, cr)
+ self.create_workflow(cr, uid, ids)
return True
def action_open(self, cr, uid, ids, *args):
@@ -135,9 +132,8 @@ class payment_order(osv.osv):
return True
def set_done(self, cr, uid, ids, *args):
- wf_service = netsvc.LocalService("workflow")
self.write(cr, uid, ids, {'date_done': time.strftime('%Y-%m-%d')})
- wf_service.trg_validate(uid, 'payment.order', ids[0], 'done', cr)
+ self.signal_done(cr, uid, [ids[0]])
return True
def copy(self, cr, uid, id, default=None, context=None):
diff --git a/addons/account_test/i18n/ar.po b/addons/account_test/i18n/ar.po
new file mode 100644
index 00000000000..c2d46674b1b
--- /dev/null
+++ b/addons/account_test/i18n/ar.po
@@ -0,0 +1,241 @@
+# Arabic translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-02-18 11:32+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Arabic \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-02-19 04:57+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid ""
+"Code should always set a variable named `result` with the result of your "
+"test, that can be a list or\n"
+"a dictionary. If `result` is an empty list, it means that the test was "
+"succesful. Otherwise it will\n"
+"try to translate and print what is inside `result`.\n"
+"\n"
+"If the result of your test is a dictionary, you can set a variable named "
+"`column_order` to choose in\n"
+"what order you want to print `result`'s content.\n"
+"\n"
+"Should you need them, you can also use the following variables into your "
+"code:\n"
+" * cr: cursor to the database\n"
+" * uid: ID of the current user\n"
+"\n"
+"In any ways, the code must be legal python statements with correct "
+"indentation (if needed).\n"
+"\n"
+"Example: \n"
+" sql = '''SELECT id, name, ref, date\n"
+" FROM account_move_line \n"
+" WHERE account_id IN (SELECT id FROM account_account WHERE type "
+"= 'view')\n"
+" '''\n"
+" cr.execute(sql)\n"
+" result = cr.dictfetchall()"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_02
+msgid "Test 2: Opening a fiscal year"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_05
+msgid ""
+"Check that reconciled invoice for Sales/Purchases has reconciled entries for "
+"Payable and Receivable Accounts"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_03
+msgid ""
+"Check if movement lines are balanced and have the same date and period"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,name:0
+msgid "Test Name"
+msgstr ""
+
+#. module: account_test
+#: report:account.test.assert.print:0
+msgid "Accouting tests on"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_01
+msgid "Test 1: General balance"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_06
+msgid "Check that paid/reconciled invoices are not in 'Open' state"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_05_2
+msgid ""
+"Check that reconciled account moves, that define Payable and Receivable "
+"accounts, are belonging to reconciled invoices"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Tests"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,desc:0
+msgid "Test Description"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Description"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_06_1
+msgid "Check that there's no move for any account with « View » account type"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_08
+msgid "Test 9 : Accounts and partners on account moves"
+msgstr ""
+
+#. module: account_test
+#: model:ir.actions.act_window,name:account_test.action_accounting_assert
+#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
+#: model:ir.ui.menu,name:account_test.menu_action_license
+msgid "Accounting Tests"
+msgstr ""
+
+#. module: account_test
+#: code:addons/account_test/report/account_test_report.py:74
+#, python-format
+msgid "The test was passed successfully"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,active:0
+msgid "Active"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_06
+msgid "Test 6 : Invoices status"
+msgstr ""
+
+#. module: account_test
+#: model:ir.model,name:account_test.model_accounting_assert_test
+msgid "accounting.assert.test"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_05
+msgid ""
+"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,code_exec:0
+msgid "Python code"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_07
+msgid ""
+"Check on bank statement that the Closing Balance = Starting Balance + sum of "
+"statement lines"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_07
+msgid "Test 8 : Closing balance on bank statements"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_03
+msgid "Test 3: Movement lines"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_05_2
+msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Expression"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_04
+msgid "Test 4: Totally reconciled mouvements"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_04
+msgid "Check if the totally reconciled movements are balanced"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_02
+msgid ""
+"Check if the balance of the new opened fiscal year matches with last year's "
+"balance"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Python Code"
+msgstr ""
+
+#. module: account_test
+#: model:ir.actions.act_window,help:account_test.action_accounting_assert
+msgid ""
+"
\n"
+" Click to create Accounting Test.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_01
+msgid "Check the balance: Debit sum = Credit sum"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_08
+msgid "Check that general accounts and partners on account moves are active"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_06_1
+msgid "Test 7: « View » account type"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Code Help"
+msgstr ""
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index d615eaf7d8c..c6f754ed18f 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -22,7 +22,6 @@
import time
from lxml import etree
-from openerp import netsvc
from openerp.osv import fields, osv
import openerp.addons.decimal_precision as dp
from openerp.tools.translate import _
@@ -50,13 +49,25 @@ class account_config_settings(osv.osv_memory):
'company_id', 'income_currency_exchange_account_id',
type='many2one',
relation='account.account',
- string="Gain Exchange Rate Account"),
+ string="Gain Exchange Rate Account",
+ domain="[('type', '=', 'other')]"),
'expense_currency_exchange_account_id': fields.related(
'company_id', 'expense_currency_exchange_account_id',
type="many2one",
relation='account.account',
- string="Loss Exchange Rate Account"),
+ string="Loss Exchange Rate Account",
+ domain="[('type', '=', 'other')]"),
}
+ def onchange_company_id(self, cr, uid, ids, company_id, context=None):
+ res = super(account_config_settings, self).onchange_company_id(cr, uid, ids, company_id, context=context)
+ if company_id:
+ company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
+ res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id or False,
+ 'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id or False})
+ else:
+ res['value'].update({'income_currency_exchange_account_id': False,
+ 'expense_currency_exchange_account_id': False})
+ return res
class account_voucher(osv.osv):
def _check_paid(self, cr, uid, ids, name, args, context=None):
@@ -820,10 +831,7 @@ class account_voucher(osv.osv):
return vals
def button_proforma_voucher(self, cr, uid, ids, context=None):
- context = context or {}
- wf_service = netsvc.LocalService("workflow")
- for vid in ids:
- wf_service.trg_validate(uid, 'account.voucher', vid, 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, ids)
return {'type': 'ir.actions.act_window_close'}
def proforma_voucher(self, cr, uid, ids, context=None):
@@ -831,9 +839,7 @@ class account_voucher(osv.osv):
return True
def action_cancel_draft(self, cr, uid, ids, context=None):
- wf_service = netsvc.LocalService("workflow")
- for voucher_id in ids:
- wf_service.trg_create(uid, 'account.voucher', voucher_id, cr)
+ self.create_workflow(cr, uid, ids)
self.write(cr, uid, ids, {'state':'draft'})
return True
@@ -1508,7 +1514,6 @@ class account_bank_statement(osv.osv):
def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, next_number, context=None):
voucher_obj = self.pool.get('account.voucher')
- wf_service = netsvc.LocalService("workflow")
move_line_obj = self.pool.get('account.move.line')
bank_st_line_obj = self.pool.get('account.bank.statement.line')
st_line = bank_st_line_obj.browse(cr, uid, st_line_id, context=context)
@@ -1516,7 +1521,7 @@ class account_bank_statement(osv.osv):
voucher_obj.write(cr, uid, [st_line.voucher_id.id], {'number': next_number}, context=context)
if st_line.voucher_id.state == 'cancel':
voucher_obj.action_cancel_draft(cr, uid, [st_line.voucher_id.id], context=context)
- wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)
+ voucher_obj.signal_proforma_voucher(cr, uid, [st_line.voucher_id.id])
v = voucher_obj.browse(cr, uid, st_line.voucher_id.id, context=context)
bank_st_line_obj.write(cr, uid, [st_line_id], {
diff --git a/addons/account_voucher/test/case1_usd_usd.yml b/addons/account_voucher/test/case1_usd_usd.yml
index 8e9bd5de584..44269104370 100644
--- a/addons/account_voucher/test/case1_usd_usd.yml
+++ b/addons/account_voucher/test/case1_usd_usd.yml
@@ -159,8 +159,6 @@
I fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$>
-
!python {model: account.voucher}: |
- import time
- from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case1'))
data = []
@@ -183,10 +181,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
- from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my first voucher is valid
-
@@ -257,8 +253,6 @@
I fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$
-
!python {model: account.voucher}: |
- import time
- from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case1'))
data = []
@@ -281,10 +275,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
- from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my second voucher is valid
-
diff --git a/addons/account_voucher/test/case2_suppl_usd_eur.yml b/addons/account_voucher/test/case2_suppl_usd_eur.yml
index 194bd1be2de..c13bfcbd5d4 100644
--- a/addons/account_voucher/test/case2_suppl_usd_eur.yml
+++ b/addons/account_voucher/test/case2_suppl_usd_eur.yml
@@ -131,8 +131,6 @@
I fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$
-
!python {model: account.voucher}: |
- import time
- from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2_suppl'))
data = []
@@ -162,10 +160,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
- from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -237,8 +233,6 @@
I fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$>
-
!python {model: account.voucher}: |
- import time
- from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2_suppl'))
data = []
@@ -268,10 +262,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
- from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that my voucher state is posted
-
diff --git a/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml b/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml
index bf785376613..02dd82f5c14 100644
--- a/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml
+++ b/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml
@@ -182,8 +182,7 @@
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -258,8 +257,7 @@
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that my voucher state is posted
-
diff --git a/addons/account_voucher/test/case2_usd_eur_debtor_in_usd.yml b/addons/account_voucher/test/case2_usd_eur_debtor_in_usd.yml
index 3caf0a747c6..52c416e06cc 100644
--- a/addons/account_voucher/test/case2_usd_eur_debtor_in_usd.yml
+++ b/addons/account_voucher/test/case2_usd_eur_debtor_in_usd.yml
@@ -163,8 +163,6 @@
I fill amounts 130 for the invoice of 200$ and 70 for the invoice of 100$>
-
!python {model: account.voucher}: |
- import time
- from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2b'))
data = []
@@ -180,10 +178,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
- from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -247,8 +243,6 @@
and I fully reconcil the 2 previous invoices
-
!python {model: account.voucher}: |
- import time
- from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2b'))
data = []
@@ -271,10 +265,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
- from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that my voucher state is posted
-
diff --git a/addons/account_voucher/test/case3_eur_eur.yml b/addons/account_voucher/test/case3_eur_eur.yml
index 5d1c1eb18a3..99153ceeca4 100644
--- a/addons/account_voucher/test/case3_eur_eur.yml
+++ b/addons/account_voucher/test/case3_eur_eur.yml
@@ -118,8 +118,6 @@
I fill amounts 100 for the invoice of 150€ and 20 for the invoice of 80€
-
!python {model: account.voucher}: |
- import time
- from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case3'))
data = []
@@ -142,10 +140,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
- from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my first voucher is valid
-
@@ -209,8 +205,6 @@
I fill amounts 50 for the invoice of 150€ and 70 for the invoice of 80€
-
!python {model: account.voucher}: |
- import time
- from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case3'))
data = []
@@ -233,10 +227,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
- from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my second voucher is valid
-
diff --git a/addons/account_voucher/test/case4_cad_chf.yml b/addons/account_voucher/test/case4_cad_chf.yml
index a5deb8877c9..a0ef13d96aa 100644
--- a/addons/account_voucher/test/case4_cad_chf.yml
+++ b/addons/account_voucher/test/case4_cad_chf.yml
@@ -144,8 +144,7 @@
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
diff --git a/addons/account_voucher/test/sales_payment.yml b/addons/account_voucher/test/sales_payment.yml
index 25382a49d68..37264de114a 100644
--- a/addons/account_voucher/test/sales_payment.yml
+++ b/addons/account_voucher/test/sales_payment.yml
@@ -61,8 +61,7 @@
id = self.create(cr, uid, vals)
voucher_id = self.browse(cr, uid, id)
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher_id.id, 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, [voucher_id.id])
-
Finally i will Confirm the state of the invoice is paid
diff --git a/addons/account_voucher/test/sales_receipt.yml b/addons/account_voucher/test/sales_receipt.yml
index b30e1263cdd..dc5602753fd 100644
--- a/addons/account_voucher/test/sales_receipt.yml
+++ b/addons/account_voucher/test/sales_receipt.yml
@@ -65,8 +65,7 @@
id = self.create(cr, uid, vals)
voucher_id = self.browse(cr, uid, id)
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', voucher_id.id, 'proforma_voucher', cr)
+ self.signal_proforma_voucher(cr, uid, [voucher_id.id])
-
I check that move lines are reconciled meaning voucher is paid
-
diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml
index 5a204d605d6..b869f6c83b2 100644
--- a/addons/account_voucher/voucher_payment_receipt_view.xml
+++ b/addons/account_voucher/voucher_payment_receipt_view.xml
@@ -307,8 +307,9 @@
+
-
+ , 2011.
+# FIRST AUTHOR , 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-12-03 16:03+0000\n"
-"PO-Revision-Date: 2012-12-07 08:15+0000\n"
-"Last-Translator: Denis Karataev \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-02-13 09:46+0000\n"
+"Last-Translator: FULL NAME \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-08 04:59+0000\n"
-"X-Generator: Launchpad (build 16341)\n"
+"X-Launchpad-Export-Date: 2013-02-14 04:37+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
-#. module: base_crypt
-#: model:ir.model,name:base_crypt.model_res_users
+#. module: auth_crypt
+#: field:res.users,password_crypt:0
+msgid "Encrypted Password"
+msgstr "Зашифрованный пароль"
+
+#. module: auth_crypt
+#: model:ir.model,name:auth_crypt.model_res_users
msgid "Users"
msgstr "Пользователи"
-
-#~ msgid "res.users"
-#~ msgstr "res.users"
-
-#, python-format
-#~ msgid "Error"
-#~ msgstr "Error"
-
-#, python-format
-#~ msgid "Please specify the password !"
-#~ msgstr "Необходимо указать пароль!"
-
-#~ msgid "The chosen company is not in the allowed companies for this user"
-#~ msgstr ""
-#~ "Выбранная организация отсутствует в списке разрешённых для этого пользователя"
-
-#~ msgid "You can not have two users with the same login !"
-#~ msgstr "Не может быть двух пользователей с одинаковым именем пользователя!"
-
-#~ msgid "Base - Password Encryption"
-#~ msgstr "Основной - Шифрование паролей"
-
-#~ msgid ""
-#~ "This module replaces the cleartext password in the database with a password "
-#~ "hash,\n"
-#~ "preventing anyone from reading the original password.\n"
-#~ "For your existing user base, the removal of the cleartext passwords occurs "
-#~ "the first time\n"
-#~ "a user logs into the database, after installing base_crypt.\n"
-#~ "After installing this module it won't be possible to recover a forgotten "
-#~ "password for your\n"
-#~ "users, the only solution is for an admin to set a new password.\n"
-#~ "\n"
-#~ "Note: installing this module does not mean you can ignore basic security "
-#~ "measures,\n"
-#~ "as the password is still transmitted unencrypted on the network (by the "
-#~ "client),\n"
-#~ "unless you are using a secure protocol such as XML-RPCS.\n"
-#~ " "
-#~ msgstr ""
-#~ "Этот модуль заменяет текстовые пароли в базе данных на их хэши,\n"
-#~ "предотвращая хищение оригинальных паролей.\n"
-#~ "Для существующей базы пользователей, удаление текстового пароля происходит "
-#~ "при\n"
-#~ "первом входе пользователя после установки base_crypt.\n"
-#~ "После установки этого модуля станет невозможно восстановление пароля \n"
-#~ "пользователя. Возможна будет только замена пароля.\n"
-#~ "\n"
-#~ "Прим.: установка этого модуля не избавляет от необходимости соблюдать\n"
-#~ "базовые меры безопасности, поскольку пароли всё ещё передаются открытым\n"
-#~ "текстом по сети, если не используется безопасный протокол вроде XML-RPCS.\n"
-#~ " "
diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py
index f461a675a47..1c38f7f4eae 100644
--- a/addons/auth_oauth/controllers/main.py
+++ b/addons/auth_oauth/controllers/main.py
@@ -2,8 +2,10 @@ import functools
import logging
import simplejson
+import werkzeug.utils
from werkzeug.exceptions import BadRequest
+import openerp
from openerp import SUPERUSER_ID
import openerp.addons.web.http as oeweb
from openerp.addons.web.controllers.main import db_monodb, set_cookie_and_redirect, login_and_redirect
@@ -69,6 +71,13 @@ class OAuthController(oeweb.Controller):
# auth_signup is not installed
_logger.error("auth_signup not installed on database %s: oauth sign up cancelled." % (dbname,))
url = "/#action=login&oauth_error=1"
+ except openerp.exceptions.AccessDenied:
+ # oauth credentials not valid, user could be on a temporary session
+ _logger.info('OAuth2: access denied, redirect to main page in case a valid session exists, without setting cookies')
+ url = "/#action=login&oauth_error=3"
+ redirect = werkzeug.utils.redirect(url, 303)
+ redirect.autocorrect_location_header = False
+ return redirect
except Exception, e:
# signup error
_logger.exception("OAuth2: %s" % str(e))
diff --git a/addons/auth_oauth_signup/i18n/ru.po b/addons/auth_oauth_signup/i18n/ru.po
new file mode 100644
index 00000000000..d1c4716c71c
--- /dev/null
+++ b/addons/auth_oauth_signup/i18n/ru.po
@@ -0,0 +1,23 @@
+# Russian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-02-13 09:46+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Russian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-02-14 04:37+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
+
+#. module: auth_oauth_signup
+#: model:ir.model,name:auth_oauth_signup.model_res_users
+msgid "Users"
+msgstr "Пользователи"
diff --git a/addons/auth_oauth_signup/res_users.py b/addons/auth_oauth_signup/res_users.py
index 83400f7c008..495331124b1 100644
--- a/addons/auth_oauth_signup/res_users.py
+++ b/addons/auth_oauth_signup/res_users.py
@@ -36,6 +36,8 @@ class res_users(osv.Model):
login = super(res_users, self)._auth_oauth_signin(cr, uid, provider, validation, params, context=context)
except openerp.exceptions.AccessDenied:
+ if context and context.get('no_user_creation'):
+ return None
state = simplejson.loads(params['state'])
token = state.get('t')
oauth_uid = validation['user_id']
diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py
index 9718897ef82..4e86de5b474 100644
--- a/addons/auth_signup/res_users.py
+++ b/addons/auth_signup/res_users.py
@@ -260,13 +260,15 @@ class res_users(osv.Model):
template = self.pool.get('ir.model.data').get_object(cr, uid, 'auth_signup', 'reset_password_email')
mail_obj = self.pool.get('mail.mail')
assert template._name == 'email.template'
+
for user in self.browse(cr, uid, ids, context):
if not user.email:
raise osv.except_osv(_("Cannot send email: user has no email address."), user.name)
mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, user.id, True, context=context)
mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context)
+
if mail_state and mail_state['state'] == 'exception':
- raise osv.except_osv(_("Cannot send email: no outgoing email server configured.\nYou can configure it under Settings/General Settings."), user.name)
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _("Cannot send email: no outgoing email server configured.\nYou can configure it under %(menu:base_setup.menu_general_configuration)s."), context)
else:
return {
'type': 'ir.actions.client',
diff --git a/addons/base_action_rule/i18n/cs.po b/addons/base_action_rule/i18n/cs.po
new file mode 100644
index 00000000000..2321a9b5d31
--- /dev/null
+++ b/addons/base_action_rule/i18n/cs.po
@@ -0,0 +1,338 @@
+# Czech translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-02-15 15:11+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Czech \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
+
+#. module: base_action_rule
+#: selection:base.action.rule.lead.test,state:0
+msgid "In Progress"
+msgstr "Probíhá"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid ""
+"- In this same \"Search\" view, select the menu \"Save Current Filter\", "
+"enter the name (Ex: Create the 01/01/2012) and add the option \"Share with "
+"all users\""
+msgstr ""
+"- V tomto zobrazení \"Vyhledat\" zvolte nabídku \"Uložit aktuální filtr\", "
+"zadejte jméno (Např.: Vytvořeno 01.01.2012) a přidejte volbu \"sdílet se "
+"všemi uživateli\""
+
+#. module: base_action_rule
+#: model:ir.model,name:base_action_rule.model_base_action_rule
+msgid "Action Rules"
+msgstr "Pravidla akcí"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Select a filter or a timer as condition."
+msgstr "Zvolte jako podmínku filtr nebo časovač"
+
+#. module: base_action_rule
+#: field:base.action.rule.lead.test,user_id:0
+msgid "Responsible"
+msgstr "Zodpovídá"
+
+#. module: base_action_rule
+#: help:base.action.rule,server_action_ids:0
+msgid "Examples: email reminders, call object service, etc."
+msgstr "Například: připomenutí e-mailu, volání služby, apod."
+
+#. module: base_action_rule
+#: field:base.action.rule,act_followers:0
+msgid "Add Followers"
+msgstr "Přidejte na vědomí"
+
+#. module: base_action_rule
+#: field:base.action.rule,act_user_id:0
+msgid "Set Responsible"
+msgstr "Nastavte odpovědnou osobu"
+
+#. module: base_action_rule
+#: help:base.action.rule,trg_date_range:0
+msgid ""
+"Delay after the trigger date.You can put a negative number if you need a "
+"delay before thetrigger date, like sending a reminder 15 minutes before a "
+"meeting."
+msgstr ""
+"Zpoždění po datu spuštění. Můžete zadat záporné číslo, pokud potřebujete "
+"prodlevu před datem spuštění, jako zaslání připomenutí 15 minut před "
+"schůzkou."
+
+#. module: base_action_rule
+#: model:ir.model,name:base_action_rule.model_base_action_rule_lead_test
+msgid "base.action.rule.lead.test"
+msgstr "base.action.rule.lead.test"
+
+#. module: base_action_rule
+#: selection:base.action.rule.lead.test,state:0
+msgid "Closed"
+msgstr "Uzavřeno"
+
+#. module: base_action_rule
+#: selection:base.action.rule.lead.test,state:0
+msgid "New"
+msgstr "Nové"
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_date_range:0
+msgid "Delay after trigger date"
+msgstr "Po datu spuštění"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Conditions"
+msgstr "Podmínky"
+
+#. module: base_action_rule
+#: selection:base.action.rule.lead.test,state:0
+msgid "Pending"
+msgstr "Čekající"
+
+#. module: base_action_rule
+#: field:base.action.rule.lead.test,state:0
+msgid "Status"
+msgstr "Stav"
+
+#. module: base_action_rule
+#: field:base.action.rule,filter_pre_id:0
+msgid "Before Update Filter"
+msgstr "Filtr před aktualizací"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Action Rule"
+msgstr "Pravidlo akce"
+
+#. module: base_action_rule
+#: help:base.action.rule,filter_id:0
+msgid ""
+"If present, this condition must be satisfied after the update of the record."
+msgstr "Existuje-li, musí být tato podmínka po aktualizaci záznamu splněna."
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Fields to Change"
+msgstr "Pole, která je možno měnit"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "The filter must therefore be available in this page."
+msgstr "Filtr musí být na této straně k dispozici."
+
+#. module: base_action_rule
+#: field:base.action.rule,filter_id:0
+msgid "After Update Filter"
+msgstr "Filtr po aktualizaci"
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_range_type:0
+msgid "Hours"
+msgstr "hodin"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "To create a new filter:"
+msgstr "Nový filtr vytvoříte:"
+
+#. module: base_action_rule
+#: field:base.action.rule,active:0
+#: field:base.action.rule.lead.test,active:0
+msgid "Active"
+msgstr "Aktivní"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Delay After Trigger Date"
+msgstr "Zpoždění po datu spuštění"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid ""
+"An action rule is checked when you create or modify the \"Related Document "
+"Model\". The precondition filter is checked right before the modification "
+"while the postcondition filter is checked after the modification. A "
+"precondition filter will therefore not work during a creation."
+msgstr ""
+"Pravidlo akce je ověřováno při vytváření nebo úpravě \"souvisejícího modelu "
+"dokumentu\". Platnost filtru s podmínkou před je ověřována před úpravou, "
+"zatímco platnost filtru s podmínkou po je kontrolována po úpravě. Filtr s "
+"podmínkou před nebude tedy pracovat při vytváření."
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Filter Condition"
+msgstr "Podmínka filtru"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid ""
+"- Go to your \"Related Document Model\" page and set the filter parameters "
+"in the \"Search\" view (Example of filter based on Leads/Opportunities: "
+"Creation Date \"is equal to\" 01/01/2012)"
+msgstr ""
+"- Přejděte na stránku \"Přiřazený model dokumentu\" a nastavte parametry "
+"filtru v zobrazení \"Hledat\" (Příklad filtru na základě Zájemci / "
+"Příležitosti: Datum vytvoření \"je\" 01.01.2012)"
+
+#. module: base_action_rule
+#: field:base.action.rule,name:0
+msgid "Rule Name"
+msgstr "Název pravidla"
+
+#. module: base_action_rule
+#: model:ir.actions.act_window,name:base_action_rule.base_action_rule_act
+#: model:ir.ui.menu,name:base_action_rule.menu_base_action_rule_form
+msgid "Automated Actions"
+msgstr "Automatické akce"
+
+#. module: base_action_rule
+#: help:base.action.rule,sequence:0
+msgid "Gives the sequence order when displaying a list of rules."
+msgstr "Udává pořadí příkazů při zobrazení seznamu pravidel."
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_range_type:0
+msgid "Months"
+msgstr "měsíců"
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_range_type:0
+msgid "Days"
+msgstr "dnů"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Timer"
+msgstr "Časovač"
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_date_range_type:0
+msgid "Delay type"
+msgstr "Typ zpoždění"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Server actions to run"
+msgstr "Akce serveru ke spuštění"
+
+#. module: base_action_rule
+#: help:base.action.rule,active:0
+msgid "When unchecked, the rule is hidden and will not be executed."
+msgstr "Pokud neoznačíte, pravidlo nebude vidět neprovede se."
+
+#. module: base_action_rule
+#: selection:base.action.rule.lead.test,state:0
+msgid "Cancelled"
+msgstr "Zrušeno"
+
+#. module: base_action_rule
+#: field:base.action.rule,model:0
+msgid "Model"
+msgstr "Model"
+
+#. module: base_action_rule
+#: field:base.action.rule,last_run:0
+msgid "Last Run"
+msgstr "Naposledy spuštěno"
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_range_type:0
+msgid "Minutes"
+msgstr "minut"
+
+#. module: base_action_rule
+#: field:base.action.rule,model_id:0
+msgid "Related Document Model"
+msgstr "Související model dokumentu"
+
+#. module: base_action_rule
+#: help:base.action.rule,filter_pre_id:0
+msgid ""
+"If present, this condition must be satisfied before the update of the record."
+msgstr "Existuje-li, musí být podmínka spolněna po aktualizaci záznamu."
+
+#. module: base_action_rule
+#: field:base.action.rule,sequence:0
+msgid "Sequence"
+msgstr "Pořadí"
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Actions"
+msgstr "Akce"
+
+#. module: base_action_rule
+#: model:ir.actions.act_window,help:base_action_rule.base_action_rule_act
+msgid ""
+"
\n"
+" Click to setup a new automated action rule. \n"
+"
\n"
+" Use automated actions to automatically trigger actions for\n"
+" various screens. Example: a lead created by a specific user "
+"may\n"
+" be automatically set to a specific sales team, or an\n"
+" opportunity which still has status pending after 14 days "
+"might\n"
+" trigger an automatic reminder email.\n"
+"
\n"
+" "
+msgstr ""
+"
\n"
+" Klepni pro vytvoření nového automatického pravidla akce. \n"
+"
\n"
+" Automatické akce používejte pro různé automaticky spouštěné\n"
+" akce. Například: a zájemce vytvořený konkrétním uživatelem "
+"může\n"
+" být automaticky přiřazen do určité obchodní skupiny, nebo\n"
+" příležitost, která je 14 dnů ve stavu \"čekající\" může "
+"odeslat\n"
+" upozorňující e-mail.\n"
+"
\n"
+" Kattintson új kapcsolat hozzáadásához a címjegyzékhez.\n"
+"
\n"
+" OpenERP segít az összes tevékenység nyomon követésében ami \n"
+" összefüggésben áll a vevőkkel; megbeszélésekkel, üzleti "
+"lehetőségek történetével,\n"
+" dokumentumokkal stb.\n"
+"
\n"
+" "
#. module: contacts
#: model:ir.actions.act_window,name:contacts.action_contacts
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index d5f90d8a653..294adc863b5 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -567,7 +567,8 @@ class crm_lead(base_stage, format_address, osv.osv):
for opportunity in opportunities:
subject.append(opportunity.name)
title = "%s : %s" % (opportunity.type == 'opportunity' and _('Merged opportunity') or _('Merged lead'), opportunity.name)
- details.append(self._mail_body(cr, uid, opportunity, CRM_LEAD_FIELDS_TO_MERGE, title=title, context=context))
+ fields = list(CRM_LEAD_FIELDS_TO_MERGE)
+ details.append(self._mail_body(cr, uid, opportunity, fields, title=title, context=context))
# Chatter message's subject
subject = subject[0] + ": " + ", ".join(subject[1:])
@@ -627,7 +628,10 @@ class crm_lead(base_stage, format_address, osv.osv):
opportunities = self.browse(cr, uid, ids, context=context)
sequenced_opps = []
for opportunity in opportunities:
- sequenced_opps.append((opportunity.stage_id and opportunity.stage_id.state != 'cancel' and opportunity.stage_id.sequence or 0, opportunity))
+ if opportunity.stage_id and opportunity.stage_id.state != 'cancel':
+ sequenced_opps.append((opportunity.stage_id.sequence, opportunity))
+ else:
+ sequenced_opps.append((-1, opportunity))
sequenced_opps.sort(key=lambda tup: tup[0], reverse=True)
opportunities = [opportunity for sequence, opportunity in sequenced_opps]
ids = [opportunity.id for opportunity in opportunities]
@@ -636,7 +640,8 @@ class crm_lead(base_stage, format_address, osv.osv):
tail_opportunities = opportunities_rest
- merged_data = self._merge_data(cr, uid, ids, highest, CRM_LEAD_FIELDS_TO_MERGE, context=context)
+ fields = list(CRM_LEAD_FIELDS_TO_MERGE)
+ merged_data = self._merge_data(cr, uid, ids, highest, fields, context=context)
# Merge messages and attachements into the first opportunity
self._merge_opportunity_history(cr, uid, highest.id, tail_opportunities, context=context)
@@ -651,7 +656,7 @@ class crm_lead(base_stage, format_address, osv.osv):
section_stages = self.pool.get('crm.case.section').read(cr, uid, merged_data['section_id'], ['stage_ids'], context=context)
if merged_data.get('stage_id') not in section_stages['stage_ids']:
stages_sequences = self.pool.get('crm.case.stage').search(cr, uid, [('id','in',section_stages['stage_ids'])], order='sequence', limit=1, context=context)
- merged_data['stage_id'] = stages_sequences[0]
+ merged_data['stage_id'] = stages_sequences and stages_sequences[0] or False
# Write merged data into first opportunity
self.write(cr, uid, [highest.id], merged_data, context=context)
# Delete tail opportunities
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 3e9249aa6fa..fc43339ba8e 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -327,6 +327,7 @@
+
diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py
index 32396b95f4e..e67b7c0c7be 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity.py
+++ b/addons/crm/wizard/crm_lead_to_opportunity.py
@@ -58,11 +58,11 @@ class crm_lead2opportunity_partner(osv.osv_memory):
if partner_id:
# Search for opportunities that have the same partner and that arent done or cancelled
- ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id)])
+ ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id), ('state', '!=', 'done')])
for id in ids:
tomerge.add(id)
if email:
- ids = lead_obj.search(cr, uid, [('email_from', 'ilike', email[0])])
+ ids = lead_obj.search(cr, uid, [('email_from', 'ilike', email[0]), ('state', '!=', 'done')])
for id in ids:
tomerge.add(id)
diff --git a/addons/crm/wizard/crm_lead_to_opportunity_view.xml b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
index 8bfd60fccec..00686de1c8e 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity_view.xml
+++ b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
@@ -21,7 +21,7 @@
-
+
@@ -67,7 +67,7 @@
-
+
diff --git a/addons/crm/wizard/crm_merge_opportunities_view.xml b/addons/crm/wizard/crm_merge_opportunities_view.xml
index 1dc98b6b68f..f68abeb8a52 100644
--- a/addons/crm/wizard/crm_merge_opportunities_view.xml
+++ b/addons/crm/wizard/crm_merge_opportunities_view.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/addons/crm_partner_assign/crm_lead_view.xml b/addons/crm_partner_assign/crm_lead_view.xml
index 2cffb6fb899..0d2837d6ca5 100644
--- a/addons/crm_partner_assign/crm_lead_view.xml
+++ b/addons/crm_partner_assign/crm_lead_view.xml
@@ -62,5 +62,66 @@
+
+ crm.lead.lead.geo_assign.inherit
+ crm.lead
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ crm.lead.lead.geo_assign.tree.inherit
+ crm.lead
+
+
+
+
+
+
+
+
+
+ crm.lead.partner.filter.assigned
+ crm.lead
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/edi/controllers/main.py b/addons/edi/controllers/main.py
index 14cd97b3e62..7e27428b63b 100644
--- a/addons/edi/controllers/main.py
+++ b/addons/edi/controllers/main.py
@@ -1,4 +1,5 @@
import simplejson
+import urllib
import openerp.addons.web.http as openerpweb
import openerp.addons.web.controllers.main as webmain
@@ -14,11 +15,15 @@ class EDI(openerpweb.Controller):
modules_json = simplejson.dumps(modules)
js = "\n ".join('' % i for i in webmain.manifest_list(req, modules_str, 'js'))
css = "\n ".join('' % i for i in webmain.manifest_list(req, modules_str, 'css'))
+
+ # `url` may contain a full URL with a valid query string, we basically want to watch out for XML brackets and double-quotes
+ safe_url = urllib.quote_plus(url,':/?&;=')
+
return webmain.html_template % {
'js': js,
'css': css,
'modules': modules_json,
- 'init': 's.edi.edi_import("%s");' % url,
+ 'init': 's.edi.edi_import("%s");' % safe_url,
}
@openerpweb.jsonrequest
diff --git a/addons/google_docs/i18n/mn.po b/addons/google_docs/i18n/mn.po
new file mode 100644
index 00000000000..8968332fba0
--- /dev/null
+++ b/addons/google_docs/i18n/mn.po
@@ -0,0 +1,188 @@
+# Mongolian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-02-19 02:49+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Mongolian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-02-19 04:57+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:139
+#, python-format
+msgid "Key Error!"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a presentation (slide show) document with url like "
+"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
+".p`, the ID is `presentation:123456789`"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a text document with url like "
+"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
+"`document:123456789`"
+msgstr ""
+
+#. module: google_docs
+#: field:google.docs.config,gdocs_resource_id:0
+msgid "Google Resource ID to Use as Template"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a drawing document with url like "
+"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
+"`drawings:123456789`"
+msgstr ""
+
+#. module: google_docs
+#. openerp-web
+#: code:addons/google_docs/static/src/xml/gdocs.xml:6
+#, python-format
+msgid "Add Google Doc..."
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"This is the id of the template document, on google side. You can find it "
+"thanks to its URL:"
+msgstr ""
+
+#. module: google_docs
+#: model:ir.model,name:google_docs.model_google_docs_config
+msgid "Google Docs templates config"
+msgstr ""
+
+#. module: google_docs
+#. openerp-web
+#: code:addons/google_docs/static/src/js/gdocs.js:25
+#, python-format
+msgid ""
+"The user google credentials are not set yet. Contact your administrator for "
+"help."
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a spreadsheet document with url like "
+"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
+"the ID is `spreadsheet:123456789`"
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:101
+#, python-format
+msgid ""
+"Your resource id is not correct. You can find the id in the google docs URL."
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:125
+#, python-format
+msgid "Creating google docs may only be done by one at a time."
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:56
+#: code:addons/google_docs/google_docs.py:101
+#: code:addons/google_docs/google_docs.py:125
+#, python-format
+msgid "Google Docs Error!"
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:56
+#, python-format
+msgid "Check your google configuration in Users/Users/Synchronization tab."
+msgstr ""
+
+#. module: google_docs
+#: model:ir.ui.menu,name:google_docs.menu_gdocs_config
+msgid "Google Docs configuration"
+msgstr ""
+
+#. module: google_docs
+#: model:ir.actions.act_window,name:google_docs.action_google_docs_users_config
+#: model:ir.ui.menu,name:google_docs.menu_gdocs_model_config
+msgid "Models configuration"
+msgstr "Моделийн тохиргоо"
+
+#. module: google_docs
+#: field:google.docs.config,model_id:0
+msgid "Model"
+msgstr "Модел"
+
+#. module: google_docs
+#. openerp-web
+#: code:addons/google_docs/static/src/js/gdocs.js:28
+#, python-format
+msgid "User Google credentials are not yet set."
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:139
+#, python-format
+msgid "Your Google Doc Name Pattern's key does not found in object."
+msgstr ""
+
+#. module: google_docs
+#: help:google.docs.config,name_template:0
+msgid ""
+"Choose how the new google docs will be named, on google side. Eg. "
+"gdoc_%(field_name)s"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid "Google Docs Configuration"
+msgstr ""
+
+#. module: google_docs
+#: help:google.docs.config,gdocs_resource_id:0
+msgid ""
+"\n"
+"This is the id of the template document, on google side. You can find it "
+"thanks to its URL: \n"
+"*for a text document with url like "
+"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
+"`document:123456789`\n"
+"*for a spreadsheet document with url like "
+"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
+"the ID is `spreadsheet:123456789`\n"
+"*for a presentation (slide show) document with url like "
+"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
+".p`, the ID is `presentation:123456789`\n"
+"*for a drawing document with url like "
+"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
+"`drawings:123456789`\n"
+"...\n"
+msgstr ""
+
+#. module: google_docs
+#: model:ir.model,name:google_docs.model_ir_attachment
+msgid "ir.attachment"
+msgstr ""
+
+#. module: google_docs
+#: field:google.docs.config,name_template:0
+msgid "Google Doc Name Pattern"
+msgstr ""
diff --git a/addons/google_docs/i18n/sv.po b/addons/google_docs/i18n/sv.po
new file mode 100644
index 00000000000..6228d0b7ad5
--- /dev/null
+++ b/addons/google_docs/i18n/sv.po
@@ -0,0 +1,188 @@
+# Swedish translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-02-15 14:26+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Swedish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:139
+#, python-format
+msgid "Key Error!"
+msgstr "Nyckelfel!"
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a presentation (slide show) document with url like "
+"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
+".p`, the ID is `presentation:123456789`"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a text document with url like "
+"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
+"`document:123456789`"
+msgstr ""
+
+#. module: google_docs
+#: field:google.docs.config,gdocs_resource_id:0
+msgid "Google Resource ID to Use as Template"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a drawing document with url like "
+"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
+"`drawings:123456789`"
+msgstr ""
+
+#. module: google_docs
+#. openerp-web
+#: code:addons/google_docs/static/src/xml/gdocs.xml:6
+#, python-format
+msgid "Add Google Doc..."
+msgstr "Lägg till Google-dokument..."
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"This is the id of the template document, on google side. You can find it "
+"thanks to its URL:"
+msgstr ""
+
+#. module: google_docs
+#: model:ir.model,name:google_docs.model_google_docs_config
+msgid "Google Docs templates config"
+msgstr ""
+
+#. module: google_docs
+#. openerp-web
+#: code:addons/google_docs/static/src/js/gdocs.js:25
+#, python-format
+msgid ""
+"The user google credentials are not set yet. Contact your administrator for "
+"help."
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a spreadsheet document with url like "
+"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
+"the ID is `spreadsheet:123456789`"
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:101
+#, python-format
+msgid ""
+"Your resource id is not correct. You can find the id in the google docs URL."
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:125
+#, python-format
+msgid "Creating google docs may only be done by one at a time."
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:56
+#: code:addons/google_docs/google_docs.py:101
+#: code:addons/google_docs/google_docs.py:125
+#, python-format
+msgid "Google Docs Error!"
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:56
+#, python-format
+msgid "Check your google configuration in Users/Users/Synchronization tab."
+msgstr ""
+
+#. module: google_docs
+#: model:ir.ui.menu,name:google_docs.menu_gdocs_config
+msgid "Google Docs configuration"
+msgstr ""
+
+#. module: google_docs
+#: model:ir.actions.act_window,name:google_docs.action_google_docs_users_config
+#: model:ir.ui.menu,name:google_docs.menu_gdocs_model_config
+msgid "Models configuration"
+msgstr ""
+
+#. module: google_docs
+#: field:google.docs.config,model_id:0
+msgid "Model"
+msgstr ""
+
+#. module: google_docs
+#. openerp-web
+#: code:addons/google_docs/static/src/js/gdocs.js:28
+#, python-format
+msgid "User Google credentials are not yet set."
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:139
+#, python-format
+msgid "Your Google Doc Name Pattern's key does not found in object."
+msgstr ""
+
+#. module: google_docs
+#: help:google.docs.config,name_template:0
+msgid ""
+"Choose how the new google docs will be named, on google side. Eg. "
+"gdoc_%(field_name)s"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid "Google Docs Configuration"
+msgstr ""
+
+#. module: google_docs
+#: help:google.docs.config,gdocs_resource_id:0
+msgid ""
+"\n"
+"This is the id of the template document, on google side. You can find it "
+"thanks to its URL: \n"
+"*for a text document with url like "
+"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
+"`document:123456789`\n"
+"*for a spreadsheet document with url like "
+"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
+"the ID is `spreadsheet:123456789`\n"
+"*for a presentation (slide show) document with url like "
+"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
+".p`, the ID is `presentation:123456789`\n"
+"*for a drawing document with url like "
+"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
+"`drawings:123456789`\n"
+"...\n"
+msgstr ""
+
+#. module: google_docs
+#: model:ir.model,name:google_docs.model_ir_attachment
+msgid "ir.attachment"
+msgstr ""
+
+#. module: google_docs
+#: field:google.docs.config,name_template:0
+msgid "Google Doc Name Pattern"
+msgstr ""
diff --git a/addons/hr/i18n/hu.po b/addons/hr/i18n/hu.po
index 82805ae8b7f..32337b6db0b 100644
--- a/addons/hr/i18n/hu.po
+++ b/addons/hr/i18n/hu.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2012-05-10 18:17+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-02-15 18:13+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-22 05:48+0000\n"
-"X-Generator: Launchpad (build 16378)\n"
+"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -24,7 +24,7 @@ msgstr "OpenERP felhasználó"
#. module: hr
#: field:hr.config.settings,module_hr_timesheet_sheet:0
msgid "Allow timesheets validation by managers"
-msgstr ""
+msgstr "Engedélyezze az időkimutatások vezetőség általi megerősítését"
#. module: hr
#: field:hr.job,requirements:0
@@ -58,11 +58,14 @@ msgid ""
"128x128px image, with aspect ratio preserved. Use this field in form views "
"or some kanban views."
msgstr ""
+"Közepes méretű fotó az alkalmazottakról. Automatikusan átméretezett mint "
+"128x128px kép, az arányok megtartása mellett. Használja ezt a mezőt a forma "
+"nézetben és egyes kanban nézetben."
#. module: hr
#: view:hr.config.settings:0
msgid "Time Tracking"
-msgstr ""
+msgstr "Idő követés"
#. module: hr
#: view:hr.employee:0
@@ -78,12 +81,12 @@ msgstr "Saját osztály létrehozása"
#. module: hr
#: help:hr.job,no_of_employee:0
msgid "Number of employees currently occupying this job position."
-msgstr ""
+msgstr "Alakalmazottak száma akik jelenleg betöltik ezt az állás pozíciót."
#. module: hr
#: field:hr.config.settings,module_hr_evaluation:0
msgid "Organize employees periodic evaluation"
-msgstr ""
+msgstr "Alkalmazottak szervezése időközönkénti értékeléssel"
#. module: hr
#: view:hr.department:0
@@ -98,7 +101,7 @@ msgstr "Osztály, részleg"
#. module: hr
#: field:hr.employee,work_email:0
msgid "Work Email"
-msgstr ""
+msgstr "Munkahelyi e-mail"
#. module: hr
#: help:hr.employee,image:0
@@ -106,11 +109,13 @@ msgid ""
"This field holds the image used as photo for the employee, limited to "
"1024x1024px."
msgstr ""
+"Ez a mező tartalmazza a képet amit az alkalmazottakhoz használ, limitált "
+"méret 1024x1024px."
#. module: hr
#: help:hr.config.settings,module_hr_holidays:0
msgid "This installs the module hr_holidays."
-msgstr ""
+msgstr "Ez a hr_holidays modult telepíti."
#. module: hr
#: view:hr.job:0
@@ -125,7 +130,7 @@ msgstr "Toborzás folyamatban"
#. module: hr
#: field:hr.job,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "Olvasatlan üzenetek"
#. module: hr
#: field:hr.department,company_id:0
@@ -143,33 +148,33 @@ msgstr "Várható felvételek"
#. module: hr
#: field:res.users,employee_ids:0
msgid "Related employees"
-msgstr ""
+msgstr "Ide kapcsolódó alkalmazottak"
#. module: hr
#: constraint:hr.employee.category:0
msgid "Error! You cannot create recursive Categories."
-msgstr ""
+msgstr "Hiba! Nem tud többszörös kategóriát létrehozni."
#. module: hr
#: help:hr.config.settings,module_hr_recruitment:0
msgid "This installs the module hr_recruitment."
-msgstr ""
+msgstr "Ez a hr_recruitment modult telepíti."
#. module: hr
#: view:hr.employee:0
msgid "Birth"
-msgstr ""
+msgstr "Született"
#. module: hr
#: model:ir.actions.act_window,name:hr.open_view_categ_form
#: model:ir.ui.menu,name:hr.menu_view_employee_category_form
msgid "Employee Tags"
-msgstr ""
+msgstr "Alkalmazott címke"
#. module: hr
#: view:hr.job:0
msgid "Launch Recruitement"
-msgstr ""
+msgstr "Ebéd igénylés"
#. module: hr
#: model:process.transition,name:hr.process_transition_employeeuser0
@@ -194,22 +199,22 @@ msgstr "Házas"
#. module: hr
#: field:hr.job,message_ids:0
msgid "Messages"
-msgstr ""
+msgstr "Üzenetek"
#. module: hr
#: view:hr.config.settings:0
msgid "Talent Management"
-msgstr ""
+msgstr "Képesség kezelés"
#. module: hr
#: help:hr.config.settings,module_hr_timesheet_sheet:0
msgid "This installs the module hr_timesheet_sheet."
-msgstr ""
+msgstr "Ez a hr_timesheet_sheet modult telepíti."
#. module: hr
#: view:hr.employee:0
msgid "Mobile:"
-msgstr ""
+msgstr "Mobil:"
#. module: hr
#: view:hr.employee:0
@@ -219,12 +224,12 @@ msgstr "Beosztás"
#. module: hr
#: help:hr.job,message_unread:0
msgid "If checked new messages require your attention."
-msgstr ""
+msgstr "Ha be van jelölve, akkor figyelje az új üzeneteket."
#. module: hr
#: field:hr.employee,color:0
msgid "Color Index"
-msgstr ""
+msgstr "Szín meghatározó"
#. module: hr
#: model:process.transition,note:hr.process_transition_employeeuser0
@@ -232,11 +237,13 @@ msgid ""
"The Related user field on the Employee form allows to link the OpenERP user "
"(and her rights) to the employee."
msgstr ""
+"Az alkalmazott űrlapján ide vonatkozó felhasználó mező lehetővé teszi az "
+"OpenERP felhasználó (és jogosultságai) hozzárendelését az alkalmazottakhoz."
#. module: hr
#: field:hr.employee,image_medium:0
msgid "Medium-sized photo"
-msgstr ""
+msgstr "Közepes méretű fotó"
#. module: hr
#: field:hr.employee,identification_id:0
@@ -277,7 +284,7 @@ msgstr "Iroda címe"
#. module: hr
#: field:hr.job,message_follower_ids:0
msgid "Followers"
-msgstr ""
+msgstr "Követők"
#. module: hr
#: view:hr.employee:0
@@ -298,6 +305,9 @@ msgid ""
"image, with aspect ratio preserved. Use this field anywhere a small image is "
"required."
msgstr ""
+"Kis méretű fotó az alkalmazottról. Automatikusan átméretezve 64x64px képre, "
+"az arányok megtartás mellett. Használja ezt mezőt bárhol ahol kisméretű "
+"képet igényel."
#. module: hr
#: field:hr.employee,birthday:0
@@ -307,12 +317,12 @@ msgstr "Születési idő"
#. module: hr
#: help:hr.job,no_of_recruitment:0
msgid "Number of new employees you expect to recruit."
-msgstr ""
+msgstr "A felvenni kívánt alkalmazottak száma"
#. module: hr
#: model:ir.actions.client,name:hr.action_client_hr_menu
msgid "Open HR Menu"
-msgstr ""
+msgstr "Munkaügy HR menü megnyitása"
#. module: hr
#: help:hr.job,message_summary:0
@@ -320,6 +330,8 @@ msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
+"A chettelés összegzést megállítja (üzenetek száma,...). Ez az összegzés "
+"direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe."
#. module: hr
#: help:hr.config.settings,module_account_analytic_analysis:0
@@ -327,6 +339,8 @@ msgid ""
"This installs the module account_analytic_analysis, which will install sales "
"management too."
msgstr ""
+"Ez az account_analytic_analysis modult telepíti, amely az értékesítés "
+"kezelést is magában foglalja."
#. module: hr
#: view:board.board:0
@@ -343,7 +357,7 @@ msgstr "Munka"
#. module: hr
#: field:hr.job,no_of_employee:0
msgid "Current Number of Employees"
-msgstr ""
+msgstr "Jelenlegi alkalmazottak száma"
#. module: hr
#: field:hr.department,member_ids:0
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index f32479c2ae2..0b6ec48974b 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -21,7 +21,6 @@
import time
-from openerp import netsvc
from openerp.osv import fields, osv
from openerp.tools.translate import _
@@ -152,7 +151,6 @@ class hr_expense_expense(osv.osv):
account_journal = self.pool.get('account.journal')
voucher_obj = self.pool.get('account.voucher')
currency_obj = self.pool.get('res.currency')
- wkf_service = netsvc.LocalService("workflow")
if context is None:
context = {}
for exp in self.browse(cr, uid, ids, context=context):
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index c7d7867911d..c81c4062a73 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -24,10 +24,9 @@
import datetime
import time
from itertools import groupby
-from operator import itemgetter
+from operator import attrgetter, itemgetter
import math
-from openerp import netsvc
from openerp import tools
from openerp.osv import fields, osv
from openerp.tools.translate import _
@@ -304,10 +303,8 @@ class hr_holidays(osv.osv):
'manager_id': False,
'manager_id2': False,
})
- wf_service = netsvc.LocalService("workflow")
- for id in ids:
- wf_service.trg_delete(uid, 'hr.holidays', id, cr)
- wf_service.trg_create(uid, 'hr.holidays', id, cr)
+ self.delete_workflow(cr, uid, ids)
+ self.create_workflow(cr, uid, ids)
to_unlink = []
for record in self.browse(cr, uid, ids, context=context):
for record2 in record.linked_request_ids:
@@ -370,11 +367,11 @@ class hr_holidays(osv.osv):
'employee_id': emp.id
}
leave_ids.append(self.create(cr, uid, vals, context=None))
- wf_service = netsvc.LocalService("workflow")
for leave_id in leave_ids:
- wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'confirm', cr)
- wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'validate', cr)
- wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'second_validate', cr)
+ # TODO is it necessary to interleave the calls?
+ self.signal_confirm(cr, uid, [leave_id])
+ self.signal_validate(cr, uid, [leave_id])
+ self.signal_second_validate(cr, uid, [leave_id])
return True
def holidays_confirm(self, cr, uid, ids, context=None):
@@ -404,9 +401,7 @@ class hr_holidays(osv.osv):
meeting_obj.unlink(cr, uid, [record.meeting_id.id])
# If a category that created several holidays, cancel all related
- wf_service = netsvc.LocalService("workflow")
- for request in record.linked_request_ids or []:
- wf_service.trg_validate(uid, 'hr.holidays', request.id, 'refuse', cr)
+ self.signal_refuse(cr, uid, map(attrgetter('id'), record.linked_request_ids or []))
self._remove_resource_leave(cr, uid, ids, context=context)
return True
@@ -478,10 +473,9 @@ class hr_employee(osv.osv):
leave_id = holiday_obj.create(cr, uid, {'name': _('Leave Request for %s') % employee.name, 'employee_id': employee.id, 'holiday_status_id': status_id, 'type': 'remove', 'holiday_type': 'employee', 'number_of_days_temp': abs(diff)}, context=context)
else:
return False
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'confirm', cr)
- wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'validate', cr)
- wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'second_validate', cr)
+ holidays_obj.signal_confirm(cr, uid, [leave_id])
+ holidays_obj.signal_validate(cr, uid, [leave_id])
+ holidays_obj.signal_second_validate(cr, uid, [leave_id])
return True
def _get_remaining_days(self, cr, uid, ids, name, args, context=None):
diff --git a/addons/hr_holidays/test/test_hr_holiday.yml b/addons/hr_holidays/test/test_hr_holiday.yml
index cb62cffa263..2bb60300cff 100644
--- a/addons/hr_holidays/test/test_hr_holiday.yml
+++ b/addons/hr_holidays/test/test_hr_holiday.yml
@@ -18,10 +18,8 @@
I again set to draft and then confirm.
-
!python {model: hr.holidays}: |
- from openerp import netsvc
- wf_service = netsvc.LocalService("workflow")
- self.set_to_draft(cr, uid, [ref('hr_holidays_employee1_cl')])
- wf_service.trg_validate(uid, 'hr.holidays', ref('hr_holidays_employee1_cl'), 'confirm', cr)
+ self.set_to_draft(cr, uid, [ref('hr_holidays_employee1_cl')])
+ self.signal_confirm(cr, uid, [ref('hr_holidays_employee1_cl')])
-
I validate the holiday request by clicking on "To Approve" button.
-
diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py
index b711ed1a9c4..06af3054b68 100644
--- a/addons/hr_payroll/hr_payroll.py
+++ b/addons/hr_payroll/hr_payroll.py
@@ -26,7 +26,6 @@ from datetime import datetime
from datetime import timedelta
from dateutil import relativedelta
-from openerp import netsvc
from openerp.osv import fields, osv
from openerp import tools
from openerp.tools.translate import _
@@ -331,13 +330,12 @@ class hr_payslip(osv.osv):
def refund_sheet(self, cr, uid, ids, context=None):
mod_obj = self.pool.get('ir.model.data')
- wf_service = netsvc.LocalService("workflow")
for payslip in self.browse(cr, uid, ids, context=context):
id_copy = self.copy(cr, uid, payslip.id, {'credit_note': True, 'name': _('Refund: ')+payslip.name}, context=context)
self.compute_sheet(cr, uid, [id_copy], context=context)
- wf_service.trg_validate(uid, 'hr.payslip', id_copy, 'hr_verify_sheet', cr)
- wf_service.trg_validate(uid, 'hr.payslip', id_copy, 'process_sheet', cr)
-
+ self.signal_hr_verify_sheet(cr, uid, [id_copy])
+ self.signal_process_sheet(cr, uid, [id_copy])
+
form_id = mod_obj.get_object_reference(cr, uid, 'hr_payroll', 'view_hr_payslip_form')
form_res = form_id and form_id[1] or False
tree_id = mod_obj.get_object_reference(cr, uid, 'hr_payroll', 'view_hr_payslip_tree')
diff --git a/addons/hr_payroll_account/test/hr_payroll_account.yml b/addons/hr_payroll_account/test/hr_payroll_account.yml
index 5b20bf03a91..c8b6bf42fdd 100644
--- a/addons/hr_payroll_account/test/hr_payroll_account.yml
+++ b/addons/hr_payroll_account/test/hr_payroll_account.yml
@@ -104,10 +104,8 @@
I want to check cancel button. So I first cancel the sheet then make it set to draft.
-
!python {model: hr.payslip}: |
- from openerp import netsvc
- wf_service = netsvc.LocalService("workflow")
self.cancel_sheet(cr, uid, [ref("hr_payslip_0")], None)
- wf_service.trg_validate(uid, 'hr.payslip', ref("hr_payslip_0"), 'draft', cr)
+ self.signal_draft(cr, uid, [ref("hr_payslip_0")])
-
Then I click on the "Confirm" button.
-
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 89390a73411..d50ca767ff9 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -373,7 +373,6 @@ class hr_applicant(base_stage, osv.Model):
update_vals = {}
update_vals.update({
- 'description': msg.get('body'),
'email_from': msg.get('from'),
'email_cc': msg.get('cc'),
})
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index de1fef260ce..35a5c91b5d9 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -187,6 +187,8 @@
domain="[('date_action','<>',False)]" help="Filter and view on next actions and date"/>
+
+
diff --git a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml
index 0991b64cbd1..0896cf7d517 100644
--- a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml
+++ b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml
@@ -115,6 +115,4 @@
I click on "Create Invoice" button to create Invoice and validate the invoice.
-
!python {model: hr.timesheet.invoice.create.final}: |
- from openerp import netsvc
- wkf_service = netsvc.LocalService("workflow")
res = self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_final_0")], {"active_ids": [ref("account.analytic_agrolait")]})
diff --git a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml
index 53f6808c8b5..d00963073f0 100644
--- a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml
+++ b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml
@@ -114,6 +114,4 @@
I click on "Create Invoice" button to create Invoice and validate the invoice.
-
!python {model: hr.timesheet.invoice.create.final}: |
- from openerp import netsvc
- wkf_service = netsvc.LocalService("workflow")
res = self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_final_0")], {"active_ids": [ref("account.analytic_agrolait")]})
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
index c473670b014..d4e71cedbf5 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
@@ -25,7 +25,6 @@ from dateutil.relativedelta import relativedelta
from openerp.osv import fields, osv
from openerp.tools.translate import _
-from openerp import netsvc
class hr_timesheet_sheet(osv.osv):
_name = "hr_timesheet_sheet.sheet"
@@ -93,8 +92,7 @@ class hr_timesheet_sheet(osv.osv):
self.check_employee_attendance_state(cr, uid, sheet.id, context=context)
di = sheet.user_id.company_id.timesheet_max_difference
if (abs(sheet.total_difference) < di) or not di:
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'hr_timesheet_sheet.sheet', sheet.id, 'confirm', cr)
+ self.signal_confirm(cr, uid, [sheet.id])
else:
raise osv.except_osv(_('Warning!'), _('Please verify that the total difference of the sheet is lower than %.2f.') %(di,))
return True
@@ -192,9 +190,7 @@ class hr_timesheet_sheet(osv.osv):
def action_set_to_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'draft'})
- wf_service = netsvc.LocalService('workflow')
- for id in ids:
- wf_service.trg_create(uid, self._name, id, cr)
+ self.create_workflow(cr, uid, ids)
return True
def name_get(self, cr, uid, ids, context=None):
diff --git a/addons/knowledge/i18n/hu.po b/addons/knowledge/i18n/hu.po
index d34305492f8..d6ff50f6700 100644
--- a/addons/knowledge/i18n/hu.po
+++ b/addons/knowledge/i18n/hu.po
@@ -7,24 +7,24 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-02-01 10:13+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-02-14 15:58+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-22 05:59+0000\n"
-"X-Generator: Launchpad (build 16378)\n"
+"X-Launchpad-Export-Date: 2013-02-15 04:38+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Documents"
-msgstr ""
+msgstr "Dokumentumok"
#. module: knowledge
#: model:ir.model,name:knowledge.model_knowledge_config_settings
msgid "knowledge.config.settings"
-msgstr ""
+msgstr "knowledge.config.settings"
#. module: knowledge
#: help:knowledge.config.settings,module_document_webdav:0
@@ -32,11 +32,13 @@ msgid ""
"Access your documents in OpenERP through WebDAV.\n"
" This installs the module document_webdav."
msgstr ""
+"Az OpenERP dokumentumok WebDAV-on keresztüli elérése.\n"
+" Ez a document_webdav modult telepíti."
#. module: knowledge
#: help:knowledge.config.settings,module_document_page:0
msgid "This installs the module document_page."
-msgstr ""
+msgstr "Ez a document_page modult telepíti."
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document2
@@ -47,12 +49,12 @@ msgstr "Csoportmunában készült tartalom"
#: model:ir.actions.act_window,name:knowledge.action_knowledge_configuration
#: view:knowledge.config.settings:0
msgid "Configure Knowledge"
-msgstr ""
+msgstr "Tudástár beállítása"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Knowledge and Documents Management"
-msgstr ""
+msgstr "Tudástár és dokumentum kezelés"
#. module: knowledge
#: help:knowledge.config.settings,module_document:0
@@ -62,31 +64,36 @@ msgid ""
"and a document dashboard.\n"
" This installs the module document."
msgstr ""
+"Ez egy komplett dokumentum kezelő rendszer, beleértve: felhasználó "
+"hitelesítást,\n"
+" teljes dokumentum keresőt (de a pptx és docx nem "
+"támogatott), és egy dokumentum vezérlőpultot.\n"
+" Ez a document modult telepíti."
#. module: knowledge
#: field:knowledge.config.settings,module_document_page:0
msgid "Create static web pages"
-msgstr ""
+msgstr "Statikus weboldalak készítése"
#. module: knowledge
#: field:knowledge.config.settings,module_document_ftp:0
msgid "Share repositories (FTP)"
-msgstr ""
+msgstr "Elérési út (FTP) megosztás"
#. module: knowledge
#: field:knowledge.config.settings,module_document:0
msgid "Manage documents"
-msgstr ""
+msgstr "Dokumentum kezelés"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Cancel"
-msgstr ""
+msgstr "Mégsem"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Apply"
-msgstr ""
+msgstr "Alkalmaz"
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document_configuration
@@ -99,16 +106,18 @@ msgid ""
"Access your documents in OpenERP through an FTP interface.\n"
" This installs the module document_ftp."
msgstr ""
+"Az OpenERP dokumentumok elérése egy FTP csatolón keresztül.\n"
+" Ez a document_ftp modult telepíti."
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "or"
-msgstr ""
+msgstr "vagy"
#. module: knowledge
#: field:knowledge.config.settings,module_document_webdav:0
msgid "Share repositories (WebDAV)"
-msgstr ""
+msgstr "Elérési útvonal (webDAV) megosztás"
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document
diff --git a/addons/knowledge/i18n/mn.po b/addons/knowledge/i18n/mn.po
index 8f06a0378d0..223fbbd71cc 100644
--- a/addons/knowledge/i18n/mn.po
+++ b/addons/knowledge/i18n/mn.po
@@ -8,24 +8,24 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-12-19 23:48+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2013-02-15 10:59+0000\n"
+"Last-Translator: erdenebold \n"
"Language-Team: Mongolian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-22 05:59+0000\n"
-"X-Generator: Launchpad (build 16378)\n"
+"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Documents"
-msgstr ""
+msgstr "Баримтууд"
#. module: knowledge
#: model:ir.model,name:knowledge.model_knowledge_config_settings
msgid "knowledge.config.settings"
-msgstr ""
+msgstr "knowledge.config.settings"
#. module: knowledge
#: help:knowledge.config.settings,module_document_webdav:0
@@ -33,11 +33,13 @@ msgid ""
"Access your documents in OpenERP through WebDAV.\n"
" This installs the module document_webdav."
msgstr ""
+"OpenERP бичиг баримтууд руу WebDAV-р хандана.\n"
+" Энэ нь document_webdav модулийг суулгана."
#. module: knowledge
#: help:knowledge.config.settings,module_document_page:0
msgid "This installs the module document_page."
-msgstr ""
+msgstr "Энэ нь мdocument_page модулийг суулгана."
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document2
@@ -48,12 +50,12 @@ msgstr "Хамтарсан агуулга"
#: model:ir.actions.act_window,name:knowledge.action_knowledge_configuration
#: view:knowledge.config.settings:0
msgid "Configure Knowledge"
-msgstr ""
+msgstr "Баримтын Тохиргоо"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Knowledge and Documents Management"
-msgstr ""
+msgstr "Бичиг Баримт, Мэдлэгийн менежмент"
#. module: knowledge
#: help:knowledge.config.settings,module_document:0
@@ -67,7 +69,7 @@ msgstr ""
#. module: knowledge
#: field:knowledge.config.settings,module_document_page:0
msgid "Create static web pages"
-msgstr ""
+msgstr "Статик веб хуудас үүсгэх."
#. module: knowledge
#: field:knowledge.config.settings,module_document_ftp:0
@@ -77,17 +79,17 @@ msgstr ""
#. module: knowledge
#: field:knowledge.config.settings,module_document:0
msgid "Manage documents"
-msgstr ""
+msgstr "Бичиг баримтуудыг менежмент хийх"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Cancel"
-msgstr ""
+msgstr "Цуцлах"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Apply"
-msgstr ""
+msgstr "Ашиглах"
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document_configuration
@@ -100,11 +102,13 @@ msgid ""
"Access your documents in OpenERP through an FTP interface.\n"
" This installs the module document_ftp."
msgstr ""
+"OpenERP бичиг баримтууд руу FTP интерфейсээр хандана.\n"
+"Энэ нь document_ftp модулийг суулгана."
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "or"
-msgstr ""
+msgstr "эсвэл"
#. module: knowledge
#: field:knowledge.config.settings,module_document_webdav:0
diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
index 76fc1247de6..6a7638d919a 100644
--- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
+++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
@@ -26,7 +26,6 @@ from calendar import isleap
from openerp.tools.translate import _
from openerp.osv import fields, osv
-from openerp import netsvc
import openerp.addons.decimal_precision as dp
DATETIME_FORMAT = "%Y-%m-%d"
@@ -179,7 +178,6 @@ class hr_payslip_run(osv.osv):
return res
def create_advice(self, cr, uid, ids, context=None):
- wf_service = netsvc.LocalService("workflow")
payslip_pool = self.pool.get('hr.payslip')
payslip_line_pool = self.pool.get('hr.payslip.line')
advice_pool = self.pool.get('hr.payroll.advice')
@@ -198,8 +196,9 @@ class hr_payslip_run(osv.osv):
advice_id = advice_pool.create(cr, uid, advice_data, context=context)
slip_ids = []
for slip_id in run.slip_ids:
- wf_service.trg_validate(uid, 'hr.payslip', slip_id.id, 'hr_verify_sheet', cr)
- wf_service.trg_validate(uid, 'hr.payslip', slip_id.id, 'process_sheet', cr)
+ # TODO is it necessary to interleave the calls ?
+ payslip_pool.signal_hr_verify_sheet(cr, uid, [slip_id.id])
+ payslip_pool.signal_process_sheet(cr, uid, [slip_id.id])
slip_ids.append(slip_id.id)
for slip in payslip_pool.browse(cr, uid, slip_ids, context=context):
diff --git a/addons/l10n_multilang/i18n/hu.po b/addons/l10n_multilang/i18n/hu.po
new file mode 100644
index 00000000000..b56463cc70e
--- /dev/null
+++ b/addons/l10n_multilang/i18n/hu.po
@@ -0,0 +1,174 @@
+# Hungarian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-02-08 01:06+0000\n"
+"PO-Revision-Date: 2013-02-14 16:15+0000\n"
+"Last-Translator: krnkris \n"
+"Language-Team: Hungarian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-02-15 04:38+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_fiscal_position_template
+msgid "Template for Fiscal Position"
+msgstr "ÁFA pozíció sablon"
+
+#. module: l10n_multilang
+#: sql_constraint:account.account:0
+msgid "The code of the account must be unique per company !"
+msgstr "A főkönyvi számla számának egyedinek kell lennie!"
+
+#. module: l10n_multilang
+#: constraint:account.account.template:0
+msgid ""
+"Configuration Error!\n"
+"You can not define children to an account with internal type different of "
+"\"View\"! "
+msgstr ""
+"Beállítási hiba!\n"
+"Nem tud al-számlát létrehozni egy számlához, melynek a belső \"Nézet\" "
+"típusa különböző! "
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_analytic_journal
+msgid "Analytic Journal"
+msgstr "Analitikus/Gyüjtő napló"
+
+#. module: l10n_multilang
+#: constraint:account.account.template:0
+msgid "Error ! You can not create recursive account templates."
+msgstr "Hiba! Nem hozhat létre rekurzív főkönyvi számla sablonokat."
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_journal
+msgid "Journal"
+msgstr "Napló"
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_chart_template
+msgid "Templates for Account Chart"
+msgstr "Számlatükör sablonok"
+
+#. module: l10n_multilang
+#: sql_constraint:account.tax:0
+msgid "The description must be unique per company!"
+msgstr "A leírás egyedi kell legyen minden vállalathoz!"
+
+#. module: l10n_multilang
+#: constraint:account.tax.code.template:0
+msgid "Error ! You can not create recursive Tax Codes."
+msgstr "Hiba! Nem hozhat létre rekurzív adógyűjtőket."
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_tax_template
+msgid "account.tax.template"
+msgstr "account.tax.template"
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_tax
+msgid "account.tax"
+msgstr "account.tax"
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_account
+msgid "Account"
+msgstr "Főkönyvi számla"
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_wizard_multi_charts_accounts
+msgid "wizard.multi.charts.accounts"
+msgstr "wizard.multi.charts.accounts"
+
+#. module: l10n_multilang
+#: constraint:account.journal:0
+msgid ""
+"Configuration error! The currency chosen should be shared by the default "
+"accounts too."
+msgstr ""
+"Beállítási hiba! A választott pénznemet meg kell osztani az alapértelmezett "
+"főkönyvi számlával is."
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_account_template
+msgid "Templates for Accounts"
+msgstr "Főkönyvi számla sablonok"
+
+#. module: l10n_multilang
+#: help:account.chart.template,spoken_languages:0
+msgid ""
+"State here the languages for which the translations of templates could be "
+"loaded at the time of installation of this localization module and copied in "
+"the final object when generating them from templates. You must provide the "
+"language codes separated by ';'"
+msgstr ""
+"Adja meg itt a nyelvet amelyen a sablon be fog töltődni a lokalizációs modul "
+"telepítése után és az át lesz másolva a végső objektumba a sablonokból való "
+"létrehozás után. A nyelvi kódot ';' kell elválasztani."
+
+#. module: l10n_multilang
+#: constraint:account.account:0
+msgid "Error ! You can not create recursive accounts."
+msgstr "Hiba! Nem hozhat létre rekurzív számlákat."
+
+#. module: l10n_multilang
+#: constraint:account.account:0
+msgid ""
+"Configuration Error! \n"
+"You can not select an account type with a deferral method different of "
+"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! "
+msgstr ""
+
+#. module: l10n_multilang
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr "A napló nevének egyedinek kell lennie mindegyik vállalatra!"
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_analytic_account
+msgid "Analytic Account"
+msgstr "Analitikus/elemző könyvelés"
+
+#. module: l10n_multilang
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr "A napló kódjának egyedinek kell lennie mindegyik vállalathoz!"
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_fiscal_position
+msgid "Fiscal Position"
+msgstr "Költségvetési pozíció"
+
+#. module: l10n_multilang
+#: constraint:account.account:0
+msgid ""
+"Configuration Error! \n"
+"You can not define children to an account with internal type different of "
+"\"View\"! "
+msgstr ""
+"Beállítási hiba! \n"
+"Nem tud al-számlát létrehozni egy számlához, melynek a belső \"Nézet\" "
+"típusa különböző! "
+
+#. module: l10n_multilang
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr "Hiba! Nem hozhat létre rekurzív gyűjtőkódokat."
+
+#. module: l10n_multilang
+#: model:ir.model,name:l10n_multilang.model_account_tax_code_template
+msgid "Tax Code Template"
+msgstr ""
+
+#. module: l10n_multilang
+#: field:account.chart.template,spoken_languages:0
+msgid "Spoken Languages"
+msgstr "Beszélt nyelvek"
diff --git a/addons/lunch/lunch.py b/addons/lunch/lunch.py
index 0f9033fce38..022eb5208eb 100644
--- a/addons/lunch/lunch.py
+++ b/addons/lunch/lunch.py
@@ -159,7 +159,7 @@ class lunch_order(osv.Model):
def specific_function(cr, uid, ids, context=None):
return self.add_preference(cr, uid, ids, pref_id, context=context)
return specific_function
- return super(lunch_order,self).__getattr__(self,attr)
+ return super(lunch_order, self).__getattr__(attr)
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
"""
diff --git a/addons/mail/i18n/hu.po b/addons/mail/i18n/hu.po
index 3d3117c1b51..817c0a71fa4 100644
--- a/addons/mail/i18n/hu.po
+++ b/addons/mail/i18n/hu.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-02-12 17:52+0000\n"
+"PO-Revision-Date: 2013-02-14 16:43+0000\n"
"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-02-13 04:36+0000\n"
+"X-Launchpad-Export-Date: 2013-02-15 04:38+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: mail
@@ -906,12 +906,12 @@ msgstr "Alcsoportba rakott üzenetek"
#. module: mail
#: field:mail.alias,alias_user_id:0
msgid "Owner"
-msgstr ""
+msgstr "Tulajdonos"
#. module: mail
#: model:ir.model,name:mail.model_res_users
msgid "Users"
-msgstr ""
+msgstr "Felhasználók"
#. module: mail
#: model:ir.model,name:mail.model_mail_message
@@ -920,25 +920,25 @@ msgstr ""
#: field:mail.notification,message_id:0
#: field:mail.wizard.invite,message:0
msgid "Message"
-msgstr ""
+msgstr "Üzenet"
#. module: mail
#: help:mail.followers,res_id:0
#: help:mail.wizard.invite,res_id:0
msgid "Id of the followed resource"
-msgstr ""
+msgstr "A követett forrás ID azonosítója"
#. module: mail
#: field:mail.compose.message,body:0
#: field:mail.message,body:0
msgid "Contents"
-msgstr ""
+msgstr "Tartalmak"
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_mail_alias
#: model:ir.ui.menu,name:mail.mail_alias_menu
msgid "Aliases"
-msgstr ""
+msgstr "Álnevek"
#. module: mail
#: help:mail.message.subtype,description:0
@@ -946,40 +946,44 @@ msgid ""
"Description that will be added in the message posted for this subtype. If "
"void, the name will be added instead."
msgstr ""
+"Leírás ami hozzá lesz adva az altípusnak elküldendő üzenethez. Ha üres, a "
+"név lesz hozzáadva helyette."
#. module: mail
#: field:mail.compose.message,vote_user_ids:0
#: field:mail.message,vote_user_ids:0
msgid "Votes"
-msgstr ""
+msgstr "Szavazatok"
#. module: mail
#: view:mail.group:0
msgid "Group"
-msgstr ""
+msgstr "Csoport"
#. module: mail
#: help:mail.compose.message,starred:0
#: help:mail.message,starred:0
msgid "Current user has a starred notification linked to this message"
msgstr ""
+"A jelenlegi felhasználónak van egy kicsillagozott értesítése mely hozzá van "
+"rendelve az üzenethez."
#. module: mail
#: field:mail.group,public:0
msgid "Privacy"
-msgstr ""
+msgstr "Adatvédelem"
#. module: mail
#: view:mail.mail:0
msgid "Notification"
-msgstr ""
+msgstr "Értesítés"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/js/mail.js:585
#, python-format
msgid "Please complete partner's informations"
-msgstr ""
+msgstr "Kérem egészítse ki a partner információkat"
#. module: mail
#: view:mail.wizard.invite:0
@@ -994,7 +998,7 @@ msgstr "A kijelölt elemek követői és"
#. module: mail
#: field:mail.alias,alias_force_thread_id:0
msgid "Record Thread ID"
-msgstr ""
+msgstr "Összefűzési azonosító ID elmentése"
#. module: mail
#: model:ir.ui.menu,name:mail.mail_group_root
@@ -1013,12 +1017,21 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Nem található üzenet és nem lett még elküldve üzenet.\n"
+"
\n"
+" Kattintson felül jobbra az ikonra egy üzenet "
+"összeállításához. Ez az\n"
+" üzenet lesz elküldve e-mailként, ha ez egy belső "
+"kapcsolat.\n"
+"
\n"
+" "
#. module: mail
#: view:mail.mail:0
#: field:mail.mail,state:0
msgid "Status"
-msgstr ""
+msgstr "Állapot"
#. module: mail
#: view:mail.mail:0
@@ -1029,13 +1042,13 @@ msgstr "Kimenő"
#. module: mail
#: selection:res.partner,notification_email_send:0
msgid "All feeds"
-msgstr ""
+msgstr "Összes betáplálás"
#. module: mail
#: help:mail.compose.message,record_name:0
#: help:mail.message,record_name:0
msgid "Name get of the related document."
-msgstr ""
+msgstr "A név az ide vonatkozó dokumentumról levéve."
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_notifications
@@ -1046,12 +1059,12 @@ msgstr ""
#: field:mail.message,notification_ids:0
#: view:mail.notification:0
msgid "Notifications"
-msgstr ""
+msgstr "Értesítések"
#. module: mail
#: view:mail.alias:0
msgid "Search Alias"
-msgstr ""
+msgstr "Álnév keresés"
#. module: mail
#: help:mail.alias,alias_force_thread_id:0
@@ -1060,6 +1073,9 @@ msgid ""
"attached, even if they did not reply to it. If set, this will disable the "
"creation of new records completely."
msgstr ""
+"Az összefűzés (rekord) választható ID azonosítója, amely minden beérkezett "
+"üzenethez hozzá lesz mellékleve, még akkor is ha nem válaszoltak rá. Ha "
+"beállított, akkor teljesen ki lesz kapcsolva az új rekord létrehozása."
#. module: mail
#: help:mail.message.subtype,name:0
@@ -1070,28 +1086,33 @@ msgid ""
"subtypes allow to precisely tune the notifications the user want to receive "
"on its wall."
msgstr ""
+"Üzenet altípus sokkal pontosabb típust ad az üzenetekhez, főként a rendszer "
+"értesítésekhez. Például, az értesítés kapcsolódhat új rekordhoz (Új), vagy "
+"egy szakasz változás a műveletben (Szakasz változás). Üzenet altípusok "
+"lehetővé teszik az értesítések pontos behangolását, melyeket a felhasználó "
+"az üzenet falán látni szeretne."
#. module: mail
#: view:mail.mail:0
msgid "by"
-msgstr ""
+msgstr "által"
#. module: mail
#: model:mail.group,name:mail.group_best_sales_practices
msgid "Best Sales Practices"
-msgstr ""
+msgstr "Legjobb Értékesítési Praktikák"
#. module: mail
#: selection:mail.group,public:0
msgid "Selected Group Only"
-msgstr ""
+msgstr "Csak a kiválasztott csoport"
#. module: mail
#: field:mail.group,message_is_follower:0
#: field:mail.thread,message_is_follower:0
#: field:res.partner,message_is_follower:0
msgid "Is a Follower"
-msgstr ""
+msgstr "Ez egy követő"
#. module: mail
#: view:mail.alias:0
@@ -1102,12 +1123,12 @@ msgstr "Felhasználó"
#. module: mail
#: view:mail.group:0
msgid "Groups"
-msgstr ""
+msgstr "Csoportok"
#. module: mail
#: view:mail.message:0
msgid "Messages Search"
-msgstr ""
+msgstr "Üzenetek keresése"
#. module: mail
#: field:mail.compose.message,date:0
@@ -1144,19 +1165,19 @@ msgstr "Bejegyzés írás a követőimnek"
#. module: mail
#: model:ir.model,name:mail.model_res_groups
msgid "Access Groups"
-msgstr ""
+msgstr "Csoportok hozzáférése"
#. module: mail
#: field:mail.message.subtype,default:0
msgid "Default"
-msgstr ""
+msgstr "Alapértelmezett"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:260
#, python-format
msgid "show more message"
-msgstr ""
+msgstr "mutassa a többi üzenetet"
#. module: mail
#. openerp-web
@@ -1168,25 +1189,27 @@ msgstr "Megjelölés feladatkét"
#. module: mail
#: help:mail.message.subtype,parent_id:0
msgid "Parent subtype, used for automatic subscription."
-msgstr ""
+msgstr "Szülő altípus, ami automatikus feliratkozáshoz használt."
#. module: mail
#: model:ir.model,name:mail.model_mail_wizard_invite
msgid "Invite wizard"
-msgstr ""
+msgstr "Meghívó varázsló"
#. module: mail
#: field:mail.group,message_summary:0
#: field:mail.thread,message_summary:0
#: field:res.partner,message_summary:0
msgid "Summary"
-msgstr ""
+msgstr "Összegzés"
#. module: mail
#: help:mail.message.subtype,res_model:0
msgid ""
"Model the subtype applies to. If False, this subtype applies to all models."
msgstr ""
+"Az altípushoz alkalmazott minta. Ha téves, akkor ez az altípus lesz "
+"használva az összes mintához."
#. module: mail
#: field:mail.compose.message,subtype_id:0
@@ -1194,32 +1217,32 @@ msgstr ""
#: field:mail.message,subtype_id:0
#: view:mail.message.subtype:0
msgid "Subtype"
-msgstr ""
+msgstr "Altípus"
#. module: mail
#: view:mail.group:0
msgid "Group Form"
-msgstr ""
+msgstr "Csoport űrlap"
#. module: mail
#: field:mail.compose.message,starred:0
#: field:mail.message,starred:0
#: field:mail.notification,starred:0
msgid "Starred"
-msgstr ""
+msgstr "Csillagozott"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:262
#, python-format
msgid "more messages"
-msgstr ""
+msgstr "több üzenet"
#. module: mail
#: code:addons/mail/update.py:93
#, python-format
msgid "Error"
-msgstr ""
+msgstr "Hiba"
#. module: mail
#. openerp-web
@@ -1233,6 +1256,7 @@ msgstr "Követés"
msgid ""
"Unfortunately this email alias is already used, please choose a unique one"
msgstr ""
+"Sajnos ez az email álnév már használva van, kérem válasszon egy egyedit."
#. module: mail
#: help:mail.alias,alias_user_id:0
@@ -1242,19 +1266,24 @@ msgid ""
"the sender (From) address, or will use the Administrator account if no "
"system user is found for that address."
msgstr ""
+"A rekord tulajdonosa létrehozva amikor erre az álnévre e-mailek érkeznek. "
+"Ha ez a mező nincs kialakítva akkor a rendszer megpróbálja megkeresni a "
+"jogos tulajdonost a elküldési (űrlap) címről, vagy az adminisztrátor "
+"felhasználót fogja használni ha nem talált rendszer felhasználót azzal a "
+"címmel."
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail_followers.xml:52
#, python-format
msgid "And"
-msgstr ""
+msgstr "És"
#. module: mail
#: field:mail.compose.message,message_id:0
#: field:mail.message,message_id:0
msgid "Message-Id"
-msgstr ""
+msgstr "Üzenet-ID azonosító"
#. module: mail
#: help:mail.group,image:0
@@ -1262,6 +1291,7 @@ msgid ""
"This field holds the image used as photo for the group, limited to "
"1024x1024px."
msgstr ""
+"Ez a mező a képet tárolja amit a csoporthoz használ, limitálva 1024x1024px."
#. module: mail
#: field:mail.compose.message,attachment_ids:0
@@ -1274,7 +1304,7 @@ msgstr "Mellékletek"
#: field:mail.compose.message,record_name:0
#: field:mail.message,record_name:0
msgid "Message Record Name"
-msgstr ""
+msgstr "Üzenet rekord név"
#. module: mail
#: field:mail.mail,email_cc:0
@@ -1284,7 +1314,7 @@ msgstr "Másolat"
#. module: mail
#: help:mail.notification,starred:0
msgid "Starred message that goes into the todo mailbox"
-msgstr ""
+msgstr "Csillagos üzenet amely a teendők levélládába megy"
#. module: mail
#. openerp-web
@@ -1292,24 +1322,25 @@ msgstr ""
#: view:mail.compose.message:0
#, python-format
msgid "Followers of"
-msgstr ""
+msgstr "Követők ehhez"
#. module: mail
#: help:mail.mail,auto_delete:0
msgid "Permanently delete this email after sending it, to save space"
msgstr ""
+"Tartósan törli ezt az üzenetet az elküldés után, hely felszabadítása miatt"
#. module: mail
#: model:ir.actions.client,name:mail.action_mail_group_feeds
msgid "Discussion Group"
-msgstr ""
+msgstr "Megbeszélés csoport"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:224
#, python-format
msgid "Done"
-msgstr ""
+msgstr "Kész"
#. module: mail
#: model:mail.message.subtype,name:mail.mt_comment
@@ -1326,7 +1357,7 @@ msgstr "Követ"
#. module: mail
#: field:mail.group,name:0
msgid "Name"
-msgstr ""
+msgstr "Név"
#. module: mail
#: model:mail.group,name:mail.group_all_employees
@@ -1339,45 +1370,45 @@ msgstr "Teljes vállalat"
#: view:mail.compose.message:0
#, python-format
msgid "and"
-msgstr ""
+msgstr "és"
#. module: mail
#: help:mail.mail,body_html:0
msgid "Rich-text/HTML message"
-msgstr ""
+msgstr "Rich-text/HTML üzenet"
#. module: mail
#: view:mail.mail:0
msgid "Creation Month"
-msgstr ""
+msgstr "Létrehozás hónapja"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:272
#, python-format
msgid "Compose new Message"
-msgstr ""
+msgstr "Új üzenet létrehozása"
#. module: mail
#: field:mail.group,menu_id:0
msgid "Related Menu"
-msgstr ""
+msgstr "Kapcsolódó menü"
#. module: mail
#: view:mail.message:0
msgid "Content"
-msgstr ""
+msgstr "Tartalom"
#. module: mail
#: field:mail.mail,email_to:0
msgid "To"
-msgstr ""
+msgstr "Címzett"
#. module: mail
#: field:mail.compose.message,notified_partner_ids:0
#: field:mail.message,notified_partner_ids:0
msgid "Notified partners"
-msgstr ""
+msgstr "Értesített partnerek"
#. module: mail
#: help:mail.group,public:0
@@ -1385,11 +1416,13 @@ msgid ""
"This group is visible by non members. Invisible groups can add "
"members through the invite button."
msgstr ""
+"Ez a csoport azoknak is látható akik nem tagok. A nem látható csoportok "
+"tagokat adhatnak a meghívó gombbal."
#. module: mail
#: model:mail.group,name:mail.group_board
msgid "Board meetings"
-msgstr ""
+msgstr "Tanácskozás"
#. module: mail
#: constraint:mail.alias:0
@@ -1397,40 +1430,42 @@ msgid ""
"Invalid expression, it must be a literal python dictionary definition e.g. "
"\"{'field': 'value'}\""
msgstr ""
+"Nem érvényes kifejezés, ennek python szótár kifejezésnek kell lennie pl.: "
+"\"{'field': 'value'}\""
#. module: mail
#: field:mail.alias,alias_model_id:0
msgid "Aliased Model"
-msgstr ""
+msgstr "Minta álnév"
#. module: mail
#: help:mail.compose.message,message_id:0
#: help:mail.message,message_id:0
msgid "Message unique identifier"
-msgstr ""
+msgstr "Üzenet egyedi azonosító"
#. module: mail
#: field:mail.group,description:0
#: field:mail.message.subtype,description:0
msgid "Description"
-msgstr ""
+msgstr "Leírás"
#. module: mail
#: model:ir.model,name:mail.model_mail_followers
msgid "Document Followers"
-msgstr ""
+msgstr "Követők dokumentuma"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail_followers.xml:35
#, python-format
msgid "Remove this follower"
-msgstr ""
+msgstr "Követő eltávolítása"
#. module: mail
#: selection:res.partner,notification_email_send:0
msgid "Never"
-msgstr ""
+msgstr "Soha"
#. module: mail
#: field:mail.mail,mail_server_id:0
@@ -1441,7 +1476,7 @@ msgstr "Kimenő levelező szerver"
#: code:addons/mail/mail_message.py:920
#, python-format
msgid "Partners email addresses not found"
-msgstr ""
+msgstr "A partnerek e-mail címei nem találhatóak"
#. module: mail
#: view:mail.mail:0
@@ -1452,19 +1487,21 @@ msgstr "Elküldött"
#. module: mail
#: field:mail.mail,body_html:0
msgid "Rich-text Contents"
-msgstr ""
+msgstr "Rich-text tartalmak"
#. module: mail
#: help:mail.compose.message,to_read:0
#: help:mail.message,to_read:0
msgid "Current user has an unread notification linked to this message"
msgstr ""
+"A jelenlegi felhasználónak van egy olvasatlan értesítése ehhez az üzenethez "
+"csatolva"
#. module: mail
#: help:res.partner,notification_email_send:0
msgid ""
"Choose in which case you want to receive an email when you receive new feeds."
-msgstr ""
+msgstr "Válassza ki milyen esetekben kíván e-mail kapni az új bevitelekből."
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_groups
@@ -1480,13 +1517,17 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" nincs üzenete ebben a csoportban.\n"
+"
\n"
+" "
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:195
#, python-format
msgid "Please, wait while the file is uploading."
-msgstr ""
+msgstr "Kérem várjon amíg a fájl feltöltődik."
#. module: mail
#: view:mail.group:0
@@ -1496,6 +1537,9 @@ msgid ""
"installed\n"
" the portal module."
msgstr ""
+"Ez a csoport mindenki számára látható,\n"
+" az ügyfeleinek is, ha telepítette a\n"
+" portal modult."
#. module: mail
#. openerp-web
@@ -1509,17 +1553,17 @@ msgstr "Visszahelyezés a feladatokhoz"
#: code:addons/mail/static/src/xml/mail.xml:113
#, python-format
msgid "this document"
-msgstr ""
+msgstr "ez a dokumentum"
#. module: mail
#: field:mail.compose.message,filter_id:0
msgid "Filters"
-msgstr ""
+msgstr "Szűrők"
#. module: mail
#: field:res.partner,notification_email_send:0
msgid "Receive Feeds by Email"
-msgstr ""
+msgstr "Új hozzászólások e-mailen fogadva"
#. module: mail
#: help:base.config.settings,alias_domain:0
@@ -1527,6 +1571,8 @@ msgid ""
"If you have setup a catch-all email domain redirected to the OpenERP server, "
"enter the domain name here."
msgstr ""
+"Ha be állítja az összes e-mail fogadása domain átirányítás az openERP "
+"szerverre, akkor írja ide a domain nevet."
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_mail_message
@@ -1543,7 +1589,7 @@ msgstr "Üzenetek"
#: code:addons/mail/static/src/xml/mail.xml:126
#, python-format
msgid "others..."
-msgstr ""
+msgstr "mások..."
#. module: mail
#: model:ir.actions.client,name:mail.action_mail_star_feeds
@@ -1557,12 +1603,12 @@ msgstr "Feladat"
#: field:mail.group,alias_id:0
#: field:res.users,alias_id:0
msgid "Alias"
-msgstr ""
+msgstr "Álnév"
#. module: mail
#: model:ir.model,name:mail.model_mail_mail
msgid "Outgoing Mails"
-msgstr ""
+msgstr "Elküldött levelek"
#. module: mail
#: help:mail.compose.message,notification_ids:0
@@ -1571,6 +1617,8 @@ msgid ""
"Technical field holding the message notifications. Use notified_partner_ids "
"to access notified partners."
msgstr ""
+"Technikai mező a értesítés üzenetek tárolásához. Használja a "
+"notified_partner_ids az értesített partnerek eléréséhez."
#. module: mail
#: model:ir.ui.menu,name:mail.mail_feeds
@@ -1582,12 +1630,12 @@ msgstr "Üzenetek"
#: view:mail.alias:0
#: field:mail.message.subtype,res_model:0
msgid "Model"
-msgstr ""
+msgstr "Modell"
#. module: mail
#: view:mail.message:0
msgid "Unread"
-msgstr ""
+msgstr "Olvasatlan"
#. module: mail
#: help:mail.followers,subtype_ids:0
@@ -1595,23 +1643,25 @@ msgid ""
"Message subtypes followed, meaning subtypes that will be pushed onto the "
"user's Wall."
msgstr ""
+"Üzenet altípus követve, azt jelenti, hogy az altípus ki lesz rakva a "
+"felhasználó üzenőfalára."
#. module: mail
#: help:mail.group,message_ids:0
#: help:mail.thread,message_ids:0
#: help:res.partner,message_ids:0
msgid "Messages and communication history"
-msgstr ""
+msgstr "Üzenetek és kommunikáció történet"
#. module: mail
#: help:mail.mail,references:0
msgid "Message references, such as identifiers of previous messages"
-msgstr ""
+msgstr "Üzenet hivatkozások, mint előző üzenetek azonosítói"
#. module: mail
#: field:mail.compose.message,composition_mode:0
msgid "Composition mode"
-msgstr ""
+msgstr "Összeállítási mód"
#. module: mail
#: field:mail.compose.message,model:0
@@ -1619,14 +1669,14 @@ msgstr ""
#: field:mail.message,model:0
#: field:mail.wizard.invite,res_model:0
msgid "Related Document Model"
-msgstr ""
+msgstr "Ide vonatkozó dokumentum modell"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:287
#, python-format
msgid "unlike"
-msgstr ""
+msgstr "nem valószínű"
#. module: mail
#: help:mail.compose.message,author_id:0
@@ -1635,22 +1685,24 @@ msgid ""
"Author of the message. If not set, email_from may hold an email address that "
"did not match any partner."
msgstr ""
+"Az üzenet szerzője. Ha nincs beállítva, az e-mail ettől, egy címet "
+"tartalmaz ami nem mutat egyik partnerre sem."
#. module: mail
#: help:mail.mail,email_cc:0
msgid "Carbon copy message recipients"
-msgstr ""
+msgstr "Üzenet másolat címzettjei"
#. module: mail
#: field:mail.alias,alias_domain:0
msgid "Alias domain"
-msgstr ""
+msgstr "Álénév domain"
#. module: mail
#: code:addons/mail/update.py:93
#, python-format
msgid "Error during communication with the publisher warranty server."
-msgstr ""
+msgstr "Hiba a kiadó garancia szerverével történő kommunikációval."
#. module: mail
#: selection:mail.group,public:0
@@ -1670,32 +1722,41 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Nincs teendő.\n"
+"
\n"
+" Ha a Beérkezett üzeneteinél végez műveletet, "
+"megjelölheti\n"
+" mint teendő. Ebből a menüből, minden teendőjét "
+"elvégezheti.\n"
+"
\n"
+" "
#. module: mail
#: selection:mail.mail,state:0
msgid "Delivery Failed"
-msgstr ""
+msgstr "Küldés sikertelen"
#. module: mail
#: field:mail.compose.message,partner_ids:0
msgid "Additional contacts"
-msgstr ""
+msgstr "További kapcsolatok"
#. module: mail
#: help:mail.compose.message,parent_id:0
#: help:mail.message,parent_id:0
msgid "Initial thread message."
-msgstr ""
+msgstr "Elsődleges összefűzött üzenet."
#. module: mail
#: model:mail.group,name:mail.group_hr_policies
msgid "HR Policies"
-msgstr ""
+msgstr "HR Emberi erőforrás menedzsment házirend"
#. module: mail
#: selection:res.partner,notification_email_send:0
msgid "Emails only"
-msgstr ""
+msgstr "Kizárólag e-mailek"
#. module: mail
#: model:ir.actions.client,name:mail.action_mail_inbox_feeds
@@ -1708,35 +1769,35 @@ msgstr "Beérkezett üzenetek"
#: code:addons/mail/static/src/xml/mail.xml:58
#, python-format
msgid "File"
-msgstr ""
+msgstr "Fájl"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/js/many2many_tags_email.js:63
#, python-format
msgid "Please complete partner's informations and Email"
-msgstr ""
+msgstr "Kérem egészítse ki a partner információkat és e-mailjét"
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_message_subtype
#: model:ir.ui.menu,name:mail.menu_message_subtype
msgid "Subtypes"
-msgstr ""
+msgstr "Altípusok"
#. module: mail
#: model:ir.model,name:mail.model_mail_alias
msgid "Email Aliases"
-msgstr ""
+msgstr "e-amil álnevek"
#. module: mail
#: field:mail.group,image_small:0
msgid "Small-sized photo"
-msgstr ""
+msgstr "Kis-méretű fotó"
#. module: mail
#: help:mail.mail,reply_to:0
msgid "Preferred response address for the message"
-msgstr ""
+msgstr "Előnyben részesített válasz cím ehhez az üzenethez"
#~ msgid "Open Attachments"
#~ msgstr "Mellékletek megnyitása"
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index 16587ae24fd..77573f0d2f8 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -310,8 +310,8 @@ class mail_message(osv.Model):
partner_tree = dict((partner[0], partner) for partner in partners)
# 2. Attachments as SUPERUSER, because could receive msg and attachments for doc uid cannot see
- attachments = ir_attachment_obj.read(cr, SUPERUSER_ID, list(attachment_ids), ['id', 'datas_fname'], context=context)
- attachments_tree = dict((attachment['id'], {'id': attachment['id'], 'filename': attachment['datas_fname']}) for attachment in attachments)
+ attachments = ir_attachment_obj.read(cr, SUPERUSER_ID, list(attachment_ids), ['id', 'datas_fname', 'name'], context=context)
+ attachments_tree = dict((attachment['id'], {'id': attachment['id'], 'filename': attachment['datas_fname'], 'name': attachment['name']}) for attachment in attachments)
# 3. Update message dictionaries
for message_dict in messages:
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index 9d7237ca907..7a2be4aed01 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -773,7 +773,7 @@ class mail_thread(osv.AbstractModel):
msg_dict['author_id'] = author_ids[0]
else:
msg_dict['email_from'] = message.get('from')
- partner_ids = self._message_find_partners(cr, uid, message, ['From', 'To', 'Cc'], context=context)
+ partner_ids = self._message_find_partners(cr, uid, message, ['To', 'Cc'], context=context)
msg_dict['partner_ids'] = [(4, partner_id) for partner_id in partner_ids]
if 'Date' in message:
diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js
index 0b3bddffde1..0872d049162 100644
--- a/addons/mail/static/src/js/mail.js
+++ b/addons/mail/static/src/js/mail.js
@@ -104,8 +104,8 @@ openerp.mail = function (session) {
// returns the file type of a file based on its extension
// As it only looks at the extension it is quite approximative.
filetype: function(url){
- url = url.filename || url;
- var tokens = (url+'').split('.');
+ var url = url && url.filename || url;
+ var tokens = typeof url == 'string' ? url.split('.') : [];
if(tokens.length <= 1){
return 'unknown';
}
diff --git a/addons/marketing/i18n/hu.po b/addons/marketing/i18n/hu.po
index 48acf144f2e..d30ea159220 100644
--- a/addons/marketing/i18n/hu.po
+++ b/addons/marketing/i18n/hu.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-01-31 14:00+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-02-15 16:10+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-22 05:59+0000\n"
-"X-Generator: Launchpad (build 16378)\n"
+"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
#. module: marketing
#: model:ir.model,name:marketing.model_marketing_config_settings
msgid "marketing.config.settings"
-msgstr ""
+msgstr "marketing.config.settings"
#. module: marketing
#: help:marketing.config.settings,module_marketing_campaign_crm_demo:0
@@ -28,12 +28,15 @@ msgid ""
"Campaigns.\n"
" This installs the module marketing_campaign_crm_demo."
msgstr ""
+"Demó adatok telepítése mint érdeklődések, kampányok és szakaszok a Marketing "
+"kampányokhoz.\n"
+" Ez a marketing_campaign_crm_demo modult telepíti.."
#. module: marketing
#: model:ir.actions.act_window,name:marketing.action_marketing_configuration
#: view:marketing.config.settings:0
msgid "Configure Marketing"
-msgstr ""
+msgstr "Értékesítés beállítás"
#. module: marketing
#: view:crm.lead:0
@@ -44,47 +47,47 @@ msgstr "Marketing"
#. module: marketing
#: field:marketing.config.settings,module_marketing_campaign:0
msgid "Marketing campaigns"
-msgstr ""
+msgstr "Értékesítési kampány"
#. module: marketing
#: view:marketing.config.settings:0
msgid "or"
-msgstr ""
+msgstr "vagy"
#. module: marketing
#: view:marketing.config.settings:0
msgid "Campaigns"
-msgstr ""
+msgstr "Kampányok"
#. module: marketing
#: model:res.groups,name:marketing.group_marketing_manager
msgid "Manager"
-msgstr ""
+msgstr "Igazgató"
#. module: marketing
#: model:res.groups,name:marketing.group_marketing_user
msgid "User"
-msgstr ""
+msgstr "Felhasználó"
#. module: marketing
#: view:marketing.config.settings:0
msgid "Campaigns Settings"
-msgstr ""
+msgstr "Kampány beállítások"
#. module: marketing
#: field:marketing.config.settings,module_crm_profiling:0
msgid "Track customer profile to focus your campaigns"
-msgstr ""
+msgstr "Vevő profil nyomonkövetése a kampányra összpontosítva"
#. module: marketing
#: view:marketing.config.settings:0
msgid "Cancel"
-msgstr ""
+msgstr "Mégsem"
#. module: marketing
#: view:marketing.config.settings:0
msgid "Apply"
-msgstr ""
+msgstr "Alkalmaz"
#. module: marketing
#: help:marketing.config.settings,module_marketing_campaign:0
@@ -94,6 +97,10 @@ msgid ""
"CRM leads.\n"
" This installs the module marketing_campaign."
msgstr ""
+"Marketing kampányokon keresztüli érdeklődés automatizálást biztosít.\n"
+" Kampányt meg lehet határozni valójában bármely forrásból, "
+"nem csak a CMR érdeklődésekből.\n"
+" Ez a marketing_campaign modult telepíti."
#. module: marketing
#: help:marketing.config.settings,module_crm_profiling:0
@@ -101,11 +108,13 @@ msgid ""
"Allows users to perform segmentation within partners.\n"
" This installs the module crm_profiling."
msgstr ""
+"A felhasználóknak engedélyezi a partnerek kiválogatását.\n"
+" Ez telepíti a crm_profiling modult."
#. module: marketing
#: field:marketing.config.settings,module_marketing_campaign_crm_demo:0
msgid "Demo data for marketing campaigns"
-msgstr ""
+msgstr "Demo adatok a merketing kampányhoz"
#~ msgid "Configure Your Marketing Application"
#~ msgstr "Marketing alkalmazásainak beállítása"
diff --git a/addons/marketing_campaign/i18n/hu.po b/addons/marketing_campaign/i18n/hu.po
index 460d35dd20e..7ccfe78d3ee 100644
--- a/addons/marketing_campaign/i18n/hu.po
+++ b/addons/marketing_campaign/i18n/hu.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-02-04 14:42+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-02-15 12:34+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-22 06:01+0000\n"
-"X-Generator: Launchpad (build 16378)\n"
+"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
#. module: marketing_campaign
#: view:marketing.campaign:0
@@ -31,16 +31,18 @@ msgstr "Előző tevékenység"
#, python-format
msgid "The current step for this item has no email or report to preview."
msgstr ""
+"Ennek a tételnek az aktuális lépéséhez nincs előnézeti e-mail vagy jelentés."
#. module: marketing_campaign
#: constraint:marketing.campaign.transition:0
msgid "The To/From Activity of transition must be of the same Campaign "
msgstr ""
+"A tól/hoz átvezetési tevékenységnek ugyanahhoz a kampányhoz kell tartoznia. "
#. module: marketing_campaign
#: selection:marketing.campaign.transition,trigger:0
msgid "Time"
-msgstr ""
+msgstr "Idő"
#. module: marketing_campaign
#: selection:marketing.campaign.activity,type:0
@@ -62,16 +64,19 @@ msgid ""
"reached this point has generated a certain revenue. You can get revenue "
"statistics in the Reporting section"
msgstr ""
+"Állítson be elvárt jövedelmet, ha figyelembe akarja venni amikor az egyes "
+"kampány termékek elérik ezt a szintet akkor azok bevételt generálnak. El "
+"tudja érni a bevétel statisztikát a Jelentések részen."
#. module: marketing_campaign
#: field:marketing.campaign.transition,trigger:0
msgid "Trigger"
-msgstr ""
+msgstr "Indítás"
#. module: marketing_campaign
#: view:marketing.campaign:0
msgid "Follow-Up"
-msgstr ""
+msgstr "Fizetési emlékeztető"
#. module: marketing_campaign
#: field:campaign.analysis,count:0
@@ -89,7 +94,7 @@ msgstr "Kampányszerkesztő"
#: view:marketing.campaign.segment:0
#: selection:marketing.campaign.segment,state:0
msgid "Running"
-msgstr ""
+msgstr "Folyamatban lévő"
#. module: marketing_campaign
#: model:email.template,body_html:marketing_campaign.email_template_3
@@ -97,6 +102,7 @@ msgid ""
"Hi, we are delighted to let you know that you have entered the select circle "
"of our Gold Partners"
msgstr ""
+"Helló, mi örömmel tudatjuk, hogy bekerül az arany kiválasztott tagok körébe"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -112,6 +118,7 @@ msgstr "Tárgy"
#: view:marketing.campaign.segment:0
msgid "Sync mode: only records created after last sync"
msgstr ""
+"Szinkronizációs mód: csak a legutóbbi szinkronizlás után létrehozott rekordok"
#. module: marketing_campaign
#: help:marketing.campaign.activity,condition:0
@@ -125,6 +132,15 @@ msgid ""
" - transitions: list of campaign transitions outgoing from this activity\n"
"...- re: Python regular expression module"
msgstr ""
+"Python kifejezés annak eldöntésére, hogy a tevékenység végrehajtható, egyéb "
+"esetben törölve vagy visszavonva lesz. A kifejezés a használhatja a "
+"következő [böngészhető] változókat:\n"
+" - tevékenység: a vállalat tevékenysége\n"
+" - feladatelemek: a kampány feladatelem\n"
+" - forrás: ezt a kampányt képviselő forrás termék\n"
+" - átmeneti időszakok: kampány átmeneti időszak listák amik ebből a "
+"tevékenységből származnak\n"
+"...- re: Python általános kifejező modul"
#. module: marketing_campaign
#: view:marketing.campaign:0
@@ -145,11 +161,13 @@ msgid ""
"The campaign cannot be started. It does not have any starting activity. "
"Modify campaign's activities to mark one as the starting point."
msgstr ""
+"A kampány nem indítható el. Nincs semmilyen elindítható tevékenysége. "
+"Módosítsa a kampány tevékenységet, legyen egy induló pontja."
#. module: marketing_campaign
#: help:marketing.campaign.activity,email_template_id:0
msgid "The email to send when this activity is activated"
-msgstr ""
+msgstr "A küldendő email a tevékenység aktiválása után"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
@@ -176,12 +194,12 @@ msgstr "Visszaállítás"
#. module: marketing_campaign
#: help:marketing.campaign,object_id:0
msgid "Choose the resource on which you want this campaign to be run"
-msgstr ""
+msgstr "Válasszon forrást amelyen a kampányt futtatni szeretné"
#. module: marketing_campaign
#: model:ir.actions.client,name:marketing_campaign.action_client_marketing_menu
msgid "Open Marketing Menu"
-msgstr ""
+msgstr "Merketing menü megnyitása"
#. module: marketing_campaign
#: field:marketing.campaign.segment,sync_last_date:0
@@ -199,6 +217,8 @@ msgid ""
"Date on which this segment was synchronized last time (automatically or "
"manually)"
msgstr ""
+"Dátum amelyen a szakasz utoljára szinkronizálva lett (automatikusan vagy "
+"kézzel)"
#. module: marketing_campaign
#: selection:campaign.analysis,state:0
@@ -225,16 +245,25 @@ msgid ""
"Normal - the campaign runs normally and automatically sends all emails and "
"reports (be very careful with this mode, you're live!)"
msgstr ""
+"Teszt - Ez közvetlenül, automatikusan létrehozza és futtatja az összes "
+"tevékenységet (anélkül, hogy az átmenetek késésére várakozna) de nem küld e-"
+"maileket és nem készít jelentéseket.\n"
+"Valós idejű teszt - Ez közvetlenül létrehozza és futtatja tevékenységeket de "
+"nem küld e-maileket és nem készít jelentéseket.\n"
+"Kézi visszaigazolással - a kampány normál futása, de a felhasználónak kézzel "
+"kell érvényesítenie a feladatelemet.\n"
+"Normál - a kampány normál futása és automatikus email küldések és jelentés "
+"készítések (legyen nagyon óvatos ezzel a móddal, élőben tesz mindent!)"
#. module: marketing_campaign
#: help:marketing.campaign.segment,date_run:0
msgid "Initial start date of this segment."
-msgstr ""
+msgstr "Elsődleges indítási dátuma ennek a szakasznak."
#. module: marketing_campaign
#: view:res.partner:0
msgid "False"
-msgstr ""
+msgstr "Hamis"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -251,7 +280,7 @@ msgstr "Kampány"
#. module: marketing_campaign
#: model:email.template,body_html:marketing_campaign.email_template_1
msgid "Hello, you will receive your welcome pack via email shortly."
-msgstr ""
+msgstr "Helló, nemsokára emailben megkapja az üdvözlő csomagot."
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -266,7 +295,7 @@ msgstr "Szakasz"
#: code:addons/marketing_campaign/marketing_campaign.py:214
#, python-format
msgid "You cannot duplicate a campaign, Not supported yet."
-msgstr ""
+msgstr "Nem sokszorozhat kampányt, még nem támogatott."
#. module: marketing_campaign
#: help:marketing.campaign.activity,type:0
@@ -279,11 +308,20 @@ msgid ""
"of the resource record\n"
" "
msgstr ""
+"A művelet típusa melyet elvégez, amikor ehhez a tevékenységhez bevisz egy "
+"tételt, úgy mint:\n"
+" - Email: email küldése az előre definiált sablonból\n"
+" - Jelentés: a erőforrás tételnél meghatározott jelentés nyomtatása és "
+"elmentése egy konkrét könyvtárba\n"
+" - Egyedi művelet: előre meghatározott művelet végrehajtása, pl.: "
+"erőforrás rekord mező módosítása\n"
+" "
#. module: marketing_campaign
#: help:marketing.campaign.segment,date_next_sync:0
msgid "Next time the synchronization job is scheduled to run automatically"
msgstr ""
+"Következő időpont a munka szinkronizálására amikor az automatikusan futni fog"
#. module: marketing_campaign
#: selection:marketing.campaign.transition,interval_type:0
@@ -301,7 +339,7 @@ msgstr "Partner"
#. module: marketing_campaign
#: model:ir.filters,name:marketing_campaign.filter0
msgid "Partners"
-msgstr ""
+msgstr "Partnerek"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -312,7 +350,7 @@ msgstr "Marketing jelentések"
#: selection:marketing.campaign,state:0
#: selection:marketing.campaign.segment,state:0
msgid "New"
-msgstr ""
+msgstr "Új"
#. module: marketing_campaign
#: sql_constraint:marketing.campaign.transition:0
@@ -322,7 +360,7 @@ msgstr "Az intervallumnak pozitívnak vagy 0-nak kell lennie"
#. module: marketing_campaign
#: selection:marketing.campaign.activity,type:0
msgid "Email"
-msgstr ""
+msgstr "E-mail"
#. module: marketing_campaign
#: field:marketing.campaign,name:0
@@ -335,7 +373,7 @@ msgstr "Név"
#. module: marketing_campaign
#: field:marketing.campaign.workitem,res_name:0
msgid "Resource Name"
-msgstr ""
+msgstr "Erőforrás neve"
#. module: marketing_campaign
#: field:marketing.campaign.segment,sync_mode:0
@@ -346,7 +384,7 @@ msgstr "Szinkronizálási mód"
#: view:marketing.campaign:0
#: view:marketing.campaign.segment:0
msgid "Run"
-msgstr ""
+msgstr "Futtatás"
#. module: marketing_campaign
#: view:marketing.campaign.activity:0
@@ -357,12 +395,12 @@ msgstr "Előző tevékenységek"
#. module: marketing_campaign
#: model:email.template,subject:marketing_campaign.email_template_2
msgid "Congratulations! You are now a Silver Partner!"
-msgstr ""
+msgstr "Gratulálok! Ön mostmár Ezüst partner!"
#. module: marketing_campaign
#: help:marketing.campaign.segment,date_done:0
msgid "Date this segment was last closed or cancelled."
-msgstr ""
+msgstr "Dátum amikor ez a szakasz utoljára le volt zárva vagy visszavonva."
#. module: marketing_campaign
#: view:marketing.campaign.workitem:0
@@ -417,6 +455,9 @@ msgid ""
"reached this point has entailed a certain cost. You can get cost statistics "
"in the Reporting section"
msgstr ""
+"Változó költség beállítása ha úgy dönt, hogy mindegyik kampány tétel amikor "
+"eléri ezt a szintet akkor maga után von egy bizonyos költséget. Megkaphatja "
+"a költség statisztikát a Jelentés résznél"
#. module: marketing_campaign
#: selection:marketing.campaign.transition,interval_type:0
@@ -434,6 +475,9 @@ msgid ""
"By activating this option, workitems that aren't executed because the "
"condition is not met are marked as cancelled instead of being deleted."
msgstr ""
+"Ennek a lehetőségnek a aktiválásával, feladatelemek melyek a körülmények "
+"miatt nem végrehajthatóak azok visszavontak ahelyett, hogy törölte volna "
+"azokat."
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -444,7 +488,7 @@ msgstr "Kivételek"
#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_followup
#: field:res.partner,workitem_ids:0
msgid "Workitems"
-msgstr ""
+msgstr "Feladatelemek"
#. module: marketing_campaign
#: field:marketing.campaign,fixed_cost:0
@@ -477,6 +521,23 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" OpenERP marketing kampánya lehetővé teszi a kiállításaihoz\n"
+" az automatikus kommunikációt. Szakaszokat tud meghatározni \n"
+" (körülmények megadásával) az érdeklődőkhöz és a partnerekhez \n"
+" a kampány elvégzéséhez.\n"
+"
\n"
+" Egy kampánynak több tevékenysége lehet mint: email küldés, "
+"levél\n"
+" nyomtatás, csoporthoz fűzés, stb. ezek a tevékenységek "
+"kapcsolhatóak\n"
+" egy sajátos helyzethez; kapcsolati űrlap, 10 nappal az első "
+"kapcsolat\n"
+" felvételtől, ha az érdeklődés még nincs lezárva, stb.\n"
+"
\n"
+" "
#. module: marketing_campaign
#: field:marketing.campaign.transition,interval_nbr:0
@@ -507,6 +568,10 @@ msgid ""
"for reporting purposes, via the Campaign Analysis or Campaign Follow-up "
"views."
msgstr ""
+"A létrehozott feladatelemek a rekordhoz tartozó partnerhez lesznek csatlova. "
+"Ha a rekord a partnerrel megegyezik akkor a mezőt hagyja üresen. Ez hasznos "
+"jelentés céljából, a Kampány analízis elemzéshez vagy a Kampány nyomkövetés "
+"nézetben."
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -535,6 +600,7 @@ msgstr "Tesztmód"
#: selection:marketing.campaign.segment,sync_mode:0
msgid "Only records modified after last sync (no duplicates)"
msgstr ""
+"Csak az utolsó szinkronizálás óta módosult rekordok (nincs többszörözés)"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml
@@ -549,7 +615,7 @@ msgstr "Kampánystatisztikák"
#. module: marketing_campaign
#: help:marketing.campaign.activity,server_action_id:0
msgid "The action to perform when this activity is activated"
-msgstr ""
+msgstr "Az elvégzett művelet miután tevékenység aktiválásra került"
#. module: marketing_campaign
#: field:marketing.campaign,partner_field_id:0
@@ -574,6 +640,13 @@ msgid ""
"records which have the same value for the unique field as other records that "
"already entered the campaign."
msgstr ""
+"Még egy kritérium meghatározásának hozzáadása a szűrőhöz, amikor egy új "
+"rekordot választ a kampányba való beillesztéshez \"Nincs többszörözés\" "
+"megakadályozva olyan rekord választását melyek már előzőleg be lettek "
+"illesztve a kampányba. Ha a kampányban van \"Egyedi mező\" beállítva, "
+"\"nincs többszörözés\" akkor is megakadályozza olyan rekord kiválasztását, "
+"melynek ugyanaz az értéke az egyedi mezőre mint a másik rekordnak, mely már "
+"be lett írva a kampányba."
#. module: marketing_campaign
#: selection:marketing.campaign,mode:0
@@ -599,7 +672,7 @@ msgstr "Tervezet"
#. module: marketing_campaign
#: view:marketing.campaign.workitem:0
msgid "Marketing Campaign Activity"
-msgstr ""
+msgstr "marketing kampány tevékenység"
#. module: marketing_campaign
#: view:marketing.campaign.workitem:0
@@ -616,7 +689,7 @@ msgstr "Előnézet"
#: view:marketing.campaign.workitem:0
#: field:marketing.campaign.workitem,state:0
msgid "Status"
-msgstr ""
+msgstr "Állapot"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -639,6 +712,9 @@ msgid ""
"An activity with a signal can be called programmatically. Be careful, the "
"workitem is always created when a signal is sent"
msgstr ""
+"Egy tevékenység jeladóval ellátva úgy is nevezhető mint programozott "
+"végrehajtó. Vigyázzon, a feladatelem mindig létre lesz hozva, ha a jelet "
+"elküldik"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -646,7 +722,7 @@ msgstr ""
#: view:marketing.campaign.workitem:0
#: selection:marketing.campaign.workitem,state:0
msgid "To Do"
-msgstr ""
+msgstr "Teendő"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -656,17 +732,17 @@ msgstr "Június"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_email_template
msgid "Email Templates"
-msgstr ""
+msgstr "E-mail sablonok"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
msgid "Sync mode: all records"
-msgstr ""
+msgstr "Szinkronizációs mód: minden rekord"
#. module: marketing_campaign
#: selection:marketing.campaign.segment,sync_mode:0
msgid "All records (no duplicates)"
-msgstr ""
+msgstr "Minden rekord (nincs sokszorozás)"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
@@ -696,7 +772,7 @@ msgstr "Jelentés generálódik, amikor ez a tevékenység aktiválódott"
#. module: marketing_campaign
#: field:marketing.campaign,unique_field_id:0
msgid "Unique Field"
-msgstr ""
+msgstr "Egyedi mező"
#. module: marketing_campaign
#: selection:campaign.analysis,state:0
@@ -729,7 +805,7 @@ msgstr "Kivitelezés dátuma"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem
msgid "Campaign Workitem"
-msgstr ""
+msgstr "Kampány feladatelem"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity
@@ -739,7 +815,7 @@ msgstr "Kampánytevékenység"
#. module: marketing_campaign
#: help:marketing.campaign.activity,report_directory_id:0
msgid "This folder is used to store the generated reports"
-msgstr ""
+msgstr "Ez a könyvtár a létrehozott jelentések tárolására szolgál"
#. module: marketing_campaign
#: code:addons/marketing_campaign/marketing_campaign.py:136
@@ -781,12 +857,12 @@ msgstr "Folyamat"
#: selection:marketing.campaign.transition,trigger:0
#, python-format
msgid "Cosmetic"
-msgstr ""
+msgstr "Kozmetika"
#. module: marketing_campaign
#: help:marketing.campaign.transition,trigger:0
msgid "How is the destination workitem triggered"
-msgstr ""
+msgstr "Ahogy a végső feladatelem kapcsolva lesz"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -809,7 +885,7 @@ msgstr "Nem támogatott művelet"
#: view:marketing.campaign.segment:0
#: view:marketing.campaign.workitem:0
msgid "Cancel"
-msgstr ""
+msgstr "Visszavonás"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
@@ -820,6 +896,7 @@ msgstr "Zárás"
#: constraint:marketing.campaign.segment:0
msgid "Model of filter must be same as resource model of Campaign "
msgstr ""
+"A szűrő modelljének ugyanannak kell lennie mint a kampány erőforrás modellje "
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
@@ -835,12 +912,12 @@ msgstr "Erőforrás ID"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition
msgid "Campaign Transition"
-msgstr ""
+msgstr "Kampány átmenet"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
msgid "Marketing Campaign Segment"
-msgstr ""
+msgstr "Marketing kampány szakasz"
#. module: marketing_campaign
#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened
@@ -854,7 +931,7 @@ msgstr "Szegmensek"
#. module: marketing_campaign
#: field:marketing.campaign.activity,keep_if_condition_not_met:0
msgid "Don't Delete Workitems"
-msgstr ""
+msgstr "Ne törölje a feladatelemeket"
#. module: marketing_campaign
#: view:marketing.campaign.activity:0
@@ -876,7 +953,7 @@ msgstr "Tevékenységek"
#. module: marketing_campaign
#: selection:marketing.campaign,mode:0
msgid "With Manual Confirmation"
-msgstr ""
+msgstr "Kézi visszaigazolással"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -891,7 +968,7 @@ msgstr "Típus"
#. module: marketing_campaign
#: model:email.template,subject:marketing_campaign.email_template_3
msgid "Congratulations! You are now one of our Gold Partners!"
-msgstr ""
+msgstr "Gratulálunk! Most már Ön is egy Arany tagsággal rendelkezik!"
#. module: marketing_campaign
#: help:marketing.campaign,unique_field_id:0
@@ -910,7 +987,7 @@ msgstr ""
#: code:addons/marketing_campaign/marketing_campaign.py:529
#, python-format
msgid "After %(interval_nbr)d %(interval_type)s"
-msgstr ""
+msgstr "Után %(interval_nbr)d %(interval_type)s"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_marketing_campaign
@@ -937,7 +1014,7 @@ msgstr "Február"
#: view:marketing.campaign.workitem:0
#: field:marketing.campaign.workitem,object_id:0
msgid "Resource"
-msgstr ""
+msgstr "Erőforrás"
#. module: marketing_campaign
#: help:marketing.campaign,fixed_cost:0
@@ -946,11 +1023,15 @@ msgid ""
"revenue on each campaign activity. Cost and Revenue statistics are included "
"in Campaign Reporting."
msgstr ""
+"fix költség a kampány futtatásához. Lehetősége van megadni változó költséget "
+"is és bevételt mindegyik kampány tevékenységhez. Költség és bevétel "
+"statisztikák a Kampány jelentéseknél."
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
msgid "Sync mode: only records updated after last sync"
msgstr ""
+"Szinkronizálási mód: csak az utolsó szinkronizálás óta frissített rekordok"
#. module: marketing_campaign
#: code:addons/marketing_campaign/marketing_campaign.py:793
@@ -961,12 +1042,12 @@ msgstr "E-mail előnézet"
#. module: marketing_campaign
#: field:marketing.campaign.activity,signal:0
msgid "Signal"
-msgstr ""
+msgstr "Jel"
#. module: marketing_campaign
#: help:marketing.campaign.workitem,date:0
msgid "If date is not set, this workitem has to be run manually"
-msgstr ""
+msgstr "Ha nincs beállítva a dátum, ezt a feladatelemet kézzel kell futtatni"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -978,6 +1059,7 @@ msgstr "Április"
#, python-format
msgid "The campaign cannot be marked as done before all segments are closed."
msgstr ""
+"Minden szakasz lezárása előtt a kampányt nem lehet elvégzettnek jelölni."
#. module: marketing_campaign
#: view:marketing.campaign:0
@@ -1006,7 +1088,7 @@ msgstr ""
#: code:addons/marketing_campaign/marketing_campaign.py:136
#, python-format
msgid "The campaign cannot be started. There are no activities in it."
-msgstr ""
+msgstr "a kampány nem indítható el. Nincs tevékenység benne."
#. module: marketing_campaign
#: field:marketing.campaign.segment,date_next_sync:0
@@ -1017,7 +1099,7 @@ msgstr "Következő szinkronizáció"
#: model:email.template,body_html:marketing_campaign.email_template_2
msgid ""
"Hi, we are delighted to welcome you among our Silver Partners as of today!"
-msgstr ""
+msgstr "Helló, örömmel köszöntjük az Ezüst Partnereink között a mai naptól!"
#. module: marketing_campaign
#: field:marketing.campaign.segment,ir_filter_id:0
@@ -1032,7 +1114,7 @@ msgstr "Összes"
#. module: marketing_campaign
#: selection:marketing.campaign.segment,sync_mode:0
msgid "Only records created after last sync"
-msgstr ""
+msgstr "Csak az utolsó szinkronizáció után létrehozott rekordok"
#. module: marketing_campaign
#: field:marketing.campaign.activity,variable_cost:0
@@ -1042,7 +1124,7 @@ msgstr "Változó költség"
#. module: marketing_campaign
#: model:email.template,subject:marketing_campaign.email_template_1
msgid "Welcome to the OpenERP Partner Channel!"
-msgstr ""
+msgstr "Köszöntjük az OpenERP Partnereknél!"
#. module: marketing_campaign
#: view:campaign.analysis:0
diff --git a/addons/marketing_campaign_crm_demo/i18n/hu.po b/addons/marketing_campaign_crm_demo/i18n/hu.po
index 8c3b1bb2be9..a4a68e0e584 100644
--- a/addons/marketing_campaign_crm_demo/i18n/hu.po
+++ b/addons/marketing_campaign_crm_demo/i18n/hu.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-01-21 15:22+0000\n"
-"Last-Translator: Krisztian Eyssen \n"
+"PO-Revision-Date: 2013-02-13 12:33+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-22 05:59+0000\n"
-"X-Generator: Launchpad (build 16378)\n"
+"X-Launchpad-Export-Date: 2013-02-14 04:37+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_8
@@ -28,6 +28,14 @@ msgid ""
"reply to this message.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
Köszönjük érdeklődésedet és feliratkozásodat a műszaki "
+"képzésre.
Ha további információra van szükség, küldj választ erre az "
+"üzenetre.
\n"
+"
Tisztelettel,OpenERP csapata,
"
#. module: marketing_campaign_crm_demo
#: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report
@@ -37,7 +45,7 @@ msgstr "Marketingkampány demojelentés"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_8
msgid "Thanks for subscribing to technical training"
-msgstr ""
+msgstr "Köszönjük a feliratkozást a műszaki képzésre"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_3
@@ -49,6 +57,12 @@ msgid ""
"reply to this message.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
Köszönjük érdeklődésedet és feliratkozásodat az OpenERP "
+"felfedező napra.
\n"
+"
Ha további információra van szükség, küldj válasz választ "
+"erre az üzenetre.
\n"
+"
Tisztelettel,OpenERP csapat,
"
#. module: marketing_campaign_crm_demo
#: report:crm.lead.demo:0
@@ -58,7 +72,7 @@ msgstr "Vállalat :"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_4
msgid "Thanks for buying the OpenERP book"
-msgstr ""
+msgstr "Köszönjük, hogy megvásárolta az OpenERP könyvet"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_6
@@ -71,16 +85,23 @@ msgid ""
"reply to this message.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
Van egy nagyon jó ajánlatunk ami megfelelhet Önnek.\n"
+" Az ezüst tagjainknak, mi fizetjük a műszaki oktatást 2013 "
+"Júniusában.
\n"
+"
Ha további információra van szükség, küldj válasz választ "
+"erre az üzenetre.
\n"
+"
Tisztelettel,OpenERP csapat,
"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_1
msgid "Thanks for showing interest in OpenERP"
-msgstr ""
+msgstr "Köszönjük érdeklődését az OpenERP iránt"
#. module: marketing_campaign_crm_demo
#: model:ir.actions.server,name:marketing_campaign_crm_demo.action_dummy
msgid "Dummy Action"
-msgstr ""
+msgstr "Látszólagos művelet"
#. module: marketing_campaign_crm_demo
#: report:crm.lead.demo:0
@@ -98,6 +119,13 @@ msgid ""
"reply to this message.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
an egy nagyon jó ajánlatunk ami megfelelhet Önnek.\n"
+" Ajánljuk, hogy iratkozzon fel az OpenERP felfedező napra 2013 "
+"májusában.
\n"
+"
Ha további információra van szükség, küldj válasz választ "
+"erre az üzenetre.
\n"
+"
Tisztelettel,OpenERP csapat,
"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_5
@@ -110,26 +138,33 @@ msgid ""
"reply to this message.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
an egy nagyon jó ajánlatunk ami megfelelhet Önnek.\n"
+" Az arany partnereknek, mi szervezzük az ingyenes oktatást 2013 "
+"Júniusában.
\n"
+"
Ha további információra van szükség, küldj válasz választ "
+"erre az üzenetre.
\n"
+"
Tisztelettel,OpenERP csapat,
"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_2
msgid "Propose to subscribe to the OpenERP Discovery Day on May 2010"
-msgstr ""
+msgstr "Javasolja a feliratkozást az OpenERP felfedező napra 2013 Májusában"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_3
msgid "Thanks for subscribing to the OpenERP Discovery Day"
-msgstr ""
+msgstr "Köszönjük, hogy feliratkozott az OpenERP felfedező napra"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_7
msgid "Propose gold partnership to silver partners"
-msgstr ""
+msgstr "Javasolja az arany partner tagságot az ezüst tagoknak"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_6
msgid "Propose paid training to Silver partners"
-msgstr ""
+msgstr "Javasolja a költségtérítéses oktatást az Ezüst partnereknek"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_4
@@ -139,6 +174,12 @@ msgid ""
" If any further information required kindly revert back.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
Köszönjük az OpenERP könyv utáni érdeklődését és a "
+"vásárlását.
\n"
+" Ha további információra van szüksége kérjük forduljon hozzánk "
+"bizalommal.\n"
+"
Tisztelettel,OpenERP csapata,
"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_7
@@ -150,11 +191,17 @@ msgid ""
"reply to this message.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
Nagyon jó ajánlatunk van ami illeszkedhet az Ön igényeihez.\n"
+" Az Ezüst partnereinknek, Arany tagságot ajánlunk.
\n"
+"
Ha további információra van szükségük, kérjük válaszoljon "
+"erre az üzenetre.
\n"
+"
Tisztelettel,OpenERP csapata,
"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_5
msgid "Propose a free technical training to Gold partners"
-msgstr ""
+msgstr "Ajánljon ingyenes műszaki oktatást az Arany partnereknek"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_1
@@ -166,3 +213,8 @@ msgid ""
"reply to this message.\n"
"
Regards,OpenERP Team,
"
msgstr ""
+"
Hello,
\n"
+"
Köszönjük az OpenERP iránti őszinte érdeklődését.
\n"
+"
Ha további információra van szükségük, kérjük válaszoljon "
+"erre az üzenetre.
\n"
+"
Tisztelettel,OpenERP csapata,
"
diff --git a/addons/membership/test/test_membership.yml b/addons/membership/test/test_membership.yml
index cc5e0ed30a9..40d1785c29a 100644
--- a/addons/membership/test/test_membership.yml
+++ b/addons/membership/test/test_membership.yml
@@ -31,19 +31,18 @@
I'm Opening that Invoice which is created for "Seagate".
-
!python {model: res.partner}: |
- from openerp import netsvc
- from openerp.tools.translate import _
- invoice_pool = self.pool.get('account.invoice')
- partner_pool = self.pool.get('res.partner')
- membership_line_pool = self.pool.get('membership.membership_line')
- membership_pool = self.pool.get('product.product')
+ from openerp.tools.translate import _
+ invoice_pool = self.pool.get('account.invoice')
+ partner_pool = self.pool.get('res.partner')
+ membership_line_pool = self.pool.get('membership.membership_line')
+ membership_pool = self.pool.get('product.product')
+
+ membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_19'))])
+ membership_lines = membership_line_pool.browse(cr, uid, membership_line_ids)
+ assert membership_lines, _('Membership is not registrated.')
+ membership_line = membership_lines[0]
+ invoice_pool.signal_invoice_open(cr, uid, [membership_line.account_invoice_id.id])
- membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_19'))])
- membership_lines = membership_line_pool.browse(cr, uid, membership_line_ids)
- assert membership_lines, _('Membership is not registrated.')
- membership_line = membership_lines[0]
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.invoice', membership_line.account_invoice_id.id, 'invoice_open', cr)
- |
I'm checking "Current membership state" of "Seagate". It is an "Invoiced Member" or not.
-
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index 44fbaafbcfe..9f2d651d3d0 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -27,7 +27,6 @@ from openerp.osv import fields, osv
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP
from openerp.tools import float_compare
from openerp.tools.translate import _
-from openerp import netsvc
from openerp import tools
#----------------------------------------------------------
@@ -775,8 +774,7 @@ class mrp_production(osv.osv):
for new_parent_id in new_parent_ids:
stock_mov_obj.write(cr, uid, [raw_product.id], {'move_history_ids': [(4,new_parent_id)]})
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'mrp.production', production_id, 'button_produce_done', cr)
+ self.signal_button_produce_done(cr, uid, [production_id])
return True
def _costs_generate(self, cr, uid, production):
@@ -844,7 +842,6 @@ class mrp_production(osv.osv):
return True
def _make_production_line_procurement(self, cr, uid, production_line, shipment_move_id, context=None):
- wf_service = netsvc.LocalService("workflow")
procurement_order = self.pool.get('procurement.order')
production = production_line.production_id
location_id = production.location_src_id.id
@@ -864,7 +861,7 @@ class mrp_production(osv.osv):
'move_id': shipment_move_id,
'company_id': production.company_id.id,
})
- wf_service.trg_validate(uid, procurement_order._name, procurement_id, 'button_confirm', cr)
+ self.signal_button_confirm(cr, uid, [procurement_id])
return procurement_id
def _make_production_internal_shipment_line(self, cr, uid, production_line, shipment_id, parent_move_id, destination_location_id=False, context=None):
@@ -977,7 +974,6 @@ class mrp_production(osv.osv):
@return: Newly generated Shipment Id.
"""
shipment_id = False
- wf_service = netsvc.LocalService("workflow")
uncompute_ids = filter(lambda x:x, [not x.product_lines and x.id or False for x in self.browse(cr, uid, ids, context=context)])
self.action_compute(cr, uid, uncompute_ids, context=context)
for production in self.browse(cr, uid, ids, context=context):
@@ -995,7 +991,7 @@ class mrp_production(osv.osv):
destination_location_id=source_location_id, context=context)
self._make_production_line_procurement(cr, uid, line, shipment_move_id, context=context)
- wf_service.trg_validate(uid, 'stock.picking', shipment_id, 'button_confirm', cr)
+ self.pool.get('stock.picking').signal_button_confirm(cr, uid, [shipment_id])
production.write({'state':'confirmed'}, context=context)
return shipment_id
diff --git a/addons/mrp/procurement.py b/addons/mrp/procurement.py
index 8162c3178dc..1f94f0034ad 100644
--- a/addons/mrp/procurement.py
+++ b/addons/mrp/procurement.py
@@ -24,7 +24,6 @@ from dateutil.relativedelta import relativedelta
from openerp.osv import fields
from openerp.osv import osv
from openerp.tools.translate import _
-from openerp import netsvc
class procurement_order(osv.osv):
_inherit = 'procurement.order'
@@ -87,7 +86,6 @@ class procurement_order(osv.osv):
company = self.pool.get('res.users').browse(cr, uid, uid, context).company_id
production_obj = self.pool.get('mrp.production')
move_obj = self.pool.get('stock.move')
- wf_service = netsvc.LocalService("workflow")
procurement_obj = self.pool.get('procurement.order')
for procurement in procurement_obj.browse(cr, uid, ids, context=context):
res_id = procurement.move_id.id
@@ -112,7 +110,7 @@ class procurement_order(osv.osv):
self.write(cr, uid, [procurement.id], {'state': 'running', 'production_id': produce_id})
bom_result = production_obj.action_compute(cr, uid,
[produce_id], properties=[x.id for x in procurement.property_ids])
- wf_service.trg_validate(uid, 'mrp.production', produce_id, 'button_confirm', cr)
+ production_obj.signal_button_confirm(cr, uid, [produce_id])
if res_id:
move_obj.write(cr, uid, [res_id],
{'location_id': procurement.location_id.id})
diff --git a/addons/mrp/stock.py b/addons/mrp/stock.py
index ae7edf54750..1ff121c78bd 100644
--- a/addons/mrp/stock.py
+++ b/addons/mrp/stock.py
@@ -21,7 +21,6 @@
from openerp.osv import fields
from openerp.osv import osv
-from openerp import netsvc
class StockMove(osv.osv):
@@ -45,7 +44,6 @@ class StockMove(osv.osv):
move_obj = self.pool.get('stock.move')
procurement_obj = self.pool.get('procurement.order')
product_obj = self.pool.get('product.product')
- wf_service = netsvc.LocalService("workflow")
processed_ids = [move.id]
if move.product_id.supply_method == 'produce' and move.product_id.procure_method == 'make_to_order':
bis = bom_obj.search(cr, uid, [
@@ -90,16 +88,17 @@ class StockMove(osv.osv):
'procure_method': prodobj.procure_method,
'move_id': mid,
})
- wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
+ procurement_obj.signal_button_confirm(cr, uid, [proc_id])
+
move_obj.write(cr, uid, [move.id], {
'location_dest_id': move.location_id.id, # dummy move for the kit
'auto_validate': True,
'picking_id': False,
'state': 'confirmed'
})
- for m in procurement_obj.search(cr, uid, [('move_id','=',move.id)], context):
- wf_service.trg_validate(uid, 'procurement.order', m, 'button_confirm', cr)
- wf_service.trg_validate(uid, 'procurement.order', m, 'button_wait_done', cr)
+ procurement_ids = procurement_obj.search(cr, uid, [('move_id','=',move.id)], context)
+ procurement_obj.signal_button_confirm(cr, uid, procurement_ids)
+ procurement_obj.signal_button_wait_done(cr, uid, procurement_ids)
return processed_ids
def action_consume(self, cr, uid, ids, product_qty, location_id=False, context=None):
@@ -110,7 +109,6 @@ class StockMove(osv.osv):
"""
res = []
production_obj = self.pool.get('mrp.production')
- wf_service = netsvc.LocalService("workflow")
for move in self.browse(cr, uid, ids):
move.action_confirm(context)
new_moves = super(StockMove, self).action_consume(cr, uid, [move.id], product_qty, location_id, context=context)
@@ -118,7 +116,7 @@ class StockMove(osv.osv):
for prod in production_obj.browse(cr, uid, production_ids, context=context):
if prod.state == 'confirmed':
production_obj.force_production(cr, uid, [prod.id])
- wf_service.trg_validate(uid, 'mrp.production', prod.id, 'button_produce', cr)
+ production_obj.signal_button_produce(cr, uid, production_ids)
for new_move in new_moves:
if new_move == move.id:
#This move is already there in move lines of production order
@@ -135,14 +133,13 @@ class StockMove(osv.osv):
"""
res = []
production_obj = self.pool.get('mrp.production')
- wf_service = netsvc.LocalService("workflow")
for move in self.browse(cr, uid, ids, context=context):
new_moves = super(StockMove, self).action_scrap(cr, uid, [move.id], product_qty, location_id, context=context)
#If we are not scrapping our whole move, tracking and lot references must not be removed
#self.write(cr, uid, [move.id], {'prodlot_id': False, 'tracking_id': False})
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
for prod_id in production_ids:
- wf_service.trg_validate(uid, 'mrp.production', prod_id, 'button_produce', cr)
+ production_obj.signal_button_produce(cr, uid, [prod_id])
for new_move in new_moves:
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
res.append(new_move)
diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py
index 1ce60946f6c..cce27d3a6c2 100644
--- a/addons/mrp_operations/mrp_operations.py
+++ b/addons/mrp_operations/mrp_operations.py
@@ -118,16 +118,15 @@ class mrp_production_workcenter_line(osv.osv):
@param action: Action to perform.
@return: Nothing
"""
- wf_service = netsvc.LocalService("workflow")
prod_obj_pool = self.pool.get('mrp.production')
oper_obj = self.browse(cr, uid, ids)[0]
prod_obj = oper_obj.production_id
if action == 'start':
if prod_obj.state =='confirmed':
prod_obj_pool.force_production(cr, uid, [prod_obj.id])
- wf_service.trg_validate(uid, 'mrp.production', prod_obj.id, 'button_produce', cr)
+ prod_obj_pool.signal_button_produce(cr, uid, [prod_obj.id])
elif prod_obj.state =='ready':
- wf_service.trg_validate(uid, 'mrp.production', prod_obj.id, 'button_produce', cr)
+ prod_obj_pool.signal_button_produce(cr, uid, [prod_obj.id])
elif prod_obj.state =='in_production':
return
else:
@@ -143,7 +142,7 @@ class mrp_production_workcenter_line(osv.osv):
for production in prod_obj_pool.browse(cr, uid, [prod_obj.id], context= None):
if production.move_lines or production.move_created_ids:
prod_obj_pool.action_produce(cr,uid, production.id, production.product_qty, 'consume_produce', context = None)
- wf_service.trg_validate(uid, 'mrp.production', oper_obj.production_id.id, 'button_produce_done', cr)
+ prod_obj_pool.signal_button_produce_done(cr, uid, [oper_obj.production_id.id])
return
def write(self, cr, uid, ids, vals, context=None, update=True):
@@ -228,23 +227,21 @@ class mrp_production(osv.osv):
@return: Super method
"""
obj = self.browse(cr, uid, ids)[0]
- wf_service = netsvc.LocalService("workflow")
+ workcenter_pool = self.pool.get('mrp.production.workcenter.line')
for workcenter_line in obj.workcenter_lines:
if workcenter_line.state == 'draft':
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_start_working', cr)
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_done', cr)
+ workcenter_pool.signal_button_start_working(cr, uid, [workcenter_line.id])
+ workcenter_pool.signal_button_done(cr, uid, [workcenter_line.id])
return super(mrp_production,self).action_production_end(cr, uid, ids)
def action_in_production(self, cr, uid, ids):
""" Changes state to In Production and writes starting date.
@return: True
"""
- obj = self.browse(cr, uid, ids)[0]
workcenter_pool = self.pool.get('mrp.production.workcenter.line')
- wf_service = netsvc.LocalService("workflow")
for prod in self.browse(cr, uid, ids):
if prod.workcenter_lines:
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', prod.workcenter_lines[0].id, 'button_start_working', cr)
+ workcenter_pool.signal_button_start_working(cr, uid, [prod.workcenter_lines[0].id])
return super(mrp_production,self).action_in_production(cr, uid, ids)
def action_cancel(self, cr, uid, ids, context=None):
@@ -252,9 +249,8 @@ class mrp_production(osv.osv):
@return: Super method
"""
obj = self.browse(cr, uid, ids,context=context)[0]
- wf_service = netsvc.LocalService("workflow")
for workcenter_line in obj.workcenter_lines:
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_cancel', cr)
+ workcenter_pool.signal_button_cancel(cr, uid, [workcenter_line.id])
return super(mrp_production,self).action_cancel(cr,uid,ids,context=context)
def _compute_planned_workcenter(self, cr, uid, ids, context=None, mini=False):
@@ -503,35 +499,34 @@ class mrp_operations_operation(osv.osv):
return super(mrp_operations_operation, self).write(cr, uid, ids, vals, context=context)
def create(self, cr, uid, vals, context=None):
- wf_service = netsvc.LocalService('workflow')
+ workcenter_pool = self.pool.get('mrp.production.workcenter.line')
code_ids=self.pool.get('mrp_operations.operation.code').search(cr,uid,[('id','=',vals['code_id'])])
code=self.pool.get('mrp_operations.operation.code').browse(cr, uid, code_ids, context=context)[0]
- wc_op_id=self.pool.get('mrp.production.workcenter.line').search(cr,uid,[('workcenter_id','=',vals['workcenter_id']),('production_id','=',vals['production_id'])])
+ wc_op_id=workcenter_pool.search(cr,uid,[('workcenter_id','=',vals['workcenter_id']),('production_id','=',vals['production_id'])])
if code.start_stop in ('start','done','pause','cancel','resume'):
if not wc_op_id:
production_obj=self.pool.get('mrp.production').browse(cr, uid, vals['production_id'], context=context)
- wc_op_id.append(self.pool.get('mrp.production.workcenter.line').create(cr,uid,{'production_id':vals['production_id'],'name':production_obj.product_id.name,'workcenter_id':vals['workcenter_id']}))
+ wc_op_id.append(workcenter_pool.create(cr,uid,{'production_id':vals['production_id'],'name':production_obj.product_id.name,'workcenter_id':vals['workcenter_id']}))
if code.start_stop=='start':
- self.pool.get('mrp.production.workcenter.line').action_start_working(cr,uid,wc_op_id)
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_start_working', cr)
-
+ workcenter_pool.action_start_working(cr,uid,wc_op_id)
+ workcenter_pool.signal_button_start_working(cr, uid, [wc_op_id[0]])
if code.start_stop=='done':
- self.pool.get('mrp.production.workcenter.line').action_done(cr,uid,wc_op_id)
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_done', cr)
+ workcenter_pool.action_done(cr,uid,wc_op_id)
+ workcenter_pool.signal_button_done(cr, uid, [wc_op_id[0]])
self.pool.get('mrp.production').write(cr,uid,vals['production_id'],{'date_finished':datetime.now().strftime('%Y-%m-%d %H:%M:%S')})
if code.start_stop=='pause':
- self.pool.get('mrp.production.workcenter.line').action_pause(cr,uid,wc_op_id)
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_pause', cr)
+ workcenter_pool.action_pause(cr,uid,wc_op_id)
+ workcenter_pool.signal_button_pause(cr, uid, [wc_op_id[0]])
if code.start_stop=='resume':
- self.pool.get('mrp.production.workcenter.line').action_resume(cr,uid,wc_op_id)
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_resume', cr)
+ workcenter_pool.action_resume(cr,uid,wc_op_id)
+ workcenter_pool.signal_button_resume(cr, uid, [wc_op_id[0]])
if code.start_stop=='cancel':
- self.pool.get('mrp.production.workcenter.line').action_cancel(cr,uid,wc_op_id)
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_cancel', cr)
+ workcenter_pool.action_cancel(cr,uid,wc_op_id)
+ workcenter_pool.signal_button_cancel(cr, uid, [wc_op_id[0]])
if not self.check_operation(cr, uid, vals):
return
@@ -549,10 +544,9 @@ class mrp_operations_operation(osv.osv):
return super(mrp_operations_operation, self).create(cr, uid, vals, context=context)
def initialize_workflow_instance(self, cr, uid, context=None):
- wf_service = netsvc.LocalService("workflow")
- line_ids = self.pool.get('mrp.production.workcenter.line').search(cr, uid, [], context=context)
- for line_id in line_ids:
- wf_service.trg_create(uid, 'mrp.production.workcenter.line', line_id, cr)
+ mrp_production_workcenter_line = self.pool.get('mrp.production.workcenter.line')
+ line_ids = mrp_production_workcenter_line.search(cr, uid, [], context=context)
+ mrp_production_workcenter_line.create_workflow(cr, uid, line_ids)
return True
_columns={
diff --git a/addons/mrp_operations/test/workcenter_operations.yml b/addons/mrp_operations/test/workcenter_operations.yml
index 795e3998459..4754bb463ff 100644
--- a/addons/mrp_operations/test/workcenter_operations.yml
+++ b/addons/mrp_operations/test/workcenter_operations.yml
@@ -39,62 +39,48 @@
Production start on first work center, so I start work operation on first work center.
-
!python {model: mrp.production}: |
- from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
+ self.pool.get('mrp.production.workcenter.line').signal_button_start_working(cr, uid, [order.workcenter_lines[0].id])
-
Now I pause first work operation due to technical fault of work center.
-
!python {model: mrp.production}: |
- from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_pause', cr)
+ self.pool.get('mrp.production.workcenter.line').signal_button_pause(cr, uid, [order.workcenter_lines[0].id])
-
I resume first work operation.
-
!python {model: mrp.production}: |
- from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_resume', cr)
+ self.pool.get('mrp.production.workcenter.line').signal_button_resume(cr, uid, [order.workcenter_lines[0].id])
-
I cancel first work operation.
-
!python {model: mrp.production}: |
- from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_cancel', cr)
+ self.pool.get('mrp.production.workcenter.line').signal_button_cancel(cr, uid, [order.workcenter_lines[0].id])
-
I reset first work operation and start after resolving techninal fault of work center.
-
!python {model: mrp.production}: |
- from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_draft', cr)
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
+ self.pool.get('mrp.production.workcenter.line').signal_button_draft(cr, uid, [order.workcenter_lines[0].id])
+ self.pool.get('mrp.production.workcenter.line').signal_button_start_working(cr, uid, [order.workcenter_lines[0].id])
-
I close first work operation as this work center completed its process.
-
!python {model: mrp.production}: |
- from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_done', cr)
+ self.pool.get('mrp.production.workcenter.line').signal_button_done(cr, uid, [order.workcenter_lines[0].id])
-
Now I close other operations one by one which are in start state.
-
!python {model: mrp.production}: |
- from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
- wf_service = netsvc.LocalService("workflow")
for work_line in order.workcenter_lines[1:]:
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', work_line.id, 'button_start_working', cr)
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', work_line.id, 'button_done', cr)
+ self.pool.get('mrp.production.workcenter.line').signal_button_start_working(cr, uid, [work_line.id])
+ self.pool.get('mrp.production.workcenter.line').signal_button_done(cr, uid, [work_line.id])
-
I check that the production order is now done.
@@ -106,8 +92,7 @@
I print a Barcode Report of Operation line.
-
!python {model: mrp_operations.operation.code}: |
- import os
- from openerp import netsvc, tools
+ import netsvc, tools, os
(data, format) = netsvc.LocalService('report.mrp.code.barcode').create(cr, uid, [ref('mrp_operations.mrp_op_1'),ref('mrp_operations.mrp_op_2'),ref('mrp_operations.mrp_op_3'),ref('mrp_operations.mrp_op_4'),ref('mrp_operations.mrp_op_5')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-barcode_report.'+format), 'wb+').write(data)
@@ -116,8 +101,7 @@
I print Workcenter's Barcode Report.
-
!python {model: mrp.workcenter}: |
- import os
- from openerp import netsvc, tools
+ import netsvc, tools, os
(data, format) = netsvc.LocalService('report.mrp.wc.barcode').create(cr, uid, [ref('mrp.mrp_workcenter_0'),ref('mrp.mrp_workcenter_1')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-workcenter_barcode_report.'+format), 'wb+').write(data)
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index 8c43158a876..6c3f0ce21e1 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -20,7 +20,6 @@
##############################################################################
from openerp.osv import fields,osv
-from openerp import netsvc
from datetime import datetime
from dateutil.relativedelta import relativedelta
from openerp.tools.translate import _
@@ -314,9 +313,7 @@ class mrp_repair(osv.osv):
for repair in self.browse(cr, uid, ids):
mrp_line_obj.write(cr, uid, [l.id for l in repair.operations], {'state': 'draft'})
self.write(cr, uid, ids, {'state':'draft'})
- wf_service = netsvc.LocalService("workflow")
- for id in ids:
- wf_service.trg_create(uid, 'mrp.repair', id, cr)
+ self.create_workflow(cr, uid, ids)
return True
def action_confirm(self, cr, uid, ids, *args):
@@ -505,7 +502,6 @@ class mrp_repair(osv.osv):
"""
res = {}
move_obj = self.pool.get('stock.move')
- wf_service = netsvc.LocalService("workflow")
repair_line_obj = self.pool.get('mrp.repair.line')
seq_obj = self.pool.get('ir.sequence')
pick_obj = self.pool.get('stock.picking')
@@ -548,7 +544,7 @@ class mrp_repair(osv.osv):
'tracking_id': False,
'state': 'assigned',
})
- wf_service.trg_validate(uid, 'stock.picking', picking, 'button_confirm', cr)
+ pick_obj.signal_button_confirm(cr, uid, [picking])
self.write(cr, uid, [repair.id], {'state': 'done', 'picking_id': picking})
res[repair.id] = picking
else:
diff --git a/addons/mrp_repair/wizard/make_invoice.py b/addons/mrp_repair/wizard/make_invoice.py
index a6e93aca064..9442746d68e 100644
--- a/addons/mrp_repair/wizard/make_invoice.py
+++ b/addons/mrp_repair/wizard/make_invoice.py
@@ -19,7 +19,6 @@
#
##############################################################################
-from openerp import netsvc
from openerp.osv import fields, osv
class make_invoice(osv.osv_memory):
@@ -50,9 +49,7 @@ class make_invoice(osv.osv_memory):
# We have to trigger the workflow of the given repairs, otherwise they remain 'to be invoiced'.
# Note that the signal 'action_invoice_create' will trigger another call to the method 'action_invoice_create',
# but that second call will not do anything, since the repairs are already invoiced.
- wf_service = netsvc.LocalService("workflow")
- for repair_id in context['active_ids']:
- wf_service.trg_validate(uid, 'mrp.repair', repair_id, 'action_invoice_create', cr)
+ order_obj.signal_action_invoice_create(cr, uid, context['active_ids'])
form_res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_form')
form_id = form_res and form_res[1] or False
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 8e47d83aa24..ea7460dae21 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -27,7 +27,7 @@ import pdb
import time
import openerp
-from openerp import netsvc, tools
+from openerp import tools
from openerp.osv import fields, osv
from openerp.tools.translate import _
@@ -364,7 +364,7 @@ class pos_session(osv.osv):
ids = [ids]
this_record = self.browse(cr, uid, ids[0], context=context)
- this_record._workflow_signal('open')
+ this_record.signal_workflow('open')
context.update(active_id=this_record.id)
@@ -442,14 +442,14 @@ class pos_session(osv.osv):
}
def _confirm_orders(self, cr, uid, ids, context=None):
- wf_service = netsvc.LocalService("workflow")
-
+ account_move_obj = self.pool.get('account.move')
+ pos_order_obj = self.pool.get('pos.order')
for session in self.browse(cr, uid, ids, context=context):
order_ids = [order.id for order in session.order_ids if order.state == 'paid']
- move_id = self.pool.get('account.move').create(cr, uid, {'ref' : session.name, 'journal_id' : session.config_id.journal_id.id, }, context=context)
+ move_id = account_move_obj.create(cr, uid, {'ref' : session.name, 'journal_id' : session.config_id.journal_id.id, }, context=context)
- self.pool.get('pos.order')._create_account_move_line(cr, uid, order_ids, session, move_id, context=context)
+ pos_order_obj._create_account_move_line(cr, uid, order_ids, session, move_id, context=context)
for order in session.order_ids:
if order.state not in ('paid', 'invoiced'):
@@ -457,7 +457,7 @@ class pos_session(osv.osv):
_('Error!'),
_("You cannot confirm all orders of this session, because they have not the 'paid' status"))
else:
- wf_service.trg_validate(uid, 'pos.order', order.id, 'done', cr)
+ pos_order_obj.signal_done(cr, uid, [order.id])
return True
@@ -519,8 +519,7 @@ class pos_order(osv.osv):
'journal': cash_journal.id,
}, context=context)
order_ids.append(order_id)
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'pos.order', order_id, 'paid', cr)
+ self.signal_paid(cr, uid, [order_id])
return order_ids
def unlink(self, cr, uid, ids, context=None):
@@ -695,9 +694,8 @@ class pos_order(osv.osv):
}, context=context)
if line.qty < 0:
location_id, output_id = output_id, location_id
-
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
+
+ picking_obj.signal_button_confirm(cr, uid, [picking_id])
picking_obj.force_assign(cr, uid, [picking_id], context)
return True
@@ -707,7 +705,7 @@ class pos_order(osv.osv):
"""
stock_picking_obj = self.pool.get('stock.picking')
for order in self.browse(cr, uid, ids, context=context):
- wf_service.trg_validate(uid, 'stock.picking', order.picking_id.id, 'button_cancel', cr)
+ stock_picking_obj.signal_button_cancel(cr, uid, [order.picking_id.id])
if stock_picking_obj.browse(cr, uid, order.picking_id.id, context=context).state <> 'cancel':
raise osv.except_osv(_('Error!'), _('Unable to cancel the picking.'))
self.write(cr, uid, ids, {'state': 'cancel'}, context=context)
@@ -803,7 +801,6 @@ class pos_order(osv.osv):
return self.write(cr, uid, ids, {'state':'invoiced'}, context=context)
def action_invoice(self, cr, uid, ids, context=None):
- wf_service = netsvc.LocalService("workflow")
inv_ref = self.pool.get('account.invoice')
inv_line_ref = self.pool.get('account.invoice.line')
product_obj = self.pool.get('product.product')
@@ -856,7 +853,7 @@ class pos_order(osv.osv):
inv_line['invoice_line_tax_id'] = [(6, 0, [x.id for x in line.product_id.taxes_id] )]
inv_line_ref.create(cr, uid, inv_line, context=context)
inv_ref.button_reset_taxes(cr, uid, [inv_id], context=context)
- wf_service.trg_validate(uid, 'pos.order', order.id, 'invoice', cr)
+ self.signal_invoice(cr, uid, [order.id])
if not inv_ids: return {}
diff --git a/addons/point_of_sale/wizard/pos_confirm.py b/addons/point_of_sale/wizard/pos_confirm.py
index 4dec36685f0..f37bdd9f8b8 100644
--- a/addons/point_of_sale/wizard/pos_confirm.py
+++ b/addons/point_of_sale/wizard/pos_confirm.py
@@ -19,7 +19,6 @@
#
##############################################################################
-from openerp import netsvc
from openerp.osv import osv
@@ -28,7 +27,6 @@ class pos_confirm(osv.osv_memory):
_description = 'Post POS Journal Entries'
def action_confirm(self, cr, uid, ids, context=None):
- wf_service = netsvc.LocalService("workflow")
order_obj = self.pool.get('pos.order')
ids = order_obj.search(cr, uid, [('state','=','paid')], context=context)
for order in order_obj.browse(cr, uid, ids, context=context):
@@ -38,7 +36,7 @@ class pos_confirm(osv.osv_memory):
todo = False
break
if todo:
- wf_service.trg_validate(uid, 'pos.order', order.id, 'done', cr)
+ order_obj.signal_done(cr, uid, [order.id])
# Check if there is orders to reconcile their invoices
ids = order_obj.search(cr, uid, [('state','=','invoiced'),('invoice_id.state','=','open')], context=context)
diff --git a/addons/point_of_sale/wizard/pos_payment.py b/addons/point_of_sale/wizard/pos_payment.py
index 0a1684ca9ca..47814761b20 100644
--- a/addons/point_of_sale/wizard/pos_payment.py
+++ b/addons/point_of_sale/wizard/pos_payment.py
@@ -23,7 +23,6 @@ import time
import pos_box_entries
-from openerp import netsvc
from openerp.osv import osv, fields
from openerp.tools.translate import _
@@ -67,8 +66,7 @@ class pos_make_payment(osv.osv_memory):
order_obj.add_payment(cr, uid, active_id, data, context=context)
if order_obj.test_paid(cr, uid, [active_id]):
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'pos.order', active_id, 'paid', cr)
+ order_obj.signal_paid(cr, uid, [active_id])
return {'type' : 'ir.actions.act_window_close' }
##self.print_report(cr, uid, ids, context=context)
diff --git a/addons/point_of_sale/wizard/pos_return.py b/addons/point_of_sale/wizard/pos_return.py
index d6dfdd1e183..b4e0e7b2041 100644
--- a/addons/point_of_sale/wizard/pos_return.py
+++ b/addons/point_of_sale/wizard/pos_return.py
@@ -19,7 +19,6 @@
#
##############################################################################
-from openerp import netsvc
from openerp.osv import osv,fields
from openerp.tools.translate import _
import time
@@ -104,7 +103,6 @@ class pos_return(osv.osv_memory):
property_obj= self.pool.get("ir.property")
uom_obj =self. pool.get('product.uom')
statementl_obj = self.pool.get('account.bank.statement.line')
- wf_service = netsvc.LocalService("workflow")
#Todo :Need to clean the code
if active_id:
data = self.browse(cr, uid, ids, context=context)[0]
@@ -157,7 +155,7 @@ class pos_return(osv.osv_memory):
'amount': -amount,
})
order_obj.write(cr,uid, [active_id,new_order], {'state': 'done'})
- wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
+ picking_obj.signal_button_confirm(cr, uid, [new_picking])
picking_obj.force_assign(cr, uid, [new_picking], context)
act = {
'domain': "[('id', 'in', ["+str(new_order)+"])]",
@@ -200,7 +198,6 @@ class add_product(osv.osv_memory):
date_cur=time.strftime('%Y-%m-%d')
uom_obj = self.pool.get('product.uom')
prod_obj=self.pool.get('product.product')
- wf_service = netsvc.LocalService("workflow")
order_obj.add_product(cr, uid, active_id, data['product_id'], data['quantity'], context=context)
for order_id in order_obj.browse(cr, uid, [active_id], context=context):
@@ -232,7 +229,7 @@ class add_product(osv.osv_memory):
'date':date_cur
})
- wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
+ picking_obj.signal_button_confirm(cr, uid, [new_picking])
picking_obj.force_assign(cr, uid, [new_picking], context)
order_obj.write(cr,uid,active_id,{'picking_id':new_picking})
@@ -265,7 +262,6 @@ class add_product(osv.osv_memory):
if return_id:
data = return_boj.read(cr,uid,return_id,[])[0]
- wf_service = netsvc.LocalService("workflow")
self_data = self.browse(cr, uid, ids, context=context)[0]
order_obj.add_product(cr, uid, active_ids[0], self_data.product_id.id, self_data.quantity, context=context)
@@ -306,7 +302,7 @@ class add_product(osv.osv_memory):
'name':'%s (return)' % order_id.name,
'date':date_cur,
})
- wf_service.trg_validate(uid, 'stock.picking',new_picking,'button_confirm', cr)
+ picking_obj.signal_button_confirm(cr, uid, [new_picking])
picking_obj.force_assign(cr, uid, [new_picking], context)
obj=order_obj.browse(cr,uid, active_ids[0])
context.update({'return':'return'})
diff --git a/addons/point_of_sale/wizard/pos_session_opening.py b/addons/point_of_sale/wizard/pos_session_opening.py
index 1aa4cb702c4..e0135de0cdb 100644
--- a/addons/point_of_sale/wizard/pos_session_opening.py
+++ b/addons/point_of_sale/wizard/pos_session_opening.py
@@ -1,6 +1,5 @@
#!/usr/bin/env python
-from openerp import netsvc
from openerp.osv import osv, fields
from openerp.tools.translate import _
@@ -37,9 +36,8 @@ class pos_session_opening(osv.osv_memory):
}
def open_existing_session_cb_close(self, cr, uid, ids, context=None):
- wf_service = netsvc.LocalService("workflow")
wizard = self.browse(cr, uid, ids[0], context=context)
- wf_service.trg_validate(uid, 'pos.session', wizard.pos_session_id.id, 'cashbox_control', cr)
+ self.pool.get('pos.session').signal_cashbox_control(cr, uid, [wizard.pos_session_id.id])
return self.open_session_cb(cr, uid, ids, context)
def open_session_cb(self, cr, uid, ids, context=None):
diff --git a/addons/portal_crm/i18n/ro.po b/addons/portal_crm/i18n/ro.po
new file mode 100644
index 00000000000..5fa2bfd0036
--- /dev/null
+++ b/addons/portal_crm/i18n/ro.po
@@ -0,0 +1,568 @@
+# Romanian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-02-17 16:28+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Romanian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-02-18 04:49+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Lead"
+msgstr "Pista"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,title:0
+msgid "Title"
+msgstr "Titlu"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,probability:0
+msgid "Success Rate (%)"
+msgstr "Rata de succes (%)"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact us"
+msgstr "Contactati-ne"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action:0
+msgid "Next Action Date"
+msgstr "Data Actiunii Urmatoare"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,fax:0
+msgid "Fax"
+msgstr "Fax"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,zip:0
+msgid "Zip"
+msgstr "Cod postal"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_unread:0
+msgid "Unread Messages"
+msgstr "Mesaje Necitite"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_id:0
+msgid "Company"
+msgstr "Companie"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_open:0
+msgid "Days to Open"
+msgstr "Zile pana la deschidere"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you for your interest, we'll respond to your request shortly."
+msgstr ""
+"va multumim pentru interes, vom da raspuns solicitarii dumneavoastra in "
+"scurt timp."
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Highest"
+msgstr "Cel mai ridicat (cea mai ridicata)"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,mobile:0
+msgid "Mobile"
+msgstr "Mobil"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,description:0
+msgid "Notes"
+msgstr "Note"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages"
+msgstr "Mesaje"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,color:0
+msgid "Color Index"
+msgstr "Index de Culori"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_latitude:0
+msgid "Geo Latitude"
+msgstr "Latitudine Geo"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_name:0
+msgid "Customer Name"
+msgstr "Numele clientului"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Cancelled"
+msgstr "Anulat(a)"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr "Daca este selectat, mesajele noi necesita atentia dumneavoastra."
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,channel_id:0
+msgid "Communication channel (mail, direct, phone, ...)"
+msgstr "Canal de comunicare (e-mail, direct, telefon, ...)"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type_id:0
+msgid "Campaign"
+msgstr "Campanie"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref:0
+msgid "Reference"
+msgstr "Referinta"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_next:0
+#: field:portal_crm.crm_contact_us,title_action:0
+msgid "Next Action"
+msgstr "Urmatoarea actiune"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_summary:0
+msgid ""
+"Holds the Chatter summary (number of messages, ...). This summary is "
+"directly in html format in order to be inserted in kanban views."
+msgstr ""
+"Contine rezumatul Chatter (numar de mesaje, ...). Acest rezumat este direct "
+"in format HTML, cu scopul de a se introduce in vizualizari kanban."
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_id:0
+msgid "Partner"
+msgstr "Partener"
+
+#. module: portal_crm
+#: model:ir.actions.act_window,name:portal_crm.action_contact_us
+msgid "Contact Us"
+msgstr "Contactati-ne"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,name:0
+msgid "Subject"
+msgstr "Subiect"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,opt_out:0
+msgid "Opt-Out"
+msgstr "Nu participati"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,priority:0
+msgid "Priority"
+msgstr "Prioritate"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state_id:0
+msgid "State"
+msgstr "Stare"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_follower_ids:0
+msgid "Followers"
+msgstr "Urmari"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_id:0
+msgid "Linked partner (optional). Usually created when converting the lead."
+msgstr ""
+"Partener asociat (optional). Creat de obicei atunci cand pista este "
+"transformata."
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,payment_mode:0
+msgid "Payment Mode"
+msgstr "Modalitatea de plata"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "New"
+msgstr "Nou(a)"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type:0
+msgid "Type"
+msgstr "Tip"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_from:0
+msgid "Email"
+msgstr "E-mail"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,channel_id:0
+msgid "Channel"
+msgstr "Canal"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Name"
+msgstr "Nume"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Lowest"
+msgstr "Cel mai scazut (cea mai scazuta)"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,create_date:0
+msgid "Creation Date"
+msgstr "Data Crearii"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Close"
+msgstr "Inchide"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Pending"
+msgstr "In asteptare"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type:0
+msgid "Type is used to separate Leads and Opportunities"
+msgstr "Tip folosit pentru a separa Clientii potentiali si Oportunitatile"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,categ_ids:0
+msgid "Categories"
+msgstr "Categorii"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,stage_id:0
+msgid "Stage"
+msgstr "Etapa"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_login:0
+msgid "User Login"
+msgstr "Autentificare Utilizator"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,opt_out:0
+msgid ""
+"If opt-out is checked, this contact has refused to receive emails or "
+"unsubscribed to a campaign."
+msgstr ""
+"Daca este bifata optiunea de neparticipare, acest contact a refuzat sa "
+"primeasca e-mailuri sau s-a dezabonat de la o campanie."
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,contact_name:0
+msgid "Contact Name"
+msgstr "Numele Contactului"
+
+#. module: portal_crm
+#: model:ir.ui.menu,name:portal_crm.portal_company_contact
+msgid "Contact"
+msgstr "Contact"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_email:0
+msgid "Partner Contact Email"
+msgstr "E-mail Contact Partener"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_revenue:0
+msgid "Expected Revenue"
+msgstr "Venituri Estimate"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,task_ids:0
+msgid "Tasks"
+msgstr "Sarcini"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact form"
+msgstr "Formular de contact"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_currency:0
+msgid "Currency"
+msgstr "Moneda"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,write_date:0
+msgid "Update Date"
+msgstr "Data Actualizarii"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_deadline:0
+msgid "Expected Closing"
+msgstr "Inchidere estimata"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref2:0
+msgid "Reference 2"
+msgstr "Referinta 2"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_email:0
+msgid "User Email"
+msgstr "E-mail utilizator"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_open:0
+msgid "Opened"
+msgstr "Deschis(a)"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "In Progress"
+msgstr "In curs de desfasurare"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_name:0
+msgid ""
+"The name of the future partner company that will be created while converting "
+"the lead into opportunity"
+msgstr ""
+"Numele viitorului partener al companiei care va fi creat in timpul "
+"transformarii pistei in oportunitate"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_cost:0
+msgid "Planned Costs"
+msgstr "Costuri planificate"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_deadline:0
+msgid "Estimate of the date on which the opportunity will be won."
+msgstr "Estimarea datei in care oportunitatea va fi castigata."
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,email_cc:0
+msgid ""
+"These email addresses will be added to the CC field of all inbound and "
+"outbound emails for this record before being sent. Separate multiple email "
+"addresses with a comma"
+msgstr ""
+"Aceste adrese de email vor fi adaugate in campul CC al tuturor email-urilor "
+"primite si trimise pentru aceasta inregistrare inainte de a fi trimise. "
+"Despartiti adresele de mail multiple cu o virgula"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Low"
+msgstr "Scazut(a)"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_closed:0
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Closed"
+msgstr "Inchis(a)"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_assign:0
+msgid "Assignation Date"
+msgstr "Data alocarii"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state:0
+msgid "Status"
+msgstr "Status"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Normal"
+msgstr "Normal"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_cc:0
+msgid "Global CC"
+msgstr "CC global"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street2:0
+msgid "Street2"
+msgstr "Strada2"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,phone:0
+msgid "Phone"
+msgstr "Telefon"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_is_follower:0
+msgid "Is a Follower"
+msgstr "Este o persoana interesata"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,active:0
+msgid "Active"
+msgstr "Activ(a)"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_id:0
+msgid "Salesperson"
+msgstr "Agent de vanzari"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_close:0
+msgid "Days to Close"
+msgstr "Zile pana la inchidere"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_ids:0
+msgid "Companies"
+msgstr "Companii"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_summary:0
+msgid "Summary"
+msgstr "Continut"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,section_id:0
+msgid ""
+"When sending mails, the default email address is taken from the sales team."
+msgstr ""
+"Atunci cand trimiteti email-uri, adresa implicita este luata de la echipa de "
+"vanzari."
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_name:0
+msgid "Partner Contact Name"
+msgstr "Numele de Contact al Partenerului"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_longitude:0
+msgid "Geo Longitude"
+msgstr "Geo Longitudine"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_assign:0
+msgid "Last date this case was forwarded/assigned to a partner"
+msgstr ""
+"Ultima data cand acest caz a fost redirectionat/atribuit unui partener"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,email_from:0
+msgid "Email address of the contact"
+msgstr "Adresa de email a contactului"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,city:0
+msgid "City"
+msgstr "Oras"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Submit"
+msgstr "Trimite"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,function:0
+msgid "Function"
+msgstr "Functie"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,referred:0
+msgid "Referred By"
+msgstr "Recomandat de"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Assigned Partner"
+msgstr "Partenerul Alocat"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Opportunity"
+msgstr "Oportunitate"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Partner this case has been forwarded/assigned to."
+msgstr "Partenerul caruia i-a fost redirectionat/atribuit cazul."
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,country_id:0
+msgid "Country"
+msgstr "Tara"
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you"
+msgstr "Va multumim"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,state:0
+msgid ""
+"The Status is set to 'Draft', when a case is created. If the case is in "
+"progress the Status is set to 'Open'. When the case is over, the Status is "
+"set to 'Done'. If the case needs to be reviewed then the Status is set to "
+"'Pending'."
+msgstr ""
+"Starea este setata pe 'Ciorna' atunci cand este creat un caz. Atunci cand "
+"cazul este in desfasurare, Starea este setata pe 'Deschis'. Cand cazul este "
+"finalizat, Starea este setata pe 'Efectuat'. Cand cazul trebuie revazut, "
+"atunci Starea este setata pe 'In asteptare'."
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages and communication history"
+msgstr "Istoric mesaje si conversatii"
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type_id:0
+msgid ""
+"From which campaign (seminar, marketing campaign, mass mailing, ...) did "
+"this contact come from?"
+msgstr ""
+"Din ce campanie (seminar, campanie de marketing, trimitere de e-mail-uri in "
+"masa,...) provine acest contact?"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "High"
+msgstr "Ridicat(a)"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,section_id:0
+msgid "Sales Team"
+msgstr "Echipa de vanzari"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street:0
+msgid "Street"
+msgstr "Strada"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_last:0
+msgid "Last Action"
+msgstr "Ultima Actiune"
+
+#. module: portal_crm
+#: model:ir.model,name:portal_crm.model_portal_crm_crm_contact_us
+msgid "Contact form for the portal"
+msgstr "Formular de contact pentru portal"
diff --git a/addons/portal_sale/i18n/mn.po b/addons/portal_sale/i18n/mn.po
new file mode 100644
index 00000000000..7306fd1e385
--- /dev/null
+++ b/addons/portal_sale/i18n/mn.po
@@ -0,0 +1,344 @@
+# Mongolian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-02-18 08:59+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Mongolian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-02-19 04:57+0000\n"
+"X-Generator: Launchpad (build 16491)\n"
+
+#. module: portal_sale
+#: model:ir.model,name:portal_sale.model_account_config_settings
+msgid "account.config.settings"
+msgstr ""
+
+#. module: portal_sale
+#: model:ir.actions.act_window,help:portal_sale.portal_action_invoices
+msgid "We haven't sent you any invoice."
+msgstr ""
+
+#. module: portal_sale
+#: model:email.template,report_name:portal_sale.email_template_edi_sale
+msgid ""
+"${(object.name or '').replace('/','_')}_${object.state == 'draft' and "
+"'draft' or ''}"
+msgstr ""
+
+#. module: portal_sale
+#: model:res.groups,name:portal_sale.group_payment_options
+msgid "View Online Payment Options"
+msgstr ""
+
+#. module: portal_sale
+#: field:account.config.settings,group_payment_options:0
+msgid "Show payment buttons to employees too"
+msgstr ""
+
+#. module: portal_sale
+#: model:email.template,subject:portal_sale.email_template_edi_sale
+msgid ""
+"${object.company_id.name} ${object.state in ('draft', 'sent') and "
+"'Quotation' or 'Order'} (Ref ${object.name or 'n/a' })"
+msgstr ""
+
+#. module: portal_sale
+#: model:ir.actions.act_window,help:portal_sale.action_quotations_portal
+msgid "We haven't sent you any quotation."
+msgstr ""
+
+#. module: portal_sale
+#: model:ir.ui.menu,name:portal_sale.portal_sales_orders
+msgid "Sales Orders"
+msgstr "Борлуулалтын захиалгууд"
+
+#. module: portal_sale
+#: model:res.groups,comment:portal_sale.group_payment_options
+msgid ""
+"Members of this group see the online payment options\n"
+"on Sale Orders and Customer Invoices. These options are meant for customers "
+"who are accessing\n"
+"their documents through the portal."
+msgstr ""
+
+#. module: portal_sale
+#: model:email.template,body_html:portal_sale.email_template_edi_sale
+msgid ""
+"\n"
+"
\n"
+"\n"
+"
Hello ${object.partner_id.name},
\n"
+" \n"
+"
Here is your ${object.state in ('draft', 'sent') and 'quotation' or "
+"'order confirmation'} from ${object.company_id.name}:
\n"
+"\n"
+"
\n"
+" REFERENCES \n"
+" Order number: ${object.name} \n"
+" Order total: ${object.amount_total} "
+"${object.pricelist_id.currency_id.name} \n"
+" Order date: ${object.date_order} \n"
+" % if object.origin:\n"
+" Order reference: ${object.origin} \n"
+" % endif\n"
+" % if object.client_order_ref:\n"
+" Your reference: ${object.client_order_ref} \n"
+" % endif\n"
+" % if object.user_id:\n"
+" Your contact: ${object.user_id.name}\n"
+" % endif\n"
+"
\n"
+"\n"
+" <% set signup_url = object.get_signup_url() %>\n"
+" % if signup_url:\n"
+"
\n"
+" You can access this document and pay online via our Customer Portal:\n"
+"