From ce83a79d212d6da81587cbcb672e8b1607e852b9 Mon Sep 17 00:00:00 2001 From: "Rucha (Open ERP)" Date: Mon, 4 Apr 2011 18:16:01 +0530 Subject: [PATCH 01/64] [FIX]: product, procurement: Removed inconsistency in security rules lp bug: https://launchpad.net/bugs/748927 fixed bzr revid: rpa@tinyerp.com-20110404124601-3arpj6rlnxrt00i4 --- addons/procurement/security/procurement_security.xml | 4 ++-- addons/product/security/product_security.xml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/procurement/security/procurement_security.xml b/addons/procurement/security/procurement_security.xml index 2e250db461c..b6b15d565c6 100644 --- a/addons/procurement/security/procurement_security.xml +++ b/addons/procurement/security/procurement_security.xml @@ -6,14 +6,14 @@ procurement multi-company - ['|','|',('company_id','child_of',[user.company_id.id]),('company_id','=',False),('company_id.child_ids','child_of',[user.company_id.id])] + ['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)] stock_warehouse.orderpoint multi-company - ['|','|',('company_id','child_of',[user.company_id.id]),('company_id','=',False),('company_id.child_ids','child_of',[user.company_id.id])] + ['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)] diff --git a/addons/product/security/product_security.xml b/addons/product/security/product_security.xml index 32960423cc5..a201d7d2847 100644 --- a/addons/product/security/product_security.xml +++ b/addons/product/security/product_security.xml @@ -28,21 +28,21 @@ product pricelist company rule - ['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] product pricelist item company rule - ['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] product pricelist version company rule - ['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])] + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] From 1874ca53b8ca95f55ff1a3a57472adc87ade3960 Mon Sep 17 00:00:00 2001 From: "pso (OpenERP)" Date: Thu, 14 Apr 2011 11:12:10 +0530 Subject: [PATCH 02/64] [FIX] account: Fixed wrong computation of amount currency in analytic line lp bug: https://launchpad.net/bugs/717198 fixed bzr revid: pso@tinyerp.com-20110414054210-67don64hp8ajcv8v --- addons/account/account_analytic_line.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/addons/account/account_analytic_line.py b/addons/account/account_analytic_line.py index a93dc70b2fb..f41e0c707c8 100644 --- a/addons/account/account_analytic_line.py +++ b/addons/account/account_analytic_line.py @@ -28,6 +28,20 @@ from tools.translate import _ class account_analytic_line(osv.osv): _inherit = 'account.analytic.line' _description = 'Analytic Line' + + def _get_amount(self, cr, uid, ids, name, args, context=None): + res = {} + if not ids: + return res + for id in ids: + res.setdefault(id, 0.0) + for line in self.browse(cr, uid, ids, context=context): + from_currency_id = line.company_id.currency_id.id + to_currency_id = line.currency_id.id + from_amount = line.amount + res[line.id] = self.pool.get('res.currency').compute(cr, uid, from_currency_id, to_currency_id, from_amount, round=True, context=context) + return res + _columns = { 'product_uom_id': fields.many2one('product.uom', 'UoM'), 'product_id': fields.many2one('product.product', 'Product'), @@ -37,7 +51,7 @@ class account_analytic_line(osv.osv): 'code': fields.char('Code', size=8), 'ref': fields.char('Ref.', size=64), 'currency_id': fields.related('move_id', 'currency_id', type='many2one', relation='res.currency', string='Account currency', store=True, help="The related account currency if not equal to the company one.", readonly=True), - 'amount_currency': fields.related('move_id', 'amount_currency', type='float', string='Amount currency', store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True), + 'amount_currency': fields.function(_get_amount, string="Amount Currency", type="float", method=True, store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True), } _defaults = { From 9d96add953aefddf10a7d0ed4be312e2fc935d26 Mon Sep 17 00:00:00 2001 From: "pso (OpenERP)" Date: Thu, 14 Apr 2011 12:06:06 +0530 Subject: [PATCH 03/64] [IMP] account, account_analytic_plans: Moved amount currency function from account to analytic plans bzr revid: pso@tinyerp.com-20110414063606-4ssc3esyxdn1s22w --- addons/account/account_analytic_line.py | 15 +----------- .../account_analytic_plans.py | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/addons/account/account_analytic_line.py b/addons/account/account_analytic_line.py index f41e0c707c8..c43391f85dc 100644 --- a/addons/account/account_analytic_line.py +++ b/addons/account/account_analytic_line.py @@ -29,19 +29,6 @@ class account_analytic_line(osv.osv): _inherit = 'account.analytic.line' _description = 'Analytic Line' - def _get_amount(self, cr, uid, ids, name, args, context=None): - res = {} - if not ids: - return res - for id in ids: - res.setdefault(id, 0.0) - for line in self.browse(cr, uid, ids, context=context): - from_currency_id = line.company_id.currency_id.id - to_currency_id = line.currency_id.id - from_amount = line.amount - res[line.id] = self.pool.get('res.currency').compute(cr, uid, from_currency_id, to_currency_id, from_amount, round=True, context=context) - return res - _columns = { 'product_uom_id': fields.many2one('product.uom', 'UoM'), 'product_id': fields.many2one('product.product', 'Product'), @@ -51,7 +38,7 @@ class account_analytic_line(osv.osv): 'code': fields.char('Code', size=8), 'ref': fields.char('Ref.', size=64), 'currency_id': fields.related('move_id', 'currency_id', type='many2one', relation='res.currency', string='Account currency', store=True, help="The related account currency if not equal to the company one.", readonly=True), - 'amount_currency': fields.function(_get_amount, string="Amount Currency", type="float", method=True, store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True), + 'amount_currency': fields.related('move_id', 'amount_currency', type='float', string='Amount currency', store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True), } _defaults = { diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index b25f6994394..14fce624c7f 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -47,6 +47,29 @@ class one2many_mod2(fields.one2many): res[r[self._fields_id]].append( r['id'] ) return res +class account_analytic_line(osv.osv): + _inherit = 'account.analytic.line' + _description = 'Analytic Line' + + def _get_amount(self, cr, uid, ids, name, args, context=None): + res = {} + if not ids: + return res + for id in ids: + res.setdefault(id, 0.0) + for line in self.browse(cr, uid, ids, context=context): + from_currency_id = line.company_id.currency_id.id + to_currency_id = line.currency_id.id + from_amount = line.amount + res[line.id] = self.pool.get('res.currency').compute(cr, uid, from_currency_id, to_currency_id, from_amount, round=True, context=context) + return res + + _columns = { + 'amount_currency': fields.function(_get_amount, string="Amount Currency", type="float", method=True, store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True), + } + +account_analytic_line() + class account_analytic_plan(osv.osv): _name = "account.analytic.plan" _description = "Analytic Plan" From 11644bde680b5ee991c3f50a50631ed8c8e05808 Mon Sep 17 00:00:00 2001 From: "pso (OpenERP)" Date: Fri, 15 Apr 2011 11:30:50 +0530 Subject: [PATCH 04/64] [IMP] account, account_analytic_plans: Improvements in amount currency func and removed extra spaces bzr revid: pso@tinyerp.com-20110415060050-mzt5k94o63y8n43r --- addons/account/account_analytic_line.py | 1 - addons/account_analytic_plans/account_analytic_plans.py | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/account/account_analytic_line.py b/addons/account/account_analytic_line.py index c43391f85dc..a93dc70b2fb 100644 --- a/addons/account/account_analytic_line.py +++ b/addons/account/account_analytic_line.py @@ -28,7 +28,6 @@ from tools.translate import _ class account_analytic_line(osv.osv): _inherit = 'account.analytic.line' _description = 'Analytic Line' - _columns = { 'product_uom_id': fields.many2one('product.uom', 'UoM'), 'product_id': fields.many2one('product.product', 'Product'), diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index 14fce624c7f..307c1214ec7 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -57,11 +57,12 @@ class account_analytic_line(osv.osv): return res for id in ids: res.setdefault(id, 0.0) + currency_obj = self.pool.get('res.currency') for line in self.browse(cr, uid, ids, context=context): from_currency_id = line.company_id.currency_id.id to_currency_id = line.currency_id.id from_amount = line.amount - res[line.id] = self.pool.get('res.currency').compute(cr, uid, from_currency_id, to_currency_id, from_amount, round=True, context=context) + res[line.id] = currency_obj.compute(cr, uid, from_currency_id, to_currency_id, from_amount, round=True, context=context) return res _columns = { From a864885c72033d971d56548477527acaf10ca22d Mon Sep 17 00:00:00 2001 From: "pso (OpenERP)" Date: Fri, 15 Apr 2011 11:47:54 +0530 Subject: [PATCH 05/64] [IMP] account_analytic_plans: Declared object at the starting of fucntion bzr revid: pso@tinyerp.com-20110415061754-5kkpc3de6tt2cizj --- addons/account_analytic_plans/account_analytic_plans.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index 307c1214ec7..3285e1c1562 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -53,11 +53,11 @@ class account_analytic_line(osv.osv): def _get_amount(self, cr, uid, ids, name, args, context=None): res = {} + currency_obj = self.pool.get('res.currency') if not ids: return res for id in ids: res.setdefault(id, 0.0) - currency_obj = self.pool.get('res.currency') for line in self.browse(cr, uid, ids, context=context): from_currency_id = line.company_id.currency_id.id to_currency_id = line.currency_id.id From a13827eb221bbe04d76fd23fb0fe66987be1fe20 Mon Sep 17 00:00:00 2001 From: moylop260 Date: Wed, 20 Apr 2011 15:05:54 +0300 Subject: [PATCH 06/64] base_vat: Fix wrong validation for MX [Bug 749958] I tested the last patch https://launchpadlibrarian.net/68224790/base_vat.py.withregexp.patch With 242,665 Mexican valids RFC (cherry picked from commit 7ecb9aebfef4f2f131df4cd76372c455c06a8762) bzr revid: p_christ@hol.gr-20110420120554-itxrqntpgc05hksw --- addons/base_vat/base_vat.py | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/addons/base_vat/base_vat.py b/addons/base_vat/base_vat.py index 102619e876d..2fea37ddf0f 100644 --- a/addons/base_vat/base_vat.py +++ b/addons/base_vat/base_vat.py @@ -39,7 +39,7 @@ _ref_vat = { 'pt': 'PT123456789', 'ro': 'RO1234567897', 'se': 'SE123456789701', 'si': 'SI12345679', 'sk': 'SK0012345675', 'el': 'EL12345670', - 'mx': 'MXABC123456T1B' + 'mx': 'MXABCD831230T1B', } @@ -1066,17 +1066,39 @@ class res_partner(osv.osv): return False return True - def check_vat_mx(self, vat): + def check_vat_mx(vat): ''' - Verificar RFC méxico + Verificar RFC México ''' - if not 12 <= len(vat) <= 13: + #[IMP] base_vat: check_vat_mx by moylop260@hotmail.com, tested with 242,665 real RFC's + import time + import re + map_initials = "[A-Z|&]"*4 + map_date = "[0-9][0-9][0-1][1-9][0-3][0-9]" + map_code = "[A-Z|&|0-9]"*3 + mapping = map_initials + map_date + map_code + + vat = vat.upper().replace('ñ', 'Ñ').replace('\xd1', 'Ñ').replace('\xf1', 'Ñ')#upper ascii + vat = vat.replace('Ñ', 'X')#Replace ascii valid char, these is problems with match in regexp + vat = vat.replace(' ', '').replace('-', '')#Replace some char valid, but no required + if len(vat)==12: + vat = "X" + vat#Add a valid char, for pass validation with case with cad of len = 12 + if len(vat) <> 13: return False - elif len(vat)==12 and not vat[:3].isalpha() | vat[3:9].isdigit() | vat[-3:].isalnum(): + regex = re.compile(mapping) + if not regex.match(vat): + #No valid format return False - elif len(vat)==13 and not vat[:4].isalpha() | vat[4:10].isdigit() | vat[-3:].isalnum(): + date_match = re.search(map_date, vat) + date_format = '%y%m%d' + try: + time.strptime(date_match.group(), date_format) + except: + #Valid format, but date wrong return False + #Valid format and valid date return True + res_partner() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 3432fe6d651b569db5dc0c4c88586942fac1ae2e Mon Sep 17 00:00:00 2001 From: "P. Christeas" Date: Wed, 20 Apr 2011 15:06:58 +0300 Subject: [PATCH 07/64] base_vat: cleaner version of Mexico validator bzr revid: p_christ@hol.gr-20110420120658-u5ycapiy20uxx5wn --- addons/base_vat/base_vat.py | 38 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/addons/base_vat/base_vat.py b/addons/base_vat/base_vat.py index 2fea37ddf0f..190541bbcfb 100644 --- a/addons/base_vat/base_vat.py +++ b/addons/base_vat/base_vat.py @@ -23,6 +23,8 @@ import string from osv import osv, fields from tools.translate import _ +import re +import datetime _ref_vat = { 'be': 'BE0477472701', 'at': 'ATU12345675', @@ -1066,36 +1068,26 @@ class res_partner(osv.osv): return False return True + __check_vat_mx_re = re.compile(r"(?P[A-Z&ñÑ]{3,4})" \ + r"[ \-_]?" \ + r"(?P[0-9]{2})(?P[01][1-9])(?P[0-3][0-9])" \ + r"[ \-_]?" \ + r"(?P[A-Z0-9&ñÑ\xd1\xf1]{3})$") + def check_vat_mx(vat): - ''' + ''' Mexican VAT verification + Verificar RFC México ''' - #[IMP] base_vat: check_vat_mx by moylop260@hotmail.com, tested with 242,665 real RFC's - import time - import re - map_initials = "[A-Z|&]"*4 - map_date = "[0-9][0-9][0-1][1-9][0-3][0-9]" - map_code = "[A-Z|&|0-9]"*3 - mapping = map_initials + map_date + map_code - - vat = vat.upper().replace('ñ', 'Ñ').replace('\xd1', 'Ñ').replace('\xf1', 'Ñ')#upper ascii - vat = vat.replace('Ñ', 'X')#Replace ascii valid char, these is problems with match in regexp - vat = vat.replace(' ', '').replace('-', '')#Replace some char valid, but no required - if len(vat)==12: - vat = "X" + vat#Add a valid char, for pass validation with case with cad of len = 12 - if len(vat) <> 13: - return False - regex = re.compile(mapping) - if not regex.match(vat): + m = self.__check_vat_mx_re.match(vat) + if not m: #No valid format return False - date_match = re.search(map_date, vat) - date_format = '%y%m%d' try: - time.strptime(date_match.group(), date_format) - except: - #Valid format, but date wrong + datetime.date(int(m.group('ano')), int(m.group('mes')), int(m.group('dia'))) + except ValueError: return False + #Valid format and valid date return True From ff7d9aa2e92aeb7df498abb0708a8bc374b4dc64 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Wed, 27 Apr 2011 11:30:52 +0530 Subject: [PATCH 08/64] [FIX]product:Fixed-After delete All product category you cannot create new product lp bug: https://launchpad.net/bugs/768430 fixed bzr revid: ron@tinyerp.com-20110427060052-ztqk8tye4unbg3yc --- addons/product/product.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/product/product.py b/addons/product/product.py index bab6b5f5cc1..afd42dfe929 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -315,7 +315,11 @@ class product_template(osv.osv): if 'categ_id' in context and context['categ_id']: return context['categ_id'] md = self.pool.get('ir.model.data') - res = md.get_object_reference(cr, uid, 'product', 'cat0') or False + res = False + try: + res = md.get_object_reference(cr, uid, 'product', 'cat0') + except ValueError: + res = False return res and res[1] or False def onchange_uom(self, cursor, user, ids, uom_id,uom_po_id): From 57f6c78846defec5942f94e4017e3d670439396a Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Wed, 27 Apr 2011 12:03:21 +0530 Subject: [PATCH 09/64] [IMP]product:Improve code =>return res instead of multi-return value bzr revid: ron@tinyerp.com-20110427063321-kep6oyiz5gpfn4c0 --- addons/product/product.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/product/product.py b/addons/product/product.py index afd42dfe929..7277c736f97 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -317,10 +317,10 @@ class product_template(osv.osv): md = self.pool.get('ir.model.data') res = False try: - res = md.get_object_reference(cr, uid, 'product', 'cat0') + res = md.get_object_reference(cr, uid, 'product', 'cat0')[1] except ValueError: res = False - return res and res[1] or False + return res def onchange_uom(self, cursor, user, ids, uom_id,uom_po_id): if uom_id: From 8d984744debb9c538b3d549ea627b82b95086252 Mon Sep 17 00:00:00 2001 From: "P. Christeas" Date: Fri, 29 Apr 2011 11:35:46 +0300 Subject: [PATCH 10/64] base_vat: fix the silly regression that broke check_vat_mx bzr revid: p_christ@hol.gr-20110429083546-vm5t0t1g5bibs8vh --- addons/base_vat/base_vat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base_vat/base_vat.py b/addons/base_vat/base_vat.py index 190541bbcfb..bcfbfec3436 100644 --- a/addons/base_vat/base_vat.py +++ b/addons/base_vat/base_vat.py @@ -1074,7 +1074,7 @@ class res_partner(osv.osv): r"[ \-_]?" \ r"(?P[A-Z0-9&ñÑ\xd1\xf1]{3})$") - def check_vat_mx(vat): + def check_vat_mx(self, vat): ''' Mexican VAT verification Verificar RFC México From b6dce5a11b4c5e0bf5d7c50dca7d6f2f14392d3a Mon Sep 17 00:00:00 2001 From: "P. Christeas" Date: Fri, 29 Apr 2011 11:36:25 +0300 Subject: [PATCH 11/64] base_vat: fix check_vat_mx, wrt. encoding, small letters and year range As of this commit, tests pass all the 242662 numbers provided by moylop260 bzr revid: p_christ@hol.gr-20110429083625-80dd16bs4dlbvt1w --- addons/base_vat/base_vat.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/addons/base_vat/base_vat.py b/addons/base_vat/base_vat.py index bcfbfec3436..7d0f61df82c 100644 --- a/addons/base_vat/base_vat.py +++ b/addons/base_vat/base_vat.py @@ -23,6 +23,7 @@ import string from osv import osv, fields from tools.translate import _ +from tools.misc import ustr import re import datetime @@ -1068,23 +1069,30 @@ class res_partner(osv.osv): return False return True - __check_vat_mx_re = re.compile(r"(?P[A-Z&ñÑ]{3,4})" \ + __check_vat_mx_re = re.compile(r"(?P[A-Za-z\xd1\xf1&]{3,4})" \ r"[ \-_]?" \ - r"(?P[0-9]{2})(?P[01][1-9])(?P[0-3][0-9])" \ + r"(?P[0-9]{2})(?P[01][0-9])(?P[0-3][0-9])" \ r"[ \-_]?" \ - r"(?P[A-Z0-9&ñÑ\xd1\xf1]{3})$") + r"(?P[A-Za-z0-9&\xd1\xf1]{3})$") def check_vat_mx(self, vat): ''' Mexican VAT verification Verificar RFC México ''' + # we convert to 8-bit encoding, to help the regex parse only bytes + vat = ustr(vat).encode('iso8859-1') m = self.__check_vat_mx_re.match(vat) if not m: #No valid format return False try: - datetime.date(int(m.group('ano')), int(m.group('mes')), int(m.group('dia'))) + ano = int(m.group('ano')) + if ano > 30: + ano = 1900 + ano + else: + ano = 2000 + ano + datetime.date(ano, int(m.group('mes')), int(m.group('dia'))) except ValueError: return False From 0036d659495c06050e8874a6be69dedb212a314d Mon Sep 17 00:00:00 2001 From: "pso (OpenERP)" Date: Fri, 6 May 2011 10:51:05 +0530 Subject: [PATCH 12/64] [IMP] account_analytic_plans: Added new field percentage, Improved create_analytic_lines and get amount from amount currency of move line bzr revid: pso@tinyerp.com-20110506052105-t28i1jyn9nf2zbfy --- .../account_analytic_plans/account_analytic_plans.py | 9 ++++----- .../account_analytic_plans_view.xml | 12 ++++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index 3285e1c1562..4498fb1e1d3 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -53,20 +53,18 @@ class account_analytic_line(osv.osv): def _get_amount(self, cr, uid, ids, name, args, context=None): res = {} - currency_obj = self.pool.get('res.currency') if not ids: return res for id in ids: res.setdefault(id, 0.0) for line in self.browse(cr, uid, ids, context=context): - from_currency_id = line.company_id.currency_id.id - to_currency_id = line.currency_id.id - from_amount = line.amount - res[line.id] = currency_obj.compute(cr, uid, from_currency_id, to_currency_id, from_amount, round=True, context=context) + amount = line.move_id.amount_currency * (line.percentage / 100) + res[line.id] = amount return res _columns = { 'amount_currency': fields.function(_get_amount, string="Amount Currency", type="float", method=True, store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True), + 'percentage': fields.float('Percentage') } account_analytic_line() @@ -362,6 +360,7 @@ class account_move_line(osv.osv): 'move_id': line.id, 'journal_id': line.journal_id.analytic_journal_id.id, 'ref': line.ref, + 'percentage': line2.rate } analytic_line_obj.create(cr, uid, al_vals, context=context) return True diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index 8282461e512..4f7096d031c 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -312,5 +312,17 @@ + + account.analytic.line.percentage.form + account.analytic.line + form + + + + + + + + From 1c4add74501f91238d310f98034c1370ccc31754 Mon Sep 17 00:00:00 2001 From: "pso (OpenERP)" Date: Fri, 6 May 2011 11:35:07 +0530 Subject: [PATCH 13/64] [IMP] account_analytic_plans: Improved function for amount currency bzr revid: pso@tinyerp.com-20110506060507-pdm26vbzn9mfbqd5 --- addons/account_analytic_plans/account_analytic_plans.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index 4498fb1e1d3..990f53e91ef 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -53,12 +53,10 @@ class account_analytic_line(osv.osv): def _get_amount(self, cr, uid, ids, name, args, context=None): res = {} - if not ids: - return res for id in ids: res.setdefault(id, 0.0) for line in self.browse(cr, uid, ids, context=context): - amount = line.move_id.amount_currency * (line.percentage / 100) + amount = line.move_id and line.move_id.amount_currency * (line.percentage / 100) or 0.0 res[line.id] = amount return res From 134d61febaeac800581ddbfe17c79c09ed9e2067 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 31 May 2011 10:39:19 +0200 Subject: [PATCH 14/64] [FIX] tree/@editable value is top or bottom, 1 is not acceptable bzr revid: xmo@openerp.com-20110531083919-xx0chei0bm0ynq3x --- addons/project_messages/project_messages_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project_messages/project_messages_view.xml b/addons/project_messages/project_messages_view.xml index 40e383ab8c9..4f74e7ebfbf 100644 --- a/addons/project_messages/project_messages_view.xml +++ b/addons/project_messages/project_messages_view.xml @@ -10,7 +10,7 @@ - + From b041c205ff4c8f39335a2b1afd5ece068d77ba50 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 31 May 2011 11:14:56 +0200 Subject: [PATCH 15/64] [REM] @editable on fields and forms, makes no sense bzr revid: xmo@openerp.com-20110531091456-kuyg11u9vtvxn8uv --- .../analytic_journal_billing_rate_view.xml | 2 +- addons/auction/auction_view.xml | 4 ++-- addons/crm_profiling/crm_profiling_view.xml | 2 +- addons/purchase_requisition/purchase_requisition_view.xml | 2 +- addons/stock_location/stock_location_view.xml | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml b/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml index b99c536198a..f2a366558ec 100644 --- a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml +++ b/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml @@ -20,7 +20,7 @@ analytic_journal_rate_grid form -
+ diff --git a/addons/auction/auction_view.xml b/addons/auction/auction_view.xml index 4fa44fafc61..66cc9b3f743 100644 --- a/addons/auction/auction_view.xml +++ b/addons/auction/auction_view.xml @@ -375,7 +375,7 @@
- + @@ -709,7 +709,7 @@ -
+ diff --git a/addons/crm_profiling/crm_profiling_view.xml b/addons/crm_profiling/crm_profiling_view.xml index bf5413ebcae..258de2e4e2d 100644 --- a/addons/crm_profiling/crm_profiling_view.xml +++ b/addons/crm_profiling/crm_profiling_view.xml @@ -118,7 +118,7 @@ - + diff --git a/addons/purchase_requisition/purchase_requisition_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml index c68c6dbbb89..f9813874c12 100644 --- a/addons/purchase_requisition/purchase_requisition_view.xml +++ b/addons/purchase_requisition/purchase_requisition_view.xml @@ -50,7 +50,7 @@ - + diff --git a/addons/stock_location/stock_location_view.xml b/addons/stock_location/stock_location_view.xml index a90f4f81623..f34d34da4ab 100644 --- a/addons/stock_location/stock_location_view.xml +++ b/addons/stock_location/stock_location_view.xml @@ -41,7 +41,7 @@ - + @@ -69,7 +69,7 @@ - + From 5695adf5e64724311cb5bca5c291afb193ed2fa3 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 31 May 2011 12:15:18 +0200 Subject: [PATCH 16/64] [IMP] @editable on forms and fields is nonsense, on trees it should only be able to take the values 'top' and 'bottom' bzr revid: xmo@openerp.com-20110531101518-1ycw1fjy5vczcf8g --- openerp/addons/base/ir/ir.xml | 2 +- openerp/addons/base/rng/view.rng | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/openerp/addons/base/ir/ir.xml b/openerp/addons/base/ir/ir.xml index 8647063a450..8b39ac925b2 100644 --- a/openerp/addons/base/ir/ir.xml +++ b/openerp/addons/base/ir/ir.xml @@ -1895,7 +1895,7 @@ Config Wizard Steps form -
+ diff --git a/openerp/addons/base/rng/view.rng b/openerp/addons/base/rng/view.rng index cff1887afac..cd2aac5cb13 100644 --- a/openerp/addons/base/rng/view.rng +++ b/openerp/addons/base/rng/view.rng @@ -72,7 +72,6 @@ - @@ -126,7 +125,14 @@ - + + + + top + bottom + + + @@ -412,7 +418,6 @@ - From 6672e72c466393af7370b35ce53d9cb245bc8182 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 31 May 2011 14:53:22 +0200 Subject: [PATCH 17/64] [FIX] tools/config: default values always override the config files: - this bug was introduced by commit 3417.6.4 vmt@openerp.com-20110419134016-og6ye1hjrb0j52cl. bzr revid: vmt@openerp.com-20110531125322-myptetqusymunily --- openerp/tools/config.py | 111 ++++++++++++++++++++++------------------ 1 file changed, 62 insertions(+), 49 deletions(-) diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 8fb1ecd04f4..7a10a774cf8 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -28,6 +28,23 @@ import openerp.loglevels as loglevels import logging import openerp.release as release +class MyOption (optparse.Option, object): + """ optparse Option with two additional attributes. + + The list of command line options (getopt.Option) is used to create the + list of the configuration file options. When reading the file, and then + reading the command line arguments, we don't want optparse.parse results + to override the configuration file values. But if we provide default + values to optparse, optparse will return them and we can't know if they + were really provided by the user or not. A solution is to not use + optparse's default attribute, but use a custom one (that will be copied + to create the default values of the configuration file). + + """ + def __init__(self, *opts, **attrs): + self.my_default = attrs.pop('my_default', None) + super(MyOption, self).__init__(*opts, **attrs) + def check_ssl(): try: from OpenSSL import SSL @@ -63,7 +80,7 @@ class configmanager(object): for x in ('CRITICAL', 'ERROR', 'WARNING', 'INFO', 'TEST', 'DEBUG', 'DEBUG_RPC', 'DEBUG_SQL', 'DEBUG_RPC_ANSWER','NOTSET')]) version = "%s %s" % (release.description, release.version) - self.parser = parser = optparse.OptionParser(version=version) + self.parser = parser = optparse.OptionParser(version=version, option_class=MyOption) # Server startup config group = optparse.OptionGroup(parser, "Common options") @@ -75,18 +92,18 @@ class configmanager(object): help="update one or more modules (comma-separated list, use \"all\" for all modules). Requires -d.") group.add_option("--without-demo", dest="without_demo", help="disable loading demo data for modules to be installed (comma-separated, use \"all\" for all modules). Requires -d and -i. Default is %default", - default=False) - group.add_option("-P", "--import-partial", dest="import_partial", default='', + my_default=False) + group.add_option("-P", "--import-partial", dest="import_partial", my_default='', help="Use this for big data importation, if it crashes you will be able to continue at the current state. Provide a filename to store intermediate importation states.") group.add_option("--pidfile", dest="pidfile", help="file where the server pid will be stored") parser.add_option_group(group) group = optparse.OptionGroup(parser, "XML-RPC Configuration") - group.add_option("--xmlrpc-interface", dest="xmlrpc_interface", default='', + group.add_option("--xmlrpc-interface", dest="xmlrpc_interface", my_default='', help="Specify the TCP IP address for the XML-RPC protocol. The empty string binds to all interfaces.") - group.add_option("--xmlrpc-port", dest="xmlrpc_port", default=8069, + group.add_option("--xmlrpc-port", dest="xmlrpc_port", my_default=8069, help="specify the TCP port for the XML-RPC protocol", type="int") - group.add_option("--no-xmlrpc", dest="xmlrpc", action="store_false", default=True, + group.add_option("--no-xmlrpc", dest="xmlrpc", action="store_false", my_default=True, help="disable the XML-RPC protocol") parser.add_option_group(group) @@ -95,91 +112,91 @@ class configmanager(object): title += " (disabled as ssl is unavailable)" group = optparse.OptionGroup(parser, title) - group.add_option("--xmlrpcs-interface", dest="xmlrpcs_interface", default='', + group.add_option("--xmlrpcs-interface", dest="xmlrpcs_interface", my_default='', help="Specify the TCP IP address for the XML-RPC Secure protocol. The empty string binds to all interfaces.") - group.add_option("--xmlrpcs-port", dest="xmlrpcs_port", default=8071, + group.add_option("--xmlrpcs-port", dest="xmlrpcs_port", my_default=8071, help="specify the TCP port for the XML-RPC Secure protocol", type="int") - group.add_option("--no-xmlrpcs", dest="xmlrpcs", action="store_false", default=True, + group.add_option("--no-xmlrpcs", dest="xmlrpcs", action="store_false", my_default=True, help="disable the XML-RPC Secure protocol") - group.add_option("--cert-file", dest="secure_cert_file", default='server.cert', + group.add_option("--cert-file", dest="secure_cert_file", my_default='server.cert', help="specify the certificate file for the SSL connection") - group.add_option("--pkey-file", dest="secure_pkey_file", default='server.pkey', + group.add_option("--pkey-file", dest="secure_pkey_file", my_default='server.pkey', help="specify the private key file for the SSL connection") parser.add_option_group(group) # NET-RPC group = optparse.OptionGroup(parser, "NET-RPC Configuration") - group.add_option("--netrpc-interface", dest="netrpc_interface", default='', + group.add_option("--netrpc-interface", dest="netrpc_interface", my_default='', help="specify the TCP IP address for the NETRPC protocol") - group.add_option("--netrpc-port", dest="netrpc_port", default=8070, + group.add_option("--netrpc-port", dest="netrpc_port", my_default=8070, help="specify the TCP port for the NETRPC protocol", type="int") - group.add_option("--no-netrpc", dest="netrpc", action="store_false", default=True, + group.add_option("--no-netrpc", dest="netrpc", action="store_false", my_default=True, help="disable the NETRPC protocol") parser.add_option_group(group) # Static HTTP group = optparse.OptionGroup(parser, "Static HTTP service") - group.add_option("--static-http-enable", dest="static_http_enable", action="store_true", default=False, help="enable static HTTP service for serving plain HTML files") + group.add_option("--static-http-enable", dest="static_http_enable", action="store_true", my_default=False, help="enable static HTTP service for serving plain HTML files") group.add_option("--static-http-document-root", dest="static_http_document_root", help="specify the directory containing your static HTML files (e.g '/var/www/')") group.add_option("--static-http-url-prefix", dest="static_http_url_prefix", help="specify the URL root prefix where you want web browsers to access your static HTML files (e.g '/')") parser.add_option_group(group) # Testing Group group = optparse.OptionGroup(parser, "Testing Configuration") - group.add_option("--test-file", dest="test_file", default=False, + group.add_option("--test-file", dest="test_file", my_default=False, help="Launch a YML test file.") - group.add_option("--test-report-directory", dest="test_report_directory", default=False, + group.add_option("--test-report-directory", dest="test_report_directory", my_default=False, help="If set, will save sample of all reports in this directory.") group.add_option("--test-disable", action="store_true", dest="test_disable", - default=False, help="Disable loading test files.") + my_default=False, help="Disable loading test files.") group.add_option("--test-commit", action="store_true", dest="test_commit", - default=False, help="Commit database changes performed by tests.") + my_default=False, help="Commit database changes performed by tests.") group.add_option("--assert-exit-level", dest='assert_exit_level', type="choice", choices=self._LOGLEVELS.keys(), - default='error', + my_default='error', help="specify the level at which a failed assertion will stop the server. Accepted values: %s" % (self._LOGLEVELS.keys(),)) parser.add_option_group(group) # Logging Group group = optparse.OptionGroup(parser, "Logging Configuration") group.add_option("--logfile", dest="logfile", help="file where the server log will be stored") - group.add_option("--no-logrotate", dest="logrotate", action="store_false", default=True, + group.add_option("--no-logrotate", dest="logrotate", action="store_false", my_default=True, help="do not rotate the logfile") group.add_option("--syslog", action="store_true", dest="syslog", - default=False, help="Send the log to the syslog server") + my_default=False, help="Send the log to the syslog server") group.add_option('--log-level', dest='log_level', type='choice', choices=self._LOGLEVELS.keys(), - default='info', + my_default='info', help='specify the level of the logging. Accepted values: ' + str(self._LOGLEVELS.keys())) parser.add_option_group(group) # SMTP Group group = optparse.OptionGroup(parser, "SMTP Configuration") - group.add_option('--email-from', dest='email_from', default=False, + group.add_option('--email-from', dest='email_from', my_default=False, help='specify the SMTP email address for sending email') - group.add_option('--smtp', dest='smtp_server', default='localhost', + group.add_option('--smtp', dest='smtp_server', my_default='localhost', help='specify the SMTP server for sending email') - group.add_option('--smtp-port', dest='smtp_port', default=25, + group.add_option('--smtp-port', dest='smtp_port', my_default=25, help='specify the SMTP port', type="int") - group.add_option('--smtp-ssl', dest='smtp_ssl', action='store_true', default=False, + group.add_option('--smtp-ssl', dest='smtp_ssl', action='store_true', my_default=False, help='specify the SMTP server support SSL or not') - group.add_option('--smtp-user', dest='smtp_user', default=False, + group.add_option('--smtp-user', dest='smtp_user', my_default=False, help='specify the SMTP username for sending email') - group.add_option('--smtp-password', dest='smtp_password', default=False, + group.add_option('--smtp-password', dest='smtp_password', my_default=False, help='specify the SMTP password for sending email') parser.add_option_group(group) group = optparse.OptionGroup(parser, "Database related options") - group.add_option("-d", "--database", dest="db_name", default=False, + group.add_option("-d", "--database", dest="db_name", my_default=False, help="specify the database name") - group.add_option("-r", "--db_user", dest="db_user", default=False, + group.add_option("-r", "--db_user", dest="db_user", my_default=False, help="specify the database user name") - group.add_option("-w", "--db_password", dest="db_password", default=False, + group.add_option("-w", "--db_password", dest="db_password", my_default=False, help="specify the database password") group.add_option("--pg_path", dest="pg_path", help="specify the pg executable path") - group.add_option("--db_host", dest="db_host", default=False, + group.add_option("--db_host", dest="db_host", my_default=False, help="specify the database host") - group.add_option("--db_port", dest="db_port", default=False, + group.add_option("--db_port", dest="db_port", my_default=False, help="specify the database port", type="int") - group.add_option("--db_maxconn", dest="db_maxconn", type='int', default=64, + group.add_option("--db_maxconn", dest="db_maxconn", type='int', my_default=64, help="specify the the maximum number of physical connections to posgresql") parser.add_option_group(group) @@ -191,13 +208,12 @@ class configmanager(object): group.add_option('--load-language', dest="load_language", help="specifies the languages for the translations you want to be loaded") group.add_option('-l', "--language", dest="language", - default=None, help="specify the language of the translation file. Use it with --i18n-export or --i18n-import") group.add_option("--i18n-export", dest="translate_out", help="export all sentences to be translated to a CSV file, a PO file or a TGZ archive and exit") group.add_option("--i18n-import", dest="translate_in", help="import a CSV or a PO file with translations and exit. The '-l' option is required.") - group.add_option("--i18n-overwrite", dest="overwrite_existing_translations", action="store_true", default=False, + group.add_option("--i18n-overwrite", dest="overwrite_existing_translations", action="store_true", my_default=False, help="overwrites existing translation terms on updating a module or importing a CSV or a PO file.") group.add_option("--modules", dest="translate_modules", help="specify modules to export. Use in combination with --i18n-export") @@ -207,37 +223,34 @@ class configmanager(object): parser.add_option_group(group) security = optparse.OptionGroup(parser, 'Security-related options') - security.add_option('--no-database-list', action="store_false", dest='list_db', default=True, + security.add_option('--no-database-list', action="store_false", dest='list_db', my_default=True, help="disable the ability to return the list of databases") parser.add_option_group(security) # Advanced options group = optparse.OptionGroup(parser, "Advanced options") - group.add_option("--cache-timeout", dest="cache_timeout", default=100000, + group.add_option("--cache-timeout", dest="cache_timeout", my_default=100000, help="set the timeout for the cache system", type="int") - group.add_option('--debug', dest='debug_mode', action='store_true', default=False, help='enable debug mode') - group.add_option("--stop-after-init", action="store_true", dest="stop_after_init", default=False, + group.add_option('--debug', dest='debug_mode', action='store_true', my_default=False, help='enable debug mode') + group.add_option("--stop-after-init", action="store_true", dest="stop_after_init", my_default=False, help="stop the server after its initialization") - group.add_option("-t", "--timezone", dest="timezone", default=False, + group.add_option("-t", "--timezone", dest="timezone", my_default=False, help="specify reference timezone for the server (e.g. Europe/Brussels") - group.add_option("--osv-memory-count-limit", dest="osv_memory_count_limit", default=False, + group.add_option("--osv-memory-count-limit", dest="osv_memory_count_limit", my_default=False, help="Force a limit on the maximum number of records kept in the virtual " "osv_memory tables. The default is False, which means no count-based limit.", type="int") - group.add_option("--osv-memory-age-limit", dest="osv_memory_age_limit", default=1.0, + group.add_option("--osv-memory-age-limit", dest="osv_memory_age_limit", my_default=1.0, help="Force a limit on the maximum age of records kept in the virtual " "osv_memory tables. This is a decimal value expressed in hours, " "and the default is 1 hour.", type="float") parser.add_option_group(group) - # Copy all optparse options into self.options. + # Copy all optparse options (i.e. MyOption) into self.options. for group in parser.option_groups: for option in group.option_list: - if option.default == ('NO', 'DEFAULT'): - self.options[option.dest] = None - else: - self.options[option.dest] = option.default + self.options[option.dest] = option.my_default self.parse_config() From f6d4bdc55539bd25056aff41a3d9d27cdd306299 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 31 May 2011 15:01:54 +0200 Subject: [PATCH 18/64] Import old branch. bzr revid: nicolas.vanhoren@openerp.com-20110531130154-45t27asxk5pcr7sd --- addons/base/static/src/js/data.js | 17 +++++++-- addons/base/static/src/js/form.js | 54 +++++++++++++++++++---------- addons/base/static/src/js/search.js | 2 +- 3 files changed, 50 insertions(+), 23 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 7582e99b662..b4583e9a902 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -310,6 +310,7 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. }, callback); }, unlink: function(ids) { + // to implement in children this.notification.notify("Unlink", ids); }, call: function (method, ids, args, callback) { @@ -343,15 +344,25 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. }); openerp.base.DataSetStatic = openerp.base.DataSet.extend({ - init: function(session, model) { + init: function(session, model, ids) { this._super(session, model); // all local records - this.ids = []; - this.count = 0; + this.ids = ids || []; + this.count = this.ids.length; }, read_slice: function (fields, offset, limit, callback) { var end_pos = limit && limit !== -1 ? offset + limit : undefined; this.read_ids(this.ids.slice(offset, end_pos), fields, callback); + }, + set_ids: function (ids) { + this.ids = ids; + this.count = this.ids.length; + }, + unlink: function(ids) { + this.on_unlink(ids); + }, + on_unlink: function(ids) { + // event } }); diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 98c8cd75267..e22e8f582c1 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -989,14 +989,14 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ }); openerp.base.form.FieldOne2ManyDatasSet = openerp.base.DataSetStatic.extend({ - start: function() { + /*start: function() { }, write: function (id, data, callback) { this._super(id, data, callback); }, unlink: function() { this.notification.notify('Unlinking o2m ' + this.ids); - } + }*/ }); openerp.base.form.FieldOne2ManyViewManager = openerp.base.ViewManager.extend({ @@ -1010,33 +1010,52 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); this.template = "FieldOne2Many"; - this.operations = []; }, start: function() { this._super.apply(this, arguments); - this.log("o2m.start"); var views = [ [false,"list"], [false,"form"] ]; this.dataset = new openerp.base.form.FieldOne2ManyDatasSet(this.session, this.field.relation); - this.viewmanager = new openerp.base.form.FieldOne2ManyViewManager(this.view.session, this.element_id, this.dataset, views); + this.dataset.ids = []; + this.dataset.count = 0; + this.viewmanager = new openerp.base.form.FieldOne2ManyViewManager(this.view.session, + this.element_id, this.dataset, views); this.viewmanager.start(); + + var self = this; + var hack = {loaded: false}; + var view = this.viewmanager.views[this.viewmanager.active_view].controller; + view.on_loaded.add_last(function() { + if (! hack.loaded) { + self.is_started = true; + self.check_load(); + hack.loaded = true; + } + }); }, set_value: function(value) { - this.value = value; - if (value != false) { - this.log("o2m.set_value",value); - this.viewmanager.dataset.ids = value; - this.viewmanager.dataset.count = value.length; + if(value != false) { + this.dataset.ids = value; + this.dataset.count = value.length; + this.is_setted = true; + this.check_load(); } }, get_value: function(value) { - return this.operations; + //TODO + return []; }, - update_dom: function() { + /*update_dom: function() { this._super.apply(this, arguments); this.$element.toggleClass('disabled', this.readonly); this.$element.toggleClass('required', this.required); }, on_ui_change: function() { + },*/ + check_load: function() { + if(this.is_started && this.is_setted) { + var view = this.viewmanager.views[this.viewmanager.active_view].controller; + view.reload_view(); + } } }); @@ -1074,8 +1093,7 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ }, set_value: function(value) { if (value != false) { - this.dataset.ids = value; - this.dataset.count = value.length; + this.dataset.set_ids(value); this.is_setted = true; this.check_load(); } @@ -1092,8 +1110,7 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ do_delete: function (ids) { - this.dataset.ids = _.without.apply(null, [this.dataset.ids].concat(ids)); - this.dataset.count = this.dataset.ids.length; + this.dataset.set_ids(_.without.apply(null, [this.dataset.ids].concat(ids))); this.reload_content(); this.m2m_field.on_ui_change(); @@ -1105,8 +1122,7 @@ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ var self = this; pop.on_select_element.add(function(element_id) { if(! _.detect(self.dataset.ids, function(x) {return x == element_id;})) { - self.dataset.ids.push(element_id); - self.dataset.count = self.dataset.ids.length; + self.dataset.ids.set_ids([].concat(self.dataset.ids, [element_id])); self.reload_content(); } pop.stop(); @@ -1174,7 +1190,7 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({ var tmphack = {"loaded": false}; self.view_list.on_loaded.add_last(function() { if ( !tmphack.loaded ) { - self.view_list.reload_view(); + self.searchview.do_search(); tmphack.loaded = true; }; }); diff --git a/addons/base/static/src/js/search.js b/addons/base/static/src/js/search.js index e5e726f98eb..4c23f64bcbb 100644 --- a/addons/base/static/src/js/search.js +++ b/addons/base/static/src/js/search.js @@ -3,7 +3,7 @@ openerp.base.search = function(openerp) { openerp.base.SearchView = openerp.base.Controller.extend({ init: function(view_manager, session, element_id, dataset, view_id, defaults) { this._super(session, element_id); - this.view_manager = view_manager; + this.view_manager = view_manager || new openerp.base.NullViewManager(); this.dataset = dataset; this.model = dataset.model; this.view_id = view_id; From fd9c0f359e9dcb9c1a94179025d1652e1d4929fe Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 31 May 2011 15:14:14 +0200 Subject: [PATCH 19/64] [fix] small typo in m2m bzr revid: nicolas.vanhoren@openerp.com-20110531131414-em4fcrbwfiqcq6g1 --- addons/base/static/src/js/form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index e22e8f582c1..864234f4b7f 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1122,7 +1122,7 @@ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ var self = this; pop.on_select_element.add(function(element_id) { if(! _.detect(self.dataset.ids, function(x) {return x == element_id;})) { - self.dataset.ids.set_ids([].concat(self.dataset.ids, [element_id])); + self.dataset.set_ids([].concat(self.dataset.ids, [element_id])); self.reload_content(); } pop.stop(); From 7cbb2c3084973c1923031f26f555c2aad634935d Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 31 May 2011 15:38:17 +0200 Subject: [PATCH 20/64] [imp] made o2m work bzr revid: nicolas.vanhoren@openerp.com-20110531133817-vps6mfgsju1wadni --- addons/base/static/src/js/form.js | 34 ++++++++----------------------- addons/base/static/src/js/list.js | 4 ++++ 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 864234f4b7f..d54d5a27adf 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -988,17 +988,6 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ } }); -openerp.base.form.FieldOne2ManyDatasSet = openerp.base.DataSetStatic.extend({ - /*start: function() { - }, - write: function (id, data, callback) { - this._super(id, data, callback); - }, - unlink: function() { - this.notification.notify('Unlinking o2m ' + this.ids); - }*/ -}); - openerp.base.form.FieldOne2ManyViewManager = openerp.base.ViewManager.extend({ init: function(session, element_id, dataset, views) { this._super(session, element_id, dataset, views); @@ -1014,9 +1003,7 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ start: function() { this._super.apply(this, arguments); var views = [ [false,"list"], [false,"form"] ]; - this.dataset = new openerp.base.form.FieldOne2ManyDatasSet(this.session, this.field.relation); - this.dataset.ids = []; - this.dataset.count = 0; + this.dataset = new openerp.base.DataSetStatic(this.session, this.field.relation); this.viewmanager = new openerp.base.form.FieldOne2ManyViewManager(this.view.session, this.element_id, this.dataset, views); this.viewmanager.start(); @@ -1034,16 +1021,21 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ }, set_value: function(value) { if(value != false) { - this.dataset.ids = value; - this.dataset.count = value.length; + this.dataset.set_ids(value); this.is_setted = true; this.check_load(); } }, + check_load: function() { + if(this.is_started && this.is_setted) { + var view = this.viewmanager.views[this.viewmanager.active_view].controller; + view.reload_content(); + } + }, get_value: function(value) { //TODO return []; - }, + } /*update_dom: function() { this._super.apply(this, arguments); this.$element.toggleClass('disabled', this.readonly); @@ -1051,12 +1043,6 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ }, on_ui_change: function() { },*/ - check_load: function() { - if(this.is_started && this.is_setted) { - var view = this.viewmanager.views[this.viewmanager.active_view].controller; - view.reload_view(); - } - } }); openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ @@ -1077,8 +1063,6 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ 'selectable': false, 'addable': 'Add' }); - this.list_view.groups.datagroup = ( - new openerp.base.StaticDataGroup(this.dataset)); var self = this; this.list_view.m2m_field = this; this.list_view.start(); diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 2fd4aff2e1c..341b5795e60 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -55,6 +55,10 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi this.flags = this.view_manager.action.flags; this.set_groups(new openerp.base.ListView.Groups(this)); + + if (this.dataset instanceof openerp.base.DataSetStatic) { + this.groups.datagroup = new openerp.base.StaticDataGroup(this.dataset); + } }, /** * Set a custom Group construct as the root of the List View. From b5bb00cdd3208513997a8b00a338b78045c5bca0 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 31 May 2011 16:02:58 +0200 Subject: [PATCH 21/64] [FIX] hr: display the expected number of employees and number of employees when grouping bzr revid: qdp-launchpad@openerp.com-20110531140258-p30r6fq5wuyl8j7h --- addons/hr/hr.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/hr/hr.py b/addons/hr/hr.py index 59e4129fec7..8a49fd876ba 100644 --- a/addons/hr/hr.py +++ b/addons/hr/hr.py @@ -92,8 +92,8 @@ class hr_job(osv.osv): _description = "Job Description" _columns = { 'name': fields.char('Job Name', size=128, required=True, select=True), - 'expected_employees': fields.function(_no_of_employee, method=True, string='Expected Employees', help='Required number of Employees in total for that job.', multi="no_of_employee"), - 'no_of_employee': fields.function(_no_of_employee, method=True, string="No of Employee", help='Number of employee with that job.', multi="no_of_employee"), + 'expected_employees': fields.function(_no_of_employee, method=True, string='Expected Employees', help='Required number of Employees in total for that job.', multi="no_of_employee", store=True), + 'no_of_employee': fields.function(_no_of_employee, method=True, string="No of Employee", help='Number of employee with that job.', multi="no_of_employee", store=True), 'no_of_recruitment': fields.float('Expected in Recruitment'), 'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees'), 'description': fields.text('Job Description'), From 03c9889964530ba27cc2e1b20b283c0eaf825b03 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 31 May 2011 16:11:19 +0200 Subject: [PATCH 22/64] [imp] simplified design of static datasets and non-action view managers for m2m & o2m bzr revid: nicolas.vanhoren@openerp.com-20110531141119-39chys078m5g0jo4 --- addons/base/static/src/js/data.js | 2 +- addons/base/static/src/js/form.js | 49 +++++++++++++++---------------- addons/base/static/src/js/list.js | 2 +- 3 files changed, 25 insertions(+), 28 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index b4583e9a902..6c0a3a354a4 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -362,7 +362,7 @@ openerp.base.DataSetStatic = openerp.base.DataSet.extend({ this.on_unlink(ids); }, on_unlink: function(ids) { - // event + this.set_ids(_.without.apply(null, [this.ids].concat(ids))); } }); diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index d54d5a27adf..9f6443e3b38 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -29,7 +29,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.ready = false; this.show_invalid = true; this.touched = false; - this.flags = this.view_manager.action.flags || {}; + this.flags = this.view_manager.flags || {}; }, start: function() { //this.log('Starting FormView '+this.model+this.view_id) @@ -305,7 +305,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.notification.notify("Cancelling form"); }, do_update_sidebar: function() { - if (this.view_manager.action.flags.sidebar === false) { + if (this.flags.sidebar === false) { return; } if (!this.datarecord.id) { @@ -988,13 +988,6 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ } }); -openerp.base.form.FieldOne2ManyViewManager = openerp.base.ViewManager.extend({ - init: function(session, element_id, dataset, views) { - this._super(session, element_id, dataset, views); - this.action = {flags:{}}; - } -}); - openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); @@ -1002,13 +995,23 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ }, start: function() { this._super.apply(this, arguments); - var views = [ [false,"list"], [false,"form"] ]; + + var self = this; + this.dataset = new openerp.base.DataSetStatic(this.session, this.field.relation); - this.viewmanager = new openerp.base.form.FieldOne2ManyViewManager(this.view.session, + this.dataset.on_unlink.add_last(function(ids) { + // TODO niv check form view + var view = self.viewmanager.views[self.viewmanager.active_view].controller; + view.reload_content(); + // TODO niv make real suppression (list or direct) + self.on_ui_change(); + }); + + var views = [ [false,"list"], [false,"form"] ]; + this.viewmanager = new openerp.base.ViewManager(this.view.session, this.element_id, this.dataset, views); this.viewmanager.start(); - var self = this; var hack = {loaded: false}; var view = this.viewmanager.views[this.viewmanager.active_view].controller; view.on_loaded.add_last(function() { @@ -1036,13 +1039,6 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ //TODO return []; } - /*update_dom: function() { - this._super.apply(this, arguments); - this.$element.toggleClass('disabled', this.readonly); - this.$element.toggleClass('required', this.required); - }, - on_ui_change: function() { - },*/ }); openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ @@ -1055,15 +1051,22 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ }, start: function() { this._super.apply(this, arguments); + + var self = this; + this.dataset = new openerp.base.DataSetStatic( this.session, this.field.relation); + this.dataset.on_unlink.add_last(function(ids) { + self.list_view.reload_content(); + + self.on_ui_change(); + }); this.list_view = new openerp.base.form.Many2ManyListView( null, this.view.session, this.list_id, this.dataset, false, { 'selectable': false, 'addable': 'Add' }); - var self = this; this.list_view.m2m_field = this; this.list_view.start(); var hack = {loaded: false}; @@ -1093,12 +1096,6 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ }); openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ - do_delete: function (ids) { - this.dataset.set_ids(_.without.apply(null, [this.dataset.ids].concat(ids))); - this.reload_content(); - - this.m2m_field.on_ui_change(); - }, do_add_record: function () { var pop = new openerp.base.form.Many2XSelectPopup( null, this.m2m_field.view.session); diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 341b5795e60..0ecd17c141e 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -52,7 +52,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi this.columns = []; this.options = _.extend({}, this.defaults, options || {}); - this.flags = this.view_manager.action.flags; + this.flags = this.view_manager.flags || {}; this.set_groups(new openerp.base.ListView.Groups(this)); From 107b1ebbc4ab1bf1a8f36131045c957640685982 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 31 May 2011 17:12:31 +0200 Subject: [PATCH 23/64] [IMP] account: added treasury report bzr revid: qdp-launchpad@openerp.com-20110531151231-pg36qumj491j8fsx --- addons/account/__openerp__.py | 1 + addons/account/report/__init__.py | 1 + .../account/report/account_treasury_report.py | 81 +++++++++++++++++++ .../report/account_treasury_report_view.xml | 62 ++++++++++++++ 4 files changed, 145 insertions(+) create mode 100644 addons/account/report/account_treasury_report.py create mode 100644 addons/account/report/account_treasury_report_view.xml diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index 3b04713a1bb..e4059896783 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -59,6 +59,7 @@ module named account_voucher. 'account_menuitem.xml', 'report/account_invoice_report_view.xml', 'report/account_entries_report_view.xml', + 'report/account_treasury_report_view.xml', 'report/account_report_view.xml', 'report/account_analytic_entries_report_view.xml', 'wizard/account_move_bank_reconcile_view.xml', diff --git a/addons/account/report/__init__.py b/addons/account/report/__init__.py index d525d3a331b..7c09027f3ca 100644 --- a/addons/account/report/__init__.py +++ b/addons/account/report/__init__.py @@ -41,6 +41,7 @@ import account_entries_report import account_analytic_entries_report import account_balance_sheet import account_profit_loss +import account_treasury_report # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/report/account_treasury_report.py b/addons/account/report/account_treasury_report.py new file mode 100644 index 00000000000..f8c569c82f7 --- /dev/null +++ b/addons/account/report/account_treasury_report.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import tools +from osv import fields,osv +import decimal_precision as dp + +class account_treasury_report(osv.osv): + _name = "account.treasury.report" + _description = "Treasury Analysis" + _auto = False + + def _compute_balances(self, cr, uid, ids, field_names, arg=None, context=None, + query='', query_params=()): + all_treasury_lines = self.search(cr, uid, [], context=context) + ref_dict = {} + current_sum = 0 + res = dict((id, dict((fn, 0.0) for fn in field_names)) for id in all_treasury_lines) + for record in self.browse(cr, uid, all_treasury_lines, context=context): + res[record.id]['starting_balance'] = current_sum + current_sum += record.balance + res[record.id]['ending_balance'] = current_sum + return res + + _columns = { + 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscalyear', readonly=True), + 'period_id': fields.many2one('account.period', 'Period', readonly=True), + 'debit': fields.float('Debit', readonly=True), + 'credit': fields.float('Credit', readonly=True), + 'balance': fields.float('Balance', readonly=True), + 'date': fields.date('Beginning of Period Date', readonly=True), + 'starting_balance': fields.function(_compute_balances, digits_compute=dp.get_precision('Account'), method=True, string='Starting Balance', multi='balance'), + 'ending_balance': fields.function(_compute_balances, digits_compute=dp.get_precision('Account'), method=True, string='Ending Balance', multi='balance'), + 'company_id': fields.many2one('res.company', 'Company', readonly=True), + } + + _order = 'date asc' + + + def init(self, cr): + tools.drop_view_if_exists(cr, 'account_treasury_report') + cr.execute(""" + create or replace view account_treasury_report as ( + select + p.id as id, + p.fiscalyear_id as fiscalyear_id, + p.id as period_id, + sum(l.debit) as debit, + sum(l.credit) as credit, + sum(l.debit-l.credit) as balance, + p.date_start as date, + am.company_id as company_id + from + account_move_line l + left join account_account a on (l.account_id = a.id) + left join account_move am on (am.id=l.move_id) + left join account_period p on (am.period_id=p.id) + where l.state != 'draft' + and a.type = 'liquidity' + group by p.id, p.fiscalyear_id, p.date_start, am.company_id + ) + """) +account_treasury_report() diff --git a/addons/account/report/account_treasury_report_view.xml b/addons/account/report/account_treasury_report_view.xml new file mode 100644 index 00000000000..2168df809e2 --- /dev/null +++ b/addons/account/report/account_treasury_report_view.xml @@ -0,0 +1,62 @@ + + + + + account.treasury.report.tree + account.treasury.report + tree + + + + + + + + + + + + + + + + account.treasury.report.graph + account.treasury.report + graph + + + + + + + + + account.treasury.report.search + account.treasury.report + search + + + + + + + + + + + + Treasury Analysis + account.treasury.report + form + tree,graph + + + {'group_by':[], 'group_by_no_leaf':0} + From this view, have an analysis of your treasury. It sums the balance of every accounting entries made on liquidity accounts per period. + + + + From 358f6881f3c0062db737426b473ee15103e1065d Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 31 May 2011 17:27:11 +0200 Subject: [PATCH 24/64] [REF] openerp/report/render/render.py: removed silly main() method, rewrote french comment in english. bzr revid: vmt@openerp.com-20110531152711-49kyo4xhtak3r874 --- openerp/report/render/render.py | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/openerp/report/render/render.py b/openerp/report/render/render.py index 0d00701ee54..8ab88909c77 100644 --- a/openerp/report/render/render.py +++ b/openerp/report/render/render.py @@ -26,15 +26,7 @@ # Add a transparant multi-thread layer to all report rendering layers # -import threading - -# # TODO: method to stock on the disk -# Les class de reporting doivent surclasser cette classe -# Les seules methodes qui peuvent etre redefinies sont: -# __init__ -# _render -# class render(object): """ Represents a report job being rendered. @@ -46,6 +38,10 @@ class render(object): If a string is absolute path, it will be opened as such, else it will be passed to tools.file_open() which also considers zip addons. + + Reporting classes must subclass this class and redefine the __init__ and + _render methods (not the other methods). + """ def __init__(self, bin_datas=None, path='.'): self.done = False @@ -60,14 +56,12 @@ class render(object): def render(self): self.done = False - result = self._render() - self._result = result + self._result = self._render() self.done = True return True def is_done(self): - res = self.done - return res + return self.done def get(self): if self.is_done(): @@ -75,16 +69,6 @@ class render(object): else: return None -if __name__=='__main__': - import time - print 'Multi-thread code !' - r = render() - r.render() - while not r.is_done(): - print 'not yet!' - time.sleep(1) - print 'done!' - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 954ac12560e52a7b0aed9bcf7f74e17dfb510221 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 31 May 2011 17:28:07 +0200 Subject: [PATCH 25/64] [imp] added deferred in m2m & m2o to clean code bzr revid: nicolas.vanhoren@openerp.com-20110531152807-ejvxyokj3y4816o0 --- addons/base/static/src/js/form.js | 54 ++++++++++++------------------ addons/base/static/src/js/views.js | 10 ++++++ 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 9f6443e3b38..be04f372573 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -992,6 +992,8 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); this.template = "FieldOne2Many"; + this.is_started = $.Deferred(); + this.is_setted = $.Deferred(); }, start: function() { this._super.apply(this, arguments); @@ -1011,32 +1013,28 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ this.viewmanager = new openerp.base.ViewManager(this.view.session, this.element_id, this.dataset, views); this.viewmanager.start(); - - var hack = {loaded: false}; - var view = this.viewmanager.views[this.viewmanager.active_view].controller; - view.on_loaded.add_last(function() { - if (! hack.loaded) { - self.is_started = true; - self.check_load(); - hack.loaded = true; + this.viewmanager.on_controller_inited.add_last(function(view_type) { + if (view_type == "list") { + self.is_started.resolve(); + // TODO niv + } else { + // TODO niv } }); + + $.when(this.is_started, this.is_setted).then(function() { + var view = self.viewmanager.views[self.viewmanager.active_view].controller; + view.reload_content(); + }); }, set_value: function(value) { if(value != false) { this.dataset.set_ids(value); - this.is_setted = true; - this.check_load(); - } - }, - check_load: function() { - if(this.is_started && this.is_setted) { - var view = this.viewmanager.views[this.viewmanager.active_view].controller; - view.reload_content(); + this.is_setted.resolve(); } }, get_value: function(value) { - //TODO + //TODO niv return []; } }); @@ -1046,8 +1044,8 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ this._super(view, node); this.template = "FieldMany2Many"; this.list_id = _.uniqueId("many2many"); - this.is_started = false; - this.is_setted = false; + this.is_started = $.Deferred(); + this.is_setted = $.Deferred(); }, start: function() { this._super.apply(this, arguments); @@ -1069,29 +1067,21 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ }); this.list_view.m2m_field = this; this.list_view.start(); - var hack = {loaded: false}; this.list_view.on_loaded.add_last(function() { - if (! hack.loaded) { - self.is_started = true; - self.check_load(); - hack.loaded = true; - } + self.is_started.resolve(); + }); + $.when(this.is_started, this.is_setted).then(function() { + self.list_view.reload_content(); }); }, set_value: function(value) { if (value != false) { this.dataset.set_ids(value); - this.is_setted = true; - this.check_load(); + this.is_setted.resolve(); } }, get_value: function() { return [[6,false,this.dataset.ids]]; - }, - check_load: function() { - if(this.is_started && this.is_setted) { - this.list_view.reload_content(); - } } }); diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index a83c38cc006..27d1253e9f8 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -120,6 +120,10 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ var controllerclass = openerp.base.views.get_object(view_type); var controller = new controllerclass( this, this.session, this.element_id + "_view_" + view_type, this.dataset, view.view_id); view_promise = controller.start(); + var self = this; + $.when(view_promise).then(function() { + self.on_controller_inited(view_type); + }); this.views[view_type].controller = controller; } @@ -147,6 +151,12 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ } return view_promise; }, + /** + * Event launched when a controller has been inited. + * + * @param {String} view_type type of view + */ + on_controller_inited: function(view_type) {}, /** * Sets up the current viewmanager's search view. * From fe421b410848ad78b29af3fafbecedf805eb2d69 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 31 May 2011 17:43:38 +0200 Subject: [PATCH 26/64] [IMP] Do not link to openerp.screen when unecessary bzr revid: fme@openerp.com-20110531154338-d0ill7s23oqz79pq --- addons/base/static/src/js/chrome.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index bc7bec93d59..4c1e1962d88 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -162,7 +162,9 @@ openerp.base.BasicController = Class.extend( /** @lends openerp.base.BasicContro init: function(element_id) { this.element_id = element_id; this.$element = $('#' + element_id); - openerp.screen[element_id] = this; + if (element_id) { + openerp.screen[element_id] = this; + } // Transform on_* method into openerp.base.callbacks for (var name in this) { From e38e5f735d81d823b2c99576fb305ddac838f45a Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 31 May 2011 17:49:33 +0200 Subject: [PATCH 27/64] [FIX] Removed _.sprintf bzr revid: fme@openerp.com-20110531154933-5rf6kiyqo4my7bb4 --- addons/base/static/src/js/views.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index a83c38cc006..c4a2e109a09 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -67,7 +67,7 @@ openerp.base.ActionManager = openerp.base.Controller.extend({ dialog.stop(); break; default: - console.log(_.sprintf("Action manager can't handle action of type %s", action.type), action); + console.log("Action manager can't handle action of type " + action.type, action); } } }); From 4705e30d0bfb3753b242b627a3d4188d847686a2 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 31 May 2011 21:52:02 +0200 Subject: [PATCH 28/64] [FIX] Fixed load() in action controller. Was not calling clean_action() bzr revid: fme@openerp.com-20110531195202-6z6veclumppp1mlr --- addons/base/controllers/main.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 70feda44bc0..35289e487af 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -241,7 +241,10 @@ def clean_action(action, session): action['domain'], session.evaluation_context( action['context'])) or [] - fix_view_modes(action) + if not action.has_key('flags'): + # Set empty flags dictionary for web client. + action['flags'] = dict() + return fix_view_modes(action) def fix_view_modes(action): """ For historical reasons, OpenERP has weird dealings in relation to @@ -271,6 +274,7 @@ def fix_view_modes(action): [id, mode if mode != 'tree' else 'list'] for id, mode in action['views'] ] + return action class Menu(openerpweb.Controller): _cp_path = "/base/menu" @@ -707,12 +711,12 @@ class Action(openerpweb.Controller): _cp_path = "/base/action" @openerpweb.jsonrequest - def load(self, req, action_id, context={}): + def load(self, req, action_id): Actions = req.session.model('ir.actions.actions') value = False - action_type = Actions.read([action_id], ['type'], context) + action_type = Actions.read([action_id], ['type'], req.session.context) if action_type: - action = req.session.model(action_type[0]['type']).read([action_id], False, context) + action = req.session.model(action_type[0]['type']).read([action_id], False, req.session.context) if action: - value = action[0] + value = clean_action(action[0], req.session) return {'result': value} From d5e4c484490ebc6d642601f50cb795cf463c5dd9 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 31 May 2011 22:51:28 +0200 Subject: [PATCH 29/64] [IMP] account: treasury report compliancy with multi company + fixed warning of account/report/account_treasury_report.py (unused ref_dict variable) bzr revid: qdp-launchpad@openerp.com-20110531205128-i1noccss0p3x8a1p --- addons/account/report/account_treasury_report.py | 1 - addons/account/report/account_treasury_report_view.xml | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/account/report/account_treasury_report.py b/addons/account/report/account_treasury_report.py index f8c569c82f7..9b364a55777 100644 --- a/addons/account/report/account_treasury_report.py +++ b/addons/account/report/account_treasury_report.py @@ -31,7 +31,6 @@ class account_treasury_report(osv.osv): def _compute_balances(self, cr, uid, ids, field_names, arg=None, context=None, query='', query_params=()): all_treasury_lines = self.search(cr, uid, [], context=context) - ref_dict = {} current_sum = 0 res = dict((id, dict((fn, 0.0) for fn in field_names)) for id in all_treasury_lines) for record in self.browse(cr, uid, all_treasury_lines, context=context): diff --git a/addons/account/report/account_treasury_report_view.xml b/addons/account/report/account_treasury_report_view.xml index 2168df809e2..eceb1e5c760 100644 --- a/addons/account/report/account_treasury_report_view.xml +++ b/addons/account/report/account_treasury_report_view.xml @@ -15,7 +15,7 @@ - + @@ -39,6 +39,7 @@ + From bbb0e3e6bce5ae734f311d4420a27f9dafc6bf27 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 1 Jun 2011 00:28:38 +0200 Subject: [PATCH 30/64] [IMP] Dashboard cleanup bzr revid: fme@openerp.com-20110531222838-t2a9ksc7l2sthghn --- addons/base_dashboard/__init__.py | 2 +- addons/base_dashboard/controllers/__init__.py | 1 - addons/base_dashboard/controllers/main.py | 17 -- .../static/src/css/dashboard.css | 59 ++++-- .../base_dashboard/static/src/js/dashboard.js | 187 ++++++++---------- .../static/src/xml/base_dashboard.xml | 60 ++++-- 6 files changed, 173 insertions(+), 153 deletions(-) delete mode 100644 addons/base_dashboard/controllers/__init__.py delete mode 100644 addons/base_dashboard/controllers/main.py diff --git a/addons/base_dashboard/__init__.py b/addons/base_dashboard/__init__.py index 355939a4922..4265cc3e6c1 100644 --- a/addons/base_dashboard/__init__.py +++ b/addons/base_dashboard/__init__.py @@ -1 +1 @@ -import controllers \ No newline at end of file +#!/usr/bin/env python diff --git a/addons/base_dashboard/controllers/__init__.py b/addons/base_dashboard/controllers/__init__.py deleted file mode 100644 index 039d9715fab..00000000000 --- a/addons/base_dashboard/controllers/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import main \ No newline at end of file diff --git a/addons/base_dashboard/controllers/main.py b/addons/base_dashboard/controllers/main.py deleted file mode 100644 index a223deda6be..00000000000 --- a/addons/base_dashboard/controllers/main.py +++ /dev/null @@ -1,17 +0,0 @@ -from base.controllers.main import View, clean_action -import openerpweb - -class Dashboard(View): - _cp_path = "/base_dashboard/dashboard" - - @openerpweb.jsonrequest - def load(self, req, node_attrs): - - action_id = int(node_attrs['name']) - actions = req.session.model('ir.actions.actions') - result = actions.read([action_id],['type'], req.session.context) - if not result: - raise _('Action not found!') - action = req.session.model(result[0]['type']).read([action_id], False, req.session.context)[0] - clean_action(action, req.session) - return {'action': action} \ No newline at end of file diff --git a/addons/base_dashboard/static/src/css/dashboard.css b/addons/base_dashboard/static/src/css/dashboard.css index 815c06b6bcd..071a8cb8228 100644 --- a/addons/base_dashboard/static/src/css/dashboard.css +++ b/addons/base_dashboard/static/src/css/dashboard.css @@ -1,36 +1,61 @@ -.column { - float: left; +.openerp .oe-dashboard-links { + text-align: right; + margin: -2em 1em 1em 0; +} +.openerp .oe-dashboard-column { + float: left; padding-bottom: 100px; } - -.portlet { +.openerp .oe-dashboard-action { margin: 0 1em 1em 0; } - -.portlet-header { - margin: 0.3em; - padding-bottom: 4px; - padding-left: 0.2em; +.openerp .oe-dashboard-action .oe-dashboard-action-header { + margin: 0.3em; + padding-bottom: 4px; + padding-left: 0.2em } -.portlet-header:hover { +.openerp .oe-dashboard-action .oe-dashboard-action-header:hover { cursor: move; } -.portlet-header .ui-icon { +.openerp .oe-dashboard-action .oe-dashboard-action-header .ui-icon { float: right; } -.portlet-content { +.openerp .oe-dashboard-action .oe-dashboard-action-content { padding: 0.4em; } -.ui-sortable-placeholder { - border: 1px dotted black; - visibility: visible !important; +.openerp .oe-dashboard .ui-sortable-placeholder { + border: 1px dotted black; + visibility: visible !important; height: 50px !important; } -.ui-sortable-placeholder * { +.openerp .oe-dashboard .ui-sortable-placeholder * { visibility: hidden; -} \ No newline at end of file +} + +/* Layouts */ +.openerp .oe-dashboard-layout_1 .oe-dashboard-column { + width: 100%; +} +.openerp .oe-dashboard-layout_1-1 .oe-dashboard-column { + width: 50%; +} +.openerp .oe-dashboard-layout_1-1-1 .oe-dashboard-column { + width: 33%; +} +.openerp .oe-dashboard-layout_2-1 .oe-dashboard-column.index_0 { + width: 70%; +} +.openerp .oe-dashboard-layout_2-1 .oe-dashboard-column.index_1 { + width: 30%; +} +.openerp .oe-dashboard-layout_1-2 .oe-dashboard-column.index_0 { + width: 30%; +} +.openerp .oe-dashboard-layout_1-2 .oe-dashboard-column.index_1 { + width: 70%; +} diff --git a/addons/base_dashboard/static/src/js/dashboard.js b/addons/base_dashboard/static/src/js/dashboard.js index 8f09f622050..3e253194d57 100644 --- a/addons/base_dashboard/static/src/js/dashboard.js +++ b/addons/base_dashboard/static/src/js/dashboard.js @@ -1,127 +1,108 @@ -openerp.base_dashboard = function(openerp){ +openerp.base_dashboard = function(openerp) { QWeb.add_template('/base_dashboard/static/src/xml/base_dashboard.xml'); -openerp.base.form.Board = openerp.base.form.Widget.extend({ +openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ init: function(view, node) { - this._super(view, node); - this.template = "Board"; + this.template = "DashBoard"; }, start: function() { + var self = this; this._super.apply(this, arguments); - - this.$element.html(QWeb.render(this.template)); - var $dashboard = this.$element.find('#dashboard'); - var children = this.node.children; - - for(var ch=0; ch < children.length; ch++) { - var node = children[ch]; - - var widget; - if(node.tag.indexOf('child') >= 0) { - widget = new (openerp.base.form.widgets.get_object('child')) (this.view, node, $dashboard); - } else { - //Vpaned - widget = new (openerp.base.form.widgets.get_object(node.tag)) (this.view, node, $dashboard); - } - - widget.start(); - - } - - jQuery('.column').css('width', 100/children.length+'%'); - }, -}); - - -openerp.base.form.Dashbar = openerp.base.form.Widget.extend({ - init: function(view, node, dashboard) { - this._super(view, node, dashboard); - this.dashboard = dashboard; - this.template = 'Portlet' - }, - start: function() { - var $dashboard = this.dashboard; - var children = this.node.children; - $dashboard.append(QWeb.render(this.template, {widget: this, 'children': children})) - - for(var chld=0; chld < children.length;chld++) { - var child = children[chld]; - var widget = new (openerp.base.form.widgets.get_object(child.tag)) (this.view, child); - widget.start() - } - $( ".column" ).sortable({ - connectWith: ".column", + this.$element.find(".oe-dashboard-column").sortable({ + connectWith: ".oe-dashboard-column", scroll: false + }).disableSelection().bind('sortstop', self.do_save_dashboard); + this.$element.find('.oe-dashboard-link-add_widget').click(this.on_add_widget); + this.$element.find('.oe-dashboard-link-edit_layout').click(this.on_edit_layout); + + this.$element.find('.oe-dashboard-column .ui-icon-minusthick').click(function() { + $(this).toggleClass('ui-icon-minusthick').toggleClass('ui-icon-plusthick'); + $(this).parents('.oe-dashboard-action:first .oe-dashboard-action-content').toggle(); }); - $( ".portlet" ).addClass( "ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" ) - .find( ".portlet-header" ) - .addClass( "ui-widget-header ui-corner-all" ) - .end() - .find( ".portlet-content" ); - - $( ".portlet-header .ui-icon" ).click(function() { - $( this ).toggleClass( "ui-icon-minusthick" ).toggleClass( "ui-icon-plusthick" ); - $( this ).parents( ".portlet:first" ).find( ".portlet-content" ).toggle(); - }); + $('.oe-dashboard-column .ui-icon-closethick').click(function() { + $(this).parents('.oe-dashboard-action:first').remove(); + self.do_save_dashboard(); + }); - $( ".column" ).disableSelection(); - } -}) - -openerp.base.form.Action = openerp.base.form.Widget.extend({ - init: function(view, node) { - this._super(view, node); + this.actions_attrs = {}; + // Init actions + _.each(this.node.children, function(column) { + _.each(column.children, function(action) { + delete(action.attrs.width); + delete(action.attrs.height); + delete(action.attrs.colspan); + self.actions_attrs[action.attrs.name] = action.attrs; + self.rpc('/base/action/load', { + action_id: parseInt(action.attrs.name, 10) + }, self.on_load_action); + }); + }); }, - start: function() { - this._super.apply(this, arguments); - this.rpc('/base_dashboard/dashboard/load',{ - node_attrs: this.node.attrs - }, - this.on_load_action); + on_add_widget: function() { + }, + on_edit_layout: function() { + }, + do_save_dashboard: function() { + var self = this; + var board = { + style : this.$element.find('.oe-dashboard').attr('data-layout'), + columns : [] + }; + this.$element.find('.oe-dashboard-column').each(function() { + var actions = []; + $(this).find('.oe-dashboard-action').each(function() { + var action_id = $(this).attr('data-id'); + actions.push(self.actions_attrs[action_id]); + }); + board.columns.push(actions); + }); + var xml = QWeb.render('DashBoard.xml', board); }, - on_load_action: function(result) { - var action = result.action; + var action = result.result; action.flags = { search_view : false, sidebar : false, views_switcher : false, - action_buttons : false + action_buttons : false, + pager: false } - var node_attrs = this.node.attrs; - var content_id = 'portlet-content-'+node_attrs.name; - var action_manager = new openerp.base.ActionManager(this.session, content_id); - action_manager.start(); - action_manager.do_action(action); + var element_id = this.view.element_id + '_action_' + action.id; + var view = new openerp.base.ViewManagerAction(this.session, element_id, action); + view.start(); + }, + render: function() { + return QWeb.render(this.template, this); } -}) - -openerp.base.form.Vpaned = openerp.base.form.Widget.extend({ - init: function(view, node, board, child_index) { - - this._super(view, node, board, child_index); - this.board = board; - this.child_index = child_index; - }, - start: function() { - this._super.apply(this, arguments); - var children = this.node.children; - for(var chld=0; chld - -
-
-
- -
-
-
- - -
-
+ + +
+
+ +
+ +
+ + +
+
- - \ No newline at end of file +
+
+
+ +
+

+ Choose dashboard layout +

+
    +
  • +
  • +
  • +
  • +
  • +
+
+
+ + + + + + + + From 6c57b9ddc165c97239bd37ce45338898e827e46e Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 1 Jun 2011 04:38:09 +0000 Subject: [PATCH 31/64] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20110601043809-ocpn3eaostvtf4mx --- addons/base_action_rule/i18n/tr.po | 535 +++++++++++++++++++++++++++++ 1 file changed, 535 insertions(+) create mode 100644 addons/base_action_rule/i18n/tr.po diff --git a/addons/base_action_rule/i18n/tr.po b/addons/base_action_rule/i18n/tr.po new file mode 100644 index 00000000000..c7120a9b549 --- /dev/null +++ b/addons/base_action_rule/i18n/tr.po @@ -0,0 +1,535 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-05-31 13:20+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-01 04:38+0000\n" +"X-Generator: Launchpad (build 12959)\n" + +#. module: base_action_rule +#: help:base.action.rule,act_mail_to_user:0 +msgid "" +"Check this if you want the rule to send an email to the responsible person." +msgstr "" +"Sorumlu kişiye eposta gönderme kuralını kullanmak istiyorsanız bunu " +"işaretleyin." + +#. module: base_action_rule +#: field:base.action.rule,act_remind_partner:0 +msgid "Remind Partner" +msgstr "Paydaşa Anımsat" + +#. module: base_action_rule +#: field:base.action.rule,trg_partner_categ_id:0 +msgid "Partner Category" +msgstr "Paydaş Kategorisi" + +#. module: base_action_rule +#: field:base.action.rule,act_mail_to_watchers:0 +msgid "Mail to Watchers (CC)" +msgstr "İzleyicilere Postala (CC)" + +#. module: base_action_rule +#: field:base.action.rule,trg_state_to:0 +msgid "Button Pressed" +msgstr "Düğmeye Basıldı" + +#. module: base_action_rule +#: field:base.action.rule,model_id:0 +msgid "Object" +msgstr "Nesne" + +#. module: base_action_rule +#: field:base.action.rule,act_mail_to_email:0 +msgid "Mail to these Emails" +msgstr "Bu Epostalara yolla" + +#. module: base_action_rule +#: field:base.action.rule,act_state:0 +msgid "Set State to" +msgstr "Durumu şuna Ayarla" + +#. module: base_action_rule +#: field:base.action.rule,act_email_from:0 +msgid "Email From" +msgstr "Gelen Eposta" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Email Body" +msgstr "Eposta Gövdesi" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_range_type:0 +msgid "Days" +msgstr "Günler" + +#. module: base_action_rule +#: field:base.action.rule,last_run:0 +msgid "Last Run" +msgstr "Son Çalıştırma" + +#. module: base_action_rule +#: code:addons/base_action_rule/base_action_rule.py:313 +#, python-format +msgid "Error!" +msgstr "Hata!" + +#. module: base_action_rule +#: field:base.action.rule,act_reply_to:0 +msgid "Reply-To" +msgstr "Yanıtla" + +#. module: base_action_rule +#: help:base.action.rule,act_email_cc:0 +msgid "" +"These people will receive a copy of the future communication between partner " +"and users by email" +msgstr "" +"Bu kişiler paydaşla kullanıcılar arasındaki yapılacak iletişimin bir " +"kopyasını eposta yoluyla alacaklardır." + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_range_type:0 +msgid "Minutes" +msgstr "Dakikalar" + +#. module: base_action_rule +#: field:base.action.rule,name:0 +msgid "Rule Name" +msgstr "Kural Adı" + +#. module: base_action_rule +#: help:base.action.rule,act_remind_partner:0 +msgid "" +"Check this if you want the rule to send a reminder by email to the partner." +msgstr "" +"Kuralın ortağa hatırlatma E-Postası göndermesini istiyorsanız bunu seçiniz." + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Conditions on Model Partner" +msgstr "Model Paydaş için Koşullar" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_type:0 +msgid "Deadline" +msgstr "Bitiş tarihi" + +#. module: base_action_rule +#: field:base.action.rule,trg_partner_id:0 +msgid "Partner" +msgstr "Paydaş" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "%(object_subject)s = Object subject" +msgstr "%(nesne_konu)lar = Nesne konu" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Email Reminders" +msgstr "Eposta Anımsatıcıları" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Special Keywords to Be Used in The Body" +msgstr "Gövdede Kullanılacak Özel Anahtar Kelimeler" + +#. module: base_action_rule +#: field:base.action.rule,trg_state_from:0 +msgid "State" +msgstr "Durum" + +#. module: base_action_rule +#: model:ir.actions.act_window,help:base_action_rule.base_action_rule_act +msgid "" +"Use automated actions to automatically trigger actions for various screens. " +"Example: a lead created by a specific user may be automatically set to a " +"specific sales team, or an opportunity which still has status pending after " +"14 days might trigger an automatic reminder email." +msgstr "" +"Değişik ekranlar için kullanılacak otomatik tetikleme eylemleri için " +"otomatize eylemleri kullan. Örnek: belirli bir kullanıcı tarafından " +"oluşturulan paydaş otomatik olarak bir satış takımına atanabilir ya da halen " +"14 günlük bekleme durumunda olan bir fırsat otomatik anımsatma epostası ile " +"tetiklenebilir." + +#. module: base_action_rule +#: help:base.action.rule,act_mail_to_email:0 +msgid "Email-id of the persons whom mail is to be sent" +msgstr "Eposta gönderilecek kişinin Eposta kimliği" + +#. module: base_action_rule +#: view:base.action.rule:0 +#: model:ir.module.module,shortdesc:base_action_rule.module_meta_information +msgid "Action Rule" +msgstr "Eylem Kuralı" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Fields to Change" +msgstr "Değiştirilecek Alanlar" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_type:0 +msgid "Creation Date" +msgstr "Oluşturulma Tarihi" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_type:0 +msgid "Last Action Date" +msgstr "Son Eylem Tarihi" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_range_type:0 +msgid "Hours" +msgstr "Saatler" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "%(object_id)s = Object ID" +msgstr "%(nesne_no)s = Nesne NO" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Delay After Trigger Date" +msgstr "Tetikleme Tarihi sonrası Gecikme" + +#. module: base_action_rule +#: field:base.action.rule,act_remind_attach:0 +msgid "Remind with Attachment" +msgstr "Ek ile Anımsat" + +#. module: base_action_rule +#: constraint:ir.cron:0 +msgid "Invalid arguments" +msgstr "Geçersiz parametreler" + +#. module: base_action_rule +#: field:base.action.rule,act_user_id:0 +msgid "Set Responsible to" +msgstr "Sorumluyu şuna Ayarla" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_type:0 +msgid "None" +msgstr "Hiçbiri" + +#. module: base_action_rule +#: help:base.action.rule,act_email_to:0 +msgid "" +"Use a python expression to specify the right field on which one than we will " +"use for the 'To' field of the header" +msgstr "" +"Başlıkta 'Kime' için kullanılacak doğru alanı belirlemek için bir python " +"ifadesi kullanın" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "%(object_user_phone)s = Responsible phone" +msgstr "%(nesne_kullanıcı_telefon)lar = Sorumlu telefonu" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "" +"The rule uses the AND operator. The model must match all non-empty fields so " +"that the rule executes the action described in the 'Actions' tab." +msgstr "" +"Bu kural VE operatörünü kullanır. Model tüm boş olmayan alanlara uymalıdır " +"ki; kural 'Eylemler' sekmesinde belirtilen eylemi uygulasın." + +#. module: base_action_rule +#: field:base.action.rule,trg_date_range_type:0 +msgid "Delay type" +msgstr "Gecikme türü" + +#. module: base_action_rule +#: help:base.action.rule,regex_name:0 +msgid "" +"Regular expression for matching name of the resource\n" +"e.g.: 'urgent.*' will search for records having name starting with the " +"string 'urgent'\n" +"Note: This is case sensitive search." +msgstr "" +"Kaynak adına uygun kural ifadesi\n" +"ör.: 'acil.*' 'acil' dizesi ile başlayan bütün kayıtları arıyacaktır\n" +"Not: Harf durumu duyarlı bir aramadır." + +#. module: base_action_rule +#: field:base.action.rule,act_method:0 +msgid "Call Object Method" +msgstr "Nesne Arama Yöntemi" + +#. module: base_action_rule +#: field:base.action.rule,act_email_to:0 +msgid "Email To" +msgstr "Şuna Eposta Gönder" + +#. module: base_action_rule +#: help:base.action.rule,act_mail_to_watchers:0 +msgid "" +"Check this if you want the rule to mark CC(mail to any other person defined " +"in actions)." +msgstr "" +"Kuralın CC yi işaretlemesini isterseniz bunu işaretleyin (eylemlerde " +"tanımlanan herhangi bir kişiye postalama)" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "%(partner)s = Partner name" +msgstr "%(paydaş)lar = Paydaş Adı" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Note" +msgstr "Not" + +#. module: base_action_rule +#: help:base.action.rule,act_email_from:0 +msgid "" +"Use a python expression to specify the right field on which one than we will " +"use for the 'From' field of the header" +msgstr "" +"Başlıkta 'Kime' için kullanılacak doğru alanı belirlemek için bir python " +"ifadesi kullanın" + +#. module: base_action_rule +#: field:base.action.rule,trg_date_range:0 +msgid "Delay after trigger date" +msgstr "Tetikleme Tarihi sonrası Gecikme" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Conditions" +msgstr "Koşullar" + +#. module: base_action_rule +#: help:base.action.rule,trg_date_range:0 +msgid "" +"Delay After Trigger Date,specifies you can put a negative number. If you " +"need a delay before the trigger date, like sending a reminder 15 minutes " +"before a meeting." +msgstr "" +"Tetikleme Sonrası Gecikme, burada negatif sayı kullanabilirsiniz. Eğer " +"tetikleme tarihinden önce, örneğin toplantıdan 15 dakika önce anımsatma " +"gönder gibi, bir gecikmeye gerek duyarsanız." + +#. module: base_action_rule +#: field:base.action.rule,active:0 +msgid "Active" +msgstr "Etkin" + +#. module: base_action_rule +#: code:addons/base_action_rule/base_action_rule.py:314 +#, python-format +msgid "No E-Mail ID Found for your Company address!" +msgstr "Firma adresinizde bir Eposta Kimliği yok!" + +#. module: base_action_rule +#: field:base.action.rule,act_remind_user:0 +msgid "Remind Responsible" +msgstr "Sorumluya Hatırlat" + +#. module: base_action_rule +#: model:ir.module.module,description:base_action_rule.module_meta_information +msgid "This module allows to implement action rules for any object." +msgstr "" +"Bu modül herhangi bir nesne için eylem kurallaru uygulamanızı sağlar." + +#. module: base_action_rule +#: help:base.action.rule,sequence:0 +msgid "Gives the sequence order when displaying a list of rules." +msgstr "Kural listesini görüntülerken diziliş sırasını verir." + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_range_type:0 +msgid "Months" +msgstr "Aylar" + +#. module: base_action_rule +#: field:base.action.rule,filter_id:0 +msgid "Filter" +msgstr "Süzgeç" + +#. module: base_action_rule +#: selection:base.action.rule,trg_date_type:0 +msgid "Date" +msgstr "Tarih" + +#. module: base_action_rule +#: help:base.action.rule,server_action_id:0 +msgid "" +"Describes the action name.\n" +"eg:on which object which action to be taken on basis of which condition" +msgstr "" +"Eylem adını belirtir.\n" +"ör:koşula uygun olarak hangi nesne için hangi eylem ele alınır" + +#. module: base_action_rule +#: model:ir.model,name:base_action_rule.model_ir_cron +msgid "ir.cron" +msgstr "ir.cron" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "%(object_description)s = Object description" +msgstr "%(nesne_tanım)lar = Nesne açıklama" + +#. module: base_action_rule +#: constraint:base.action.rule:0 +msgid "Error: The mail is not well formated" +msgstr "Hata: Mail düzgün bir formatta değil" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Email Actions" +msgstr "Epsota Eylemleri" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Email Information" +msgstr "Eposta Bilgisi" + +#. module: base_action_rule +#: model:ir.model,name:base_action_rule.model_base_action_rule +msgid "Action Rules" +msgstr "Eylem Kuralları" + +#. module: base_action_rule +#: help:base.action.rule,act_mail_body:0 +msgid "Content of mail" +msgstr "Posta içeriği" + +#. module: base_action_rule +#: field:base.action.rule,trg_user_id:0 +msgid "Responsible" +msgstr "Sorumlu" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "%(partner_email)s = Partner Email" +msgstr "%(paydas_eposta)lar = Paydaş Eposta" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "%(object_date)s = Creation date" +msgstr "%(nesne_tarih)ler = Oluşturma tarihi" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "%(object_user_email)s = Responsible Email" +msgstr "%(nesne_kullanıcı_eposta)lar = Sorumlu Eposta" + +#. module: base_action_rule +#: field:base.action.rule,act_mail_body:0 +msgid "Mail body" +msgstr "Posta gövdesi" + +#. module: base_action_rule +#: help:base.action.rule,act_remind_user:0 +msgid "" +"Check this if you want the rule to send a reminder by email to the user." +msgstr "" +"Kullanıcıya eposta ile anımsatma gönderme kuralını kullanmak için bunu " +"işaretleyin." + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Server Action to be Triggered" +msgstr "Tetiklenecek Sunucu Eylemi" + +#. module: base_action_rule +#: field:base.action.rule,act_mail_to_user:0 +msgid "Mail to Responsible" +msgstr "Sorumluya Posta" + +#. module: base_action_rule +#: field:base.action.rule,act_email_cc:0 +msgid "Add Watchers (Cc)" +msgstr "İzleyici Ekle (Cc)" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Conditions on Model Fields" +msgstr "Model Alanları Koşulları" + +#. 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 "Otomatik Eylemler" + +#. module: base_action_rule +#: field:base.action.rule,server_action_id:0 +msgid "Server Action" +msgstr "Sunucu Eylemi" + +#. module: base_action_rule +#: field:base.action.rule,regex_name:0 +msgid "Regex on Resource Name" +msgstr "Kaynak Adı için Kurallı İfade" + +#. module: base_action_rule +#: help:base.action.rule,act_remind_attach:0 +msgid "" +"Check this if you want that all documents attached to the object be attached " +"to the reminder email sent." +msgstr "" +"Nesneye iliştirilmiş bütün belgelerin gönderilen anımsatma epostasına " +"eklenmesini isterseniz bunu işaretleyin." + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Conditions on Timing" +msgstr "Zamanlama Koşulları" + +#. module: base_action_rule +#: field:base.action.rule,sequence:0 +msgid "Sequence" +msgstr "Diziliş" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Actions" +msgstr "Eylemler" + +#. module: base_action_rule +#: help:base.action.rule,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the rule " +"without removing it." +msgstr "" +"Eğer etkin alanı Yanlış olarak işaretli ise, kuralı silmeden gizlemenizi " +"sağlar." + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "%(object_user)s = Responsible name" +msgstr "%(nesne_kullanıcı)lar = Sorumlu adı" + +#. module: base_action_rule +#: field:base.action.rule,create_date:0 +msgid "Create Date" +msgstr "Tarih Oluştur" + +#. module: base_action_rule +#: view:base.action.rule:0 +msgid "Conditions on States" +msgstr "Durum Koşulları" + +#. module: base_action_rule +#: field:base.action.rule,trg_date_type:0 +msgid "Trigger Date" +msgstr "Tetikleme Tarihi" From 6d1753a7342a6a64f1bac8340fae21530ed2d241 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 1 Jun 2011 09:44:00 +0200 Subject: [PATCH 32/64] [FIX] tools/config: properly cast config file values. bzr revid: vmt@openerp.com-20110601074400-hv1jrgoqw2ji0yah --- openerp/tools/config.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 7a10a774cf8..65f6726febc 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -72,6 +72,9 @@ class configmanager(object): ['publisher_warranty_url', 'load_language', 'root_path', 'init', 'save', 'config', 'update']) + # dictionary mapping option destination (keys in self.options) to MyOptions. + self.casts = {} + self.misc = {} self.config_file = fname self.has_ssl = check_ssl() @@ -251,6 +254,7 @@ class configmanager(object): for group in parser.option_groups: for option in group.option_list: self.options[option.dest] = option.my_default + self.casts[option.dest] = option self.parse_config() @@ -314,8 +318,12 @@ class configmanager(object): ] for arg in keys: + # Copy the command-line argument... if getattr(opt, arg): self.options[arg] = getattr(opt, arg) + # ... or keep, but cast, the config file value. + elif isinstance(self.options[arg], basestring) and self.casts[arg].type in optparse.Option.TYPE_CHECKER: + self.options[arg] = optparse.Option.TYPE_CHECKER[self.casts[arg].type](self.casts[arg], arg, self.options[arg]) keys = [ 'language', 'translate_out', 'translate_in', 'overwrite_existing_translations', @@ -327,8 +335,12 @@ class configmanager(object): ] for arg in keys: + # Copy the command-line argument... if getattr(opt, arg) is not None: self.options[arg] = getattr(opt, arg) + # ... or keep, but cast, the config file value. + elif isinstance(self.options[arg], basestring) and self.casts[arg].type in optparse.Option.TYPE_CHECKER: + self.options[arg] = optparse.Option.TYPE_CHECKER[self.casts[arg].type](self.casts[arg], arg, self.options[arg]) if opt.assert_exit_level: self.options['assert_exit_level'] = self._LOGLEVELS[opt.assert_exit_level] From 61a9b05a58a45e8142ba9aa767d27c73256e0037 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 1 Jun 2011 10:23:58 +0200 Subject: [PATCH 33/64] [IMP] Added first setup for embedded views. bzr revid: nicolas.vanhoren@openerp.com-20110601082358-adg1u4evi7s08iqf --- addons/base/static/src/js/form.js | 17 +++++++++++------ addons/base/static/src/js/list.js | 25 +++++++++++++++---------- addons/base/static/src/js/views.js | 5 +++-- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index be04f372573..787f50b75b4 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -31,10 +31,14 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.touched = false; this.flags = this.view_manager.flags || {}; }, - start: function() { + start: function(fields_view) { //this.log('Starting FormView '+this.model+this.view_id) - return this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id, - toolbar:!!this.flags.sidebar}, this.on_loaded); + if (fields_view) { + return $.Deferred().then(this.on_loaded).resolve({fields_view: fields_view}); + } else { + return this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id, + toolbar:!!this.flags.sidebar}, this.on_loaded); + } }, on_loaded: function(data) { var self = this; @@ -991,6 +995,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); + debugger; this.template = "FieldOne2Many"; this.is_started = $.Deferred(); this.is_setted = $.Deferred(); @@ -1013,13 +1018,13 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ this.viewmanager = new openerp.base.ViewManager(this.view.session, this.element_id, this.dataset, views); this.viewmanager.start(); - this.viewmanager.on_controller_inited.add_last(function(view_type) { + this.viewmanager.on_controller_inited.add_last(function(view_type, controller) { if (view_type == "list") { - self.is_started.resolve(); // TODO niv - } else { + } else if (view_type == "form") { // TODO niv } + self.is_started.resolve(); }); $.when(this.is_started, this.is_setted).then(function() { diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 0ecd17c141e..43c90708805 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -94,9 +94,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * * @returns {$.Deferred} loading promise */ - start: function() { + start: function(fields_view) { this.$element.addClass('oe-listview'); - return this.reload_view(); + return this.reload_view(undefined, fields_view); }, /** * Called after loading the list view's description, sets up such things @@ -254,17 +254,22 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * * @param {Boolean} [grouped] Should the list be displayed grouped */ - reload_view: function (grouped) { + reload_view: function (grouped, fields_view) { var self = this; this.dataset.offset = 0; this.dataset.limit = false; - return this.rpc('/base/listview/load', { - model: this.model, - view_id: this.view_id, - toolbar: !!this.flags.sidebar - }, function (field_view_get) { - self.on_loaded(field_view_get, grouped); - }); + var callback = function (field_view_get) { + self.on_loaded(field_view_get, grouped); + }; + if (fields_view) { + return $.Deferred().then(callback).resolve({fields_view: fields_view}); + } else { + return this.rpc('/base/listview/load', { + model: this.model, + view_id: this.view_id, + toolbar: !!this.flags.sidebar + }, callback); + } }, /** * re-renders the content of the list view diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 27d1253e9f8..9beb73aedde 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -122,7 +122,7 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ view_promise = controller.start(); var self = this; $.when(view_promise).then(function() { - self.on_controller_inited(view_type); + self.on_controller_inited(view_type, controller); }); this.views[view_type].controller = controller; } @@ -155,8 +155,9 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ * Event launched when a controller has been inited. * * @param {String} view_type type of view + * @param {String} view the inited controller */ - on_controller_inited: function(view_type) {}, + on_controller_inited: function(view_type, view) {}, /** * Sets up the current viewmanager's search view. * From 26d85afab623f00481ed1f5181f78ee03b4eeed0 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 1 Jun 2011 11:11:16 +0200 Subject: [PATCH 34/64] [IMP] account: added access rights for model_account_treasury_report bzr revid: qdp-launchpad@openerp.com-20110601091116-iysfehqoj7r2hlue --- addons/account/security/ir.model.access.csv | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/account/security/ir.model.access.csv b/addons/account/security/ir.model.access.csv index 1ab94806b63..50e8dced7e6 100644 --- a/addons/account/security/ir.model.access.csv +++ b/addons/account/security/ir.model.access.csv @@ -125,3 +125,5 @@ "access_account_invoice_tax_sale_manager","account.invoice.tax sale manager","model_account_invoice_tax","base.group_sale_salesman",1,0,0,0 "access_account_sequence_fiscal_year_sale_user","account.sequence.fiscalyear.sale.user","model_account_sequence_fiscalyear","base.group_sale_salesman",1,1,1,0 "access_account_sequence_fiscal_year_sale_manager","account.sequence.fiscalyear.sale.manager","model_account_sequence_fiscalyear","base.group_sale_manager",1,1,1,1 +"access_account_treasury_report_manager","account.treasury.report.manager","model_account_treasury_report","account.group_account_manager",1,0,0,0 + From 7d60eddba8f89c00c5f3cad205c478f84f72e769 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 1 Jun 2011 12:20:21 +0200 Subject: [PATCH 35/64] [IMP] account, analytic accounting: added group by state on analytic accounts bzr revid: qdp-launchpad@openerp.com-20110601102021-pe3ixdhuwd410g0j --- addons/account/project/project_view.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index 1e3f4d5d373..e1f383f4792 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -17,6 +17,7 @@ + @@ -44,6 +45,7 @@ + From c491593b57ecf2b5528cb9093e97b11be4d5039b Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 1 Jun 2011 12:36:31 +0200 Subject: [PATCH 36/64] [IMP] project_mrp: improved project description bzr revid: odo@openerp.com-20110601103631-6ei1ugahbwe1ibpq --- addons/project_mrp/__openerp__.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/addons/project_mrp/__openerp__.py b/addons/project_mrp/__openerp__.py index 09d2c48fa08..ed723dda1f6 100644 --- a/addons/project_mrp/__openerp__.py +++ b/addons/project_mrp/__openerp__.py @@ -21,29 +21,30 @@ { - 'name': 'Procurement and Project Management integration', + 'name': 'Automatic task creation from procurement lines', 'version': '1.0', 'category': 'Project Management', 'description': """ -This module creates a link between procurement orders containing "service" lines and project management tasks. -============================================================================================================== +Automatically creates project tasks from procurement lines +========================================================== -When installed, this module will automatically create a new task -for each procurement order line, when the corresponding product +This module will automatically create a new task for each procurement +order line (e.g. for sale order lines), if the corresponding product meets the following characteristics: * Type = Service * Procurement method (Order fulfillment) = MTO (make to order) * Supply/Procurement method = Produce -The new task is created outside of any existing project, but -can be added to a project manually. +If on top of that a projet is specified on the product form (in the Procurement +tab), then the new task will be created in that specific project. +Otherwise, the new task will not belong to any project, and may be added to a +project manually later. When the project task is completed or cancelled, the workflow of the corresponding -procurement line is updated accordingly. - -This module is useful to be able to invoice services based on tasks -automatically created via sale orders. +procurement line is updated accordingly. For example if this procurement corresponds +to a sale order line, the sale order line will be considered delivered when the +task is completed. """, 'author': 'OpenERP SA', From c5f4eab14a7f4d513415fd94b0f12e47d45328ad Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 1 Jun 2011 12:38:02 +0200 Subject: [PATCH 37/64] [IMP] board: board.fields_view_get now returns the "custom_view_id" if there was one This can be used by client side to display special features regarding customization, like "Undo" buttons, etc. bzr revid: odo@openerp.com-20110601103802-swxqe17bts7rqn2k --- addons/board/board.py | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/board/board.py b/addons/board/board.py index 7de35fcc5f8..85f2cce7ef7 100644 --- a/addons/board/board.py +++ b/addons/board/board.py @@ -129,6 +129,7 @@ class board_board(osv.osv): if vids: view_id = vids[0] arch = self.pool.get('ir.ui.view.custom').browse(cr, user, view_id, context=context) + res['custom_view_id'] = view_id res['arch'] = arch.arch res['arch'] = self._arch_preprocessing(cr, user, res['arch'], context=context) res['toolbar'] = {'print': [], 'action': [], 'relate': []} From a270d19d81624a72ee69f23f5619894d7f64836e Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 1 Jun 2011 12:52:09 +0200 Subject: [PATCH 38/64] [IMP] ir.ui.view.custom: order by create_date descending This way search(limit=1) will give you the latest customization for a given user. This can be used by client side to allow multiple customizations with multi-level undo. bzr revid: odo@openerp.com-20110601105209-vtgf73reh90uipct --- openerp/addons/base/ir/ir_ui_view.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index 1600fa62d90..8aa4c0882bd 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -46,6 +46,7 @@ def _check_xml(self, cr, uid, ids, context=None): class view_custom(osv.osv): _name = 'ir.ui.view.custom' + _order = 'create_date desc' # search(limit=1) should return the last customization _columns = { 'ref_id': fields.many2one('ir.ui.view', 'Original View', select=True), 'user_id': fields.many2one('res.users', 'User', select=True), From 778b43b2dea2d5c43a7cfe4dda9c1365556232ff Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 1 Jun 2011 12:56:52 +0200 Subject: [PATCH 39/64] [FIX] Do not call success_callback if none given bzr revid: fme@openerp.com-20110601105652-wmtapmthal3yi9h6 --- addons/base/static/src/js/chrome.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 4c1e1962d88..86549eca001 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -371,7 +371,7 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b } else { error_callback(response.error); } - } else { + } else if (success_callback) { success_callback(response["result"], textStatus, jqXHR); } }, From 4b3aa9c7641c0dfc07953e137a466b1478674b8a Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 1 Jun 2011 13:33:53 +0200 Subject: [PATCH 40/64] [FIX] modules/loading: revert a change where db.initialize was removed: - it should be removed - but some code will test if the ir_module_module table exists - and will force the demo data. bzr revid: vmt@openerp.com-20110601113353-hdmyl4is9poss8hh --- openerp/service/web_services.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 10ab738c15b..39457807868 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -90,7 +90,12 @@ class db(netsvc.ExportService): cr = None try: serv.actions[id]['progress'] = 0 + cr = sql_db.db_connect(db_name).cursor() + openerp.modules.db.initialize(cr) # TODO this should be removed as it is done by pooler.restart_pool. tools.config['lang'] = lang + cr.commit() + cr.close() + pool = pooler.restart_pool(db_name, demo, serv.actions[id], update_module=True)[1] From b681b0ec75cf2ba6b6f8ef219c32f019358696e6 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 1 Jun 2011 13:50:55 +0200 Subject: [PATCH 41/64] [ADD] tools/config: started tests. bzr revid: vmt@openerp.com-20110601115055-idoid8p0pnkfci38 --- openerp/tools/config.py | 6 ++-- openerp/tools/test-config-values | 25 +++++++++++++ openerp/tools/test-config-values-00.conf | 3 ++ openerp/tools/test_config.py | 46 ++++++++++++++++++++++++ 4 files changed, 78 insertions(+), 2 deletions(-) create mode 100755 openerp/tools/test-config-values create mode 100644 openerp/tools/test-config-values-00.conf create mode 100644 openerp/tools/test_config.py diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 65f6726febc..9a59235773a 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -258,8 +258,10 @@ class configmanager(object): self.parse_config() - def parse_config(self, args=[]): - opt, args = self.parser.parse_args() + def parse_config(self, args=None): + if args is None: + args = [] + opt, args = self.parser.parse_args(args) def die(cond, msg): if cond: diff --git a/openerp/tools/test-config-values b/openerp/tools/test-config-values new file mode 100755 index 00000000000..43991e8a21d --- /dev/null +++ b/openerp/tools/test-config-values @@ -0,0 +1,25 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import logging +import os +import signal +import sys +import threading +import traceback +import time + +import openerp + +openerp.tools.config.parse_config(sys.argv[1:]) +config = openerp.tools.config + +for name in [ + 'db_name', + 'addons_path', + 'demo', + 'osv_memory_count_limit', + 'osv_memory_age_limit', + ]: + print "%s: %s - %s" % (name, config[name], type(config[name])) + diff --git a/openerp/tools/test-config-values-00.conf b/openerp/tools/test-config-values-00.conf new file mode 100644 index 00000000000..1d0bd7419fe --- /dev/null +++ b/openerp/tools/test-config-values-00.conf @@ -0,0 +1,3 @@ +[options] +osv_memory_count_limit = 5 +osv_memory_age_limit = 3.4 diff --git a/openerp/tools/test_config.py b/openerp/tools/test_config.py new file mode 100644 index 00000000000..256e7ba4c32 --- /dev/null +++ b/openerp/tools/test_config.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- + +""" Tests for the configuration file/command-line arguments. """ + +# This test should be run from its directory. + +# TODO A configmanager object cannot parse multiple times a config file +# and/or the command line, preventing to 'reload' a configuration. + +import os + +import config + +config_file_00 = os.path.join(os.path.dirname(__file__),'test-config-values-00.conf') + +# 1. No config file, no command-line arguments (a.k.a. default values) + +conf = config.configmanager() +conf.parse_config() + +assert conf['osv_memory_age_limit'] == 1.0 +assert os.path.join(conf['root_path'], 'addons') == conf['addons_path'] + +# 2. No config file, some command-line arguments + +conf = config.configmanager() +# mess with the optparse.Option definition to allow an invalid path +conf.casts['addons_path'].action = 'store' +conf.parse_config(['--addons-path=/xyz/dont-exist', '--osv-memory-age-limit=2.3']) + +assert conf['osv_memory_age_limit'] == 2.3 +assert conf['addons_path'] == '/xyz/dont-exist' + +# 3. Config file, no command-line arguments + +conf = config.configmanager() +conf.parse_config(['-c', config_file_00]) + +assert conf['osv_memory_age_limit'] == 3.4 + +# 4. Config file, and command-line arguments + +conf = config.configmanager() +conf.parse_config(['-c', config_file_00, '--osv-memory-age-limit=2.3']) + +assert conf['osv_memory_age_limit'] == 2.3 From dac344cf3115e6e872809c5c03d3ff07968df6e5 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 1 Jun 2011 15:45:14 +0200 Subject: [PATCH 42/64] [ADD] Add custom views management (add, undo) in View controller bzr revid: fme@openerp.com-20110601134514-dv91qpjl50ptf161 --- addons/base/controllers/main.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 35289e487af..94eb05f7d6c 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -456,6 +456,8 @@ class DataGroup(openerpweb.Controller): dict(request.context, group_by=group_by_fields)) class View(openerpweb.Controller): + _cp_path = "/base/view" + def fields_view_get(self, request, model, view_id, view_type, transform=True, toolbar=False, submenu=False): Model = request.session.model(model) @@ -471,6 +473,25 @@ class View(openerpweb.Controller): fvg['arch'] = Xml2Json.convert_element(xml) return fvg + @openerpweb.jsonrequest + def add_custom(self, request, view_id, arch): + CustomView = request.session.model('ir.ui.view.custom') + CustomView.create({ + 'user_id': request.session._uid, + 'ref_id': view_id, + 'arch': arch + }) + return {'result': True} + + @openerpweb.jsonrequest + def undo_custom(self, request, view_id): + CustomView = request.session.model('ir.ui.view.custom') + vcustom = CustomView.search([('user_id', '=', request.session._uid), ('ref_id' ,'=', view_id)]) + if vcustom: + CustomView.unlink([vcustom[0]]) + return {'result': True} + return {'result': False} + def normalize_attrs(self, elem, context): """ Normalize @attrs, @invisible, @required, @readonly and @states, so the client only has to deal with @attrs. From 82d7cefef253239ec2a4fcac4ac870e23e31ceba Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 1 Jun 2011 15:48:00 +0200 Subject: [PATCH 43/64] [ADD] Save Dashboard's custom views with "Undo" button support bzr revid: fme@openerp.com-20110601134800-d9j48t4f287pokr6 --- .../static/src/css/dashboard.css | 9 ++++ .../base_dashboard/static/src/js/dashboard.js | 43 ++++++++++++++----- .../static/src/xml/base_dashboard.xml | 15 ++++--- 3 files changed, 51 insertions(+), 16 deletions(-) diff --git a/addons/base_dashboard/static/src/css/dashboard.css b/addons/base_dashboard/static/src/css/dashboard.css index 071a8cb8228..57f1ceb8f98 100644 --- a/addons/base_dashboard/static/src/css/dashboard.css +++ b/addons/base_dashboard/static/src/css/dashboard.css @@ -18,6 +18,15 @@ .openerp .oe-dashboard-action .oe-dashboard-action-header:hover { cursor: move; } +.openerp .oe-dashboard-action .ui-icon { + cursor: pointer; +} +.openerp .oe-dashboard-action .ui-icon:hover { + background-color: #ccc; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; +} .openerp .oe-dashboard-action .oe-dashboard-action-header .ui-icon { float: right; diff --git a/addons/base_dashboard/static/src/js/dashboard.js b/addons/base_dashboard/static/src/js/dashboard.js index 3e253194d57..8497ffc2ce5 100644 --- a/addons/base_dashboard/static/src/js/dashboard.js +++ b/addons/base_dashboard/static/src/js/dashboard.js @@ -10,22 +10,18 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ start: function() { var self = this; this._super.apply(this, arguments); + this.$element.find(".oe-dashboard-column").sortable({ connectWith: ".oe-dashboard-column", scroll: false }).disableSelection().bind('sortstop', self.do_save_dashboard); + + // Events + this.$element.find('.oe-dashboard-link-undo').click(this.on_undo); this.$element.find('.oe-dashboard-link-add_widget').click(this.on_add_widget); this.$element.find('.oe-dashboard-link-edit_layout').click(this.on_edit_layout); - - this.$element.find('.oe-dashboard-column .ui-icon-minusthick').click(function() { - $(this).toggleClass('ui-icon-minusthick').toggleClass('ui-icon-plusthick'); - $(this).parents('.oe-dashboard-action:first .oe-dashboard-action-content').toggle(); - }); - - $('.oe-dashboard-column .ui-icon-closethick').click(function() { - $(this).parents('.oe-dashboard-action:first').remove(); - self.do_save_dashboard(); - }); + this.$element.find('.oe-dashboard-column .ui-icon-minusthick').click(this.on_fold_action); + this.$element.find('.oe-dashboard-column .ui-icon-closethick').click(this.on_close_action); this.actions_attrs = {}; // Init actions @@ -41,13 +37,28 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ }); }); }, + on_undo: function() { + this.rpc('/base/view/undo_custom', { + view_id: this.view.fields_view.view_id + }, this.do_reload); + }, on_add_widget: function() { }, on_edit_layout: function() { }, + on_fold_action: function(e) { + var $e = $(e.currentTarget); + $e.toggleClass('ui-icon-minusthick ui-icon-plusthick'); + $e.parents('.oe-dashboard-action:first').find('.oe-dashboard-action-content').toggle(); + }, + on_close_action: function(e) { + $(e.currentTarget).parents('.oe-dashboard-action:first').remove(); + this.do_save_dashboard(); + }, do_save_dashboard: function() { var self = this; var board = { + form_title : this.view.fields_view.arch.attrs.string, style : this.$element.find('.oe-dashboard').attr('data-layout'), columns : [] }; @@ -59,7 +70,13 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ }); board.columns.push(actions); }); - var xml = QWeb.render('DashBoard.xml', board); + var arch = QWeb.render('DashBoard.xml', board); + this.rpc('/base/view/add_custom', { + view_id: this.view.fields_view.view_id, + arch: arch + }, function() { + self.$element.find('.oe-dashboard-link-undo').show(); + }); }, on_load_action: function(result) { var action = result.result; @@ -76,6 +93,10 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ }, render: function() { return QWeb.render(this.template, this); + }, + do_reload: function() { + this.view.view_manager.stop(); + this.view.view_manager.start(); } }); openerp.base.form.DashBoardLegacy = openerp.base.form.DashBoard.extend({ diff --git a/addons/base_dashboard/static/src/xml/base_dashboard.xml b/addons/base_dashboard/static/src/xml/base_dashboard.xml index 349823847aa..80667dec557 100644 --- a/addons/base_dashboard/static/src/xml/base_dashboard.xml +++ b/addons/base_dashboard/static/src/xml/base_dashboard.xml @@ -1,6 +1,9 @@ From ce5d00e03b067010a1d0efb7fb276620358045cc Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 3 Jun 2011 10:57:58 +0200 Subject: [PATCH 44/64] [REF] res_lang: removed unused variable. lp bug: https://launchpad.net/bugs/791756 fixed bzr revid: vmt@openerp.com-20110603085758-ji277jy5mbn9wq3t --- openerp/addons/base/res/res_lang.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/res/res_lang.py b/openerp/addons/base/res/res_lang.py index 600f31aead2..fb3156cd4c9 100644 --- a/openerp/addons/base/res/res_lang.py +++ b/openerp/addons/base/res/res_lang.py @@ -50,9 +50,9 @@ class lang(osv.osv): if not lang: return False lang_ids = self.search(cr, uid, [('code','=', lang)]) - ir_values_obj = self.pool.get('ir.values') if not lang_ids: - lang_id = self.load_lang(cr, uid, lang) + self.load_lang(cr, uid, lang) + ir_values_obj = self.pool.get('ir.values') default_value = ir_values_obj.get(cr, uid, 'default', False, ['res.partner']) if not default_value: ir_values_obj.set(cr, uid, 'default', False, 'lang', ['res.partner'], lang) From a2557925b64e93161a7006572f970e7f208c3dd5 Mon Sep 17 00:00:00 2001 From: "P. Christeas" Date: Sun, 5 Jun 2011 16:51:16 +0300 Subject: [PATCH 45/64] yaml_import: fix ambiguous syntax at end of report When finishing a YAML import, the syntax ["str %d" % int + int] turns out to be ambiguous and is resolved as [ ("str %d" % int) + int], leading to a: TypeError: cannot concatenate 'str' and 'int' objects This had been first fixed in commit f46966e044d18a644 (2010-06-30) (cherry picked from commit cc0c584e5dfbf672d51f61e7207047f357e31471) bzr revid: xrg@linux.gr-20110605135116-ie2h7gnvnx2kpdoy --- openerp/tools/yaml_import.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index 2b6c0815e0d..ff4029d1f15 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -105,7 +105,7 @@ class TestReport(object): success += self._report[severity][True] failure += self._report[severity][False] res.append("total\t%s\t%s" % (success, failure)) - res.append("end of report (%s assertion(s) checked)" % success + failure) + res.append("end of report (%s assertion(s) checked)" % (success + failure)) return "\n".join(res) class RecordDictWrapper(dict): From 552afb10c5e9b053fd01904303777295c90ab7e0 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Mon, 6 Jun 2011 04:37:18 +0000 Subject: [PATCH 46/64] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20110603044017-yoke5zwvpebyo93o bzr revid: launchpad_translations_on_behalf_of_openerp-20110604045342-rkt8o6e65uyj8kjd bzr revid: launchpad_translations_on_behalf_of_openerp-20110605043539-vvllkcbozllrdlg7 bzr revid: launchpad_translations_on_behalf_of_openerp-20110606043718-0i2770ro7c0oho9t --- .../account_analytic_default/i18n/sr@latin.po | 19 +- addons/account_anglo_saxon/i18n/sr@latin.po | 29 +- addons/account_anglo_saxon/i18n/tr.po | 8 +- addons/account_cancel/i18n/sr@latin.po | 14 +- addons/account_chart/i18n/sr@latin.po | 12 +- addons/account_coda/i18n/vi.po | 8 +- addons/account_followup/i18n/tr.po | 260 +++++++--- addons/account_payment/i18n/vi.po | 28 +- addons/account_voucher/i18n/pt_BR.po | 49 +- addons/base_crypt/i18n/vi.po | 73 +++ addons/crm/i18n/sv.po | 38 +- addons/crm/i18n/tr.po | 476 ++++++++++-------- addons/email_template/i18n/sv.po | 16 +- addons/event/i18n/sv.po | 10 +- addons/hr_attendance/i18n/vi.po | 110 ++-- addons/hr_holidays/i18n/vi.po | 152 +++--- addons/hr_payroll/i18n/es_EC.po | 452 ++++++++++------- addons/marketing/i18n/tr.po | 122 +++++ addons/mrp_repair/i18n/sv.po | 31 +- addons/product/i18n/vi.po | 44 +- addons/project_caldav/i18n/sv.po | 10 +- addons/project_scrum/i18n/sv.po | 10 +- 22 files changed, 1208 insertions(+), 763 deletions(-) create mode 100644 addons/base_crypt/i18n/vi.po create mode 100644 addons/marketing/i18n/tr.po diff --git a/addons/account_analytic_default/i18n/sr@latin.po b/addons/account_analytic_default/i18n/sr@latin.po index 7ca25d88a4f..fb334b46579 100644 --- a/addons/account_analytic_default/i18n/sr@latin.po +++ b/addons/account_analytic_default/i18n/sr@latin.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2010-12-23 15:15+0000\n" -"Last-Translator: Olivier Dony (OpenERP) \n" +"PO-Revision-Date: 2011-06-04 19:05+0000\n" +"Last-Translator: Milan Milosevic \n" "Language-Team: Serbian latin \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:25+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-05 04:35+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: account_analytic_default #: model:ir.module.module,shortdesc:account_analytic_default.module_meta_information @@ -147,6 +147,15 @@ msgid "" "* Date\n" " " msgstr "" +"\n" +"Omogućava automatsko biranje analitičkih računa bazirano na " +"sl,kriterijumima:\n" +"*Proizvod\n" +"*Partner\n" +"*Korisnik\n" +"*Preduzeće\n" +"*Datum\n" +" " #. module: account_analytic_default #: help:account.analytic.default,product_id:0 @@ -201,7 +210,7 @@ msgstr "" #. module: account_analytic_default #: model:ir.model,name:account_analytic_default.model_sale_order_line msgid "Sales Order Line" -msgstr "" +msgstr "Redosled narudžbina" #~ msgid "" #~ "The Object name must start with x_ and not contain any special character !" diff --git a/addons/account_anglo_saxon/i18n/sr@latin.po b/addons/account_anglo_saxon/i18n/sr@latin.po index 62a74b9b1af..10b3a8cbb89 100644 --- a/addons/account_anglo_saxon/i18n/sr@latin.po +++ b/addons/account_anglo_saxon/i18n/sr@latin.po @@ -8,50 +8,51 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2010-12-10 15:54+0000\n" +"PO-Revision-Date: 2011-06-04 19:30+0000\n" "Last-Translator: Milan Milosevic \n" "Language-Team: Serbian latin \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:42+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-05 04:35+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: account_anglo_saxon #: view:product.category:0 msgid " Accounting Property" -msgstr "" +msgstr " Vlasništvo naloga" #. module: account_anglo_saxon #: sql_constraint:purchase.order:0 msgid "Order Reference must be unique !" -msgstr "" +msgstr "Referenca narudžbine mora biti jedinstvena !" #. module: account_anglo_saxon #: constraint:product.category:0 msgid "Error ! You can not create recursive categories." -msgstr "" +msgstr "Greška! Ne možete da napravite rekurzivne kategorije." #. module: account_anglo_saxon #: constraint:product.template:0 msgid "" "Error: The default UOM and the purchase UOM must be in the same category." msgstr "" +"Greška: Podrazumevana JM i kupljena JM moraju da budu u istoj kategoriji." #. module: account_anglo_saxon #: model:ir.model,name:account_anglo_saxon.model_account_invoice_line msgid "Invoice Line" -msgstr "" +msgstr "Red računa" #. module: account_anglo_saxon #: model:ir.model,name:account_anglo_saxon.model_purchase_order msgid "Purchase Order" -msgstr "" +msgstr "Narudžbenica" #. module: account_anglo_saxon #: model:ir.model,name:account_anglo_saxon.model_product_template msgid "Product Template" -msgstr "" +msgstr "Šablon proizvoda" #. module: account_anglo_saxon #: model:ir.model,name:account_anglo_saxon.model_product_category @@ -61,23 +62,23 @@ msgstr "Kategorija Proizvoda" #. module: account_anglo_saxon #: model:ir.module.module,shortdesc:account_anglo_saxon.module_meta_information msgid "Stock Accounting for Anglo Saxon countries" -msgstr "" +msgstr "Lager koji važi za anglosaksonske zemlje" #. module: account_anglo_saxon #: field:product.category,property_account_creditor_price_difference_categ:0 #: field:product.template,property_account_creditor_price_difference:0 msgid "Price Difference Account" -msgstr "" +msgstr "Odnos u razlici cena" #. module: account_anglo_saxon #: model:ir.model,name:account_anglo_saxon.model_account_invoice msgid "Invoice" -msgstr "" +msgstr "Račun" #. module: account_anglo_saxon #: model:ir.model,name:account_anglo_saxon.model_stock_picking msgid "Picking List" -msgstr "" +msgstr "Lista ponuda" #. module: account_anglo_saxon #: model:ir.module.module,description:account_anglo_saxon.module_meta_information @@ -105,3 +106,5 @@ msgid "" "This account will be used to value price difference between purchase price " "and cost price." msgstr "" +"Ovaj nalog biće upotrebljen u svrhu određivanja vrednosti razlike između " +"nabavne i prodajne cene." diff --git a/addons/account_anglo_saxon/i18n/tr.po b/addons/account_anglo_saxon/i18n/tr.po index 08822391ec6..396c8ab8ab6 100644 --- a/addons/account_anglo_saxon/i18n/tr.po +++ b/addons/account_anglo_saxon/i18n/tr.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-05-30 05:39+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-06-02 17:13+0000\n" +"Last-Translator: Ayhan KIZILTAN \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-31 04:47+0000\n" +"X-Launchpad-Export-Date: 2011-06-03 04:40+0000\n" "X-Generator: Launchpad (build 12959)\n" #. module: account_anglo_saxon @@ -98,6 +98,8 @@ msgid "" " Secondly, price differences between actual purchase price and fixed " "product standard price are booked on a separate account" msgstr "" +"Bu modül, Anglo-Saxon muhasebe yöntemini stok işlemleri yoluyla muhasebe \n" +" mantığını değştirerek destekleyecektir." #. module: account_anglo_saxon #: help:product.category,property_account_creditor_price_difference_categ:0 diff --git a/addons/account_cancel/i18n/sr@latin.po b/addons/account_cancel/i18n/sr@latin.po index 04c43bebea8..e067bc9d59e 100644 --- a/addons/account_cancel/i18n/sr@latin.po +++ b/addons/account_cancel/i18n/sr@latin.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2010-12-23 16:26+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-04 19:10+0000\n" +"Last-Translator: Milan Milosevic \n" "Language-Team: Serbian latin \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:46+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-05 04:35+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: account_cancel #: model:ir.module.module,description:account_cancel.module_meta_information @@ -26,9 +26,9 @@ msgid "" " " msgstr "" "\n" -" Modul adds omogucava polja za otkazivanje u formi pregleda dnevnika " -"konta. Ako je postavljeno na ' da' omogucava korisniku da otkaze stavke & " -"racune\n" +" Modul dodaje polje 'Omogući otkazivanje unosâ' u obliku pregleda " +"dnevnika naloga. Ako je podešen na 'istinito', omogućava korisniku da " +"otkazuje unose i račune.\n" " " #. module: account_cancel diff --git a/addons/account_chart/i18n/sr@latin.po b/addons/account_chart/i18n/sr@latin.po index 5e1ab3c83de..fbd53d83c42 100644 --- a/addons/account_chart/i18n/sr@latin.po +++ b/addons/account_chart/i18n/sr@latin.po @@ -8,21 +8,21 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2010-12-23 15:15+0000\n" -"Last-Translator: Dragan Životić \n" +"PO-Revision-Date: 2011-06-04 19:11+0000\n" +"Last-Translator: Milan Milosevic \n" "Language-Team: Serbian latin \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:40+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-05 04:35+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: account_chart #: model:ir.module.module,description:account_chart.module_meta_information msgid "Remove minimal account chart" -msgstr "Ukloni minimalnu kontnu tabelu" +msgstr "Ukloni minimalnu tabelu naloga" #. module: account_chart #: model:ir.module.module,shortdesc:account_chart.module_meta_information msgid "Charts of Accounts" -msgstr "" +msgstr "Tabele nalogâ" diff --git a/addons/account_coda/i18n/vi.po b/addons/account_coda/i18n/vi.po index f153607a1d1..c81c4dd2dfd 100644 --- a/addons/account_coda/i18n/vi.po +++ b/addons/account_coda/i18n/vi.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-05-29 14:29+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-06-04 22:47+0000\n" +"Last-Translator: Nguyễn Thịnh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-30 04:59+0000\n" +"X-Launchpad-Export-Date: 2011-06-06 04:37+0000\n" "X-Generator: Launchpad (build 12959)\n" #. module: account_coda @@ -114,7 +114,7 @@ msgstr "Người sử dụng" #: view:account.coda:0 #: field:account.coda,date:0 msgid "Date" -msgstr "" +msgstr "Ngày" #. module: account_coda #: model:ir.ui.menu,name:account_coda.menu_account_coda_statement diff --git a/addons/account_followup/i18n/tr.po b/addons/account_followup/i18n/tr.po index 94e74684688..4e4ce7e1db9 100644 --- a/addons/account_followup/i18n/tr.po +++ b/addons/account_followup/i18n/tr.po @@ -7,25 +7,25 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2010-10-30 15:46+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2011-06-02 17:04+0000\n" +"Last-Translator: Ayhan KIZILTAN \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:03+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-03 04:39+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: account_followup -#: code:addons/account_followup/wizard/account_followup_print.py:295 +#: code:addons/account_followup/wizard/account_followup_print.py:298 #, python-format msgid "Follwoup Summary" -msgstr "" +msgstr "İzleme Özeti" #. module: account_followup #: view:account_followup.followup:0 msgid "Search Followup" -msgstr "" +msgstr "İzleme Ara" #. module: account_followup #: model:ir.module.module,description:account_followup.module_meta_information @@ -51,11 +51,31 @@ msgid "" "Sent\n" "\n" msgstr "" +"\n" +" Çok seviyeli anımsatmalı ödenmemiş faturaları otomatize etmek için " +"kullanılan modüllerdir.\n" +"\n" +" Bu menüden anımsatmaların çoklu seviyelerini tanımlayabilirsiniz :\n" +" Muhasebe/Yapılandırma/Çeşitli/İzlemeler\n" +"\n" +" Bir kez tanımlandıktan sonra menüden basit bir tıklamayla\n" +" anımsatmaları hergün otomatik olarak yazdırabilirsiniz:\n" +" Muhasebe/Periyodik İşlemler/Faturalama/İzlemeleri Gönder\n" +"\n" +" Tanımlanan çeşitli seviyelere göre bütün mektupların birer PDF\n" +" suretlerini oluşturur. Farklı şirketler için farklı politikalar\n" +" tanımlayabilirsiniz. Müşteriye posta olarak ta gönderebilirsiniz.\n" +"\n" +" Eğer bir paydaş/hesap kaydı izleme seviyesini değiştirmek isterseniz, " +"bunu aşağıda belirtilen menüden yapabilirsiniz :\n" +" Muhasebe/Raporlama/Genel Raporlama/Paydaş Hesapları/Gönderilen " +"İzlemeler\n" +"\n" #. module: account_followup #: view:account_followup.stat:0 msgid "Group By..." -msgstr "Grupla..." +msgstr "Gruplandır..." #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:290 @@ -67,12 +87,17 @@ msgid "" "\n" "%s" msgstr "" +"\n" +"\n" +"Aşağıdaki Paydaşlara Eposta başarılı bir şekildegönderilmiştir. !\n" +"\n" +"%s" #. module: account_followup #: view:account_followup.followup:0 #: field:account_followup.followup,followup_line:0 msgid "Follow-Up" -msgstr "İş Takipçisi" +msgstr "İzleme" #. module: account_followup #: field:account_followup.followup,company_id:0 @@ -90,13 +115,14 @@ msgstr "Fatura Tarihi" #. module: account_followup #: field:account.followup.print.all,email_subject:0 msgid "Email Subject" -msgstr "E-Mail Konusu" +msgstr "Eposta Konusu" #. module: account_followup #: model:ir.actions.act_window,help:account_followup.action_followup_stat msgid "" "Follow up on the reminders sent over to your partners for unpaid invoices." msgstr "" +"Ödenmemiş faturalar için paydaşlarınıza gönderilen anımsatmaları izleyin." #. module: account_followup #: view:account.followup.print.all:0 @@ -112,38 +138,38 @@ msgstr "Tamam" #. module: account_followup #: view:account.followup.print.all:0 msgid "Select Partners to Remind" -msgstr "Hatırlatmak için İş Ortağı seç" +msgstr "Anımsatma yapılacak Paydaşı seç" #. module: account_followup #: constraint:account.move.line:0 msgid "You can not create move line on closed account." -msgstr "" +msgstr "Kapanmış bir hesap için hareket yaratamazsınız." #. module: account_followup #: field:account.followup.print,date:0 msgid "Follow-up Sending Date" -msgstr "İş Takibi Gönderim Tarihi" +msgstr "İzleme Gönderim Tarihi" #. module: account_followup #: sql_constraint:account.move.line:0 msgid "Wrong credit or debit value in accounting entry !" -msgstr "" +msgstr "Hesap girişindeki alacak ya da Borç değeri hatalı !" #. module: account_followup #: selection:account_followup.followup.line,start:0 msgid "Net Days" -msgstr "" +msgstr "Net Gün Sayısı" #. module: account_followup #: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form #: model:ir.ui.menu,name:account_followup.account_followup_menu msgid "Follow-Ups" -msgstr "İş Takipçisi" +msgstr "İzlemeler" #. module: account_followup #: view:account_followup.stat.by.partner:0 msgid "Balance > 0" -msgstr "" +msgstr "Bakiye > 0" #. module: account_followup #: view:account.move.line:0 @@ -153,18 +179,18 @@ msgstr "Toplam Borç" #. module: account_followup #: view:account.followup.print.all:0 msgid "%(heading)s: Move line header" -msgstr "" +msgstr "%(başlık)lar: Hareket kalemi başlığı" #. module: account_followup #: view:res.company:0 #: field:res.company,follow_up_msg:0 msgid "Follow-up Message" -msgstr "İş Takipçisi Mesajı" +msgstr "İzleme Mesajı" #. module: account_followup #: field:account.followup.print,followup_id:0 msgid "Follow-up" -msgstr "Takip" +msgstr "İzleme" #. module: account_followup #: report:account_followup.followup.print:0 @@ -176,7 +202,7 @@ msgstr "KDV :" #: field:account_followup.stat,partner_id:0 #: field:account_followup.stat.by.partner,partner_id:0 msgid "Partner" -msgstr "Ortak" +msgstr "Paydaş" #. module: account_followup #: report:account_followup.followup.print:0 @@ -186,18 +212,18 @@ msgstr "Tarih :" #. module: account_followup #: field:account.followup.print.all,partner_ids:0 msgid "Partners" -msgstr "Cari Kartlar" +msgstr "Paydaşlar" #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:138 #, python-format msgid "Invoices Reminder" -msgstr "Fatura Hatırlatıcısı" +msgstr "Fatura Anımsatıcıs" #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_followup msgid "Account Follow Up" -msgstr "Hesap Takibi" +msgstr "Hesap İzleme" #. module: account_followup #: selection:account_followup.followup.line,start:0 @@ -207,12 +233,12 @@ msgstr "Ay sonu" #. module: account_followup #: view:account_followup.stat:0 msgid "Not Litigation" -msgstr "" +msgstr "Dava açılmamış" #. module: account_followup #: view:account.followup.print.all:0 msgid "%(user_signature)s: User name" -msgstr "" +msgstr "%(kullanıcı_imzası)ları: Kullanıcı Adı" #. module: account_followup #: field:account_followup.stat,debit:0 @@ -226,6 +252,9 @@ msgid "" "You can send them the default message for unpaid invoices or manually enter " "a message should you need to remind them of a specific information." msgstr "" +"Bu özellik paydaşlarınızın bekleyen faturaları için anımsatma göndermenizi " +"sağlar. Ödenmeyen faturalar için varsayılan mesajı gönderebilir ya da özel " +"bir bilgiyi onlara anımsatmak için elle bir mesaj girebilirsiniz." #. module: account_followup #: report:account_followup.followup.print:0 @@ -235,24 +264,24 @@ msgstr "Ref" #. module: account_followup #: help:account_followup.followup.line,sequence:0 msgid "Gives the sequence order when displaying a list of follow-up lines." -msgstr "" +msgstr "İzleme satırlarını görüntülerken sıralamayı verir." #. module: account_followup #: view:account.followup.print.all:0 #: field:account.followup.print.all,email_body:0 msgid "Email body" -msgstr "Email Mesaj Alanı" +msgstr "Eposta gövdesi" #. module: account_followup #: field:account.move.line,followup_line_id:0 msgid "Follow-up Level" -msgstr "Takip Seviyesi" +msgstr "İzleme Seviyesi" #. module: account_followup #: field:account_followup.stat,date_followup:0 #: field:account_followup.stat.by.partner,date_followup:0 msgid "Latest followup" -msgstr "Son İş Takibi" +msgstr "Son İzleme" #. module: account_followup #: model:account_followup.followup.line,description:account_followup.demo_followup_line2 @@ -277,27 +306,46 @@ msgid "" "\n" "Best Regards,\n" msgstr "" +"\n" +"Sayın %(paydaş_adı)ları,\n" +"\n" +"Size bir anımsatma göndermemize karşın ödemenizin ciddi olarak geciktiğini " +"görmekten bizi hayal kırıklığına uğratmıştır.\n" +"\n" +"Acil olarak ödeme yapmanız gerekmektedir, aksi takdirde hesabınız kesilecek " +"olup firmanıza bundan sonra (malzeme/hizmet) satışı yapılmayacaktır.\n" +"Önümüzdeki 8 gün içerisinde, lütfen bu ödemenin yapılmasını sağlayın. \n" +"\n" +"Eğer bilmediğimiz bir sorun yüzünden bu ödeme yapılamıyorsa, lütfen muhasebe " +"bölümümüzle(+32).10.68.94.39. den ilişkiye geçmekten çekinmeyin ki bu soruna " +"hızlı bir şekilde çözüm bulalım.\n" +"\n" +"Geciken ödemenizle ilgili ayrıntılar aşağıda yazılmıştır.\n" +"\n" +"Saygılarımızla,\n" #. module: account_followup #: field:account.followup.print.all,partner_lang:0 msgid "Send Email in Partner Language" -msgstr "E-Maili Carinin Dilinde Gönder" +msgstr "Epostayı Paydaşın Dilinde Gönder" #. module: account_followup #: constraint:account.move.line:0 msgid "" "You can not create move line on receivable/payable account without partner" msgstr "" +"Bir paydaş belirtmeden alacak/borç hesabı için hareket satırı " +"oluşturmazsınız." #. module: account_followup #: view:account.followup.print.all:0 msgid "Partner Selection" -msgstr "Cari Seçimi" +msgstr "Paydaş Seçimi" #. module: account_followup #: field:account_followup.followup.line,description:0 msgid "Printed Message" -msgstr "" +msgstr "Yazılı Mesaj" #. module: account_followup #: view:account.followup.print:0 @@ -306,18 +354,18 @@ msgstr "" #: model:ir.actions.act_window,name:account_followup.action_account_followup_print_all #: model:ir.ui.menu,name:account_followup.account_followup_print_menu msgid "Send followups" -msgstr "" +msgstr "İzlemeleri gönder" #. module: account_followup #: view:account_followup.stat.by.partner:0 msgid "Partner to Remind" -msgstr "" +msgstr "Anımsatma Gönderilecek Paydaş" #. module: account_followup #: field:account_followup.followup.line,followup_id:0 #: field:account_followup.stat,followup_id:0 msgid "Follow Ups" -msgstr "" +msgstr "İzlemeler" #. module: account_followup #: model:account_followup.followup.line,description:account_followup.demo_followup_line1 @@ -335,6 +383,19 @@ msgid "" "\n" "Best Regards,\n" msgstr "" +"\n" +"Sayın %(partner_name)lar,\n" +"\n" +"Aşağıda belirtilen tutar ödenmemiş görünmektedir, eğer bu bizim " +"yanlışlığımız ise lütfen bu yazımızı dikkate almayın. İleriki 8 gün " +"içersinde bu ödemenin yapılması için gereken hassasiyeti göstermenizi rica " +"ederiz.\n" +"\n" +"Bu yazımızın gönderilmesinden sonra ödeme yaptıysanız lütfen bu yazımızı " +"dikkate almayın. Muhasebe bölümüzle (+32).10.68.94.39. den görüşmekte lütfen " +"tereddüt etmeyin.\n" +"\n" +"Saygılarımızla,\n" #. module: account_followup #: model:account_followup.followup.line,description:account_followup.demo_followup_line3 @@ -355,37 +416,52 @@ msgid "" "\n" "Best Regards,\n" msgstr "" +"\n" +"Sayın %(partner_name)lar,\n" +"\n" +"Bir kaç kez anımsatmamıza rağmen hesabınız hala düzeltilmemiştir.\n" +"\n" +"Eğer 8 gün içerisinde tam ödeme yapılmazsa, bir daha haber vermeksizin bu " +"borcun ödenmesi için yasal yollara başvuracağımızı bilmenizi isteriz.\n" +"\n" +"Aşağıda belirtilen gecikmiş ödemenize ait bilgiler eminiz ki borcunuz " +"hakkında size tam bilgi vermektedir.\n" +"\n" +"Sorularınız için muhasebe bölümümüzle (+32).10.68.94.39 den iletişime " +"geçmekte terddüt etmeyiniz.\n" +"\n" +"Saygılarımızla,\n" #. module: account_followup #: view:account.followup.print.all:0 msgid "Send Mails" -msgstr "" +msgstr "Postaları Gönder" #. module: account_followup #: report:account_followup.followup.print:0 msgid "Currency" -msgstr "" +msgstr "Para Birimi" #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_stat_by_partner msgid "Followup Statistics by Partner" -msgstr "" +msgstr "Paydaşa göre İzleme İstatistikleri" #. module: account_followup #: model:ir.module.module,shortdesc:account_followup.module_meta_information msgid "Accounting follow-ups management" -msgstr "" +msgstr "Muhasebe İzleme Yönetimi" #. module: account_followup #: field:account_followup.stat,blocked:0 msgid "Blocked" -msgstr "" +msgstr "Engellendi" #. module: account_followup #: help:account.followup.print,date:0 msgid "" "This field allow you to select a forecast date to plan your follow-ups" -msgstr "" +msgstr "Bu alan izlemelerinizin öngörü planını yapmanızı sağlar." #. module: account_followup #: report:account_followup.followup.print:0 @@ -396,7 +472,7 @@ msgstr "Vade" #: code:addons/account_followup/wizard/account_followup_print.py:56 #, python-format msgid "Select Partners" -msgstr "" +msgstr "Paydaş Seçin" #. module: account_followup #: view:account.followup.print.all:0 @@ -406,7 +482,7 @@ msgstr "E-mail Ayarları" #. module: account_followup #: view:account.followup.print.all:0 msgid "Print Follow Ups" -msgstr "" +msgstr "İzlemeleri Yazdır" #. module: account_followup #: field:account.move.line,followup_date:0 @@ -426,7 +502,7 @@ msgstr "Bakiye:" #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_stat msgid "Followup Statistics" -msgstr "" +msgstr "İzleme İstatistikleri" #. module: account_followup #: report:account_followup.followup.print:0 @@ -436,17 +512,17 @@ msgstr "Ödendi" #. module: account_followup #: view:account_followup.followup.line:0 msgid "%(user_signature)s: User Name" -msgstr "" +msgstr "%(kullanıcı_imza)lar: Kullanıcı Adı" #. module: account_followup #: model:ir.model,name:account_followup.model_account_move_line msgid "Journal Items" -msgstr "" +msgstr "Yevmiye Kalemleri" #. module: account_followup #: constraint:account.move.line:0 msgid "Company must be same for its related account and period." -msgstr "" +msgstr "Firma bağlı olduğu hesap ve dönemle aynı olmalıdır." #. module: account_followup #: field:account.followup.print.all,email_conf:0 @@ -461,11 +537,14 @@ msgid "" "\n" "%s" msgstr "" +"Tüm E-postalar başarılı bir şeklide şu Paydaşlara gönderilmiştir:.\n" +"\n" +"%s" #. module: account_followup #: constraint:res.company:0 msgid "Error! You can not create recursive companies." -msgstr "" +msgstr "Hata! Yinelemeli şirketler oluşturamazsınız." #. module: account_followup #: view:account.followup.print.all:0 @@ -475,12 +554,12 @@ msgstr "%(company_name)s: Kullanıcının Firma Adı" #. module: account_followup #: model:ir.model,name:account_followup.model_res_company msgid "Companies" -msgstr "" +msgstr "Firmalar" #. module: account_followup #: view:account_followup.followup:0 msgid "Followup Lines" -msgstr "" +msgstr "İzleme Satırları" #. module: account_followup #: field:account_followup.stat,credit:0 @@ -490,12 +569,12 @@ msgstr "Alacak" #. module: account_followup #: report:account_followup.followup.print:0 msgid "Maturity Date" -msgstr "" +msgstr "Vade Sonu Tarihi" #. module: account_followup #: view:account_followup.followup.line:0 msgid "%(partner_name)s: Partner Name" -msgstr "" +msgstr "%(paydaş_adı)lar: Paydaş Adı" #. module: account_followup #: view:account_followup.stat:0 @@ -505,7 +584,7 @@ msgstr "İş Takipçisi Ögeleri" #. module: account_followup #: view:account.followup.print.all:0 msgid "%(company_currency)s: User's Company Currency" -msgstr "" +msgstr "%(firma_döviz)s: Kullanıcının Firmasının Para Birimi" #. module: account_followup #: view:account_followup.stat:0 @@ -517,29 +596,29 @@ msgstr "Bakiye" #. module: account_followup #: field:account_followup.followup.line,start:0 msgid "Type of Term" -msgstr "" +msgstr "Koşul Türü" #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_print #: model:ir.model,name:account_followup.model_account_followup_print_all msgid "Print Followup & Send Mail to Customers" -msgstr "" +msgstr "İzlemeleri Yazdır ve Müşterilere Postala" #. module: account_followup #: field:account_followup.stat,date_move_last:0 #: field:account_followup.stat.by.partner,date_move_last:0 msgid "Last move" -msgstr "" +msgstr "Son Hareket" #. module: account_followup #: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report msgid "Followup Report" -msgstr "" +msgstr "İzleme Raporu" #. module: account_followup #: field:account_followup.stat,period_id:0 msgid "Period" -msgstr "" +msgstr "Dönem" #. module: account_followup #: view:account.followup.print:0 @@ -555,33 +634,33 @@ msgstr "İş Takipçisi Ögeleri" #. module: account_followup #: view:account_followup.stat:0 msgid "Litigation" -msgstr "" +msgstr "Hukuki Dava" #. module: account_followup #: field:account_followup.stat.by.partner,max_followup_id:0 msgid "Max Follow Up Level" -msgstr "" +msgstr "En Üst İzleme Seviyesi" #. module: account_followup #: model:ir.actions.act_window,name:account_followup.act_account_partner_account_move_payable_all msgid "Payable Items" -msgstr "" +msgstr "Ödeme Maddeleri" #. module: account_followup #: view:account.followup.print.all:0 msgid "%(followup_amount)s: Total Amount Due" -msgstr "" +msgstr "%(izleme_tutar)lar: Ödenmesi Gereken Toplam Tutar" #. module: account_followup #: view:account.followup.print.all:0 #: view:account_followup.followup.line:0 msgid "%(date)s: Current Date" -msgstr "" +msgstr "%(tarih)ler: Geçerli Tarih" #. module: account_followup #: view:account_followup.stat:0 msgid "Followup Level" -msgstr "" +msgstr "İzleme Seviyesi" #. module: account_followup #: view:account_followup.followup:0 @@ -593,7 +672,7 @@ msgstr "Açıklama" #. module: account_followup #: view:account_followup.stat:0 msgid "This Fiscal year" -msgstr "" +msgstr "Bu Mali Yıl" #. module: account_followup #: view:account.move.line:0 @@ -606,18 +685,20 @@ msgid "" "Do not change message text, if you want to send email in partner language, " "or configure from company" msgstr "" +"Paydaşa dili ile eposta göndermek istiyorsanız mesaj metinini değiştirmeyin, " +"firma yapılandırmasını kullanın" #. module: account_followup #: model:ir.actions.act_window,name:account_followup.act_account_partner_account_move_all msgid "Receivable Items" -msgstr "" +msgstr "Alacak Maddeleri" #. module: account_followup #: view:account_followup.stat:0 #: model:ir.actions.act_window,name:account_followup.action_followup_stat #: model:ir.ui.menu,name:account_followup.menu_action_followup_stat_follow msgid "Follow-ups Sent" -msgstr "" +msgstr "Gönderilen İzlemeler" #. module: account_followup #: field:account_followup.followup,name:0 @@ -629,17 +710,17 @@ msgstr "Adı" #: field:account_followup.stat,date_move:0 #: field:account_followup.stat.by.partner,date_move:0 msgid "First move" -msgstr "" +msgstr "İlk Hareket" #. module: account_followup #: report:account_followup.followup.print:0 msgid "Li." -msgstr "" +msgstr "Li." #. module: account_followup #: report:account_followup.followup.print:0 msgid "Maturity" -msgstr "" +msgstr "Vade" #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:289 @@ -649,6 +730,9 @@ msgid "" "\n" "%s" msgstr "" +"Aşağıdaki Paydaşlara E-Posta gönderilmedi, Eposta yok !\n" +"\n" +"%s" #. module: account_followup #: view:account.followup.print:0 @@ -663,7 +747,7 @@ msgstr "Gecikme Günleri" #. module: account_followup #: report:account_followup.followup.print:0 msgid "Document : Customer account statement" -msgstr "" +msgstr "Belge: Müşteri hesap ekstresi" #. module: account_followup #: view:account.followup.print.all:0 @@ -679,7 +763,7 @@ msgstr "Toplam Alacak" #. module: account_followup #: view:account.followup.print.all:0 msgid "%(line)s: Ledger Posting lines" -msgstr "" +msgstr "%(satır)lar: Büyük Defter İşleme Kalemleri" #. module: account_followup #: field:account_followup.followup.line,sequence:0 @@ -689,32 +773,32 @@ msgstr "Sıra No" #. module: account_followup #: view:account_followup.followup.line:0 msgid "%(company_name)s: User's Company Name" -msgstr "" +msgstr "%(firma_adı)lar: Kullanıcının Firma Adı" #. module: account_followup #: report:account_followup.followup.print:0 msgid "Customer Ref :" -msgstr "" +msgstr "Müşteri Ref :" #. module: account_followup #: view:account.followup.print.all:0 msgid "%(partner_name)s: Partner name" -msgstr "" +msgstr "%(paydaş_adı)lar: Paydaş adı" #. module: account_followup #: view:account_followup.stat:0 msgid "Latest Followup Date" -msgstr "" +msgstr "Son İzleme Tarihi" #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_followup_line msgid "Follow-Up Criteria" -msgstr "" +msgstr "İzleme Kriteri" #. module: account_followup #: constraint:account.move.line:0 msgid "You can not create move line on view account." -msgstr "" +msgstr "Hesap Görünümünde hareket oluşturamazsınız." #~ msgid "Invalid XML for View Architecture!" #~ msgstr "Görüntüleme mimarisi için Geçersiz XML" @@ -833,5 +917,21 @@ msgstr "" #~ msgstr "" #~ "\n" #~ "\n" -#~ "E-posta aşağıdaki İş Ortaklarına başarıyla gönderildi. !\n" +#~ "E-posta aşağıdaki Paydaşlara başarıyla gönderildi. !\n" +#~ "\n" + +#, python-format +#~ msgid "" +#~ "All E-mails have been successfully sent to Partners:.\n" +#~ "\n" +#~ msgstr "" +#~ "Bütün Epostalar Paydaşlara başarılı olarak gönderilmiştir.\n" +#~ "\n" + +#, python-format +#~ msgid "" +#~ "E-Mail not sent to following Partners, Email not available !\n" +#~ "\n" +#~ msgstr "" +#~ "Aşağıdaki Paydaşa E-Posta gönderilemedi. E-Posta bulunamadı !\n" #~ "\n" diff --git a/addons/account_payment/i18n/vi.po b/addons/account_payment/i18n/vi.po index 0954aadfbd0..ce9038a0c16 100644 --- a/addons/account_payment/i18n/vi.po +++ b/addons/account_payment/i18n/vi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-01-12 19:47+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-04 22:07+0000\n" +"Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:21+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-05 04:35+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: account_payment #: field:payment.order,date_scheduled:0 @@ -30,7 +30,7 @@ msgstr "Loại tiền của đối tác" #. module: account_payment #: view:payment.order:0 msgid "Set to draft" -msgstr "" +msgstr "Đặt thành Nháp" #. module: account_payment #: help:payment.order,mode:0 @@ -56,14 +56,14 @@ msgstr "" #. module: account_payment #: field:payment.order,line_ids:0 msgid "Payment lines" -msgstr "" +msgstr "Các dòng thanh toán" #. module: account_payment #: view:payment.line:0 #: field:payment.line,info_owner:0 #: view:payment.order:0 msgid "Owner Account" -msgstr "" +msgstr "Tài khoản Chủ sở hữu" #. module: account_payment #: help:payment.order,state:0 @@ -173,7 +173,7 @@ msgstr "" #: model:ir.actions.act_window,name:account_payment.action_payment_order_tree #: model:ir.ui.menu,name:account_payment.menu_action_payment_order_form msgid "Payment Orders" -msgstr "" +msgstr "Các Lệnh Thanh toán" #. module: account_payment #: selection:payment.order,date_prefered:0 @@ -186,7 +186,7 @@ msgstr "Trực tiếp" #: view:payment.line:0 #: view:payment.order:0 msgid "Payment Line" -msgstr "" +msgstr "Dòng Thanh toán" #. module: account_payment #: view:payment.line:0 @@ -262,12 +262,12 @@ msgstr "Lỗi !" #. module: account_payment #: view:account.move.line:0 msgid "Total debit" -msgstr "" +msgstr "Tổng nợ" #. module: account_payment #: field:payment.order,date_done:0 msgid "Execution date" -msgstr "" +msgstr "Ngày thực hiện" #. module: account_payment #: help:payment.mode,journal:0 @@ -293,7 +293,7 @@ msgstr "Tài khoản đích" #. module: account_payment #: view:payment.order:0 msgid "Search Payment Orders" -msgstr "" +msgstr "Tìm kiếm các Lệnh Thanh toán" #. module: account_payment #: constraint:account.move.line:0 @@ -467,7 +467,7 @@ msgstr "Tìm kiếm" #: model:ir.actions.report.xml,name:account_payment.payment_order1 #: model:ir.model,name:account_payment.model_payment_order msgid "Payment Order" -msgstr "" +msgstr "Lệnh thanh toán" #. module: account_payment #: field:payment.line,date:0 @@ -613,7 +613,7 @@ msgstr "" #: view:payment.mode:0 #: field:payment.mode,journal:0 msgid "Journal" -msgstr "" +msgstr "Sổ nhật ký" #. module: account_payment #: field:payment.mode,bank_id:0 diff --git a/addons/account_voucher/i18n/pt_BR.po b/addons/account_voucher/i18n/pt_BR.po index 994503f1842..28940ce2349 100644 --- a/addons/account_voucher/i18n/pt_BR.po +++ b/addons/account_voucher/i18n/pt_BR.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-01-24 18:06+0000\n" -"Last-Translator: Adriano Prado \n" +"PO-Revision-Date: 2011-06-04 21:23+0000\n" +"Last-Translator: Emerson \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:33+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-05 04:35+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: account_voucher #: view:account.voucher.unreconcile:0 @@ -22,10 +22,10 @@ msgid "Unreconciliation transactions" msgstr "Transações não conciliadas" #. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:242 +#: code:addons/account_voucher/account_voucher.py:247 #, python-format msgid "Write-Off" -msgstr "" +msgstr "Ajuste" #. module: account_voucher #: view:account.voucher:0 @@ -54,7 +54,7 @@ msgid "Group By..." msgstr "Agrupar Por..." #. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:591 +#: code:addons/account_voucher/account_voucher.py:596 #, python-format msgid "Cannot delete Voucher(s) which are already opened or paid !" msgstr "Impossível apagar Comprovante(s) ja Abertos ou Pagos !" @@ -88,7 +88,7 @@ msgid "Bill Payment" msgstr "Pagamento de Conta" #. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:741 +#: code:addons/account_voucher/account_voucher.py:746 #, python-format msgid "" "You have to configure account base code and account tax code on the '%s' tax!" @@ -302,7 +302,7 @@ msgstr "Valor (por extenso)" #: view:sale.receipt.report:0 #: field:sale.receipt.report,nbr:0 msgid "# of Voucher Lines" -msgstr "" +msgstr "# de Linhas do Comprovante" #. module: account_voucher #: field:account.voucher.line,account_analytic_id:0 @@ -348,12 +348,12 @@ msgstr "Na Conta de:" #. module: account_voucher #: field:account.voucher,writeoff_amount:0 msgid "Write-Off Amount" -msgstr "" +msgstr "Valor do Ajuste" #. module: account_voucher #: view:account.voucher:0 msgid "Sales Lines" -msgstr "" +msgstr "Linhas das Vendas" #. module: account_voucher #: report:voucher.print:0 @@ -387,7 +387,7 @@ msgstr "Tipo" #. module: account_voucher #: field:account.voucher.unreconcile,remove:0 msgid "Want to remove accounting entries too ?" -msgstr "" +msgstr "Deseja remover os lançamentos contábeis também?" #. module: account_voucher #: view:account.voucher:0 @@ -396,7 +396,7 @@ msgid "Voucher Entries" msgstr "Lançamento de Comprovantes" #. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:640 +#: code:addons/account_voucher/account_voucher.py:645 #, python-format msgid "Error !" msgstr "Erro !" @@ -421,10 +421,10 @@ msgstr "Comentário" #: model:ir.actions.act_window,name:account_voucher.action_sale_receipt #: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt msgid "Sales Receipt" -msgstr "" +msgstr "Recibo de Vendas" #. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:591 +#: code:addons/account_voucher/account_voucher.py:596 #, python-format msgid "Invalid action !" msgstr "Ação invalida !" @@ -432,7 +432,7 @@ msgstr "Ação invalida !" #. module: account_voucher #: view:account.voucher:0 msgid "Bill Information" -msgstr "" +msgstr "Informação de Cobrança" #. module: account_voucher #: selection:sale.receipt.report,month:0 @@ -442,7 +442,7 @@ msgstr "Julho" #. module: account_voucher #: view:account.voucher.unreconcile:0 msgid "Unreconciliation" -msgstr "" +msgstr "Desconciliação" #. module: account_voucher #: view:sale.receipt.report:0 @@ -458,7 +458,7 @@ msgid "Pay Invoice" msgstr "Pagar Fatura" #. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:741 +#: code:addons/account_voucher/account_voucher.py:746 #, python-format msgid "No Account Base Code and Account Tax Code!" msgstr "Sem conta para Base e Imposto!" @@ -517,6 +517,7 @@ msgstr "Dezembro" #. module: account_voucher #: field:account.voucher,line_ids:0 +#: view:account.voucher.line:0 #: model:ir.model,name:account_voucher.model_account_voucher_line msgid "Voucher Lines" msgstr "Linhas do Comprovante" @@ -568,7 +569,7 @@ msgstr "Provisório" #. module: account_voucher #: field:account.voucher,writeoff_acc_id:0 msgid "Write-Off account" -msgstr "" +msgstr "Conta de ajuste" #. module: account_voucher #: report:voucher.print:0 @@ -665,7 +666,7 @@ msgstr "Valor Reconciliado" #. module: account_voucher #: field:account.voucher,analytic_id:0 msgid "Write-Off Analytic Account" -msgstr "" +msgstr "Conta Analítica dos Ajustes" #. module: account_voucher #: selection:account.voucher,pay_now:0 @@ -705,7 +706,7 @@ msgid "Credit" msgstr "Crédito" #. module: account_voucher -#: code:addons/account_voucher/account_voucher.py:640 +#: code:addons/account_voucher/account_voucher.py:645 #, python-format msgid "Please define a sequence on the journal !" msgstr "Favor definir a seqüencia no Livro !" @@ -745,7 +746,7 @@ msgstr "Total sem Impostos" #. module: account_voucher #: view:account.voucher:0 msgid "Bill Date" -msgstr "" +msgstr "Data de Cobrança" #. module: account_voucher #: help:account.voucher,state:0 @@ -869,7 +870,7 @@ msgstr "Quer Confirmar este Registro ?" #. module: account_voucher #: selection:account.voucher,payment_option:0 msgid "Reconcile with Write-Off" -msgstr "" +msgstr "Reconciliar com Ajuste" #. module: account_voucher #: view:account.voucher:0 @@ -959,7 +960,7 @@ msgstr "Faturas e Transações de Fornecedores Pendentes" #. module: account_voucher #: field:account.voucher,comment:0 msgid "Write-Off Comment" -msgstr "" +msgstr "Comentário do Ajuste" #. module: account_voucher #: selection:sale.receipt.report,month:0 diff --git a/addons/base_crypt/i18n/vi.po b/addons/base_crypt/i18n/vi.po new file mode 100644 index 00000000000..cd1ed4f93ea --- /dev/null +++ b/addons/base_crypt/i18n/vi.po @@ -0,0 +1,73 @@ +# Vietnamese translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-04 22:52+0000\n" +"Last-Translator: Phong Nguyen-Thanh \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-06 04:37+0000\n" +"X-Generator: Launchpad (build 12959)\n" + +#. module: base_crypt +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Bạn không thể có hai người sử dụng với cùng tên đăng nhập !" + +#. module: base_crypt +#: model:ir.model,name:base_crypt.model_res_users +msgid "res.users" +msgstr "res.users" + +#. module: base_crypt +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "" +"Công ty được lựa chọn không nằm trong các công ty mà người sử dụng này được " +"phép" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Please specify the password !" +msgstr "Vui lòng xác định mật khẩu !" + +#. module: base_crypt +#: model:ir.module.module,shortdesc:base_crypt.module_meta_information +msgid "Base - Password Encryption" +msgstr "Cơ sở - Mã hóa Mật khẩu" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Error" +msgstr "Lỗi" + +#. module: base_crypt +#: model:ir.module.module,description:base_crypt.module_meta_information +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 "" diff --git a/addons/crm/i18n/sv.po b/addons/crm/i18n/sv.po index a90efd1c9e2..887c6ea83a8 100644 --- a/addons/crm/i18n/sv.po +++ b/addons/crm/i18n/sv.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.14\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-12-21 14:37+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-03 13:57+0000\n" +"Last-Translator: Jan-Eric Lindh \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 04:59+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-04 04:53+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: crm #: view:crm.lead.report:0 @@ -46,7 +46,7 @@ msgstr "Schemalägg telefonsamtal" #. module: crm #: model:ir.model,name:crm.model_crm_case_stage msgid "Stage of case" -msgstr "" +msgstr "Uppgiftsstatus" #. module: crm #: view:crm.meeting:0 @@ -108,7 +108,7 @@ msgstr "Kan inte lägga till anteckning!" #. module: crm #: field:crm.case.stage,name:0 msgid "Stage Name" -msgstr "" +msgstr "Statusnamn" #. module: crm #: view:crm.lead.report:0 @@ -124,7 +124,7 @@ msgid "The code of the sales team must be unique !" msgstr "Koden för säljteamet måste vara unikt!" #. module: crm -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:93 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:95 #, python-format msgid "Lead '%s' has been converted to an opportunity." msgstr "" @@ -141,8 +141,8 @@ msgid "No Repeat" msgstr "Ingen repetition" #. module: crm -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:133 -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:258 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:135 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:260 #: code:addons/crm/wizard/crm_lead_to_partner.py:55 #: code:addons/crm/wizard/crm_phonecall_to_partner.py:52 #, python-format @@ -536,9 +536,9 @@ msgstr "" #. module: crm #: code:addons/crm/crm_lead.py:278 -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:195 -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:229 -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:297 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:197 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:231 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:299 #: view:crm.lead2opportunity:0 #: view:crm.partner2opportunity:0 #: model:ir.actions.act_window,name:crm.action_crm_lead2opportunity @@ -675,7 +675,7 @@ msgstr "" #. module: crm #: view:crm.phonecall.report:0 msgid "#Phone calls" -msgstr "" +msgstr "# Telefonsamtal" #. module: crm #: help:crm.segmentation,categ_id:0 @@ -809,8 +809,8 @@ msgid "Statistics Dashboard" msgstr "" #. module: crm -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:86 -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:96 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:88 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:98 #: code:addons/crm/wizard/crm_partner_to_opportunity.py:101 #: code:addons/crm/wizard/crm_phonecall_to_opportunity.py:117 #: view:crm.lead:0 @@ -1086,7 +1086,7 @@ msgstr "" #. module: crm #: code:addons/crm/crm_opportunity.py:208 -#: code:addons/crm/crm_phonecall.py:184 +#: code:addons/crm/crm_phonecall.py:185 #: code:addons/crm/wizard/crm_phonecall_to_meeting.py:55 #: code:addons/crm/wizard/crm_phonecall_to_meeting.py:137 #: view:crm.meeting:0 @@ -2590,7 +2590,7 @@ msgid "Meeting Type" msgstr "" #. module: crm -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:312 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:314 #, python-format msgid "Merge with Existing Opportunity" msgstr "" @@ -3104,8 +3104,8 @@ msgid "Schedule Call" msgstr "" #. module: crm -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:133 -#: code:addons/crm/wizard/crm_lead_to_opportunity.py:258 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:135 +#: code:addons/crm/wizard/crm_lead_to_opportunity.py:260 #, python-format msgid "Closed/Cancelled Leads Could not convert into Opportunity" msgstr "" diff --git a/addons/crm/i18n/tr.po b/addons/crm/i18n/tr.po index 476d6f5a88e..3c5749423c3 100644 --- a/addons/crm/i18n/tr.po +++ b/addons/crm/i18n/tr.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2011-05-22 17:11+0000\n" +"PO-Revision-Date: 2011-06-02 18:41+0000\n" "Last-Translator: Ayhan KIZILTAN \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-23 04:37+0000\n" +"X-Launchpad-Export-Date: 2011-06-03 04:39+0000\n" "X-Generator: Launchpad (build 12959)\n" #. module: crm @@ -386,7 +386,7 @@ msgstr "Olasılığı otomatik olarak değiştir" #. module: crm #: field:base.action.rule,regex_history:0 msgid "Regular Expression on Case History" -msgstr "" +msgstr "Durum Geçmişinin Düzenli Anlatımı" #. module: crm #: code:addons/crm/crm_lead.py:209 @@ -689,6 +689,8 @@ msgid "" "The partner category that will be added to partners that match the " "segmentation criterions after computation." msgstr "" +"Hesaplamadan sonraki bölümleme kriterlerine uyan paydaşa eklenecek paydaş " +"kategorisi." #. module: crm #: view:crm.lead:0 @@ -702,6 +704,8 @@ msgid "" "modes available with the customer. With each commercial opportunity, you can " "indicate the canall which is this opportunity source." msgstr "" +"Kanallar, müşteriyle yapılabilecek farklı iletişim modellerini temsil eder. " +"Her ticari fırsatla, bu fırsatın kaynağı olan kanalı belirtebilirsiniz." #. module: crm #: code:addons/crm/crm_meeting.py:93 @@ -726,6 +730,8 @@ msgid "" "The email address put in the 'Reply-To' of all emails sent by OpenERP about " "cases in this sales team" msgstr "" +"Bu satış takımının durumu ile ilgili OpenERP tarafından gönderielecek " +"epostaların 'Şuna Yanıt Ver' alanına konulacak eposta adresi" #. module: crm #: view:res.users:0 @@ -738,6 +744,7 @@ msgid "" "Defines a rule or repeating pattern of time to exclude from the recurring " "rule." msgstr "" +"Yineleme kuralı dışında tutulan bir zaman tekrarlama modelini tanımlar." #. module: crm #: field:crm.case.section,resource_calendar_id:0 @@ -761,6 +768,8 @@ msgid "" "Helps you to synchronize the meetings with other calendar clients and " "mobiles." msgstr "" +"Toplantılarınızı diğer takvim müşterilerinizle ve cep telefonları ile " +"senkronize etmenizi sağlar." #. module: crm #: selection:crm.meeting,freq:0 @@ -795,7 +804,7 @@ msgstr "Olası Gelir" #. module: crm #: help:crm.segmentation,name:0 msgid "The name of the segmentation." -msgstr "" +msgstr "Bölümleme Adı" #. module: crm #: field:crm.case.stage,probability:0 @@ -806,7 +815,7 @@ msgstr "Olasılık (%)" #. module: crm #: view:crm.lead:0 msgid "Leads Generation" -msgstr "" +msgstr "Aday Oluşturma" #. module: crm #: view:board.board:0 @@ -991,6 +1000,8 @@ msgid "" "This property defines the list of date/time exceptions for a recurring " "calendar component." msgstr "" +"Bu özellik yinelenen takvim öğeleri için istisna tutulan tarih/saat " +"listesini belirtir." #. module: crm #: view:crm.phonecall2opportunity:0 @@ -1035,7 +1046,7 @@ msgstr "Bu vak'ada tanımlanan Satış Ekibi'ne gönder" #. module: crm #: view:crm.lead:0 msgid "Mark Won" -msgstr "" +msgstr "Kazanıldı İşaretle" #. module: crm #: selection:crm.segmentation.line,expr_name:0 @@ -1045,7 +1056,7 @@ msgstr "Alış Tutarı" #. module: crm #: view:crm.lead:0 msgid "Mark Lost" -msgstr "" +msgstr "Kaybedildi İşaretle" #. module: crm #: selection:crm.lead.report,month:0 @@ -1063,7 +1074,7 @@ msgstr "'%s' fırsatı kapandı." #. module: crm #: field:crm.lead,day_open:0 msgid "Days to Open" -msgstr "" +msgstr "Açılışa kadar Gün Sayısı" #. module: crm #: view:crm.meeting:0 @@ -1091,7 +1102,7 @@ msgstr "Cep" #. module: crm #: field:crm.meeting,end_type:0 msgid "Way to end reccurency" -msgstr "" +msgstr "Yineleme sonlandırma yolu" #. module: crm #: code:addons/crm/wizard/crm_merge_opportunities.py:53 @@ -1165,6 +1176,8 @@ msgid "" "If the active field is set to true, it will allow you to hide the " "event alarm information without removing it." msgstr "" +"Eğer etkin alan doğru olarak ayarlıysa, etkinlik alarmını silmeden " +"gizleyebilirsiniz." #. module: crm #: code:addons/crm/wizard/crm_phonecall_to_opportunity.py:57 @@ -1175,7 +1188,7 @@ msgstr "Kapanan/ İptal edilen Telefon görüşmesi fırsata dönüştürülemed #. module: crm #: view:crm.segmentation:0 msgid "Partner Segmentations" -msgstr "" +msgstr "Paydaş Bölümlendirmeleri" #. module: crm #: view:crm.meeting:0 @@ -1233,7 +1246,7 @@ msgstr "Satış Departmanı" #. module: crm #: field:crm.send.mail,html:0 msgid "HTML formatting?" -msgstr "" +msgstr "HTML formatı mı?" #. module: crm #: field:crm.case.stage,type:0 @@ -1249,7 +1262,7 @@ msgstr "Tür" #. module: crm #: view:crm.segmentation:0 msgid "Compute Segmentation" -msgstr "" +msgstr "Bölimleme Hesabı" #. module: crm #: selection:crm.lead,priority:0 @@ -1350,7 +1363,7 @@ msgstr "Belirli aralıklarla olayın otomatik olarak tekrarlamasına izin ver" #. module: crm #: view:base.action.rule:0 msgid "Condition Case Fields" -msgstr "" +msgstr "Durum Alanları Koşulları" #. module: crm #: view:crm.case.section:0 @@ -1391,7 +1404,7 @@ msgstr "Eylül" #. module: crm #: field:crm.segmentation,partner_id:0 msgid "Max Partner ID processed" -msgstr "" +msgstr "İşlem gören Enfazla Paydaş No" #. module: crm #: model:ir.actions.act_window,name:crm.action_report_crm_phonecall @@ -1408,7 +1421,7 @@ msgstr "Açılış Tarihi" #. module: crm #: help:crm.phonecall,duration:0 msgid "Duration in Minutes" -msgstr "" +msgstr "Dakika olarak Süre" #. module: crm #: help:crm.installer,crm_helpdesk:0 @@ -1426,6 +1439,8 @@ msgid "" "If the active field is set to true, it will allow you to hide the sales team " "without removing it." msgstr "" +"Eğer etkin alan doğru olarak ayarlıysa, satış takımını silmeden " +"gizleyebilirsiniz." #. module: crm #: view:crm.lead.report:0 @@ -1446,7 +1461,7 @@ msgstr "Cuma" #. module: crm #: model:ir.model,name:crm.model_crm_lead msgid "crm.lead" -msgstr "" +msgstr "miy.aday" #. module: crm #: field:crm.meeting,write_date:0 @@ -1456,7 +1471,7 @@ msgstr "Yazım Tarihi" #. module: crm #: view:crm.meeting:0 msgid "End of recurrency" -msgstr "" +msgstr "Yineleme sonu" #. module: crm #: view:crm.meeting:0 @@ -1469,6 +1484,8 @@ msgid "" "Check if you want to use this tab as part of the segmentation rule. If not " "checked, the criteria beneath will be ignored" msgstr "" +"Bu sekmeyi bölümleme kuralının bir parçası olarak kullanmak için burayı " +"işaretleyin. Eğer işaretlenmezse, altındaki kriter yok sayılacaktır." #. module: crm #: view:crm.lead2opportunity.partner:0 @@ -1494,7 +1511,7 @@ msgstr "Pazartesi" #. module: crm #: field:crm.lead,day_close:0 msgid "Days to Close" -msgstr "" +msgstr "Kapanışa kadar Gün Sayısı" #. module: crm #: field:crm.add.note,attachment_ids:0 @@ -1513,7 +1530,7 @@ msgstr "No" #. module: crm #: model:ir.model,name:crm.model_crm_partner2opportunity msgid "Partner To Opportunity" -msgstr "" +msgstr "Paydaşı Fırsata" #. module: crm #: view:crm.meeting:0 @@ -1572,6 +1589,9 @@ msgid "" "better manage your interactions with them. The segmentation tool is able to " "assign categories to partners according to criteria you set." msgstr "" +"Paydaşlarınızla etkileşim daha iyi yönetmek için onlara atayacağınız özel " +"paydaş kategorileri oluşturun. Bölümleme aracı, ayarladığınız kriterler göre " +"paydaşlarınıza kategori atamanızı sağlar." #. module: crm #: field:crm.case.section,code:0 @@ -1623,7 +1643,7 @@ msgstr "İptal" #. module: crm #: model:ir.model,name:crm.model_res_users msgid "res.users" -msgstr "" +msgstr "res.users" #. module: crm #: model:ir.model,name:crm.model_crm_merge_opportunity @@ -1633,7 +1653,7 @@ msgstr "İki Fırsatı Birleştir" #. module: crm #: selection:crm.meeting,end_type:0 msgid "Fix amout of times" -msgstr "" +msgstr "Süre Miktarını Düzelt" #. module: crm #: view:crm.lead:0 @@ -1741,12 +1761,12 @@ msgstr "Doğum Günü" #. module: crm #: view:crm.meeting:0 msgid "The" -msgstr "" +msgstr "Bu" #. module: crm #: field:crm.send.mail.attachment,wizard_id:0 msgid "Wizard" -msgstr "" +msgstr "Sihirbaz" #. module: crm #: help:crm.lead,section_id:0 @@ -1754,12 +1774,14 @@ msgid "" "Sales team to which this case belongs to. Defines responsible user and e-" "mail address for the mail gateway." msgstr "" +"Bu durumun bağlı olduğu satış takımı. Ağgeçidi için sorumlu kullanıcı ve e-" +"posta adresi tanımlar." #. module: crm #: view:crm.lead:0 #: view:crm.phonecall:0 msgid "Creation" -msgstr "" +msgstr "Oluşturma" #. module: crm #: selection:crm.lead,priority:0 @@ -1772,7 +1794,7 @@ msgstr "Yüksek" #. module: crm #: model:process.node,note:crm.process_node_partner0 msgid "Convert to prospect to business partner" -msgstr "" +msgstr "Olasıyı iş ortağına dönüştür" #. module: crm #: view:crm.phonecall2opportunity:0 @@ -1800,22 +1822,22 @@ msgstr "Beşinci" #. module: crm #: view:crm.phonecall2phonecall:0 msgid "_Schedule" -msgstr "" +msgstr "_Plan" #. module: crm #: field:crm.lead.report,delay_close:0 msgid "Delay to Close" -msgstr "" +msgstr "Kapanış Gecikmesi" #. module: crm #: field:crm.meeting,we:0 msgid "Wed" -msgstr "" +msgstr "Çrş" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor6 msgid "Potential Reseller" -msgstr "" +msgstr "Potansiyel Satıcı" #. module: crm #: field:crm.lead.report,planned_revenue:0 @@ -1844,7 +1866,7 @@ msgstr "Davet Detayları" #. module: crm #: field:crm.case.section,parent_id:0 msgid "Parent Team" -msgstr "" +msgstr "Ana Takım" #. module: crm #: field:crm.lead,date_action:0 @@ -1864,25 +1886,25 @@ msgstr "Saat" #. module: crm #: field:crm.lead,zip:0 msgid "Zip" -msgstr "" +msgstr "PKod" #. module: crm #: code:addons/crm/crm_lead.py:213 #, python-format msgid "The case '%s' has been opened." -msgstr "" +msgstr "'%s' durumu açılmıştır." #. module: crm #: view:crm.installer:0 msgid "title" -msgstr "" +msgstr "unvan" #. module: crm #: model:crm.case.categ,name:crm.categ_phone1 #: model:ir.actions.act_window,name:crm.crm_case_categ_phone_incoming0 #: model:ir.ui.menu,name:crm.menu_crm_case_phone_inbound msgid "Inbound" -msgstr "" +msgstr "Gelen" #. module: crm #: help:crm.case.stage,probability:0 @@ -1905,7 +1927,7 @@ msgstr "İletişim Geçmişi" #. module: crm #: selection:crm.meeting,show_as:0 msgid "Free" -msgstr "" +msgstr "Ücretsiz" #. module: crm #: view:crm.installer:0 @@ -1942,7 +1964,7 @@ msgstr "" #. module: crm #: help:crm.meeting,recurrency:0 msgid "Recurrent Meeting" -msgstr "" +msgstr "Yinelenen Toplantı" #. module: crm #: view:crm.case.section:0 @@ -1985,7 +2007,7 @@ msgstr "" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall2opportunity msgid "Phonecall To Opportunity" -msgstr "" +msgstr "Fırsata Telefon Çağrısı" #. module: crm #: field:crm.case.section,reply_to:0 @@ -1995,7 +2017,7 @@ msgstr "Yanıtla" #. module: crm #: view:crm.case.section:0 msgid "Select stages for this Sales Team" -msgstr "" +msgstr "Bu Satış Takımı için aşama seçin" #. module: crm #: view:board.board:0 @@ -2005,12 +2027,12 @@ msgstr "Aşamalara göre fırsatlar" #. module: crm #: view:crm.meeting:0 msgid "Recurrency Option" -msgstr "" +msgstr "Yineleme Seçeneği" #. module: crm #: model:process.transition,note:crm.process_transition_leadpartner0 msgid "Prospect is converting to business partner" -msgstr "" +msgstr "Olası Paydaşın iş ortağına dönüştürülüyor" #. module: crm #: view:crm.lead2opportunity:0 @@ -2024,7 +2046,7 @@ msgstr "Fırsata Dönüştür" #: view:crm.phonecall.report:0 #: view:res.partner:0 msgid "Held" -msgstr "" +msgstr "Elde" #. module: crm #: view:crm.lead:0 @@ -2043,12 +2065,12 @@ msgstr "Extra Bilgi" #: model:ir.actions.act_window,name:crm.action_merge_opportunities #: model:ir.actions.act_window,name:crm.merge_opportunity_act msgid "Merge Opportunities" -msgstr "" +msgstr "Fırsatları Birleştir" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead5 msgid "Google Adwords" -msgstr "" +msgstr "Google Adwords" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall @@ -2058,7 +2080,7 @@ msgstr "miy.telefongörüşmesi" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead3 msgid "Mail Campaign 2" -msgstr "" +msgstr "Posta Kampanyası 2" #. module: crm #: view:crm.lead:0 @@ -2095,7 +2117,7 @@ msgstr "Satış Alış Kuralı Kullan" #. module: crm #: model:ir.model,name:crm.model_crm_lead2opportunity_partner msgid "Lead To Opportunity Partner" -msgstr "" +msgstr "Adayda Fırsat Ortağına" #. module: crm #: field:crm.meeting,location:0 @@ -2135,7 +2157,7 @@ msgstr "" #. module: crm #: model:ir.model,name:crm.model_crm_segmentation_line msgid "Segmentation line" -msgstr "" +msgstr "Bölümleme satırı" #. module: crm #: view:crm.opportunity2phonecall:0 @@ -2146,7 +2168,7 @@ msgstr "Planlanan Tarih" #. module: crm #: field:crm.meeting,base_calendar_url:0 msgid "Caldav URL" -msgstr "" +msgstr "Caldav Adresi" #. module: crm #: view:crm.lead:0 @@ -2156,13 +2178,13 @@ msgstr "Beklenen Gelir" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead6 msgid "Google Adwords 2" -msgstr "" +msgstr "Google Adwords 2" #. module: crm #: help:crm.lead,type:0 #: help:crm.lead.report,type:0 msgid "Type is used to separate Leads and Opportunities" -msgstr "" +msgstr "Tür, adaylar ve fırsatları ayırdetmek için kullanılır" #. module: crm #: view:crm.phonecall2partner:0 @@ -2198,41 +2220,41 @@ msgstr "x kere tekrarla" #: model:ir.model,name:crm.model_crm_case_section #: model:ir.ui.menu,name:crm.menu_crm_case_section_act msgid "Sales Teams" -msgstr "" +msgstr "Satış Takımları" #. module: crm #: model:ir.model,name:crm.model_crm_lead2partner msgid "Lead to Partner" -msgstr "" +msgstr "Adaydan Paydaşa" #. module: crm #: view:crm.segmentation:0 #: field:crm.segmentation.line,segmentation_id:0 #: model:ir.actions.act_window,name:crm.crm_segmentation-act msgid "Segmentation" -msgstr "" +msgstr "Bölümleme" #. module: crm #: view:crm.lead:0 msgid "Team" -msgstr "" +msgstr "Takım" #. module: crm #: field:crm.installer,outlook:0 msgid "MS-Outlook" -msgstr "" +msgstr "MS-Outlook" #. module: crm #: view:crm.phonecall:0 #: view:crm.phonecall.report:0 #: view:res.partner:0 msgid "Not Held" -msgstr "" +msgstr "Elde Değil" #. module: crm #: field:crm.lead.report,probability:0 msgid "Probability" -msgstr "" +msgstr "Olasılık" #. module: crm #: view:crm.lead.report:0 @@ -2287,7 +2309,7 @@ msgstr "Yapılacaklar" #. module: crm #: view:crm.meeting:0 msgid "Delegate" -msgstr "" +msgstr "Vekil" #. module: crm #: view:crm.meeting:0 @@ -2341,12 +2363,12 @@ msgstr "Kapalı" #. module: crm #: view:crm.installer:0 msgid "Plug-In" -msgstr "" +msgstr "Eklenti" #. module: crm #: model:crm.case.categ,name:crm.categ_meet2 msgid "Internal Meeting" -msgstr "" +msgstr "İç Toplantı" #. module: crm #: code:addons/crm/crm.py:411 @@ -2372,7 +2394,7 @@ msgstr "Müşteri Toplantısı" #: view:crm.lead:0 #: field:crm.lead,email_cc:0 msgid "Global CC" -msgstr "" +msgstr "Toplu CC" #. module: crm #: view:crm.phonecall:0 @@ -2386,7 +2408,7 @@ msgstr "Telefon Görüşmeleri" #: help:crm.lead.report,delay_open:0 #: help:crm.phonecall.report,delay_open:0 msgid "Number of Days to open the case" -msgstr "" +msgstr "Durumun açılması için gün sayısı" #. module: crm #: field:crm.lead,phone:0 @@ -2418,12 +2440,12 @@ msgstr "" #. module: crm #: selection:crm.segmentation.line,operator:0 msgid "Mandatory Expression" -msgstr "" +msgstr "Zorunlu İfade" #. module: crm #: selection:crm.segmentation.line,expr_operator:0 msgid ">" -msgstr "" +msgstr ">" #. module: crm #: view:crm.meeting:0 @@ -2433,7 +2455,7 @@ msgstr "Belirsiz" #. module: crm #: field:crm.send.mail,email_cc:0 msgid "CC" -msgstr "" +msgstr "CC" #. module: crm #: view:crm.send.mail:0 @@ -2468,12 +2490,12 @@ msgstr "İşlem" #. module: crm #: field:crm.installer,crm_claim:0 msgid "Claims" -msgstr "" +msgstr "Sikayetler" #. module: crm #: field:crm.segmentation,som_interval_decrease:0 msgid "Decrease (0>1)" -msgstr "" +msgstr "Azalt (0>1)" #. module: crm #: view:crm.add.note:0 @@ -2526,7 +2548,7 @@ msgstr "Maximum Aralık" #. module: crm #: view:crm.opportunity2phonecall:0 msgid "_Schedule Call" -msgstr "" +msgstr "_Çağrı Planla" #. module: crm #: code:addons/crm/crm.py:326 @@ -2561,28 +2583,28 @@ msgstr "Meşgul" #. module: crm #: field:crm.meeting,interval:0 msgid "Repeat every" -msgstr "" +msgstr "Tekrarlama" #. module: crm #: field:crm.installer,crm_helpdesk:0 msgid "Helpdesk" -msgstr "" +msgstr "Danışma Masası" #. module: crm #: field:crm.meeting,recurrency:0 msgid "Recurrent" -msgstr "" +msgstr "Yinelenen" #. module: crm #: code:addons/crm/crm.py:397 #, python-format msgid "The case '%s' has been cancelled." -msgstr "" +msgstr "'%s' Durumu iptal edilmiştir." #. module: crm #: field:crm.installer,sale_crm:0 msgid "Opportunity to Quotation" -msgstr "" +msgstr "Fırsatta Teklife" #. module: crm #: model:ir.model,name:crm.model_crm_send_mail @@ -2598,7 +2620,7 @@ msgstr "Açık Fırsatlarım" #. module: crm #: model:ir.actions.act_window,name:crm.open_board_statistical_dash msgid "CRM - Statistics Dashboard" -msgstr "" +msgstr "CRM - İstatistik Paneli" #. module: crm #: help:crm.meeting,rrule:0 @@ -2623,6 +2645,7 @@ msgstr "Max. İletişim Geçmişi" #: view:crm.lead2partner:0 msgid "Are you sure you want to create a partner based on this lead ?" msgstr "" +"Bu aday temel alınarak bir paydaş oluşturmak istediğinizden emin misiniz?" #. module: crm #: view:crm.meeting:0 @@ -2634,7 +2657,7 @@ msgstr "Toplantı Türü" #: code:addons/crm/wizard/crm_lead_to_opportunity.py:314 #, python-format msgid "Merge with Existing Opportunity" -msgstr "" +msgstr "Varolan Fırstla Birleştir" #. module: crm #: help:crm.lead,state:0 @@ -2648,6 +2671,13 @@ msgid "" " \n" "If the case needs to be reviewed then the state is set to 'Pending'." msgstr "" +"Bir vak'a oluşturulduğu zaman, durumu 'taslak' olarak ayarlanır. " +" \n" +"Eğer vak'anın işlemi sürüyor ise 'aç' olarak ayarlanır. " +" \n" +"Eğer vak'a bitti ise, durum 'tamamlandı' olarak ayarlanır. " +" \n" +"Eğer vak'a yeniden gözden geçirilecekse durum 'bekliyor' olarak ayarlanır." #. module: crm #: view:crm.meeting:0 @@ -2670,7 +2700,7 @@ msgstr "" #. module: crm #: view:board.board:0 msgid "My Win/Lost Ratio for the Last Year" -msgstr "" +msgstr "Geçen Yıl için Kazanım/Kayıp oranım" #. module: crm #: field:crm.installer,thunderbird:0 @@ -2685,19 +2715,19 @@ msgstr "E-posta sayısı" #. module: crm #: view:crm.lead:0 msgid "Search Leads" -msgstr "" +msgstr "Aday Ara" #. module: crm #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,delay_open:0 msgid "Delay to open" -msgstr "" +msgstr "Açmada gecikme" #. module: crm #: view:crm.meeting:0 msgid "Recurrency period" -msgstr "" +msgstr "Yineleme Dönemi" #. module: crm #: field:crm.meeting,week_list:0 @@ -2707,12 +2737,12 @@ msgstr "İş günü" #. module: crm #: view:crm.lead:0 msgid "Referrer" -msgstr "" +msgstr "Oneren" #. module: crm #: model:ir.model,name:crm.model_crm_lead2opportunity msgid "Lead To Opportunity" -msgstr "" +msgstr "Adaydan Fırsata" #. module: crm #: model:ir.model,name:crm.model_calendar_attendee @@ -2722,7 +2752,7 @@ msgstr "" #. module: crm #: view:crm.segmentation:0 msgid "Segmentation Test" -msgstr "" +msgstr "Bölümleme Testi" #. module: crm #: view:crm.segmentation:0 @@ -2732,12 +2762,12 @@ msgstr "Devam Prosesi" #. module: crm #: view:crm.installer:0 msgid "Configure Your CRM Application" -msgstr "" +msgstr "MİY Uygulamanızı Yapılandırın" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall2partner msgid "Phonecall to Partner" -msgstr "" +msgstr "Paydaşa Telefon Çağrısı" #. module: crm #: help:crm.lead,partner_name:0 @@ -2750,13 +2780,13 @@ msgstr "" #: field:crm.opportunity2phonecall,user_id:0 #: field:crm.phonecall2phonecall,user_id:0 msgid "Assign To" -msgstr "" +msgstr "Şuna Ata" #. module: crm #: field:crm.add.note,state:0 #: field:crm.send.mail,state:0 msgid "Set New State To" -msgstr "" +msgstr "Yeni Durumu şuna Ayarla" #. module: crm #: field:crm.lead,date_action_last:0 @@ -2770,25 +2800,25 @@ msgstr "Son İşlem" #: field:crm.phonecall,duration:0 #: field:crm.phonecall.report,duration:0 msgid "Duration" -msgstr "" +msgstr "Süre" #. module: crm #: field:crm.send.mail,reply_to:0 msgid "Reply To" -msgstr "" +msgstr "Şuna Yanıt ver" #. module: crm #: view:board.board:0 #: model:ir.actions.act_window,name:crm.open_board_crm #: model:ir.ui.menu,name:crm.menu_board_crm msgid "Sales Dashboard" -msgstr "" +msgstr "Satış Panosu" #. module: crm #: code:addons/crm/wizard/crm_lead_to_partner.py:56 #, python-format msgid "A partner is already defined on this lead." -msgstr "" +msgstr "Bu hadaya bir paydaş zaten tanımlanmış" #. module: crm #: field:crm.lead.report,nbr:0 @@ -2800,35 +2830,35 @@ msgstr "" #: help:crm.meeting,section_id:0 #: help:crm.phonecall,section_id:0 msgid "Sales team to which Case belongs to." -msgstr "" +msgstr "Durumun bağlı olduğu satış takımı" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Sunday" -msgstr "" +msgstr "Pazar" #. module: crm #: selection:crm.meeting,byday:0 msgid "Fourth" -msgstr "" +msgstr "Dördüncü" #. module: crm #: selection:crm.add.note,state:0 #: selection:crm.merge.opportunity,state:0 #: selection:crm.send.mail,state:0 msgid "Unchanged" -msgstr "" +msgstr "Değiştirilmemiş" #. module: crm #: model:ir.actions.act_window,name:crm.crm_segmentation_tree-act #: model:ir.ui.menu,name:crm.menu_crm_segmentation-act msgid "Partners Segmentation" -msgstr "" +msgstr "Paydaş Bölümleme" #. module: crm #: field:crm.lead,fax:0 msgid "Fax" -msgstr "" +msgstr "Faks" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_category_act_oppor11 @@ -2849,7 +2879,7 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Assignment" -msgstr "" +msgstr "Atama" #. module: crm #: field:crm.lead,company_id:0 @@ -2859,49 +2889,49 @@ msgstr "" #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,company_id:0 msgid "Company" -msgstr "" +msgstr "Firma" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Friday" -msgstr "" +msgstr "Cuma" #. module: crm #: field:crm.meeting,allday:0 msgid "All Day" -msgstr "" +msgstr "Tüm Gün" #. module: crm #: field:crm.segmentation.line,operator:0 msgid "Mandatory / Optional" -msgstr "" +msgstr "Zorunlu / Seçmeli" #. module: crm #: model:ir.actions.act_window,name:crm.action_view_attendee_form #: model:ir.ui.menu,name:crm.menu_attendee_invitations msgid "Meeting Invitations" -msgstr "" +msgstr "Toplantı Davetleri" #. module: crm #: field:crm.case.categ,object_id:0 msgid "Object Name" -msgstr "" +msgstr "Nesne Adı" #. module: crm #: help:crm.lead,email_from:0 msgid "E-mail address of the contact" -msgstr "" +msgstr "İlgilinin E-posta adresi" #. module: crm #: field:crm.lead,referred:0 msgid "Referred By" -msgstr "" +msgstr "Öneren" #. module: crm #: view:crm.lead:0 #: model:ir.model,name:crm.model_crm_add_note msgid "Add Internal Note" -msgstr "" +msgstr "İç Not Ekle" #. module: crm #: code:addons/crm/crm_lead.py:304 @@ -2912,14 +2942,14 @@ msgstr "" #. module: crm #: selection:crm.meeting,byday:0 msgid "Last" -msgstr "" +msgstr "Sonuncu" #. module: crm #: field:crm.lead,message_ids:0 #: field:crm.meeting,message_ids:0 #: field:crm.phonecall,message_ids:0 msgid "Messages" -msgstr "" +msgstr "Mesajlar" #. module: crm #: help:crm.case.stage,on_change:0 @@ -2939,7 +2969,7 @@ msgstr "Hata!" #: field:crm.opportunity2phonecall,name:0 #: field:crm.phonecall2phonecall,name:0 msgid "Call summary" -msgstr "" +msgstr "Çağrı Özeti" #. module: crm #: selection:crm.add.note,state:0 @@ -2951,12 +2981,12 @@ msgstr "" #: selection:crm.phonecall.report,state:0 #: selection:crm.send.mail,state:0 msgid "Cancelled" -msgstr "" +msgstr "Vazgeçildi" #. module: crm #: field:crm.add.note,body:0 msgid "Note Body" -msgstr "" +msgstr "Not Gövdesi" #. module: crm #: view:board.board:0 @@ -2967,18 +2997,18 @@ msgstr "" #: field:crm.lead.report,date_closed:0 #: field:crm.phonecall.report,date_closed:0 msgid "Close Date" -msgstr "" +msgstr "Kapanış Tarihi" #. module: crm #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid " Month " -msgstr "" +msgstr " Ay " #. module: crm #: view:crm.lead:0 msgid "Links" -msgstr "" +msgstr "Bağlantılar" #. module: crm #: model:ir.actions.act_window,help:crm.crm_lead_categ_action @@ -3008,7 +3038,7 @@ msgstr "" #. module: crm #: view:crm.case.section:0 msgid "Mailgateway" -msgstr "" +msgstr "Ağgeçidi" #. module: crm #: help:crm.lead,user_id:0 @@ -3018,19 +3048,19 @@ msgstr "" #. module: crm #: view:crm.lead.report:0 msgid "# Mails" -msgstr "" +msgstr "Posta sayısı" #. module: crm #: code:addons/crm/wizard/crm_phonecall_to_opportunity.py:57 #, python-format msgid "Warning" -msgstr "" +msgstr "Uyarı" #. module: crm #: field:crm.phonecall,name:0 #: view:res.partner:0 msgid "Call Summary" -msgstr "" +msgstr "Çağrı Özeti" #. module: crm #: field:crm.segmentation.line,expr_operator:0 @@ -3040,12 +3070,12 @@ msgstr "İşleç" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall2phonecall msgid "Phonecall To Phonecall" -msgstr "" +msgstr "Telefonçağrısından Telefonçağrısına" #. module: crm #: view:crm.lead:0 msgid "Schedule/Log Call" -msgstr "" +msgstr "Planlama/Çağrı Kütüğü" #. module: crm #: field:crm.installer,fetchmail:0 @@ -3055,7 +3085,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,state:0 msgid "Confirmed" -msgstr "" +msgstr "Onaylandı" #. module: crm #: help:crm.send.mail,email_cc:0 @@ -3067,12 +3097,12 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Confirm" -msgstr "" +msgstr "Onayla" #. module: crm #: field:crm.meeting,su:0 msgid "Sun" -msgstr "" +msgstr "Pazar" #. module: crm #: field:crm.phonecall.report,section_id:0 @@ -3100,23 +3130,23 @@ msgstr "Zorunlu Olmayan İfade" #. module: crm #: selection:crm.meeting,select1:0 msgid "Day of month" -msgstr "" +msgstr "Ayın günü" #. module: crm #: field:crm.lead2opportunity,probability:0 msgid "Success Rate (%)" -msgstr "" +msgstr "Başarı Oranı (%)" #. module: crm #: model:crm.case.stage,name:crm.stage_lead1 #: model:crm.case.stage,name:crm.stage_opportunity1 msgid "New" -msgstr "" +msgstr "Yeni" #. module: crm #: view:crm.meeting:0 msgid "Mail TO" -msgstr "" +msgstr "Şuna Postala" #. module: crm #: view:crm.lead:0 @@ -3138,14 +3168,14 @@ msgstr "Kanal" #. module: crm #: model:ir.actions.act_window,name:crm.opportunity2phonecall_act msgid "Schedule Call" -msgstr "" +msgstr "Çağrı Planla" #. module: crm #: code:addons/crm/wizard/crm_lead_to_opportunity.py:135 #: code:addons/crm/wizard/crm_lead_to_opportunity.py:260 #, python-format msgid "Closed/Cancelled Leads Could not convert into Opportunity" -msgstr "" +msgstr "Kapatılmış/İptal edilmiş Adaylar Fırsata dönüştürülemez." #. module: crm #: view:crm.segmentation:0 @@ -3169,50 +3199,50 @@ msgstr "" #. module: crm #: selection:crm.meeting,class:0 msgid "Confidential" -msgstr "" +msgstr "Güvenilir" #. module: crm #: help:crm.meeting,date_deadline:0 msgid "" "Deadline Date is automatically computed from Start " "Date + Duration" -msgstr "" +msgstr "Bitiş Tarihi Başlangıç Tarihi + Süre den otomatik olarak hesaplanır" #. module: crm #: field:crm.lead,state_id:0 msgid "Fed. State" -msgstr "" +msgstr "Fed. Eyalet" #. module: crm #: model:process.transition,note:crm.process_transition_leadopportunity0 msgid "Creating business opportunities from Leads" -msgstr "" +msgstr "Adaylardan iş fırsatları oluşturma" #. module: crm #: help:crm.send.mail,html:0 msgid "Select this if you want to send email with HTML formatting." -msgstr "" +msgstr "HTML formatında e-posta göndermek için bunu seçin." #. module: crm #: model:crm.case.categ,name:crm.categ_oppor4 msgid "Need Information" -msgstr "" +msgstr "Bilgi Gerekiyor" #. module: crm #: model:process.transition,name:crm.process_transition_leadopportunity0 msgid "Prospect Opportunity" -msgstr "" +msgstr "Beklenen Fırsat" #. module: crm #: view:crm.installer:0 #: model:ir.actions.act_window,name:crm.action_crm_installer msgid "CRM Application Configuration" -msgstr "" +msgstr "MİY Uygulaması Yapılandırması" #. module: crm #: field:base.action.rule,act_categ_id:0 msgid "Set Category to" -msgstr "" +msgstr "Kategoriyi şuna Ayarla" #. module: crm #: view:crm.case.section:0 @@ -3222,7 +3252,7 @@ msgstr "Yapılandırma" #. module: crm #: field:crm.meeting,th:0 msgid "Thu" -msgstr "" +msgstr "Perş" #. module: crm #: view:crm.add.note:0 @@ -3233,13 +3263,13 @@ msgstr "" #: view:crm.phonecall2phonecall:0 #: view:crm.send.mail:0 msgid "_Cancel" -msgstr "" +msgstr "_Vazgeç" #. module: crm #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid " Month-1 " -msgstr "" +msgstr " Ay-1 " #. module: crm #: help:crm.installer,sale_crm:0 @@ -3249,40 +3279,40 @@ msgstr "" #. module: crm #: selection:crm.meeting,rrule_type:0 msgid "Daily" -msgstr "" +msgstr "Günlük" #. module: crm #: model:crm.case.stage,name:crm.stage_lead2 #: model:crm.case.stage,name:crm.stage_opportunity2 msgid "Qualification" -msgstr "" +msgstr "Yeterlik" #. module: crm #: view:crm.case.stage:0 msgid "Stage Definition" -msgstr "" +msgstr "Aşama Tanımı" #. module: crm #: selection:crm.meeting,byday:0 msgid "First" -msgstr "" +msgstr "İlk" #. module: crm #: selection:crm.lead.report,month:0 #: selection:crm.meeting,month_list:0 #: selection:crm.phonecall.report,month:0 msgid "December" -msgstr "" +msgstr "Aralik" #. module: crm #: field:crm.installer,config_logo:0 msgid "Image" -msgstr "" +msgstr "Resim" #. module: crm #: view:base.action.rule:0 msgid "Condition on Communication History" -msgstr "" +msgstr "İletişim Geçmişi Koşulları" #. module: crm #: help:crm.segmentation,som_interval:0 @@ -3299,24 +3329,24 @@ msgstr "" #. module: crm #: view:crm.send.mail:0 msgid "_Send Reply" -msgstr "" +msgstr "_Yanıt Gönder" #. module: crm #: field:crm.meeting,vtimezone:0 msgid "Timezone" -msgstr "" +msgstr "Saat dilimi" #. module: crm #: field:crm.lead2opportunity.partner,msg:0 #: field:crm.lead2partner,msg:0 #: view:crm.send.mail:0 msgid "Message" -msgstr "" +msgstr "Mesaj" #. module: crm #: field:crm.meeting,sa:0 msgid "Sat" -msgstr "" +msgstr "Cts" #. module: crm #: view:crm.lead:0 @@ -3324,17 +3354,17 @@ msgstr "" #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid "Salesman" -msgstr "" +msgstr "Satış Elemanı" #. module: crm #: field:crm.lead,date_deadline:0 msgid "Expected Closing" -msgstr "" +msgstr "Beklenen Kapanış" #. module: crm #: model:ir.model,name:crm.model_crm_opportunity2phonecall msgid "Opportunity to Phonecall" -msgstr "" +msgstr "Fırsata Telefonçağrısı" #. module: crm #: help:crm.case.section,allow_unlink:0 @@ -3344,31 +3374,31 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Schedule Meeting" -msgstr "" +msgstr "Toplantı Planla" #. module: crm #: view:crm.lead:0 msgid "Partner Name" -msgstr "" +msgstr "Paydaş Adı" #. module: crm #: model:crm.case.categ,name:crm.categ_phone2 #: model:ir.actions.act_window,name:crm.crm_case_categ_phone_outgoing0 #: model:ir.ui.menu,name:crm.menu_crm_case_phone_outbound msgid "Outbound" -msgstr "" +msgstr "Giden" #. module: crm #: field:crm.lead,date_open:0 #: field:crm.phonecall,date_open:0 msgid "Opened" -msgstr "" +msgstr "Açık" #. module: crm #: view:crm.case.section:0 #: field:crm.case.section,member_ids:0 msgid "Team Members" -msgstr "" +msgstr "Takım Üyeleri" #. module: crm #: view:crm.lead:0 @@ -3377,17 +3407,17 @@ msgstr "" #: view:crm.phonecall:0 #: view:res.partner:0 msgid "Contacts" -msgstr "" +msgstr "İlgililer" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor1 msgid "Interest in Computer" -msgstr "" +msgstr "Bilgisayara İlgisi var" #. module: crm #: view:crm.meeting:0 msgid "Invitation Detail" -msgstr "" +msgstr "Davet Ayrıntısı" #. module: crm #: field:crm.segmentation,som_interval_default:0 @@ -3401,17 +3431,19 @@ msgid "" "outbound emails for this record before being sent. Separate multiple email " "addresses with a comma" msgstr "" +"Bu e-posta adresleri gönderilmeden önce bütün gelen ve giden e-postaların CC " +"satırına eklenecektir. Birden fazla e-posta adresini virgül ile ayırınız." #. module: crm #: constraint:res.partner:0 msgid "Error ! You can not create recursive associated members." -msgstr "" +msgstr "Hata! Yinelemeli üyeler oluşturamazsınız." #. module: crm #: field:crm.partner2opportunity,probability:0 #: field:crm.phonecall2opportunity,probability:0 msgid "Success Probability" -msgstr "" +msgstr "Başarı Olasılığı" #. module: crm #: code:addons/crm/crm.py:426 @@ -3429,12 +3461,12 @@ msgstr "Taslak" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_section_act_tree msgid "Cases by Sales Team" -msgstr "" +msgstr "Satış Takımına göre Durumlar" #. module: crm #: field:crm.meeting,attendee_ids:0 msgid "Attendees" -msgstr "" +msgstr "Katılanlar" #. module: crm #: view:crm.meeting:0 @@ -3443,38 +3475,38 @@ msgstr "" #: model:process.node,name:crm.process_node_meeting0 #: model:res.request.link,name:crm.request_link_meeting msgid "Meeting" -msgstr "" +msgstr "Toplantı" #. module: crm #: model:ir.model,name:crm.model_crm_case_categ msgid "Category of Case" -msgstr "" +msgstr "Durum Kategorisi" #. module: crm #: view:crm.lead:0 #: view:crm.phonecall:0 msgid "7 Days" -msgstr "" +msgstr "7 Gün" #. module: crm #: view:board.board:0 msgid "Planned Revenue by Stage and User" -msgstr "" +msgstr "Aşama ve Kullanıcıya göre Planlanan Gelir" #. module: crm #: view:crm.lead:0 msgid "Communication & History" -msgstr "" +msgstr "İletişim & Geçmiş" #. module: crm #: model:ir.model,name:crm.model_crm_lead_report msgid "CRM Lead Report" -msgstr "" +msgstr "MİY Aday Raporu" #. module: crm #: field:crm.installer,progress:0 msgid "Configuration Progress" -msgstr "" +msgstr "Yapılandırma Gelişimi" #. module: crm #: selection:crm.lead,priority:0 @@ -3487,13 +3519,13 @@ msgstr "Normal" #. module: crm #: field:crm.lead,street2:0 msgid "Street2" -msgstr "" +msgstr "Cadde 2" #. module: crm #: model:ir.actions.act_window,name:crm.crm_meeting_categ_action #: model:ir.ui.menu,name:crm.menu_crm_case_meeting-act msgid "Meeting Categories" -msgstr "" +msgstr "Toplantı Kategorileri" #. module: crm #: view:crm.lead2opportunity.partner:0 @@ -3505,43 +3537,43 @@ msgstr "" #. module: crm #: field:crm.lead.report,delay_open:0 msgid "Delay to Open" -msgstr "" +msgstr "Açılış Gecikmesi" #. module: crm #: field:crm.lead.report,user_id:0 #: field:crm.phonecall.report,user_id:0 msgid "User" -msgstr "" +msgstr "Kullanıcı" #. module: crm #: selection:crm.lead.report,month:0 #: selection:crm.meeting,month_list:0 #: selection:crm.phonecall.report,month:0 msgid "November" -msgstr "" +msgstr "Kasım" #. module: crm #: code:addons/crm/crm_action_rule.py:67 #, python-format msgid "No E-Mail ID Found for your Company address!" -msgstr "" +msgstr "Firma adresinizde bir Eposta Kimliği yok!" #. module: crm #: view:crm.lead.report:0 msgid "Opportunities By Stage" -msgstr "" +msgstr "Aşamaya göre Fırsatlar" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_categ_phone_create_partner msgid "Schedule Phone Call" -msgstr "" +msgstr "Telefon Çağrısı Planla" #. module: crm #: selection:crm.lead.report,month:0 #: selection:crm.meeting,month_list:0 #: selection:crm.phonecall.report,month:0 msgid "January" -msgstr "" +msgstr "Ocak" #. module: crm #: model:ir.actions.act_window,help:crm.crm_opportunity_stage_act @@ -3555,12 +3587,12 @@ msgstr "" #. module: crm #: model:process.process,name:crm.process_process_contractprocess0 msgid "Contract" -msgstr "" +msgstr "Sözleşme" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead4 msgid "Twitter Ads" -msgstr "" +msgstr "Twitter Reklamları" #. module: crm #: code:addons/crm/wizard/crm_add_note.py:26 @@ -3569,22 +3601,22 @@ msgstr "" #: code:addons/crm/wizard/crm_send_email.py:270 #, python-format msgid "Error" -msgstr "" +msgstr "Hata" #. module: crm #: view:crm.lead.report:0 msgid "Planned Revenues" -msgstr "" +msgstr "Planlanan Gelir" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor7 msgid "Need Consulting" -msgstr "" +msgstr "Danışma İsteniyor" #. module: crm #: constraint:crm.segmentation:0 msgid "Error ! You can not create recursive profiles." -msgstr "" +msgstr "Hata ! Yinelen profiller oluşturamazsınız." #. module: crm #: code:addons/crm/crm_lead.py:232 @@ -3613,7 +3645,7 @@ msgstr "" #: code:addons/crm/wizard/crm_merge_opportunities.py:100 #, python-format msgid "Merged into Opportunity: %s" -msgstr "" +msgstr "Fırsatla Birleştir: %s" #. module: crm #: code:addons/crm/crm.py:347 @@ -3628,12 +3660,12 @@ msgstr "Kapat" #: view:crm.phonecall:0 #: view:res.partner:0 msgid "Categorization" -msgstr "" +msgstr "Sınıflandırma" #. module: crm #: model:ir.model,name:crm.model_base_action_rule msgid "Action Rules" -msgstr "" +msgstr "Eylem Kuralları" #. module: crm #: field:crm.meeting,rrule_type:0 @@ -3643,33 +3675,33 @@ msgstr "" #. module: crm #: field:crm.meeting,phonecall_id:0 msgid "Phonecall" -msgstr "" +msgstr "Telefonçağrısı" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Thursday" -msgstr "" +msgstr "Perşembe" #. module: crm #: view:crm.meeting:0 #: field:crm.send.mail,email_to:0 msgid "To" -msgstr "" +msgstr "Kime" #. module: crm #: selection:crm.meeting,class:0 msgid "Private" -msgstr "" +msgstr "Özel" #. module: crm #: field:crm.lead,function:0 msgid "Function" -msgstr "" +msgstr "İşlev" #. module: crm #: view:crm.add.note:0 msgid "_Add" -msgstr "" +msgstr "_Ekle" #. module: crm #: selection:crm.segmentation.line,expr_name:0 @@ -3705,14 +3737,14 @@ msgstr "Açıklama" #: field:res.partner,section_id:0 #: field:res.users,context_section_id:0 msgid "Sales Team" -msgstr "" +msgstr "Satış Takımı" #. module: crm #: selection:crm.lead.report,month:0 #: selection:crm.meeting,month_list:0 #: selection:crm.phonecall.report,month:0 msgid "May" -msgstr "" +msgstr "Mayıs" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor2 @@ -3728,12 +3760,12 @@ msgstr "" #. module: crm #: field:crm.lead.report,email:0 msgid "# Emails" -msgstr "" +msgstr "Eposta sayısı" #. module: crm #: field:crm.lead,street:0 msgid "Street" -msgstr "" +msgstr "Cadde" #. module: crm #: view:crm.lead.report:0 @@ -3743,41 +3775,41 @@ msgstr "" #. module: crm #: field:crm.case.section,working_hours:0 msgid "Working Hours" -msgstr "" +msgstr "Çalışma Saatleri" #. module: crm #: view:crm.lead:0 #: field:crm.lead,is_customer_add:0 msgid "Customer" -msgstr "" +msgstr "Müşteri" #. module: crm #: selection:crm.lead.report,month:0 #: selection:crm.meeting,month_list:0 #: selection:crm.phonecall.report,month:0 msgid "February" -msgstr "" +msgstr "Şubat" #. module: crm #: view:crm.phonecall:0 #: model:ir.actions.act_window,name:crm.crm_case_categ_meet_create_partner #: view:res.partner:0 msgid "Schedule a Meeting" -msgstr "" +msgstr "Toplantı Planla" #. module: crm #: model:crm.case.stage,name:crm.stage_lead6 #: model:crm.case.stage,name:crm.stage_opportunity6 #: view:crm.lead:0 msgid "Lost" -msgstr "" +msgstr "Kayıp" #. module: crm #: field:crm.lead,country_id:0 #: view:crm.lead.report:0 #: field:crm.lead.report,country_id:0 msgid "Country" -msgstr "" +msgstr "Ülke" #. module: crm #: view:crm.lead:0 @@ -3785,24 +3817,24 @@ msgstr "" #: view:crm.phonecall:0 #: view:res.partner:0 msgid "Convert to Opportunity" -msgstr "" +msgstr "Fırsata Dönüştür" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Wednesday" -msgstr "" +msgstr "Çarşamba" #. module: crm #: selection:crm.lead.report,month:0 #: selection:crm.meeting,month_list:0 #: selection:crm.phonecall.report,month:0 msgid "April" -msgstr "" +msgstr "Nisan" #. module: crm #: field:crm.case.resource.type,name:0 msgid "Campaign Name" -msgstr "" +msgstr "Kampanya Adı" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall_report @@ -3817,13 +3849,13 @@ msgstr "" #. module: crm #: field:crm.meeting,select1:0 msgid "Option" -msgstr "" +msgstr "Seçenek" #. module: crm #: model:crm.case.stage,name:crm.stage_lead4 #: model:crm.case.stage,name:crm.stage_opportunity4 msgid "Negotiation" -msgstr "" +msgstr "Görüşme" #. module: crm #: view:crm.lead:0 @@ -3839,12 +3871,12 @@ msgstr "Sıra No" #. module: crm #: field:crm.send.mail,body:0 msgid "Message Body" -msgstr "" +msgstr "İleti Gövdesi" #. module: crm #: view:crm.meeting:0 msgid "Accept" -msgstr "" +msgstr "TAMAM" #. module: crm #: field:crm.segmentation.line,expr_name:0 @@ -3854,7 +3886,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,byday:0 msgid "Second" -msgstr "" +msgstr "Saniye" #. module: crm #: model:crm.case.stage,name:crm.stage_lead3 @@ -3865,7 +3897,7 @@ msgstr "" #. module: crm #: field:res.partner,phonecall_ids:0 msgid "Phonecalls" -msgstr "" +msgstr "Telefonçağrısı" #. module: crm #: view:crm.lead.report:0 @@ -3873,12 +3905,12 @@ msgstr "" #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,name:0 msgid "Year" -msgstr "" +msgstr "Yıl" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead8 msgid "Newsletter" -msgstr "" +msgstr "Habermektubu" #~ msgid "Invalid XML for View Architecture!" #~ msgstr "Görüntüleme mimarisi için Geçersiz XML" @@ -4285,3 +4317,9 @@ msgstr "" #~ msgid "Form View" #~ msgstr "Formu Göster" + +#~ msgid "Telesales" +#~ msgstr "Telesatış" + +#~ msgid "Mail Campaign 1" +#~ msgstr "Posta Kampanyası 1" diff --git a/addons/email_template/i18n/sv.po b/addons/email_template/i18n/sv.po index 49d87218919..2d628f0c74e 100644 --- a/addons/email_template/i18n/sv.po +++ b/addons/email_template/i18n/sv.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-12-15 11:06+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-03 14:08+0000\n" +"Last-Translator: Jan-Eric Lindh \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: 2011-04-29 05:46+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-04 04:53+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: email_template #: help:email_template.account,auto_delete:0 @@ -919,7 +919,7 @@ msgid "Close" msgstr "Stäng" #. module: email_template -#: code:addons/email_template/email_template_mailbox.py:49 +#: code:addons/email_template/email_template_mailbox.py:48 #, python-format msgid "Error sending mail: %s" msgstr "" @@ -1007,7 +1007,7 @@ msgid "Email Mailbox" msgstr "" #. module: email_template -#: code:addons/email_template/email_template_mailbox.py:116 +#: code:addons/email_template/email_template_mailbox.py:104 #, python-format msgid "" "Sending of Mail %s failed. Probable Reason:Could not login to server\n" @@ -1075,7 +1075,7 @@ msgstr "" #. module: email_template #: field:email.template,template_language:0 msgid "Templating Language" -msgstr "" +msgstr "Mallspråk" #. module: email_template #: field:email.template,def_cc:0 @@ -1115,7 +1115,9 @@ msgstr "" #. module: email_template #: view:email_template.mailbox:0 +#: model:ir.actions.act_window,name:email_template.action_email_template_mailbox #: model:ir.ui.menu,name:email_template.menu_email_template_mails_tools +#: model:ir.ui.menu,name:email_template.menu_email_template_personal_mails msgid "Emails" msgstr "E-post" diff --git a/addons/event/i18n/sv.po b/addons/event/i18n/sv.po index d3643d4c140..c3eb171c8d2 100644 --- a/addons/event/i18n/sv.po +++ b/addons/event/i18n/sv.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.14\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2011-01-22 02:01+0000\n" -"Last-Translator: Magnus Brandt (mba), Aspirix AB \n" +"PO-Revision-Date: 2011-06-03 14:09+0000\n" +"Last-Translator: Stefan Lind \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 04:54+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-04 04:53+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: event #: view:event.event:0 @@ -72,7 +72,7 @@ msgstr "Skapa fakturor" #: view:event.event:0 #: view:event.registration:0 msgid "Registration Date" -msgstr "" +msgstr "Registreringsdatum" #. module: event #: help:event.event,main_speaker_id:0 diff --git a/addons/hr_attendance/i18n/vi.po b/addons/hr_attendance/i18n/vi.po index 2cf5d58fe29..1dbfa21d97b 100644 --- a/addons/hr_attendance/i18n/vi.po +++ b/addons/hr_attendance/i18n/vi.po @@ -8,34 +8,34 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-08-02 14:35+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-06-04 22:45+0000\n" +"Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:34+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-06 04:37+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: hr_attendance #: model:ir.ui.menu,name:hr_attendance.menu_hr_time_tracking msgid "Time Tracking" -msgstr "" +msgstr "Theo dõi Thời gian" #. module: hr_attendance #: view:hr.attendance:0 msgid "Group By..." -msgstr "" +msgstr "Nhóm theo..." #. module: hr_attendance #: view:hr.attendance:0 msgid "Today" -msgstr "" +msgstr "Hôm nay" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "March" -msgstr "" +msgstr "Tháng Ba" #. module: hr_attendance #: view:hr.sign.in.out.ask:0 @@ -43,6 +43,8 @@ msgid "" "You did not sign out the last time. Please enter the date and time you " "signed out." msgstr "" +"Bạn đã không đăng xuất lần trước. Xin vui lòng nhập ngày và thời gian bạn đã " +"đăng xuất." #. module: hr_attendance #: report:report.hr.timesheet.attendance.error:0 @@ -52,7 +54,7 @@ msgstr "" #. module: hr_attendance #: field:hr.action.reason,name:0 msgid "Reason" -msgstr "" +msgstr "Lý do" #. module: hr_attendance #: view:hr.attendance.error:0 @@ -63,7 +65,7 @@ msgstr "" #: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:156 #, python-format msgid "The sign-out date must be in the past" -msgstr "" +msgstr "Ngày đăng xuất phải trong quá khứ" #. module: hr_attendance #: report:report.hr.timesheet.attendance.error:0 @@ -87,12 +89,12 @@ msgstr "" #: view:hr.attendance:0 #: field:hr.attendance,day:0 msgid "Day" -msgstr "" +msgstr "Ngày" #. module: hr_attendance #: selection:hr.employee,state:0 msgid "Present" -msgstr "" +msgstr "Có mặt" #. module: hr_attendance #: model:ir.model,name:hr_attendance.model_hr_sign_in_out_ask @@ -108,7 +110,7 @@ msgstr "" #. module: hr_attendance #: view:hr.sign.in.out:0 msgid "Ok" -msgstr "" +msgstr "Đồng ý" #. module: hr_attendance #: view:hr.action.reason:0 @@ -119,7 +121,7 @@ msgstr "" #: constraint:hr.employee:0 msgid "" "Error ! You cannot select a department for which the employee is the manager." -msgstr "" +msgstr "Lỗi ! Bạn không thể chọn phòng ban do nhân viên này quản lý." #. module: hr_attendance #: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_month @@ -130,7 +132,7 @@ msgstr "" #: field:hr.sign.in.out,name:0 #: field:hr.sign.in.out.ask,name:0 msgid "Employees name" -msgstr "" +msgstr "Tên các người lao động" #. module: hr_attendance #: model:ir.actions.act_window,name:hr_attendance.open_view_attendance_reason @@ -145,13 +147,13 @@ msgstr "" #: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:174 #, python-format msgid "UserError" -msgstr "" +msgstr "Lỗi người sử dụng" #. module: hr_attendance #: field:hr.attendance.error,end_date:0 #: field:hr.attendance.week,end_date:0 msgid "Ending Date" -msgstr "" +msgstr "Ngày kết thúc" #. module: hr_attendance #: view:hr.attendance:0 @@ -162,7 +164,7 @@ msgstr "" #: code:addons/hr_attendance/hr_attendance.py:136 #, python-format msgid "Warning" -msgstr "" +msgstr "Cảnh báo" #. module: hr_attendance #: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:169 @@ -180,7 +182,7 @@ msgstr "" #: field:hr.employee,state:0 #: model:ir.model,name:hr_attendance.model_hr_attendance msgid "Attendance" -msgstr "" +msgstr "Điểm danh" #. module: hr_attendance #: field:hr.attendance.error,max_delay:0 @@ -191,7 +193,7 @@ msgstr "" #: view:hr.attendance.error:0 #: view:hr.attendance.month:0 msgid "Print" -msgstr "" +msgstr "In" #. module: hr_attendance #: view:hr.attendance:0 @@ -216,7 +218,7 @@ msgstr "" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "July" -msgstr "" +msgstr "Tháng Bảy" #. module: hr_attendance #: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_error @@ -228,7 +230,7 @@ msgstr "" #: field:hr.attendance.error,init_date:0 #: field:hr.attendance.week,init_date:0 msgid "Starting Date" -msgstr "" +msgstr "Ngày bắt đầu" #. module: hr_attendance #: report:report.hr.timesheet.attendance.error:0 @@ -239,33 +241,33 @@ msgstr "" #: selection:hr.attendance,action:0 #: view:hr.employee:0 msgid "Sign In" -msgstr "" +msgstr "Đăng nhập" #. module: hr_attendance #: report:report.hr.timesheet.attendance.error:0 msgid "Operation" -msgstr "" +msgstr "Thao tác" #. module: hr_attendance #: code:addons/hr_attendance/wizard/hr_attendance_error.py:49 #, python-format msgid "No Data Available" -msgstr "" +msgstr "Không có dữ liệu" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "September" -msgstr "" +msgstr "Tháng Chín" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "December" -msgstr "" +msgstr "Tháng Mười Hai" #. module: hr_attendance #: field:hr.attendance.month,month:0 msgid "Month" -msgstr "" +msgstr "Tháng" #. module: hr_attendance #: report:report.hr.timesheet.attendance.error:0 @@ -303,12 +305,12 @@ msgstr "" #. module: hr_attendance #: view:hr.sign.in.out.ask:0 msgid "hr.sign.out.ask" -msgstr "" +msgstr "hr.sign.out.ask" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "August" -msgstr "" +msgstr "Tháng Tám" #. module: hr_attendance #: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:174 @@ -319,7 +321,7 @@ msgstr "" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "June" -msgstr "" +msgstr "Tháng Sáu" #. module: hr_attendance #: model:ir.model,name:hr_attendance.model_hr_attendance_error @@ -334,22 +336,22 @@ msgstr "" #. module: hr_attendance #: field:hr.attendance,name:0 msgid "Date" -msgstr "" +msgstr "Ngày" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "November" -msgstr "" +msgstr "Tháng Mười Một" #. module: hr_attendance #: constraint:hr.employee:0 msgid "Error ! You cannot create recursive Hierarchy of Employees." -msgstr "" +msgstr "Lỗi ! Bạn không thể tao cấu trúc đệ quy của nhân viên" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "October" -msgstr "" +msgstr "Tháng Mười" #. module: hr_attendance #: view:hr.attendance:0 @@ -359,14 +361,14 @@ msgstr "" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "January" -msgstr "" +msgstr "Tháng Giêng" #. module: hr_attendance #: selection:hr.action.reason,action_type:0 #: view:hr.sign.in.out:0 #: view:hr.sign.in.out.ask:0 msgid "Sign in" -msgstr "" +msgstr "Đăng nhập" #. module: hr_attendance #: view:hr.attendance.error:0 @@ -387,7 +389,7 @@ msgstr "" #: field:hr.attendance,action:0 #: selection:hr.attendance,action:0 msgid "Action" -msgstr "" +msgstr "Hành động" #. module: hr_attendance #: view:hr.sign.in.out:0 @@ -401,7 +403,7 @@ msgstr "" #. module: hr_attendance #: field:hr.sign.in.out,emp_id:0 msgid "Employee ID" -msgstr "" +msgstr "Mã Nhân viên" #. module: hr_attendance #: model:ir.model,name:hr_attendance.model_hr_attendance_week @@ -411,7 +413,7 @@ msgstr "" #. module: hr_attendance #: field:hr.sign.in.out.ask,emp_id:0 msgid "Empoyee ID" -msgstr "" +msgstr "Mã Nhân viên" #. module: hr_attendance #: view:hr.attendance.error:0 @@ -419,7 +421,7 @@ msgstr "" #: view:hr.sign.in.out:0 #: view:hr.sign.in.out.ask:0 msgid "Cancel" -msgstr "" +msgstr "Hủy bỏ" #. module: hr_attendance #: help:hr.action.reason,name:0 @@ -442,7 +444,7 @@ msgstr "" #: view:hr.sign.in.out:0 #: view:hr.sign.in.out.ask:0 msgid "Sign out" -msgstr "" +msgstr "Đăng xuất" #. module: hr_attendance #: report:report.hr.timesheet.attendance.error:0 @@ -453,7 +455,7 @@ msgstr "" #: view:hr.attendance:0 #: model:ir.model,name:hr_attendance.model_hr_employee msgid "Employee" -msgstr "" +msgstr "Người lao động" #. module: hr_attendance #: code:addons/hr_attendance/hr_attendance.py:136 @@ -472,7 +474,7 @@ msgstr "" #. module: hr_attendance #: report:report.hr.timesheet.attendance.error:0 msgid "Date Recorded" -msgstr "" +msgstr "Ngày Ghi nhận" #. module: hr_attendance #: model:ir.actions.act_window,name:hr_attendance.open_view_attendance @@ -484,7 +486,7 @@ msgstr "" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "May" -msgstr "" +msgstr "Tháng Năm" #. module: hr_attendance #: view:hr.sign.in.out.ask:0 @@ -495,7 +497,7 @@ msgstr "" #: selection:hr.attendance,action:0 #: view:hr.employee:0 msgid "Sign Out" -msgstr "" +msgstr "Đăng xuất" #. module: hr_attendance #: model:ir.actions.act_window,help:hr_attendance.action_hr_attendance_sigh_in_out @@ -509,17 +511,17 @@ msgstr "" #. module: hr_attendance #: field:hr.attendance,employee_id:0 msgid "Employee's Name" -msgstr "" +msgstr "Tên Người lao động" #. module: hr_attendance #: selection:hr.employee,state:0 msgid "Absent" -msgstr "" +msgstr "Vắng mặt" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "February" -msgstr "" +msgstr "Tháng Hai" #. module: hr_attendance #: field:hr.action.reason,action_type:0 @@ -534,12 +536,12 @@ msgstr "" #. module: hr_attendance #: field:hr.sign.in.out,state:0 msgid "Current state" -msgstr "" +msgstr "Tình trạng hiện tại" #. module: hr_attendance #: selection:hr.attendance.month,month:0 msgid "April" -msgstr "" +msgstr "Tháng Tư" #. module: hr_attendance #: view:hr.attendance.error:0 @@ -550,7 +552,7 @@ msgstr "" #: code:addons/hr_attendance/wizard/hr_attendance_error.py:49 #, python-format msgid "No records found for your selection!" -msgstr "" +msgstr "Không có bản ghi theo lựa chọn của bạn!" #. module: hr_attendance #: view:hr.sign.in.out.ask:0 @@ -562,9 +564,9 @@ msgstr "" #. module: hr_attendance #: field:hr.attendance.month,year:0 msgid "Year" -msgstr "" +msgstr "Năm" #. module: hr_attendance #: view:hr.sign.in.out.ask:0 msgid "hr.sign.in.out.ask" -msgstr "" +msgstr "hr.sign.in.out.ask" diff --git a/addons/hr_holidays/i18n/vi.po b/addons/hr_holidays/i18n/vi.po index 4bb9e39028a..30976eb55d4 100644 --- a/addons/hr_holidays/i18n/vi.po +++ b/addons/hr_holidays/i18n/vi.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-08-02 14:34+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-06-04 23:20+0000\n" +"Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:28+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-06 04:37+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Blue" -msgstr "" +msgstr "Xanh dương" #. module: hr_holidays #: view:hr.holidays:0 @@ -31,7 +31,7 @@ msgstr "" #. module: hr_holidays #: selection:hr.holidays,state:0 msgid "Waiting Second Approval" -msgstr "" +msgstr "Đang chờ Chấp thuận Thứ hai" #. module: hr_holidays #: help:hr.holidays.status,remaining_leaves:0 @@ -41,48 +41,48 @@ msgstr "" #. module: hr_holidays #: view:hr.holidays:0 msgid "Leaves Management" -msgstr "" +msgstr "Quản lý Ngày nghỉ" #. module: hr_holidays #: view:hr.holidays:0 msgid "Group By..." -msgstr "" +msgstr "Nhóm theo..." #. module: hr_holidays #: model:hr.holidays.status,name:hr_holidays.holiday_status_sl msgid "Sick Leave" -msgstr "" +msgstr "Nghỉ Ốm" #. module: hr_holidays #: view:hr.holidays:0 #: field:hr.holidays,department_id:0 msgid "Department" -msgstr "" +msgstr "Phòng ban" #. module: hr_holidays #: selection:hr.holidays,state:0 msgid "Refused" -msgstr "" +msgstr "Đã từ chối" #. module: hr_holidays #: help:hr.holidays,category_id:0 msgid "Category of Employee" -msgstr "" +msgstr "Nhóm Người lao động" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Brown" -msgstr "" +msgstr "Nâu" #. module: hr_holidays #: view:hr.holidays:0 msgid "Remaining Days" -msgstr "" +msgstr "Số ngày còn lại" #. module: hr_holidays #: selection:hr.holidays,holiday_type:0 msgid "By Employee" -msgstr "" +msgstr "Theo Người lao động" #. module: hr_holidays #: help:hr.holidays,employee_id:0 @@ -94,14 +94,14 @@ msgstr "" #. module: hr_holidays #: view:hr.holidays:0 msgid "Set to Draft" -msgstr "" +msgstr "Đặt thành Nháp" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.act_hr_employee_holiday_request #: model:ir.ui.menu,name:hr_holidays.menu_hr_reporting_holidays #: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays msgid "Holidays" -msgstr "" +msgstr "Nghỉ lễ" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 @@ -111,7 +111,7 @@ msgstr "" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Light Green" -msgstr "" +msgstr "Xanh lá nhạt" #. module: hr_holidays #: model:ir.actions.act_window,help:hr_holidays.open_ask_holidays @@ -131,12 +131,12 @@ msgstr "" #: view:hr.holidays:0 #: selection:hr.holidays,state:0 msgid "Approved" -msgstr "" +msgstr "Được chấp thuận" #. module: hr_holidays #: view:hr.holidays:0 msgid "Refuse" -msgstr "" +msgstr "Từ chối" #. module: hr_holidays #: code:addons/hr_holidays/hr_holidays.py:309 @@ -149,7 +149,7 @@ msgstr "" #: view:board.board:0 #: view:hr.holidays:0 msgid "Leaves" -msgstr "" +msgstr "Ngày nghỉ" #. module: hr_holidays #: model:ir.model,name:hr_holidays.model_hr_holidays @@ -159,12 +159,12 @@ msgstr "" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_account_central_journal msgid "Leaves by Department" -msgstr "" +msgstr "Ngày nghỉ theo Phòng ban" #. module: hr_holidays #: selection:hr.holidays,state:0 msgid "Cancelled" -msgstr "" +msgstr "Bị hủy bỏ" #. module: hr_holidays #: help:hr.holidays,type:0 @@ -177,12 +177,12 @@ msgstr "" #. module: hr_holidays #: view:hr.holidays.status:0 msgid "Validation" -msgstr "" +msgstr "Xác nhận" #. module: hr_holidays #: field:hr.holidays.status,color_name:0 msgid "Color in Report" -msgstr "" +msgstr "Màu trong Báo cáo" #. module: hr_holidays #: model:ir.model,name:hr_holidays.model_hr_holidays_summary_employee @@ -200,24 +200,24 @@ msgstr "" #: model:ir.model,name:hr_holidays.model_hr_holidays_status #: model:ir.ui.menu,name:hr_holidays.menu_open_view_holiday_status msgid "Leave Type" -msgstr "" +msgstr "Loại nghỉ" #. module: hr_holidays #: code:addons/hr_holidays/hr_holidays.py:186 #: code:addons/hr_holidays/hr_holidays.py:309 #, python-format msgid "Warning!" -msgstr "" +msgstr "Cảnh báo!" #. module: hr_holidays #: selection:hr.holidays,state:0 msgid "Draft" -msgstr "" +msgstr "Nháp" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Magenta" -msgstr "" +msgstr "Đỏ tía" #. module: hr_holidays #: help:hr.holidays,state:0 @@ -232,29 +232,29 @@ msgstr "" #: code:addons/hr_holidays/wizard/hr_holidays_summary_department.py:44 #, python-format msgid "You have to select at least 1 Department. And try again" -msgstr "" +msgstr "Bạn phải chọn ít nhất 1 Phòng ban. Và thử lại" #. module: hr_holidays #: selection:hr.holidays.summary.dept,holiday_type:0 #: selection:hr.holidays.summary.employee,holiday_type:0 msgid "Confirmed" -msgstr "" +msgstr "Đã xác nhận" #. module: hr_holidays #: field:hr.holidays.summary.dept,date_from:0 #: field:hr.holidays.summary.employee,date_from:0 msgid "From" -msgstr "" +msgstr "Từ" #. module: hr_holidays #: view:hr.holidays:0 msgid "Confirm" -msgstr "" +msgstr "Xác nhận" #. module: hr_holidays #: sql_constraint:hr.holidays:0 msgid "The start date must be before the end date !" -msgstr "" +msgstr "Ngày bắt đầu phải trước ngày kết thúc !" #. module: hr_holidays #: model:ir.module.module,description:hr_holidays.module_meta_information @@ -296,35 +296,35 @@ msgstr "" #. module: hr_holidays #: field:hr.holidays.status,remaining_leaves:0 msgid "Remaining Leaves" -msgstr "" +msgstr "Số ngày nghỉ còn lại" #. module: hr_holidays #: view:hr.holidays:0 #: field:hr.holidays,state:0 msgid "State" -msgstr "" +msgstr "Trạng thái" #. module: hr_holidays #: model:ir.model,name:hr_holidays.model_hr_holidays_remaining_leaves_user msgid "Total holidays by type" -msgstr "" +msgstr "Tổng số ngày nghỉ theo loại" #. module: hr_holidays #: view:hr.holidays:0 #: field:hr.holidays,employee_id:0 #: field:hr.holidays.remaining.leaves.user,name:0 msgid "Employee" -msgstr "" +msgstr "Người lao động" #. module: hr_holidays #: view:hr.holidays:0 msgid "Type" -msgstr "" +msgstr "Loại" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Red" -msgstr "" +msgstr "Đỏ" #. module: hr_holidays #: view:hr.holidays.remaining.leaves.user:0 @@ -351,7 +351,7 @@ msgstr "" #: field:hr.holidays,number_of_days:0 #: field:hr.holidays,number_of_days_temp:0 msgid "Number of Days" -msgstr "" +msgstr "Số ngày" #. module: hr_holidays #: view:hr.holidays.status:0 @@ -373,12 +373,12 @@ msgstr "" #. module: hr_holidays #: selection:hr.holidays,state:0 msgid "Waiting Approval" -msgstr "" +msgstr "Đang chờ Chấp thuận" #. module: hr_holidays #: field:hr.holidays.summary.employee,emp:0 msgid "Employee(s)" -msgstr "" +msgstr "Người lao động" #. module: hr_holidays #: help:hr.holidays.status,categ_id:0 @@ -395,7 +395,7 @@ msgstr "" #. module: hr_holidays #: field:hr.holidays,parent_id:0 msgid "Parent" -msgstr "" +msgstr "Cha" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 @@ -406,7 +406,7 @@ msgstr "" #: model:ir.actions.act_window,name:hr_holidays.open_ask_holidays #: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays_new msgid "Leave Requests" -msgstr "" +msgstr "Các yêu cầu Nghỉ" #. module: hr_holidays #: field:hr.holidays.status,limit:0 @@ -417,12 +417,12 @@ msgstr "" #: view:hr.holidays.summary.employee:0 #: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_summary_employee msgid "Employee's Holidays" -msgstr "" +msgstr "Các ngày lễ của Người lao động" #. module: hr_holidays #: field:hr.holidays,category_id:0 msgid "Category" -msgstr "" +msgstr "Phân loại" #. module: hr_holidays #: help:hr.holidays.status,max_leaves:0 @@ -450,18 +450,18 @@ msgstr "" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Black" -msgstr "" +msgstr "Đen" #. module: hr_holidays #: field:resource.calendar.leaves,holiday_id:0 msgid "Holiday" -msgstr "" +msgstr "Ngày lễ" #. module: hr_holidays #: field:hr.holidays,case_id:0 #: field:hr.holidays.status,categ_id:0 msgid "Meeting" -msgstr "" +msgstr "Cuộc họp" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 @@ -483,12 +483,12 @@ msgstr "" #: field:hr.holidays,user_id:0 #: field:hr.holidays.remaining.leaves.user,user_id:0 msgid "User" -msgstr "" +msgstr "Người sử dụng" #. module: hr_holidays #: field:hr.holidays.status,active:0 msgid "Active" -msgstr "" +msgstr "Hoạt động" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_view_holiday_status_manager_board @@ -498,12 +498,12 @@ msgstr "" #. module: hr_holidays #: view:hr.holidays:0 msgid "Extended Filters..." -msgstr "" +msgstr "Các bộ lọc Mở rộng..." #. module: hr_holidays #: sql_constraint:hr.holidays:0 msgid "The number of days must be greater than 0 !" -msgstr "" +msgstr "Số ngày phải lớn hơn 0 !" #. module: hr_holidays #: field:hr.holidays,manager_id:0 @@ -525,7 +525,7 @@ msgstr "" #: code:addons/hr_holidays/wizard/hr_holidays_summary_department.py:44 #, python-format msgid "Error" -msgstr "" +msgstr "Lỗi" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 @@ -535,7 +535,7 @@ msgstr "" #. module: hr_holidays #: field:hr.holidays,type:0 msgid "Request Type" -msgstr "" +msgstr "Loại Yêu cầu" #. module: hr_holidays #: help:hr.holidays.status,active:0 @@ -547,12 +547,12 @@ msgstr "" #. module: hr_holidays #: view:hr.holidays.status:0 msgid "Misc" -msgstr "" +msgstr "Các thứ khác" #. module: hr_holidays #: view:hr.holidays:0 msgid "General" -msgstr "" +msgstr "Tổng quát" #. module: hr_holidays #: view:hr.holidays:0 @@ -569,7 +569,7 @@ msgstr "" #: view:hr.holidays.summary.dept:0 #: view:hr.holidays.summary.employee:0 msgid "Cancel" -msgstr "" +msgstr "Hủy bỏ" #. module: hr_holidays #: help:hr.holidays.status,color_name:0 @@ -599,18 +599,18 @@ msgstr "" #. module: hr_holidays #: field:hr.holidays.status,double_validation:0 msgid "Apply Double Validation" -msgstr "" +msgstr "Thực hiện Xét duyệt Hai lần" #. module: hr_holidays #: view:hr.holidays.summary.dept:0 #: view:hr.holidays.summary.employee:0 msgid "Print" -msgstr "" +msgstr "In" #. module: hr_holidays #: view:hr.holidays.status:0 msgid "Details" -msgstr "" +msgstr "Các chi tiết" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_leaves_by_month @@ -626,12 +626,12 @@ msgstr "" #: view:hr.holidays:0 #: selection:hr.holidays,type:0 msgid "Leave Request" -msgstr "" +msgstr "Yêu cầu Nghỉ" #. module: hr_holidays #: field:hr.holidays,name:0 msgid "Description" -msgstr "" +msgstr "Mô tả" #. module: hr_holidays #: help:hr.holidays,holiday_type:0 @@ -649,37 +649,37 @@ msgstr "" #. module: hr_holidays #: view:hr.holidays:0 msgid "Search Leave" -msgstr "" +msgstr "Tìm kiếm Ngày nghỉ" #. module: hr_holidays #: field:hr.holidays.summary.employee,holiday_type:0 msgid "Select Holiday Type" -msgstr "" +msgstr "Lựa chọn Loại Nghỉ lễ" #. module: hr_holidays #: field:hr.holidays.remaining.leaves.user,no_of_leaves:0 msgid "Remaining leaves" -msgstr "" +msgstr "Số ngày nghỉ còn lại" #. module: hr_holidays #: field:hr.holidays.summary.dept,depts:0 msgid "Department(s)" -msgstr "" +msgstr "Phòng ban" #. module: hr_holidays #: view:hr.holidays:0 msgid "This Month" -msgstr "" +msgstr "Tháng này" #. module: hr_holidays #: field:hr.holidays,manager_id2:0 msgid "Second Approval" -msgstr "" +msgstr "Chấp thuận Lần 2" #. module: hr_holidays #: field:hr.holidays,date_to:0 msgid "End Date" -msgstr "" +msgstr "Ngày kết thúc" #. module: hr_holidays #: help:hr.holidays.status,limit:0 @@ -698,7 +698,7 @@ msgstr "" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Violet" -msgstr "" +msgstr "Tím sẫm" #. module: hr_holidays #: field:hr.holidays.status,max_leaves:0 @@ -715,7 +715,7 @@ msgstr "" #. module: hr_holidays #: model:ir.module.module,shortdesc:hr_holidays.module_meta_information msgid "Human Resources: Holidays management" -msgstr "" +msgstr "Nguồn Nhân lực: Quản lý ngày nghỉ" #. module: hr_holidays #: model:ir.model,name:hr_holidays.model_hr_holidays_summary_dept @@ -730,12 +730,12 @@ msgstr "" #. module: hr_holidays #: view:hr.holidays:0 msgid "Approve" -msgstr "" +msgstr "Chấp thuận" #. module: hr_holidays #: field:hr.holidays,date_from:0 msgid "Start Date" -msgstr "" +msgstr "Ngày bắt đầu" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.open_allocation_holidays @@ -756,7 +756,7 @@ msgstr "" #. module: hr_holidays #: view:hr.holidays:0 msgid "Manager" -msgstr "" +msgstr "Người quản lý" #. module: hr_holidays #: view:hr.holidays:0 diff --git a/addons/hr_payroll/i18n/es_EC.po b/addons/hr_payroll/i18n/es_EC.po index 6a7f2d496c0..8a03fcc2b19 100644 --- a/addons/hr_payroll/i18n/es_EC.po +++ b/addons/hr_payroll/i18n/es_EC.po @@ -8,128 +8,142 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2011-01-13 21:03+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-06-03 17:05+0000\n" +"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) " +"\n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:43+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-04 04:53+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: hr_payroll -#: rml:employees.salary:0 +#: report:employees.salary:0 msgid "E-mail Address" -msgstr "" +msgstr "Dirección de correo electrónico" #. module: hr_payroll #: view:hr.allounce.deduction.categoty:0 msgid "Based" -msgstr "" +msgstr "Basado" #. module: hr_payroll +#: field:hr.contract,net:0 +#: field:hr.employee,net:0 #: field:hr.payroll.register,net:0 #: field:hr.payslip,net:0 +#: report:salary.structure:0 msgid "Net Salary" -msgstr "" +msgstr "Salario neto" #. module: hr_payroll #: view:hr.payslip:0 msgid "Recompute Sheet" -msgstr "" +msgstr "Recalcular plantilla" #. module: hr_payroll -#: rml:employees.salary:0 +#: report:employees.salary:0 msgid "Employees Salary Details" -msgstr "" +msgstr "Detalles de Salarios de Empleados" #. module: hr_payroll -#: rml:employees.salary:0 +#: report:employees.salary:0 msgid "Allowances with Basic:" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 -#: rml:salary.structure:0 +#: report:employees.salary:0 +#: report:salary.structure:0 msgid "Department" -msgstr "" +msgstr "Departamento" #. module: hr_payroll -#: rml:employees.salary:0 +#: report:employees.salary:0 msgid "Deductions:" msgstr "" #. module: hr_payroll -#: field:hr.allounce.deduction.categoty,gratuity:0 +#: field:company.contribution,gratuity:0 msgid "Use for Gratuity ?" -msgstr "" +msgstr "¿Uso de propina?" #. module: hr_payroll +#: field:hr.contract,working_days_per_week:0 #: field:hr.payslip,working_days:0 +#: report:payslip.pdf:0 msgid "Working Days" -msgstr "" +msgstr "Días de trabajo" #. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 #: selection:hr.payslip.line,type:0 msgid "Loan" -msgstr "" +msgstr "Préstamo" #. module: hr_payroll -#: rml:hr.payroll.register.sheet:0 +#: report:hr.payroll.register.sheet:0 msgid "Salary Payment Register" -msgstr "" +msgstr "Registro de pago de nómina" #. module: hr_payroll #: field:hr.employee,slip_ids:0 #: view:hr.payroll.register:0 #: field:hr.payroll.register,line_ids:0 +#: model:ir.actions.act_window,name:hr_payroll.act_hr_employee_payslip_list msgid "Payslips" -msgstr "" +msgstr "Nóminas" #. module: hr_payroll #: model:ir.actions.report.xml,name:hr_payroll.year_salary_report msgid "Year Salary Report" -msgstr "" +msgstr "Informe anual de salarios" #. module: hr_payroll #: selection:hr.payroll.register,state:0 #: selection:hr.payslip,state:0 msgid "Paid Salary" -msgstr "" +msgstr "Nómina pagada" #. module: hr_payroll #: report:payslip.pdf:0 msgid "(" -msgstr "" +msgstr "(" #. module: hr_payroll +#: field:company.contribution,company_id:0 +#: field:hr.allounce.deduction.categoty,company_id:0 +#: field:hr.contibution.register,company_id:0 +#: field:hr.holidays.status,company_id:0 +#: field:hr.payroll.advice,company_id:0 #: field:hr.payroll.register,company_id:0 +#: field:hr.payroll.structure,company_id:0 #: field:hr.payslip,company_id:0 -#: wizard_field:payroll.analysis,init,company_id:0 msgid "Company" -msgstr "" +msgstr "Compañía" #. module: hr_payroll -#: rml:payroll.advice:0 +#: report:payroll.advice:0 msgid "The Manager" -msgstr "" +msgstr "Responsable" #. module: hr_payroll #: view:hr.payroll.advice:0 msgid "Letter Details" -msgstr "" +msgstr "Detalles de la carta" #. module: hr_payroll -#: rml:hr.payroll.register.sheet:0 +#: report:hr.payroll.register.sheet:0 +#: report:payslip.pdf:0 msgid "," -msgstr "" +msgstr "," #. module: hr_payroll #: view:hr.payroll.advice:0 #: view:hr.payroll.register:0 #: view:hr.payslip:0 msgid "Set to Draft" -msgstr "" +msgstr "Cambiar a borrador" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:180 @@ -141,42 +155,41 @@ msgstr "" #: code:addons/hr_payroll/hr_payroll.py:1410 #, python-format msgid "Variable Error: %s " -msgstr "" +msgstr "Error variable: %s " #. module: hr_payroll #: view:hr.passport:0 msgid "Expire" -msgstr "" +msgstr "Vencimiento" #. module: hr_payroll #: selection:hr.holidays.status,type:0 msgid "Half-Pay Holiday" -msgstr "" +msgstr "Vacaciones con media paga" #. module: hr_payroll -#: selection:hr.allounce.deduction.categoty,type:0 -#: rml:hr.payroll.register.sheet:0 +#: report:hr.payroll.register.sheet:0 #: field:hr.payslip,other_pay:0 msgid "Others" -msgstr "" +msgstr "Otros" #. module: hr_payroll #: field:hr.payslip.line,slip_id:0 #: model:ir.model,name:hr_payroll.model_hr_payslip -#: rml:payslip.pdf:0 +#: report:payslip.pdf:0 msgid "Pay Slip" -msgstr "" +msgstr "Nómina" #. module: hr_payroll -#: rml:salary.structure:0 +#: report:salary.structure:0 msgid "Contract Detail:" -msgstr "" +msgstr "Detalles del contrato:" #. module: hr_payroll #: field:hr.payslip,igross:0 #: field:hr.payslip,inet:0 msgid "Calculaton Field" -msgstr "" +msgstr "Campo de cálculo" #. module: hr_payroll #: help:hr.payroll.advice,bank_id:0 @@ -188,98 +201,108 @@ msgstr "" #: view:hr.payroll.advice:0 #: field:hr.payroll.advice.line,advice_id:0 msgid "Bank Advice" -msgstr "" +msgstr "Aviso bancario" #. module: hr_payroll #: selection:hr.payroll.advice,state:0 #: selection:hr.payroll.register,state:0 #: selection:hr.payslip,state:0 msgid "Reject" -msgstr "" +msgstr "Rechazar" #. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 #: selection:hr.payslip.line,type:0 msgid "Leaves" -msgstr "" +msgstr "Ausencias" #. module: hr_payroll +#: field:hr.contibution.register.line,register_id:0 +#: view:hr.payslip:0 #: field:hr.payslip,register_id:0 +#: report:payslip.pdf:0 msgid "Register" -msgstr "" +msgstr "Registro" #. module: hr_payroll #: constraint:hr.employee:0 msgid "" "Error ! You cannot select a department for which the employee is the manager." msgstr "" +"¡Error! No puede seleccionar un departamento que tenga el empleado como " +"responsable." #. module: hr_payroll -#: rml:payslip.pdf:0 +#: report:payslip.pdf:0 msgid "Total Deductions" -msgstr "" +msgstr "Total de Deducciones" #. module: hr_payroll -#: field:hr.allounce.deduction.categoty.line,value:0 +#: field:company.contribution.line,value:0 +#: field:hr.payslip.line.line,value:0 msgid "Value" -msgstr "" +msgstr "Valor" #. module: hr_payroll -#: rml:payroll.advice:0 +#: report:payroll.advice:0 msgid "Name of the Employee" -msgstr "" +msgstr "Nombre del empleado" #. module: hr_payroll #: view:hr.contibution.register:0 msgid "Register Lines" -msgstr "" +msgstr "Líneas de registro" #. module: hr_payroll #: view:hr.payslip:0 msgid "Salary Computation" -msgstr "" +msgstr "Cálculo de la nómina" #. module: hr_payroll #: field:hr.payroll.advice.line,amount:0 -#: rml:payroll.advice:0 +#: report:payroll.advice:0 +#: report:salary.structure:0 msgid "Amount" -msgstr "" +msgstr "Monto" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:1225 #, python-format msgid "Please check configuration of %s, payroll head is missing" msgstr "" +"Por favor, compruebe la configuración de %s, falta la cabecera de la nómina" #. module: hr_payroll #: selection:company.contribution,amount_type:0 msgid "Percentage" -msgstr "" +msgstr "Porcentaje" #. module: hr_payroll #: view:company.contribution:0 #: view:hr.allounce.deduction.categoty:0 msgid "Other Information" -msgstr "" +msgstr "Otra Información" #. module: hr_payroll #: field:hr.passport,country_id:0 msgid "Country of Issue" -msgstr "" +msgstr "País de emisión" #. module: hr_payroll #: field:hr.contibution.register.line,emp_deduction:0 msgid "Employee Deduction" -msgstr "" +msgstr "Deducción del Empleado" #. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 #: selection:hr.payslip.line,type:0 msgid "Other Deduction" -msgstr "" +msgstr "Otras deducciones" #. module: hr_payroll #: selection:hr.holidays.status,type:0 msgid "Paid Holiday" -msgstr "" +msgstr "Vacaciones pagada" #. module: hr_payroll #: view:company.contribution:0 @@ -287,72 +310,75 @@ msgstr "" #: view:hr.passport:0 #: view:hr.payslip:0 msgid "Group By..." -msgstr "" +msgstr "Agroupar por ..." #. module: hr_payroll #: field:hr.passport,date_expire:0 msgid "Passport Expire Date" -msgstr "" +msgstr "Fecha de Expiración de Pasaporte" #. module: hr_payroll #: selection:hr.holidays.status,type:0 msgid "Un-Paid Holiday" -msgstr "" +msgstr "Vacaciones no pagadas" #. module: hr_payroll #: view:hr.passport:0 msgid "Valid From" -msgstr "" +msgstr "Válido desde" #. module: hr_payroll #: help:hr.payslip,igross:0 #: help:hr.payslip,inet:0 msgid "" "Calculation field used for internal calculation, do not place this on form" -msgstr "" +msgstr "Campo usado en cálculos internos, no lo coloque en un formulario." #. module: hr_payroll -#: rml:payslip.pdf:0 +#: report:payslip.pdf:0 msgid "Amount (in words) :" -msgstr "" +msgstr "Monto (en letras) :" #. module: hr_payroll #: field:hr.holidays.status,type:0 msgid "Payment" -msgstr "" +msgstr "Pago" #. module: hr_payroll +#: view:hr.payroll.structure:0 +#: view:hr.payslip:0 #: field:hr.payslip,line_ids:0 #: view:hr.payslip.line:0 #: model:ir.model,name:hr_payroll.model_hr_payslip_line msgid "Payslip Line" -msgstr "" +msgstr "Línea de nómina" #. module: hr_payroll #: report:payslip.pdf:0 msgid "Identification No" -msgstr "" +msgstr "Nº identificación" #. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 #: field:hr.allounce.deduction.categoty,base:0 msgid "Based on" -msgstr "" +msgstr "Basado en" #. module: hr_payroll #: selection:hr.payroll.register,state:0 #: selection:hr.payslip,state:0 msgid "Wating for Verification" -msgstr "" +msgstr "Esperando verificación" #. module: hr_payroll #: model:ir.module.module,shortdesc:hr_payroll.module_meta_information msgid "Human Resource Payroll" -msgstr "" +msgstr "Nóminas de recursos humanos" #. module: hr_payroll #: report:payroll.advice:0 msgid "Total:" -msgstr "" +msgstr "Total:" #. module: hr_payroll #: view:hr.payslip:0 @@ -400,17 +426,23 @@ msgid "Visa No" msgstr "" #. module: hr_payroll -#: field:hr.allounce.deduction.categoty.line,from:0 +#: field:company.contribution.line,from_val:0 +#: report:employees.salary:0 +#: field:hr.payslip.line.line,from_val:0 +#: report:year.salary:0 msgid "From" msgstr "" #. module: hr_payroll #: field:hr.payroll.advice.line,bysal:0 +#: report:payroll.advice:0 msgid "By Salary" msgstr "" #. module: hr_payroll -#: rml:salary.structure:0 +#: field:hr.payroll.employees.detail,date_to:0 +#: field:hr.payroll.year.salary,date_to:0 +#: report:salary.structure:0 msgid "End Date" msgstr "" @@ -425,8 +457,8 @@ msgid "Leave Deductions" msgstr "" #. module: hr_payroll -#: rml:hr.payroll.register.sheet:0 -#: rml:payroll.advice:0 +#: report:hr.payroll.register.sheet:0 +#: report:payroll.advice:0 msgid "Authorised Signature" msgstr "" @@ -441,12 +473,11 @@ msgid "Contribution Register Line" msgstr "" #. module: hr_payroll -#: rml:salary.structure:0 +#: report:salary.structure:0 msgid "Notes:" msgstr "" #. module: hr_payroll -#: field:hr.allounce.deduction.categoty,based_on:0 #: field:hr.payroll.advice,state:0 #: field:hr.payroll.register,state:0 #: field:hr.payslip,state:0 @@ -479,10 +510,12 @@ msgid "Company Contributions" msgstr "" #. module: hr_payroll +#: field:hr.contibution.register.line,employee_id:0 #: field:hr.passport,employee_id:0 #: field:hr.payroll.advice.line,employee_id:0 #: field:hr.payslip,employee_id:0 #: field:hr.payslip.line,employee_id:0 +#: model:ir.model,name:hr_payroll.model_hr_employee msgid "Employee" msgstr "" @@ -497,10 +530,11 @@ msgid "Bank Advice Lines" msgstr "" #. module: hr_payroll +#: view:company.contribution:0 +#: view:hr.allounce.deduction.categoty:0 #: field:hr.allounce.deduction.categoty,type:0 #: field:hr.payslip.line,type:0 -#: wizard_field:payroll.analysis,init,type:0 -#: rml:salary.structure:0 +#: report:salary.structure:0 msgid "Type" msgstr "" @@ -510,7 +544,7 @@ msgid "Email" msgstr "" #. module: hr_payroll -#: rml:hr.payroll.register.sheet:0 +#: report:hr.payroll.register.sheet:0 msgid "#" msgstr "" @@ -544,13 +578,16 @@ msgid "Net Basic" msgstr "" #. module: hr_payroll +#: field:hr.contract,gross:0 +#: field:hr.employee,gross:0 #: field:hr.payroll.register,grows:0 #: field:hr.payslip,grows:0 +#: report:salary.structure:0 msgid "Gross Salary" msgstr "" #. module: hr_payroll -#: rml:payslip.pdf:0 +#: report:payslip.pdf:0 msgid "Total Earnings" msgstr "" @@ -561,17 +598,20 @@ msgid "Employee Salary Statement" msgstr "" #. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 #: selection:hr.payslip.line,type:0 msgid "Other Payment" msgstr "" #. module: hr_payroll -#: rml:payslip.pdf:0 +#: field:hr.employee,advantages_net:0 +#: report:payslip.pdf:0 +#: report:salary.structure:0 msgid "Deductions" msgstr "" #. module: hr_payroll -#: rml:payroll.advice:0 +#: report:payroll.advice:0 msgid "C/D" msgstr "" @@ -596,13 +636,19 @@ msgid "Total By Employee" msgstr "" #. module: hr_payroll -#: selection:hr.allounce.deduction.categoty.line,amount_type:0 +#: view:company.contribution:0 +#: selection:company.contribution,amount_type:0 +#: selection:company.contribution.line,amount_type:0 #: selection:hr.payslip.line,amount_type:0 +#: selection:hr.payslip.line.line,amount_type:0 msgid "Fixed Amount" msgstr "" #. module: hr_payroll -#: field:hr.allounce.deduction.categoty.line,to:0 +#: field:company.contribution.line,to_val:0 +#: report:employees.salary:0 +#: field:hr.payslip.line.line,to_val:0 +#: report:year.salary:0 msgid "To" msgstr "" @@ -640,15 +686,15 @@ msgid "Contribution Lines" msgstr "" #. module: hr_payroll -#: rml:hr.payroll.register.sheet:0 -#: rml:payslip.pdf:0 +#: report:hr.payroll.register.sheet:0 msgid "For the month of" msgstr "" #. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 #: selection:hr.allounce.deduction.categoty,type:0 #: field:hr.payroll.register,deduction:0 -#: rml:hr.payroll.register.sheet:0 +#: report:hr.payroll.register.sheet:0 #: field:hr.payslip,deduction:0 #: selection:hr.payslip.line,type:0 msgid "Deduction" @@ -671,40 +717,38 @@ msgid "Error! contract start-date must be lower then contract end-date." msgstr "" #. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 #: selection:hr.payslip.line,type:0 msgid "Loan Installment" msgstr "" #. module: hr_payroll #: view:hr.payroll.register:0 -#: view:hr.payslip:0 msgid "Complete HR Checking" msgstr "" #. module: hr_payroll -#: rml:payroll.advice:0 +#: report:payroll.advice:0 msgid "Yours Sincerely" msgstr "" #. module: hr_payroll -#: rml:payroll.advice:0 +#: report:payroll.advice:0 msgid "SI. No." msgstr "" #. module: hr_payroll -#: rml:payslip.pdf:0 +#: report:payslip.pdf:0 msgid "Net Amount" msgstr "" #. module: hr_payroll -#: rml:salary.structure:0 +#: report:salary.structure:0 msgid "Salary Structure:" msgstr "" #. module: hr_payroll #: model:ir.actions.report.xml,name:hr_payroll.year_employees_detail -#: model:ir.actions.wizard,name:hr_payroll.wizard_print_employees_detail -#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_employees_detail msgid "Employees Salary Detail" msgstr "" @@ -722,7 +766,7 @@ msgid "Confirm Sheet" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 +#: report:employees.salary:0 msgid "Others:" msgstr "" @@ -734,6 +778,7 @@ msgstr "" #. module: hr_payroll #: field:hr.payslip,worked_days:0 +#: report:payslip.pdf:0 msgid "Worked Day" msgstr "" @@ -753,7 +798,7 @@ msgid "Country & Address" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 +#: report:employees.salary:0 msgid "Employee Code" msgstr "" @@ -763,16 +808,17 @@ msgid "Basic Salary – Leaves" msgstr "" #. module: hr_payroll -#: field:hr.allounce.deduction.categoty.line,amount_type:0 +#: field:company.contribution,amount_type:0 +#: field:company.contribution.line,amount_type:0 #: field:hr.payslip.line,amount_type:0 -#: rml:salary.structure:0 +#: field:hr.payslip.line.line,amount_type:0 +#: report:salary.structure:0 msgid "Amount Type" msgstr "" #. module: hr_payroll -#: field:hr.allounce.deduction.categoty.line,category_id:0 +#: view:company.contribution:0 #: field:hr.payslip.line,category_id:0 -#: rml:salary.structure:0 msgid "Category" msgstr "" @@ -800,7 +846,7 @@ msgid "Draft" msgstr "" #. module: hr_payroll -#: rml:payslip.pdf:0 +#: report:payslip.pdf:0 msgid "Earnings" msgstr "" @@ -812,7 +858,6 @@ msgstr "" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.action_hr_passport_tree -#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_passport_tree msgid "All Passports" msgstr "" @@ -823,9 +868,8 @@ msgid "Salary Register" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 -#: rml:hr.payroll.register.sheet:0 -#: rml:payslip.pdf:0 +#: report:employees.salary:0 +#: report:hr.payroll.register.sheet:0 msgid "Employee Name" msgstr "" @@ -835,7 +879,6 @@ msgid "Passport Detail" msgstr "" #. module: hr_payroll -#: selection:hr.allounce.deduction.categoty.line,amount_type:0 #: selection:hr.payslip.line,amount_type:0 msgid "Percentage (%)" msgstr "" @@ -850,22 +893,18 @@ msgid "Payroll Register" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 -#: rml:hr.payroll.register.sheet:0 -#: rml:payroll.advice:0 -#: rml:salary.structure:0 -#: rml:year.salary:0 +#: report:hr.payroll.register.sheet:0 +#: report:payroll.advice:0 msgid "For" msgstr "" #. module: hr_payroll -#: view:hr.employee:0 #: field:hr.passport,contracts_ids:0 msgid "Contracts" msgstr "" #. module: hr_payroll -#: view:hr.employee.grade:0 +#: view:hr.payroll.structure:0 msgid "Employee Function" msgstr "" @@ -890,7 +929,7 @@ msgid "Validation" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 +#: report:employees.salary:0 msgid "Title" msgstr "" @@ -906,8 +945,6 @@ msgstr "" #. module: hr_payroll #: view:hr.payroll.advice:0 -#: view:hr.payslip:0 -#: field:hr.payslip,move_payment_ids:0 msgid "Payment Lines" msgstr "" @@ -917,6 +954,7 @@ msgid "Compute Sheet" msgstr "" #. module: hr_payroll +#: field:company.contribution,active:0 #: field:hr.payroll.register,active:0 msgid "Active" msgstr "" @@ -927,7 +965,7 @@ msgid "Applied this head for calculation if condition is true" msgstr "" #. module: hr_payroll -#: rml:year.salary:0 +#: report:year.salary:0 msgid "Yearly Salary Details" msgstr "" @@ -958,22 +996,23 @@ msgid "Compute" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 +#: report:employees.salary:0 #: field:hr.payslip,deg_id:0 -#: rml:payslip.pdf:0 -#: rml:salary.structure:0 +#: report:payslip.pdf:0 +#: report:salary.structure:0 msgid "Designation" msgstr "" #. module: hr_payroll -#: rml:hr.payroll.register.sheet:0 +#: report:hr.payroll.register.sheet:0 msgid "HR Manager" msgstr "" #. module: hr_payroll -#: selection:hr.allounce.deduction.categoty,based_on:0 +#: field:hr.contract,basic:0 +#: field:hr.employee,basic:0 #: field:hr.payslip,basic_before_leaves:0 -#: rml:payslip.pdf:0 +#: report:payslip.pdf:0 msgid "Basic Salary" msgstr "" @@ -999,12 +1038,13 @@ msgid "Companies" msgstr "" #. module: hr_payroll -#: rml:payslip.pdf:0 +#: report:payslip.pdf:0 msgid "Authorized Signature" msgstr "" #. module: hr_payroll -#: view:hr.employee:0 +#: field:hr.payslip,contract_id:0 +#: model:ir.model,name:hr_payroll.model_hr_contract msgid "Contract" msgstr "" @@ -1014,14 +1054,14 @@ msgid "Draft Sheet" msgstr "" #. module: hr_payroll -#: selection:wizard.year.salary,init,salary_on:0 +#: selection:hr.payroll.year.salary,salary_on:0 msgid "Next Month Date" msgstr "" #. module: hr_payroll +#: field:hr.contibution.register.line,date:0 #: field:hr.payroll.advice,date:0 #: field:hr.payroll.register,date:0 -#: rml:hr.payroll.register.sheet:0 #: field:hr.payslip,date:0 msgid "Date" msgstr "" @@ -1037,8 +1077,8 @@ msgid "Search Passport" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 -#: rml:salary.structure:0 +#: report:employees.salary:0 +#: report:salary.structure:0 msgid "Phone No." msgstr "" @@ -1070,16 +1110,19 @@ msgid "Other No." msgstr "" #. module: hr_payroll +#: field:company.contribution,code:0 +#: field:hr.contibution.register.line,code:0 #: field:hr.holidays.status,code:0 +#: field:hr.payroll.structure,code:0 #: field:hr.payslip.line,code:0 -#: rml:salary.structure:0 +#: report:payslip.pdf:0 +#: report:salary.structure:0 msgid "Code" msgstr "" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.action_view_hr_bank_advice_tree #: model:ir.ui.menu,name:hr_payroll.hr_menu_payment_advice -#: rml:payroll.advice:0 msgid "Payment Advice" msgstr "" @@ -1102,24 +1145,28 @@ msgid "Computation Overview" msgstr "" #. module: hr_payroll -#: wizard_field:wizard.year.salary,init,salary_on:0 +#: field:hr.payroll.year.salary,salary_on:0 msgid "Salary On" msgstr "" #. module: hr_payroll #: field:hr.payroll.advice,number:0 #: field:hr.payroll.register,number:0 -#: rml:hr.payroll.register.sheet:0 #: field:hr.payslip,number:0 msgid "Number" msgstr "" #. module: hr_payroll -#: view:hr.employee:0 +#: field:hr.contract,struct_id:0 #: field:hr.employee,line_ids:0 -#: view:hr.employee.grade:0 -#: field:hr.employee.grade,line_ids:0 -#: rml:salary.structure:0 +#: view:hr.payroll.structure:0 +#: field:hr.payroll.structure,line_ids:0 +#: view:hr.payslip:0 +#: view:hr.payslip.line:0 +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_employee_grade_form +#: model:ir.actions.report.xml,name:hr_payroll.salary_structure_register +#: model:ir.model,name:hr_payroll.model_hr_payroll_structure +#: model:ir.ui.menu,name:hr_payroll.menu_hr_employee_function msgid "Salary Structure" msgstr "" @@ -1131,9 +1178,6 @@ msgstr "" #. module: hr_payroll #: view:hr.payroll.register:0 #: view:hr.payslip:0 -#: wizard_button:payroll.analysis,init,end:0 -#: wizard_button:wizard.employees.detail,init,end:0 -#: wizard_button:wizard.year.salary,init,end:0 msgid "Cancel" msgstr "" @@ -1145,34 +1189,33 @@ msgstr "" #. module: hr_payroll #: field:hr.payslip.line,amount:0 -#: rml:salary.structure:0 msgid "Amount / Percentage" msgstr "" #. module: hr_payroll -#: rml:hr.payroll.register.sheet:0 +#: field:hr.employee,advantages_gross:0 +#: report:hr.payroll.register.sheet:0 +#: report:salary.structure:0 msgid "Allowances" msgstr "" #. module: hr_payroll -#: selection:wizard.year.salary,init,salary_on:0 +#: selection:hr.payroll.year.salary,salary_on:0 msgid "Current Month Date" msgstr "" #. module: hr_payroll -#: view:hr.employee:0 -#: rml:salary.structure:0 +#: report:salary.structure:0 msgid "Salary" msgstr "" #. module: hr_payroll +#: field:hr.contract,passport_id:0 #: field:hr.passport,name:0 msgid "Passport No" msgstr "" #. module: hr_payroll -#: field:hr.contract,passport_id:0 -#: field:hr.employee,passport_id:0 #: view:hr.passport:0 msgid "Passport" msgstr "" @@ -1183,12 +1226,11 @@ msgid "Total Salary" msgstr "" #. module: hr_payroll -#: rml:payroll.advice:0 +#: report:payroll.advice:0 msgid "for period" msgstr "" #. module: hr_payroll -#: field:hr.expense.expense,category_id:0 #: field:hr.holidays.status,head_id:0 msgid "Payroll Head" msgstr "" @@ -1202,7 +1244,7 @@ msgid "Contribution Register" msgstr "" #. module: hr_payroll -#: rml:salary.structure:0 +#: report:salary.structure:0 msgid "E-mail" msgstr "" @@ -1220,8 +1262,11 @@ msgid "Print Report" msgstr "" #. module: hr_payroll -#: view:hr.allounce.deduction.categoty:0 -#: field:hr.allounce.deduction.categoty,line_ids:0 +#: field:company.contribution,line_ids:0 +#: view:hr.payroll.structure:0 +#: view:hr.payslip:0 +#: view:hr.payslip.line:0 +#: field:hr.payslip.line,line_ids:0 msgid "Calculations" msgstr "" @@ -1259,7 +1304,11 @@ msgid "Basic Salary without Leave:" msgstr "" #. module: hr_payroll -#: field:hr.employee.grade,function_id:0 +#: view:company.contribution:0 +#: view:hr.allounce.deduction.categoty:0 +#: view:hr.payroll.structure:0 +#: view:hr.payslip:0 +#: view:hr.payslip.line:0 #: field:hr.payslip.line,function_id:0 msgid "Function" msgstr "" @@ -1270,7 +1319,7 @@ msgid "States" msgstr "" #. module: hr_payroll -#: rml:payroll.advice:0 +#: report:payroll.advice:0 msgid "Dear Sir/Madam," msgstr "" @@ -1285,12 +1334,29 @@ msgid "Gross Sal." msgstr "" #. module: hr_payroll +#: view:company.contribution:0 +#: field:company.contribution,note:0 +#: view:hr.allounce.deduction.categoty:0 +#: field:hr.allounce.deduction.categoty,note:0 +#: view:hr.contibution.register:0 +#: field:hr.contibution.register,note:0 +#: view:hr.passport:0 +#: field:hr.passport,note:0 #: field:hr.payroll.advice,note:0 +#: field:hr.payroll.register,note:0 +#: view:hr.payroll.structure:0 +#: field:hr.payroll.structure,note:0 +#: view:hr.payslip:0 +#: field:hr.payslip,note:0 +#: view:hr.payslip.line:0 +#: field:hr.payslip.line,note:0 msgid "Description" msgstr "" #. module: hr_payroll -#: rml:salary.structure:0 +#: field:hr.payroll.employees.detail,date_from:0 +#: field:hr.payroll.year.salary,date_from:0 +#: report:salary.structure:0 msgid "Start Date" msgstr "" @@ -1312,6 +1378,7 @@ msgstr "" #. module: hr_payroll #: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting #: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll +#: model:ir.ui.menu,name:hr_payroll.payroll_configure msgid "Payroll" msgstr "" @@ -1341,9 +1408,10 @@ msgid "hr.payroll.year.salary" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 -#: rml:payslip.pdf:0 -#: rml:salary.structure:0 +#: report:employees.salary:0 +#: field:hr.passport,address_id:0 +#: report:payslip.pdf:0 +#: report:salary.structure:0 msgid "Address" msgstr "" @@ -1358,8 +1426,10 @@ msgid "Number of Leaves" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 -#: rml:salary.structure:0 +#: report:employees.salary:0 +#: field:hr.payroll.advice,bank_id:0 +#: field:hr.payroll.register,bank_id:0 +#: report:salary.structure:0 msgid "Bank" msgstr "" @@ -1369,28 +1439,35 @@ msgid "Cancel Sheet" msgstr "" #. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 #: selection:hr.payslip.line,type:0 msgid "Advance" msgstr "" #. module: hr_payroll -#: rml:salary.structure:0 +#: report:salary.structure:0 msgid "Special Allowances and Deductions For Employee:" msgstr "" #. module: hr_payroll -#: field:hr.allounce.deduction.categoty.line,name:0 +#: field:company.contribution,name:0 +#: field:company.contribution.line,name:0 +#: field:hr.contibution.register,name:0 +#: field:hr.contibution.register.line,name:0 #: field:hr.payroll.advice,name:0 #: field:hr.payroll.register,name:0 +#: field:hr.payroll.structure,name:0 #: field:hr.payslip,name:0 #: field:hr.payslip.line,name:0 -#: rml:salary.structure:0 -#: rml:year.salary:0 +#: field:hr.payslip.line.line,name:0 +#: report:payslip.pdf:0 +#: report:salary.structure:0 +#: report:year.salary:0 msgid "Name" msgstr "" #. module: hr_payroll -#: field:hr.payslip,leaves:0 +#: report:payslip.pdf:0 msgid "Leaved Deduction" msgstr "" @@ -1400,14 +1477,17 @@ msgid "Country" msgstr "" #. module: hr_payroll -#: wizard_field:wizard.employees.detail,init,employee_ids:0 -#: wizard_field:wizard.year.salary,init,employee_ids:0 +#: view:hr.passport:0 +#: view:hr.payroll.employees.detail:0 +#: field:hr.payroll.employees.detail,employee_ids:0 +#: view:hr.payroll.year.salary:0 +#: field:hr.payroll.year.salary,employee_ids:0 +#: view:hr.payslip:0 msgid "Employees" msgstr "" #. module: hr_payroll -#: field:hr.employee,property_bank_account:0 -#: rml:payroll.advice:0 +#: report:payroll.advice:0 msgid "Bank Account" msgstr "" @@ -1459,6 +1539,7 @@ msgid "Passport Issue Date" msgstr "" #. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 #: selection:hr.allounce.deduction.categoty,type:0 #: field:hr.payroll.register,allounce:0 #: field:hr.payslip,allounce:0 @@ -1477,7 +1558,7 @@ msgid "Other Id" msgstr "" #. module: hr_payroll -#: rml:payslip.pdf:0 +#: report:payslip.pdf:0 msgid "Bank Details" msgstr "" @@ -1487,7 +1568,10 @@ msgid "Slip ID" msgstr "" #. module: hr_payroll +#: field:company.contribution.line,sequence:0 #: field:hr.allounce.deduction.categoty,sequence:0 +#: field:hr.payslip.line,sequence:0 +#: field:hr.payslip.line.line,sequence:0 msgid "Sequence" msgstr "" @@ -1503,8 +1587,8 @@ msgid "Letter Content" msgstr "" #. module: hr_payroll -#: wizard_view:wizard.employees.detail,init:0 -#: wizard_view:wizard.year.salary,init:0 +#: view:hr.payroll.employees.detail:0 +#: view:hr.payroll.year.salary:0 msgid "Year Salary" msgstr "" @@ -1524,9 +1608,9 @@ msgid "Search Payslips" msgstr "" #. module: hr_payroll -#: rml:employees.salary:0 -#: rml:payroll.advice:0 -#: rml:year.salary:0 +#: report:employees.salary:0 +#: field:hr.contibution.register.line,total:0 +#: report:year.salary:0 msgid "Total" msgstr "" diff --git a/addons/marketing/i18n/tr.po b/addons/marketing/i18n/tr.po new file mode 100644 index 00000000000..378a54d28a5 --- /dev/null +++ b/addons/marketing/i18n/tr.po @@ -0,0 +1,122 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-02 13:17+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-03 04:40+0000\n" +"X-Generator: Launchpad (build 12959)\n" + +#. module: marketing +#: model:ir.module.module,description:marketing.module_meta_information +msgid "Menu for Marketing" +msgstr "Pazarlama Menüsü" + +#. module: marketing +#: help:marketing.installer,marketing_campaign:0 +msgid "" +"Helps you to manage marketing campaigns and automate actions and " +"communication steps." +msgstr "" +"Pazarlama kampanyalarını yönetmenizi ve eylemleriniz ve iletişim adımlarının " +"otomatize olmasını sağlar." + +#. module: marketing +#: field:marketing.installer,progress:0 +msgid "Configuration Progress" +msgstr "Yapılandırma Gelişimi" + +#. module: marketing +#: view:marketing.installer:0 +msgid "title" +msgstr "unvan" + +#. module: marketing +#: field:marketing.installer,email_template:0 +msgid "Automated E-Mails" +msgstr "Otomatize E-Postalar" + +#. module: marketing +#: field:marketing.installer,config_logo:0 +msgid "Image" +msgstr "Resim" + +#. module: marketing +#: view:marketing.installer:0 +msgid "Configure Your Marketing Application" +msgstr "Pazarlama Uygulamalarınızı Yapılandırın" + +#. module: marketing +#: help:marketing.installer,email_template:0 +msgid "" +"Helps you to design templates of emails and integrate them in your different " +"processes." +msgstr "" +"Eposta şablonları tasarlamanızı sağlar ve onları farklı işlemlerinize " +"entegre eder." + +#. module: marketing +#: model:ir.model,name:marketing.model_marketing_installer +msgid "marketing.installer" +msgstr "pazarlama.kurucu" + +#. module: marketing +#: model:ir.module.module,shortdesc:marketing.module_meta_information +msgid "Marketing" +msgstr "Pazarlama" + +#. module: marketing +#: field:marketing.installer,crm_profiling:0 +msgid "Profiling Tools" +msgstr "Profilleme Araçları" + +#. module: marketing +#: view:marketing.installer:0 +msgid "" +"OpenERP provides Addons to better manage your sales and marketing processes. " +"Select the ones you would be interested in." +msgstr "" +"OpenERP, Pazarlama işlemlerinizi ve satışlarınızı daha iyi yönetebilmeniz " +"için Eklenti sağlar. İlgi duyduklarınızı seçin." + +#. module: marketing +#: view:marketing.installer:0 +msgid "Marketing Application Configuration" +msgstr "Pazarlama Uygulaması Yapılandırma" + +#. module: marketing +#: model:ir.actions.act_window,name:marketing.action_marketing_installer +msgid "Marketing Modules Installation" +msgstr "" + +#. module: marketing +#: field:marketing.installer,marketing_campaign:0 +msgid "Marketing Campaigns" +msgstr "Pazarlama Kampanyaları" + +#. module: marketing +#: help:marketing.installer,crm_profiling:0 +msgid "" +"Helps you to perform segmentation of partners and design segmentation " +"questionnaires" +msgstr "" +"Paydaşlarınızı bölümlendirmenizi ve bölümleme sorgulamaları tasarlamınzı " +"sağlar." + +#. module: marketing +#: view:marketing.installer:0 +msgid "Configure" +msgstr "Yapılandır" + +#~ msgid "Marketing Applications Configuration" +#~ msgstr "Pazarlama Uygulamaları Yapılandırması" diff --git a/addons/mrp_repair/i18n/sv.po b/addons/mrp_repair/i18n/sv.po index 58aba31d1b1..6f58b0cad9d 100644 --- a/addons/mrp_repair/i18n/sv.po +++ b/addons/mrp_repair/i18n/sv.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.14\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-12-09 10:02+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-03 14:18+0000\n" +"Last-Translator: Jan-Eric Lindh \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:38+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-04 04:53+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: mrp_repair #: view:mrp.repair:0 @@ -93,7 +93,7 @@ msgid "Group by partner invoice address" msgstr "" #. module: mrp_repair -#: code:addons/mrp_repair/mrp_repair.py:427 +#: code:addons/mrp_repair/mrp_repair.py:430 #, python-format msgid "No product defined on Fees!" msgstr "" @@ -168,7 +168,7 @@ msgid "Net Total :" msgstr "" #. module: mrp_repair -#: code:addons/mrp_repair/mrp_repair.py:427 +#: code:addons/mrp_repair/mrp_repair.py:430 #, python-format msgid "Warning !" msgstr "" @@ -189,7 +189,7 @@ msgid "Move" msgstr "Flytta" #. module: mrp_repair -#: code:addons/mrp_repair/mrp_repair.py:362 +#: code:addons/mrp_repair/mrp_repair.py:365 #, python-format msgid "You have to select a Partner Invoice Address in the repair form !" msgstr "" @@ -222,7 +222,7 @@ msgid "Draft" msgstr "" #. module: mrp_repair -#: code:addons/mrp_repair/mrp_repair.py:376 +#: code:addons/mrp_repair/mrp_repair.py:379 #, python-format msgid "No account defined for partner \"%s\"." msgstr "" @@ -246,6 +246,7 @@ msgstr "" #. module: mrp_repair #: field:mrp.repair,prodlot_id:0 +#: field:mrp.repair.line,prodlot_id:0 #: report:repair.order:0 msgid "Lot Number" msgstr "" @@ -276,9 +277,9 @@ msgid "Shipping address :" msgstr "" #. module: mrp_repair -#: code:addons/mrp_repair/mrp_repair.py:376 -#: code:addons/mrp_repair/mrp_repair.py:405 -#: code:addons/mrp_repair/mrp_repair.py:434 +#: code:addons/mrp_repair/mrp_repair.py:379 +#: code:addons/mrp_repair/mrp_repair.py:408 +#: code:addons/mrp_repair/mrp_repair.py:437 #, python-format msgid "Error !" msgstr "" @@ -511,8 +512,8 @@ msgid "End Repair" msgstr "" #. module: mrp_repair -#: code:addons/mrp_repair/mrp_repair.py:405 -#: code:addons/mrp_repair/mrp_repair.py:434 +#: code:addons/mrp_repair/mrp_repair.py:408 +#: code:addons/mrp_repair/mrp_repair.py:437 #, python-format msgid "No account defined for product \"%s\"." msgstr "" @@ -543,7 +544,7 @@ msgstr "" #. module: mrp_repair #: view:mrp.repair:0 msgid "Qty" -msgstr "" +msgstr "Antal" #. module: mrp_repair #: field:mrp.repair.fee,price_unit:0 @@ -762,7 +763,7 @@ msgid "Ready to Repair" msgstr "" #. module: mrp_repair -#: code:addons/mrp_repair/mrp_repair.py:362 +#: code:addons/mrp_repair/mrp_repair.py:365 #, python-format msgid "No partner !" msgstr "" diff --git a/addons/product/i18n/vi.po b/addons/product/i18n/vi.po index 75e6d675fa8..fab7b68520a 100644 --- a/addons/product/i18n/vi.po +++ b/addons/product/i18n/vi.po @@ -8,24 +8,24 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2011-05-25 15:31+0000\n" +"PO-Revision-Date: 2011-06-04 14:36+0000\n" "Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-26 04:36+0000\n" +"X-Launchpad-Export-Date: 2011-06-05 04:35+0000\n" "X-Generator: Launchpad (build 12959)\n" #. module: product #: model:product.template,name:product.product_product_ram512_product_template msgid "DDR 512MB PC400" -msgstr "" +msgstr "DDR 512MB PC400" #. module: product #: field:product.packaging,rows:0 msgid "Number of Layers" -msgstr "" +msgstr "số lớp" #. module: product #: constraint:product.pricelist.item:0 @@ -53,12 +53,12 @@ msgstr "Có thể bán" #. module: product #: model:product.template,name:product.product_product_mb2_product_template msgid "Mainboard ASUStek A7V8X-X" -msgstr "" +msgstr "Mainboard ASUStek A7V8X-X" #. module: product #: help:product.template,seller_qty:0 msgid "This is minimum quantity to purchase from Main Supplier." -msgstr "" +msgstr "Đây là số lượng tối thiểu để mua từ Nhà cung cấp Chính." #. module: product #: model:product.uom,name:product.uom_day @@ -73,7 +73,7 @@ msgstr "Đơn vị đo" #. module: product #: model:product.template,name:product.product_product_pc2_product_template msgid "Basic+ PC (assembly on order)" -msgstr "" +msgstr "Cơ bản + PC (lắp ráp về trật tự)" #. module: product #: field:product.product,incoming_qty:0 @@ -91,6 +91,7 @@ msgid "" "This pricelist will be used, instead of the default one, for sales to the " "current partner" msgstr "" +"Bảng giá này sẽ được sử dụng, thay vì mặc định, để bán cho đối tác hiện tại" #. module: product #: constraint:product.supplierinfo:0 @@ -98,11 +99,13 @@ msgid "" "Error: The default UOM and the Supplier Product UOM must be in the same " "category." msgstr "" +"Lỗi: Đơn vị đo lường và mặc định của Nhà cung cấp sản phẩm của đơn vị đo " +"phải được trong cùng thể loại." #. module: product #: field:product.template,seller_qty:0 msgid "Supplier Quantity" -msgstr "" +msgstr "Chất lượng cung ứng" #. module: product #: selection:product.template,mes_type:0 @@ -154,6 +157,9 @@ msgid "" "The minimal quantity to trigger this rule, expressed in the supplier UoM if " "any or in the default UoM of the product otherrwise." msgstr "" +"Số lượng tối thiểu để kích hoạt các quy tắc này, thể hiện trong các đơn vị " +"cung cấp số đo nếu có hoặc trong các đơn vị đo mặc định của các sản phẩm " +"khác khôn ngoan." #. module: product #: model:product.template,name:product.product_product_24_product_template @@ -193,12 +199,12 @@ msgstr "Các loại đơn vị đo" #. module: product #: model:product.template,name:product.product_product_cpu1_product_template msgid "Processor AMD Athlon XP 1800+" -msgstr "" +msgstr "Processor AMD Athlon XP 1800+" #. module: product #: model:product.template,name:product.product_product_20_product_template msgid "HDD on demand" -msgstr "" +msgstr "HDD theo yêu cầu" #. module: product #: field:product.price_list,price_list:0 @@ -223,7 +229,7 @@ msgstr "Khác" #. module: product #: model:product.template,name:product.product_product_worker0_product_template msgid "Worker" -msgstr "" +msgstr "Công nhân" #. module: product #: help:product.template,sale_ok:0 @@ -231,6 +237,8 @@ msgid "" "Determines if the product can be visible in the list of product within a " "selection from a sale order line." msgstr "" +"Xác định các sản phẩm có thể được hiển thị trong danh sách các sản phẩm " +"trong một lựa chọn từ một đường để bán." #. module: product #: model:product.pricelist.version,name:product.ver0 @@ -257,7 +265,7 @@ msgstr "Loại sản phẩm" #. module: product #: view:product.uom:0 msgid " e.g: 1 * (this unit) = ratio * (reference unit)" -msgstr "" +msgstr " e.g: 1 * (đơn vị) = ratio * (đơn vị tham chiếu)" #. module: product #: code:addons/product/product.py:380 @@ -293,12 +301,12 @@ msgstr "" #. module: product #: model:process.node,note:product.process_node_supplier0 msgid "Supplier name, price, product code, ..." -msgstr "" +msgstr "tên NCC, giá, mã sản phẩm, ..." #. module: product #: model:product.template,name:product.product_product_hdd3_product_template msgid "HDD Seagate 7200.8 160GB" -msgstr "" +msgstr "HDD Seagate 7200.8 160GB" #. module: product #: field:product.product,ean13:0 @@ -308,7 +316,7 @@ msgstr "EAN13" #. module: product #: field:product.template,seller_id:0 msgid "Main Supplier" -msgstr "" +msgstr "Nhà Cung Cấp Chính" #. module: product #: model:ir.actions.act_window,name:product.product_ul_form_action @@ -335,7 +343,7 @@ msgstr "Quy tắc này chỉ áp dụng nếu đối tác mua/bán nhiều hơn #. module: product #: model:product.template,name:product.product_product_woodmm0_product_template msgid "Wood 2mm" -msgstr "" +msgstr "gỗ 2mm" #. module: product #: field:product.price_list,qty1:0 @@ -345,7 +353,7 @@ msgstr "Số lượng-1" #. module: product #: help:product.packaging,ul_qty:0 msgid "The number of packages by layer" -msgstr "" +msgstr "Số lượng các gói của lớp" #. module: product #: field:product.packaging,qty:0 @@ -362,7 +370,7 @@ msgstr "Tình trạng" #. module: product #: help:product.template,categ_id:0 msgid "Select category for the current product" -msgstr "" +msgstr "lựa chọn danh mục của sản phẩm" #. module: product #: field:product.product,outgoing_qty:0 diff --git a/addons/project_caldav/i18n/sv.po b/addons/project_caldav/i18n/sv.po index fa9aafe45f0..e8de8f114cb 100644 --- a/addons/project_caldav/i18n/sv.po +++ b/addons/project_caldav/i18n/sv.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-12-12 09:16+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-03 14:19+0000\n" +"Last-Translator: Jan-Eric Lindh \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: 2011-04-29 05:53+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-04 04:53+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: project_caldav #: help:project.task,exdate:0 @@ -184,7 +184,7 @@ msgstr "Plats" #. module: project_caldav #: view:project.task:0 msgid "Mail TO" -msgstr "" +msgstr "E-posta till" #. module: project_caldav #: selection:project.task,freq:0 diff --git a/addons/project_scrum/i18n/sv.po b/addons/project_scrum/i18n/sv.po index a4d8c3fb361..cba4c5bd8d9 100644 --- a/addons/project_scrum/i18n/sv.po +++ b/addons/project_scrum/i18n/sv.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-12-16 03:09+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-03 14:17+0000\n" +"Last-Translator: Jan-Eric Lindh \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 04:54+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-04 04:53+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: project_scrum #: help:project.scrum.email,scrum_master_email:0 @@ -206,7 +206,7 @@ msgstr "Ok" #. module: project_scrum #: view:project.scrum.product.backlog:0 msgid "Spent hours" -msgstr "" +msgstr "Förbrukade timmar" #. module: project_scrum #: model:ir.actions.act_window,help:project_scrum.action_meeting_form From aece1cf7c1cbc29de6192d6e5da5f1f14b0d54f4 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 09:04:51 +0200 Subject: [PATCH 47/64] [imp] improvements related to embedded views. bzr revid: nicolas.vanhoren@openerp.com-20110606070451-vn321aqrzi28akgj --- addons/base/controllers/main.py | 15 ++++++++++----- addons/base/static/src/js/form.js | 28 +++++++++++++++++++++++----- addons/base/static/src/js/list.js | 19 ++++++++++++++----- addons/base/static/src/js/views.js | 6 +++++- 4 files changed, 52 insertions(+), 16 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 35289e487af..f07a8e462a7 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -461,15 +461,20 @@ class View(openerpweb.Controller): Model = request.session.model(model) fvg = Model.fields_view_get(view_id, view_type, request.context, toolbar, submenu) + self.process_view(request.session, fvg, request.context, transform) + return fvg + + def process_view(self, session, fvg, context, transform): if transform: - evaluation_context = request.session.evaluation_context( - request.context or {}) - xml = self.transform_view( - fvg['arch'], request.session, evaluation_context) + evaluation_context = session.evaluation_context(context or {}) + xml = self.transform_view(fvg['arch'], session, evaluation_context) else: xml = ElementTree.fromstring(fvg['arch']) fvg['arch'] = Xml2Json.convert_element(xml) - return fvg + for field in fvg["fields"].values(): + if field["views"]: + for view in field["views"].values(): + self.process_view(session, view, None, transform) def normalize_attrs(self, elem, context): """ Normalize @attrs, @invisible, @required, @readonly and @states, so diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 787f50b75b4..cc1fbb2de76 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -31,15 +31,24 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.touched = false; this.flags = this.view_manager.flags || {}; }, - start: function(fields_view) { + start: function() { //this.log('Starting FormView '+this.model+this.view_id) - if (fields_view) { - return $.Deferred().then(this.on_loaded).resolve({fields_view: fields_view}); + if (this.embedded_view) { + return $.Deferred().then(this.on_loaded).resolve({fields_view: this.embedded_view}); } else { return this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id, toolbar:!!this.flags.sidebar}, this.on_loaded); } }, + /** + * Directly set a view to use instead of calling fields_view_get. This method must + * be called before start(). + * + * @param embedded_view A view. + */ + set_embedded_view: function(embedded_view) { + this.embedded_view = embedded_view; + }, on_loaded: function(data) { var self = this; this.fields_view = data.fields_view; @@ -995,7 +1004,6 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); - debugger; this.template = "FieldOne2Many"; this.is_started = $.Deferred(); this.is_setted = $.Deferred(); @@ -1014,7 +1022,17 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ self.on_ui_change(); }); - var views = [ [false,"list"], [false,"form"] ]; + var modes = this.node.attrs.mode; + modes = !!modes ? modes.split(",") : ["tree", "form"]; + var views = []; + _.each(modes, function(mode) { + var view = [false, mode == "tree" ? "list" : mode]; + if (self.field.views && self.field.views[mode]) { + view.push(self.field.views[mode]); + } + views.push(view); + }); + this.viewmanager = new openerp.base.ViewManager(this.view.session, this.element_id, this.dataset, views); this.viewmanager.start(); diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 43c90708805..7bc14298fb6 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -94,9 +94,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * * @returns {$.Deferred} loading promise */ - start: function(fields_view) { + start: function() { this.$element.addClass('oe-listview'); - return this.reload_view(undefined, fields_view); + return this.reload_view(); }, /** * Called after loading the list view's description, sets up such things @@ -254,15 +254,15 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * * @param {Boolean} [grouped] Should the list be displayed grouped */ - reload_view: function (grouped, fields_view) { + reload_view: function (grouped) { var self = this; this.dataset.offset = 0; this.dataset.limit = false; var callback = function (field_view_get) { self.on_loaded(field_view_get, grouped); }; - if (fields_view) { - return $.Deferred().then(callback).resolve({fields_view: fields_view}); + if (this.embedded_view) { + return $.Deferred().then(callback).resolve({fields_view: this.embedded_view}); } else { return this.rpc('/base/listview/load', { model: this.model, @@ -271,6 +271,15 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi }, callback); } }, + /** + * Directly set a view to use instead of calling fields_view_get. This method must + * be called before start(). + * + * @param embedded_view A view. + */ + set_embedded_view: function(embedded_view) { + this.embedded_view = embedded_view; + }, /** * re-renders the content of the list view */ diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index a332454ed58..39708e717a0 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -95,7 +95,8 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ self.on_mode_switch($(this).data('view-type')); }); _.each(this.views_src, function(view) { - self.views[view[1]] = { view_id: view[0], controller: null }; + self.views[view[1]] = { view_id: view[0], controller: null, + embedded_view: view[2]}; }); if (this.flags.views_switcher === false) { this.$element.find('.oe_vm_switch').hide(); @@ -119,6 +120,9 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ // Lazy loading of views var controllerclass = openerp.base.views.get_object(view_type); var controller = new controllerclass( this, this.session, this.element_id + "_view_" + view_type, this.dataset, view.view_id); + if (view.embedded_view) { + controller.set_embedded_view(view.embedded_view); + } view_promise = controller.start(); var self = this; $.when(view_promise).then(function() { From 872520df3dfce6e28028dc51699522ee71b572b4 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 09:39:35 +0200 Subject: [PATCH 48/64] [fix] fixed problem with list view in o2m not loading at startup bzr revid: nicolas.vanhoren@openerp.com-20110606073935-vnloqd0wrf61pprv --- addons/base/static/src/js/form.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index cc1fbb2de76..6ffc3a0505d 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1035,7 +1035,6 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ this.viewmanager = new openerp.base.ViewManager(this.view.session, this.element_id, this.dataset, views); - this.viewmanager.start(); this.viewmanager.on_controller_inited.add_last(function(view_type, controller) { if (view_type == "list") { // TODO niv @@ -1044,10 +1043,14 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ } self.is_started.resolve(); }); + this.viewmanager.start(); $.when(this.is_started, this.is_setted).then(function() { - var view = self.viewmanager.views[self.viewmanager.active_view].controller; - view.reload_content(); + if (modes[0] == "list") { + var view = self.viewmanager.views[self.viewmanager.active_view].controller; + view.reload_content(); + } + // TODO niv: handle other types of views }); }, set_value: function(value) { From f2770c9ac4c77dbda50de828de77f837840afbfb Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 6 Jun 2011 09:48:56 +0200 Subject: [PATCH 49/64] [FIX] netrpc_server: close as soon as possible the socket, and do it after a communication-level exception. lp bug: https://launchpad.net/bugs/785009 fixed bzr revid: vmt@openerp.com-20110606074856-e726j4klc5ljiq5w --- openerp/service/netrpc_server.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openerp/service/netrpc_server.py b/openerp/service/netrpc_server.py index e3c181d4a8c..ac3cd724a45 100644 --- a/openerp/service/netrpc_server.py +++ b/openerp/service/netrpc_server.py @@ -87,11 +87,15 @@ class TinySocketClientThread(threading.Thread, netsvc.OpenERPDispatcher): tb_s = "".join(traceback.format_exception(*tb)) logging.getLogger('web-services').debug("netrpc: communication-level exception", exc_info=True) ts.mysend(e, exception=True, traceback=tb_s) + break except Exception, ex: #terminate this channel if we can't properly send back the error logging.getLogger('web-services').exception("netrpc: cannot deliver exception message to client") break + self.sock.shutdown(socket.SHUT_RDWR) + self.sock.close() + self.sock = None self.threads.remove(self) self.running = False return True From 147ca866608f166e8879940c32abd6e70395a0b5 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 09:50:43 +0200 Subject: [PATCH 50/64] [fix] typo bzr revid: nicolas.vanhoren@openerp.com-20110606075043-cvabf3ex95k0z6af --- addons/base/static/src/js/form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 6ffc3a0505d..7bf2059243d 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1046,7 +1046,7 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ this.viewmanager.start(); $.when(this.is_started, this.is_setted).then(function() { - if (modes[0] == "list") { + if (modes[0] == "tree") { var view = self.viewmanager.views[self.viewmanager.active_view].controller; view.reload_content(); } From f2dca934a35f9efc908159eb33a1d833cf1b8934 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 09:52:43 +0200 Subject: [PATCH 51/64] [imp] put set_embedded_view in openerp.base.View bzr revid: nicolas.vanhoren@openerp.com-20110606075243-7b97zrb84qdfo4eu --- addons/base/static/src/js/form.js | 9 --------- addons/base/static/src/js/list.js | 9 --------- addons/base/static/src/js/views.js | 10 ++++++++++ 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 7bf2059243d..2b09c4ac27c 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -40,15 +40,6 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV toolbar:!!this.flags.sidebar}, this.on_loaded); } }, - /** - * Directly set a view to use instead of calling fields_view_get. This method must - * be called before start(). - * - * @param embedded_view A view. - */ - set_embedded_view: function(embedded_view) { - this.embedded_view = embedded_view; - }, on_loaded: function(data) { var self = this; this.fields_view = data.fields_view; diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 7bc14298fb6..7643e2b62d4 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -271,15 +271,6 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi }, callback); } }, - /** - * Directly set a view to use instead of calling fields_view_get. This method must - * be called before start(). - * - * @param embedded_view A view. - */ - set_embedded_view: function(embedded_view) { - this.embedded_view = embedded_view; - }, /** * re-renders the content of the list view */ diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 39708e717a0..4c259babd8f 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -399,6 +399,16 @@ openerp.base.View = openerp.base.Controller.extend({ return dataset.exec_workflow(record_id, action_data.name, handler); } } + }, + /** + * Directly set a view to use instead of calling fields_view_get. This method must + * be called before start(). When an embedded view is set, underlying implementations + * of openerp.base.View must use the provided view instead of any other one. + * + * @param embedded_view A view. + */ + set_embedded_view: function(embedded_view) { + this.embedded_view = embedded_view; } }); From bd7f70b379b4ff435a81693fbc28af76077f2b3c Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 11:04:54 +0200 Subject: [PATCH 52/64] [imp] implemented logout + improved login design bzr revid: nicolas.vanhoren@openerp.com-20110606090454-b19vgrwvlj6v2fp6 --- addons/base/static/src/css/base.css | 17 +++++++++-------- addons/base/static/src/js/chrome.js | 23 ++++++++++++++++++----- addons/base/static/src/xml/base.xml | 6 +++++- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index d9042e7e251..f65a9be5253 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -61,19 +61,20 @@ body.openerp { /* Login */ .openerp .login { display: none; - padding: 6px; - z-index: 1002; - width: 34%; - position: fixed; - top: 0; - left: 33%; } .openerp .login_valid { - background-color: #8f8; } .openerp .login_invalid { - background-color: #f88; +} + +.openerp.login-mode .login { + display: block; +} +.openerp.login-mode #oe_menu, +.openerp.login-mode #oe_secondary_menu, +.openerp.login-mode #oe_app { + display: none; } /* Main*/ diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 86549eca001..cefa4c89c84 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -441,6 +441,13 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b this.set_cookie('uid', this.uid); this.set_cookie('session_id', this.session_id); }, + logout: function() { + this.uid = this.get_cookie('uid'); + this.session_id = this.get_cookie('session_id'); + this.set_cookie('uid', false); + this.set_cookie('session_id', false); + this.on_session_invalid(function() {}); + }, /** * Fetches a cookie stored by an openerp session * @@ -777,14 +784,14 @@ openerp.base.Login = openerp.base.Controller.extend({ on_login_invalid: function() { this.$element .removeClass("login_valid") - .addClass("login_invalid") - .show(); + .addClass("login_invalid"); + this.$element.closest(".openerp").addClass("login-mode"); }, on_login_valid: function() { this.$element .removeClass("login_invalid") - .addClass("login_valid") - .hide(); + .addClass("login_valid"); + this.$element.closest(".openerp").removeClass("login-mode"); }, on_submit: function(ev) { ev.preventDefault(); @@ -810,6 +817,9 @@ openerp.base.Login = openerp.base.Controller.extend({ unique: true, callback: continuation }); + }, + on_logout: function() { + this.session.logout(); } }); @@ -822,7 +832,9 @@ openerp.base.Header = openerp.base.Controller.extend({ }, do_update: function() { this.$element.html(QWeb.render("Header", this)); - } + this.$element.find(".logout").click(this.on_logout); + }, + on_logout: function() {} }); openerp.base.Menu = openerp.base.Controller.extend({ @@ -937,6 +949,7 @@ openerp.base.WebClient = openerp.base.Controller.extend({ this.header = new openerp.base.Header(this.session, "oe_header"); this.login = new openerp.base.Login(this.session, "oe_login"); + this.header.on_logout.add(this.login.on_logout); this.session.on_session_invalid.add(this.login.do_ask_login); this.session.on_session_valid.add_last(this.header.do_update); diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index b8412aa1b19..3a8e5128f6f 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -17,7 +17,6 @@

#{text}

- + + + - @@ -51,12 +51,40 @@ Loading... +
- Database:
- Login:
- Password:
- +
+ + + +
+
@@ -34,6 +33,11 @@
+ +
- + + + - @@ -51,12 +51,40 @@ Loading... + - Database:
- Login:
- Password:
- +
+ + + +
+
@@ -34,6 +33,11 @@
+ +
+
+ + + + + + + + + + + + + + + + +
+ +
+ + + + From 8193d8967dbf133ece5371a315742ed5e4c82f77 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 11:49:55 +0200 Subject: [PATCH 57/64] [imp] improved login css bzr revid: nicolas.vanhoren@openerp.com-20110606094955-kblpspk99t960y9m --- addons/base/static/src/css/base.css | 29 ++++++++++++++- addons/base/static/src/img/stock_person.png | Bin 0 -> 1074 bytes addons/base/static/src/js/chrome.js | 4 +-- addons/base/static/src/xml/base.xml | 38 +++++++++++++++++--- 4 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 addons/base/static/src/img/stock_person.png diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index f65a9be5253..78cad811122 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -61,13 +61,40 @@ body.openerp { /* Login */ .openerp .login { display: none; - +} +.openerp .login fieldset { + padding-bottom: 5px; + min-width: 100px; + margin-top: 60px; + margin-bottom: 60px; + margin-left: 40px; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + float: left; + width: 420px; +} +.openerp .login fieldset legend { + padding: 4px; +} +.openerp .login .oe_box2 { + padding: 5px 5px 20px 5px; +} +.openerp .login .oe_box2 table { + width: 100%; + border:none; +} +.openerp .login .oe_field_value { + padding: 3px; } .openerp .login_valid { } .openerp .login_invalid { } +.openerp.login-mode .login-container { + height: 100%; +} .openerp.login-mode .login { display: block; } diff --git a/addons/base/static/src/img/stock_person.png b/addons/base/static/src/img/stock_person.png new file mode 100644 index 0000000000000000000000000000000000000000..202cf0ee6c554570fde4a7835737195f5cd12120 GIT binary patch literal 1074 zcmV-21kL-2P)!5$3|KREQzU>^(VTMM>u6p6a*>=wPKHv9w-{;wT;s5y4kxHe)=~U`D zUw_<4rHHRz3*W=%9k^t1aq)2`lc9$X9#B4?r=z1IIyg9>{r!E)X0x=kw3O%PjOP(t z5Ap5oZ8|(Wq+BjXi^(KSOiWNBk)W-uE!x}LlTB!DAel@)-PqU=Gfk({G&(v;LqkI} zG&o3u1!iYwVFtj&oMypiW@fC(g$25G^Cm4XFHXr~-bLMn^^{F+cxaGXvAp z(}_8r-L<(n5hN0c95XOL0}94CGyVPjA{$sXO$7lcBBkdoeB>Md|(d>k9pt%-qg9#~fh3wnA4JxaQ} zsarw8ur}q$sVpC1146v3OVFjHvy(cNbac@0@GuNGH8Fshpxht~IwXQYK~SQ-UC_>O zb-;vMvr6C{{}D5VxF8S^1SI@^fuCVBsEE&+HX`158LYD(LE72`Z4#}mg4P1qAN`@w zZOywOZ??Aqe}GzAT7Kd4$@mK3K0o*L!g&ndU^!&K>-CbixmnOG(bNQ_CCHqM0Z#WO zHXrK0sj-n7B|IL1hvCe?g!Tq_mcyLlSKJlR;mGZF|DvHm(7>Qfqmc;q1+sLHU;Fz$ zz%%S&o}t{btE;q@&5A%Sr&GoW91ik%y`llFtgO&98^!lVxBEWJl>BjEo6R=Bvw9J1 z57OG&8tv}v5Kcd6G!DC6#tv*Y8JEi?I^#kjL7SVKB3mA}2PSi83hZz=CRy|y8qPWg zzPr1Ne>JpP5zJO!FH;Zd>SXF9tX7yqhZJXn_4RccjKzqxKfCPq-`-KtD+Xv)X3B@$O>9FGP0Vl0H@>;$_XhtLHtx5N6Qddz{}J-|38;F>YX8-^I07*qoM6N<$g1YMW>Hq)$ literal 0 HcmV?d00001 diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index cefa4c89c84..2acb66c7ada 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -444,8 +444,8 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b logout: function() { this.uid = this.get_cookie('uid'); this.session_id = this.get_cookie('session_id'); - this.set_cookie('uid', false); - this.set_cookie('session_id', false); + this.set_cookie('uid', ''); + this.set_cookie('session_id', ''); this.on_session_invalid(function() {}); }, /** diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 3a8e5128f6f..7a5f627ee72 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -34,7 +34,7 @@
+
+ + + + + + + + + + + + + + + + +
+ +
+ + + +
From 95e176c3e8a6dc93c8085e6fcbb4afbdbe0e83f2 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 12:19:47 +0200 Subject: [PATCH 58/64] [imp] improved css of login bzr revid: nicolas.vanhoren@openerp.com-20110606101947-5kwn2j3il0ronlhr --- addons/base/static/src/css/base.css | 38 ++++++++++++--- .../static/src/img/accessories-archiver.png | Bin 0 -> 822 bytes addons/base/static/src/img/partner.png | Bin 0 -> 905 bytes addons/base/static/src/img/product.png | Bin 0 -> 708 bytes addons/base/static/src/xml/base.xml | 45 ++++++++++++++++-- 5 files changed, 71 insertions(+), 12 deletions(-) create mode 100644 addons/base/static/src/img/accessories-archiver.png create mode 100644 addons/base/static/src/img/partner.png create mode 100644 addons/base/static/src/img/product.png diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 78cad811122..ad0bec6c255 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -62,17 +62,19 @@ body.openerp { .openerp .login { display: none; } +.openerp .login form { + float: left; + width: 420px; + margin-left: 40px; + margin-bottom: 60px; +} .openerp .login fieldset { padding-bottom: 5px; min-width: 100px; margin-top: 60px; - margin-bottom: 60px; - margin-left: 40px; border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; - float: left; - width: 420px; } .openerp .login fieldset legend { padding: 4px; @@ -84,12 +86,34 @@ body.openerp { width: 100%; border:none; } -.openerp .login .oe_field_value { +.openerp .login .oe_box2 td { padding: 3px; + text-align: right; } -.openerp .login_valid { +.openerp .login .oe_box2 td input { + width: 100%; } -.openerp .login_invalid { +.openerp .login .oe_login_right_pane { + padding:70px 35px 5px 10px; + min-width: 200px; + margin-left: 500px; +} +.openerp .login .login_error_message { + display: none; + background-color: #9A0404; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + color: white; + font-family: Ubuntu, Helvetica, sans-serif; + font-size: 16px; + font-weight: bold; + padding: 5px; + margin-top: 5px; + text-align: center; +} +.openerp .login.login_invalid .login_error_message { + display: block; } .openerp.login-mode .login-container { diff --git a/addons/base/static/src/img/accessories-archiver.png b/addons/base/static/src/img/accessories-archiver.png new file mode 100644 index 0000000000000000000000000000000000000000..8bcbe4566bc10df91222f2045449abcd258997b6 GIT binary patch literal 822 zcmV-61Ihe}P)3o8;IpdbVcrBZb^TLo%!T$sNra%1e696CG-Xxrs z@uWj;LL3yX1g#BP8+<9rl_k#=R^=Ep20=2NApvSdozK4cjlB)wJ+l`0FKpge55l=! z$FaMvOXy44Lg;^sLLChT-FEAwI}XcEvGc*rLVS8_7v-9@C@8CM77X{Zais7iw$;m06gl1JDODV2R z84S8qLW{8$*N;FrtTd}~Wp(v!X)PZrm5V$ZlU&54({q#y!`Q)%n%LQxarY64A2G`n zxq`6L;Iw^c+b5kjWL^|E3vF+YhlBTfPdX%%Ax0~X%!IJAf-nk`4Tj%JTvj=B0lTJ590IjA5R98AOCsS`y03fUc6HM`OX)=+d^SG(^`LhOD8K^z2Mu**aWn@m?*IS*07*qoM6N<$fSzr&_!KV+*VL< zFK%_?Mt7qBfFKczbWuwXsS)ZT)>?F0lbQxPGnsjB?!E86`{AOd)J4wftPa1k_z^sj z4_>dK)9aUg-=89cIIY#+wJ_u#uO~Px z;*0hB)&bV!$d$mE58ICi*g^4=e~QgU{O(k9zvs^tL)n_SDf75 z?5g)JRPg0S{{Mls#Zsd_Qu}CXY-GIg)DS2oP-@^csuOyz`jgrE@-% z%30w1tHily^GrgB6wM<;7@c?;!SF0-A%s)=gqW<6N&Z*oZf|p=^B;k82*_CcM!UpL zXQGEl6i{InlM};mTEMCl&gO8r1R>5NKvbzbBKH6wtW_7ID7fsG#L+=6u+KS|0ml0k zOr(2oc?xF@oa};&Ea?ii_1Wbuhqsp=4FpC1ETQIvQXI^)2qJ=hHixV2((6g702m#kl^_USD3^-EfKPh)NpSyVa1)@Thr!|{)Mr+3<&P5D zoWi57#)zc}&#yB8AVlv`rgwEtO(wm5PoE&RFc%7$5jclD*N~Y)Yqt-TNkB_5;$%M& z-!lMMUh&lrSLH3v#g7m6_%-gYZU^Of*`p+M0JK)<_Bo`?K%v2`fEc7Vl3wyP1Ax1K z8jRG5T|CM9r_K}}Y~DO}hcc#pkHj97b@@PMA{9i76k2wZ{mzYt+rNL&x%KU@snS_**7oc{#1 fqpR?W5dh#{o9ud-MN>Ot00000NkvXXu0mjfut%x{ literal 0 HcmV?d00001 diff --git a/addons/base/static/src/img/product.png b/addons/base/static/src/img/product.png new file mode 100644 index 0000000000000000000000000000000000000000..99f58d95a8b16503a1b8b5086be523062fd9d1ed GIT binary patch literal 708 zcmV;#0z3VQP)Gp1|r&8Q7Lxa8HrAddkpDe`lJ5kKc@8QM$v5CIn6E~#bX=_?JAte(jkn%{9 z2U1#uq1$W}zrCxKRu;=UHlK(nr^t_D@!{Y^Zv6a{?9ll2%6cJU>INhvJRBTVg_NqP&$T$ zbKdq^VM^8;&ZNq-3WBF?(2VP7vf;=3VgxI|4qyg@0cN11%mIira;K(DrSdXj>ZPlS z*}Z`zG#lHOf9Br{XWN}#_(1u<3-S=OT26YAb!PWk5y|DfMtz~Qnjh82PTmVD-(^?3 zhrrOOQMb9aywI$co)TnH7PodWGgq!kqG~Le;bf){M=_Snu#~cT^I2)ba_H29SHNii zQj&UoR}?b1qn qbFC8o0 -
@@ -75,16 +74,52 @@ - - + +
+
- - +
From 69edae4391f345f2baa68bd1495a4fedc1d2ea7e Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 12:19:47 +0200 Subject: [PATCH 59/64] [imp] improved css of login bzr revid: nicolas.vanhoren@openerp.com-20110606101947-nqbx1jcz3uj5oav2 --- addons/base/static/src/css/base.css | 38 ++++++++++++--- .../static/src/img/accessories-archiver.png | Bin 0 -> 822 bytes addons/base/static/src/img/partner.png | Bin 0 -> 905 bytes addons/base/static/src/img/product.png | Bin 0 -> 708 bytes addons/base/static/src/xml/base.xml | 45 ++++++++++++++++-- 5 files changed, 71 insertions(+), 12 deletions(-) create mode 100644 addons/base/static/src/img/accessories-archiver.png create mode 100644 addons/base/static/src/img/partner.png create mode 100644 addons/base/static/src/img/product.png diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 78cad811122..ad0bec6c255 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -62,17 +62,19 @@ body.openerp { .openerp .login { display: none; } +.openerp .login form { + float: left; + width: 420px; + margin-left: 40px; + margin-bottom: 60px; +} .openerp .login fieldset { padding-bottom: 5px; min-width: 100px; margin-top: 60px; - margin-bottom: 60px; - margin-left: 40px; border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; - float: left; - width: 420px; } .openerp .login fieldset legend { padding: 4px; @@ -84,12 +86,34 @@ body.openerp { width: 100%; border:none; } -.openerp .login .oe_field_value { +.openerp .login .oe_box2 td { padding: 3px; + text-align: right; } -.openerp .login_valid { +.openerp .login .oe_box2 td input { + width: 100%; } -.openerp .login_invalid { +.openerp .login .oe_login_right_pane { + padding:70px 35px 5px 10px; + min-width: 200px; + margin-left: 500px; +} +.openerp .login .login_error_message { + display: none; + background-color: #9A0404; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + color: white; + font-family: Ubuntu, Helvetica, sans-serif; + font-size: 16px; + font-weight: bold; + padding: 5px; + margin-top: 5px; + text-align: center; +} +.openerp .login.login_invalid .login_error_message { + display: block; } .openerp.login-mode .login-container { diff --git a/addons/base/static/src/img/accessories-archiver.png b/addons/base/static/src/img/accessories-archiver.png new file mode 100644 index 0000000000000000000000000000000000000000..8bcbe4566bc10df91222f2045449abcd258997b6 GIT binary patch literal 822 zcmV-61Ihe}P)3o8;IpdbVcrBZb^TLo%!T$sNra%1e696CG-Xxrs z@uWj;LL3yX1g#BP8+<9rl_k#=R^=Ep20=2NApvSdozK4cjlB)wJ+l`0FKpge55l=! z$FaMvOXy44Lg;^sLLChT-FEAwI}XcEvGc*rLVS8_7v-9@C@8CM77X{Zais7iw$;m06gl1JDODV2R z84S8qLW{8$*N;FrtTd}~Wp(v!X)PZrm5V$ZlU&54({q#y!`Q)%n%LQxarY64A2G`n zxq`6L;Iw^c+b5kjWL^|E3vF+YhlBTfPdX%%Ax0~X%!IJAf-nk`4Tj%JTvj=B0lTJ590IjA5R98AOCsS`y03fUc6HM`OX)=+d^SG(^`LhOD8K^z2Mu**aWn@m?*IS*07*qoM6N<$fSzr&_!KV+*VL< zFK%_?Mt7qBfFKczbWuwXsS)ZT)>?F0lbQxPGnsjB?!E86`{AOd)J4wftPa1k_z^sj z4_>dK)9aUg-=89cIIY#+wJ_u#uO~Px z;*0hB)&bV!$d$mE58ICi*g^4=e~QgU{O(k9zvs^tL)n_SDf75 z?5g)JRPg0S{{Mls#Zsd_Qu}CXY-GIg)DS2oP-@^csuOyz`jgrE@-% z%30w1tHily^GrgB6wM<;7@c?;!SF0-A%s)=gqW<6N&Z*oZf|p=^B;k82*_CcM!UpL zXQGEl6i{InlM};mTEMCl&gO8r1R>5NKvbzbBKH6wtW_7ID7fsG#L+=6u+KS|0ml0k zOr(2oc?xF@oa};&Ea?ii_1Wbuhqsp=4FpC1ETQIvQXI^)2qJ=hHixV2((6g702m#kl^_USD3^-EfKPh)NpSyVa1)@Thr!|{)Mr+3<&P5D zoWi57#)zc}&#yB8AVlv`rgwEtO(wm5PoE&RFc%7$5jclD*N~Y)Yqt-TNkB_5;$%M& z-!lMMUh&lrSLH3v#g7m6_%-gYZU^Of*`p+M0JK)<_Bo`?K%v2`fEc7Vl3wyP1Ax1K z8jRG5T|CM9r_K}}Y~DO}hcc#pkHj97b@@PMA{9i76k2wZ{mzYt+rNL&x%KU@snS_**7oc{#1 fqpR?W5dh#{o9ud-MN>Ot00000NkvXXu0mjfut%x{ literal 0 HcmV?d00001 diff --git a/addons/base/static/src/img/product.png b/addons/base/static/src/img/product.png new file mode 100644 index 0000000000000000000000000000000000000000..99f58d95a8b16503a1b8b5086be523062fd9d1ed GIT binary patch literal 708 zcmV;#0z3VQP)Gp1|r&8Q7Lxa8HrAddkpDe`lJ5kKc@8QM$v5CIn6E~#bX=_?JAte(jkn%{9 z2U1#uq1$W}zrCxKRu;=UHlK(nr^t_D@!{Y^Zv6a{?9ll2%6cJU>INhvJRBTVg_NqP&$T$ zbKdq^VM^8;&ZNq-3WBF?(2VP7vf;=3VgxI|4qyg@0cN11%mIira;K(DrSdXj>ZPlS z*}Z`zG#lHOf9Br{XWN}#_(1u<3-S=OT26YAb!PWk5y|DfMtz~Qnjh82PTmVD-(^?3 zhrrOOQMb9aywI$co)TnH7PodWGgq!kqG~Le;bf){M=_Snu#~cT^I2)ba_H29SHNii zQj&UoR}?b1qn qbFC8o0 -
@@ -75,16 +74,52 @@ - - + +
+
- - +
From 43b2695cfd9c18eb90e9a236fd5081f2ee62bc69 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 12:26:30 +0200 Subject: [PATCH 60/64] [fix] possible mistake in css bzr revid: nicolas.vanhoren@openerp.com-20110606102630-jex9p4i49272lxkn --- addons/base/static/src/css/base.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index ad0bec6c255..7cdf9af0286 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -122,9 +122,9 @@ body.openerp { .openerp.login-mode .login { display: block; } -.openerp.login-mode #oe_menu, -.openerp.login-mode #oe_secondary_menu, -.openerp.login-mode #oe_app { +.openerp.login-mode .menu, +.openerp.login-mode .secondary_menu, +.openerp.login-mode .oe-application { display: none; } From 19382763fbe00fd847d3b00efcaa968aa4d44999 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 6 Jun 2011 12:35:02 +0200 Subject: [PATCH 61/64] [FIX] Fixed View controller bzr revid: fme@openerp.com-20110606103502-wfph1zo7nnt2668p --- addons/base/controllers/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index fc846f22838..40546ddbbb5 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -473,8 +473,8 @@ class View(openerpweb.Controller): else: xml = ElementTree.fromstring(fvg['arch']) fvg['arch'] = Xml2Json.convert_element(xml) - for field in fvg["fields"].values(): - if field["views"]: + for field in fvg['fields'].values(): + if field.has_key('views') and field['views']: for view in field["views"].values(): self.process_view(session, view, None, transform) From 8011b649ee225edef8e73ae5cfea08bd66f524d3 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 6 Jun 2011 12:54:36 +0200 Subject: [PATCH 62/64] [ADD] "Reset" feature in dashboards bzr revid: fme@openerp.com-20110606105436-wpo7xyiiy2o6jyzm --- addons/base/controllers/main.py | 7 +++++-- addons/base_dashboard/static/src/js/dashboard.js | 9 ++++++++- addons/base_dashboard/static/src/xml/base_dashboard.xml | 4 ++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 40546ddbbb5..342f9efc6cf 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -489,11 +489,14 @@ class View(openerpweb.Controller): return {'result': True} @openerpweb.jsonrequest - def undo_custom(self, request, view_id): + def undo_custom(self, request, view_id, reset=False): CustomView = request.session.model('ir.ui.view.custom') vcustom = CustomView.search([('user_id', '=', request.session._uid), ('ref_id' ,'=', view_id)]) if vcustom: - CustomView.unlink([vcustom[0]]) + if reset: + CustomView.unlink(vcustom) + else: + CustomView.unlink([vcustom[0]]) return {'result': True} return {'result': False} diff --git a/addons/base_dashboard/static/src/js/dashboard.js b/addons/base_dashboard/static/src/js/dashboard.js index 9d6511fd215..6e6a0a5a1f1 100644 --- a/addons/base_dashboard/static/src/js/dashboard.js +++ b/addons/base_dashboard/static/src/js/dashboard.js @@ -18,6 +18,7 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ // Events this.$element.find('.oe-dashboard-link-undo').click(this.on_undo); + this.$element.find('.oe-dashboard-link-reset').click(this.on_reset); this.$element.find('.oe-dashboard-link-add_widget').click(this.on_add_widget); this.$element.find('.oe-dashboard-link-change_layout').click(this.on_change_layout); this.$element.find('.oe-dashboard-column .ui-icon-minusthick').click(this.on_fold_action); @@ -42,6 +43,12 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ view_id: this.view.fields_view.view_id }, this.do_reload); }, + on_reset: function() { + this.rpc('/base/view/undo_custom', { + view_id: this.view.fields_view.view_id, + reset: true + }, this.do_reload); + }, on_add_widget: function() { }, on_change_layout: function() { @@ -112,7 +119,7 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ view_id: this.view.fields_view.view_id, arch: arch }, function() { - self.$element.find('.oe-dashboard-link-undo').show(); + self.$element.find('.oe-dashboard-link-undo, .oe-dashboard-link-reset').show(); }); }, on_load_action: function(result) { diff --git a/addons/base_dashboard/static/src/xml/base_dashboard.xml b/addons/base_dashboard/static/src/xml/base_dashboard.xml index 9c43be6996c..fbe34a3892b 100644 --- a/addons/base_dashboard/static/src/xml/base_dashboard.xml +++ b/addons/base_dashboard/static/src/xml/base_dashboard.xml @@ -1,6 +1,10 @@