From 3b4e3bdac63578d0c7a85cb90b3eb165351e1432 Mon Sep 17 00:00:00 2001 From: "odo@tinyerp.com" <> Date: Thu, 12 May 2011 12:00:38 +0200 Subject: [PATCH 01/74] [FIX] solve cache problem when unlink ir.model.data bzr revid: tfr@openerp.com-20110512100038-hng80ug44afq8fr7 --- openerp/addons/base/ir/ir_model.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 0c3cd46356f..93ce7219c07 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -629,6 +629,13 @@ class ir_model_data(osv.osv): except: id = False return id + + def unlink(self, cr, uid, ids, context=None): + ref_ids = self.browse(cr, uid, ids, context=context) + for ref_id in ref_ids: + self._get_id.clear_cache(cr.dbname, uid, ref_id.module, ref_id.name) + self.get_object_reference.clear_cache(cr.dbname, uid, ref_id.module, ref_id.name) + super(ir_model_data,self).unlink(cr, uid, ids, context=context) def _update(self,cr, uid, model, module, values, xml_id=False, store=True, noupdate=False, mode='init', res_id=False, context=None): model_obj = self.pool.get(model) From 58f5dfe47cb0be00668acaf2f28f7c5284fd3a8a Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" Date: Wed, 18 May 2011 18:11:50 +0530 Subject: [PATCH 02/74] [FIX]:filtering does not support hierarchy lp bug: https://launchpad.net/bugs/740799 fixed bzr revid: nch@tinyerp.com-20110518124150-otgbcv1lw2bqakro --- openerp/osv/expression.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py index 1922d5e8388..c7a5f13b6a9 100644 --- a/openerp/osv/expression.py +++ b/openerp/osv/expression.py @@ -229,9 +229,9 @@ class expression(object): #FIXME if operator == 'child_of': if isinstance(right, basestring): - ids2 = [x[0] for x in field_obj.name_search(cr, uid, right, [], 'like', context=context, limit=None)] + ids2 = [x[0] for x in field_obj.name_search(cr, uid, right, [], 'ilike', context=context, limit=None)] else: - ids2 = list(right) + ids2 = [right] def _rec_convert(ids): if field_obj == table: @@ -292,12 +292,12 @@ class expression(object): else: def _get_expression(field_obj,cr, uid, left, right, operator, context=None): if context is None: - context = {} + context = {} c = context.copy() c['active_test'] = False #Special treatment to ill-formed domains operator = ( operator in ['<','>','<=','>='] ) and 'in' or operator - + dict_op = {'not in':'!=','in':'=','=':'in','!=':'not in','<>':'not in'} if isinstance(right,tuple): right = list(right) @@ -319,7 +319,7 @@ class expression(object): elif isinstance(right,(list,tuple)): m2o_str = True for ele in right: - if not isinstance(ele, basestring): + if not isinstance(ele, basestring): m2o_str = False break elif right == []: @@ -335,7 +335,7 @@ class expression(object): new_op = '!=' #Is it ok to put 'left' and not 'id' ? self.__exp[i] = (left,new_op,False) - + if m2o_str: self.__exp[i] = _get_expression(field_obj,cr, uid, left, right, operator, context=context) else: From 82b215c5831596b4de133f6d000094e08ae29e0c Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Fri, 20 May 2011 10:48:28 +0200 Subject: [PATCH 03/74] [FIX] ir.model.data: add missing return statement, would cause marshalling errors in XMLRPC bzr revid: odo@openerp.com-20110520084828-fre96mfaocmynmtb --- openerp/addons/base/ir/ir_model.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 93ce7219c07..45e5a138c73 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -629,13 +629,13 @@ class ir_model_data(osv.osv): except: id = False return id - + def unlink(self, cr, uid, ids, context=None): ref_ids = self.browse(cr, uid, ids, context=context) for ref_id in ref_ids: self._get_id.clear_cache(cr.dbname, uid, ref_id.module, ref_id.name) self.get_object_reference.clear_cache(cr.dbname, uid, ref_id.module, ref_id.name) - super(ir_model_data,self).unlink(cr, uid, ids, context=context) + return super(ir_model_data,self).unlink(cr, uid, ids, context=context) def _update(self,cr, uid, model, module, values, xml_id=False, store=True, noupdate=False, mode='init', res_id=False, context=None): model_obj = self.pool.get(model) From fe474b6d45c044ba0eae4a715d308fe8418827b0 Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" Date: Thu, 26 May 2011 14:58:53 +0530 Subject: [PATCH 04/74] [FIX,REF]:does not support hierarchy:M2O,O2M,M2M also refactored the code bzr revid: nch@tinyerp.com-20110526092853-h9x0z5qnc73n1qc6 --- openerp/osv/expression.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py index c7a5f13b6a9..a9c9943687a 100644 --- a/openerp/osv/expression.py +++ b/openerp/osv/expression.py @@ -105,6 +105,14 @@ class expression(object): return ids + rg(ids2, table, parent) return [(left, 'in', rg(ids, table, parent or table._parent_name))] + def get_child_of_result(value): + if isinstance(value, basestring): + return [x[0] for x in field_obj.name_search(cr, uid, value, [], 'ilike', context=context, limit=None)] + elif isinstance(value, (int, long)): + return list([value]) + else: + return list(value) + self.__main_table = table self.__all_tables.add(table) @@ -181,10 +189,7 @@ class expression(object): elif field._type == 'one2many': # Applying recursivity on field(one2many) if operator == 'child_of': - if isinstance(right, basestring): - ids2 = [x[0] for x in field_obj.name_search(cr, uid, right, [], 'like', context=context, limit=None)] - else: - ids2 = list(right) + ids2 = get_child_of_result(right) if field._obj != working_table._name: dom = _rec_get(ids2, field_obj, left=left, prefix=field._obj) else: @@ -228,11 +233,7 @@ class expression(object): elif field._type == 'many2many': #FIXME if operator == 'child_of': - if isinstance(right, basestring): - ids2 = [x[0] for x in field_obj.name_search(cr, uid, right, [], 'ilike', context=context, limit=None)] - else: - ids2 = [right] - + ids2 = get_child_of_result(right) def _rec_convert(ids): if field_obj == table: return ids @@ -276,13 +277,7 @@ class expression(object): elif field._type == 'many2one': if operator == 'child_of': - if isinstance(right, basestring): - ids2 = [x[0] for x in field_obj.name_search(cr, uid, right, [], 'like', limit=None)] - elif isinstance(right, (int, long)): - ids2 = list([right]) - else: - ids2 = list(right) - + ids2 = get_child_of_result(right) self.__operator = 'in' if field._obj != working_table._name: dom = _rec_get(ids2, field_obj, left=left, prefix=field._obj) From a6b1964813fba671df730d08fc9ef7a9748f5e9f Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" Date: Fri, 27 May 2011 11:17:51 +0530 Subject: [PATCH 05/74] [IMP]:added .yml test cases for hierarchical search bzr revid: nch@tinyerp.com-20110527054751-pcvlts8vu17doyv9 --- .../addons/base/test/test_osv_expression.yml | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/openerp/addons/base/test/test_osv_expression.yml b/openerp/addons/base/test/test_osv_expression.yml index 4916fe06203..6ee5d06e2fd 100644 --- a/openerp/addons/base/test/test_osv_expression.yml +++ b/openerp/addons/base/test/test_osv_expression.yml @@ -1,3 +1,23 @@ +- + Testing for hierarchical search in M2M +- + !python {model: res.partner }: | + ids = self.search(cr, uid, [('category_id', 'child_of','supplier')]) + assert len(ids) >= 1, ids + +- + Test hierarchical search in M2M with child ID1 +- + !python {model: res.partner }: | + ids = self.search(cr, uid, [('category_id', 'child_of','Components Supplier')]) + assert len(ids) >= 1, ids +- + Test hierarchical search in M2M with child ID2 +- + !python {model: res.partner }: | + ids = self.search(cr, uid, [('category_id', 'child_of','Miscellaneous Suppliers')]) + assert len(ids) >= 1, ids + - Testing that some domain expressions work - @@ -40,7 +60,7 @@ - !assert {model: res.partner, search: "[('category_id', '=', False)]"}: - category_id in (False, None, []) -- +- Filtering on invalid value across x2many relationship should return an empty set - !assert {model: res.partner, search: "[('address.city','=','foo')]", count: 0, string: "Searching for address.city = foo should give empty results"} From 107bd89aea98c29c17292ad120458e8f3f03b083 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 31 May 2011 11:21:33 +0200 Subject: [PATCH 06/74] [IMP] convert: remove now useless call to ir.model.data._unlink for unlinked records. bzr revid: odo@openerp.com-20110531092133-rbobo5g4rmk1o8j7 --- openerp/tools/convert.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openerp/tools/convert.py b/openerp/tools/convert.py index 5536f311eb8..dd3a3d4a285 100644 --- a/openerp/tools/convert.py +++ b/openerp/tools/convert.py @@ -301,13 +301,11 @@ form: module.record_id""" % (xml_id,) pass if ids: self.pool.get(d_model).unlink(cr, self.uid, ids) - self.pool.get('ir.model.data')._unlink(cr, self.uid, d_model, ids) def _remove_ir_values(self, cr, name, value, model): ir_value_ids = self.pool.get('ir.values').search(cr, self.uid, [('name','=',name),('value','=',value),('model','=',model)]) if ir_value_ids: self.pool.get('ir.values').unlink(cr, self.uid, ir_value_ids) - self.pool.get('ir.model.data')._unlink(cr, self.uid, 'ir.values', ir_value_ids) return True From f6f4618fb069d4b35d48bc79ef556ea4ebedf46a Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 31 May 2011 11:22:32 +0200 Subject: [PATCH 07/74] [IMP] orm: minor typo and improvement in handling of ir.model.data during unlink() bzr revid: odo@openerp.com-20110531092232-pyt85iw2q7bf6qp1 --- openerp/osv/orm.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 2edb0f8c824..1d9cbe36ee8 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -3237,9 +3237,10 @@ class orm(orm_template): # Removing the ir_model_data reference if the record being deleted is a record created by xml/csv file, # as these are not connected with real database foreign keys, and would be dangling references. # Step 1. Calling unlink of ir_model_data only for the affected IDS. - referenced_ids = pool_model_data.search(cr, uid, [('res_id','in',list(sub_ids)),('model','=',self._name)], context=context) + reference_ids = pool_model_data.search(cr, uid, [('res_id','in',list(sub_ids)),('model','=',self._name)], context=context) # Step 2. Marching towards the real deletion of referenced records - pool_model_data.unlink(cr, uid, referenced_ids, context=context) + if reference_ids: + pool_model_data.unlink(cr, uid, reference_ids, context=context) # For the same reason, removing the record relevant to ir_values ir_value_ids = pool_ir_values.search(cr, uid, From b96c79147f21c7eea5f593b67fceb60e0e970d40 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 31 May 2011 11:24:26 +0200 Subject: [PATCH 08/74] [IMP] ir.model.data: remove obsolete _unlink() and unlink_mark, and their references Now all deletions in ir.model.data are automatically handled by ORM during the regular call to orm.unlink(). No need for any manual care. bzr revid: odo@openerp.com-20110531092426-ehvzf3dw6urqsdov --- openerp/addons/base/ir/ir_model.py | 42 +++++++++--------------------- 1 file changed, 13 insertions(+), 29 deletions(-) diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 45e5a138c73..772163b9717 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -581,7 +581,6 @@ class ir_model_data(osv.osv): def __init__(self, pool, cr): osv.osv.__init__(self, pool, cr) self.doinit = True - self.unlink_mark = {} # also stored in pool to avoid being discarded along with this osv instance if getattr(pool, 'model_data_reference_ids', None) is None: @@ -727,11 +726,12 @@ class ir_model_data(osv.osv): table.replace('.', '_'))] = (table, inherit_id) return res_id - def _unlink(self, cr, uid, model, res_ids): - for res_id in res_ids: - self.unlink_mark[(model, res_id)] = False - cr.execute('delete from ir_model_data where res_id=%s and model=%s', (res_id, model)) - return True + def unlink(self, cr, uid, ids, context=None): + ref_ids = self.browse(cr, uid, ids, context=context) + for ref_id in ref_ids: + self._get_id.clear_cache(cr.dbname, uid, ref_id.module, ref_id.name) + self.get_object_reference.clear_cache(cr.dbname, uid, ref_id.module, ref_id.name) + super(ir_model_data,self).unlink(cr, uid, ids, context=context) def ir_set(self, cr, uid, key, key2, name, models, value, replace=True, isobject=False, meta=None, xml_id=False): if type(models[0])==type([]) or type(models[0])==type(()): @@ -765,9 +765,10 @@ class ir_model_data(osv.osv): module_in = ",".join(["%s"] * len(modules)) cr.execute('select id,name,model,res_id,module from ir_model_data where module IN (' + module_in + ') and noupdate=%s', modules + [False]) wkf_todo = [] + to_unlink = [] for (id, name, model, res_id,module) in cr.fetchall(): if (module,name) not in self.loads: - self.unlink_mark[(model,res_id)] = id + to_unlink.append((model,res_id)) if model=='workflow.activity': cr.execute('select res_type,res_id from wkf_instance where id IN (select inst_id from wkf_workitem where act_id=%s)', (res_id,)) wkf_todo.extend(cr.fetchall()) @@ -780,36 +781,19 @@ class ir_model_data(osv.osv): cr.commit() if not config.get('import_partial'): - for (model, res_id) in self.unlink_mark.keys(): + for (model, res_id) in to_unlink: if self.pool.get(model): self.__logger.info('Deleting %s@%s', res_id, model) try: self.pool.get(model).unlink(cr, uid, [res_id]) - if id: - ids = self.search(cr, uid, [('res_id','=',res_id), - ('model','=',model)]) - self.__logger.debug('=> Deleting %s: %s', - self._name, ids) - if len(ids) > 1 and \ - self.__logger.isEnabledFor(logging.WARNING): - self.__logger.warn( - 'Got %d %s for (%s, %d): %s', - len(ids), self._name, model, res_id, - map(itemgetter('module','name'), - self.read(cr, uid, ids, - ['name', 'module']))) - self.unlink(cr, uid, ids) - cr.execute( - 'DELETE FROM ir_values WHERE value=%s', - ('%s,%s'%(model, res_id),)) cr.commit() except Exception: cr.rollback() self.__logger.warn( - 'Could not delete id: %d of model %s\nThere ' - 'should be some relation that points to this ' - 'resource\nYou should manually fix this and ' - 'restart with --update=module', res_id, model) + 'Could not delete obsolete record with id: %d of model %s\n' + 'There should be some relation that points to this resource\n' + 'You should manually fix this and restart with --update=module', + res_id, model) return True ir_model_data() From 946730f4390919c3e618a24f24cdc30071d13108 Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" Date: Wed, 8 Jun 2011 10:56:03 +0530 Subject: [PATCH 09/74] [IMP]:naming convention and added test for id,ids bzr revid: nch@tinyerp.com-20110608052603-ya0u4ep0yt4h13jy --- .../addons/base/test/test_osv_expression.yml | 30 +++++++++++++++++++ openerp/osv/expression.py | 10 +++---- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/openerp/addons/base/test/test_osv_expression.yml b/openerp/addons/base/test/test_osv_expression.yml index 6ee5d06e2fd..3547dda987e 100644 --- a/openerp/addons/base/test/test_osv_expression.yml +++ b/openerp/addons/base/test/test_osv_expression.yml @@ -18,6 +18,36 @@ ids = self.search(cr, uid, [('category_id', 'child_of','Miscellaneous Suppliers')]) assert len(ids) >= 1, ids +- + "1.0 Setup test partner categories: parent root" +- + !record {model: res.partner.category, id: categ_root}: + name: Root category +- + "1.1 Setup test partner categories: parent category" +- + !record {model: res.partner.category, id: categ_0}: + name: Parent category + parent_id: categ_root +- + "1.2 Setup test partner categories: child 1" +- + !record {model: res.partner.category, id: categ_1}: + name: Child 1 + parent_id: categ_0 +- + Test hierarchical search in M2M with child ID +- + !python {model: res.partner.category }: | + ids = self.search(cr, uid, [('id', 'child_of',[ref('categ_root')])]) + assert len(ids) >= 1, ids +- + Test hierarchical search in M2M with child IDs +- + !python {model: res.partner.category }: | + ids = self.search(cr, uid, [('id', 'child_of',[ref('categ_root'), ref('categ_0')])]) + assert len(ids) >= 1, ids + - Testing that some domain expressions work - diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py index a9c9943687a..69dcd549c4d 100644 --- a/openerp/osv/expression.py +++ b/openerp/osv/expression.py @@ -105,11 +105,11 @@ class expression(object): return ids + rg(ids2, table, parent) return [(left, 'in', rg(ids, table, parent or table._parent_name))] - def get_child_of_result(value): + def child_of_right_to_ids(value): if isinstance(value, basestring): return [x[0] for x in field_obj.name_search(cr, uid, value, [], 'ilike', context=context, limit=None)] elif isinstance(value, (int, long)): - return list([value]) + return [value] else: return list(value) @@ -189,7 +189,7 @@ class expression(object): elif field._type == 'one2many': # Applying recursivity on field(one2many) if operator == 'child_of': - ids2 = get_child_of_result(right) + ids2 = child_of_right_to_ids(right) if field._obj != working_table._name: dom = _rec_get(ids2, field_obj, left=left, prefix=field._obj) else: @@ -233,7 +233,7 @@ class expression(object): elif field._type == 'many2many': #FIXME if operator == 'child_of': - ids2 = get_child_of_result(right) + ids2 = child_of_right_to_ids(right) def _rec_convert(ids): if field_obj == table: return ids @@ -277,7 +277,7 @@ class expression(object): elif field._type == 'many2one': if operator == 'child_of': - ids2 = get_child_of_result(right) + ids2 = child_of_right_to_ids(right) self.__operator = 'in' if field._obj != working_table._name: dom = _rec_get(ids2, field_obj, left=left, prefix=field._obj) From e0f94944ad5106cb3e01fe0bd6005515f3bad4b4 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 20 Jun 2011 13:06:39 +0200 Subject: [PATCH 10/74] [REM] Removed bin_size forcing on client bzr revid: fme@openerp.com-20110620110639-f68rfumcza1lbzvn --- addons/base/static/src/js/chrome.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 42a314f4316..84aa4acc325 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -334,9 +334,6 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b // Construct a JSON-RPC2 request, method is currently unused params.session_id = this.session_id; params.context = typeof(params.context) != "undefined" ? params.context : this.context; - if (!params.context.bin_size) { - params.context.bin_size = true; - } // Use a default error handler unless defined error_callback = typeof(error_callback) != "undefined" ? error_callback : this.on_rpc_error; From d7b930e79154b09480998d41cef25e8a77364e8e Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 20 Jun 2011 16:43:48 +0200 Subject: [PATCH 11/74] [FIX] Fixed & refactored form in on_ui_change(), validate() is called first. set_value_from_ui() is only called if field is valid datetimepicker wrongly trigger on_change event when using 'setDate' method openerp on_changes were using widget.value instead of wiget.get_value() thus breaking relational fields on_changes bzr revid: fme@openerp.com-20110620144348-cuuubj3e5acx82zr --- addons/base/static/src/js/form.js | 109 +++++++++++++++--------------- 1 file changed, 53 insertions(+), 56 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 42041f1b024..7398732e1d2 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -89,9 +89,6 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV var field = this.fields[f]; field.touched = false; field.set_value(this.datarecord[f] || false); - // TODO: here we should be able to alter the 'touched' state when setting value - // the following line will be removed by fme as soon as refactoring has been done - field.touched = false; field.validate(); } if (!record.id) { @@ -163,7 +160,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV if (field in argument_replacement) { args.push(argument_replacement[field]); } else if (self.fields[field]) { - var value = self.fields[field].value; + var value = self.fields[field].get_value(); args.push(value == null ? false : value); } else { args.push(false); @@ -194,7 +191,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV if (field) { var value = result.value[f]; processed.push(field.name); - if (field.value != value) { + if (field.get_value() != value) { field.set_value(value); if (_.indexOf(processed, field.name) < 0) { this.do_onchange(field, processed); @@ -694,11 +691,16 @@ openerp.base.form.Field = openerp.base.form.Widget.extend({ }, on_ui_change: function() { this.touched = this.view.touched = true; - this.set_value_from_ui(); this.validate(); - this.view.on_form_changed(this); + if (!this.invalid) { + this.set_value_from_ui(); + this.view.on_form_changed(this); + } else { + this.update_dom(); + } }, validate: function() { + this.invalid = false; } }); @@ -725,10 +727,11 @@ openerp.base.form.FieldChar = openerp.base.form.Field.extend({ }, validate: function() { this.invalid = false; - if (this.value === false || this.value === "") { + var value = this.$element.find('input').val(); + if (value === "") { this.invalid = this.required; } else if (this.validation_regex) { - this.invalid = !this.validation_regex.test(this.value); + this.invalid = !this.validation_regex.test(value); } } }); @@ -781,23 +784,16 @@ openerp.base.form.FieldFloat = openerp.base.form.FieldChar.extend({ this.validation_regex = /^-?\d+(\.\d+)?$/; }, set_value: function(value) { - if (!value) { + this._super.apply(this, [value]); + if (value === false || value === undefined) { // As in GTK client, floats default to 0 - this.touched = this.view.touched = true; value = 0; } - this._super.apply(this, [value]); var show_value = value.toFixed(2); this.$element.find('input').val(show_value); }, set_value_from_ui: function() { - this.value = this.$element.find('input').val().replace(/,/g, '.'); - }, - validate: function() { - this._super.apply(this, arguments); - if (!this.invalid) { - this.value = Number(this.value); - } + this.value = Number(this.$element.find('input').val().replace(/,/g, '.')); } }); @@ -819,8 +815,10 @@ openerp.base.form.FieldDatetime = openerp.base.form.Field.extend({ if (value == null || value == false) { this.$element.find('input').val(''); } else { - this.value = this.parse(value); - this.$element.find('input')[this.jqueryui_object]('setDate', this.value); + this.$element.find('input').unbind('change'); + // jQuery UI date picker wrongly call on_change event herebelow + this.$element.find('input')[this.jqueryui_object]('setDate', this.parse(value)); + this.$element.find('input').change(this.on_ui_change); } }, set_value_from_ui: function() { @@ -830,7 +828,7 @@ openerp.base.form.FieldDatetime = openerp.base.form.Field.extend({ } }, validate: function() { - this.invalid = this.required && this.value === false; + this.invalid = this.required && this.$element.find('input')[this.jqueryui_object]('getDate') === ''; }, parse: openerp.base.parse_datetime, format: openerp.base.format_datetime @@ -851,19 +849,17 @@ openerp.base.form.FieldFloatTime = openerp.base.form.FieldChar.extend({ this.validation_regex = /^\d+:\d+$/; }, set_value: function(value) { - value = value || 0; this._super.apply(this, [value]); + if (value === false || value === undefined) { + // As in GTK client, floats default to 0 + value = 0; + } var show_value = _.sprintf("%02d:%02d", Math.floor(value), Math.round((value % 1) * 60)); this.$element.find('input').val(show_value); }, - validate: function() { - if (typeof(this.value) == "string") { - this._super.apply(this, arguments); - if (!this.invalid) { - var time = this.value.split(':'); - this.set_value(parseInt(time[0], 10) + parseInt(time[1], 10) / 60); - } - } + set_value_from_ui: function() { + var time = this.$element.find('input').val().split(':'); + this.set_value(parseInt(time[0], 10) + parseInt(time[1], 10) / 60); } }); @@ -891,10 +887,11 @@ openerp.base.form.FieldText = openerp.base.form.Field.extend({ }, validate: function() { this.invalid = false; - if (this.value === false || this.value === "") { + var value = this.$element.find('textarea').val(); + if (value === "") { this.invalid = this.required; } else if (this.validation_regex) { - this.invalid = !this.validation_regex.test(this.value); + this.invalid = !this.validation_regex.test(value); } } }); @@ -925,7 +922,7 @@ openerp.base.form.FieldBoolean = openerp.base.form.Field.extend({ this.$element.find('input').attr('disabled', this.readonly); }, validate: function() { - this.invalid = this.required && !this.value; + this.invalid = this.required && !this.$element.find('input').is(':checked'); } }); @@ -980,22 +977,22 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({ this.$element.find('select').attr('disabled', this.readonly); }, validate: function() { - this.invalid = this.required && this.value === ""; + this.invalid = this.required && this.$element.find('select').val() === ""; } }); // jquery autocomplete tweak to allow html -(function(x) { +(function() { var proto = $.ui.autocomplete.prototype, initSource = proto._initSource; - + function filter( array, term ) { var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" ); return $.grep( array, function(value) { return matcher.test( $( "
" ).html( value.label || value.value || value ).text() ); }); } - + $.extend( proto, { _initSource: function() { if ( this.options.html && $.isArray(this.options.source) ) { @@ -1006,7 +1003,7 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({ initSource.call( this ); } }, - + _renderItem: function( ul, item) { return $( "
  • " ) .data( "item.autocomplete", item ) @@ -1014,7 +1011,7 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({ .appendTo( ul ); } }); -})(null); +})(); /** * Builds a new context usable for operations related to fields by merging @@ -1043,7 +1040,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ this.$input = this.$element.find("input"); this.$drop_down = this.$element.find(".oe-m2o-drop-down-button"); this.$menu_btn = this.$element.find(".oe-m2o-cm-button"); - + // context menu var bindings = {}; bindings[this.cm_id + "_search"] = function() { @@ -1078,7 +1075,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ return true; } }); - + // some behavior for input this.$input.keyup(function() { if (self.$input.val() === "") { @@ -1111,7 +1108,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ } } this.$input.focusout(anyoneLoosesFocus); - + // autocomplete this.$input.autocomplete({ source: function(req, resp) { self.get_search_result(req, resp); }, @@ -1138,9 +1135,9 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ get_search_result: function(request, response) { var search_val = request.term; var self = this; - + var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []); - + dataset.name_search([search_val, self.field.domain || [], 'ilike', build_relation_context(self), this.limit + 1], function(data) { self.last_search = data.result; @@ -1148,7 +1145,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ var values = _.map(data.result, function(x) { return {label: $('').text(x[1]).html(), name:x[1], id:x[0]}; }); - + // search more... if more results that max if (values.length > self.limit) { values = values.slice(0, self.limit); @@ -1175,7 +1172,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ self._change_int_value(null); self._search_create_popup("form"); }}); - + response(values); }); }, @@ -1247,16 +1244,16 @@ openerp.base.form.FieldOne2Many = 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.dataset.set_ids(_.without.apply(_, [self.dataset.ids].concat(ids))); self.on_ui_change(); self.reload_current_view(); }); - + var modes = this.node.attrs.mode; modes = !!modes ? modes.split(",") : ["tree", "form"]; var views = []; @@ -1272,7 +1269,7 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ views.push(view); }); this.views = views; - + this.viewmanager = new openerp.base.ViewManager(this.view.session, this.element_id, this.dataset, views); var reg = new openerp.base.Registry(); @@ -1280,7 +1277,7 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ reg.add("graph", openerp.base.views.map["graph"]); reg.add("list", "openerp.base.form.One2ManyListView"); this.viewmanager.registry = reg; - + this.viewmanager.on_controller_inited.add_last(function(view_type, controller) { if (view_type == "list") { controller.o2m = self; @@ -1290,7 +1287,7 @@ 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() { if (modes[0] == "tree") { var view = self.viewmanager.views[self.viewmanager.active_view].controller; @@ -1348,14 +1345,14 @@ 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(); }); From b93c638d5e547a9cdada1a411dce6937f83db13a Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 20 Jun 2011 16:47:46 +0200 Subject: [PATCH 12/74] [ADD] Added Export class skelton bzr revid: fme@openerp.com-20110620144746-xwa5ggosfgkjmewb --- addons/base/static/src/js/views.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 8fba7eb6c4c..4217031a7e3 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -362,6 +362,25 @@ openerp.base.Sidebar = openerp.base.BaseWidget.extend({ openerp.base.NullSidebar = openerp.base.generate_null_object_class(openerp.base.Sidebar); +openerp.base.Export = openerp.base.Dialog.extend({ + dialog_title: "Export", + template: 'ExportDialog', + identifier_prefix: 'export_dialog', + init: function (session, model, domain) { + this._super(); + }, + start: function () { + this._super(); + this.$element.html(this.render()); + }, + on_button_Export: function() { + console.log("Export") + }, + on_button_Cancel: function() { + this.$element.dialog("close"); + } +}); + openerp.base.View = openerp.base.Controller.extend({ /** * Fetches and executes the action identified by ``action_data``. From f4c96f15941bd87296f27974c970a2a2920f4e5f Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 20 Jun 2011 20:25:49 +0200 Subject: [PATCH 13/74] [ADD] Added default_focus support for fields bzr revid: fme@openerp.com-20110620182549-avpdb4ohdlhauwvm --- addons/base/static/src/js/form.js | 39 +++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 7398732e1d2..9bbbfda3346 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -33,6 +33,8 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.show_invalid = true; this.touched = false; this.flags = this.view_manager.flags || {}; + this.default_focus_field = null; + this.default_focus_button = null; this.registry = openerp.base.form.widgets; this.has_been_loaded = $.Deferred(); }, @@ -106,6 +108,9 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV } this.do_update_pager(record.id == null); this.do_update_sidebar(); + if (this.default_focus_field) { + this.default_focus_field.focus(); + } }, on_form_changed: function(widget) { if (widget && widget.node.attrs.on_change) { @@ -537,10 +542,15 @@ openerp.base.form.WidgetFrame = openerp.base.form.Widget.extend({ var type = this.view.fields_view.fields[node.attrs.name] || {}; var widget_type = node.attrs.widget || type.type || node.tag; var widget = new (this.view.registry.get_object(widget_type)) (this.view, node); - if (node.tag == 'field' && node.attrs.nolabel != '1') { - var label = new (this.view.registry.get_object('label')) (this.view, node); - label["for"] = widget; - this.add_widget(label); + if (node.tag == 'field') { + if (node.attrs.default_focus == '1') { + this.view.default_focus_field = widget; + } + if (node.attrs.nolabel != '1') { + var label = new (this.view.registry.get_object('label')) (this.view, node); + label["for"] = widget; + this.add_widget(label); + } } this.add_widget(widget); }, @@ -585,6 +595,10 @@ openerp.base.form.WidgetButton = openerp.base.form.Widget.extend({ init: function(view, node) { this._super(view, node); this.template = "WidgetButton"; + if (node.attrs.default_focus == '1') { + // TODO fme: provide enter key binding to widgets + this.view.default_focus_button = this; + } }, start: function() { this._super.apply(this, arguments); @@ -701,6 +715,8 @@ openerp.base.form.Field = openerp.base.form.Widget.extend({ }, validate: function() { this.invalid = false; + }, + focus: function() { } }); @@ -733,6 +749,9 @@ openerp.base.form.FieldChar = openerp.base.form.Field.extend({ } else if (this.validation_regex) { this.invalid = !this.validation_regex.test(value); } + }, + focus: function() { + this.$element.find('input').focus(); } }); @@ -830,6 +849,9 @@ openerp.base.form.FieldDatetime = openerp.base.form.Field.extend({ validate: function() { this.invalid = this.required && this.$element.find('input')[this.jqueryui_object]('getDate') === ''; }, + focus: function() { + this.$element.find('input').focus(); + }, parse: openerp.base.parse_datetime, format: openerp.base.format_datetime }); @@ -893,6 +915,9 @@ openerp.base.form.FieldText = openerp.base.form.Field.extend({ } else if (this.validation_regex) { this.invalid = !this.validation_regex.test(value); } + }, + focus: function() { + this.$element.find('textarea').focus(); } }); @@ -923,6 +948,9 @@ openerp.base.form.FieldBoolean = openerp.base.form.Field.extend({ }, validate: function() { this.invalid = this.required && !this.$element.find('input').is(':checked'); + }, + focus: function() { + this.$element.find('input').focus(); } }); @@ -978,6 +1006,9 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({ }, validate: function() { this.invalid = this.required && this.$element.find('select').val() === ""; + }, + focus: function() { + this.$element.find('select').focus(); } }); From d01e7d033ccbe8cf37a10a7edd3b1db3da36f1c4 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 20 Jun 2011 20:26:41 +0200 Subject: [PATCH 14/74] [FIX] Create new record in form view when dataset index is 0 and has empty ids list. This fixes problems for wizards and when switching to form view when dataset is empty bzr revid: fme@openerp.com-20110620182641-u5vmyb5za7wvpefq --- addons/base/static/src/js/form.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 9bbbfda3346..90357325928 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -72,8 +72,9 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV do_show: function () { var self = this; self.$element.show(); - if (this.dataset.index === null) { + if (this.dataset.index === null || (this.dataset.index === 0 && this.dataset.ids.length == 0)) { // null index means we should start a new record + // 0 index with empty ids means we called the form with empty dataset (wizards, switched to form from empty list, ...) this.on_button_new(); } else { this.dataset.read_index(_.keys(this.fields_view.fields), this.on_record_loaded); From 154ee1ca4d436d518c8e19bda8831587a3fd2dcf Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Tue, 21 Jun 2011 04:37:25 +0000 Subject: [PATCH 15/74] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20110621043725-4i5mlfx0gnvi6ih8 --- addons/base_calendar/i18n/tr.po | 542 ++++++++------- addons/caldav/i18n/tr.po | 42 +- addons/claim_from_delivery/i18n/fi.po | 33 + addons/crm/i18n/tr.po | 13 +- addons/document_ftp/i18n/tr.po | 141 ++++ addons/l10n_syscohada/i18n/fr.po | 200 ++++++ addons/mail_gateway/i18n/fi.po | 360 ++++++++++ addons/outlook/i18n/fi.po | 147 ++++ addons/pad/i18n/fi.po | 77 +++ addons/procurement/i18n/fi.po | 899 +++++++++++++++++++++++++ addons/product_manufacturer/i18n/fi.po | 87 +++ addons/purchase_requisition/i18n/fi.po | 418 ++++++++++++ addons/resource/i18n/fi.po | 348 ++++++++++ 13 files changed, 3023 insertions(+), 284 deletions(-) create mode 100644 addons/claim_from_delivery/i18n/fi.po create mode 100644 addons/document_ftp/i18n/tr.po create mode 100644 addons/l10n_syscohada/i18n/fr.po create mode 100644 addons/mail_gateway/i18n/fi.po create mode 100644 addons/outlook/i18n/fi.po create mode 100644 addons/pad/i18n/fi.po create mode 100644 addons/procurement/i18n/fi.po create mode 100644 addons/product_manufacturer/i18n/fi.po create mode 100644 addons/purchase_requisition/i18n/fi.po create mode 100644 addons/resource/i18n/fi.po diff --git a/addons/base_calendar/i18n/tr.po b/addons/base_calendar/i18n/tr.po index 2237e4ba73f..2f343554c2f 100644 --- a/addons/base_calendar/i18n/tr.po +++ b/addons/base_calendar/i18n/tr.po @@ -8,20 +8,20 @@ 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-04-23 18:46+0000\n" +"PO-Revision-Date: 2011-06-20 20:46+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-04-29 05:50+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: base_calendar #: selection:calendar.alarm,trigger_related:0 #: selection:res.alarm,trigger_related:0 msgid "The event starts" -msgstr "Olay Başlar" +msgstr "Etkinlik Başlar" #. module: base_calendar #: selection:base.calendar.set.exrule,freq:0 @@ -31,7 +31,7 @@ msgstr "Saatlik" #. module: base_calendar #: view:calendar.attendee:0 msgid "Required to Join" -msgstr "Katılmak gerekir" +msgstr "Katılım Gerekir" #. module: base_calendar #: help:calendar.event,exdate:0 @@ -46,19 +46,19 @@ msgstr "" #. module: base_calendar #: constraint:res.users:0 msgid "The chosen company is not in the allowed companies for this user" -msgstr "" +msgstr "Seçilen firma bu kullanıcı için izin verilen şirketler arasında yok" #. module: base_calendar #: field:calendar.event.edit.all,name:0 msgid "Title" -msgstr "Başlık" +msgstr "Unvan" #. module: base_calendar #: selection:base.calendar.set.exrule,freq:0 #: selection:calendar.event,rrule_type:0 #: selection:calendar.todo,rrule_type:0 msgid "Monthly" -msgstr "" +msgstr "Aylık" #. module: base_calendar #: view:calendar.attendee:0 @@ -68,7 +68,7 @@ msgstr "Davetli Kullanıcı" #. module: base_calendar #: view:calendar.attendee:0 msgid "Invitation" -msgstr "" +msgstr "Davet" #. module: base_calendar #: help:calendar.event,recurrency:0 @@ -80,20 +80,20 @@ msgstr "Yinelenen Toplantı" #: model:ir.actions.act_window,name:base_calendar.action_res_alarm_view #: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_avail_alarm msgid "Alarms" -msgstr "" +msgstr "Alarmlar" #. module: base_calendar #: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 msgid "Sunday" -msgstr "" +msgstr "Pazar" #. module: base_calendar #: view:calendar.attendee:0 #: field:calendar.attendee,role:0 msgid "Role" -msgstr "" +msgstr "Rol" #. module: base_calendar #: view:calendar.attendee:0 @@ -106,13 +106,13 @@ msgstr "Davet Detayları" #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 msgid "Fourth" -msgstr "" +msgstr "Dördüncü" #. module: base_calendar #: field:calendar.event,show_as:0 #: field:calendar.todo,show_as:0 msgid "Show as" -msgstr "Farklı Göster" +msgstr "Göster" #. module: base_calendar #: field:base.calendar.set.exrule,day:0 @@ -122,13 +122,13 @@ msgstr "Farklı Göster" #: field:calendar.todo,day:0 #: selection:calendar.todo,select1:0 msgid "Date of month" -msgstr "" +msgstr "Ayın Günü" #. module: base_calendar #: selection:calendar.event,class:0 #: selection:calendar.todo,class:0 msgid "Public" -msgstr "Herkese açık" +msgstr "Genel" #. module: base_calendar #: view:calendar.event:0 @@ -140,33 +140,34 @@ msgstr " " #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "March" -msgstr "" +msgstr "Mart" #. module: base_calendar +#: code:addons/base_calendar/base_calendar.py:414 #: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:90 #, python-format msgid "Warning !" -msgstr "" +msgstr "Uyarı !" #. module: base_calendar #: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 msgid "Friday" -msgstr "" +msgstr "Cuma" #. module: base_calendar #: field:calendar.event,allday:0 #: field:calendar.todo,allday:0 msgid "All Day" -msgstr "" +msgstr "Tüm Gün" #. module: base_calendar #: field:base.calendar.set.exrule,select1:0 #: field:calendar.event,select1:0 #: field:calendar.todo,select1:0 msgid "Option" -msgstr "" +msgstr "Seçenek" #. module: base_calendar #: selection:calendar.attendee,availability:0 @@ -174,76 +175,76 @@ msgstr "" #: selection:calendar.todo,show_as:0 #: selection:res.users,availability:0 msgid "Free" -msgstr "" +msgstr "Serbest" #. module: base_calendar #: help:calendar.attendee,rsvp:0 msgid "Indicats whether the favor of a reply is requested" -msgstr "" +msgstr "Bir yanıtın onaylanmasının gerekip gerekmediğini belirtir." #. module: base_calendar #: model:ir.model,name:base_calendar.model_ir_attachment msgid "ir.attachment" -msgstr "" +msgstr "ir.ek" #. module: base_calendar #: help:calendar.attendee,delegated_to:0 msgid "The users that the original request was delegated to" -msgstr "" +msgstr "Kullanıcıların yetkilendirildiği asıl istek" #. module: base_calendar #: field:calendar.attendee,ref:0 msgid "Event Ref" -msgstr "" +msgstr "Etkinlik Ref" #. module: base_calendar #: field:base.calendar.set.exrule,we:0 #: field:calendar.event,we:0 #: field:calendar.todo,we:0 msgid "Wed" -msgstr "" +msgstr "Çar" #. module: base_calendar #: view:calendar.event:0 msgid "Show time as" -msgstr "" +msgstr "Saati şöyle göster" #. module: base_calendar #: field:base.calendar.set.exrule,tu:0 #: field:calendar.event,tu:0 #: field:calendar.todo,tu:0 msgid "Tue" -msgstr "" +msgstr "Sa" #. module: base_calendar #: selection:base.calendar.set.exrule,freq:0 #: selection:calendar.event,rrule_type:0 #: selection:calendar.todo,rrule_type:0 msgid "Yearly" -msgstr "" +msgstr "Yıllık" #. module: base_calendar #: selection:calendar.alarm,trigger_related:0 #: selection:res.alarm,trigger_related:0 msgid "The event ends" -msgstr "" +msgstr "Etkinlik biter" #. module: base_calendar #: selection:base.calendar.set.exrule,byday:0 #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 msgid "Last" -msgstr "" +msgstr "Sonuncu" #. module: base_calendar #: help:calendar.attendee,state:0 msgid "Status of the attendee's participation" -msgstr "" +msgstr "Katılımcının iştirak durumu" #. module: base_calendar #: selection:calendar.attendee,cutype:0 msgid "Room" -msgstr "" +msgstr "Oda" #. module: base_calendar #: selection:calendar.alarm,trigger_interval:0 @@ -251,83 +252,83 @@ msgstr "" #: selection:calendar.todo,freq:0 #: selection:res.alarm,trigger_interval:0 msgid "Days" -msgstr "" +msgstr "Günler" #. module: base_calendar #: view:calendar.attendee:0 #: view:calendar.event:0 msgid "Invitation Detail" -msgstr "" +msgstr "Davet Ayrıntısı" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1356 +#: code:addons/base_calendar/base_calendar.py:1355 #: code:addons/base_calendar/wizard/base_calendar_invite_attendee.py:96 #: code:addons/base_calendar/wizard/base_calendar_invite_attendee.py:143 #: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:128 #: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:136 #, python-format msgid "Error!" -msgstr "" +msgstr "Hata!" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "Chair Person" -msgstr "" +msgstr "Başkan" #. module: base_calendar #: selection:calendar.alarm,action:0 msgid "Procedure" -msgstr "" +msgstr "Yöntem" #. module: base_calendar #: selection:calendar.event,state:0 #: selection:calendar.todo,state:0 msgid "Cancelled" -msgstr "" +msgstr "Vazgeçildi" #. module: base_calendar #: selection:calendar.alarm,trigger_interval:0 #: selection:res.alarm,trigger_interval:0 msgid "Minutes" -msgstr "" +msgstr "Dakikalar" #. module: base_calendar #: selection:calendar.alarm,action:0 msgid "Display" -msgstr "" +msgstr "Göster" #. module: base_calendar #: view:calendar.event.edit.all:0 msgid "Edit all Occurrences" -msgstr "" +msgstr "Bütün olayları düzenle" #. module: base_calendar #: view:calendar.attendee:0 msgid "Invitation type" -msgstr "" +msgstr "Davet türü" #. module: base_calendar #: selection:base.calendar.set.exrule,freq:0 msgid "Secondly" -msgstr "" +msgstr "İkinci olarak" #. module: base_calendar #: field:calendar.alarm,event_date:0 #: field:calendar.attendee,event_date:0 #: view:calendar.event:0 msgid "Event Date" -msgstr "" +msgstr "Etkinlik Tarihi" #. module: base_calendar #: view:calendar.attendee:0 #: view:calendar.event:0 msgid "Group By..." -msgstr "" +msgstr "Gruplandır..." #. module: base_calendar #: help:base_calendar.invite.attendee,email:0 msgid "Provide external email address who will receive this invitation." -msgstr "" +msgstr "Bu daveti alacak olanın dış eposta adresini verin." #. module: base_calendar #: model:ir.module.module,description:base_calendar.module_meta_information @@ -338,42 +339,47 @@ msgid "" " - Recurring events\n" " - Invitations to people" msgstr "" +"Çok özellikli takvim sistemi şunları destekler:\n" +" - Takvim etkinlikleri\n" +" - Uyarılar (istekler oluşturun)\n" +" - Yinelenen etkinlikler\n" +" - Kişilerin davet edilmesi" #. module: base_calendar #: help:calendar.attendee,cutype:0 msgid "Specify the type of Invitation" -msgstr "" +msgstr "Davet türünü belirle" #. module: base_calendar #: selection:calendar.event,freq:0 #: selection:calendar.todo,freq:0 msgid "Years" -msgstr "" +msgstr "Yıl" #. module: base_calendar #: field:calendar.alarm,event_end_date:0 #: field:calendar.attendee,event_end_date:0 msgid "Event End Date" -msgstr "" +msgstr "Etkinlik Bitiş Tarihi" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "Optional Participation" -msgstr "" +msgstr "Seçime bağlı Katılım" #. module: base_calendar #: field:calendar.event,date_deadline:0 #: field:calendar.todo,date_deadline:0 msgid "Deadline" -msgstr "" +msgstr "Bitiş tarihi" #. module: base_calendar #: code:addons/base_calendar/base_calendar.py:385 +#: code:addons/base_calendar/base_calendar.py:1088 #: code:addons/base_calendar/base_calendar.py:1090 -#: code:addons/base_calendar/base_calendar.py:1092 #, python-format msgid "Warning!" -msgstr "" +msgstr "Uyarı!" #. module: base_calendar #: help:calendar.event,active:0 @@ -382,11 +388,13 @@ 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: base_calendar #: model:ir.module.module,shortdesc:base_calendar.module_meta_information msgid "Basic Calendar Functionality" -msgstr "" +msgstr "Temel Takvim İşlevselliği" #. module: base_calendar #: field:calendar.event,organizer:0 @@ -394,7 +402,7 @@ msgstr "" #: field:calendar.todo,organizer:0 #: field:calendar.todo,organizer_id:0 msgid "Organizer" -msgstr "" +msgstr "Düzenleyen" #. module: base_calendar #: view:calendar.attendee:0 @@ -402,88 +410,88 @@ msgstr "" #: field:calendar.event,user_id:0 #: field:calendar.todo,user_id:0 msgid "Responsible" -msgstr "" +msgstr "Sorumlu" #. module: base_calendar #: view:calendar.event:0 #: model:res.request.link,name:base_calendar.request_link_meeting msgid "Event" -msgstr "" +msgstr "Etkinlik" #. module: base_calendar #: help:calendar.event,edit_all:0 #: help:calendar.todo,edit_all:0 msgid "Edit all Occurrences of recurrent Meeting." -msgstr "" +msgstr "Yinelenen Toplantıya ait bütün Olayları Düzenle." #. module: base_calendar #: selection:calendar.alarm,trigger_occurs:0 #: selection:res.alarm,trigger_occurs:0 msgid "Before" -msgstr "" +msgstr "Önce" #. module: base_calendar #: view:calendar.event:0 #: selection:calendar.event,state:0 #: selection:calendar.todo,state:0 msgid "Confirmed" -msgstr "" +msgstr "Onaylandı" #. module: base_calendar #: model:ir.actions.act_window,name:base_calendar.action_calendar_event_edit_all msgid "Edit all events" -msgstr "" +msgstr "Bütün etkinlikleri düzenle" #. module: base_calendar #: field:calendar.alarm,attendee_ids:0 #: field:calendar.event,attendee_ids:0 #: field:calendar.todo,attendee_ids:0 msgid "Attendees" -msgstr "" +msgstr "Katılımcılar" #. module: base_calendar #: view:calendar.event:0 msgid "Confirm" -msgstr "" +msgstr "Onayla" #. module: base_calendar #: model:ir.model,name:base_calendar.model_calendar_todo msgid "Calendar Task" -msgstr "" +msgstr "Takvim Görevleri" #. module: base_calendar #: field:base.calendar.set.exrule,su:0 #: field:calendar.event,su:0 #: field:calendar.todo,su:0 msgid "Sun" -msgstr "" +msgstr "Paz" #. module: base_calendar #: field:calendar.attendee,cutype:0 msgid "Invite Type" -msgstr "" +msgstr "Davet Türü" #. module: base_calendar #: help:calendar.attendee,partner_id:0 msgid "Partner related to contact" -msgstr "" +msgstr "İlgiliye ait paydaş" #. module: base_calendar #: view:res.alarm:0 msgid "Reminder details" -msgstr "" +msgstr "Anımsatma Ayrıntıları" #. module: base_calendar #: field:calendar.attendee,parent_ids:0 msgid "Delegrated From" -msgstr "" +msgstr "Tarafından Yetkilendirldi" #. module: base_calendar #: selection:base.calendar.set.exrule,select1:0 #: selection:calendar.event,select1:0 #: selection:calendar.todo,select1:0 msgid "Day of month" -msgstr "" +msgstr "Ayın günü" #. module: base_calendar #: view:calendar.event:0 @@ -491,48 +499,48 @@ msgstr "" #: field:calendar.event.edit.all,location:0 #: field:calendar.todo,location:0 msgid "Location" -msgstr "" +msgstr "Konum" #. module: base_calendar #: field:base_calendar.invite.attendee,send_mail:0 msgid "Send mail?" -msgstr "" +msgstr "Posta gönderilsin mi?" #. module: base_calendar #: field:base_calendar.invite.attendee,email:0 #: selection:calendar.alarm,action:0 #: field:calendar.attendee,email:0 msgid "Email" -msgstr "" +msgstr "Eposta" #. module: base_calendar #: view:calendar.attendee:0 msgid "Event Detail" -msgstr "" +msgstr "Etkinlik Ayrıntısı" #. module: base_calendar #: selection:calendar.alarm,state:0 msgid "Run" -msgstr "" +msgstr "Çalıştır" #. module: base_calendar #: field:calendar.event,exdate:0 #: field:calendar.todo,exdate:0 msgid "Exception Date/Times" -msgstr "" +msgstr "İtiraz Tarihi/Süresi" #. module: base_calendar #: selection:calendar.event,class:0 #: selection:calendar.todo,class:0 msgid "Confidential" -msgstr "" +msgstr "Gizli" #. module: base_calendar #: field:base.calendar.set.exrule,end_date:0 #: field:calendar.event,end_date:0 #: field:calendar.todo,end_date:0 msgid "Repeat Until" -msgstr "" +msgstr "kadar tekrarla" #. module: base_calendar #: model:ir.actions.act_window,help:base_calendar.action_res_alarm_view @@ -540,286 +548,288 @@ msgid "" "Create specific calendar alarms that may be assigned to calendar events or " "meetings." msgstr "" +"Takvim etkinliklerine ve toplantılarına atanabilecek özel takvim alarmları " +"oluştur." #. module: base_calendar #: view:calendar.event:0 msgid "Visibility" -msgstr "" +msgstr "Görünürlük" #. module: base_calendar #: field:calendar.attendee,rsvp:0 msgid "Required Reply?" -msgstr "" +msgstr "Yanıt isteniyor mu?" #. module: base_calendar #: field:calendar.event,base_calendar_url:0 #: field:calendar.todo,base_calendar_url:0 msgid "Caldav URL" -msgstr "" +msgstr "Caldav URL si" #. module: base_calendar #: view:base.calendar.set.exrule:0 msgid "Select range to Exclude" -msgstr "" +msgstr "Hariç tutulacak alanı seç" #. module: base_calendar #: field:calendar.event,recurrent_uid:0 #: field:calendar.todo,recurrent_uid:0 msgid "Recurrent ID" -msgstr "" +msgstr "Tekrarlayan ID" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "July" -msgstr "" +msgstr "Temmuz" #. module: base_calendar #: view:calendar.attendee:0 #: selection:calendar.attendee,state:0 msgid "Accepted" -msgstr "" +msgstr "Kabul edildi" #. module: base_calendar #: field:base.calendar.set.exrule,th:0 #: field:calendar.event,th:0 #: field:calendar.todo,th:0 msgid "Thu" -msgstr "" +msgstr "Per" #. module: base_calendar #: field:calendar.attendee,child_ids:0 msgid "Delegrated To" -msgstr "" +msgstr "Şuna Yetkilendirildi" #. module: base_calendar #: view:calendar.attendee:0 msgid "Required Reply" -msgstr "" +msgstr "Yanıt İsteniyor" #. module: base_calendar #: selection:calendar.event,end_type:0 #: selection:calendar.todo,end_type:0 msgid "Forever" -msgstr "" +msgstr "Sonsuz" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "Participation required" -msgstr "" +msgstr "Katılım gerekli" #. module: base_calendar #: view:base.calendar.set.exrule:0 msgid "_Cancel" -msgstr "" +msgstr "_Vazgeç" #. module: base_calendar #: field:calendar.event,create_date:0 #: field:calendar.todo,create_date:0 msgid "Created" -msgstr "" +msgstr "Oluşturuldu" #. module: base_calendar #: selection:calendar.event,class:0 #: selection:calendar.todo,class:0 msgid "Private" -msgstr "" +msgstr "Özel" #. module: base_calendar #: selection:base.calendar.set.exrule,freq:0 #: selection:calendar.event,rrule_type:0 #: selection:calendar.todo,rrule_type:0 msgid "Daily" -msgstr "" +msgstr "Günlük" #. module: base_calendar #: code:addons/base_calendar/base_calendar.py:385 #, python-format msgid "Can not Duplicate" -msgstr "" +msgstr "Çoğaltılamaz" #. module: base_calendar #: field:calendar.event,class:0 #: field:calendar.todo,class:0 msgid "Mark as" -msgstr "" +msgstr "olarak İşaretle" #. module: base_calendar #: view:calendar.attendee:0 #: field:calendar.attendee,partner_address_id:0 msgid "Contact" -msgstr "" +msgstr "İlgili" #. module: base_calendar #: help:calendar.event,rrule_type:0 #: help:calendar.todo,rrule_type:0 msgid "Let the event automatically repeat at that interval" -msgstr "" +msgstr "Belirli aralıklarla olayın otomatik olarak tekrarlamasına izin ver" #. module: base_calendar #: view:calendar.attendee:0 #: view:calendar.event:0 msgid "Delegate" -msgstr "" +msgstr "Yetkili" #. module: base_calendar #: field:base_calendar.invite.attendee,partner_id:0 #: view:calendar.attendee:0 #: field:calendar.attendee,partner_id:0 msgid "Partner" -msgstr "" +msgstr "Paydaş" #. module: base_calendar #: view:base_calendar.invite.attendee:0 #: selection:base_calendar.invite.attendee,type:0 msgid "Partner Contacts" -msgstr "" +msgstr "Paydaş İlgilileri" #. module: base_calendar #: view:base.calendar.set.exrule:0 msgid "_Ok" -msgstr "" +msgstr "_Tamam" #. module: base_calendar #: selection:base.calendar.set.exrule,byday:0 #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 msgid "First" -msgstr "" +msgstr "İlk" #. module: base_calendar #: view:calendar.event:0 msgid "Privacy" -msgstr "" +msgstr "Gizlilik" #. module: base_calendar #: field:calendar.event,vtimezone:0 #: field:calendar.todo,vtimezone:0 msgid "Timezone" -msgstr "" +msgstr "Saat dilimi" #. module: base_calendar #: view:calendar.event:0 msgid "Subject" -msgstr "" +msgstr "Konu" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "September" -msgstr "" +msgstr "Eylül" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "December" -msgstr "" +msgstr "Aralık" #. module: base_calendar #: help:base_calendar.invite.attendee,send_mail:0 msgid "Check this if you want to send an Email to Invited Person" -msgstr "" +msgstr "Davet edile kişiye Eposta göndermek isterseniz bunu işaretleyin" #. module: base_calendar #: view:calendar.event:0 msgid "Availability" -msgstr "" +msgstr "Elverişlilik" #. module: base_calendar #: view:calendar.event.edit.all:0 msgid "_Save" -msgstr "" +msgstr "_Sakla" #. module: base_calendar #: selection:calendar.attendee,cutype:0 msgid "Individual" -msgstr "" +msgstr "Bireysel" #. module: base_calendar #: help:calendar.event,count:0 #: help:calendar.todo,count:0 msgid "Repeat x times" -msgstr "" +msgstr "x Kere tekrarla" #. module: base_calendar #: field:calendar.alarm,user_id:0 msgid "Owner" -msgstr "" +msgstr "Sahibi" #. module: base_calendar #: view:calendar.attendee:0 msgid "Delegation Info" -msgstr "" +msgstr "Temsilci Bilgisi" #. module: base_calendar #: view:calendar.event:0 #: field:calendar.event.edit.all,date:0 msgid "Start Date" -msgstr "" +msgstr "Başlangıç Tarihi" #. module: base_calendar #: field:calendar.attendee,cn:0 msgid "Common name" -msgstr "" +msgstr "Genel ad" #. module: base_calendar #: view:calendar.attendee:0 #: selection:calendar.attendee,state:0 msgid "Declined" -msgstr "" +msgstr "Reddedildi" #. module: base_calendar #: view:calendar.attendee:0 msgid "My Role" -msgstr "" +msgstr "Rolüm" #. module: base_calendar #: view:calendar.event:0 msgid "My Events" -msgstr "" +msgstr "Etkinliklerim" #. module: base_calendar #: view:calendar.attendee:0 #: view:calendar.event:0 msgid "Decline" -msgstr "" +msgstr "Reddet" #. module: base_calendar #: selection:calendar.event,freq:0 #: selection:calendar.todo,freq:0 msgid "Weeks" -msgstr "" +msgstr "Haftalar" #. module: base_calendar #: selection:calendar.attendee,cutype:0 msgid "Group" -msgstr "" +msgstr "Grup" #. module: base_calendar #: field:calendar.event,edit_all:0 #: field:calendar.todo,edit_all:0 msgid "Edit All" -msgstr "" +msgstr "Hepsini Düzenle" #. module: base_calendar #: field:base_calendar.invite.attendee,contact_ids:0 msgid "Contacts" -msgstr "" +msgstr "İlgililer" #. module: base_calendar #: model:ir.model,name:base_calendar.model_res_alarm msgid "Basic Alarm Information" -msgstr "" +msgstr "Temel Alarm Bilgisi" #. module: base_calendar #: field:base.calendar.set.exrule,fr:0 #: field:calendar.event,fr:0 #: field:calendar.todo,fr:0 msgid "Fri" -msgstr "" +msgstr "Cum" #. module: base_calendar #: selection:calendar.alarm,trigger_interval:0 @@ -827,81 +837,80 @@ msgstr "" #: selection:calendar.todo,freq:0 #: selection:res.alarm,trigger_interval:0 msgid "Hours" -msgstr "" +msgstr "Saatler" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1092 +#: code:addons/base_calendar/base_calendar.py:1090 #, python-format msgid "Count can not be Negative" -msgstr "" +msgstr "Olumsuz olamayacakları say" #. module: base_calendar #: field:calendar.attendee,member:0 msgid "Member" -msgstr "" +msgstr "Üye" #. module: base_calendar #: help:calendar.event,location:0 #: help:calendar.todo,location:0 msgid "Location of Event" -msgstr "" +msgstr "Olay Konumu" #. module: base_calendar #: field:calendar.event,rrule:0 #: field:calendar.todo,rrule:0 msgid "Recurrent Rule" -msgstr "" +msgstr "Yinelenen Kural" #. module: base_calendar #: selection:calendar.alarm,state:0 msgid "Draft" -msgstr "" +msgstr "Taslak" #. module: base_calendar #: field:calendar.alarm,attach:0 msgid "Attachment" -msgstr "" +msgstr "Ek" #. module: base_calendar #: view:calendar.attendee:0 msgid "Invitation From" -msgstr "" +msgstr "Davet Eden" #. module: base_calendar #: view:calendar.event:0 msgid "End of recurrency" -msgstr "" +msgstr "Yineleme sonu" #. module: base_calendar #: view:calendar.event:0 #: field:calendar.event.edit.all,alarm_id:0 msgid "Reminder" -msgstr "" +msgstr "Anımsatıcı" #. module: base_calendar #: view:base.calendar.set.exrule:0 -#: model:ir.actions.act_window,name:base_calendar.action_base_calendar_set_exrule #: model:ir.model,name:base_calendar.model_base_calendar_set_exrule msgid "Set Exrule" -msgstr "" +msgstr "İstisna Kuralını Ayarla" #. module: base_calendar #: view:calendar.event:0 #: model:ir.actions.act_window,name:base_calendar.action_view_event #: model:ir.ui.menu,name:base_calendar.menu_events msgid "Events" -msgstr "" +msgstr "Olaylar" #. module: base_calendar #: model:ir.actions.act_window,name:base_calendar.action_view_calendar_invite_attendee_wizard #: model:ir.model,name:base_calendar.model_base_calendar_invite_attendee msgid "Invite Attendees" -msgstr "" +msgstr "Katılımcıları Davet" #. module: base_calendar #: help:calendar.attendee,email:0 msgid "Email of Invited Person" -msgstr "" +msgstr "Davetli Kişinin Epostası" #. module: base_calendar #: field:calendar.alarm,repeat:0 @@ -909,7 +918,7 @@ msgstr "" #: field:calendar.todo,count:0 #: field:res.alarm,repeat:0 msgid "Repeat" -msgstr "" +msgstr "Yinele" #. module: base_calendar #: help:calendar.attendee,dir:0 @@ -923,155 +932,155 @@ msgstr "" #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "August" -msgstr "" +msgstr "Ağustos" #. module: base_calendar #: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 msgid "Monday" -msgstr "" +msgstr "Pazartesi" #. module: base_calendar #: selection:base.calendar.set.exrule,byday:0 #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 msgid "Third" -msgstr "" +msgstr "Üçüncü" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "June" -msgstr "" +msgstr "Haziran" #. module: base_calendar #: field:calendar.alarm,alarm_id:0 msgid "Basic Alarm" -msgstr "" +msgstr "Temel Alarm" #. module: base_calendar #: view:base.calendar.set.exrule:0 #: view:calendar.event:0 msgid "The" -msgstr "" +msgstr "Bu" #. module: base_calendar #: view:calendar.attendee:0 #: field:calendar.attendee,delegated_from:0 msgid "Delegated From" -msgstr "" +msgstr "Temsil Edilen" #. module: base_calendar #: field:calendar.attendee,user_id:0 msgid "User" -msgstr "" +msgstr "Kullanıcı" #. module: base_calendar #: view:calendar.event:0 #: field:calendar.event,date:0 msgid "Date" -msgstr "" +msgstr "Tarih" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "November" -msgstr "" +msgstr "Kasım" #. module: base_calendar #: help:calendar.attendee,member:0 msgid "Indicate the groups that the attendee belongs to" -msgstr "" +msgstr "Katılanın bağlı olduğu grubu belirt" #. module: base_calendar #: view:base_calendar.invite.attendee:0 msgid "Data" -msgstr "" +msgstr "Veri" #. module: base_calendar #: field:base.calendar.set.exrule,mo:0 #: field:calendar.event,mo:0 #: field:calendar.todo,mo:0 msgid "Mon" -msgstr "" +msgstr "Pzt" #. module: base_calendar #: field:base.calendar.set.exrule,count:0 msgid "Count" -msgstr "" +msgstr "Say" #. module: base_calendar #: selection:base.calendar.set.exrule,freq:0 #: selection:calendar.event,freq:0 #: selection:calendar.todo,freq:0 msgid "No Repeat" -msgstr "" +msgstr "Yineleme Yok" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "October" -msgstr "" +msgstr "Ekim" #. module: base_calendar #: view:calendar.attendee:0 #: view:calendar.event:0 msgid "Uncertain" -msgstr "" +msgstr "Belirsiz" #. module: base_calendar #: field:calendar.attendee,language:0 msgid "Language" -msgstr "" +msgstr "Dil" #. module: base_calendar #: field:calendar.alarm,trigger_occurs:0 #: field:res.alarm,trigger_occurs:0 msgid "Triggers" -msgstr "" +msgstr "Tetikleyiciler" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "January" -msgstr "" +msgstr "Ocak" #. module: base_calendar #: field:calendar.alarm,trigger_related:0 #: field:res.alarm,trigger_related:0 msgid "Related to" -msgstr "" +msgstr "Bağlı olduğu" #. module: base_calendar #: field:base.calendar.set.exrule,interval:0 #: field:calendar.alarm,trigger_interval:0 #: field:res.alarm,trigger_interval:0 msgid "Interval" -msgstr "" +msgstr "Aralık" #. module: base_calendar #: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 msgid "Wednesday" -msgstr "" +msgstr "Çarşamba" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1090 +#: code:addons/base_calendar/base_calendar.py:1088 #, python-format msgid "Interval can not be Negative" -msgstr "" +msgstr "Aralık Eksi olamaz" #. module: base_calendar #: field:calendar.alarm,name:0 #: view:calendar.event:0 msgid "Summary" -msgstr "" +msgstr "Özet" #. module: base_calendar #: field:calendar.alarm,active:0 @@ -1079,22 +1088,22 @@ msgstr "" #: field:calendar.todo,active:0 #: field:res.alarm,active:0 msgid "Active" -msgstr "" +msgstr "Etkin" #. module: base_calendar #: view:calendar.event:0 msgid "Choose day in the month where repeat the meeting" -msgstr "" +msgstr "Ay içinde görüşmenin tekrarlanacağı günü seç" #. module: base_calendar #: field:calendar.alarm,action:0 msgid "Action" -msgstr "" +msgstr "Eylem" #. module: base_calendar #: help:base_calendar.invite.attendee,type:0 msgid "Select whom you want to Invite" -msgstr "" +msgstr "Davet edeceğinizi kimseyi seçin" #. module: base_calendar #: help:calendar.alarm,duration:0 @@ -1103,50 +1112,52 @@ msgid "" "Duration' and 'Repeat' are both optional, but if one occurs, so MUST the " "other" msgstr "" +"'Süre' ve 'Yineleme' nin her ikisi de seçme bağlıdır, ama biri seçlirse " +"diğeri de seçilmelidir" #. module: base_calendar #: model:ir.model,name:base_calendar.model_calendar_event_edit_all msgid "Calendar Edit all event" -msgstr "" +msgstr "Bütün etkinlikleri Takvimini Düzenle" #. module: base_calendar #: help:calendar.attendee,role:0 msgid "Participation role for the calendar user" -msgstr "" +msgstr "Takvim Kullanıcısının katılım rolü" #. module: base_calendar #: view:calendar.attendee:0 #: field:calendar.attendee,delegated_to:0 msgid "Delegated To" -msgstr "" +msgstr "Temsil edilen" #. module: base_calendar #: help:calendar.alarm,action:0 msgid "Defines the action to be invoked when an alarm is triggered" -msgstr "" +msgstr "Alarm tetiklendiğinde başlatılacak eylemi tanımlar" #. module: base_calendar #: selection:calendar.event,end_type:0 #: selection:calendar.todo,end_type:0 msgid "End date" -msgstr "" +msgstr "Bitiş tarihi" #. module: base_calendar #: view:calendar.event:0 msgid "Search Events" -msgstr "" +msgstr "Etkinlikleri Ara" #. module: base_calendar #: view:calendar.event:0 msgid "Recurrency Option" -msgstr "" +msgstr "Yineleme Seçeneği" #. module: base_calendar #: selection:base.calendar.set.exrule,freq:0 #: selection:calendar.event,rrule_type:0 #: selection:calendar.todo,rrule_type:0 msgid "Weekly" -msgstr "" +msgstr "Haftalık" #. module: base_calendar #: help:calendar.alarm,active:0 @@ -1160,12 +1171,12 @@ msgstr "" #: field:calendar.event,recurrent_id:0 #: field:calendar.todo,recurrent_id:0 msgid "Recurrent ID date" -msgstr "" +msgstr "Yinelenen Kimlik tarihi" #. module: base_calendar #: sql_constraint:res.users:0 msgid "You can not have two users with the same login !" -msgstr "" +msgstr "Aynı kullanıcı adı ile iki kullanıcı oluşturamazsınız !" #. module: base_calendar #: field:calendar.alarm,state:0 @@ -1175,65 +1186,65 @@ msgstr "" #: field:calendar.event,state:0 #: field:calendar.todo,state:0 msgid "State" -msgstr "" +msgstr "Durum" #. module: base_calendar #: view:res.alarm:0 msgid "Reminder Details" -msgstr "" +msgstr "Anımsatma Ayrıntıları" #. module: base_calendar #: view:calendar.attendee:0 msgid "To Review" -msgstr "" +msgstr "İncelenecek" #. module: base_calendar #: field:base.calendar.set.exrule,freq:0 #: field:calendar.event,freq:0 #: field:calendar.todo,freq:0 msgid "Frequency" -msgstr "" +msgstr "Sıklık" #. module: base_calendar #: selection:calendar.alarm,state:0 msgid "Done" -msgstr "" +msgstr "Bitti" #. module: base_calendar #: help:calendar.event,interval:0 #: help:calendar.todo,interval:0 msgid "Repeat every (Days/Week/Month/Year)" -msgstr "" +msgstr "Her (Gün/Hafta/Ay/Yıl) Tekrarla" #. module: base_calendar #: view:base_calendar.invite.attendee:0 #: field:base_calendar.invite.attendee,user_ids:0 msgid "Users" -msgstr "" +msgstr "Kullanıcılar" #. module: base_calendar #: view:base.calendar.set.exrule:0 msgid "of" -msgstr "" +msgstr "ın" #. module: base_calendar #: view:base_calendar.invite.attendee:0 #: view:calendar.event:0 #: view:calendar.event.edit.all:0 msgid "Cancel" -msgstr "" +msgstr "Vazgeç" #. module: base_calendar #: model:ir.model,name:base_calendar.model_res_users msgid "res.users" -msgstr "" +msgstr "res.users" #. module: base_calendar #: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 msgid "Tuesday" -msgstr "" +msgstr "Salı" #. module: base_calendar #: help:calendar.alarm,description:0 @@ -1246,7 +1257,7 @@ msgstr "" #. module: base_calendar #: view:calendar.event:0 msgid "Responsible User" -msgstr "" +msgstr "Sorumlu Kullanıcı" #. module: base_calendar #: selection:calendar.attendee,availability:0 @@ -1254,62 +1265,62 @@ msgstr "" #: selection:calendar.todo,show_as:0 #: selection:res.users,availability:0 msgid "Busy" -msgstr "" +msgstr "Meşgul" #. module: base_calendar #: model:ir.model,name:base_calendar.model_calendar_event msgid "Calendar Event" -msgstr "" +msgstr "Takvim Etkinliği" #. module: base_calendar #: selection:calendar.attendee,state:0 #: selection:calendar.event,state:0 #: selection:calendar.todo,state:0 msgid "Tentative" -msgstr "" +msgstr "Belirsiz" #. module: base_calendar #: field:calendar.event,interval:0 #: field:calendar.todo,interval:0 msgid "Repeat every" -msgstr "" +msgstr "Yineler" #. module: base_calendar #: selection:calendar.event,end_type:0 #: selection:calendar.todo,end_type:0 msgid "Fix amout of times" -msgstr "" +msgstr "Süre Miktarını Düzelt" #. module: base_calendar #: field:calendar.event,recurrency:0 #: field:calendar.todo,recurrency:0 msgid "Recurrent" -msgstr "" +msgstr "Yinelenen" #. module: base_calendar #: field:calendar.event,rrule_type:0 #: field:calendar.todo,rrule_type:0 msgid "Recurrency" -msgstr "" +msgstr "Yineleme" #. module: base_calendar #: model:ir.actions.act_window,name:base_calendar.action_view_attendee_form #: model:ir.ui.menu,name:base_calendar.menu_attendee_invitations msgid "Event Invitations" -msgstr "" +msgstr "Etkinlik Davetleri" #. module: base_calendar #: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 msgid "Thursday" -msgstr "" +msgstr "Perşembe" #. module: base_calendar #: field:calendar.event,exrule:0 #: field:calendar.todo,exrule:0 msgid "Exception Rule" -msgstr "" +msgstr "Muafşyet Kuralı" #. module: base_calendar #: help:calendar.attendee,language:0 @@ -1320,7 +1331,7 @@ msgstr "" #. module: base_calendar #: view:calendar.event:0 msgid "Details" -msgstr "" +msgstr "Ayrıntılar" #. module: base_calendar #: help:calendar.event,exrule:0 @@ -1329,19 +1340,20 @@ 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: base_calendar #: field:base.calendar.set.exrule,month_list:0 #: field:calendar.event,month_list:0 #: field:calendar.todo,month_list:0 msgid "Month" -msgstr "" +msgstr "Ay" #. module: base_calendar #: view:base_calendar.invite.attendee:0 #: view:calendar.event:0 msgid "Invite People" -msgstr "" +msgstr "Kişi Davet Et" #. module: base_calendar #: help:calendar.event,rrule:0 @@ -1351,11 +1363,14 @@ msgid "" "e.g.: Every other month on the last Sunday of the month for 10 occurrences: " " FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU" msgstr "" +"Yinelenen olaylar için tekrarlama modeli kuralı tanımlar\n" +"Örneğin: İki ayda bir ayın pazar günü için 10 oluşum: " +"SIKLIK=AYLIK;ARALIK=2;SAYI=10;GÜNLÜK=-1PAZ" #. module: base_calendar #: field:calendar.attendee,dir:0 msgid "URI Reference" -msgstr "" +msgstr "URI Referansı" #. module: base_calendar #: field:calendar.alarm,description:0 @@ -1365,108 +1380,108 @@ msgstr "" #: field:calendar.todo,description:0 #: field:calendar.todo,name:0 msgid "Description" -msgstr "" +msgstr "Açıklama" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "May" -msgstr "" +msgstr "Mayıs" #. module: base_calendar #: field:base_calendar.invite.attendee,type:0 #: view:calendar.attendee:0 msgid "Type" -msgstr "" +msgstr "Tür" #. module: base_calendar #: view:calendar.attendee:0 msgid "Search Invitations" -msgstr "" +msgstr "Davetiye Ara" #. module: base_calendar #: selection:calendar.alarm,trigger_occurs:0 #: selection:res.alarm,trigger_occurs:0 msgid "After" -msgstr "" +msgstr "Sonra" #. module: base_calendar #: selection:calendar.alarm,state:0 msgid "Stop" -msgstr "" +msgstr "Dur" #. module: base_calendar #: model:ir.model,name:base_calendar.model_ir_values msgid "ir.values" -msgstr "" +msgstr "ir.values" #. module: base_calendar #: model:ir.model,name:base_calendar.model_ir_model msgid "Objects" -msgstr "" +msgstr "Nesneler" #. module: base_calendar #: view:calendar.attendee:0 #: selection:calendar.attendee,state:0 msgid "Delegated" -msgstr "" +msgstr "Temsil Edildi" #. module: base_calendar #: field:base.calendar.set.exrule,sa:0 #: field:calendar.event,sa:0 #: field:calendar.todo,sa:0 msgid "Sat" -msgstr "" +msgstr "Cts" #. module: base_calendar #: view:calendar.event:0 msgid "Choose day where repeat the meeting" -msgstr "" +msgstr "Görüşmenin tekrarlanacağı günü seç" #. module: base_calendar #: selection:base.calendar.set.exrule,freq:0 msgid "Minutely" -msgstr "" +msgstr "Dakikalık" #. module: base_calendar #: help:calendar.attendee,sent_by:0 msgid "Specify the user that is acting on behalf of the calendar user" -msgstr "" +msgstr "Takvim kullanıcısı adına hareket eden kullanıcıyı tanımla" #. module: base_calendar #: view:calendar.event:0 #: field:calendar.event.edit.all,date_deadline:0 msgid "End Date" -msgstr "" +msgstr "Bitiş Tarihi" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "February" -msgstr "" +msgstr "Şubat" #. module: base_calendar #: selection:calendar.event,freq:0 #: selection:calendar.todo,freq:0 msgid "Months" -msgstr "" +msgstr "Aylar" #. module: base_calendar #: selection:calendar.attendee,cutype:0 msgid "Resource" -msgstr "" +msgstr "Kaynak" #. module: base_calendar #: field:res.alarm,name:0 msgid "Name" -msgstr "" +msgstr "Ad" #. module: base_calendar #: model:ir.model,name:base_calendar.model_calendar_alarm msgid "Event alarm information" -msgstr "" +msgstr "Etkinlik alarm bilgisi" #. module: base_calendar #: help:calendar.alarm,name:0 @@ -1474,6 +1489,8 @@ msgid "" "Contains the text to be used as the message subject for " "email or contains the text to be used for display" msgstr "" +"Eposta konusu olarak kullanılacak ya da görüntülenecek metin olarak " +"kullanılacak metni içerir." #. module: base_calendar #: field:calendar.event,alarm_id:0 @@ -1481,144 +1498,144 @@ msgstr "" #: field:calendar.todo,alarm_id:0 #: field:calendar.todo,base_calendar_alarm_id:0 msgid "Alarm" -msgstr "" +msgstr "Alarm" #. module: base_calendar #: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:90 #, python-format msgid "Please Apply Recurrency before applying Exception Rule." -msgstr "" +msgstr "İstisna Kuralını uygulamadan önce lütfen Yineleme Uygulayın." #. module: base_calendar #: field:calendar.attendee,sent_by_uid:0 msgid "Sent By User" -msgstr "" +msgstr "Şu Kullanıcı tarafından gönderildi" #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 msgid "April" -msgstr "" +msgstr "Nisan" #. module: base_calendar #: view:calendar.event:0 msgid "Recurrency period" -msgstr "" +msgstr "Yineleme Dönemi" #. module: base_calendar #: field:base.calendar.set.exrule,week_list:0 #: field:calendar.event,week_list:0 #: field:calendar.todo,week_list:0 msgid "Weekday" -msgstr "" +msgstr "Hafta İçi" #. module: base_calendar #: field:base.calendar.set.exrule,byday:0 #: field:calendar.event,byday:0 #: field:calendar.todo,byday:0 msgid "By day" -msgstr "" +msgstr "Gündüz" #. module: base_calendar #: field:calendar.alarm,model_id:0 msgid "Model" -msgstr "" +msgstr "Model" #. module: base_calendar #: selection:calendar.alarm,action:0 msgid "Audio" -msgstr "" +msgstr "Ses" #. module: base_calendar #: field:calendar.event,id:0 #: field:calendar.todo,id:0 msgid "ID" -msgstr "" +msgstr "Kimlik" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "For information Purpose" -msgstr "" +msgstr "Bilgi Amaçlı" #. module: base_calendar #: view:base_calendar.invite.attendee:0 msgid "Invite" -msgstr "" +msgstr "Davet et" #. module: base_calendar #: model:ir.model,name:base_calendar.model_calendar_attendee msgid "Attendee information" -msgstr "" +msgstr "Katılımcı Bilgisi" #. module: base_calendar #: field:calendar.alarm,res_id:0 msgid "Resource ID" -msgstr "" +msgstr "Kaynak Kimliği" #. module: base_calendar #: selection:calendar.attendee,state:0 msgid "Needs Action" -msgstr "" +msgstr "Eylem Gerekir" #. module: base_calendar #: field:calendar.attendee,sent_by:0 msgid "Sent By" -msgstr "" +msgstr "Gönderen" #. module: base_calendar #: field:calendar.event,sequence:0 #: field:calendar.todo,sequence:0 msgid "Sequence" -msgstr "" +msgstr "Diziliş" #. module: base_calendar #: help:calendar.event,alarm_id:0 #: help:calendar.todo,alarm_id:0 msgid "Set an alarm at this time, before the event occurs" -msgstr "" +msgstr "Bu sefer etkinlik başlamadan önce alarm ayarla" #. module: base_calendar #: selection:base_calendar.invite.attendee,type:0 msgid "Internal User" -msgstr "" +msgstr "İç Kullanıcı" #. module: base_calendar #: view:calendar.attendee:0 #: view:calendar.event:0 msgid "Accept" -msgstr "" +msgstr "Kabul et" #. module: base_calendar #: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 msgid "Saturday" -msgstr "" +msgstr "Cumartesi" #. module: base_calendar #: view:calendar.attendee:0 msgid "Invitation To" -msgstr "" +msgstr "Davetiye Gönder" #. module: base_calendar #: selection:base.calendar.set.exrule,byday:0 #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 msgid "Second" -msgstr "" +msgstr "İkinci" #. module: base_calendar #: field:calendar.attendee,availability:0 #: field:res.users,availability:0 msgid "Free/Busy" -msgstr "" +msgstr "Uygun/Meşgul" #. module: base_calendar #: field:calendar.event,end_type:0 #: field:calendar.todo,end_type:0 msgid "Way to end reccurency" -msgstr "" +msgstr "Yineleme sonlandırma yolu" #. module: base_calendar #: field:calendar.alarm,duration:0 @@ -1629,17 +1646,17 @@ msgstr "" #: field:res.alarm,duration:0 #: field:res.alarm,trigger_duration:0 msgid "Duration" -msgstr "" +msgstr "Süre" #. module: base_calendar #: selection:base_calendar.invite.attendee,type:0 msgid "External Email" -msgstr "" +msgstr "Dış Eposta" #. module: base_calendar #: field:calendar.alarm,trigger_date:0 msgid "Trigger Date" -msgstr "" +msgstr "Tetikleme Tarihi" #. module: base_calendar #: help:calendar.alarm,attach:0 @@ -1657,4 +1674,7 @@ msgstr "" #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 msgid "Fifth" -msgstr "" +msgstr "Beşinci" + +#~ msgid "Set Exclude range" +#~ msgstr "Hariç tutulacak alanı ayarla" diff --git a/addons/caldav/i18n/tr.po b/addons/caldav/i18n/tr.po index c88efae7f95..54e72a958c6 100644 --- a/addons/caldav/i18n/tr.po +++ b/addons/caldav/i18n/tr.po @@ -8,24 +8,24 @@ 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 10:44+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-06-20 20:57+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-30 04:59+0000\n" -"X-Generator: Launchpad (build 12959)\n" +"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: caldav #: view:basic.calendar:0 msgid "Value Mapping" -msgstr "" +msgstr "Değer Eşleme" #. module: caldav #: help:caldav.browse,url:0 msgid "Url of the caldav server, use for synchronization" -msgstr "" +msgstr "Caldav sunucusu url si, senkronize etmek için kullanın" #. module: caldav #: field:basic.calendar.alias,name:0 @@ -35,17 +35,17 @@ msgstr "Dosya ismi" #. module: caldav #: model:ir.model,name:caldav.model_calendar_event_export msgid "Event Export" -msgstr "" +msgstr "Olay Dışaaktarımı" #. module: caldav #: view:calendar.event.subscribe:0 msgid "Provide path for Remote Calendar" -msgstr "" +msgstr "Uzaktan Takvim yolunu belirt" #. module: caldav #: model:ir.actions.act_window,name:caldav.action_calendar_event_import_values msgid "Import .ics File" -msgstr "" +msgstr ".ics Dosyası İçe aktar" #. module: caldav #: view:calendar.event.export:0 @@ -61,7 +61,7 @@ msgstr "Katılımcı" #. module: caldav #: sql_constraint:basic.calendar.fields:0 msgid "Can not map a field more than once" -msgstr "" +msgstr "Birden çok alan eşleştirilemiyor" #. module: caldav #: code:addons/caldav/calendar.py:787 @@ -94,12 +94,12 @@ msgstr "Hizmetler" #. module: caldav #: selection:basic.calendar.fields,fn:0 msgid "Expression as constant" -msgstr "" +msgstr "Sabit İfade" #. module: caldav #: selection:user.preference,device:0 msgid "Evolution" -msgstr "" +msgstr "Evrim" #. module: caldav #: view:calendar.event.import:0 @@ -127,12 +127,12 @@ msgstr "Caldav Sunucusu" #: code:addons/caldav/wizard/calendar_event_subscribe.py:59 #, python-format msgid "Error!" -msgstr "" +msgstr "Hata!" #. module: caldav #: help:caldav.browse,caldav_doc_file:0 msgid "download full caldav Documentation." -msgstr "" +msgstr "Tam calsav Belgesi indir" #. module: caldav #: selection:user.preference,device:0 @@ -210,7 +210,7 @@ msgstr "YAPILACAK" #. module: caldav #: view:calendar.event.export:0 msgid "Export ICS" -msgstr "" +msgstr "ICS Dışaaktar" #. module: caldav #: selection:basic.calendar.fields,fn:0 @@ -221,7 +221,7 @@ msgstr "Alanı Kullan" #: code:addons/caldav/calendar.py:787 #, python-format msgid "Can not create line \"%s\" more than once" -msgstr "" +msgstr "\"%s\" Satırı birden çok oluşturulamıyor" #. module: caldav #: view:basic.calendar:0 @@ -233,24 +233,24 @@ msgstr "Takvim Satırları" #. module: caldav #: model:ir.model,name:caldav.model_calendar_event_subscribe msgid "Event subscribe" -msgstr "" +msgstr "Olay aboneliği" #. module: caldav #: view:calendar.event.import:0 msgid "Import ICS" -msgstr "" +msgstr "ICS içeaktar" #. module: caldav #: view:calendar.event.import:0 #: view:calendar.event.subscribe:0 #: view:user.preference:0 msgid "_Cancel" -msgstr "" +msgstr "_Vazgeç" #. module: caldav #: model:ir.model,name:caldav.model_basic_calendar_event msgid "basic.calendar.event" -msgstr "" +msgstr "temel.Etkinlik.olay" #. module: caldav #: view:basic.calendar:0 @@ -258,7 +258,7 @@ msgstr "" #: selection:basic.calendar.attributes,type:0 #: selection:basic.calendar.lines,name:0 msgid "Event" -msgstr "" +msgstr "Etkinlik" #. module: caldav #: field:document.directory,calendar_collection:0 diff --git a/addons/claim_from_delivery/i18n/fi.po b/addons/claim_from_delivery/i18n/fi.po new file mode 100644 index 00000000000..84fd929478a --- /dev/null +++ b/addons/claim_from_delivery/i18n/fi.po @@ -0,0 +1,33 @@ +# Finnish 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-20 10:45+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-21 04:36+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: claim_from_delivery +#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery +msgid "Claim" +msgstr "Reklamaatio" + +#. module: claim_from_delivery +#: model:ir.module.module,description:claim_from_delivery.module_meta_information +msgid "Create Claim from delivery order:\n" +msgstr "Luo reklamaatio toimitustilaukselta:\n" + +#. module: claim_from_delivery +#: model:ir.module.module,shortdesc:claim_from_delivery.module_meta_information +msgid "Claim from delivery" +msgstr "Reklamaatio toimitukselta" diff --git a/addons/crm/i18n/tr.po b/addons/crm/i18n/tr.po index cae854c9be6..b6542f5220e 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-06-17 17:46+0000\n" +"PO-Revision-Date: 2011-06-20 20:31+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-06-18 04:56+0000\n" +"X-Launchpad-Export-Date: 2011-06-21 04:36+0000\n" "X-Generator: Launchpad (build 13168)\n" #. module: crm @@ -2323,6 +2323,15 @@ msgid "" "email gateway: new emails may create leads, each of them automatically gets " "the history of the conversation with the prospect." msgstr "" +"Adaylar, ürünlerinize ve hizmetlerinize ilgi duyan aday ya da paydaşların " +"ilk temaslarını yönetmeyi ve izlemeyi sağlar. Bir aday, satış çevriminizde " +"genellikle ilk adımdır. Yeterli bulunduğunda bir aday, herhangi bir " +"bağlantılı etkinliğinde ayrıntılı olarak izlenmesi için ilgili paydaşın " +"oluşturulması sırasında iş fırsatına çevrilebilir. Bir adayın veritabanını " +"içeaktarabilir, kartvizitlerin kaydını tutabilir ya da websitenizin iletişim " +"formunu OpenERP Adaylarla entegre edebilirsiniz. Adaylar eposta ağgeçidine " +"bağlanabilir: yeni epostalar adayları oluşturur, her biri adaylarla yapılan " +"konuşma geçmişini otomatikmen alır." #. module: crm #: selection:crm.lead2opportunity.partner,action:0 diff --git a/addons/document_ftp/i18n/tr.po b/addons/document_ftp/i18n/tr.po new file mode 100644 index 00000000000..cc03724641e --- /dev/null +++ b/addons/document_ftp/i18n/tr.po @@ -0,0 +1,141 @@ +# 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-20 20:45+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-06-21 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: document_ftp +#: model:ir.model,name:document_ftp.model_document_ftp_configuration +msgid "Auto Directory Configuration" +msgstr "Otomatik Klasör Yapılandırması" + +#. module: document_ftp +#: view:document.ftp.configuration:0 +msgid "" +"Indicate the network address on which your OpenERP server should be " +"reachable for end-users. This depends on your network topology and " +"configuration, and will only affect the links displayed to the users. The " +"format is HOST:PORT and the default host (localhost) is only suitable for " +"access from the server machine itself.." +msgstr "" + +#. module: document_ftp +#: field:document.ftp.configuration,progress:0 +msgid "Configuration Progress" +msgstr "Yapılandırma Gelişimi" + +#. module: document_ftp +#: model:ir.actions.url,name:document_ftp.action_document_browse +msgid "Browse Files" +msgstr "Dosyalara Gözat" + +#. module: document_ftp +#: field:document.ftp.configuration,config_logo:0 +msgid "Image" +msgstr "Resim" + +#. module: document_ftp +#: field:document.ftp.configuration,host:0 +msgid "Address" +msgstr "Adres" + +#. module: document_ftp +#: field:document.ftp.browse,url:0 +msgid "FTP Server" +msgstr "FTP Sunucusu" + +#. module: document_ftp +#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory +msgid "FTP Server Configuration" +msgstr "FTP Sunucusu Yapılandırması" + +#. module: document_ftp +#: model:ir.module.module,description:document_ftp.module_meta_information +msgid "" +"This is a support FTP Interface with document management system.\n" +" With this module you would not only be able to access documents through " +"OpenERP\n" +" but you would also be able to connect with them through the file system " +"using the\n" +" FTP client.\n" +msgstr "" +"Bu bir belge yönetim sistemli destek FTP Arayüzüdür.\n" +" Bu modül ile yalnızca OpenERP nin içinden belgelere erişmekle kalmayıp \n" +" FTP istemcisini kullanarak dosya sistemi içinden de \n" +" bağlanabileceksiniz.\n" + +#. module: document_ftp +#: view:document.ftp.browse:0 +msgid "_Browse" +msgstr "_Gözat" + +#. module: document_ftp +#: help:document.ftp.configuration,host:0 +msgid "" +"Server address or IP and port to which users should connect to for DMS access" +msgstr "" +"DMS erişimi için kullanıcıların bağlanacağı sunucu adresi ya da IP ve " +"bağlantı noktasıdır." + +#. module: document_ftp +#: model:ir.ui.menu,name:document_ftp.menu_document_browse +msgid "Shared Repository (FTP)" +msgstr "Paylaşılan Havuz (FTP)" + +#. module: document_ftp +#: view:document.ftp.browse:0 +msgid "_Cancel" +msgstr "_Vazgeç" + +#. module: document_ftp +#: view:document.ftp.configuration:0 +msgid "Configure FTP Server" +msgstr "FTP Sunucusunu Yapılandır" + +#. module: document_ftp +#: model:ir.module.module,shortdesc:document_ftp.module_meta_information +msgid "Integrated FTP Server with Document Management System" +msgstr "Belge Yönetim Sistemi ile entegre FTP Sunucusu" + +#. module: document_ftp +#: view:document.ftp.configuration:0 +msgid "title" +msgstr "unvan" + +#. module: document_ftp +#: model:ir.model,name:document_ftp.model_document_ftp_browse +msgid "Document FTP Browse" +msgstr "FTP BelgeTaraması" + +#. module: document_ftp +#: view:document.ftp.configuration:0 +msgid "Knowledge Application Configuration" +msgstr "Bilgi Birikimi Uygulama Ayarları" + +#. module: document_ftp +#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse +msgid "Document Browse" +msgstr "Belge Tarama" + +#. module: document_ftp +#: view:document.ftp.browse:0 +msgid "Browse Document" +msgstr "Belge Tara" + +#. module: document_ftp +#: view:document.ftp.configuration:0 +msgid "res_config_contents" +msgstr "res_config_contents" diff --git a/addons/l10n_syscohada/i18n/fr.po b/addons/l10n_syscohada/i18n/fr.po new file mode 100644 index 00000000000..8a58faab1fa --- /dev/null +++ b/addons/l10n_syscohada/i18n/fr.po @@ -0,0 +1,200 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * l10n_syscohada +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2010-05-09 10:31+0000\n" +"PO-Revision-Date: 2011-06-20 13:17+0000\n" +"Last-Translator: OpenERP Administrators \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-06-21 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_syscohada +#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_asset +msgid "Asset" +msgstr "Actifs" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_income +msgid "Income" +msgstr "Produits" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_payable +msgid "Payable" +msgstr "À payer" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_stocks +msgid "Actif circulant" +msgstr "Actif circulant" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_dettes +msgid "Dettes long terme" +msgstr "Dettes long terme" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_tax +msgid "Tax" +msgstr "Taxes" + +#. module: l10n_syscohada +#: constraint:account.account.template:0 +msgid "Error ! You can not create recursive account templates." +msgstr "Erreur ! Vous ne pouvez pas créer des modéles de comptes récursifs" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_provision +msgid "Provisions" +msgstr "Provisions" + +#. module: l10n_syscohada +#: constraint:account.tax.code.template:0 +msgid "Error ! You can not create recursive Tax Codes." +msgstr "Erreur ! Vous ne pouvez pas créer de codes de taxe récursifs" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_commitment +msgid "Engagements" +msgstr "Engagements" + +#. module: l10n_syscohada +#: model:ir.module.module,description:l10n_syscohada.module_meta_information +msgid "This module implementes the accounting chart for OHADA area." +msgstr "" +"Ce module implémente le plan comptable général du système comptable de la " +"zone OHAHA" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_expense +msgid "Expense" +msgstr "Charges" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_receivable +msgid "Receivable" +msgstr "Recevable" + +#. module: l10n_syscohada +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères " +"spéciaux !" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations +msgid "Immobilisations" +msgstr "Immobilisations" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_equity +msgid "Equity" +msgstr "Capitaux propres" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_stock +msgid "Stocks" +msgstr "Stocks" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_cash +msgid "Cash" +msgstr "Liquidités" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_special +msgid "Comptes spéciaux" +msgstr "Comptes spéciaux" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_view +msgid "View" +msgstr "Vue" + +#. module: l10n_syscohada +#: model:ir.module.module,shortdesc:l10n_syscohada.module_meta_information +msgid "OHADA - Plan comptable général" +msgstr "" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_cloture +msgid "Cloture" +msgstr "Clôture" + +#~ msgid "The journal must have centralised counterpart" +#~ msgstr "Le journal attend une contrepartie centralisée" + +#~ msgid "Opening Entries Period" +#~ msgstr "Période des écritures d'ouvertures" + +#~ msgid "Fiscal Year to close" +#~ msgstr "Année fiscale à clôturer" + +#~ msgid "Generate Fiscal Year Opening Entries(Corrected)" +#~ msgstr "Générer les écritures d'ouvertures d'exercice fiscal(Corrigé)" + +#~ msgid "Generated during fiscal year closing/opening process" +#~ msgstr "Ecriture de report" + +#~ msgid "Opening Entries Journal" +#~ msgstr "Journal des écritures d'ouverture" + +#~ msgid "The journal must have default credit and debit account" +#~ msgstr "Le journal doit posséder un compte de crédit et débit par défaut" + +#~ msgid "Create entries" +#~ msgstr "Créer les écritures" + +#~ msgid "Name of new entries" +#~ msgstr "Nom des nouvelles entrées" + +#~ msgid "Closing of fiscal year cancelled, please check the box !" +#~ msgstr "Clôture de l'exercice fiscal annulée, veuillez cocher la case !" + +#~ msgid "End of Fiscal Year Entry" +#~ msgstr "Écriture de fin d'exercice fiscal" + +#~ msgid "The opening journal must not have any entry in the new fiscal year !" +#~ msgstr "" +#~ "Le journal d'ouverture ne doit pas contenir d'écriture dans le nouvel " +#~ "exercice fiscal !" + +#~ msgid "Close Fiscal Year with new entries" +#~ msgstr "Clôturer l'exercice fiscal avec de nouvelles écritures" + +#~ msgid "UserError" +#~ msgstr "Erreur utilsateur" + +#~ msgid "New Fiscal Year" +#~ msgstr "Nouvel exercice fiscal" + +#~ msgid "Check this box" +#~ msgstr "Cocher cette case" + +#~ msgid "Are you sure you want to create entries?" +#~ msgstr "Etes vous sûr de vouloir enrégistrer des écritures" + +#~ msgid "Cancel" +#~ msgstr "Annuler" diff --git a/addons/mail_gateway/i18n/fi.po b/addons/mail_gateway/i18n/fi.po new file mode 100644 index 00000000000..fb05ccd2184 --- /dev/null +++ b/addons/mail_gateway/i18n/fi.po @@ -0,0 +1,360 @@ +# Finnish 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-20 10:00+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-21 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: mail_gateway +#: field:mailgate.message,res_id:0 +msgid "Resource ID" +msgstr "Resurssi ID" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:68 +#: code:addons/mail_gateway/mail_gateway.py:71 +#: code:addons/mail_gateway/mail_gateway.py:89 +#, python-format +msgid "Method is not implemented" +msgstr "Metodia ei ole toteutettu" + +#. module: mail_gateway +#: view:mailgate.message:0 +#: field:mailgate.message,email_from:0 +msgid "From" +msgstr "Lähettäjä" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Open Attachments" +msgstr "Avaa liitteet" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Message Details" +msgstr "Viestin yksityiskohdat" + +#. module: mail_gateway +#: field:mailgate.message,message_id:0 +msgid "Message Id" +msgstr "Viestin ID" + +#. module: mail_gateway +#: field:mailgate.message,ref_id:0 +msgid "Reference Id" +msgstr "Viite id" + +#. module: mail_gateway +#: view:mailgate.thread:0 +msgid "Mailgateway History" +msgstr "Postiyhteyden historia" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:249 +#, python-format +msgid "Note" +msgstr "Huomautus" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Group By..." +msgstr "Ryhmittely.." + +#. module: mail_gateway +#: constraint:res.partner:0 +msgid "Error ! You can not create recursive associated members." +msgstr "Virhe! Rekursiivisesti rinnastettuja jäseniä ei voi luoda." + +#. module: mail_gateway +#: help:mailgate.message,message_id:0 +msgid "Message Id on Email." +msgstr "Viestin id sähköpostissa" + +#. module: mail_gateway +#: help:mailgate.message,email_to:0 +msgid "Email Recipients" +msgstr "Sähköpostin vastaanottajat" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Details" +msgstr "Yksityiskohdat" + +#. module: mail_gateway +#: view:mailgate.thread:0 +msgid "Mailgate History" +msgstr "Sähöpostivälittäjän historia" + +#. module: mail_gateway +#: model:ir.model,name:mail_gateway.model_email_server_tools +msgid "Email Server Tools" +msgstr "Sähköpostipalvelimen työkalut" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Email Followers" +msgstr "Sähköpostin seuraajat" + +#. module: mail_gateway +#: model:ir.model,name:mail_gateway.model_res_partner +#: view:mailgate.message:0 +#: field:mailgate.message,partner_id:0 +msgid "Partner" +msgstr "Yhteistyökumppani" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:250 +#, python-format +msgid " wrote on %s:\n" +msgstr "" + +#. module: mail_gateway +#: view:mailgate.message:0 +#: field:mailgate.message,description:0 +#: field:mailgate.message,message:0 +msgid "Description" +msgstr "Kuvaus" + +#. module: mail_gateway +#: field:mailgate.message,email_to:0 +msgid "To" +msgstr "Vastaanottaja" + +#. module: mail_gateway +#: help:mailgate.message,references:0 +msgid "References emails." +msgstr "Viittaavat sähköpostit" + +#. module: mail_gateway +#: help:mailgate.message,email_cc:0 +msgid "Carbon Copy Email Recipients" +msgstr "Kopio viestistä vastaanottajille" + +#. module: mail_gateway +#: model:ir.module.module,shortdesc:mail_gateway.module_meta_information +msgid "Email Gateway System" +msgstr "Sähköpostivälitysjärjstelmä" + +#. module: mail_gateway +#: field:mailgate.message,date:0 +msgid "Date" +msgstr "Päiväys" + +#. module: mail_gateway +#: field:mailgate.message,model:0 +msgid "Object Name" +msgstr "Objektin nimi" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Partner Name" +msgstr "Kumppanin Nimi" + +#. module: mail_gateway +#: model:ir.actions.act_window,name:mail_gateway.action_view_mailgate_thread +msgid "Mailgateway Threads" +msgstr "sähköpostivälittäjän keskustelut" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:247 +#, python-format +msgid "Opportunity" +msgstr "Mahdollisuus" + +#. module: mail_gateway +#: model:ir.actions.act_window,name:mail_gateway.act_res_partner_emails +#: model:ir.actions.act_window,name:mail_gateway.action_view_mailgate_message +#: view:mailgate.message:0 +#: field:res.partner,emails:0 +msgid "Emails" +msgstr "Sähköpostit" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:252 +#, python-format +msgid "Stage" +msgstr "Vaihe" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:250 +#, python-format +msgid " added note on " +msgstr " lisäsi huomautuksen " + +#. module: mail_gateway +#: help:mailgate.message,email_from:0 +msgid "Email From" +msgstr "Sähköposti lähettäjältä" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Thread" +msgstr "Keskustelu" + +#. module: mail_gateway +#: model:ir.model,name:mail_gateway.model_mailgate_message +msgid "Mailgateway Message" +msgstr "sähköpostivälittäjän viesti" + +#. module: mail_gateway +#: model:ir.actions.act_window,name:mail_gateway.action_view_mail_message +#: field:mailgate.thread,message_ids:0 +msgid "Messages" +msgstr "Viestit" + +#. module: mail_gateway +#: field:mailgate.message,user_id:0 +msgid "User Responsible" +msgstr "Vastuunalainen käyttäjä" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:248 +#, python-format +msgid "Converted to Opportunity" +msgstr "Muutettu mahdollisuudeksi" + +#. module: mail_gateway +#: field:mailgate.message,email_bcc:0 +msgid "Bcc" +msgstr "Piilokopio" + +#. module: mail_gateway +#: field:mailgate.message,history:0 +msgid "Is History?" +msgstr "onko historiaa?" + +#. module: mail_gateway +#: help:mailgate.message,email_bcc:0 +msgid "Blind Carbon Copy Email Recipients" +msgstr "Piilokopion vastaanottajat" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "mailgate message" +msgstr "Postinvälittäjän viesti" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:148 +#: view:mailgate.thread:0 +#: view:res.partner:0 +#, python-format +msgid "History" +msgstr "Historia" + +#. module: mail_gateway +#: field:mailgate.message,references:0 +msgid "References" +msgstr "Viitteet" + +#. module: mail_gateway +#: model:ir.model,name:mail_gateway.model_mailgate_thread +#: view:mailgate.thread:0 +msgid "Mailgateway Thread" +msgstr "sähköpostivälittäjän keskustelu" + +#. module: mail_gateway +#: model:ir.actions.act_window,name:mail_gateway.act_res_partner_open_email +#: view:mailgate.message:0 +#: field:mailgate.message,attachment_ids:0 +#: view:mailgate.thread:0 +msgid "Attachments" +msgstr "Liitteet" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Open Document" +msgstr "Avaa asiakirja" + +#. module: mail_gateway +#: view:mailgate.thread:0 +msgid "Email Details" +msgstr "Sähköpostin yksityiskohdat" + +#. module: mail_gateway +#: field:mailgate.message,email_cc:0 +msgid "Cc" +msgstr "Kopio" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:254 +#, python-format +msgid " on %s:\n" +msgstr "" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Month" +msgstr "Kuukausi" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Email Search" +msgstr "Sähköpostin haku" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:561 +#, python-format +msgid "receive" +msgstr "vastaanota" + +#. module: mail_gateway +#: model:ir.module.module,description:mail_gateway.module_meta_information +msgid "" +"The generic email gateway system allows to send and receive emails\n" +" * History for Emails\n" +" * Easy Integration with any Module" +msgstr "" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:255 +#, python-format +msgid "Changed Status to: " +msgstr "Tila muutettu : " + +#. module: mail_gateway +#: field:mailgate.message,display_text:0 +msgid "Display Text" +msgstr "Näytä teksti" + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Owner" +msgstr "Omistaja" + +#. module: mail_gateway +#: code:addons/mail_gateway/mail_gateway.py:253 +#, python-format +msgid "Changed Stage to: " +msgstr "Vaihe muutettu : " + +#. module: mail_gateway +#: view:mailgate.message:0 +msgid "Message" +msgstr "Viesti" + +#. module: mail_gateway +#: view:mailgate.message:0 +#: field:mailgate.message,name:0 +msgid "Subject" +msgstr "Aihe" + +#. module: mail_gateway +#: help:mailgate.message,ref_id:0 +msgid "Message Id in Email Server." +msgstr "Viestin ID sähköpostipalvelimella." + +#, python-format +#~ msgid " wrote on " +#~ msgstr " kirjoitti " diff --git a/addons/outlook/i18n/fi.po b/addons/outlook/i18n/fi.po new file mode 100644 index 00000000000..c99b602787c --- /dev/null +++ b/addons/outlook/i18n/fi.po @@ -0,0 +1,147 @@ +# Finnish 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-20 09:14+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-21 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: outlook +#: field:outlook.installer,doc_file:0 +msgid "Installation Manual" +msgstr "Asennusohje" + +#. module: outlook +#: field:outlook.installer,plugin_file:0 +msgid "Outlook Plug-in" +msgstr "Outlook liitännäinen" + +#. module: outlook +#: field:outlook.installer,description:0 +msgid "Description" +msgstr "Kuvaus" + +#. module: outlook +#: model:ir.ui.menu,name:outlook.menu_base_config_plugins_outlook +#: view:outlook.installer:0 +msgid "Outlook Plug-In" +msgstr "Outlook liitännäinen" + +#. module: outlook +#: view:outlook.installer:0 +msgid "Skip" +msgstr "Ohita" + +#. module: outlook +#: model:ir.module.module,shortdesc:outlook.module_meta_information +msgid "Outlook Interface" +msgstr "Outlook liittymä" + +#. module: outlook +#: field:outlook.installer,doc_name:0 +#: field:outlook.installer,name:0 +msgid "File name" +msgstr "Tiedostonimi" + +#. module: outlook +#: field:outlook.installer,outlook:0 +msgid "Outlook Plug-in " +msgstr "Outlook liitännäinen " + +#. module: outlook +#: model:ir.module.module,description:outlook.module_meta_information +msgid "" +"\n" +" This module provide the Outlook plug-in. \n" +"\n" +" Outlook plug-in allows you to select an object that you’d like to add\n" +" to your email and its attachments from MS Outlook. You can select a " +"partner, a task,\n" +" a project, an analytical account, or any other object and Archived " +"selected\n" +" mail in mailgate.messages with attachments.\n" +"\n" +" " +msgstr "" + +#. module: outlook +#: help:outlook.installer,doc_file:0 +msgid "The documentation file :- how to install Outlook Plug-in." +msgstr "Dokumentointi : -kuinka outlook liitännäinen asennetaan." + +#. module: outlook +#: model:ir.model,name:outlook.model_outlook_installer +msgid "outlook.installer" +msgstr "" + +#. module: outlook +#: model:ir.actions.act_window,name:outlook.action_outlook_installer +#: model:ir.actions.act_window,name:outlook.action_outlook_wizard +#: view:outlook.installer:0 +msgid "Outlook Plug-In Configuration" +msgstr "Outlook liitännäisen konfiguraatio" + +#. module: outlook +#: field:outlook.installer,progress:0 +msgid "Configuration Progress" +msgstr "Konfiguraation eteneminen" + +#. module: outlook +#: view:outlook.installer:0 +msgid "" +"This plug-in allows you to link your e-mail to OpenERP's documents. You can " +"attach it to any existing one in OpenERP or create a new one." +msgstr "" +"Tämä liitännäien sallii sinun linkittää sähköpostisi OpenERP dokumentteihin. " +"Voit liittää sen mihin tahansa OpenERP:iin tai luoda uuden." + +#. module: outlook +#: help:outlook.installer,outlook:0 +msgid "" +"Allows you to select an object that you would like to add to your email and " +"its attachments." +msgstr "" +"Voit valita objektin jonka haluat liittää sähköpostiin ja sen liitteisiin." + +#. module: outlook +#: view:outlook.installer:0 +msgid "title" +msgstr "otsikko" + +#. module: outlook +#: view:outlook.installer:0 +msgid "_Close" +msgstr "" + +#. module: outlook +#: view:outlook.installer:0 +msgid "Installation and Configuration Steps" +msgstr "Asennus ja konfigurointivaiheet" + +#. module: outlook +#: field:outlook.installer,config_logo:0 +msgid "Image" +msgstr "Kuva" + +#. module: outlook +#: help:outlook.installer,plugin_file:0 +msgid "" +"outlook plug-in file. Save as this file and install this plug-in in outlook." +msgstr "" +"Outlook liitännäistiedosto. Talleta se tiedostona ja asenna outlookissa." + +#. module: outlook +#: view:outlook.installer:0 +msgid "Configure" +msgstr "Konfiguroi" diff --git a/addons/pad/i18n/fi.po b/addons/pad/i18n/fi.po new file mode 100644 index 00000000000..fbec40b9370 --- /dev/null +++ b/addons/pad/i18n/fi.po @@ -0,0 +1,77 @@ +# Finnish 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-20 09:18+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-21 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: pad +#: code:addons/pad/web/editors.py:32 +#, python-format +msgid "Ok" +msgstr "OK" + +#. module: pad +#: code:addons/pad/web/editors.py:29 +#, python-format +msgid "Name" +msgstr "Nimi" + +#. module: pad +#: help:res.company,pad_index:0 +msgid "The root URL of the company's pad instance" +msgstr "Peruspolku yrityksen PAD instassiin" + +#. module: pad +#: model:ir.model,name:pad.model_res_company +msgid "Companies" +msgstr "Yritykset" + +#. module: pad +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "Virhe! Et voi luoda sisäkkäisiä yrityksiä." + +#. module: pad +#: code:addons/pad/web/editors.py:17 +#, python-format +msgid "Write" +msgstr "Kirjoita" + +#. module: pad +#: model:ir.module.module,description:pad.module_meta_information +msgid "" +"\n" +"Adds enhanced support for (Ether)Pad attachments in the web client, lets " +"the\n" +"company customize which Pad installation should be used to link to new pads\n" +"(by default, pad.openerp.com)\n" +" " +msgstr "" + +#. module: pad +#: field:res.company,pad_index:0 +msgid "Pad root URL" +msgstr "Padin peruspolku (URL)" + +#. module: pad +#: view:res.company:0 +msgid "Pad" +msgstr "" + +#. module: pad +#: model:ir.module.module,shortdesc:pad.module_meta_information +msgid "Enhanced support for (Ether)Pad attachments" +msgstr "Parannettu tuki (Ether)PAD liitännöille" diff --git a/addons/procurement/i18n/fi.po b/addons/procurement/i18n/fi.po new file mode 100644 index 00000000000..6895606767f --- /dev/null +++ b/addons/procurement/i18n/fi.po @@ -0,0 +1,899 @@ +# Finnish 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-20 09:20+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-21 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: procurement +#: view:make.procurement:0 +msgid "Ask New Products" +msgstr "Kysy uusia tuotteita" + +#. module: procurement +#: model:ir.ui.menu,name:procurement.menu_stock_sched +msgid "Schedulers" +msgstr "Ajastimet" + +#. module: procurement +#: model:ir.model,name:procurement.model_make_procurement +msgid "Make Procurements" +msgstr "Tee hankinnat" + +#. module: procurement +#: help:procurement.order.compute.all,automatic:0 +msgid "" +"Triggers an automatic procurement for all products that have a virtual stock " +"under 0. You should probably not use this option, we suggest using a MTO " +"configuration on products." +msgstr "" +"Liipaisee automaattisen hankinnan kaikille tuotteille joiden näennäisvarasto " +"on alle 0. Tätä vaihtoehtoa ei yleensä käytetä, vaan tuotteille on parempi " +"määrittää varastosäännöt." + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Group By..." +msgstr "Ryhmittely.." + +#. module: procurement +#: help:stock.warehouse.orderpoint,procurement_draft_ids:0 +msgid "Draft procurement of the product and location of that orderpoint" +msgstr "Luonnnos hankinta tuotteelle ja tilauspisteen paikalle" + +#. module: procurement +#: code:addons/procurement/procurement.py:288 +#, python-format +msgid "No supplier defined for this product !" +msgstr "Tuotteelle ei ole määritelty toimittajaa!" + +#. module: procurement +#: field:make.procurement,uom_id:0 +msgid "Unit of Measure" +msgstr "Mittayksikkö" + +#. module: procurement +#: field:procurement.order,procure_method:0 +msgid "Procurement Method" +msgstr "Hankintatapa" + +#. module: procurement +#: code:addons/procurement/procurement.py:304 +#, python-format +msgid "No address defined for the supplier" +msgstr "Toimittajan osoitetta ei ole määritetty" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.action_procurement_compute +msgid "Compute Stock Minimum Rules Only" +msgstr "Laske vain varaston minimirajat" + +#. module: procurement +#: field:procurement.order,company_id:0 +#: field:stock.warehouse.orderpoint,company_id:0 +msgid "Company" +msgstr "Yritys" + +#. module: procurement +#: field:procurement.order,product_uos_qty:0 +msgid "UoS Quantity" +msgstr "Myyntiyksikkö määrä" + +#. module: procurement +#: view:procurement.order:0 +#: field:procurement.order,name:0 +msgid "Reason" +msgstr "Syy" + +#. module: procurement +#: view:procurement.order.compute:0 +msgid "Compute Procurements" +msgstr "Laske hankinnat" + +#. module: procurement +#: field:procurement.order,message:0 +msgid "Latest error" +msgstr "Viimeisin virhe" + +#. module: procurement +#: help:mrp.property,composition:0 +msgid "Not used in computations, for information purpose only." +msgstr "Ei käytetä laskutoimituksiin - vain tietoja varten." + +#. module: procurement +#: field:stock.warehouse.orderpoint,procurement_id:0 +msgid "Latest procurement" +msgstr "Viimeisin hankinta" + +#. module: procurement +#: view:procurement.order:0 +msgid "Notes" +msgstr "Huomautukset" + +#. module: procurement +#: selection:procurement.order,procure_method:0 +msgid "on order" +msgstr "tilauksessa" + +#. module: procurement +#: help:procurement.order,message:0 +msgid "Exception occurred while computing procurement orders." +msgstr "Hankintatilausten laskennassa sattui poikkeus." + +#. module: procurement +#: help:procurement.order,state:0 +msgid "" +"When a procurement is created the state is set to 'Draft'.\n" +" If the procurement is confirmed, the state is set to 'Confirmed'. " +" \n" +"After confirming the state is set to 'Running'.\n" +" If any exception arises in the order then the state is set to 'Exception'.\n" +" Once the exception is removed the state becomes 'Ready'.\n" +" It is in 'Waiting'. state when the procurement is waiting for another one " +"to finish." +msgstr "" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Minimum Stock Rules Search" +msgstr "Minimivarasto sääntöjen haku" + +#. module: procurement +#: help:stock.warehouse.orderpoint,product_min_qty:0 +msgid "" +"When the virtual stock goes belong the Min Quantity, OpenERP generates a " +"procurement to bring the virtual stock to the Max Quantity." +msgstr "" + +#. module: procurement +#: view:procurement.order.compute.all:0 +msgid "Scheduler Parameters" +msgstr "Aikataulutuksen parametrit" + +#. module: procurement +#: model:ir.model,name:procurement.model_stock_move +msgid "Stock Move" +msgstr "Varastosiirto" + +#. module: procurement +#: view:procurement.order:0 +msgid "Planification" +msgstr "Suunnittelu" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Ready" +msgstr "Valmis" + +#. module: procurement +#: field:procurement.order.compute.all,automatic:0 +msgid "Automatic orderpoint" +msgstr "Automaattinen tilauspiste" + +#. module: procurement +#: field:mrp.property,composition:0 +msgid "Properties composition" +msgstr "Ominaisuuksien koostumus" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Confirmed" +msgstr "Vahvistettu" + +#. module: procurement +#: view:procurement.order:0 +msgid "Retry" +msgstr "Yritä uudelleen" + +#. module: procurement +#: view:procurement.order.compute:0 +#: view:procurement.orderpoint.compute:0 +msgid "Parameters" +msgstr "Parametrit" + +#. module: procurement +#: view:procurement.order:0 +msgid "Confirm" +msgstr "Vahvista" + +#. module: procurement +#: help:procurement.order,origin:0 +msgid "" +"Reference of the document that created this Procurement.\n" +"This is automatically completed by OpenERP." +msgstr "" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Procurement Orders to Process" +msgstr "Prosessoitavat hankintatilaukset" + +#. module: procurement +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "Virhe! Et voi luoda sisäkkäisiä yrityksiä." + +#. module: procurement +#: field:procurement.order,priority:0 +msgid "Priority" +msgstr "Prioriteetti" + +#. module: procurement +#: view:procurement.order:0 +#: field:procurement.order,state:0 +msgid "State" +msgstr "Tila" + +#. module: procurement +#: field:procurement.order,location_id:0 +#: view:stock.warehouse.orderpoint:0 +#: field:stock.warehouse.orderpoint,location_id:0 +msgid "Location" +msgstr "Sijainti" + +#. module: procurement +#: model:ir.model,name:procurement.model_stock_picking +msgid "Picking List" +msgstr "Keräilylista" + +#. module: procurement +#: field:make.procurement,warehouse_id:0 +#: view:stock.warehouse.orderpoint:0 +#: field:stock.warehouse.orderpoint,warehouse_id:0 +msgid "Warehouse" +msgstr "Varasto" + +#. module: procurement +#: selection:stock.warehouse.orderpoint,logic:0 +msgid "Best price (not yet active!)" +msgstr "Paras hinta (ei vielä aktiivinen!)" + +#. module: procurement +#: view:procurement.order:0 +msgid "Product & Location" +msgstr "Tuote & Sijainti" + +#. module: procurement +#: model:ir.model,name:procurement.model_procurement_order_compute +msgid "Compute Procurement" +msgstr "Laske hankinta" + +#. module: procurement +#: model:ir.module.module,shortdesc:procurement.module_meta_information +#: field:stock.move,procurements:0 +msgid "Procurements" +msgstr "Hankinnat" + +#. module: procurement +#: field:res.company,schedule_range:0 +msgid "Scheduler Range Days" +msgstr "Ajastimen jakson päivät" + +#. module: procurement +#: model:ir.actions.act_window,help:procurement.procurement_action +msgid "" +"A procurement order is used to record a need for a specific product at a " +"specific location. A procurement order is usually created automatically from " +"sales orders, a Pull Logistics rule or Minimum Stock Rules. When the " +"procurement order is confirmed, it automatically creates the necessary " +"operations to fullfil the need: purchase order proposition, manufacturing " +"order, etc." +msgstr "" + +#. module: procurement +#: field:make.procurement,date_planned:0 +msgid "Planned Date" +msgstr "Suunniteltu päivämäärä" + +#. module: procurement +#: view:procurement.order:0 +msgid "Group By" +msgstr "Ryhmittelyn peruste" + +#. module: procurement +#: field:make.procurement,qty:0 +#: field:procurement.order,product_qty:0 +msgid "Quantity" +msgstr "Määrä" + +#. module: procurement +#: code:addons/procurement/procurement.py:377 +#, python-format +msgid "Not enough stock and no minimum orderpoint rule defined." +msgstr "Ei tarpeeksi varastoa eikä minimitilauspistesääntöä määriteltynä" + +#. module: procurement +#: code:addons/procurement/procurement.py:137 +#, python-format +msgid "Invalid action !" +msgstr "Virheellinen toiminto!" + +#. module: procurement +#: view:procurement.order:0 +msgid "References" +msgstr "Viitteet" + +#. module: procurement +#: view:res.company:0 +msgid "Configuration" +msgstr "Konfiguraatio" + +#. module: procurement +#: field:stock.warehouse.orderpoint,qty_multiple:0 +msgid "Qty Multiple" +msgstr "Määrän kerroin" + +#. module: procurement +#: help:procurement.order,procure_method:0 +msgid "" +"If you encode manually a Procurement, you probably want to use a make to " +"order method." +msgstr "" + +#. module: procurement +#: model:ir.ui.menu,name:procurement.menu_stock_procurement +msgid "Automatic Procurements" +msgstr "Automaattiset hankinnat" + +#. module: procurement +#: field:stock.warehouse.orderpoint,product_max_qty:0 +msgid "Max Quantity" +msgstr "Maksimimäärä" + +#. module: procurement +#: model:ir.model,name:procurement.model_procurement_order +#: model:process.process,name:procurement.process_process_procurementprocess0 +#: view:procurement.order:0 +msgid "Procurement" +msgstr "Hankinta" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.procurement_action +msgid "Procurement Orders" +msgstr "Hankintatilaukset" + +#. module: procurement +#: view:procurement.order:0 +msgid "To Fix" +msgstr "Korjattavaksi" + +#. module: procurement +#: view:procurement.order:0 +msgid "Exceptions" +msgstr "Poikkeukset" + +#. module: procurement +#: model:process.node,note:procurement.process_node_serviceonorder0 +msgid "Assignment from Production or Purchase Order." +msgstr "Määritys tuotannosta tai ostotilaukselta." + +#. module: procurement +#: model:ir.model,name:procurement.model_mrp_property +msgid "Property" +msgstr "Ominaisuus" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.act_make_procurement +#: view:make.procurement:0 +msgid "Procurement Request" +msgstr "Hankintapyyntö" + +#. module: procurement +#: view:procurement.orderpoint.compute:0 +msgid "Compute Stock" +msgstr "Laske varasto" + +#. module: procurement +#: view:procurement.order:0 +msgid "Late" +msgstr "Myöhässä" + +#. module: procurement +#: model:process.process,name:procurement.process_process_serviceproductprocess0 +msgid "Service" +msgstr "Palvelu" + +#. module: procurement +#: model:ir.module.module,description:procurement.module_meta_information +msgid "" +"\n" +" This is the module for computing Procurements.\n" +" " +msgstr "" + +#. module: procurement +#: field:stock.warehouse.orderpoint,procurement_draft_ids:0 +msgid "Related Procurement Orders" +msgstr "Liittyvät hankintatilaukset" + +#. module: procurement +#: view:procurement.orderpoint.compute:0 +msgid "" +"Wizard checks all the stock minimum rules and generate procurement order." +msgstr "Velho tarkistaa kaikki minimivarastosäännöt ja luo hankintatilauksen" + +#. module: procurement +#: field:stock.warehouse.orderpoint,product_min_qty:0 +msgid "Min Quantity" +msgstr "Minimimäärä" + +#. module: procurement +#: selection:procurement.order,priority:0 +msgid "Urgent" +msgstr "Kiireellinen" + +#. module: procurement +#: selection:mrp.property,composition:0 +msgid "plus" +msgstr "plus" + +#. module: procurement +#: code:addons/procurement/procurement.py:325 +#, python-format +msgid "" +"Please check the Quantity in Procurement Order(s), it should not be less " +"than 1!" +msgstr "" +"Ole hyvä ja tarkista määrä hankintatilauksella. Sen ei tulisi olla alle 1 !" + +#. module: procurement +#: help:stock.warehouse.orderpoint,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the " +"orderpoint without removing it." +msgstr "" +"Jos aktiivisen kentän tilaksi asetetaan epätosi (false) se mahdollistaa " +"tilauspisteen piilottamisen ilman sen poistamista" + +#. module: procurement +#: help:stock.warehouse.orderpoint,product_max_qty:0 +msgid "" +"When the virtual stock goes belong the Max Quantity, OpenERP generates a " +"procurement to bring the virtual stock to the Max Quantity." +msgstr "" + +#. module: procurement +#: help:procurement.orderpoint.compute,automatic:0 +msgid "If the stock of a product is under 0, it will act like an orderpoint" +msgstr "Jos tuotteen varastosaldo on alle 0, toimii se tilauspisteenä" + +#. module: procurement +#: view:procurement.order:0 +msgid "Procurement Lines" +msgstr "Hankinnan rivit" + +#. module: procurement +#: view:procurement.order.compute.all:0 +msgid "" +"This wizard allows you to run all procurement, production and/or purchase " +"orders that should be processed based on their configuration. By default, " +"the scheduler is launched automatically every night by OpenERP. You can use " +"this menu to force it to be launched now. Note that it runs in the " +"background, you may have to wait for a few minutes until it has finished " +"computing." +msgstr "" + +#. module: procurement +#: view:procurement.order:0 +#: field:procurement.order,note:0 +msgid "Note" +msgstr "Huomautus" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Draft" +msgstr "Luonnos" + +#. module: procurement +#: view:procurement.order.compute:0 +msgid "This wizard will schedule procurements." +msgstr "Tämä ohjattu toiminto ajoittaa hankinnat." + +#. module: procurement +#: view:procurement.order:0 +msgid "Status" +msgstr "Tila" + +#. module: procurement +#: selection:procurement.order,priority:0 +msgid "Normal" +msgstr "Tavallinen" + +#. module: procurement +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "Erä ei ole samaa tuotetta" + +#. module: procurement +#: field:stock.warehouse.orderpoint,active:0 +msgid "Active" +msgstr "Aktiivinen" + +#. module: procurement +#: model:process.node,name:procurement.process_node_procureproducts0 +msgid "Procure Products" +msgstr "Hanki tuotteita" + +#. module: procurement +#: field:procurement.order,date_planned:0 +msgid "Scheduled date" +msgstr "Arvioitu päivämäärä" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Exception" +msgstr "Poikkeus" + +#. module: procurement +#: code:addons/procurement/schedulers.py:179 +#, python-format +msgid "Automatic OP: %s" +msgstr "Automaattinen tilauspiste: %s" + +#. module: procurement +#: model:ir.model,name:procurement.model_procurement_orderpoint_compute +msgid "Automatic Order Point" +msgstr "Automaattinen tilauspiste" + +#. module: procurement +#: model:ir.model,name:procurement.model_stock_warehouse_orderpoint +msgid "Minimum Inventory Rule" +msgstr "Minimivarastosääntö" + +#. module: procurement +#: model:ir.model,name:procurement.model_res_company +msgid "Companies" +msgstr "Yritykset" + +#. module: procurement +#: view:procurement.order:0 +msgid "Extra Information" +msgstr "Lisätiedot" + +#. module: procurement +#: help:procurement.order,name:0 +msgid "Procurement name." +msgstr "Hankinnan nimi" + +#. module: procurement +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "Tälle tuotteelle pitää määrittää valmistuserä" + +#. module: procurement +#: view:procurement.order:0 +msgid "Procurement Reason" +msgstr "Hankinnan syy" + +#. module: procurement +#: sql_constraint:stock.warehouse.orderpoint:0 +msgid "Qty Multiple must be greater than zero." +msgstr "Määrän kertoimen tulee olla yli 0" + +#. module: procurement +#: selection:stock.warehouse.orderpoint,logic:0 +msgid "Order to Max" +msgstr "Tilaa maksimiin" + +#. module: procurement +#: field:procurement.order,date_close:0 +msgid "Date Closed" +msgstr "Sulkemispäivä" + +#. module: procurement +#: code:addons/procurement/procurement.py:372 +#, python-format +msgid "Procurement '%s' is in exception: not enough stock." +msgstr "" + +#. module: procurement +#: code:addons/procurement/procurement.py:138 +#, python-format +msgid "Cannot delete Procurement Order(s) which are in %s State!" +msgstr "Ei voi poistaa hankintatilauksia jotka ovat tilassa %s !" + +#. module: procurement +#: code:addons/procurement/procurement.py:324 +#, python-format +msgid "Data Insufficient !" +msgstr "Riittämätön data!" + +#. module: procurement +#: model:ir.model,name:procurement.model_mrp_property_group +#: field:mrp.property,group_id:0 +#: field:mrp.property.group,name:0 +msgid "Property Group" +msgstr "Ominaisuusryhmä" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Misc" +msgstr "Sekalaiset" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Locations" +msgstr "Sijainnit" + +#. module: procurement +#: selection:procurement.order,procure_method:0 +msgid "from stock" +msgstr "varastosta" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "General Information" +msgstr "Yleiset tiedot" + +#. module: procurement +#: view:procurement.order:0 +msgid "Run Procurement" +msgstr "Suorita hankinta" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Done" +msgstr "Valmis" + +#. module: procurement +#: help:stock.warehouse.orderpoint,qty_multiple:0 +msgid "The procurement quantity will by rounded up to this multiple." +msgstr "Hankinnan määrä pyöristetään ylös tähän moninkertaan." + +#. module: procurement +#: view:make.procurement:0 +#: view:procurement.order:0 +#: selection:procurement.order,state:0 +#: view:procurement.order.compute:0 +#: view:procurement.order.compute.all:0 +#: view:procurement.orderpoint.compute:0 +msgid "Cancel" +msgstr "Peruuta" + +#. module: procurement +#: field:stock.warehouse.orderpoint,logic:0 +msgid "Reordering Mode" +msgstr "Uusintatilauksen tapa" + +#. module: procurement +#: field:procurement.order,origin:0 +msgid "Source Document" +msgstr "Lähdedokumentti" + +#. module: procurement +#: selection:procurement.order,priority:0 +msgid "Not urgent" +msgstr "Ei kiireellinen" + +#. module: procurement +#: model:ir.model,name:procurement.model_procurement_order_compute_all +msgid "Compute all schedulers" +msgstr "Laske kaikki ajastimet" + +#. module: procurement +#: view:procurement.order:0 +msgid "Current" +msgstr "Nykyinen" + +#. module: procurement +#: view:board.board:0 +msgid "Procurements in Exception" +msgstr "Poikkeavat hankinnat" + +#. module: procurement +#: view:procurement.order:0 +msgid "Details" +msgstr "Yksityiskohdat" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.procurement_action5 +#: model:ir.actions.act_window,name:procurement.procurement_action_board +#: model:ir.actions.act_window,name:procurement.procurement_exceptions +#: model:ir.ui.menu,name:procurement.menu_stock_procurement_action +msgid "Procurement Exceptions" +msgstr "Hankinnan poikkeamat" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.act_procurement_2_stock_warehouse_orderpoint +#: model:ir.actions.act_window,name:procurement.act_product_product_2_stock_warehouse_orderpoint +#: model:ir.actions.act_window,name:procurement.act_stock_warehouse_2_stock_warehouse_orderpoint +#: model:ir.actions.act_window,name:procurement.action_orderpoint_form +#: model:ir.ui.menu,name:procurement.menu_stock_order_points +#: view:stock.warehouse.orderpoint:0 +msgid "Minimum Stock Rules" +msgstr "Varaston minimirajat" + +#. module: procurement +#: field:procurement.order,close_move:0 +msgid "Close Move at end" +msgstr "Sulje siirto lopussa" + +#. module: procurement +#: view:procurement.order:0 +msgid "Scheduled Date" +msgstr "Suunniteltu päivämäärä" + +#. module: procurement +#: field:make.procurement,product_id:0 +#: view:procurement.order:0 +#: field:procurement.order,product_id:0 +#: field:stock.warehouse.orderpoint,product_id:0 +msgid "Product" +msgstr "Tuote" + +#. module: procurement +#: view:procurement.order:0 +msgid "Temporary" +msgstr "Väliaikainen" + +#. module: procurement +#: field:mrp.property,description:0 +#: field:mrp.property.group,description:0 +msgid "Description" +msgstr "Kuvaus" + +#. module: procurement +#: selection:mrp.property,composition:0 +msgid "min" +msgstr "minimi" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Quantity Rules" +msgstr "Määräsäännöt" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Running" +msgstr "Käynnissä olevat" + +#. module: procurement +#: field:stock.warehouse.orderpoint,product_uom:0 +msgid "Product UOM" +msgstr "Tuotteen mittayksikkö" + +#. module: procurement +#: model:process.node,name:procurement.process_node_serviceonorder0 +msgid "Make to Order" +msgstr "Valmista tilaukselle" + +#. module: procurement +#: view:procurement.order:0 +msgid "UOM" +msgstr "Mittayksikkö" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Waiting" +msgstr "Odotetaan" + +#. module: procurement +#: model:ir.actions.act_window,help:procurement.action_orderpoint_form +msgid "" +"You can define your minimum stock rules, so that OpenERP will automatically " +"create draft manufacturing orders or purchase quotations according to the " +"stock level. Once the virtual stock of a product (= stock on hand minus all " +"confirmed orders and reservations) is below the minimum quantity, OpenERP " +"will generate a procurement request to increase the stock up to the maximum " +"quantity." +msgstr "" + +#. module: procurement +#: field:procurement.order,move_id:0 +msgid "Reservation" +msgstr "Varaus" + +#. module: procurement +#: model:process.node,note:procurement.process_node_procureproducts0 +msgid "The way to procurement depends on the product type." +msgstr "Hankintatapa riippuu tuotteen tyypistä" + +#. module: procurement +#: view:make.procurement:0 +msgid "" +"This wizard will plan the procurement for this product. This procurement may " +"generate task, production orders or purchase orders." +msgstr "" + +#. module: procurement +#: view:res.company:0 +msgid "MRP & Logistics Scheduler" +msgstr "MRP ja logistiikka ajastin" + +#. module: procurement +#: field:mrp.property,name:0 +#: field:stock.warehouse.orderpoint,name:0 +msgid "Name" +msgstr "Nimi" + +#. module: procurement +#: selection:mrp.property,composition:0 +msgid "max" +msgstr "maksimi" + +#. module: procurement +#: field:procurement.order,product_uos:0 +msgid "Product UoS" +msgstr "Tuotteen myyntiyksikkö" + +#. module: procurement +#: code:addons/procurement/procurement.py:353 +#, python-format +msgid "from stock: products assigned." +msgstr "varastosta: tuotteet määrätty." + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.action_compute_schedulers +#: model:ir.ui.menu,name:procurement.menu_stock_proc_schedulers +#: view:procurement.order.compute.all:0 +msgid "Compute Schedulers" +msgstr "Laske ajastimet" + +#. module: procurement +#: model:ir.actions.act_window,help:procurement.procurement_exceptions +msgid "" +"Procurement Orders represent the need for a certain quantity of products, at " +"a given time, in a given location. Sales Orders are one typical source of " +"Procurement Orders (but these are distinct documents). Depending on the " +"procurement parameters and the product configuration, the procurement engine " +"will attempt to satisfy the need by reserving products from stock, ordering " +"products from a supplier, or passing a manufacturing order, etc. A " +"Procurement Exception occurs when the system cannot find a way to fulfill a " +"procurement. Some exceptions will resolve themselves automatically, but " +"others require manual intervention (those are identified by a specific error " +"message)." +msgstr "" + +#. module: procurement +#: field:procurement.order,product_uom:0 +msgid "Product UoM" +msgstr "Tuotteen mittayksikkö" + +#. module: procurement +#: view:procurement.order:0 +msgid "Search Procurement" +msgstr "Hae hankinnoista" + +#. module: procurement +#: help:res.company,schedule_range:0 +msgid "" +"This is the time frame analysed by the scheduler when computing " +"procurements. All procurements that are not between today and today+range " +"are skipped for future computation." +msgstr "" +"Aikaikkuna jonka ajastin analysoi hankintojen laskennassa. Kaikki hankinnat " +"jotka eivät ole jakson tänään ja tänään+jakso sisällä ohitetaan tulevia " +"laskentoja varten" + +#. module: procurement +#: selection:procurement.order,priority:0 +msgid "Very Urgent" +msgstr "Erittäin kiireellinen" + +#. module: procurement +#: field:procurement.orderpoint.compute,automatic:0 +msgid "Automatic Orderpoint" +msgstr "Automaattinen tilauspiste" + +#. module: procurement +#: view:procurement.order:0 +msgid "Procurement Details" +msgstr "Hankinnan yksityiskohdat" + +#. module: procurement +#: code:addons/procurement/schedulers.py:180 +#, python-format +msgid "SCHEDULER" +msgstr "AJASTIN" diff --git a/addons/product_manufacturer/i18n/fi.po b/addons/product_manufacturer/i18n/fi.po new file mode 100644 index 00000000000..4d8ac103ccc --- /dev/null +++ b/addons/product_manufacturer/i18n/fi.po @@ -0,0 +1,87 @@ +# Finnish 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-20 10:09+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-21 04:36+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: product_manufacturer +#: model:ir.module.module,description:product_manufacturer.module_meta_information +msgid "A module that add manufacturers and attributes on the product form" +msgstr "Moduuli jo lisää valmistajia ja attribuutteja tuotelomakkeelle" + +#. module: product_manufacturer +#: field:product.product,manufacturer_pref:0 +msgid "Manufacturer Product Code" +msgstr "Valmistajan tuotekoodi" + +#. module: product_manufacturer +#: model:ir.model,name:product_manufacturer.model_product_product +#: field:product.manufacturer.attribute,product_id:0 +msgid "Product" +msgstr "Tuote" + +#. module: product_manufacturer +#: view:product.manufacturer.attribute:0 +msgid "Product Template Name" +msgstr "Tuotemallipohjan nimi" + +#. module: product_manufacturer +#: model:ir.model,name:product_manufacturer.model_product_manufacturer_attribute +msgid "Product attributes" +msgstr "Tuotteen attribuutit" + +#. module: product_manufacturer +#: view:product.manufacturer.attribute:0 +#: view:product.product:0 +msgid "Product Attributes" +msgstr "Tuotteen attribuutit" + +#. module: product_manufacturer +#: field:product.manufacturer.attribute,name:0 +msgid "Attribute" +msgstr "Attribuutti" + +#. module: product_manufacturer +#: field:product.manufacturer.attribute,value:0 +msgid "Value" +msgstr "Arvo" + +#. module: product_manufacturer +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "Virhe: Väärä EAN-koodi" + +#. module: product_manufacturer +#: view:product.product:0 +#: field:product.product,attribute_ids:0 +msgid "Attributes" +msgstr "Attribuutit" + +#. module: product_manufacturer +#: model:ir.module.module,shortdesc:product_manufacturer.module_meta_information +msgid "Products Attributes & Manufacturers" +msgstr "Tuotteen attribuutit ja valmistajat" + +#. module: product_manufacturer +#: field:product.product,manufacturer_pname:0 +msgid "Manufacturer Product Name" +msgstr "Valmistajan tuotenimi" + +#. module: product_manufacturer +#: view:product.product:0 +#: field:product.product,manufacturer:0 +msgid "Manufacturer" +msgstr "Valmistaja" diff --git a/addons/purchase_requisition/i18n/fi.po b/addons/purchase_requisition/i18n/fi.po new file mode 100644 index 00000000000..c2b9043f1da --- /dev/null +++ b/addons/purchase_requisition/i18n/fi.po @@ -0,0 +1,418 @@ +# Finnish 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-20 09:53+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-21 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: selection:purchase.requisition,state:0 +msgid "In Progress" +msgstr "Käynnissä" + +#. module: purchase_requisition +#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:44 +#, python-format +msgid "No Product in Tender" +msgstr "Ei tarjottua tuotetta" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Confirm" +msgstr "Vahvista" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: field:purchase.requisition,user_id:0 +msgid "Responsible" +msgstr "Vastuuhenkilö" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Group By..." +msgstr "Ryhmittely.." + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: field:purchase.requisition,state:0 +msgid "State" +msgstr "Tila" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: selection:purchase.requisition,state:0 +msgid "Draft" +msgstr "Luonnos" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Supplier" +msgstr "Toimittaja" + +#. module: purchase_requisition +#: field:purchase.requisition,exclusive:0 +msgid "Requisition Type" +msgstr "Pyynnön tyyppi" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Product Detail" +msgstr "Tuotteen yksityiskohdat" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: field:purchase.requisition,date_start:0 +msgid "Requisition Date" +msgstr "Pyynnön päivä" + +#. module: purchase_requisition +#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition_partner +#: model:ir.actions.report.xml,name:purchase_requisition.report_purchase_requisition +#: model:ir.model,name:purchase_requisition.model_purchase_requisition +#: field:product.product,purchase_requisition:0 +#: field:purchase.order,requisition_id:0 +#: view:purchase.requisition:0 +#: field:purchase.requisition.line,requisition_id:0 +#: view:purchase.requisition.partner:0 +msgid "Purchase Requisition" +msgstr "Ostotilaus pyyntö" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_purchase_requisition_line +msgid "Purchase Requisition Line" +msgstr "Ostotilauspyynnön rivi" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_product_product +#: field:purchase.requisition.line,product_id:0 +msgid "Product" +msgstr "Tuote" + +#. module: purchase_requisition +#: sql_constraint:purchase.order:0 +msgid "Order Reference must be unique !" +msgstr "Tilauksen viite tulee olla yksilöllinen!" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: field:purchase.requisition,description:0 +msgid "Description" +msgstr "Kuvaus" + +#. module: purchase_requisition +#: help:product.product,purchase_requisition:0 +msgid "" +"Check this box so that requisitions generates purchase requisitions instead " +"of directly requests for quotations." +msgstr "" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Type" +msgstr "Tyyppi" + +#. module: purchase_requisition +#: field:purchase.requisition,company_id:0 +#: field:purchase.requisition.line,company_id:0 +msgid "Company" +msgstr "Yritys" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Request a Quotation" +msgstr "Pyydä tarjousta" + +#. module: purchase_requisition +#: selection:purchase.requisition,exclusive:0 +msgid "Multiple Requisitions" +msgstr "Useita pyyntöjä" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Approved by Supplier" +msgstr "Toimittajan vahvistama" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Reset to Draft" +msgstr "Palauta luonnokseksi" + +#. module: purchase_requisition +#: model:ir.module.module,description:purchase_requisition.module_meta_information +msgid "" +"\n" +" This module allows you to manage your Purchase Requisition.\n" +" When a purchase order is created, you now have the opportunity to save " +"the related requisition.\n" +" This new object will regroup and will allow you to easily keep track and " +"order all your purchase orders.\n" +msgstr "" + +#. module: purchase_requisition +#: field:purchase.requisition.partner,partner_address_id:0 +msgid "Address" +msgstr "Osoite" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Order Reference" +msgstr "Tilauksen viite" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Start Date" +msgstr "Alkupäivä" + +#. module: purchase_requisition +#: model:ir.actions.act_window,help:purchase_requisition.action_purchase_requisition +msgid "" +"A purchase requisition is the step before a request for quotation. In a " +"purchase requisition (or purchase tender), you can record the products you " +"need to buy and trigger the creation of RfQs to suppliers. After the " +"negotiation, once you have reviewed all the supplier's offers, you can " +"validate some and cancel others." +msgstr "" + +#. module: purchase_requisition +#: field:purchase.requisition.line,product_qty:0 +msgid "Quantity" +msgstr "Määrä" + +#. module: purchase_requisition +#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition +#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition_pro_mgt +msgid "Purchase Requisitions" +msgstr "Hankintapyynnöt" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "End Date" +msgstr "Loppupvm" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: field:purchase.requisition,name:0 +msgid "Requisition Reference" +msgstr "Pyynnön viite" + +#. module: purchase_requisition +#: field:purchase.requisition,line_ids:0 +msgid "Products to Purchase" +msgstr "Ostettavat tuotteet" + +#. module: purchase_requisition +#: field:purchase.requisition,date_end:0 +msgid "Requisition Deadline" +msgstr "Pyynnön takaraja (päivä)" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Search Purchase Requisition" +msgstr "Hae ostotilausehdotusta" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Notes" +msgstr "Huomautukset" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Date Ordered" +msgstr "Tilauspäivämäärä" + +#. module: purchase_requisition +#: help:purchase.requisition,exclusive:0 +msgid "" +"Purchase Requisition (exclusive): On the confirmation of a purchase order, " +"it cancels the remaining purchase order.\n" +"Purchase Requisition(Multiple): It allows to have multiple purchase " +"orders.On confirmation of a purchase order it does not cancel the remaining " +"orders" +msgstr "" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Cancel Purchase Order" +msgstr "Peru ostotilaus" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_purchase_order +#: view:purchase.requisition:0 +msgid "Purchase Order" +msgstr "Ostotilaus" + +#. module: purchase_requisition +#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:44 +#, python-format +msgid "Error!" +msgstr "Virhe!" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: field:purchase.requisition.line,product_uom_id:0 +msgid "Product UoM" +msgstr "Tuotteen mittayksikkö" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Products" +msgstr "Tuotteet" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Order Date" +msgstr "Tilauksen päivämäärä" + +#. module: purchase_requisition +#: selection:purchase.requisition,state:0 +msgid "Cancelled" +msgstr "Peruttu" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "[" +msgstr "" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_purchase_requisition_partner +msgid "Purchase Requisition Partner" +msgstr "Ostotilauspyynnön kumppani" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "]" +msgstr "" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Quotation Detail" +msgstr "Tarjouspyynnön yksityiskohdat" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Purchase for Requisitions" +msgstr "Osta pyynnöille" + +#. module: purchase_requisition +#: model:ir.actions.act_window,name:purchase_requisition.act_res_partner_2_purchase_order +msgid "Purchase orders" +msgstr "Ostotilaukset" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: view:purchase.requisition:0 +#: field:purchase.requisition,origin:0 +msgid "Origin" +msgstr "Lähde" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Reference" +msgstr "Viite" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_procurement_order +msgid "Procurement" +msgstr "Hankinta" + +#. module: purchase_requisition +#: field:purchase.requisition,warehouse_id:0 +msgid "Warehouse" +msgstr "Varasto" + +#. module: purchase_requisition +#: field:procurement.order,requisition_id:0 +msgid "Latest Requisition" +msgstr "Viimeisin pyyntö" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Quotations" +msgstr "Tarjoukset" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Qty" +msgstr "Määrä" + +#. module: purchase_requisition +#: selection:purchase.requisition,exclusive:0 +msgid "Purchase Requisition (exclusive)" +msgstr "Ostotilauspyyntö (poissulkeva)" + +#. module: purchase_requisition +#: view:purchase.requisition.partner:0 +msgid "Create Quotation" +msgstr "Luo tarjous" + +#. module: purchase_requisition +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "Virhe: Väärä EAN-koodi" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: selection:purchase.requisition,state:0 +msgid "Done" +msgstr "Valmis" + +#. module: purchase_requisition +#: view:purchase.requisition.partner:0 +msgid "_Cancel" +msgstr "" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Confirm Purchase Order" +msgstr "Vahvista ostotilaus" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Cancel" +msgstr "Peruuta" + +#. module: purchase_requisition +#: field:purchase.requisition.partner,partner_id:0 +msgid "Partner" +msgstr "Kumppani" + +#. module: purchase_requisition +#: model:ir.module.module,shortdesc:purchase_requisition.module_meta_information +msgid "Purchase - Purchase Requisition" +msgstr "Osto - hankintapyyntö" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Unassigned" +msgstr "Liittämätön" + +#. module: purchase_requisition +#: view:purchase.order:0 +msgid "Requisition" +msgstr "Pyyntö" + +#. module: purchase_requisition +#: field:purchase.requisition,purchase_ids:0 +msgid "Purchase Orders" +msgstr "Ostotilaukset" + +#. module: purchase_requisition +#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:90 +#, python-format +msgid "" +"You have already one %s purchase order for this partner, you must cancel " +"this purchase order to create a new quotation." +msgstr "" diff --git a/addons/resource/i18n/fi.po b/addons/resource/i18n/fi.po new file mode 100644 index 00000000000..6703e5ead1f --- /dev/null +++ b/addons/resource/i18n/fi.po @@ -0,0 +1,348 @@ +# Finnish 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:16+0000\n" +"PO-Revision-Date: 2011-06-20 09:46+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-21 04:36+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: resource +#: help:resource.calendar.leaves,resource_id:0 +msgid "" +"If empty, this is a generic holiday for the company. If a resource is set, " +"the holiday/leave is only for this resource" +msgstr "" +"Jos tyhjä, tämä on yrityksen yleinen loma-aika. Jos resurssi asetetaan, loma " +"koskee vain sitä resurssia." + +#. module: resource +#: selection:resource.calendar.attendance,dayofweek:0 +msgid "Friday" +msgstr "Perjantai" + +#. module: resource +#: field:resource.resource,resource_type:0 +msgid "Resource Type" +msgstr "Resurssin tyyppi" + +#. module: resource +#: model:ir.model,name:resource.model_resource_calendar_leaves +#: view:resource.calendar.leaves:0 +msgid "Leave Detail" +msgstr "Jätä yksityiskohdat" + +#. module: resource +#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves +msgid "Resources Leaves" +msgstr "Resurssin vapaat" + +#. module: resource +#: model:ir.actions.act_window,name:resource.action_resource_calendar_form +#: view:resource.calendar:0 +#: field:resource.calendar,attendance_ids:0 +#: view:resource.calendar.attendance:0 +msgid "Working Time" +msgstr "Työaika" + +#. module: resource +#: selection:resource.calendar.attendance,dayofweek:0 +msgid "Thursday" +msgstr "Torstai" + +#. module: resource +#: view:resource.calendar.leaves:0 +#: view:resource.resource:0 +msgid "Group By..." +msgstr "Ryhmittely.." + +#. module: resource +#: selection:resource.calendar.attendance,dayofweek:0 +msgid "Sunday" +msgstr "Sunnuntai" + +#. module: resource +#: view:resource.resource:0 +msgid "Search Resource" +msgstr "Hae resurssia" + +#. module: resource +#: view:resource.resource:0 +msgid "Type" +msgstr "Tyyppi" + +#. module: resource +#: model:ir.actions.act_window,name:resource.action_resource_resource_tree +#: view:resource.resource:0 +msgid "Resources" +msgstr "Resurssit" + +#. module: resource +#: field:resource.calendar,manager:0 +msgid "Workgroup manager" +msgstr "Työryhmän johtaja" + +#. module: resource +#: help:resource.calendar.attendance,hour_from:0 +msgid "Working time will start from" +msgstr "Työaika alkaa" + +#. module: resource +#: constraint:resource.calendar.leaves:0 +msgid "Error! leave start-date must be lower then leave end-date." +msgstr "Virhe! loman alkupäivän tulee olla aikaisempi kuin loman loppupäivä" + +#. module: resource +#: model:ir.model,name:resource.model_resource_calendar +msgid "Resource Calendar" +msgstr "Resurssikalenteri" + +#. module: resource +#: field:resource.calendar,company_id:0 +#: view:resource.calendar.leaves:0 +#: field:resource.calendar.leaves,company_id:0 +#: view:resource.resource:0 +#: field:resource.resource,company_id:0 +msgid "Company" +msgstr "Yritys" + +#. module: resource +#: selection:resource.resource,resource_type:0 +msgid "Material" +msgstr "Materiaali" + +#. module: resource +#: field:resource.calendar.attendance,dayofweek:0 +msgid "Day of week" +msgstr "Viikonpäivä" + +#. module: resource +#: help:resource.calendar.attendance,hour_to:0 +msgid "Working time will end at" +msgstr "Työaika loppuu" + +#. module: resource +#: field:resource.calendar.attendance,date_from:0 +msgid "Starting date" +msgstr "Aloituspäivämäärä" + +#. module: resource +#: view:resource.calendar:0 +msgid "Search Working Time" +msgstr "Hae työaikaa" + +#. module: resource +#: view:resource.calendar.leaves:0 +msgid "Reason" +msgstr "Syy" + +#. module: resource +#: view:resource.resource:0 +#: field:resource.resource,user_id:0 +msgid "User" +msgstr "Käyttäjä" + +#. module: resource +#: view:resource.calendar.leaves:0 +msgid "Date" +msgstr "Päiväys" + +#. module: resource +#: view:resource.calendar.leaves:0 +msgid "Search Working Period Leaves" +msgstr "Hae työjakson lomia" + +#. module: resource +#: field:resource.calendar.leaves,date_to:0 +msgid "End Date" +msgstr "Loppupvm" + +#. module: resource +#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days +msgid "Closing Days" +msgstr "Sulkupäivät" + +#. module: resource +#: model:ir.module.module,shortdesc:resource.module_meta_information +#: model:ir.ui.menu,name:resource.menu_resource_config +#: view:resource.calendar.leaves:0 +#: field:resource.calendar.leaves,resource_id:0 +#: view:resource.resource:0 +msgid "Resource" +msgstr "Resurssi" + +#. module: resource +#: view:resource.calendar:0 +#: field:resource.calendar,name:0 +#: field:resource.calendar.attendance,name:0 +#: field:resource.calendar.leaves,name:0 +#: field:resource.resource,name:0 +msgid "Name" +msgstr "Nimi" + +#. module: resource +#: model:ir.module.module,description:resource.module_meta_information +msgid "" +"\n" +" Module for resource management\n" +" A resource represent something that can be scheduled\n" +" (a developer on a task or a workcenter on manufacturing orders).\n" +" This module manages a resource calendar associated to every resource.\n" +" It also manages the leaves of every resource.\n" +"\n" +" " +msgstr "" + +#. module: resource +#: selection:resource.calendar.attendance,dayofweek:0 +msgid "Wednesday" +msgstr "Keskiviikko" + +#. module: resource +#: view:resource.calendar.leaves:0 +#: view:resource.resource:0 +#: field:resource.resource,calendar_id:0 +msgid "Working Period" +msgstr "Työjakso" + +#. module: resource +#: model:ir.model,name:resource.model_resource_resource +msgid "Resource Detail" +msgstr "Resurssin yksityiskohdat" + +#. module: resource +#: field:resource.resource,active:0 +msgid "Active" +msgstr "Aktiivinen" + +#. module: resource +#: help:resource.resource,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the resource " +"record without removing it." +msgstr "" + +#. module: resource +#: field:resource.calendar.attendance,calendar_id:0 +msgid "Resource's Calendar" +msgstr "Resurssin kalenteri" + +#. module: resource +#: help:resource.resource,user_id:0 +msgid "Related user name for the resource to manage its access." +msgstr "Liittyvä käyttäjätunnus resurssille sen oikeuksien määrittämiseksi" + +#. module: resource +#: help:resource.resource,calendar_id:0 +msgid "Define the schedule of resource" +msgstr "Määrittele resurssin aikataulutus" + +#. module: resource +#: field:resource.calendar.attendance,hour_from:0 +msgid "Work from" +msgstr "Työaika alkaen" + +#. module: resource +#: field:resource.resource,code:0 +msgid "Code" +msgstr "Koodi" + +#. module: resource +#: selection:resource.calendar.attendance,dayofweek:0 +msgid "Monday" +msgstr "Maanantai" + +#. module: resource +#: field:resource.calendar.attendance,hour_to:0 +msgid "Work to" +msgstr "Työaika päättyy" + +#. module: resource +#: help:resource.resource,time_efficiency:0 +msgid "" +"This field depict the efficiency of the resource to complete tasks. e.g " +"resource put alone on a phase of 5 days with 5 tasks assigned to him, will " +"show a load of 100% for this phase by default, but if we put a efficency of " +"200%, then his load will only be 50%." +msgstr "" + +#. module: resource +#: selection:resource.calendar.attendance,dayofweek:0 +msgid "Tuesday" +msgstr "Tiistai" + +#. module: resource +#: field:resource.calendar.leaves,calendar_id:0 +msgid "Working time" +msgstr "Työaika" + +#. module: resource +#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree +#: model:ir.ui.menu,name:resource.menu_view_resource_calendar_leaves_search +msgid "Resource Leaves" +msgstr "Resurssin lomat" + +#. module: resource +#: view:resource.resource:0 +msgid "General Information" +msgstr "Yleiset tiedot" + +#. module: resource +#: model:ir.actions.act_window,help:resource.action_resource_resource_tree +msgid "" +"Resources allow you to create and manage resources that should be involved " +"in a specific project phase. You can also set their efficiency level and " +"workload based on their weekly working hours." +msgstr "" + +#. module: resource +#: view:resource.resource:0 +msgid "Inactive" +msgstr "Passiivinen" + +#. module: resource +#: code:addons/resource/faces/resource.py:340 +#, python-format +msgid "(vacation)" +msgstr "(loma)" + +#. module: resource +#: field:resource.resource,time_efficiency:0 +msgid "Efficiency factor" +msgstr "Tehokkuuskerroin" + +#. module: resource +#: selection:resource.resource,resource_type:0 +msgid "Human" +msgstr "Ihminen" + +#. module: resource +#: model:ir.model,name:resource.model_resource_calendar_attendance +msgid "Work Detail" +msgstr "Työn yksityiskohdat" + +#. module: resource +#: field:resource.calendar.leaves,date_from:0 +msgid "Start Date" +msgstr "Alkupäivä" + +#. module: resource +#: code:addons/resource/resource.py:246 +#, python-format +msgid " (copy)" +msgstr " (kopio)" + +#. module: resource +#: selection:resource.calendar.attendance,dayofweek:0 +msgid "Saturday" +msgstr "Lauantai" From 9be905bbb87f893e2153d60e127042d516b365cb Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Sat, 18 Jun 2011 03:15:47 +0200 Subject: [PATCH 16/74] [FIX] account: treasury analysis compliancy for multi company environments bzr revid: qdp-launchpad@openerp.com-20110618011547-bcxm1m1gu56xyok7 --- addons/account/report/account_treasury_report.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/account/report/account_treasury_report.py b/addons/account/report/account_treasury_report.py index 9b364a55777..4d3ec449204 100644 --- a/addons/account/report/account_treasury_report.py +++ b/addons/account/report/account_treasury_report.py @@ -31,12 +31,13 @@ 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) - current_sum = 0 + all_companies = self.pool.get('res.company').search(cr, uid, [], context=context) + current_sum = dict((company, 0.0) for company in all_companies) 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 + res[record.id]['starting_balance'] = current_sum[record.company_id.id] + current_sum[record.company_id.id] += record.balance + res[record.id]['ending_balance'] = current_sum[record.company_id.id] return res _columns = { From bad8913066c31cf60fa6f1946151726a53a50a2c Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Sat, 18 Jun 2011 04:56:37 +0000 Subject: [PATCH 17/74] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20110618045637-r4gxj14xt15ojkbe --- openerp/addons/base/i18n/en_GB.po | 469 +++++++++++++++++------------- 1 file changed, 273 insertions(+), 196 deletions(-) diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po index 95b3dc5265d..d54c84778f0 100644 --- a/openerp/addons/base/i18n/en_GB.po +++ b/openerp/addons/base/i18n/en_GB.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2010-12-21 15:20+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-17 14:39+0000\n" +"Last-Translator: John Bradshaw \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-01-12 04:53+0000\n" -"X-Generator: Launchpad (build Unknown)\n" +"X-Launchpad-Export-Date: 2011-06-18 04:56+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: base #: view:ir.filters:0 @@ -48,6 +48,8 @@ msgid "" "The second argument of the many2many field %s must be a SQL table !You used " "%s, which is not a valid SQL table name." msgstr "" +"The second argument of the many2many field %s must be a SQL table !You used " +"%s, which is not a valid SQL table name." #. module: base #: view:ir.values:0 @@ -118,6 +120,8 @@ msgid "" "You can not write in this document (%s) ! Be sure your user belongs to one " "of these groups: %s." msgstr "" +"You can not write in this document (%s) ! Be sure your user belongs to one " +"of these groups: %s." #. module: base #: help:ir.model.fields,domain:0 @@ -126,6 +130,9 @@ msgid "" "specified as a Python expression defining a list of triplets. For example: " "[('color','=','red')]" msgstr "" +"The optional domain to restrict possible values for relationship fields, " +"specified as a Python expression defining a list of triplets. For example: " +"[('color','=','red')]" #. module: base #: field:res.partner,ref:0 @@ -141,7 +148,7 @@ msgstr "Target Window" #: code:addons/base/res/res_user.py:507 #, python-format msgid "Warning!" -msgstr "" +msgstr "Warning!" #. module: base #: code:addons/base/ir/ir_model.py:304 @@ -150,12 +157,14 @@ msgid "" "Properties of base fields cannot be altered in this manner! Please modify " "them through Python code, preferably through a custom addon!" msgstr "" +"Properties of base fields cannot be altered in this manner! Please modify " +"them through Python code, preferably through a custom addon!" #. module: base #: code:addons/osv.py:133 #, python-format msgid "Constraint Error" -msgstr "" +msgstr "Constraint Error" #. module: base #: model:ir.model,name:base.model_ir_ui_view_custom @@ -172,7 +181,7 @@ msgstr "Swaziland" #: code:addons/orm.py:3653 #, python-format msgid "created." -msgstr "" +msgstr "created." #. module: base #: model:res.partner.category,name:base.res_partner_category_woodsuppliers0 @@ -276,7 +285,7 @@ msgstr "Wizard Name" #: code:addons/orm.py:2160 #, python-format msgid "Invalid group_by" -msgstr "" +msgstr "Invalid group_by" #. module: base #: field:res.partner,credit_limit:0 @@ -396,7 +405,7 @@ msgstr "On checking this successive reports are generated from cache." #: code:addons/orm.py:904 #, python-format msgid "The read method is not implemented on this object !" -msgstr "" +msgstr "The read method is not implemented on this object !" #. module: base #: help:res.lang,iso_code:0 @@ -406,7 +415,7 @@ msgstr "PO files must use this ISO code for transalations" #. module: base #: view:base.module.upgrade:0 msgid "Your system will be updated." -msgstr "" +msgstr "Your system will be updated." #. module: base #: field:ir.actions.todo,note:0 @@ -433,7 +442,7 @@ msgstr "Schedule Upgrade" #: code:addons/orm.py:838 #, python-format msgid "Key/value '%s' not found in selection field '%s'" -msgstr "" +msgstr "Key/value '%s' not found in selection field '%s'" #. module: base #: help:res.country,code:0 @@ -740,7 +749,7 @@ msgstr "" #: code:addons/orm.py:1043 #, python-format msgid "The unlink method is not implemented on this object !" -msgstr "" +msgstr "The unlink method is not implemented on this object !" #. module: base #: model:ir.actions.act_window,name:base.act_menu_create @@ -813,6 +822,8 @@ msgid "" "Language with code \"%s\" is not defined in your system !\n" "Define it through the Administration menu." msgstr "" +"Language with code \"%s\" is not defined in your system !\n" +"Define it through the Administration menu." #. module: base #: model:res.country,name:base.gu @@ -828,7 +839,7 @@ msgstr "Human Resources Dashboard" #: code:addons/base/res/res_user.py:507 #, python-format msgid "Setting empty passwords is not allowed for security reasons!" -msgstr "" +msgstr "Setting empty passwords is not allowed for security reasons!" #. module: base #: selection:ir.actions.server,state:0 @@ -862,7 +873,7 @@ msgstr "Transitions" #: code:addons/orm.py:4020 #, python-format msgid "Record #%d of %s not found, cannot copy!" -msgstr "" +msgstr "Record #%d of %s not found, cannot copy!" #. module: base #: field:ir.module.module,contributors:0 @@ -967,7 +978,7 @@ msgstr "Marshall Islands" #: code:addons/base/ir/ir_model.py:328 #, python-format msgid "Changing the model of a field is forbidden!" -msgstr "" +msgstr "Changing the model of a field is forbidden!" #. module: base #: model:res.country,name:base.ht @@ -989,6 +1000,10 @@ msgid "" "reference it\n" "- creation/update: a mandatory field is not correctly set" msgstr "" +"The operation cannot be completed, probably due to the following:\n" +"- deletion: you may be trying to delete a record while other records still " +"reference it\n" +"- creation/update: a mandatory field is not correctly set" #. module: base #: view:ir.rule:0 @@ -1001,7 +1016,7 @@ msgstr "" #: code:addons/base/res/res_user.py:206 #, python-format msgid "Operation Canceled" -msgstr "" +msgstr "Operation Cancelled" #. module: base #: help:base.language.export,lang:0 @@ -1099,7 +1114,7 @@ msgstr "" #: code:addons/orm.py:1744 #, python-format msgid "The search method is not implemented on this object !" -msgstr "" +msgstr "The search method is not implemented on this object !" #. module: base #: view:wizard.ir.model.menu.create:0 @@ -1210,7 +1225,7 @@ msgstr "Wizard Info" #: model:ir.actions.act_window,name:base.action_wizard_lang_export #: model:ir.ui.menu,name:base.menu_wizard_lang_export msgid "Export Translation" -msgstr "" +msgstr "Export Translation" #. module: base #: help:res.log,secondary:0 @@ -1491,7 +1506,7 @@ msgstr "" #: code:addons/fields.py:114 #, python-format msgid "Not implemented search_memory method !" -msgstr "" +msgstr "Not implemented search_memory method !" #. module: base #: view:res.log:0 @@ -1570,7 +1585,7 @@ msgstr "Number of modules updated" #: code:addons/fields.py:100 #, python-format msgid "Not implemented set_memory method !" -msgstr "" +msgstr "Not implemented set_memory method !" #. module: base #: view:workflow.activity:0 @@ -1660,7 +1675,7 @@ msgstr "" #: code:addons/orm.py:3147 #, python-format msgid "A document was modified since you last viewed it (%s:%d)" -msgstr "" +msgstr "A document was modified since you last viewed it (%s:%d)" #. module: base #: view:workflow:0 @@ -1904,7 +1919,7 @@ msgstr "" #: code:addons/orm.py:1040 #, python-format msgid "The perm_read method is not implemented on this object !" -msgstr "" +msgstr "The perm_read method is not implemented on this object !" #. module: base #: view:res.lang:0 @@ -1925,7 +1940,7 @@ msgstr "Pakistan" #: code:addons/orm.py:1350 #, python-format msgid "Invalid Object Architecture!" -msgstr "" +msgstr "Invalid Object Architecture!" #. module: base #: model:ir.ui.menu,name:base.menu_email_gateway_form @@ -1976,6 +1991,8 @@ msgid "" "One of the records you are trying to modify has already been deleted " "(Document type: %s)." msgstr "" +"One of the records you are trying to modify has already been deleted " +"(Document type: %s)." #. module: base #: model:ir.actions.act_window,help:base.action_country @@ -2006,7 +2023,7 @@ msgstr "Korean (KR) / 한국어 (KR)" #. module: base #: help:ir.model.fields,model:0 msgid "The technical name of the model this field belongs to" -msgstr "" +msgstr "The technical name of the model this field belongs to" #. module: base #: field:ir.actions.server,action_id:0 @@ -2053,7 +2070,7 @@ msgstr "res.partner.event" #. module: base #: model:res.widget,title:base.facebook_widget msgid "Facebook" -msgstr "" +msgstr "Facebook" #. module: base #: model:res.country,name:base.am @@ -2164,6 +2181,9 @@ msgid "" "separated list of valid field names (optionally followed by asc/desc for the " "direction)" msgstr "" +"Invalid \"order\" specified. A valid \"order\" specification is a comma-" +"separated list of valid field names (optionally followed by asc/desc for the " +"direction)" #. module: base #: model:ir.model,name:base.model_ir_module_module_dependency @@ -2224,7 +2244,7 @@ msgstr "Main Company" #. module: base #: field:ir.ui.menu,web_icon_hover:0 msgid "Web Icon File (hover)" -msgstr "" +msgstr "Web Icon File (hover)" #. module: base #: view:ir.actions.server:0 @@ -2271,6 +2291,8 @@ msgid "" "Reference of the target resource, whose model/table depends on the 'Resource " "Name' field." msgstr "" +"Reference of the target resource, whose model/table depends on the 'Resource " +"Name' field." #. module: base #: field:ir.model.fields,select_level:0 @@ -2290,7 +2312,7 @@ msgstr "Finnish / Suomi" #. module: base #: field:ir.rule,perm_write:0 msgid "Apply For Write" -msgstr "" +msgstr "Apply For Write" #. module: base #: field:ir.sequence,prefix:0 @@ -2337,7 +2359,7 @@ msgstr "ID Ref." #: model:ir.actions.server,name:base.action_start_configurator #: model:ir.ui.menu,name:base.menu_view_base_module_configuration msgid "Start Configuration" -msgstr "" +msgstr "Start Configuration" #. module: base #: model:res.country,name:base.mt @@ -2385,12 +2407,12 @@ msgstr "Antarctica" #. module: base #: field:ir.actions.report.xml,auto:0 msgid "Custom python parser" -msgstr "" +msgstr "Custom python parser" #. module: base #: view:base.language.import:0 msgid "_Import" -msgstr "" +msgstr "_Import" #. module: base #: view:res.partner.canal:0 @@ -2447,13 +2469,13 @@ msgstr "Right-to-Left" #: model:ir.model,name:base.model_ir_filters #: model:ir.ui.menu,name:base.menu_ir_filters msgid "Filters" -msgstr "" +msgstr "Filters" #. module: base #: code:addons/orm.py:758 #, python-format msgid "Please check that all your lines have %d columns." -msgstr "" +msgstr "Please check that all your lines have %d columns." #. module: base #: model:ir.actions.act_window,name:base.ir_cron_act @@ -2478,7 +2500,7 @@ msgstr "" #: code:addons/orm.py:3448 #, python-format msgid "Recursivity Detected." -msgstr "" +msgstr "Recursivity detected." #. module: base #: code:addons/base/module/module.py:262 @@ -2493,6 +2515,9 @@ msgid "" "loading a new language it becomes available as default interface language " "for users and partners." msgstr "" +"This wizard helps you add a new language to your OpenERP system. After " +"loading a new language it becomes available as the default interface " +"language for users and partners." #. module: base #: view:ir.model:0 @@ -2511,7 +2536,7 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_maintenance_contract msgid "maintenance.contract" -msgstr "" +msgstr "maintenance.contract" #. module: base #: model:res.country,name:base.ru @@ -2547,12 +2572,12 @@ msgstr "Record rules" #. module: base #: view:ir.property:0 msgid "Field Information" -msgstr "" +msgstr "Field Information" #. module: base #: view:ir.actions.todo:0 msgid "Search Actions" -msgstr "" +msgstr "Search Actions" #. module: base #: model:ir.actions.act_window,name:base.action_view_partner_wizard_ean_check @@ -2583,7 +2608,7 @@ msgstr "%x - Appropriate date representation." #. module: base #: view:res.lang:0 msgid "%d - Day of the month [01,31]." -msgstr "" +msgstr "%d - Day of the month [01,31]." #. module: base #: model:res.country,name:base.tj @@ -2617,6 +2642,8 @@ msgid "" "Operation prohibited by access rules, or performed on an already deleted " "document (Operation: read, Document type: %s)." msgstr "" +"Operation prohibited by access rules, or performed on an already deleted " +"document (Operation: read, Document type: %s)." #. module: base #: model:res.country,name:base.nr @@ -2627,7 +2654,7 @@ msgstr "Nauru" #: code:addons/base/module/module.py:200 #, python-format msgid "The certificate ID of the module must be unique !" -msgstr "" +msgstr "The certificate ID of the module must be unique !" #. module: base #: model:ir.model,name:base.model_ir_property @@ -2666,6 +2693,9 @@ msgid "" "import a language pack from here. Other OpenERP languages than the official " "ones can be found on launchpad." msgstr "" +"If you need a language other than the official ones available, you can " +"import a language pack from here. Other unofficial OpenERP languages can be " +"found on launchpad." #. module: base #: view:ir.module.module:0 @@ -2704,7 +2734,7 @@ msgstr "EAN13" #: code:addons/orm.py:1622 #, python-format msgid "Invalid Architecture!" -msgstr "" +msgstr "Invalid Architecture!" #. module: base #: model:res.country,name:base.pt @@ -2716,6 +2746,7 @@ msgstr "Portugal" msgid "" "You cannot have multiple records with the same id for the same module !" msgstr "" +"You cannot have multiple records with the same id for the same module !" #. module: base #: field:ir.module.module,certificate:0 @@ -2731,12 +2762,12 @@ msgstr "6. %d, %m ==> 05, 12" #: field:res.config.users,date:0 #: field:res.users,date:0 msgid "Last Connection" -msgstr "" +msgstr "Copy text \t Last Connection" #. module: base #: field:ir.actions.act_window,help:0 msgid "Action description" -msgstr "" +msgstr "Action description" #. module: base #: help:res.partner,customer:0 @@ -2809,12 +2840,12 @@ msgstr "Base Field" #. module: base #: view:publisher_warranty.contract:0 msgid "Validate" -msgstr "" +msgstr "Validate" #. module: base #: field:ir.actions.todo,restart:0 msgid "Restart" -msgstr "" +msgstr "Restart" #. module: base #: field:ir.actions.report.xml,report_sxw_content:0 @@ -2837,7 +2868,7 @@ msgstr "Action to Trigger" #: code:addons/base/res/res_user.py:136 #, python-format msgid "\"email_from\" needs to be set to send welcome mails to users" -msgstr "" +msgstr "\"email_from\" needs to be set to send welcome mails to users" #. module: base #: selection:ir.translation,type:0 @@ -2860,7 +2891,7 @@ msgstr "Required" #. module: base #: view:res.users:0 msgid "Default Filters" -msgstr "" +msgstr "Default Filters" #. module: base #: field:res.request.history,name:0 @@ -2870,7 +2901,7 @@ msgstr "Summary" #. module: base #: field:multi_company.default,expression:0 msgid "Expression" -msgstr "" +msgstr "Expression" #. module: base #: help:ir.actions.server,subject:0 @@ -2892,6 +2923,8 @@ msgid "" "Optional help text for the users with a description of the target view, such " "as its usage and purpose." msgstr "" +"Optional help text for users with a description of the target view, such as " +"its usage and purpose." #. module: base #: model:res.country,name:base.va @@ -2906,12 +2939,12 @@ msgstr "Module .ZIP file" #. module: base #: field:ir.ui.view,xml_id:0 msgid "XML ID" -msgstr "" +msgstr "XML ID" #. module: base #: model:res.partner.category,name:base.res_partner_category_16 msgid "Telecom sector" -msgstr "" +msgstr "Telecomm sector" #. module: base #: field:workflow.transition,trigger_model:0 @@ -2921,7 +2954,7 @@ msgstr "Trigger Object" #. module: base #: view:res.users:0 msgid "Current Activity" -msgstr "" +msgstr "Current Activity" #. module: base #: view:workflow.activity:0 @@ -2937,7 +2970,7 @@ msgstr "Suriname" #. module: base #: model:ir.ui.menu,name:base.marketing_menu msgid "Marketing" -msgstr "" +msgstr "Marketing" #. module: base #: view:res.partner.bank:0 @@ -2958,7 +2991,7 @@ msgstr "Sequence Type" #. module: base #: view:ir.ui.view.custom:0 msgid "Customized Architecture" -msgstr "" +msgstr "Customised Architecture" #. module: base #: field:ir.module.module,license:0 @@ -2973,7 +3006,7 @@ msgstr "" #. module: base #: selection:ir.actions.todo,restart:0 msgid "Always" -msgstr "" +msgstr "Always" #. module: base #: selection:ir.translation,type:0 @@ -2996,7 +3029,7 @@ msgstr "" #. module: base #: sql_constraint:ir.config_parameter:0 msgid "Key must be unique." -msgstr "" +msgstr "Key must be unique." #. module: base #: view:ir.actions.act_window:0 @@ -3045,6 +3078,9 @@ msgid "" "\n" "Click 'Continue' and enjoy your OpenERP experience..." msgstr "" +"Your database is now fully configured.\n" +"\n" +"Click 'Continue' and enjoy your OpenERP experience..." #. module: base #: selection:base.language.install,lang:0 @@ -3092,7 +3128,7 @@ msgstr "You try to remove a module that is installed or will be installed" #. module: base #: view:base.module.upgrade:0 msgid "The selected modules have been updated / installed !" -msgstr "" +msgstr "The selected modules have been updated / installed !" #. module: base #: selection:base.language.install,lang:0 @@ -3120,7 +3156,7 @@ msgstr "" #. module: base #: model:ir.actions.act_window,name:base.action_config_user_form msgid "Create Users" -msgstr "" +msgstr "Create Users" #. module: base #: model:ir.model,name:base.model_res_partner_title @@ -3135,7 +3171,7 @@ msgstr "tree_but_action, client_print_multi" #. module: base #: model:res.partner.category,name:base.res_partner_category_retailers0 msgid "Retailers" -msgstr "" +msgstr "Retailers" #. module: base #: help:ir.cron,priority:0 @@ -3171,12 +3207,12 @@ msgstr "Kenya" #. module: base #: view:res.partner.event:0 msgid "Event" -msgstr "" +msgstr "Event" #. module: base #: model:ir.ui.menu,name:base.menu_custom_reports msgid "Custom Reports" -msgstr "" +msgstr "Custom Reports" #. module: base #: selection:base.language.install,lang:0 @@ -3197,7 +3233,7 @@ msgstr "" #. module: base #: view:ir.property:0 msgid "Generic" -msgstr "" +msgstr "Generic" #. module: base #: model:res.country,name:base.sm @@ -3228,7 +3264,7 @@ msgstr "Benin" #: code:addons/base/publisher_warranty/publisher_warranty.py:281 #, python-format msgid "That contract is already registered in the system." -msgstr "" +msgstr "That contract is already registered in the system." #. module: base #: help:ir.sequence,suffix:0 @@ -3262,6 +3298,8 @@ msgid "" "You can not create this document (%s) ! Be sure your user belongs to one of " "these groups: %s." msgstr "" +"You can not create this document (%s) ! Be sure your user belongs to one of " +"these groups: %s." #. module: base #: model:res.country,name:base.mu @@ -3272,7 +3310,7 @@ msgstr "Mauritius" #: view:ir.model.access:0 #: view:ir.rule:0 msgid "Full Access" -msgstr "" +msgstr "Full Access" #. module: base #: view:ir.actions.act_window:0 @@ -3286,7 +3324,7 @@ msgstr "Security" #. module: base #: model:res.widget,title:base.openerp_favorites_twitter_widget msgid "OpenERP Favorites" -msgstr "" +msgstr "OpenERP Favourites" #. module: base #: model:res.country,name:base.za @@ -3386,7 +3424,7 @@ msgstr "" #. module: base #: view:base.module.upgrade:0 msgid "System update completed" -msgstr "" +msgstr "System update completed" #. module: base #: selection:res.request,state:0 @@ -3422,13 +3460,13 @@ msgstr "Parent Menu" #. module: base #: field:ir.rule,perm_unlink:0 msgid "Apply For Delete" -msgstr "" +msgstr "Apply For Delete" #. module: base #: code:addons/base/ir/ir_model.py:319 #, python-format msgid "Cannot rename column to %s, because that column already exists!" -msgstr "" +msgstr "Cannot rename column to %s, because that column already exists!" #. module: base #: view:ir.attachment:0 @@ -3482,7 +3520,7 @@ msgstr "Mexico" #. module: base #: model:ir.ui.menu,name:base.menu_base_config_plugins msgid "Plugins" -msgstr "" +msgstr "Plugins" #. module: base #: field:res.company,child_ids:0 @@ -3514,7 +3552,7 @@ msgstr "General Description" #: model:ir.actions.act_window,name:base.action_config_simple_view_form #: view:res.config.view:0 msgid "Configure Your Interface" -msgstr "" +msgstr "Configure your Interface" #. module: base #: field:ir.values,meta:0 @@ -3524,7 +3562,7 @@ msgstr "Meta Datas" #. module: base #: sql_constraint:ir.ui.view_sc:0 msgid "Shortcut for this menu already exists!" -msgstr "" +msgstr "Shortcut for this menu already exists!" #. module: base #: model:res.country,name:base.ve @@ -3634,6 +3672,8 @@ msgid "" "The Selection Options expression is not a valid Pythonic expression.Please " "provide an expression in the [('key','Label'), ...] format." msgstr "" +"The Selection Options expression is not a valid Pythonic expression. Please " +"provide an expression in the [('key','Label'), ...] format." #. module: base #: model:ir.ui.menu,name:base.menu_translation_app @@ -3681,6 +3721,8 @@ msgid "" "For one2many fields, the field on the target model that implement the " "opposite many2one relationship" msgstr "" +"For one2many fields, the field on the target model that implements the " +"opposite many2one relationship" #. module: base #: model:ir.model,name:base.model_ir_actions_act_window_view @@ -3736,17 +3778,17 @@ msgstr "Group By" #: view:res.config:0 #: view:res.config.installer:0 msgid "title" -msgstr "" +msgstr "title" #. module: base #: model:ir.model,name:base.model_base_language_install msgid "Install Language" -msgstr "" +msgstr "Install Language" #. module: base #: view:ir.translation:0 msgid "Translation" -msgstr "" +msgstr "Translation" #. module: base #: selection:res.request,state:0 @@ -3771,7 +3813,7 @@ msgstr "Write Id" #. module: base #: model:ir.ui.menu,name:base.menu_product msgid "Products" -msgstr "" +msgstr "Products" #. module: base #: field:ir.actions.act_window,domain:0 @@ -3839,7 +3881,7 @@ msgstr "" #. module: base #: view:publisher_warranty.contract.wizard:0 msgid "Please enter the serial key provided in your contract document:" -msgstr "" +msgstr "Please enter the serial key provided in your contract document:" #. module: base #: view:workflow.activity:0 @@ -3885,7 +3927,7 @@ msgstr "Guadeloupe (French)" #: code:addons/base/res/res_lang.py:161 #, python-format msgid "User Error" -msgstr "" +msgstr "User Error" #. module: base #: help:workflow.transition,signal:0 @@ -3918,7 +3960,7 @@ msgstr "" #. module: base #: view:ir.attachment:0 msgid "Month" -msgstr "" +msgstr "Month" #. module: base #: model:res.country,name:base.my @@ -3929,7 +3971,7 @@ msgstr "Malaysia" #: view:base.language.install:0 #: model:ir.actions.act_window,name:base.action_view_base_language_install msgid "Load Official Translation" -msgstr "" +msgstr "Load Official Translation" #. module: base #: model:ir.model,name:base.model_res_request_history @@ -3957,7 +3999,7 @@ msgstr "" #. module: base #: view:res.lang:0 msgid "%S - Seconds [00,61]." -msgstr "" +msgstr "%S - Seconds [00,61]." #. module: base #: model:res.country,name:base.cv @@ -3986,7 +4028,7 @@ msgstr "ir.actions.url" #. module: base #: model:res.widget,title:base.currency_converter_widget msgid "Currency Converter" -msgstr "" +msgstr "Currency Converter" #. module: base #: code:addons/orm.py:156 @@ -4008,7 +4050,7 @@ msgstr "Number of modules added" #. module: base #: view:res.currency:0 msgid "Price Accuracy" -msgstr "" +msgstr "Price Accuracy" #. module: base #: selection:base.language.install,lang:0 @@ -4071,7 +4113,7 @@ msgstr "" #. module: base #: view:ir.sequence:0 msgid "Current Year without Century: %(y)s" -msgstr "" +msgstr "Current Year without Century: %(y)s" #. module: base #: field:ir.actions.server,trigger_obj_id:0 @@ -4191,7 +4233,7 @@ msgstr "Banks" #. module: base #: view:res.log:0 msgid "Unread" -msgstr "" +msgstr "Unread" #. module: base #: field:ir.cron,doall:0 @@ -4257,7 +4299,7 @@ msgstr "Add an auto-refresh on the view" #. module: base #: help:res.partner,employee:0 msgid "Check this box if the partner is an Employee." -msgstr "" +msgstr "Check this box if the partner is an employee." #. module: base #: field:ir.actions.report.xml,report_rml_content:0 @@ -4288,6 +4330,8 @@ msgid "" "You cannot perform this operation. New Record Creation is not allowed for " "this object as this object is for reporting purpose." msgstr "" +"You cannot perform this operation. New Record Creation is not allowed for " +"this object as it is for reporting purposes." #. module: base #: view:base.language.import:0 @@ -4331,7 +4375,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_main_pm msgid "Project" -msgstr "" +msgstr "Project" #. module: base #: field:ir.ui.menu,web_icon_hover_data:0 @@ -4346,12 +4390,12 @@ msgstr "" #. module: base #: selection:ir.actions.todo,state:0 msgid "Cancelled" -msgstr "" +msgstr "Cancelled" #. module: base #: view:res.config.users:0 msgid "Create User" -msgstr "" +msgstr "Create User" #. module: base #: view:partner.clear.ids:0 @@ -4372,7 +4416,7 @@ msgstr "Low" #. module: base #: model:ir.ui.menu,name:base.menu_audit msgid "Audit" -msgstr "" +msgstr "Audit" #. module: base #: model:res.country,name:base.lc @@ -4393,7 +4437,7 @@ msgstr "" #. module: base #: field:res.partner,employee:0 msgid "Employee" -msgstr "" +msgstr "Employee" #. module: base #: field:ir.model.access,perm_create:0 @@ -4430,7 +4474,7 @@ msgstr "British Indian Ocean Territory" #: field:res.config.view,view:0 #: field:res.users,view:0 msgid "Interface" -msgstr "" +msgstr "Interface" #. module: base #: view:ir.actions.server:0 @@ -4491,7 +4535,7 @@ msgstr "Signature" #: code:addons/fields.py:664 #, python-format msgid "Not Implemented" -msgstr "" +msgstr "Not Implemented" #. module: base #: model:ir.model,name:base.model_res_widget_user @@ -4506,7 +4550,7 @@ msgstr "Full Name" #. module: base #: view:base.module.configuration:0 msgid "_Ok" -msgstr "" +msgstr "_Ok" #. module: base #: help:ir.filters,user_id:0 @@ -4546,7 +4590,7 @@ msgstr "On Multiple Doc." #: view:res.partner:0 #: field:res.partner,user_id:0 msgid "Salesman" -msgstr "" +msgstr "Salesperson" #. module: base #: field:res.partner,address:0 @@ -4564,7 +4608,7 @@ msgstr "" #. module: base #: view:res.widget.wizard:0 msgid "Add" -msgstr "" +msgstr "Add" #. module: base #: view:base.module.upgrade:0 @@ -4576,7 +4620,7 @@ msgstr "Apply Scheduled Upgrades" #. module: base #: view:res.widget:0 msgid "Widgets" -msgstr "" +msgstr "Widgets" #. module: base #: model:res.country,name:base.cz @@ -4595,6 +4639,9 @@ msgid "" "OpenERP. They are launched during the installation of new modules, but you " "can choose to restart some wizards manually from this menu." msgstr "" +"The configuration wizards help you configure a new instance of OpenERP. They " +"are launched during the installation of new modules, but you can restart " +"some wizards manually from this menu." #. module: base #: code:addons/base/res/res_user.py:206 @@ -4603,6 +4650,8 @@ msgid "" "Please use the change password wizard (in User Preferences or User menu) to " "change your own password." msgstr "" +"Please use the change password wizard (in User Preferences or User menu) to " +"change your own password." #. module: base #: code:addons/orm.py:1350 @@ -4613,7 +4662,7 @@ msgstr "" #. module: base #: selection:ir.property,type:0 msgid "Integer" -msgstr "" +msgstr "Integer" #. module: base #: help:ir.actions.report.xml,report_rml:0 @@ -4626,7 +4675,7 @@ msgstr "" #: help:res.config.users,company_id:0 #: help:res.users,company_id:0 msgid "The company this user is currently working for." -msgstr "" +msgstr "The company this user currently works for." #. module: base #: model:ir.model,name:base.model_wizard_ir_model_menu_create @@ -4687,7 +4736,7 @@ msgstr "" #. module: base #: view:res.log:0 msgid "My Logs" -msgstr "" +msgstr "My Logs" #. module: base #: model:res.country,name:base.bt @@ -4712,7 +4761,7 @@ msgstr "This Window" #. module: base #: view:publisher_warranty.contract:0 msgid "Publisher Warranty Contracts" -msgstr "" +msgstr "Publisher Warranty Contracts" #. module: base #: help:res.log,name:0 @@ -4738,7 +4787,7 @@ msgstr "res.config.view" #: view:res.log:0 #: field:res.log,read:0 msgid "Read" -msgstr "" +msgstr "Read" #. module: base #: sql_constraint:res.country:0 @@ -4783,7 +4832,7 @@ msgstr "Fields" #. module: base #: model:ir.actions.act_window,name:base.action_partner_employee_form msgid "Employees" -msgstr "" +msgstr "Employees" #. module: base #: help:res.log,read:0 @@ -4814,6 +4863,9 @@ msgid "" "channels that will be maintained at the creation of a document in the " "system. Some examples of channels can be: Website, Phone Call, Reseller, etc." msgstr "" +"Track from where your leads and opportunities come by creating specific " +"channels that will be maintained on creation of a document in the system. " +"Some examples of channels can be: Website, Phone Call, Reseller, etc." #. module: base #: model:res.partner.bank.type.field,name:base.bank_normal_field @@ -4824,7 +4876,7 @@ msgstr "acc_number" #: model:ir.actions.act_window,name:base.action_partner_address_form #: model:ir.ui.menu,name:base.menu_partner_address_form msgid "Addresses" -msgstr "" +msgstr "Addresses" #. module: base #: model:res.country,name:base.mm @@ -4902,7 +4954,7 @@ msgstr "Custom Field" #. module: base #: field:ir.module.module,web:0 msgid "Has a web component" -msgstr "" +msgstr "Has a web component" #. module: base #: model:res.country,name:base.cc @@ -4914,7 +4966,7 @@ msgstr "Cocos (Keeling) Islands" #: selection:base.module.import,state:0 #: selection:base.module.update,state:0 msgid "init" -msgstr "" +msgstr "init" #. module: base #: view:res.lang:0 @@ -4959,7 +5011,7 @@ msgstr "1cm 28cm 20cm 28cm" #. module: base #: field:ir.module.module,maintainer:0 msgid "Maintainer" -msgstr "" +msgstr "Maintainer" #. module: base #: field:ir.sequence,suffix:0 @@ -5136,7 +5188,7 @@ msgstr "" #. module: base #: model:ir.actions.act_window,name:base.action_partner_sms_send msgid "SMS Send" -msgstr "" +msgstr "SMS Send" #. module: base #: field:res.company,user_ids:0 @@ -5146,7 +5198,7 @@ msgstr "Accepted Users" #. module: base #: field:ir.ui.menu,web_icon_data:0 msgid "Web Icon Image" -msgstr "" +msgstr "Web Icon Image" #. module: base #: view:ir.values:0 @@ -5198,7 +5250,7 @@ msgstr "2. %a ,%A ==> Fri, Friday" #. module: base #: field:res.widget,content:0 msgid "Content" -msgstr "" +msgstr "Content" #. module: base #: help:ir.rule,global:0 @@ -5283,7 +5335,7 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_action_ui_view_custom #: view:ir.ui.view.custom:0 msgid "Customized Views" -msgstr "" +msgstr "Customised Views" #. module: base #: view:partner.sms.send:0 @@ -5331,7 +5383,7 @@ msgstr "Thai / ภาษาไทย" #: code:addons/orm.py:158 #, python-format msgid "Object %s does not exists" -msgstr "" +msgstr "Copy text \t Object %s does not exist" #. module: base #: selection:base.language.install,lang:0 @@ -5367,7 +5419,7 @@ msgstr "Add User" #. module: base #: model:ir.actions.act_window,name:base.action_view_base_module_upgrade_install msgid "Module Upgrade Install" -msgstr "" +msgstr "Module Upgrade Install" #. module: base #: model:ir.model,name:base.model_ir_actions_configuration_wizard @@ -5403,7 +5455,7 @@ msgstr "_Close" #. module: base #: field:multi_company.default,company_dest_id:0 msgid "Default Company" -msgstr "" +msgstr "Default Company" #. module: base #: selection:base.language.install,lang:0 @@ -5419,7 +5471,7 @@ msgstr "" #: model:ir.model,name:base.model_base_module_import #: model:ir.ui.menu,name:base.menu_view_base_module_import msgid "Import Module" -msgstr "" +msgstr "Import Module" #. module: base #: model:res.country,name:base.as @@ -5434,7 +5486,7 @@ msgstr "" #. module: base #: field:res.log,secondary:0 msgid "Secondary Log" -msgstr "" +msgstr "Copy text \t Secondary Log" #. module: base #: field:ir.model.fields,selectable:0 @@ -5468,7 +5520,7 @@ msgstr "Iteration" #: code:addons/orm.py:3532 #, python-format msgid "UserError" -msgstr "" +msgstr "UserError" #. module: base #: model:res.country,name:base.ae @@ -5478,7 +5530,7 @@ msgstr "United Arab Emirates" #. module: base #: model:ir.ui.menu,name:base.menu_crm_case_job_req_main msgid "Recruitment" -msgstr "" +msgstr "Recruitment" #. module: base #: model:res.country,name:base.re @@ -5523,13 +5575,13 @@ msgstr "AccessError" #. module: base #: view:res.request:0 msgid "Waiting" -msgstr "" +msgstr "Waiting" #. module: base #: code:addons/__init__.py:834 #, python-format msgid "Could not load base module" -msgstr "" +msgstr "Could not load base module" #. module: base #: view:res.lang:0 @@ -5545,7 +5597,7 @@ msgstr "" #. module: base #: field:res.log,create_date:0 msgid "Creation Date" -msgstr "" +msgstr "Creation Date" #. module: base #: view:ir.translation:0 @@ -5561,7 +5613,7 @@ msgstr "Number padding" #. module: base #: view:ir.actions.report.xml:0 msgid "Report" -msgstr "" +msgstr "Report" #. module: base #: model:res.country,name:base.ua @@ -5582,7 +5634,7 @@ msgstr "Module Category" #. module: base #: view:partner.wizard.ean.check:0 msgid "Ignore" -msgstr "" +msgstr "Ignore" #. module: base #: report:ir.module.reference.graph:0 @@ -5592,7 +5644,7 @@ msgstr "Reference Guide" #. module: base #: view:ir.ui.view:0 msgid "Architecture" -msgstr "" +msgstr "Architecture" #. module: base #: model:res.country,name:base.ml @@ -5800,12 +5852,12 @@ msgstr "" #. module: base #: view:ir.model:0 msgid "Custom" -msgstr "" +msgstr "Custom" #. module: base #: view:res.request:0 msgid "Current" -msgstr "" +msgstr "Current" #. module: base #: model:res.partner.category,name:base.res_partner_category_9 @@ -5847,7 +5899,7 @@ msgstr "" #. module: base #: selection:publisher_warranty.contract.wizard,state:0 msgid "Finished" -msgstr "" +msgstr "Finished" #. module: base #: model:res.country,name:base.de @@ -5903,6 +5955,7 @@ msgstr "Honduras" msgid "" "Check out this box if you want to always display tips on each menu action" msgstr "" +"Check this box if you always want to display tips on each menu action" #. module: base #: model:res.country,name:base.eg @@ -5912,7 +5965,7 @@ msgstr "Egypt" #. module: base #: field:ir.rule,perm_read:0 msgid "Apply For Read" -msgstr "" +msgstr "Apply For Read" #. module: base #: help:ir.actions.server,model_id:0 @@ -5930,12 +5983,12 @@ msgstr "" #. module: base #: field:base.language.import,name:0 msgid "Language Name" -msgstr "" +msgstr "Language Name" #. module: base #: selection:ir.property,type:0 msgid "Boolean" -msgstr "" +msgstr "Boolean" #. module: base #: view:ir.model:0 @@ -5956,7 +6009,7 @@ msgstr "Fields Description" #: view:res.partner.address:0 #: view:workflow.activity:0 msgid "Group By..." -msgstr "" +msgstr "Group By..." #. module: base #: view:ir.model.fields:0 @@ -6064,6 +6117,7 @@ msgstr "Help" msgid "" "If specified, the action will replace the standard menu for this user." msgstr "" +"If specified, the action will replace the standard menu for this user." #. module: base #: selection:ir.actions.server,state:0 @@ -6073,13 +6127,13 @@ msgstr "Write Object" #. module: base #: model:ir.ui.menu,name:base.menu_fundrising msgid "Fund Raising" -msgstr "" +msgstr "Fundraising" #. module: base #: model:ir.actions.act_window,name:base.ir_sequence_type #: model:ir.ui.menu,name:base.menu_ir_sequence_type msgid "Sequence Codes" -msgstr "" +msgstr "Sequence Codes" #. module: base #: selection:base.language.install,lang:0 @@ -6166,7 +6220,7 @@ msgstr "Kind" #: code:addons/orm.py:3775 #, python-format msgid "This method does not exist anymore" -msgstr "" +msgstr "This method no longer exists" #. module: base #: field:res.bank,fax:0 @@ -6206,12 +6260,12 @@ msgstr "res.request" #. module: base #: view:ir.model:0 msgid "In Memory" -msgstr "" +msgstr "In Memory" #. module: base #: view:ir.actions.todo:0 msgid "Todo" -msgstr "" +msgstr "Todo" #. module: base #: field:ir.attachment,datas:0 @@ -6248,7 +6302,7 @@ msgstr "Gibraltar" #. module: base #: field:ir.actions.report.xml,report_name:0 msgid "Service Name" -msgstr "" +msgstr "Service Name" #. module: base #: model:res.country,name:base.pn @@ -6271,7 +6325,7 @@ msgstr "Record Rules" #: field:res.config.users,name:0 #: field:res.users,name:0 msgid "User Name" -msgstr "" +msgstr "User Name" #. module: base #: view:ir.sequence:0 @@ -6291,6 +6345,8 @@ msgid "" "OpenERP will automatically adds some '0' on the left of the 'Next Number' to " "get the required padding size." msgstr "" +"OpenERP will automatically add some '0' on the left of the 'Next Number' to " +"get the required padding size." #. module: base #: view:res.lang:0 @@ -6325,7 +6381,7 @@ msgstr "Attachments" #: model:ir.ui.menu,name:base.menu_sale_config_sales #: model:ir.ui.menu,name:base.menu_sales msgid "Sales" -msgstr "" +msgstr "Sales" #. module: base #: field:ir.actions.server,child_ids:0 @@ -6377,7 +6433,7 @@ msgstr "Italy" #: view:ir.actions.todo:0 #: selection:ir.actions.todo,state:0 msgid "To Do" -msgstr "" +msgstr "To Do" #. module: base #: selection:base.language.install,lang:0 @@ -6389,7 +6445,7 @@ msgstr "Estonian / Eesti keel" #: field:res.partner,email:0 #: field:res.users,email:0 msgid "E-mail" -msgstr "" +msgstr "E-mail" #. module: base #: selection:ir.module.module,license:0 @@ -6512,7 +6568,7 @@ msgstr "Default Value" #. module: base #: model:ir.ui.menu,name:base.menu_tools msgid "Tools" -msgstr "" +msgstr "Tools" #. module: base #: model:res.country,name:base.kn @@ -6717,7 +6773,7 @@ msgstr "" #: model:ir.ui.menu,name:base.next_id_73 #: model:ir.ui.menu,name:base.reporting_menu msgid "Reporting" -msgstr "" +msgstr "Reporting" #. module: base #: model:res.country,name:base.tg @@ -6743,7 +6799,7 @@ msgstr "" #. module: base #: view:ir.model.data:0 msgid "Updatable" -msgstr "" +msgstr "Updateable" #. module: base #: view:res.lang:0 @@ -6940,7 +6996,7 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam msgid "Ms." -msgstr "" +msgstr "Ms." #. module: base #: model:res.country,name:base.ch @@ -6970,7 +7026,7 @@ msgstr "Rounding factor" #. module: base #: view:base.language.install:0 msgid "Load" -msgstr "" +msgstr "Load" #. module: base #: help:res.config.users,name:0 @@ -7038,12 +7094,12 @@ msgstr "" #. module: base #: selection:ir.module.module,license:0 msgid "GPL Version 2" -msgstr "" +msgstr "GPL Version 2" #. module: base #: selection:ir.module.module,license:0 msgid "GPL Version 3" -msgstr "" +msgstr "GPL Version 3" #. module: base #: code:addons/orm.py:836 @@ -7054,7 +7110,7 @@ msgstr "" #. module: base #: view:partner.wizard.ean.check:0 msgid "Correct EAN13" -msgstr "" +msgstr "Correct EAN13" #. module: base #: code:addons/orm.py:2317 @@ -7136,7 +7192,7 @@ msgstr "Tunisia" #. module: base #: model:ir.ui.menu,name:base.menu_mrp_root msgid "Manufacturing" -msgstr "" +msgstr "Manufacturing" #. module: base #: model:res.country,name:base.km @@ -7173,7 +7229,7 @@ msgstr "Legends for Date and Time Formats" #. module: base #: selection:ir.actions.server,state:0 msgid "Copy Object" -msgstr "" +msgstr "Copy Object" #. module: base #: code:addons/base/res/res_user.py:581 @@ -7251,7 +7307,7 @@ msgstr "Minute: %(min)s" #: model:ir.actions.act_window,name:base.action_wizard_update_translations #: model:ir.ui.menu,name:base.menu_wizard_update_translations msgid "Synchronize Translations" -msgstr "" +msgstr "Synchronise Translations" #. module: base #: model:ir.ui.menu,name:base.next_id_10 @@ -7264,6 +7320,8 @@ msgid "" "Number of time the function is called,\n" "a negative number indicates no limit" msgstr "" +"Number of times the function is called,\n" +"a negative number indicates no limit" #. module: base #: code:addons/base/ir/ir_model.py:331 @@ -7282,12 +7340,12 @@ msgstr "User Ref." #: code:addons/base/res/res_user.py:580 #, python-format msgid "Warning !" -msgstr "" +msgstr "Warning !" #. module: base #: model:res.widget,title:base.google_maps_widget msgid "Google Maps" -msgstr "" +msgstr "Google Maps" #. module: base #: model:ir.ui.menu,name:base.menu_base_config @@ -7318,7 +7376,7 @@ msgstr "Starting Date" #. module: base #: help:res.partner,website:0 msgid "Website of Partner" -msgstr "" +msgstr "Partner Website" #. module: base #: model:res.partner.category,name:base.res_partner_category_5 @@ -7376,7 +7434,7 @@ msgstr "State" #. module: base #: selection:base.language.install,lang:0 msgid "Galician / Galego" -msgstr "" +msgstr "Galician / Galego" #. module: base #: model:res.country,name:base.no @@ -7417,7 +7475,7 @@ msgstr "waiting" #. module: base #: field:ir.actions.report.xml,report_file:0 msgid "Report file" -msgstr "" +msgstr "Report file" #. module: base #: model:ir.model,name:base.model_workflow_triggers @@ -7428,12 +7486,12 @@ msgstr "workflow.triggers" #: code:addons/base/ir/ir_model.py:62 #, python-format msgid "Invalid search criterions" -msgstr "" +msgstr "Invalid search criteria" #. module: base #: view:ir.attachment:0 msgid "Created" -msgstr "" +msgstr "Created" #. module: base #: help:ir.actions.wizard,multi:0 @@ -7495,7 +7553,7 @@ msgstr "" #: model:ir.actions.act_window,name:base.action_view_base_import_language #: model:ir.ui.menu,name:base.menu_view_base_import_language msgid "Import Translation" -msgstr "" +msgstr "Import Translation" #. module: base #: field:res.partner.bank.type,field_ids:0 @@ -7513,7 +7571,7 @@ msgstr "Category" #: selection:ir.attachment,type:0 #: selection:ir.property,type:0 msgid "Binary" -msgstr "" +msgstr "Binary" #. module: base #: field:ir.actions.server,sms:0 @@ -7529,7 +7587,7 @@ msgstr "Costa Rica" #. module: base #: view:workflow.activity:0 msgid "Conditions" -msgstr "" +msgstr "Conditions" #. module: base #: model:ir.actions.act_window,name:base.action_partner_other_form @@ -7546,7 +7604,7 @@ msgstr "Currencies" #. module: base #: sql_constraint:res.groups:0 msgid "The name of the group must be unique !" -msgstr "" +msgstr "The group name must be unique !" #. module: base #: view:ir.sequence:0 @@ -7561,7 +7619,7 @@ msgstr "Uncheck the active field to hide the contact." #. module: base #: model:ir.model,name:base.model_res_widget_wizard msgid "Add a widget for User" -msgstr "" +msgstr "Add a widget for User" #. module: base #: model:res.country,name:base.dk @@ -7582,7 +7640,7 @@ msgstr "workflow.instance" #: code:addons/orm.py:278 #, python-format msgid "Unknown attribute %s in %s " -msgstr "" +msgstr "Unknown attribute %s in %s " #. module: base #: view:res.lang:0 @@ -7593,7 +7651,7 @@ msgstr "10. %S ==> 20" #: code:addons/fields.py:106 #, python-format msgid "undefined get method !" -msgstr "" +msgstr "undefined get method !" #. module: base #: selection:base.language.install,lang:0 @@ -7621,7 +7679,7 @@ msgstr "Estonia" #. module: base #: model:ir.ui.menu,name:base.dashboard msgid "Dashboards" -msgstr "" +msgstr "Dashboards" #. module: base #: help:ir.attachment,type:0 @@ -7632,7 +7690,7 @@ msgstr "" #: field:res.config.users,new_password:0 #: field:res.users,new_password:0 msgid "Change password" -msgstr "" +msgstr "Change password" #. module: base #: model:res.country,name:base.nl @@ -7667,12 +7725,16 @@ msgid "" "button \"Schedule for Installation\" from the form view, then click on " "\"Apply Scheduled Upgrades\" to migrate your system." msgstr "" +"You can install new modules to activate new features, menu, reports or data " +"in your OpenERP instance. To install some modules, click on the button " +"\"Schedule for Installation\" from the form view, then click on \"Apply " +"Scheduled Upgrades\" to migrate your system." #. module: base #: model:ir.ui.menu,name:base.menu_emails #: model:ir.ui.menu,name:base.menu_mail_gateway msgid "Emails" -msgstr "" +msgstr "Emails" #. module: base #: model:res.country,name:base.cd @@ -7749,7 +7811,7 @@ msgstr "Python code to be executed" #. module: base #: sql_constraint:res.country:0 msgid "The code of the country must be unique !" -msgstr "" +msgstr "The country code must be unique !" #. module: base #: selection:ir.module.module.dependency,state:0 @@ -7830,7 +7892,7 @@ msgstr "Suppliers" #. module: base #: view:publisher_warranty.contract.wizard:0 msgid "Register" -msgstr "" +msgstr "Register" #. module: base #: field:res.request,ref_doc2:0 @@ -7891,6 +7953,9 @@ msgid "" "loading a new language it becomes available as default interface language " "for users and partners." msgstr "" +"This wizard helps you add a new language to your OpenERP system. After " +"loading a new language it becomes available as the default interface " +"language for users and partners." #. module: base #: field:ir.actions.server,subject:0 @@ -7908,12 +7973,12 @@ msgstr "From" #. module: base #: view:res.users:0 msgid "Preferences" -msgstr "" +msgstr "Preferences" #. module: base #: model:res.partner.category,name:base.res_partner_category_consumers0 msgid "Consumers" -msgstr "" +msgstr "Consumers" #. module: base #: view:res.config:0 @@ -7939,7 +8004,7 @@ msgstr "" #. module: base #: view:ir.actions.report.xml:0 msgid "Miscellaneous" -msgstr "" +msgstr "Miscellaneous" #. module: base #: model:res.country,name:base.cn @@ -7970,6 +8035,8 @@ msgid "" "Create and manage the companies that will be managed by OpenERP from here. " "Shops or subsidiaries can be created and maintained from here." msgstr "" +"Create and manage the companies that will be managed by OpenERP here. Shops " +"or subsidiaries can be created and maintained here." #. module: base #: model:res.country,name:base.id @@ -7983,6 +8050,9 @@ msgid "" "you can then add translations manually or perform a complete export (as a " "template for a new language example)." msgstr "" +"This wizard will detect new terms to translate in the application, so that " +"you can add translations manually or perform a complete export (as a " +"template for a new language example)." #. module: base #: help:multi_company.default,expression:0 @@ -7999,7 +8069,7 @@ msgstr "Bulgaria" #. module: base #: view:publisher_warranty.contract.wizard:0 msgid "Publisher warranty contract successfully registered!" -msgstr "" +msgstr "Copy text \t Publisher warranty contract successfully registered!" #. module: base #: model:res.country,name:base.ao @@ -8034,7 +8104,7 @@ msgstr "5. %y, %Y ==> 08, 2008" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_ltd msgid "ltd" -msgstr "" +msgstr "ltd" #. module: base #: field:ir.values,res_id:0 @@ -8083,7 +8153,7 @@ msgstr "unknown" #. module: base #: field:res.currency,symbol:0 msgid "Symbol" -msgstr "" +msgstr "Symbol" #. module: base #: help:res.config.users,login:0 @@ -8094,7 +8164,7 @@ msgstr "" #. module: base #: view:base.update.translations:0 msgid "Synchronize Translation" -msgstr "" +msgstr "Synchronise Translation" #. module: base #: field:ir.ui.view_sc,res_id:0 @@ -8114,7 +8184,7 @@ msgstr "Iraq" #. module: base #: model:ir.ui.menu,name:base.menu_association msgid "Association" -msgstr "" +msgstr "Association" #. module: base #: model:res.country,name:base.cl @@ -8126,7 +8196,7 @@ msgstr "Chile" #: model:ir.ui.menu,name:base.menu_config_address_book #: model:ir.ui.menu,name:base.menu_procurement_management_supplier msgid "Address Book" -msgstr "" +msgstr "Address Book" #. module: base #: model:ir.model,name:base.model_ir_sequence_type @@ -8253,7 +8323,7 @@ msgstr "" #. module: base #: selection:ir.ui.view,type:0 msgid "Diagram" -msgstr "" +msgstr "Diagram" #. module: base #: help:multi_company.default,name:0 @@ -8264,7 +8334,7 @@ msgstr "" #: model:ir.actions.act_window,name:base.grant_menu_access #: model:ir.ui.menu,name:base.menu_grant_menu_access msgid "Menu Items" -msgstr "" +msgstr "Menu Items" #. module: base #: constraint:ir.rule:0 @@ -8397,7 +8467,7 @@ msgstr "Other Actions Configuration" #. module: base #: view:res.config.installer:0 msgid "Install Modules" -msgstr "" +msgstr "Install Modules" #. module: base #: model:ir.actions.act_window,name:base.res_partner_canal-act @@ -8410,7 +8480,7 @@ msgstr "Channels" #. module: base #: view:ir.ui.view:0 msgid "Extra Info" -msgstr "" +msgstr "Extra Info" #. module: base #: model:ir.actions.act_window,name:base.act_values_form_action @@ -8488,14 +8558,14 @@ msgstr "Start configuration" #. module: base #: view:base.language.export:0 msgid "_Export" -msgstr "" +msgstr "_Export" #. module: base #: field:base.language.install,state:0 #: field:base.module.import,state:0 #: field:base.module.update,state:0 msgid "state" -msgstr "" +msgstr "state" #. module: base #: selection:base.language.install,lang:0 @@ -8657,7 +8727,7 @@ msgstr "Thailand" #. module: base #: model:ir.ui.menu,name:base.menu_crm_config_lead msgid "Leads & Opportunities" -msgstr "" +msgstr "Leads & Opportunities" #. module: base #: selection:base.language.install,lang:0 @@ -8667,7 +8737,7 @@ msgstr "" #. module: base #: view:res.log:0 msgid "System Logs" -msgstr "" +msgstr "System Logs" #. module: base #: selection:workflow.activity,join_mode:0 @@ -8836,7 +8906,7 @@ msgstr "Slovak Republic" #. module: base #: model:ir.ui.menu,name:base.publisher_warranty msgid "Publisher Warranty" -msgstr "" +msgstr "Publisher Warranty" #. module: base #: model:res.country,name:base.aw @@ -8883,12 +8953,12 @@ msgstr "Company" #. module: base #: view:res.users:0 msgid "Email & Signature" -msgstr "" +msgstr "Email & Signature" #. module: base #: view:publisher_warranty.contract:0 msgid "Publisher Warranty Contract" -msgstr "" +msgstr "Publisher Warranty Contract" #. module: base #: selection:base.language.install,lang:0 @@ -8898,12 +8968,12 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_aftersale msgid "After-Sale Services" -msgstr "" +msgstr "After-Sales Services" #. module: base #: view:ir.actions.todo:0 msgid "Launch" -msgstr "" +msgstr "Launch" #. module: base #: field:ir.actions.act_window,limit:0 @@ -8928,6 +8998,10 @@ msgid "" "categories have a hierarchy structure: a partner belonging to a category " "also belong to his parent category." msgstr "" +"Manage the partner categories to better classify them for tracking and " +"analysis purposes. A partner may belong to several categories. Categories " +"have a hierarchy structure: a partner belonging to a category also belong to " +"his parent category." #. module: base #: model:res.country,name:base.az @@ -8954,7 +9028,7 @@ msgstr "Virgin Islands (British)" #: view:ir.property:0 #: model:ir.ui.menu,name:base.next_id_15 msgid "Parameters" -msgstr "" +msgstr "Parameters" #. module: base #: selection:base.language.install,lang:0 @@ -9022,6 +9096,9 @@ msgid "" "simplified interface, which has less features but is easier. You can always " "switch later from the user preferences." msgstr "" +"When you use OpenERP for the first time we strongly advise you select the " +"simplified interface, which has fewer features but is easier. You can switch " +"later from the user preferences." #. module: base #: model:ir.model,name:base.model_res_country @@ -9061,7 +9138,7 @@ msgstr "Category Name" #. module: base #: model:res.partner.category,name:base.res_partner_category_15 msgid "IT sector" -msgstr "" +msgstr "IT sector" #. module: base #: view:ir.actions.act_window:0 @@ -9100,7 +9177,7 @@ msgstr "Portrait" #: code:addons/base/ir/ir_model.py:317 #, python-format msgid "Can only rename one column at a time!" -msgstr "" +msgstr "Can only rename one column at a time!" #. module: base #: selection:ir.translation,type:0 @@ -9169,7 +9246,7 @@ msgstr "Action to Launch" #. module: base #: view:ir.cron:0 msgid "Execution" -msgstr "" +msgstr "Execution" #. module: base #: field:ir.actions.server,condition:0 @@ -9226,7 +9303,7 @@ msgstr "Partner Categories" #. module: base #: view:base.module.upgrade:0 msgid "System Update" -msgstr "" +msgstr "System Update" #. module: base #: selection:ir.translation,type:0 @@ -9307,7 +9384,7 @@ msgstr "" #. module: base #: selection:ir.actions.todo,restart:0 msgid "Never" -msgstr "" +msgstr "Never" #. module: base #: selection:res.partner.address,type:0 @@ -9350,7 +9427,7 @@ msgstr "Create Object" #: view:ir.filters:0 #: field:res.log,context:0 msgid "Context" -msgstr "" +msgstr "Context" #. module: base #: field:res.bank,bic:0 From 36d98cb14f23a45c2120662a3e5f6a100c78b0c0 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Sun, 19 Jun 2011 13:57:01 +0200 Subject: [PATCH 18/74] [FIX] orm.fields_get: typo in last refactoring bzr revid: odo@openerp.com-20110619115701-q06la7l6jhmihdk6 --- openerp/osv/orm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 4a86d6a4fea..6451dc67186 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1286,8 +1286,8 @@ class orm_template(object): res[f] = fields.field_to_dict(self, cr, user, context, field) if not write_access: - res['readonly'] = True - res['states'] = {} + res[f]['readonly'] = True + res[f]['states'] = {} if hasattr(res[f], 'string'): res_trans = translation_obj._get_source(cr, user, self._name + ',' + f, 'field', context.get('lang', False) or 'en_US') From effe36ee4843c730e64de627c457d625ccf5cc2a Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Mon, 20 Jun 2011 04:33:17 +0000 Subject: [PATCH 19/74] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20110618045712-0yql5n0y3b2cdjn5 bzr revid: launchpad_translations_on_behalf_of_openerp-20110619043730-488lieaxfqynd5ji bzr revid: launchpad_translations_on_behalf_of_openerp-20110620043317-29hyt535kvzpilvb --- addons/account/i18n/ar.po | 392 +++++++++++++++++--------------- addons/account/i18n/he.po | 385 ++++++++++++++++--------------- addons/crm/i18n/tr.po | 34 ++- addons/google_map/i18n/ar.po | 14 +- addons/hr_contract/i18n/ar.po | 12 +- addons/project_scrum/i18n/ar.po | 26 +-- 6 files changed, 462 insertions(+), 401 deletions(-) diff --git a/addons/account/i18n/ar.po b/addons/account/i18n/ar.po index 2f0e6798408..a4c12ebb0bb 100644 --- a/addons/account/i18n/ar.po +++ b/addons/account/i18n/ar.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-19 11:12+0000\n" -"Last-Translator: bamuhrez \n" +"PO-Revision-Date: 2011-06-18 11:20+0000\n" +"Last-Translator: Ahmed Mokhlis \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:04+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-19 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -24,7 +24,7 @@ msgstr "الدفع عن طريق النظام" #. module: account #: view:account.journal:0 msgid "Other Configuration" -msgstr "" +msgstr "تعديلات أخرى" #. module: account #: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 @@ -33,7 +33,7 @@ msgid "No End of year journal defined for the fiscal year" msgstr "لايوجد نهاية لسجل السنة للعام المحاسبي" #. module: account -#: code:addons/account/account.py:506 +#: code:addons/account/account.py:516 #, python-format msgid "" "You cannot remove/deactivate an account which is set as a property to any " @@ -65,7 +65,7 @@ msgid "Residual" msgstr "متبقي" #. module: account -#: code:addons/account/invoice.py:785 +#: code:addons/account/invoice.py:793 #, python-format msgid "Please define sequence on invoice journal" msgstr "" @@ -78,7 +78,7 @@ msgstr "خظأ! إن مدة الفترة أو الفترات غير صالحة " #. module: account #: field:account.analytic.line,currency_id:0 msgid "Account currency" -msgstr "" +msgstr "عملة الحساب" #. module: account #: view:account.tax:0 @@ -101,6 +101,7 @@ msgid "" "The Profit and Loss report gives you an overview of your company profit and " "loss in a single document" msgstr "" +"تقرير المكسب و الخسارة يعطيك فكرة عامة عن مكسب و خسارة شركتك في ملف واحد" #. module: account #: model:process.transition,name:account.process_transition_invoiceimport0 @@ -130,7 +131,7 @@ msgid "Accounting Entries-" msgstr "المدخلات المحاسبية -" #. module: account -#: code:addons/account/account.py:1291 +#: code:addons/account/account.py:1305 #, python-format msgid "You can not delete posted movement: \"%s\"!" msgstr "" @@ -174,7 +175,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/invoice.py:1421 +#: code:addons/account/invoice.py:1436 #, python-format msgid "Warning!" msgstr "تحذير!" @@ -226,7 +227,7 @@ msgid "account.tax" msgstr "" #. module: account -#: code:addons/account/account.py:901 +#: code:addons/account/account.py:915 #, python-format msgid "" "No period defined for this date: %s !\n" @@ -254,7 +255,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/invoice.py:1210 +#: code:addons/account/invoice.py:1224 #, python-format msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)" msgstr "" @@ -270,7 +271,7 @@ msgid "Belgian Reports" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1176 +#: code:addons/account/account_move_line.py:1182 #, python-format msgid "You can not add/modify entries in a closed journal." msgstr "" @@ -308,7 +309,7 @@ msgid "St." msgstr "" #. module: account -#: code:addons/account/invoice.py:529 +#: code:addons/account/invoice.py:532 #, python-format msgid "Invoice line account company does not match with invoice company." msgstr "" @@ -415,7 +416,7 @@ msgstr "" #. module: account #: field:account.journal,default_debit_account_id:0 msgid "Default Debit Account" -msgstr "" +msgstr "الحساب المدين الافتراضي" #. module: account #: view:account.move:0 @@ -550,7 +551,7 @@ msgid "Not reconciled transactions" msgstr "" #. module: account -#: code:addons/account/account_cash_statement.py:348 +#: code:addons/account/account_cash_statement.py:349 #, python-format msgid "CashBox Balance is not matching with Calculated Balance !" msgstr "" @@ -632,7 +633,7 @@ msgid "Tax Code Amount" msgstr "" #. module: account -#: code:addons/account/account.py:2779 +#: code:addons/account/account.py:2823 #: code:addons/account/installer.py:434 #, python-format msgid "SAJ" @@ -665,8 +666,8 @@ msgid "Journal Period" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:732 -#: code:addons/account/account_move_line.py:776 +#: code:addons/account/account_move_line.py:723 +#: code:addons/account/account_move_line.py:767 #, python-format msgid "To reconcile the entries company should be the same for all entries" msgstr "" @@ -727,7 +728,7 @@ msgid "Analytic Entries by line" msgstr "" #. module: account -#: code:addons/account/wizard/account_change_currency.py:39 +#: code:addons/account/wizard/account_change_currency.py:38 #, python-format msgid "You can only change currency for Draft Invoice !" msgstr "" @@ -828,7 +829,7 @@ msgid "Next Partner to reconcile" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1191 +#: code:addons/account/account_move_line.py:1197 #, python-format msgid "" "You can not do this modification on a confirmed entry ! Please note that you " @@ -950,11 +951,11 @@ msgid "Code" msgstr "" #. module: account -#: code:addons/account/account.py:2083 +#: code:addons/account/account.py:2097 #: code:addons/account/account_bank_statement.py:350 -#: code:addons/account/account_move_line.py:170 +#: code:addons/account/account_move_line.py:169 #: code:addons/account/invoice.py:73 -#: code:addons/account/invoice.py:670 +#: code:addons/account/invoice.py:678 #: code:addons/account/wizard/account_use_model.py:81 #, python-format msgid "No Analytic Journal !" @@ -1033,7 +1034,6 @@ msgstr "" #. module: account #: report:account.analytic.account.journal:0 -#: report:account.move.voucher:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 msgid "-" @@ -1119,6 +1119,7 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 @@ -1126,7 +1127,7 @@ msgid "Entry Label" msgstr "" #. module: account -#: code:addons/account/account.py:976 +#: code:addons/account/account.py:990 #, python-format msgid "You can not modify/delete a journal with entries for this period !" msgstr "" @@ -1264,7 +1265,6 @@ msgid "Journal Items Analysis" msgstr "" #. module: account -#: model:ir.actions.act_window,name:account.action_partner_all #: model:ir.ui.menu,name:account.next_id_22 msgid "Partners" msgstr "" @@ -1294,7 +1294,7 @@ msgid "Central Journal" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1271 +#: code:addons/account/account_move_line.py:1277 #, python-format msgid "You can not use this general account in this journal !" msgstr "" @@ -1387,7 +1387,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/invoice.py:815 +#: code:addons/account/invoice.py:823 #, python-format msgid "" "Cannot create the invoice !\n" @@ -1546,7 +1546,6 @@ msgid "Separated Journal Sequences" msgstr "" #. module: account -#: field:account.bank.statement,user_id:0 #: view:account.invoice:0 msgid "Responsible" msgstr "" @@ -1613,7 +1612,7 @@ msgid "Error! You cannot define overlapping fiscal years" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:808 +#: code:addons/account/account_move_line.py:799 #, python-format msgid "The account is not defined to be reconciled !" msgstr "" @@ -1646,7 +1645,7 @@ msgid "Receivables & Payables" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:815 +#: code:addons/account/account_move_line.py:806 #, python-format msgid "You have to provide an account for the write off entry !" msgstr "" @@ -1682,7 +1681,7 @@ msgid "Customer Ref:" msgstr "" #. module: account -#: code:addons/account/account_cash_statement.py:328 +#: code:addons/account/account_cash_statement.py:329 #, python-format msgid "User %s does not have rights to access %s journal !" msgstr "" @@ -1703,7 +1702,7 @@ msgid "Tax Declaration: Credit Notes" msgstr "" #. module: account -#: code:addons/account/account.py:499 +#: code:addons/account/account.py:509 #, python-format msgid "You cannot deactivate an account that contains account moves." msgstr "" @@ -1719,7 +1718,7 @@ msgid "You can not create move line on closed account." msgstr "" #. module: account -#: code:addons/account/account.py:519 +#: code:addons/account/account.py:529 #, python-format msgid "" "You cannot change the type of account from 'Closed' to any other type which " @@ -1988,7 +1987,7 @@ msgid " Journal" msgstr "" #. module: account -#: code:addons/account/account.py:1319 +#: code:addons/account/account.py:1333 #, python-format msgid "" "There is no default default debit account defined \n" @@ -2040,7 +2039,7 @@ msgid "Description" msgstr "" #. module: account -#: code:addons/account/account.py:2844 +#: code:addons/account/account.py:2888 #: code:addons/account/installer.py:498 #, python-format msgid "ECNJ" @@ -2060,7 +2059,7 @@ msgid "Income Account" msgstr "" #. module: account -#: code:addons/account/invoice.py:352 +#: code:addons/account/invoice.py:351 #, python-format msgid "There is no Accounting Journal of type Sale/Purchase defined!" msgstr "" @@ -2071,6 +2070,7 @@ msgid "Accounting Properties" msgstr "" #. module: account +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.print.journal,sort_selection:0 msgid "Entries Sorted By" @@ -2099,6 +2099,7 @@ msgstr "" #: field:account.fiscalyear,name:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.journal.period,fiscalyear_id:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -2207,7 +2208,7 @@ msgid "Account Tax Code" msgstr "كود الحساب الضريبي" #. module: account -#: code:addons/account/invoice.py:545 +#: code:addons/account/invoice.py:552 #, python-format msgid "" "Can't find any account journal of %s type for this company.\n" @@ -2277,7 +2278,7 @@ msgid "Account Model Entries" msgstr "إدخالات نماذج الحسابات" #. module: account -#: code:addons/account/account.py:2796 +#: code:addons/account/account.py:2840 #: code:addons/account/installer.py:454 #, python-format msgid "EXJ" @@ -2361,7 +2362,7 @@ msgid "Accounts" msgstr "" #. module: account -#: code:addons/account/invoice.py:351 +#: code:addons/account/invoice.py:350 #, python-format msgid "Configuration Error!" msgstr "" @@ -2373,13 +2374,12 @@ msgid "Average Price" msgstr "" #. module: account -#: report:account.move.voucher:0 #: report:account.overdue:0 msgid "Date:" msgstr "" #. module: account -#: code:addons/account/account.py:640 +#: code:addons/account/account.py:654 #, python-format msgid "" "You cannot modify company of this journal as its related record exist in " @@ -2415,6 +2415,7 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.overdue:0 #: report:account.third_party_ledger:0 @@ -2523,16 +2524,16 @@ msgid "This wizard will create recurring accounting entries" msgstr "" #. module: account -#: code:addons/account/account.py:1181 +#: code:addons/account/account.py:1195 #, python-format msgid "No sequence defined on the journal !" msgstr "" #. module: account -#: code:addons/account/account.py:2083 +#: code:addons/account/account.py:2097 #: code:addons/account/account_bank_statement.py:350 -#: code:addons/account/account_move_line.py:170 -#: code:addons/account/invoice.py:670 +#: code:addons/account/account_move_line.py:169 +#: code:addons/account/invoice.py:678 #: code:addons/account/wizard/account_use_model.py:81 #, python-format msgid "You have to define an analytic journal on the '%s' journal!" @@ -2692,7 +2693,7 @@ msgid "Analytic Entries" msgstr "" #. module: account -#: code:addons/account/account.py:822 +#: code:addons/account/account.py:836 #, python-format msgid "" "No fiscal year defined for this date !\n" @@ -2815,7 +2816,7 @@ msgid "BNK%s" msgstr "" #. module: account -#: code:addons/account/account.py:2906 +#: code:addons/account/account.py:2950 #: code:addons/account/installer.py:296 #, python-format msgid "BNK" @@ -2924,6 +2925,7 @@ msgstr "" #: field:account.common.report,journal_ids:0 #: report:account.general.journal:0 #: field:account.general.journal,journal_ids:0 +#: report:account.general.ledger_landscape:0 #: view:account.journal.period:0 #: report:account.partner.balance:0 #: field:account.partner.balance,journal_ids:0 @@ -2984,7 +2986,7 @@ msgid "Starting Balance" msgstr "" #. module: account -#: code:addons/account/invoice.py:1284 +#: code:addons/account/invoice.py:1298 #, python-format msgid "No Partner Defined !" msgstr "" @@ -3026,7 +3028,6 @@ msgstr "" #: view:account.invoice.report:0 #: selection:account.invoice.report,state:0 #: selection:account.journal.period,state:0 -#: report:account.move.voucher:0 #: view:account.subscription:0 #: selection:account.subscription,state:0 #: selection:report.invoice.created,state:0 @@ -3078,7 +3079,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/invoice.py:370 +#: code:addons/account/invoice.py:373 #, python-format msgid "Cannot delete invoice(s) that are already opened or paid !" msgstr "" @@ -3139,7 +3140,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:522 +#: code:addons/account/account.py:532 #, python-format msgid "" "You cannot change the type of account from '%s' to '%s' type as it contains " @@ -3148,6 +3149,7 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 msgid "Counterpart" msgstr "" @@ -3250,6 +3252,7 @@ msgstr "" #: field:account.entries.report,date:0 #: selection:account.general.journal,filter:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.invoice.report,date:0 #: report:account.journal.period.print:0 #: view:account.move:0 @@ -3293,7 +3296,7 @@ msgid "Chart of Accounts Template" msgstr "" #. module: account -#: code:addons/account/account.py:2095 +#: code:addons/account/account.py:2109 #, python-format msgid "" "Maturity date of entry line generated by model line '%s' of model '%s' is " @@ -3302,13 +3305,13 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:810 +#: code:addons/account/account_move_line.py:801 #, python-format msgid "Some entries are already reconciled !" msgstr "" #. module: account -#: code:addons/account/account.py:1204 +#: code:addons/account/account.py:1218 #, python-format msgid "" "You cannot validate a Journal Entry unless all journal items are in same " @@ -3428,7 +3431,7 @@ msgid "Analytic Items" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1128 +#: code:addons/account/account_move_line.py:1134 #, python-format msgid "Unable to change tax !" msgstr "" @@ -3439,14 +3442,14 @@ msgid "#Entries" msgstr "" #. module: account -#: code:addons/account/invoice.py:1422 +#: code:addons/account/invoice.py:1437 #, python-format msgid "" "You selected an Unit of Measure which is not compatible with the product." msgstr "" #. module: account -#: code:addons/account/invoice.py:473 +#: code:addons/account/invoice.py:476 #, python-format msgid "" "The Payment Term of Supplier does not have Payment Term Lines(Computation) " @@ -3740,7 +3743,7 @@ msgid "Acc.Type" msgstr "" #. module: account -#: code:addons/account/invoice.py:714 +#: code:addons/account/invoice.py:722 #, python-format msgid "Global taxes defined, but are not in invoice lines !" msgstr "" @@ -3799,7 +3802,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_analytic_line.py:91 +#: code:addons/account/account_analytic_line.py:90 #, python-format msgid "There is no expense account defined for this product: \"%s\" (id:%d)" msgstr "" @@ -3974,7 +3977,7 @@ msgid "Credit Notes" msgstr "" #. module: account -#: code:addons/account/account.py:2067 +#: code:addons/account/account.py:2081 #: code:addons/account/wizard/account_use_model.py:69 #, python-format msgid "Unable to find a valid period !" @@ -4045,11 +4048,11 @@ msgid "Change" msgstr "" #. module: account -#: code:addons/account/account.py:1290 -#: code:addons/account/account.py:1318 -#: code:addons/account/account.py:1325 -#: code:addons/account/account_move_line.py:1055 -#: code:addons/account/invoice.py:896 +#: code:addons/account/account.py:1304 +#: code:addons/account/account.py:1332 +#: code:addons/account/account.py:1339 +#: code:addons/account/account_move_line.py:1061 +#: code:addons/account/invoice.py:904 #: code:addons/account/wizard/account_automatic_reconcile.py:152 #: code:addons/account/wizard/account_fiscalyear_close.py:78 #: code:addons/account/wizard/account_fiscalyear_close.py:81 @@ -4153,7 +4156,7 @@ msgid "You must define an analytic journal of type '%s' !" msgstr "" #. module: account -#: code:addons/account/account.py:1397 +#: code:addons/account/account.py:1411 #, python-format msgid "" "Couldn't create move with currency different from the secondary currency of " @@ -4218,7 +4221,7 @@ msgid "Invoices" msgstr "" #. module: account -#: code:addons/account/invoice.py:804 +#: code:addons/account/invoice.py:812 #, python-format msgid "" "Please verify the price of the invoice !\n" @@ -4330,25 +4333,24 @@ msgid "Third Party (Country)" msgstr "" #. module: account -#: code:addons/account/account.py:938 -#: code:addons/account/account.py:940 -#: code:addons/account/account.py:1181 -#: code:addons/account/account.py:1393 -#: code:addons/account/account.py:1397 -#: code:addons/account/account_cash_statement.py:249 -#: code:addons/account/account_move_line.py:780 -#: code:addons/account/account_move_line.py:803 -#: code:addons/account/account_move_line.py:805 -#: code:addons/account/account_move_line.py:808 -#: code:addons/account/account_move_line.py:810 -#: code:addons/account/account_move_line.py:1117 +#: code:addons/account/account.py:952 +#: code:addons/account/account.py:954 +#: code:addons/account/account.py:1195 +#: code:addons/account/account.py:1407 +#: code:addons/account/account.py:1411 +#: code:addons/account/account_cash_statement.py:250 +#: code:addons/account/account_move_line.py:771 +#: code:addons/account/account_move_line.py:794 +#: code:addons/account/account_move_line.py:796 +#: code:addons/account/account_move_line.py:799 +#: code:addons/account/account_move_line.py:801 +#: code:addons/account/account_move_line.py:1123 #: code:addons/account/report/common_report_header.py:92 -#: code:addons/account/wizard/account_change_currency.py:39 -#: code:addons/account/wizard/account_change_currency.py:60 -#: code:addons/account/wizard/account_change_currency.py:65 -#: code:addons/account/wizard/account_change_currency.py:71 +#: code:addons/account/wizard/account_change_currency.py:38 +#: code:addons/account/wizard/account_change_currency.py:59 +#: code:addons/account/wizard/account_change_currency.py:64 +#: code:addons/account/wizard/account_change_currency.py:70 #: code:addons/account/wizard/account_move_bank_reconcile.py:49 -#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 #: code:addons/account/wizard/account_report_common.py:120 #: code:addons/account/wizard/account_report_common.py:126 #, python-format @@ -4370,7 +4372,7 @@ msgid "Bank Details" msgstr "" #. module: account -#: code:addons/account/invoice.py:720 +#: code:addons/account/invoice.py:728 #, python-format msgid "Taxes missing !" msgstr "" @@ -4425,7 +4427,7 @@ msgid "Check Date not in the Period" msgstr "" #. module: account -#: code:addons/account/account.py:1210 +#: code:addons/account/account.py:1224 #, python-format msgid "" "You can not modify a posted entry of this journal !\n" @@ -4444,7 +4446,7 @@ msgid "Child Tax Accounts" msgstr "" #. module: account -#: code:addons/account/account.py:940 +#: code:addons/account/account.py:954 #, python-format msgid "Start period should be smaller then End period" msgstr "" @@ -4474,6 +4476,7 @@ msgstr "" #: report:account.general.journal:0 #: field:account.general.journal,target_move:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.move.journal,target_move:0 #: report:account.partner.balance:0 @@ -4556,7 +4559,7 @@ msgid "Line 1:" msgstr "" #. module: account -#: code:addons/account/account.py:1167 +#: code:addons/account/account.py:1181 #, python-format msgid "Integrity Error !" msgstr "" @@ -4591,7 +4594,7 @@ msgstr "" #: field:account.invoice.tax,account_id:0 #: field:account.move.line,tax_code_id:0 msgid "Tax Account" -msgstr "" +msgstr "حساب الضرائب" #. module: account #: view:account.automatic.reconcile:0 @@ -4702,7 +4705,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:2067 +#: code:addons/account/account.py:2081 #: code:addons/account/wizard/account_use_model.py:69 #, python-format msgid "No period found !" @@ -4774,7 +4777,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:2896 +#: code:addons/account/account.py:2940 #: code:addons/account/installer.py:283 #: code:addons/account/installer.py:295 #, python-format @@ -4802,7 +4805,7 @@ msgid "Start of period" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1193 +#: code:addons/account/account_move_line.py:1199 #, python-format msgid "" "You can not do this modification on a reconciled entry ! Please note that " @@ -4858,12 +4861,12 @@ msgstr "" #. module: account #: code:addons/account/account_bank_statement.py:331 -#: code:addons/account/invoice.py:405 -#: code:addons/account/invoice.py:505 -#: code:addons/account/invoice.py:520 -#: code:addons/account/invoice.py:528 -#: code:addons/account/invoice.py:545 -#: code:addons/account/invoice.py:1347 +#: code:addons/account/invoice.py:408 +#: code:addons/account/invoice.py:508 +#: code:addons/account/invoice.py:523 +#: code:addons/account/invoice.py:531 +#: code:addons/account/invoice.py:552 +#: code:addons/account/invoice.py:1361 #: code:addons/account/wizard/account_move_journal.py:63 #, python-format msgid "Configuration Error !" @@ -4940,7 +4943,7 @@ msgid "Sort By" msgstr "" #. module: account -#: code:addons/account/account.py:1326 +#: code:addons/account/account.py:1340 #, python-format msgid "" "There is no default default credit account defined \n" @@ -4960,7 +4963,7 @@ msgstr "" msgid "" "Specified Journal does not have any account move entries in draft state for " "this period" -msgstr "" +msgstr "اليومية المختارة لا تشمل أي حساب، لذا أضفها بالمسودات لهذه الفترة" #. module: account #: model:ir.actions.act_window,name:account.action_view_move_line @@ -5087,7 +5090,7 @@ msgid "Generate Opening Entries" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:738 +#: code:addons/account/account_move_line.py:729 #, python-format msgid "Already Reconciled!" msgstr "" @@ -5123,7 +5126,7 @@ msgstr "" #. module: account #: view:account.move.line.reconcile:0 -#: code:addons/account/account_move_line.py:830 +#: code:addons/account/account_move_line.py:821 #, python-format msgid "Write-Off" msgstr "" @@ -5260,7 +5263,7 @@ msgid "# of Lines" msgstr "" #. module: account -#: code:addons/account/wizard/account_change_currency.py:60 +#: code:addons/account/wizard/account_change_currency.py:59 #, python-format msgid "New currency is not confirured properly !" msgstr "" @@ -5285,14 +5288,14 @@ msgid "Filter by" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1131 -#: code:addons/account/account_move_line.py:1214 +#: code:addons/account/account_move_line.py:1137 +#: code:addons/account/account_move_line.py:1220 #, python-format msgid "You can not use an inactive account!" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:803 +#: code:addons/account/account_move_line.py:794 #, python-format msgid "Entries are not of the same account or already reconciled ! " msgstr "" @@ -5327,7 +5330,7 @@ msgstr "" #. module: account #: code:addons/account/account_bank_statement.py:391 -#: code:addons/account/invoice.py:370 +#: code:addons/account/invoice.py:373 #, python-format msgid "Invalid action !" msgstr "" @@ -5538,7 +5541,7 @@ msgid "Companies" msgstr "" #. module: account -#: code:addons/account/account.py:532 +#: code:addons/account/account.py:546 #, python-format msgid "" "You cannot modify Company of account as its related record exist in Entry " @@ -5804,9 +5807,9 @@ msgid "Optional create" msgstr "" #. module: account -#: code:addons/account/invoice.py:406 -#: code:addons/account/invoice.py:506 -#: code:addons/account/invoice.py:1348 +#: code:addons/account/invoice.py:409 +#: code:addons/account/invoice.py:509 +#: code:addons/account/invoice.py:1362 #, python-format msgid "Can not find account chart for this company, Please Create account." msgstr "" @@ -5955,8 +5958,8 @@ msgid "Analytic Entries Statistics" msgstr "" #. module: account -#: code:addons/account/account_analytic_line.py:143 -#: code:addons/account/account_move_line.py:905 +#: code:addons/account/account_analytic_line.py:141 +#: code:addons/account/account_move_line.py:897 #, python-format msgid "Entries: " msgstr "" @@ -5967,7 +5970,7 @@ msgid "Create manual recurring entries in a chosen journal." msgstr "" #. module: account -#: code:addons/account/account.py:1393 +#: code:addons/account/account.py:1407 #, python-format msgid "Couldn't create move between different companies" msgstr "" @@ -6005,7 +6008,7 @@ msgid "Total debit" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:781 +#: code:addons/account/account_move_line.py:772 #, python-format msgid "Entry \"%s\" is not valid !" msgstr "" @@ -6069,30 +6072,31 @@ msgid " valuation: percent" msgstr "" #. module: account -#: code:addons/account/account.py:499 -#: code:addons/account/account.py:501 -#: code:addons/account/account.py:822 -#: code:addons/account/account.py:901 -#: code:addons/account/account.py:976 -#: code:addons/account/account.py:1204 -#: code:addons/account/account.py:1210 -#: code:addons/account/account.py:2095 -#: code:addons/account/account.py:2333 -#: code:addons/account/account_analytic_line.py:90 -#: code:addons/account/account_analytic_line.py:99 +#: code:addons/account/account.py:509 +#: code:addons/account/account.py:511 +#: code:addons/account/account.py:836 +#: code:addons/account/account.py:915 +#: code:addons/account/account.py:990 +#: code:addons/account/account.py:1218 +#: code:addons/account/account.py:1224 +#: code:addons/account/account.py:2109 +#: code:addons/account/account.py:2357 +#: code:addons/account/account_analytic_line.py:89 +#: code:addons/account/account_analytic_line.py:98 #: code:addons/account/account_bank_statement.py:292 #: code:addons/account/account_bank_statement.py:305 #: code:addons/account/account_bank_statement.py:345 -#: code:addons/account/account_cash_statement.py:328 -#: code:addons/account/account_cash_statement.py:348 -#: code:addons/account/account_move_line.py:1176 -#: code:addons/account/account_move_line.py:1191 -#: code:addons/account/account_move_line.py:1193 -#: code:addons/account/invoice.py:785 -#: code:addons/account/invoice.py:815 -#: code:addons/account/invoice.py:1008 +#: code:addons/account/account_cash_statement.py:329 +#: code:addons/account/account_cash_statement.py:349 +#: code:addons/account/account_move_line.py:1182 +#: code:addons/account/account_move_line.py:1197 +#: code:addons/account/account_move_line.py:1199 +#: code:addons/account/invoice.py:793 +#: code:addons/account/invoice.py:823 +#: code:addons/account/invoice.py:1014 #: code:addons/account/wizard/account_invoice_refund.py:100 #: code:addons/account/wizard/account_invoice_refund.py:102 +#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 #: code:addons/account/wizard/account_use_model.py:44 #, python-format msgid "Error !" @@ -6202,7 +6206,7 @@ msgid "Journal Select" msgstr "" #. module: account -#: code:addons/account/wizard/account_change_currency.py:65 +#: code:addons/account/wizard/account_change_currency.py:64 #, python-format msgid "Currnt currency is not confirured properly !" msgstr "" @@ -6219,9 +6223,11 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: view:account.report.general.ledger:0 #: model:ir.actions.act_window,name:account.action_account_general_ledger_menu #: model:ir.actions.report.xml,name:account.account_general_ledger +#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape #: model:ir.ui.menu,name:account.menu_general_ledger msgid "General Ledger" msgstr "" @@ -6275,7 +6281,7 @@ msgid "Total:" msgstr "" #. module: account -#: code:addons/account/account.py:2050 +#: code:addons/account/account.py:2064 #, python-format msgid "" "You can specify year, month and date in the name of the model using the " @@ -6305,7 +6311,7 @@ msgid "Child Codes" msgstr "" #. module: account -#: code:addons/account/invoice.py:473 +#: code:addons/account/invoice.py:476 #: code:addons/account/wizard/account_invoice_refund.py:137 #, python-format msgid "Data Insufficient !" @@ -6462,7 +6468,7 @@ msgid "Lines" msgstr "" #. module: account -#: code:addons/account/invoice.py:521 +#: code:addons/account/invoice.py:524 #, python-format msgid "" "Can not find account chart for this company in invoice line account, Please " @@ -6630,7 +6636,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:938 +#: code:addons/account/account.py:952 #, python-format msgid "You should have chosen periods that belongs to the same company" msgstr "" @@ -6734,7 +6740,7 @@ msgid "Sign on Reports" msgstr "" #. module: account -#: code:addons/account/account_cash_statement.py:249 +#: code:addons/account/account_cash_statement.py:250 #, python-format msgid "You can not have two open register for the same journal" msgstr "" @@ -6763,7 +6769,6 @@ msgstr "" #. module: account #: report:account.invoice:0 #: view:account.invoice:0 -#: report:account.move.voucher:0 msgid "PRO-FORMA" msgstr "" @@ -6793,6 +6798,7 @@ msgstr "" #. module: account #: view:account.analytic.line:0 +#: field:account.bank.statement,user_id:0 #: view:account.journal:0 #: field:account.journal,user_id:0 #: view:analytic.entries.report:0 @@ -6818,13 +6824,13 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1271 +#: code:addons/account/account_move_line.py:1277 #, python-format msgid "Bad account !" msgstr "" #. module: account -#: code:addons/account/account.py:2777 +#: code:addons/account/account.py:2821 #: code:addons/account/installer.py:432 #, python-format msgid "Sales Journal" @@ -6842,7 +6848,7 @@ msgid "Invoice Tax" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1246 +#: code:addons/account/account_move_line.py:1252 #, python-format msgid "No piece number !" msgstr "" @@ -7079,17 +7085,17 @@ msgid "Fixed" msgstr "" #. module: account -#: code:addons/account/account.py:506 -#: code:addons/account/account.py:519 -#: code:addons/account/account.py:522 +#: code:addons/account/account.py:516 +#: code:addons/account/account.py:529 #: code:addons/account/account.py:532 -#: code:addons/account/account.py:640 -#: code:addons/account/account.py:927 -#: code:addons/account/account_move_line.py:732 -#: code:addons/account/account_move_line.py:776 -#: code:addons/account/invoice.py:714 -#: code:addons/account/invoice.py:717 -#: code:addons/account/invoice.py:720 +#: code:addons/account/account.py:546 +#: code:addons/account/account.py:654 +#: code:addons/account/account.py:941 +#: code:addons/account/account_move_line.py:723 +#: code:addons/account/account_move_line.py:767 +#: code:addons/account/invoice.py:722 +#: code:addons/account/invoice.py:725 +#: code:addons/account/invoice.py:728 #, python-format msgid "Warning !" msgstr "" @@ -7121,6 +7127,7 @@ msgstr "" #: view:account.entries.report:0 #: field:account.entries.report,partner_id:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: view:account.invoice:0 #: field:account.invoice,partner_id:0 #: field:account.invoice.line,partner_id:0 @@ -7151,7 +7158,7 @@ msgid "Can not %s draft/proforma/cancel invoice." msgstr "" #. module: account -#: code:addons/account/invoice.py:787 +#: code:addons/account/invoice.py:795 #, python-format msgid "No Invoice Lines !" msgstr "" @@ -7200,7 +7207,7 @@ msgid "Deferral Method" msgstr "" #. module: account -#: code:addons/account/invoice.py:359 +#: code:addons/account/invoice.py:360 #, python-format msgid "Invoice '%s' is paid." msgstr "" @@ -7261,7 +7268,7 @@ msgid "Associated Partner" msgstr "" #. module: account -#: code:addons/account/invoice.py:1284 +#: code:addons/account/invoice.py:1298 #, python-format msgid "You must first select a partner !" msgstr "" @@ -7326,7 +7333,7 @@ msgid "Choose Fiscal Year" msgstr "" #. module: account -#: code:addons/account/account.py:2841 +#: code:addons/account/account.py:2885 #: code:addons/account/installer.py:495 #, python-format msgid "Purchase Refund Journal" @@ -7361,6 +7368,7 @@ msgstr "" #: view:account.entries.report:0 #: field:account.entries.report,period_id:0 #: view:account.fiscalyear:0 +#: report:account.general.ledger_landscape:0 #: view:account.invoice:0 #: view:account.invoice.report:0 #: field:account.journal.period,period_id:0 @@ -7523,7 +7531,7 @@ msgid "Account Types" msgstr "" #. module: account -#: code:addons/account/invoice.py:897 +#: code:addons/account/invoice.py:905 #, python-format msgid "Cannot create invoice move on centralised journal" msgstr "" @@ -7573,6 +7581,7 @@ msgstr "" #: report:account.account.balance:0 #: report:account.central.journal:0 #: report:account.general.journal:0 +#: report:account.general.ledger_landscape:0 #: report:account.partner.balance:0 msgid "Filter By" msgstr "" @@ -7611,7 +7620,7 @@ msgid "Payment Term Line" msgstr "" #. module: account -#: code:addons/account/account.py:2794 +#: code:addons/account/account.py:2838 #: code:addons/account/installer.py:452 #, python-format msgid "Purchase Journal" @@ -7778,8 +7787,8 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1131 -#: code:addons/account/account_move_line.py:1214 +#: code:addons/account/account_move_line.py:1137 +#: code:addons/account/account_move_line.py:1220 #, python-format msgid "Bad account!" msgstr "" @@ -7790,7 +7799,7 @@ msgid "Keep empty for all open fiscal years" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1056 +#: code:addons/account/account_move_line.py:1062 #, python-format msgid "The account move (%s) for centralisation has been confirmed!" msgstr "" @@ -7811,6 +7820,7 @@ msgstr "" #: field:account.entries.report,currency_id:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.invoice,currency_id:0 #: field:account.invoice.report,currency_id:0 #: field:account.journal,currency:0 @@ -7983,14 +7993,14 @@ msgid "Period from" msgstr "" #. module: account -#: code:addons/account/account.py:2817 +#: code:addons/account/account.py:2861 #: code:addons/account/installer.py:476 #, python-format msgid "Sales Refund Journal" msgstr "" #. module: account -#: code:addons/account/account.py:927 +#: code:addons/account/account.py:941 #, python-format msgid "" "You cannot modify company of this period as its related record exist in " @@ -8039,7 +8049,7 @@ msgid "Purchase Tax(%)" msgstr "" #. module: account -#: code:addons/account/invoice.py:787 +#: code:addons/account/invoice.py:795 #, python-format msgid "Please create some invoice lines." msgstr "" @@ -8055,7 +8065,7 @@ msgid "Configure Your Accounting Application" msgstr "" #. module: account -#: code:addons/account/account.py:2820 +#: code:addons/account/account.py:2864 #: code:addons/account/installer.py:479 #, python-format msgid "SCNJ" @@ -8093,6 +8103,7 @@ msgstr "" #: report:account.central.journal:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 @@ -8102,7 +8113,7 @@ msgid "Start Period" msgstr "" #. module: account -#: code:addons/account/account.py:2333 +#: code:addons/account/account.py:2357 #, python-format msgid "Cannot locate parent code for template account!" msgstr "" @@ -8139,7 +8150,7 @@ msgid "Accountant validates the accounting entries coming from the invoice. " msgstr "" #. module: account -#: code:addons/account/invoice.py:1008 +#: code:addons/account/invoice.py:1014 #, python-format msgid "" "You cannot cancel the Invoice which is Partially Paid! You need to " @@ -8167,7 +8178,7 @@ msgid "You can not create move line on view account." msgstr "" #. module: account -#: code:addons/account/wizard/account_change_currency.py:71 +#: code:addons/account/wizard/account_change_currency.py:70 #, python-format msgid "Current currency is not confirured properly !" msgstr "" @@ -8216,6 +8227,7 @@ msgstr "" #: field:account.entries.report,balance:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.move.line,balance:0 #: report:account.partner.balance:0 #: selection:account.payment.term.line,value:0 @@ -8234,6 +8246,7 @@ msgstr "" #. module: account #: report:account.account.balance:0 +#: report:account.general.ledger_landscape:0 msgid "Display Account" msgstr "" @@ -8348,6 +8361,7 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.move.line,move_id:0 #: field:analytic.entries.report,move_id:0 @@ -8355,7 +8369,7 @@ msgid "Move" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1128 +#: code:addons/account/account_move_line.py:1134 #, python-format msgid "You can not change the tax, you should remove and recreate lines !" msgstr "" @@ -8449,6 +8463,7 @@ msgstr "" #: report:account.central.journal:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 @@ -8492,7 +8507,7 @@ msgid "Account Subscription" msgstr "" #. module: account -#: code:addons/account/invoice.py:717 +#: code:addons/account/invoice.py:725 #, python-format msgid "" "Tax base different !\n" @@ -8519,6 +8534,7 @@ msgstr "" #: report:account.general.journal:0 #: field:account.general.journal,date_from:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,date_start:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -8547,7 +8563,7 @@ msgid "Unreconciled" msgstr "" #. module: account -#: code:addons/account/invoice.py:804 +#: code:addons/account/invoice.py:812 #, python-format msgid "Bad total !" msgstr "" @@ -8605,13 +8621,13 @@ msgid "Active" msgstr "" #. module: account -#: code:addons/account/invoice.py:354 +#: code:addons/account/invoice.py:353 #, python-format msgid "Unknown Error" msgstr "" #. module: account -#: code:addons/account/account.py:1167 +#: code:addons/account/account.py:1181 #, python-format msgid "" "You cannot validate a non-balanced entry !\n" @@ -8654,10 +8670,10 @@ msgstr "" #: field:account.entries.report,credit:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.model.line,credit:0 #: field:account.move.line,credit:0 -#: report:account.move.voucher:0 #: report:account.partner.balance:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 @@ -8893,7 +8909,6 @@ msgstr "" #: view:account.move:0 #: selection:account.move,state:0 #: view:account.move.line:0 -#: report:account.move.voucher:0 msgid "Posted" msgstr "" @@ -8912,6 +8927,7 @@ msgstr "" #: report:account.general.journal:0 #: field:account.general.journal,date_to:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,date_stop:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -8965,7 +8981,7 @@ msgid "This is a model for recurring accounting entries" msgstr "" #. module: account -#: code:addons/account/account_analytic_line.py:100 +#: code:addons/account/account_analytic_line.py:99 #, python-format msgid "There is no income account defined for this product: \"%s\" (id:%d)" msgstr "" @@ -9115,8 +9131,8 @@ msgid "End period" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:738 -#: code:addons/account/account_move_line.py:815 +#: code:addons/account/account_move_line.py:729 +#: code:addons/account/account_move_line.py:806 #: code:addons/account/wizard/account_invoice_state.py:44 #: code:addons/account/wizard/account_invoice_state.py:68 #: code:addons/account/wizard/account_report_balance_sheet.py:70 @@ -9182,10 +9198,10 @@ msgstr "" #: field:account.entries.report,debit:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.model.line,debit:0 #: field:account.move.line,debit:0 -#: report:account.move.voucher:0 #: report:account.partner.balance:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 @@ -9219,7 +9235,7 @@ msgid "Recurring" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:805 +#: code:addons/account/account_move_line.py:796 #, python-format msgid "Entry is already reconciled" msgstr "" @@ -9240,7 +9256,7 @@ msgid "Range" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1246 +#: code:addons/account/account_move_line.py:1252 #, python-format msgid "" "Can not create an automatic sequence for this piece !\n" @@ -9370,7 +9386,7 @@ msgid "Accounts Mapping" msgstr "" #. module: account -#: code:addons/account/invoice.py:346 +#: code:addons/account/invoice.py:345 #, python-format msgid "Invoice '%s' is waiting for validation." msgstr "" @@ -9395,7 +9411,7 @@ msgid "The income or expense account related to the selected product." msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1117 +#: code:addons/account/account_move_line.py:1123 #, python-format msgid "The date of your Journal Entry is not in the defined period!" msgstr "" @@ -9600,7 +9616,7 @@ msgid "You must enter a period length that cannot be 0 or below !" msgstr "" #. module: account -#: code:addons/account/account.py:501 +#: code:addons/account/account.py:511 #, python-format msgid "You cannot remove an account which has account entries!. " msgstr "" diff --git a/addons/account/i18n/he.po b/addons/account/i18n/he.po index 67fea52771c..2008cd4d734 100644 --- a/addons/account/i18n/he.po +++ b/addons/account/i18n/he.po @@ -8,24 +8,24 @@ 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-11 16:15+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-19 07:00+0000\n" +"Last-Translator: Natan Alter \n" "Language-Team: Hebrew \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:07+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-20 04:33+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 msgid "System payment" -msgstr "" +msgstr "מערכת תשלומים" #. module: account #: view:account.journal:0 msgid "Other Configuration" -msgstr "" +msgstr "תצורה אחרת" #. module: account #: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 @@ -34,7 +34,7 @@ msgid "No End of year journal defined for the fiscal year" msgstr "" #. module: account -#: code:addons/account/account.py:506 +#: code:addons/account/account.py:516 #, python-format msgid "" "You cannot remove/deactivate an account which is set as a property to any " @@ -66,7 +66,7 @@ msgid "Residual" msgstr "" #. module: account -#: code:addons/account/invoice.py:785 +#: code:addons/account/invoice.py:793 #, python-format msgid "Please define sequence on invoice journal" msgstr "" @@ -131,7 +131,7 @@ msgid "Accounting Entries-" msgstr "" #. module: account -#: code:addons/account/account.py:1291 +#: code:addons/account/account.py:1305 #, python-format msgid "You can not delete posted movement: \"%s\"!" msgstr "" @@ -175,7 +175,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/invoice.py:1421 +#: code:addons/account/invoice.py:1436 #, python-format msgid "Warning!" msgstr "" @@ -227,7 +227,7 @@ msgid "account.tax" msgstr "" #. module: account -#: code:addons/account/account.py:901 +#: code:addons/account/account.py:915 #, python-format msgid "" "No period defined for this date: %s !\n" @@ -255,7 +255,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/invoice.py:1210 +#: code:addons/account/invoice.py:1224 #, python-format msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)" msgstr "" @@ -271,7 +271,7 @@ msgid "Belgian Reports" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1176 +#: code:addons/account/account_move_line.py:1182 #, python-format msgid "You can not add/modify entries in a closed journal." msgstr "" @@ -309,7 +309,7 @@ msgid "St." msgstr "" #. module: account -#: code:addons/account/invoice.py:529 +#: code:addons/account/invoice.py:532 #, python-format msgid "Invoice line account company does not match with invoice company." msgstr "" @@ -551,7 +551,7 @@ msgid "Not reconciled transactions" msgstr "" #. module: account -#: code:addons/account/account_cash_statement.py:348 +#: code:addons/account/account_cash_statement.py:349 #, python-format msgid "CashBox Balance is not matching with Calculated Balance !" msgstr "" @@ -633,7 +633,7 @@ msgid "Tax Code Amount" msgstr "" #. module: account -#: code:addons/account/account.py:2779 +#: code:addons/account/account.py:2823 #: code:addons/account/installer.py:434 #, python-format msgid "SAJ" @@ -666,8 +666,8 @@ msgid "Journal Period" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:732 -#: code:addons/account/account_move_line.py:776 +#: code:addons/account/account_move_line.py:723 +#: code:addons/account/account_move_line.py:767 #, python-format msgid "To reconcile the entries company should be the same for all entries" msgstr "" @@ -728,7 +728,7 @@ msgid "Analytic Entries by line" msgstr "" #. module: account -#: code:addons/account/wizard/account_change_currency.py:39 +#: code:addons/account/wizard/account_change_currency.py:38 #, python-format msgid "You can only change currency for Draft Invoice !" msgstr "" @@ -829,7 +829,7 @@ msgid "Next Partner to reconcile" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1191 +#: code:addons/account/account_move_line.py:1197 #, python-format msgid "" "You can not do this modification on a confirmed entry ! Please note that you " @@ -951,11 +951,11 @@ msgid "Code" msgstr "" #. module: account -#: code:addons/account/account.py:2083 +#: code:addons/account/account.py:2097 #: code:addons/account/account_bank_statement.py:350 -#: code:addons/account/account_move_line.py:170 +#: code:addons/account/account_move_line.py:169 #: code:addons/account/invoice.py:73 -#: code:addons/account/invoice.py:670 +#: code:addons/account/invoice.py:678 #: code:addons/account/wizard/account_use_model.py:81 #, python-format msgid "No Analytic Journal !" @@ -1034,7 +1034,6 @@ msgstr "" #. module: account #: report:account.analytic.account.journal:0 -#: report:account.move.voucher:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 msgid "-" @@ -1120,6 +1119,7 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 @@ -1127,7 +1127,7 @@ msgid "Entry Label" msgstr "" #. module: account -#: code:addons/account/account.py:976 +#: code:addons/account/account.py:990 #, python-format msgid "You can not modify/delete a journal with entries for this period !" msgstr "" @@ -1265,7 +1265,6 @@ msgid "Journal Items Analysis" msgstr "" #. module: account -#: model:ir.actions.act_window,name:account.action_partner_all #: model:ir.ui.menu,name:account.next_id_22 msgid "Partners" msgstr "" @@ -1295,7 +1294,7 @@ msgid "Central Journal" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1271 +#: code:addons/account/account_move_line.py:1277 #, python-format msgid "You can not use this general account in this journal !" msgstr "" @@ -1388,7 +1387,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/invoice.py:815 +#: code:addons/account/invoice.py:823 #, python-format msgid "" "Cannot create the invoice !\n" @@ -1547,7 +1546,6 @@ msgid "Separated Journal Sequences" msgstr "" #. module: account -#: field:account.bank.statement,user_id:0 #: view:account.invoice:0 msgid "Responsible" msgstr "" @@ -1614,7 +1612,7 @@ msgid "Error! You cannot define overlapping fiscal years" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:808 +#: code:addons/account/account_move_line.py:799 #, python-format msgid "The account is not defined to be reconciled !" msgstr "" @@ -1647,7 +1645,7 @@ msgid "Receivables & Payables" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:815 +#: code:addons/account/account_move_line.py:806 #, python-format msgid "You have to provide an account for the write off entry !" msgstr "" @@ -1683,7 +1681,7 @@ msgid "Customer Ref:" msgstr "" #. module: account -#: code:addons/account/account_cash_statement.py:328 +#: code:addons/account/account_cash_statement.py:329 #, python-format msgid "User %s does not have rights to access %s journal !" msgstr "" @@ -1704,7 +1702,7 @@ msgid "Tax Declaration: Credit Notes" msgstr "" #. module: account -#: code:addons/account/account.py:499 +#: code:addons/account/account.py:509 #, python-format msgid "You cannot deactivate an account that contains account moves." msgstr "" @@ -1720,7 +1718,7 @@ msgid "You can not create move line on closed account." msgstr "" #. module: account -#: code:addons/account/account.py:519 +#: code:addons/account/account.py:529 #, python-format msgid "" "You cannot change the type of account from 'Closed' to any other type which " @@ -1989,7 +1987,7 @@ msgid " Journal" msgstr "" #. module: account -#: code:addons/account/account.py:1319 +#: code:addons/account/account.py:1333 #, python-format msgid "" "There is no default default debit account defined \n" @@ -2041,7 +2039,7 @@ msgid "Description" msgstr "" #. module: account -#: code:addons/account/account.py:2844 +#: code:addons/account/account.py:2888 #: code:addons/account/installer.py:498 #, python-format msgid "ECNJ" @@ -2061,7 +2059,7 @@ msgid "Income Account" msgstr "" #. module: account -#: code:addons/account/invoice.py:352 +#: code:addons/account/invoice.py:351 #, python-format msgid "There is no Accounting Journal of type Sale/Purchase defined!" msgstr "" @@ -2072,6 +2070,7 @@ msgid "Accounting Properties" msgstr "" #. module: account +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.print.journal,sort_selection:0 msgid "Entries Sorted By" @@ -2100,6 +2099,7 @@ msgstr "" #: field:account.fiscalyear,name:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.journal.period,fiscalyear_id:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -2208,7 +2208,7 @@ msgid "Account Tax Code" msgstr "" #. module: account -#: code:addons/account/invoice.py:545 +#: code:addons/account/invoice.py:552 #, python-format msgid "" "Can't find any account journal of %s type for this company.\n" @@ -2278,7 +2278,7 @@ msgid "Account Model Entries" msgstr "" #. module: account -#: code:addons/account/account.py:2796 +#: code:addons/account/account.py:2840 #: code:addons/account/installer.py:454 #, python-format msgid "EXJ" @@ -2362,7 +2362,7 @@ msgid "Accounts" msgstr "" #. module: account -#: code:addons/account/invoice.py:351 +#: code:addons/account/invoice.py:350 #, python-format msgid "Configuration Error!" msgstr "" @@ -2374,13 +2374,12 @@ msgid "Average Price" msgstr "" #. module: account -#: report:account.move.voucher:0 #: report:account.overdue:0 msgid "Date:" msgstr "" #. module: account -#: code:addons/account/account.py:640 +#: code:addons/account/account.py:654 #, python-format msgid "" "You cannot modify company of this journal as its related record exist in " @@ -2416,6 +2415,7 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.overdue:0 #: report:account.third_party_ledger:0 @@ -2524,16 +2524,16 @@ msgid "This wizard will create recurring accounting entries" msgstr "" #. module: account -#: code:addons/account/account.py:1181 +#: code:addons/account/account.py:1195 #, python-format msgid "No sequence defined on the journal !" msgstr "" #. module: account -#: code:addons/account/account.py:2083 +#: code:addons/account/account.py:2097 #: code:addons/account/account_bank_statement.py:350 -#: code:addons/account/account_move_line.py:170 -#: code:addons/account/invoice.py:670 +#: code:addons/account/account_move_line.py:169 +#: code:addons/account/invoice.py:678 #: code:addons/account/wizard/account_use_model.py:81 #, python-format msgid "You have to define an analytic journal on the '%s' journal!" @@ -2693,7 +2693,7 @@ msgid "Analytic Entries" msgstr "" #. module: account -#: code:addons/account/account.py:822 +#: code:addons/account/account.py:836 #, python-format msgid "" "No fiscal year defined for this date !\n" @@ -2816,7 +2816,7 @@ msgid "BNK%s" msgstr "" #. module: account -#: code:addons/account/account.py:2906 +#: code:addons/account/account.py:2950 #: code:addons/account/installer.py:296 #, python-format msgid "BNK" @@ -2925,6 +2925,7 @@ msgstr "" #: field:account.common.report,journal_ids:0 #: report:account.general.journal:0 #: field:account.general.journal,journal_ids:0 +#: report:account.general.ledger_landscape:0 #: view:account.journal.period:0 #: report:account.partner.balance:0 #: field:account.partner.balance,journal_ids:0 @@ -2985,7 +2986,7 @@ msgid "Starting Balance" msgstr "" #. module: account -#: code:addons/account/invoice.py:1284 +#: code:addons/account/invoice.py:1298 #, python-format msgid "No Partner Defined !" msgstr "" @@ -3027,7 +3028,6 @@ msgstr "" #: view:account.invoice.report:0 #: selection:account.invoice.report,state:0 #: selection:account.journal.period,state:0 -#: report:account.move.voucher:0 #: view:account.subscription:0 #: selection:account.subscription,state:0 #: selection:report.invoice.created,state:0 @@ -3079,7 +3079,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/invoice.py:370 +#: code:addons/account/invoice.py:373 #, python-format msgid "Cannot delete invoice(s) that are already opened or paid !" msgstr "" @@ -3140,7 +3140,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:522 +#: code:addons/account/account.py:532 #, python-format msgid "" "You cannot change the type of account from '%s' to '%s' type as it contains " @@ -3149,6 +3149,7 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 msgid "Counterpart" msgstr "" @@ -3251,6 +3252,7 @@ msgstr "" #: field:account.entries.report,date:0 #: selection:account.general.journal,filter:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.invoice.report,date:0 #: report:account.journal.period.print:0 #: view:account.move:0 @@ -3294,7 +3296,7 @@ msgid "Chart of Accounts Template" msgstr "" #. module: account -#: code:addons/account/account.py:2095 +#: code:addons/account/account.py:2109 #, python-format msgid "" "Maturity date of entry line generated by model line '%s' of model '%s' is " @@ -3303,13 +3305,13 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:810 +#: code:addons/account/account_move_line.py:801 #, python-format msgid "Some entries are already reconciled !" msgstr "" #. module: account -#: code:addons/account/account.py:1204 +#: code:addons/account/account.py:1218 #, python-format msgid "" "You cannot validate a Journal Entry unless all journal items are in same " @@ -3429,7 +3431,7 @@ msgid "Analytic Items" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1128 +#: code:addons/account/account_move_line.py:1134 #, python-format msgid "Unable to change tax !" msgstr "" @@ -3440,14 +3442,14 @@ msgid "#Entries" msgstr "" #. module: account -#: code:addons/account/invoice.py:1422 +#: code:addons/account/invoice.py:1437 #, python-format msgid "" "You selected an Unit of Measure which is not compatible with the product." msgstr "" #. module: account -#: code:addons/account/invoice.py:473 +#: code:addons/account/invoice.py:476 #, python-format msgid "" "The Payment Term of Supplier does not have Payment Term Lines(Computation) " @@ -3741,7 +3743,7 @@ msgid "Acc.Type" msgstr "" #. module: account -#: code:addons/account/invoice.py:714 +#: code:addons/account/invoice.py:722 #, python-format msgid "Global taxes defined, but are not in invoice lines !" msgstr "" @@ -3800,7 +3802,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_analytic_line.py:91 +#: code:addons/account/account_analytic_line.py:90 #, python-format msgid "There is no expense account defined for this product: \"%s\" (id:%d)" msgstr "" @@ -3975,7 +3977,7 @@ msgid "Credit Notes" msgstr "" #. module: account -#: code:addons/account/account.py:2067 +#: code:addons/account/account.py:2081 #: code:addons/account/wizard/account_use_model.py:69 #, python-format msgid "Unable to find a valid period !" @@ -4046,11 +4048,11 @@ msgid "Change" msgstr "" #. module: account -#: code:addons/account/account.py:1290 -#: code:addons/account/account.py:1318 -#: code:addons/account/account.py:1325 -#: code:addons/account/account_move_line.py:1055 -#: code:addons/account/invoice.py:896 +#: code:addons/account/account.py:1304 +#: code:addons/account/account.py:1332 +#: code:addons/account/account.py:1339 +#: code:addons/account/account_move_line.py:1061 +#: code:addons/account/invoice.py:904 #: code:addons/account/wizard/account_automatic_reconcile.py:152 #: code:addons/account/wizard/account_fiscalyear_close.py:78 #: code:addons/account/wizard/account_fiscalyear_close.py:81 @@ -4154,7 +4156,7 @@ msgid "You must define an analytic journal of type '%s' !" msgstr "" #. module: account -#: code:addons/account/account.py:1397 +#: code:addons/account/account.py:1411 #, python-format msgid "" "Couldn't create move with currency different from the secondary currency of " @@ -4219,7 +4221,7 @@ msgid "Invoices" msgstr "" #. module: account -#: code:addons/account/invoice.py:804 +#: code:addons/account/invoice.py:812 #, python-format msgid "" "Please verify the price of the invoice !\n" @@ -4331,25 +4333,24 @@ msgid "Third Party (Country)" msgstr "" #. module: account -#: code:addons/account/account.py:938 -#: code:addons/account/account.py:940 -#: code:addons/account/account.py:1181 -#: code:addons/account/account.py:1393 -#: code:addons/account/account.py:1397 -#: code:addons/account/account_cash_statement.py:249 -#: code:addons/account/account_move_line.py:780 -#: code:addons/account/account_move_line.py:803 -#: code:addons/account/account_move_line.py:805 -#: code:addons/account/account_move_line.py:808 -#: code:addons/account/account_move_line.py:810 -#: code:addons/account/account_move_line.py:1117 +#: code:addons/account/account.py:952 +#: code:addons/account/account.py:954 +#: code:addons/account/account.py:1195 +#: code:addons/account/account.py:1407 +#: code:addons/account/account.py:1411 +#: code:addons/account/account_cash_statement.py:250 +#: code:addons/account/account_move_line.py:771 +#: code:addons/account/account_move_line.py:794 +#: code:addons/account/account_move_line.py:796 +#: code:addons/account/account_move_line.py:799 +#: code:addons/account/account_move_line.py:801 +#: code:addons/account/account_move_line.py:1123 #: code:addons/account/report/common_report_header.py:92 -#: code:addons/account/wizard/account_change_currency.py:39 -#: code:addons/account/wizard/account_change_currency.py:60 -#: code:addons/account/wizard/account_change_currency.py:65 -#: code:addons/account/wizard/account_change_currency.py:71 +#: code:addons/account/wizard/account_change_currency.py:38 +#: code:addons/account/wizard/account_change_currency.py:59 +#: code:addons/account/wizard/account_change_currency.py:64 +#: code:addons/account/wizard/account_change_currency.py:70 #: code:addons/account/wizard/account_move_bank_reconcile.py:49 -#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 #: code:addons/account/wizard/account_report_common.py:120 #: code:addons/account/wizard/account_report_common.py:126 #, python-format @@ -4371,7 +4372,7 @@ msgid "Bank Details" msgstr "" #. module: account -#: code:addons/account/invoice.py:720 +#: code:addons/account/invoice.py:728 #, python-format msgid "Taxes missing !" msgstr "" @@ -4426,7 +4427,7 @@ msgid "Check Date not in the Period" msgstr "" #. module: account -#: code:addons/account/account.py:1210 +#: code:addons/account/account.py:1224 #, python-format msgid "" "You can not modify a posted entry of this journal !\n" @@ -4445,7 +4446,7 @@ msgid "Child Tax Accounts" msgstr "" #. module: account -#: code:addons/account/account.py:940 +#: code:addons/account/account.py:954 #, python-format msgid "Start period should be smaller then End period" msgstr "" @@ -4475,6 +4476,7 @@ msgstr "" #: report:account.general.journal:0 #: field:account.general.journal,target_move:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.move.journal,target_move:0 #: report:account.partner.balance:0 @@ -4557,7 +4559,7 @@ msgid "Line 1:" msgstr "" #. module: account -#: code:addons/account/account.py:1167 +#: code:addons/account/account.py:1181 #, python-format msgid "Integrity Error !" msgstr "" @@ -4703,7 +4705,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:2067 +#: code:addons/account/account.py:2081 #: code:addons/account/wizard/account_use_model.py:69 #, python-format msgid "No period found !" @@ -4775,7 +4777,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:2896 +#: code:addons/account/account.py:2940 #: code:addons/account/installer.py:283 #: code:addons/account/installer.py:295 #, python-format @@ -4803,7 +4805,7 @@ msgid "Start of period" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1193 +#: code:addons/account/account_move_line.py:1199 #, python-format msgid "" "You can not do this modification on a reconciled entry ! Please note that " @@ -4859,12 +4861,12 @@ msgstr "" #. module: account #: code:addons/account/account_bank_statement.py:331 -#: code:addons/account/invoice.py:405 -#: code:addons/account/invoice.py:505 -#: code:addons/account/invoice.py:520 -#: code:addons/account/invoice.py:528 -#: code:addons/account/invoice.py:545 -#: code:addons/account/invoice.py:1347 +#: code:addons/account/invoice.py:408 +#: code:addons/account/invoice.py:508 +#: code:addons/account/invoice.py:523 +#: code:addons/account/invoice.py:531 +#: code:addons/account/invoice.py:552 +#: code:addons/account/invoice.py:1361 #: code:addons/account/wizard/account_move_journal.py:63 #, python-format msgid "Configuration Error !" @@ -4941,7 +4943,7 @@ msgid "Sort By" msgstr "" #. module: account -#: code:addons/account/account.py:1326 +#: code:addons/account/account.py:1340 #, python-format msgid "" "There is no default default credit account defined \n" @@ -5088,7 +5090,7 @@ msgid "Generate Opening Entries" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:738 +#: code:addons/account/account_move_line.py:729 #, python-format msgid "Already Reconciled!" msgstr "" @@ -5124,7 +5126,7 @@ msgstr "" #. module: account #: view:account.move.line.reconcile:0 -#: code:addons/account/account_move_line.py:830 +#: code:addons/account/account_move_line.py:821 #, python-format msgid "Write-Off" msgstr "" @@ -5261,7 +5263,7 @@ msgid "# of Lines" msgstr "" #. module: account -#: code:addons/account/wizard/account_change_currency.py:60 +#: code:addons/account/wizard/account_change_currency.py:59 #, python-format msgid "New currency is not confirured properly !" msgstr "" @@ -5286,14 +5288,14 @@ msgid "Filter by" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1131 -#: code:addons/account/account_move_line.py:1214 +#: code:addons/account/account_move_line.py:1137 +#: code:addons/account/account_move_line.py:1220 #, python-format msgid "You can not use an inactive account!" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:803 +#: code:addons/account/account_move_line.py:794 #, python-format msgid "Entries are not of the same account or already reconciled ! " msgstr "" @@ -5328,7 +5330,7 @@ msgstr "" #. module: account #: code:addons/account/account_bank_statement.py:391 -#: code:addons/account/invoice.py:370 +#: code:addons/account/invoice.py:373 #, python-format msgid "Invalid action !" msgstr "" @@ -5539,7 +5541,7 @@ msgid "Companies" msgstr "" #. module: account -#: code:addons/account/account.py:532 +#: code:addons/account/account.py:546 #, python-format msgid "" "You cannot modify Company of account as its related record exist in Entry " @@ -5805,9 +5807,9 @@ msgid "Optional create" msgstr "" #. module: account -#: code:addons/account/invoice.py:406 -#: code:addons/account/invoice.py:506 -#: code:addons/account/invoice.py:1348 +#: code:addons/account/invoice.py:409 +#: code:addons/account/invoice.py:509 +#: code:addons/account/invoice.py:1362 #, python-format msgid "Can not find account chart for this company, Please Create account." msgstr "" @@ -5956,8 +5958,8 @@ msgid "Analytic Entries Statistics" msgstr "" #. module: account -#: code:addons/account/account_analytic_line.py:143 -#: code:addons/account/account_move_line.py:905 +#: code:addons/account/account_analytic_line.py:141 +#: code:addons/account/account_move_line.py:897 #, python-format msgid "Entries: " msgstr "" @@ -5968,7 +5970,7 @@ msgid "Create manual recurring entries in a chosen journal." msgstr "" #. module: account -#: code:addons/account/account.py:1393 +#: code:addons/account/account.py:1407 #, python-format msgid "Couldn't create move between different companies" msgstr "" @@ -6006,7 +6008,7 @@ msgid "Total debit" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:781 +#: code:addons/account/account_move_line.py:772 #, python-format msgid "Entry \"%s\" is not valid !" msgstr "" @@ -6070,30 +6072,31 @@ msgid " valuation: percent" msgstr "" #. module: account -#: code:addons/account/account.py:499 -#: code:addons/account/account.py:501 -#: code:addons/account/account.py:822 -#: code:addons/account/account.py:901 -#: code:addons/account/account.py:976 -#: code:addons/account/account.py:1204 -#: code:addons/account/account.py:1210 -#: code:addons/account/account.py:2095 -#: code:addons/account/account.py:2333 -#: code:addons/account/account_analytic_line.py:90 -#: code:addons/account/account_analytic_line.py:99 +#: code:addons/account/account.py:509 +#: code:addons/account/account.py:511 +#: code:addons/account/account.py:836 +#: code:addons/account/account.py:915 +#: code:addons/account/account.py:990 +#: code:addons/account/account.py:1218 +#: code:addons/account/account.py:1224 +#: code:addons/account/account.py:2109 +#: code:addons/account/account.py:2357 +#: code:addons/account/account_analytic_line.py:89 +#: code:addons/account/account_analytic_line.py:98 #: code:addons/account/account_bank_statement.py:292 #: code:addons/account/account_bank_statement.py:305 #: code:addons/account/account_bank_statement.py:345 -#: code:addons/account/account_cash_statement.py:328 -#: code:addons/account/account_cash_statement.py:348 -#: code:addons/account/account_move_line.py:1176 -#: code:addons/account/account_move_line.py:1191 -#: code:addons/account/account_move_line.py:1193 -#: code:addons/account/invoice.py:785 -#: code:addons/account/invoice.py:815 -#: code:addons/account/invoice.py:1008 +#: code:addons/account/account_cash_statement.py:329 +#: code:addons/account/account_cash_statement.py:349 +#: code:addons/account/account_move_line.py:1182 +#: code:addons/account/account_move_line.py:1197 +#: code:addons/account/account_move_line.py:1199 +#: code:addons/account/invoice.py:793 +#: code:addons/account/invoice.py:823 +#: code:addons/account/invoice.py:1014 #: code:addons/account/wizard/account_invoice_refund.py:100 #: code:addons/account/wizard/account_invoice_refund.py:102 +#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 #: code:addons/account/wizard/account_use_model.py:44 #, python-format msgid "Error !" @@ -6203,7 +6206,7 @@ msgid "Journal Select" msgstr "" #. module: account -#: code:addons/account/wizard/account_change_currency.py:65 +#: code:addons/account/wizard/account_change_currency.py:64 #, python-format msgid "Currnt currency is not confirured properly !" msgstr "" @@ -6220,9 +6223,11 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: view:account.report.general.ledger:0 #: model:ir.actions.act_window,name:account.action_account_general_ledger_menu #: model:ir.actions.report.xml,name:account.account_general_ledger +#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape #: model:ir.ui.menu,name:account.menu_general_ledger msgid "General Ledger" msgstr "" @@ -6276,7 +6281,7 @@ msgid "Total:" msgstr "" #. module: account -#: code:addons/account/account.py:2050 +#: code:addons/account/account.py:2064 #, python-format msgid "" "You can specify year, month and date in the name of the model using the " @@ -6306,7 +6311,7 @@ msgid "Child Codes" msgstr "" #. module: account -#: code:addons/account/invoice.py:473 +#: code:addons/account/invoice.py:476 #: code:addons/account/wizard/account_invoice_refund.py:137 #, python-format msgid "Data Insufficient !" @@ -6463,7 +6468,7 @@ msgid "Lines" msgstr "" #. module: account -#: code:addons/account/invoice.py:521 +#: code:addons/account/invoice.py:524 #, python-format msgid "" "Can not find account chart for this company in invoice line account, Please " @@ -6631,7 +6636,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:938 +#: code:addons/account/account.py:952 #, python-format msgid "You should have chosen periods that belongs to the same company" msgstr "" @@ -6735,7 +6740,7 @@ msgid "Sign on Reports" msgstr "" #. module: account -#: code:addons/account/account_cash_statement.py:249 +#: code:addons/account/account_cash_statement.py:250 #, python-format msgid "You can not have two open register for the same journal" msgstr "" @@ -6764,7 +6769,6 @@ msgstr "" #. module: account #: report:account.invoice:0 #: view:account.invoice:0 -#: report:account.move.voucher:0 msgid "PRO-FORMA" msgstr "" @@ -6794,6 +6798,7 @@ msgstr "" #. module: account #: view:account.analytic.line:0 +#: field:account.bank.statement,user_id:0 #: view:account.journal:0 #: field:account.journal,user_id:0 #: view:analytic.entries.report:0 @@ -6819,13 +6824,13 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1271 +#: code:addons/account/account_move_line.py:1277 #, python-format msgid "Bad account !" msgstr "" #. module: account -#: code:addons/account/account.py:2777 +#: code:addons/account/account.py:2821 #: code:addons/account/installer.py:432 #, python-format msgid "Sales Journal" @@ -6843,7 +6848,7 @@ msgid "Invoice Tax" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1246 +#: code:addons/account/account_move_line.py:1252 #, python-format msgid "No piece number !" msgstr "" @@ -7077,17 +7082,17 @@ msgid "Fixed" msgstr "" #. module: account -#: code:addons/account/account.py:506 -#: code:addons/account/account.py:519 -#: code:addons/account/account.py:522 +#: code:addons/account/account.py:516 +#: code:addons/account/account.py:529 #: code:addons/account/account.py:532 -#: code:addons/account/account.py:640 -#: code:addons/account/account.py:927 -#: code:addons/account/account_move_line.py:732 -#: code:addons/account/account_move_line.py:776 -#: code:addons/account/invoice.py:714 -#: code:addons/account/invoice.py:717 -#: code:addons/account/invoice.py:720 +#: code:addons/account/account.py:546 +#: code:addons/account/account.py:654 +#: code:addons/account/account.py:941 +#: code:addons/account/account_move_line.py:723 +#: code:addons/account/account_move_line.py:767 +#: code:addons/account/invoice.py:722 +#: code:addons/account/invoice.py:725 +#: code:addons/account/invoice.py:728 #, python-format msgid "Warning !" msgstr "" @@ -7119,6 +7124,7 @@ msgstr "" #: view:account.entries.report:0 #: field:account.entries.report,partner_id:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: view:account.invoice:0 #: field:account.invoice,partner_id:0 #: field:account.invoice.line,partner_id:0 @@ -7149,7 +7155,7 @@ msgid "Can not %s draft/proforma/cancel invoice." msgstr "" #. module: account -#: code:addons/account/invoice.py:787 +#: code:addons/account/invoice.py:795 #, python-format msgid "No Invoice Lines !" msgstr "" @@ -7198,7 +7204,7 @@ msgid "Deferral Method" msgstr "" #. module: account -#: code:addons/account/invoice.py:359 +#: code:addons/account/invoice.py:360 #, python-format msgid "Invoice '%s' is paid." msgstr "" @@ -7259,7 +7265,7 @@ msgid "Associated Partner" msgstr "" #. module: account -#: code:addons/account/invoice.py:1284 +#: code:addons/account/invoice.py:1298 #, python-format msgid "You must first select a partner !" msgstr "" @@ -7324,7 +7330,7 @@ msgid "Choose Fiscal Year" msgstr "" #. module: account -#: code:addons/account/account.py:2841 +#: code:addons/account/account.py:2885 #: code:addons/account/installer.py:495 #, python-format msgid "Purchase Refund Journal" @@ -7359,6 +7365,7 @@ msgstr "" #: view:account.entries.report:0 #: field:account.entries.report,period_id:0 #: view:account.fiscalyear:0 +#: report:account.general.ledger_landscape:0 #: view:account.invoice:0 #: view:account.invoice.report:0 #: field:account.journal.period,period_id:0 @@ -7521,7 +7528,7 @@ msgid "Account Types" msgstr "" #. module: account -#: code:addons/account/invoice.py:897 +#: code:addons/account/invoice.py:905 #, python-format msgid "Cannot create invoice move on centralised journal" msgstr "" @@ -7571,6 +7578,7 @@ msgstr "" #: report:account.account.balance:0 #: report:account.central.journal:0 #: report:account.general.journal:0 +#: report:account.general.ledger_landscape:0 #: report:account.partner.balance:0 msgid "Filter By" msgstr "" @@ -7609,7 +7617,7 @@ msgid "Payment Term Line" msgstr "" #. module: account -#: code:addons/account/account.py:2794 +#: code:addons/account/account.py:2838 #: code:addons/account/installer.py:452 #, python-format msgid "Purchase Journal" @@ -7776,8 +7784,8 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1131 -#: code:addons/account/account_move_line.py:1214 +#: code:addons/account/account_move_line.py:1137 +#: code:addons/account/account_move_line.py:1220 #, python-format msgid "Bad account!" msgstr "" @@ -7788,7 +7796,7 @@ msgid "Keep empty for all open fiscal years" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1056 +#: code:addons/account/account_move_line.py:1062 #, python-format msgid "The account move (%s) for centralisation has been confirmed!" msgstr "" @@ -7809,6 +7817,7 @@ msgstr "" #: field:account.entries.report,currency_id:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.invoice,currency_id:0 #: field:account.invoice.report,currency_id:0 #: field:account.journal,currency:0 @@ -7981,14 +7990,14 @@ msgid "Period from" msgstr "" #. module: account -#: code:addons/account/account.py:2817 +#: code:addons/account/account.py:2861 #: code:addons/account/installer.py:476 #, python-format msgid "Sales Refund Journal" msgstr "" #. module: account -#: code:addons/account/account.py:927 +#: code:addons/account/account.py:941 #, python-format msgid "" "You cannot modify company of this period as its related record exist in " @@ -8037,7 +8046,7 @@ msgid "Purchase Tax(%)" msgstr "" #. module: account -#: code:addons/account/invoice.py:787 +#: code:addons/account/invoice.py:795 #, python-format msgid "Please create some invoice lines." msgstr "" @@ -8053,7 +8062,7 @@ msgid "Configure Your Accounting Application" msgstr "" #. module: account -#: code:addons/account/account.py:2820 +#: code:addons/account/account.py:2864 #: code:addons/account/installer.py:479 #, python-format msgid "SCNJ" @@ -8091,6 +8100,7 @@ msgstr "" #: report:account.central.journal:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 @@ -8100,7 +8110,7 @@ msgid "Start Period" msgstr "" #. module: account -#: code:addons/account/account.py:2333 +#: code:addons/account/account.py:2357 #, python-format msgid "Cannot locate parent code for template account!" msgstr "" @@ -8137,7 +8147,7 @@ msgid "Accountant validates the accounting entries coming from the invoice. " msgstr "" #. module: account -#: code:addons/account/invoice.py:1008 +#: code:addons/account/invoice.py:1014 #, python-format msgid "" "You cannot cancel the Invoice which is Partially Paid! You need to " @@ -8165,7 +8175,7 @@ msgid "You can not create move line on view account." msgstr "" #. module: account -#: code:addons/account/wizard/account_change_currency.py:71 +#: code:addons/account/wizard/account_change_currency.py:70 #, python-format msgid "Current currency is not confirured properly !" msgstr "" @@ -8214,6 +8224,7 @@ msgstr "" #: field:account.entries.report,balance:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.move.line,balance:0 #: report:account.partner.balance:0 #: selection:account.payment.term.line,value:0 @@ -8232,6 +8243,7 @@ msgstr "" #. module: account #: report:account.account.balance:0 +#: report:account.general.ledger_landscape:0 msgid "Display Account" msgstr "" @@ -8346,6 +8358,7 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.move.line,move_id:0 #: field:analytic.entries.report,move_id:0 @@ -8353,7 +8366,7 @@ msgid "Move" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1128 +#: code:addons/account/account_move_line.py:1134 #, python-format msgid "You can not change the tax, you should remove and recreate lines !" msgstr "" @@ -8447,6 +8460,7 @@ msgstr "" #: report:account.central.journal:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 @@ -8490,7 +8504,7 @@ msgid "Account Subscription" msgstr "" #. module: account -#: code:addons/account/invoice.py:717 +#: code:addons/account/invoice.py:725 #, python-format msgid "" "Tax base different !\n" @@ -8517,6 +8531,7 @@ msgstr "" #: report:account.general.journal:0 #: field:account.general.journal,date_from:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,date_start:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -8545,7 +8560,7 @@ msgid "Unreconciled" msgstr "" #. module: account -#: code:addons/account/invoice.py:804 +#: code:addons/account/invoice.py:812 #, python-format msgid "Bad total !" msgstr "" @@ -8603,13 +8618,13 @@ msgid "Active" msgstr "" #. module: account -#: code:addons/account/invoice.py:354 +#: code:addons/account/invoice.py:353 #, python-format msgid "Unknown Error" msgstr "" #. module: account -#: code:addons/account/account.py:1167 +#: code:addons/account/account.py:1181 #, python-format msgid "" "You cannot validate a non-balanced entry !\n" @@ -8652,10 +8667,10 @@ msgstr "" #: field:account.entries.report,credit:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.model.line,credit:0 #: field:account.move.line,credit:0 -#: report:account.move.voucher:0 #: report:account.partner.balance:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 @@ -8891,7 +8906,6 @@ msgstr "" #: view:account.move:0 #: selection:account.move,state:0 #: view:account.move.line:0 -#: report:account.move.voucher:0 msgid "Posted" msgstr "" @@ -8910,6 +8924,7 @@ msgstr "" #: report:account.general.journal:0 #: field:account.general.journal,date_to:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,date_stop:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -8963,7 +8978,7 @@ msgid "This is a model for recurring accounting entries" msgstr "" #. module: account -#: code:addons/account/account_analytic_line.py:100 +#: code:addons/account/account_analytic_line.py:99 #, python-format msgid "There is no income account defined for this product: \"%s\" (id:%d)" msgstr "" @@ -9113,8 +9128,8 @@ msgid "End period" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:738 -#: code:addons/account/account_move_line.py:815 +#: code:addons/account/account_move_line.py:729 +#: code:addons/account/account_move_line.py:806 #: code:addons/account/wizard/account_invoice_state.py:44 #: code:addons/account/wizard/account_invoice_state.py:68 #: code:addons/account/wizard/account_report_balance_sheet.py:70 @@ -9180,10 +9195,10 @@ msgstr "" #: field:account.entries.report,debit:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.model.line,debit:0 #: field:account.move.line,debit:0 -#: report:account.move.voucher:0 #: report:account.partner.balance:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 @@ -9217,7 +9232,7 @@ msgid "Recurring" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:805 +#: code:addons/account/account_move_line.py:796 #, python-format msgid "Entry is already reconciled" msgstr "" @@ -9238,7 +9253,7 @@ msgid "Range" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1246 +#: code:addons/account/account_move_line.py:1252 #, python-format msgid "" "Can not create an automatic sequence for this piece !\n" @@ -9368,7 +9383,7 @@ msgid "Accounts Mapping" msgstr "" #. module: account -#: code:addons/account/invoice.py:346 +#: code:addons/account/invoice.py:345 #, python-format msgid "Invoice '%s' is waiting for validation." msgstr "" @@ -9393,7 +9408,7 @@ msgid "The income or expense account related to the selected product." msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1117 +#: code:addons/account/account_move_line.py:1123 #, python-format msgid "The date of your Journal Entry is not in the defined period!" msgstr "" @@ -9598,7 +9613,7 @@ msgid "You must enter a period length that cannot be 0 or below !" msgstr "" #. module: account -#: code:addons/account/account.py:501 +#: code:addons/account/account.py:511 #, python-format msgid "You cannot remove an account which has account entries!. " msgstr "" diff --git a/addons/crm/i18n/tr.po b/addons/crm/i18n/tr.po index 7343eabd831..cae854c9be6 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-06-14 21:30+0000\n" +"PO-Revision-Date: 2011-06-17 17:46+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-06-15 04:39+0000\n" +"X-Launchpad-Export-Date: 2011-06-18 04:56+0000\n" "X-Generator: Launchpad (build 13168)\n" #. module: crm @@ -1827,6 +1827,10 @@ msgid "" "sent/to be sent to your colleagues/partners. You can not only invite OpenERP " "users, but also external parties, such as a customer." msgstr "" +"Toplantı Davetiyeleri ile paydaşlarınıza/iş arkadaşlarınıza göndereceğiniz " +"toplantı davetiyeleri oluşturabilir ve yönetebilirsiniz. Yalnızca OpenERP " +"kullanıcıların değil, müşterileriniz dışarıdan gruplar da davet " +"edebilirsiniz." #. module: crm #: selection:crm.meeting,week_list:0 @@ -1981,6 +1985,10 @@ msgid "" "with a partner. From the phone call form, you can trigger a request for " "another call, a meeting or an opportunity." msgstr "" +"Gelen Çağrılar aracı gelen çağrılarınıza anında bağlanmanızı sağlar. " +"Aldığınız her çağrı, bir paydaşla kuracağınız her iletişimin izlenmesi için " +"paydaş formunda görünecektir. Telefon çağrı formundan, başka bir çağrıyı, " +"bir toplantıyı ya da bir fırsatı tetikleyebilirsainiz." #. module: crm #: help:crm.meeting,recurrency:0 @@ -2024,6 +2032,9 @@ msgid "" "opportunities. You can also synchronize meetings with your mobile phone " "using the caldav interface." msgstr "" +"Toplantı takvimi, satış takımınca paylaşılır ve personel tatilleri ya da iş " +"fırsatları gibi diğer uygulamalarla tam olarak entegredir. Caldav arayüzünü " +"kullanarak toplantılarınızı da cep telefonunuzdan senkronize edebilirsiniz." #. module: crm #: model:ir.model,name:crm.model_crm_phonecall2opportunity @@ -2230,6 +2241,11 @@ msgid "" "The opportunities and sales order displayed, will automatically be filtered " "according to his team." msgstr "" +"Farklı satış elemanlarınızı organize etmek ya da satış bölümlerinizi " +"takımlara ayırmak için bir Satış Takımı tanımlar. Her takım kendine ait " +"fırsatlar listesi, satış siparişleri, vb. ile çalışacaktır. Her kullanıcı " +"kendi kullanıcı tercihlerine göre varsayılan takım ayarlar. Görüntülenen " +"fırsatlar ve satış siparişleri, otomatik olarak bu takıma göre süzülecektir." #. module: crm #: help:crm.meeting,count:0 @@ -3047,6 +3063,10 @@ msgid "" "instance reflect your product structure or the different types of sales you " "do." msgstr "" +"Adaylarınızı ve fırsatlarınızı firmanızın etkinliklerine uyacak şekilde " +"sınıflandırmak ve analiz etmek için özel kategoriler oluşturun. Bu " +"kategoriler örnek olarak ürününüzün yapısını ya da yaptığınız farklı satış " +"türlerini yansıtabilir." #. module: crm #: help:crm.segmentation,som_interval_decrease:0 @@ -3367,6 +3387,13 @@ msgid "" "bought goods to another supplier. \n" "Use this functionality for recurring businesses." msgstr "" +"Bir dönem, bu bölümde satış ve satınalma döngüsü arasındaki günlerin\n" +"ortalamasıdır. \n" +"Genel olarak uzun bir süre hiç satınalma yapılmamış ve mal satınalmamış bir " +"paydaşı belirlemek için kullanılır, \n" +"böyle bir durumda ruh durumunun düştüğünü ve başka bir tedarikçiden mal " +"satınaldığını düşünürüz. \n" +"Bu işlevi yinelenen işler için kullanın." #. module: crm #: view:crm.send.mail:0 @@ -3625,6 +3652,9 @@ msgid "" "them to easily track how is positioned a specific opportunity in the sales " "cycle." msgstr "" +"Satış fırsatlarını koruyarak satışlarınıza ait satış hunilerini daha iyi " +"organize etmek için özel aşamalar oluşturun. Satış döngüsü içerisinde " +"belirli bir fırsatın nasıl bir durumda olduğunun kolayca izlenmesini sağlar." #. module: crm #: model:process.process,name:crm.process_process_contractprocess0 diff --git a/addons/google_map/i18n/ar.po b/addons/google_map/i18n/ar.po index eedf2b8b77b..a9962ed7e5a 100644 --- a/addons/google_map/i18n/ar.po +++ b/addons/google_map/i18n/ar.po @@ -7,31 +7,31 @@ 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: 2009-09-08 16:23+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2011-06-18 11:13+0000\n" +"Last-Translator: kifcaliph \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:45+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-19 04:36+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: google_map #: view:res.partner:0 #: view:res.partner.address:0 msgid "Map" -msgstr "" +msgstr "خريطة جوجل" #. module: google_map #: view:res.partner:0 #: view:res.partner.address:0 msgid "Street2 : " -msgstr "" +msgstr "شارع 2: " #. module: google_map #: model:ir.actions.wizard,name:google_map.wizard_google_map msgid "Launch Google Map" -msgstr "" +msgstr "فتح خريطة جوجل" #. module: google_map #: model:ir.module.module,description:google_map.module_meta_information diff --git a/addons/hr_contract/i18n/ar.po b/addons/hr_contract/i18n/ar.po index eeac51a03e0..452f4f7acd3 100644 --- a/addons/hr_contract/i18n/ar.po +++ b/addons/hr_contract/i18n/ar.po @@ -7,24 +7,24 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-08-03 05:39+0000\n" -"Last-Translator: Mantavya Gajjar (Open ERP) \n" +"PO-Revision-Date: 2011-06-18 11:23+0000\n" +"Last-Translator: kifcaliph \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:26+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-19 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: hr_contract #: view:hr.contract.wage.type:0 msgid "Hourly cost computation" -msgstr "" +msgstr "حساب تكلفة الساعة" #. module: hr_contract #: selection:hr.contract.wage.type,type:0 msgid "Gross" -msgstr "" +msgstr "الإجمالي" #. module: hr_contract #: view:hr.contract:0 diff --git a/addons/project_scrum/i18n/ar.po b/addons/project_scrum/i18n/ar.po index 977f55e718a..acfd53b6b55 100644 --- a/addons/project_scrum/i18n/ar.po +++ b/addons/project_scrum/i18n/ar.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: 2009-09-08 16:00+0000\n" -"Last-Translator: Genie-soft \n" +"PO-Revision-Date: 2011-06-18 11:28+0000\n" +"Last-Translator: kifcaliph \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:53+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-19 04:36+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: project_scrum #: help:project.scrum.email,scrum_master_email:0 @@ -29,12 +29,12 @@ msgstr "" #. module: project_scrum #: field:project.scrum.meeting,name:0 msgid "Meeting Name" -msgstr "" +msgstr "اسم الإجتماع" #. module: project_scrum #: model:process.transition,note:project_scrum.process_transition_backlogtask0 msgid "From backlog create task." -msgstr "" +msgstr "إنشاء مهمة من السجل التراكمي." #. module: project_scrum #: view:project.scrum.product.backlog:0 @@ -94,17 +94,17 @@ msgstr "" #. module: project_scrum #: model:process.node,note:project_scrum.process_node_productbacklog0 msgid "Create task from backlogs" -msgstr "" +msgstr "إنشاء مهمة من السجل التراكمي." #. module: project_scrum #: model:ir.module.module,shortdesc:project_scrum.module_meta_information msgid "Scrum, Agile Development Method" -msgstr "" +msgstr "إدارة التطوير بطريقة الـ سكرم (Scrum) أو الـ آجيل (Agile)" #. module: project_scrum #: field:project.scrum.product.backlog,progress:0 msgid "Progress" -msgstr "" +msgstr "مستوي التقدم" #. module: project_scrum #: field:project.scrum.meeting,user_id:0 @@ -128,12 +128,12 @@ msgstr "" #: view:project.scrum.meeting:0 #: view:project.scrum.sprint:0 msgid "Are your Sprint Backlog estimate accurate ?" -msgstr "" +msgstr "هل تقديراتك دقيقة لسجل العدوات السريعة؟" #. module: project_scrum #: view:project.scrum.sprint:0 msgid "Retrospective" -msgstr "" +msgstr "أثر رجعي" #. module: project_scrum #: view:project.scrum.meeting:0 @@ -148,7 +148,7 @@ msgstr "" #. module: project_scrum #: model:ir.actions.act_window,name:project_scrum.dblc_proj msgid "View project's backlog" -msgstr "" +msgstr "عرض السجل التراكمي للمشروع" #. module: project_scrum #: view:project.scrum.product.backlog:0 @@ -248,7 +248,7 @@ msgstr "" #: field:project.task,product_backlog_id:0 #, python-format msgid "Product Backlog" -msgstr "" +msgstr "سجل تراكمي للمنتج" #. module: project_scrum #: model:ir.model,name:project_scrum.model_project_project From 9e8eea64c77a15563d73b831b22df248d727d5fe Mon Sep 17 00:00:00 2001 From: Mantavya Gajjar Date: Mon, 20 Jun 2011 11:34:34 +0530 Subject: [PATCH 20/74] [CHANGE]: better to have self then obj bzr revid: mga@tinyerp.com-20110620060434-xu1ds231oyn339kb --- addons/hr_holidays/hr_holidays.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 3796b379ba2..7074fd5cecc 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -94,8 +94,8 @@ class hr_holidays(osv.osv): _description = "Leave" _order = "type desc, date_from asc" - def _employee_get(obj, cr, uid, context=None): - ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context) + def _employee_get(self, cr, uid, context=None): + ids = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context) if ids: return ids[0] return False From 4b2ac6b298eeb72506b18268343b18361fdb07e9 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 20 Jun 2011 11:55:58 +0200 Subject: [PATCH 21/74] [FIX] Fixed context support for action loaded by menu bzr revid: fme@openerp.com-20110620095558-qstmnthsio1ig3n6 --- addons/base/controllers/main.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 869831be912..bc4a1eac616 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -238,6 +238,7 @@ def eval_context_and_domain(session, context, domain=None): return (e_context, e_domain) def load_actions_from_ir_values(req, key, key2, models, meta, context): + context['bin_size'] = False # Possible upstream bug. Antony says not to loose time on this. Values = req.session.model('ir.values') actions = Values.get(key, key2, models, meta, context) @@ -339,10 +340,7 @@ class Menu(openerpweb.Controller): def action(self, req, menu_id): actions = load_actions_from_ir_values(req,'action', 'tree_but_open', [('ir.ui.menu', menu_id)], False, - #TODO niv fme: make it support context - #req.session.eval_context(req.context)) - {}) - + req.session.eval_context(req.context)) return {"action": actions} class DataSet(openerpweb.Controller): From 8ab9cd3411d89dbe29f8e9252177e5e0b45b4d76 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 20 Jun 2011 12:58:18 +0200 Subject: [PATCH 22/74] [imp] changed bin_size behavior bzr revid: nicolas.vanhoren@openerp.com-20110620105818-gq2ajlxl4npwn038 --- addons/base/controllers/main.py | 5 ++--- openerpweb/openerpweb.py | 3 +++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index bc4a1eac616..3f519f30962 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -761,12 +761,11 @@ class Action(openerpweb.Controller): Actions = req.session.model('ir.actions.actions') value = False context = req.session.eval_context(req.context) + context["bin_size"] = False action_type = Actions.read([action_id], ['type'], context) if action_type: action = req.session.model(action_type[0]['type']).read([action_id], False, - #TODO fme: check why does not work with context - #context) - {}) + context) if action: value = clean_action(action[0], req.session) return {'result': value} diff --git a/openerpweb/openerpweb.py b/openerpweb/openerpweb.py index fa2bec8e4b5..9da14d5ace0 100644 --- a/openerpweb/openerpweb.py +++ b/openerpweb/openerpweb.py @@ -138,6 +138,9 @@ class OpenERPSession(object): """ assert self._uid, "The user needs to be logged-in to initialize his context" self.context = self.model('res.users').context_get(self.context) + # set bin_size to True all the time + self.context = self.context or {} + self.context["bin_size"] = True self.client_timezone = self.context.get("tz", False) # invalid code, anyway we decided the server will be in UTC From 099c8f44422137d5d94ac18e9387a7db2be6509a Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 10:18:46 +0200 Subject: [PATCH 23/74] [IMP] Improved listview button's styling bzr revid: fme@openerp.com-20110621081846-inwoqep0ltubixt8 --- addons/base/static/src/css/base.css | 6 ++++++ addons/base/static/src/xml/base.xml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index dbce531edce..30dc3718fa9 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -613,6 +613,12 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, .openerp .oe-listview .oe-field-cell button:active { opacity: 0.5; } +.openerp .oe-listview .oe-field-cell button img { + cursor: pointer; +} +.openerp .oe-listview .oe-field-cell button img:hover { + opacity: 0.75; +} .openerp .oe-listview th.oe-actions { text-align: left; diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 738d1823ae3..949b38e0115 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -341,7 +341,7 @@ -
    -
    -

    - - -

    -
    +

    + + +

    +
    + +
    +
    +
    From a47c69c873fabb6f7d306254576097ccdf44192a Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 14:11:16 +0200 Subject: [PATCH 31/74] [IMP] Set flags for dialog actions bzr revid: fme@openerp.com-20110621121116-uvaasm0c01devhrg --- addons/base/static/src/js/views.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 4217031a7e3..586292a5561 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -398,6 +398,13 @@ openerp.base.View = openerp.base.Controller.extend({ execute_action: function (action_data, dataset, action_manager, record_id, on_no_action) { var handler = function (r) { if (r.result && r.result.constructor == Object) { + r.result.flags = { + sidebar : false, + search_view : false, + views_switcher : false, + action_buttons : false, + pager : false + }; action_manager.do_action(r.result); } else { on_no_action(r.result); From 8abfc76ea559ac4229916e97206e95e726d6f8b4 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 14:12:22 +0200 Subject: [PATCH 32/74] [imp] created first version of one2manydataset and implemented delete bzr revid: nicolas.vanhoren@openerp.com-20110621121222-3bjpeh66un137ip6 --- addons/base/static/src/js/form.js | 55 ++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 90357325928..5cfe5db1dd2 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1267,6 +1267,15 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ } }); +/* +# Values: (0, 0, { fields }) create +# (1, ID, { fields }) update +# (2, ID) remove (delete) +# (3, ID) unlink one (target id or target of relation) +# (4, ID) link +# (5) unlink all (only valid for one2many) +*/ + openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); @@ -1279,9 +1288,8 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ var self = this; - this.dataset = new openerp.base.DataSetStatic(this.session, this.field.relation); - this.dataset.on_unlink.add_last(function(ids) { - self.dataset.set_ids(_.without.apply(_, [self.dataset.ids].concat(ids))); + this.dataset = new openerp.base.form.One2ManyDataset(this.session, this.field.relation); + this.dataset.on_change.add_last(function() { self.on_ui_change(); self.reload_current_view(); }); @@ -1337,18 +1345,47 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ // TODO niv: but fme did not implemented delete in form view anyway } }, + set_value_from_ui: function() {}, set_value: function(value) { if(value != false) { - this.dataset.set_ids(value); + this.dataset.reset_ids(value); this.is_setted.resolve(); } }, - get_value: function(value) { - //TODO niv - return []; + get_value: function() { + var val = _.map(this.dataset.to_delete, function(v, k) {return [2, parseInt(k, 10)];}); + var val = val.concat(_.map(this.dataset.to_create, function(x) {return [0, 0, x];})); + return val; + }, + validate: function() { + this.invalid = false; + // TODO niv } }); +openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ + init: function() { + this._super.apply(this, arguments); + this.reset_ids([]); + }, + create: function(data, callback, error_callback) { + }, + write: function (id, data, callback) { + }, + unlink: function(ids) { + var self = this; + this.set_ids(_.without.apply(_, [this.ids].concat(ids))); + _.each(ids, function(x) {self.to_delete[x] = true;}); + this.on_change(); + }, + reset_ids: function(ids) { + this.set_ids(ids); + this.to_delete = {}; + this.to_create = {}; + }, + on_change: function() {} +}); + openerp.base.form.One2ManyListView = openerp.base.ListView.extend({ do_add_record: function () { var self = this; @@ -1505,7 +1542,7 @@ openerp.base.form.SelectCreatePopup = openerp.base.BaseWidget.extend({ $sbutton.click(function() { self.on_select_elements(self.selected_ids); }); - self.view_list = new openerp.base.form.Many2XPopupListView( null, self.session, + self.view_list = new openerp.base.form.SelectCreateListView( null, self.session, self.element_id + "_view_list", self.dataset, false, {'deletable': false}); self.view_list.popup = self; @@ -1563,7 +1600,7 @@ openerp.base.form.SelectCreatePopup = openerp.base.BaseWidget.extend({ } }); -openerp.base.form.Many2XPopupListView = openerp.base.ListView.extend({ +openerp.base.form.SelectCreateListView = openerp.base.ListView.extend({ do_add_record: function () { this.popup.new_object(); }, From 76db3f38700cd4e4d8d03ab80cc0163b374dba83 Mon Sep 17 00:00:00 2001 From: "noz (OpenERP)" Date: Tue, 21 Jun 2011 17:49:26 +0530 Subject: [PATCH 33/74] [FIX] Just corrected spelling. bzr revid: noz@tinyerp.com-20110621121926-4b6fhety4r2p1u2l --- addons/base/static/src/xml/base.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 2592abb5fdc..9645ce7cee2 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -90,7 +90,7 @@ t-att-value="selected_password || ''"/> - + From f90c073f2329a1582bcf36be111ecf5dab76bbe8 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 14:31:20 +0200 Subject: [PATCH 34/74] [IMP] Use CompondContext for button actions bzr revid: fme@openerp.com-20110621123120-y2kucare2kes52ac --- addons/base/static/src/js/views.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 586292a5561..c6ee9e69d71 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -416,10 +416,10 @@ openerp.base.View = openerp.base.Controller.extend({ result : { type: 'ir.actions.act_window_close' } }); } else { - var context = _.extend({}, dataset.context, action_data.context || {}); + var context = new openerp.base.CompoundContext(dataset.context).add(action_data.context || {}); switch(action_data.type) { case 'object': - return dataset.call(action_data.name, [[record_id], context], handler); + return dataset.call_and_eval(action_data.name, [[record_id], context], null, 1, handler); case 'action': return this.rpc('/base/action/load', { action_id: parseInt(action_data.name, 10) }, handler); default: From 884aaa86079542a6be8dd3797c50390cf8893e03 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 14:41:16 +0200 Subject: [PATCH 35/74] [FIX] Fixed selection widget. Wrongly select first option when value is false bzr revid: fme@openerp.com-20110621124116-rh6pv2a1v2de186q --- addons/base/static/src/js/form.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 18d6976e99c..7cb36cdc0c2 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -84,6 +84,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.$element.hide(); }, on_record_loaded: function(record) { + console.info(record) this.touched = false; if (record) { this.datarecord = record; @@ -996,7 +997,7 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({ if (value != null && value !== false) { this.$element.find('select').val(value); } else { - this.$element.find('select')[0].selectedIndex = 0; + this.$element.find('select').val('false'); } }, set_value_from_ui: function() { From 016eff262b7969e7348fa9759504559e2054b3d9 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 21 Jun 2011 14:52:48 +0200 Subject: [PATCH 36/74] [FIX] account: opening entries didn't bring forward the amount in currency when closing a fiscalyear. The centralisation had to take care on that too. lp bug: https://launchpad.net/bugs/736890 fixed bzr revid: qdp-launchpad@openerp.com-20110621125248-xec0ogl2v1hwxsmo --- addons/account/account.py | 29 +++++++++++++++++++ addons/account/account_move_line.py | 2 +- .../wizard/account_fiscalyear_close.py | 12 +++++++- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index f6dd36c01fc..d0e9c501bb9 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -1331,6 +1331,7 @@ class account_move(osv.osv): def _centralise(self, cr, uid, move, mode, context=None): assert mode in ('debit', 'credit'), 'Invalid Mode' #to prevent sql injection + currency_obj = self.pool.get('res.currency') if context is None: context = {} @@ -1381,6 +1382,34 @@ class account_move(osv.osv): cr.execute('SELECT SUM(%s) FROM account_move_line WHERE move_id=%%s AND id!=%%s' % (mode,), (move.id, line_id2)) result = cr.fetchone()[0] or 0.0 cr.execute('update account_move_line set '+mode2+'=%s where id=%s', (result, line_id)) + + #adjust also the amount in currency if needed + cr.execute("select currency_id, sum(amount_currency) as amount_currency from account_move_line where move_id = %s and currency_id is not null group by currency_id", (move.id,)) + for row in cr.dictfetchall(): + currency_id = currency_obj.browse(cr, uid, row['currency_id'], context=context) + if not currency_obj.is_zero(cr, uid, currency_id, row['amount_currency']): + amount_currency = row['amount_currency'] * -1 + account_id = amount_currency > 0 and move.journal_id.default_debit_account_id.id or move.journal_id.default_credit_account_id.id + cr.execute('select id from account_move_line where move_id=%s and centralisation=\'currency\' and currency_id = %slimit 1', (move.id, row['currency_id'])) + res = cr.fetchone() + if res: + cr.execute('update account_move_line set amount_currency=%s , account_id=%s where id=%s', (amount_currency, account_id, res[0])) + else: + context.update({'journal_id': move.journal_id.id, 'period_id': move.period_id.id}) + line_id = self.pool.get('account.move.line').create(cr, uid, { + 'name': _('Currency Adjustment'), + 'centralisation': 'currency', + 'account_id': account_id, + 'move_id': move.id, + 'journal_id': move.journal_id.id, + 'period_id': move.period_id.id, + 'date': move.period_id.date_stop, + 'debit': 0.0, + 'credit': 0.0, + 'currency_id': row['currency_id'], + 'amount_currency': amount_currency, + }, context) + return True # diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 0b17eb676f6..2117d7fc40e 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -503,7 +503,7 @@ class account_move_line(osv.osv): }), 'date_created': fields.date('Creation date', select=True), 'analytic_lines': fields.one2many('account.analytic.line', 'move_id', 'Analytic lines'), - 'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation')], 'Centralisation', size=6), + 'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation'),('currency','Currency Adjustment')], 'Centralisation', size=8), 'balance': fields.function(_balance, fnct_search=_balance_search, method=True, string='Balance'), 'state': fields.selection([('draft','Unbalanced'), ('valid','Valid')], 'State', readonly=True, help='When new move line is created the state will be \'Draft\'.\n* When all the payments are done it will be in \'Valid\' state.'), diff --git a/addons/account/wizard/account_fiscalyear_close.py b/addons/account/wizard/account_fiscalyear_close.py index 89e28950535..927f895bb3b 100644 --- a/addons/account/wizard/account_fiscalyear_close.py +++ b/addons/account/wizard/account_fiscalyear_close.py @@ -103,6 +103,14 @@ class account_fiscalyear_close(osv.osv_memory): if accnt_type_data.close_method=='none' or account.type == 'view': continue if accnt_type_data.close_method=='balance': + balance_in_currency = 0.0 + if account.currency_id: + cr.execute('SELECT sum(amount_currency) as balance_in_currency FROM account_move_line ' \ + 'WHERE account_id = %s ' \ + 'AND ' + query_line + ' ' \ + 'AND currency_id = %s', (account.id, account.currency_id.id)) + balance_in_currency = cr.dictfetchone()['balance_in_currency'] + if abs(account.balance)>0.0001: obj_acc_move_line.create(cr, uid, { 'debit': account.balance>0 and account.balance, @@ -111,7 +119,9 @@ class account_fiscalyear_close(osv.osv_memory): 'date': period.date_start, 'journal_id': new_journal.id, 'period_id': period.id, - 'account_id': account.id + 'account_id': account.id, + 'currency_id': account.currency_id and account.currency_id.id or False, + 'amount_currency': balance_in_currency, }, {'journal_id': new_journal.id, 'period_id':period.id}) if accnt_type_data.close_method == 'unreconciled': offset = 0 From 4e9834f4e3a28bfec7678fa6845bfa2abc12f513 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 14:53:17 +0200 Subject: [PATCH 37/74] [imp] small improvements to advanced filters bzr revid: nicolas.vanhoren@openerp.com-20110621125317-0s7cfk7q8jkflmne --- addons/base/static/src/css/base.css | 1 + addons/base/static/src/js/search.js | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index abf8431541a..1cbdc05ba43 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -565,6 +565,7 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, .openerp .searchview_extended_delete_group { float:right; + display: none; } .openerp .searchview_extended_delete_group span, diff --git a/addons/base/static/src/js/search.js b/addons/base/static/src/js/search.js index 4c23f64bcbb..13ca764e7d7 100644 --- a/addons/base/static/src/js/search.js +++ b/addons/base/static/src/js/search.js @@ -796,9 +796,6 @@ openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({ }); var delete_btn = this.$element.find('.searchview_extended_delete_group'); delete_btn.click(function (e) { - if (_this.parent.children.length == 1) { - _this.parent.hide(); - } _this.stop(); }); }, @@ -811,6 +808,11 @@ openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({ return [].concat(choice == "none" ? ['!'] : [], _.map(_.range(_.max([0,props.length - 1])), function() { return op; }), props); + }, + stop: function() { + if (this.parent.children.length == 1) + this.parent.hide(); + this._super(); } }); @@ -838,6 +840,11 @@ openerp.base.search.ExtendedSearchProposition = openerp.base.BaseWidget.extend({ _this.stop(); }); }, + stop: function() { + if (this.parent.children.length == 1) + this.parent.stop(); + this._super(); + }, changed: function() { var nval = this.$element.find(".searchview_extended_prop_field").val(); if(this.attrs.selected == null || nval != this.attrs.selected.name) { From 3cb34f3f852fb5bff92090fe3f067df95332e49d Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 15:05:01 +0200 Subject: [PATCH 38/74] [imp] small improvements to advanced filters bzr revid: nicolas.vanhoren@openerp.com-20110621130501-0f1rkr25vv86v8gq --- addons/base/static/src/css/base.css | 6 +++++- addons/base/static/src/js/search.js | 13 +++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 1cbdc05ba43..ca4c8d0de87 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -547,11 +547,15 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, } .openerp .searchview_extended_group { - border: #696969 solid 1px; + border-bottom: #696969 solid 1px; padding: 3px; margin: 2px; } +.openerp .searchview_extended_group.last_group { + border-bottom: none; +} + .openerp .oe_search-view-custom-filter-btn span { background: url(../img/icons/gtk-add.png) repeat-y; padding-left: 18px; diff --git a/addons/base/static/src/js/search.js b/addons/base/static/src/js/search.js index 13ca764e7d7..3c40332ce67 100644 --- a/addons/base/static/src/js/search.js +++ b/addons/base/static/src/js/search.js @@ -731,6 +731,7 @@ openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({ var render = group.render(); this.$element.find('.searchview_extended_groups_list').append(render); group.start(); + this.check_last_element(); }, start: function () { this._super(); @@ -771,6 +772,10 @@ openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({ if(this.$element.hasClass("expanded")) { this.$element.toggleClass("folded expanded"); } + }, + check_last_element: function() { + _.each(this.children, function(x) {x.set_last_group(false);}); + this.children[this.children.length - 1].set_last_group(true); } }); @@ -810,9 +815,17 @@ openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({ props); }, stop: function() { + var parent = this.parent; if (this.parent.children.length == 1) this.parent.hide(); this._super(); + parent.check_last_element(); + }, + set_last_group: function(is_last) { + if(is_last) + this.$element.addClass("last_group"); + else + this.$element.removeClass("last_group"); } }); From 04121f8b03478b860d3749cedbba785283f4a86e Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 16:04:23 +0200 Subject: [PATCH 39/74] [imp] small improvement to advanced filters bzr revid: nicolas.vanhoren@openerp.com-20110621140423-efbxmrjuwlu8piy1 --- addons/base/static/src/css/base.css | 16 +++++++++++++--- addons/base/static/src/xml/base.xml | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index ca4c8d0de87..e3a1e8b26fd 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -547,13 +547,23 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, } .openerp .searchview_extended_group { - border-bottom: #696969 solid 1px; padding: 3px; margin: 2px; } -.openerp .searchview_extended_group.last_group { - border-bottom: none; +.openerp .searchview_extended_group .oe_adv_filters_and { + border-bottom: 1px solid black; + text-align: center; +} +.openerp .searchview_extended_group .oe_adv_filters_and span { + background: #F0EEEE; + position: relative; + top: 0.5em; + padding: 0 1em 0 1em; +} + +.openerp .searchview_extended_group.last_group .oe_adv_filters_and { + display: none; } .openerp .oe_search-view-custom-filter-btn span { diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 9645ce7cee2..b03bb044ba4 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -804,6 +804,7 @@
    Add condition +
    and
    From ee1970c2da36571cb05be9f3a67fc3e3a0bbd6d0 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 16:11:07 +0200 Subject: [PATCH 40/74] [imp] small improvement to advanced filters bzr revid: nicolas.vanhoren@openerp.com-20110621141107-m7xcywalskoujsq0 --- addons/base/static/src/js/search.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/addons/base/static/src/js/search.js b/addons/base/static/src/js/search.js index 3c40332ce67..cd69ec4f0e8 100644 --- a/addons/base/static/src/js/search.js +++ b/addons/base/static/src/js/search.js @@ -759,11 +759,9 @@ openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({ on_activate: function() { this.add_group(); var table = this.$element.closest("table.oe-searchview-render-line"); - if(table.css("display") == "none") { - table.css("display", ""); - if(this.$element.hasClass("folded")) { - this.$element.toggleClass("folded expanded"); - } + table.css("display", ""); + if(this.$element.hasClass("folded")) { + this.$element.toggleClass("folded expanded"); } }, hide: function() { From 74e3e0576344978f3486d188f54ed73607ddc881 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 16:14:19 +0200 Subject: [PATCH 41/74] [imp] small css improvement bzr revid: nicolas.vanhoren@openerp.com-20110621141419-8hdegu5ob3uh1w3y --- addons/base/static/src/css/base.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index e3a1e8b26fd..9749dc97110 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -552,14 +552,16 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, } .openerp .searchview_extended_group .oe_adv_filters_and { - border-bottom: 1px solid black; + border-bottom: 1px solid #8E8E8E; text-align: center; + margin-top: -10px; } .openerp .searchview_extended_group .oe_adv_filters_and span { background: #F0EEEE; position: relative; top: 0.5em; padding: 0 1em 0 1em; + color: #8E8E8E; } .openerp .searchview_extended_group.last_group .oe_adv_filters_and { From c57a3e0d98229ed66dde92c5caad39f6bc0efdbd Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 16:38:04 +0200 Subject: [PATCH 42/74] [FIX] Fixed active_is in context for dialog actions bzr revid: fme@openerp.com-20110621143804-b51tp8n0a393oixi --- addons/base/static/src/js/data.js | 5 +++-- addons/base/static/src/js/form.js | 13 ++++++++++--- addons/base/static/src/js/views.js | 15 ++++++++++----- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 1463ca279fa..736c31c1f7b 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -287,11 +287,12 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. }); } }, - default_get: function(fields, callback) { + default_get: function(fields, context, callback) { + context = context || this.context; return this.rpc('/base/dataset/default_get', { model: this.model, fields: fields, - context: this.context + context: context }, callback); }, create: function(data, callback, error_callback) { diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 7cb36cdc0c2..d221872598d 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -42,8 +42,12 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV if (this.embedded_view) { return $.Deferred().then(this.on_loaded).resolve({fields_view: this.embedded_view}); } else { + var context = new openerp.base.CompoundContext(this.dataset.context); + if (this.view_manager.action && this.view_manager.action.context) { + context.add(this.view_manager.action.context); + } return this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id, - toolbar:!!this.flags.sidebar}, this.on_loaded); + toolbar:!!this.flags.sidebar, context: context}, this.on_loaded); } }, on_loaded: function(data) { @@ -84,7 +88,6 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.$element.hide(); }, on_record_loaded: function(record) { - console.info(record) this.touched = false; if (record) { this.datarecord = record; @@ -226,8 +229,12 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV }, on_button_new: function() { var self = this; + var context = new openerp.base.CompoundContext(this.dataset.context); + if (this.view_manager.action && this.view_manager.action.context) { + context.add(this.view_manager.action.context); + } $.when(this.has_been_loaded).then(function() { - self.dataset.default_get(_.keys(self.fields_view.fields), function(result) { + self.dataset.default_get(_.keys(self.fields_view.fields), context, function(result) { self.on_record_loaded(result.result); }); }); diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index c6ee9e69d71..ee910d57cfd 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -397,17 +397,22 @@ openerp.base.View = openerp.base.Controller.extend({ */ execute_action: function (action_data, dataset, action_manager, record_id, on_no_action) { var handler = function (r) { - if (r.result && r.result.constructor == Object) { - r.result.flags = { + var action = r.result; + if (action && action.constructor == Object) { + action.context = action.context || {}; + action.context['active_id'] = dataset.ids[dataset.index]; + action.context['active_ids'] = [dataset.ids[dataset.index]]; + action.context['active_model'] = dataset.model; + action.flags = { sidebar : false, search_view : false, views_switcher : false, action_buttons : false, pager : false }; - action_manager.do_action(r.result); + action_manager.do_action(action); } else { - on_no_action(r.result); + on_no_action(action); } }; @@ -421,7 +426,7 @@ openerp.base.View = openerp.base.Controller.extend({ case 'object': return dataset.call_and_eval(action_data.name, [[record_id], context], null, 1, handler); case 'action': - return this.rpc('/base/action/load', { action_id: parseInt(action_data.name, 10) }, handler); + return this.rpc('/base/action/load', { action_id: parseInt(action_data.name, 10), context: context }, handler); default: return dataset.exec_workflow(record_id, action_data.name, handler); } From 6dd5f3bc5e2a753c8060206536e77c853aacaeee Mon Sep 17 00:00:00 2001 From: Luc De Meyer Date: Tue, 21 Jun 2011 16:39:09 +0200 Subject: [PATCH 43/74] [FIX] account: residual amount need to be recomputed on change of move_id bzr revid: qdp-launchpad@openerp.com-20110621143909-na6ouvjvey3nacir --- addons/account/invoice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account/invoice.py b/addons/account/invoice.py index 77cf968355b..9d95a5af4ba 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -263,7 +263,7 @@ class account_invoice(osv.osv): 'move_lines':fields.function(_get_lines, method=True, type='many2many', relation='account.move.line', string='Entry Lines'), 'residual': fields.function(_amount_residual, method=True, digits_compute=dp.get_precision('Account'), string='Residual', store={ - 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 50), + 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line','move_id'], 50), 'account.invoice.tax': (_get_invoice_tax, None, 50), 'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount','invoice_id'], 50), 'account.move.line': (_get_invoice_from_line, None, 50), From a8355d54d7ff0013352ae1399ef03919f2f5b9a2 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 21 Jun 2011 17:57:05 +0200 Subject: [PATCH 44/74] [FIX] When using return on an action button, triggers both click and keyup, so we have to disable keyup as well on buttons in editable list, or it gets forwarded to the list itself (and executes action + double saves) bzr revid: xmo@openerp.com-20110621155705-d4dqdaxy2slpdvh9 --- addons/base/static/src/js/list-editable.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index f7eb3e27bca..b97a35d0612 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -125,6 +125,15 @@ openerp.base.list.editable = function (openerp) { 'class': $(row).attr('class'), click: function (e) {e.stopPropagation();} }) + .delegate('button.oe-edit-row-save', 'click', function () { + self.save_row(); + }) + .delegate('button.oe-edit-row-cancel', 'click', function () { + self.cancel_edition(); + }) + .delegate('button', 'keyup', function (e) { + e.stopImmediatePropagation(); + }) .keyup(function (e) { switch (e.which) { case KEY_RETURN: @@ -136,12 +145,6 @@ openerp.base.list.editable = function (openerp) { default: return; } - }) - .delegate('button.oe-edit-row-save', 'click', function () { - self.save_row(); - }) - .delegate('button.oe-edit-row-cancel', 'click', function () { - self.cancel_edition(); }); if (row) { $new_row.replaceAll(row); From 40e22911a5bc78cb5fe803ddfc5bbc113d414801 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 22 Jun 2011 12:06:15 +0200 Subject: [PATCH 45/74] [FIX] QWeb2 did not escaped quotes in attributes bzr revid: fme@openerp.com-20110622100615-v93dcg2hshtvdc98 --- addons/base/static/lib/qweb/qweb2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/lib/qweb/qweb2.js b/addons/base/static/lib/qweb/qweb2.js index 5041142924d..5e53ddbf645 100644 --- a/addons/base/static/lib/qweb/qweb2.js +++ b/addons/base/static/lib/qweb/qweb2.js @@ -48,7 +48,7 @@ var QWeb2 = { if (o !== null && o !== undefined) { if (o.constructor === Array) { if (o[1] !== null && o[1] !== undefined) { - return ' ' + o[0] + '="' + this.html_escape(o[1]) + '"'; + return ' ' + o[0] + '="' + this.html_escape(o[1], true) + '"'; } } else if (typeof o === 'object') { var r = ''; From f1eb252cf3c54170124ff5a152363304dd57e4fd Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 22 Jun 2011 13:11:29 +0200 Subject: [PATCH 46/74] [ADD] Added openerp.base.json_node_to_xml for debugging purpose (might be usefull for xml view editor) bzr revid: fme@openerp.com-20110622111129-qn5r1v7da6exfkfd --- addons/base/static/src/js/views.js | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index ee910d57cfd..ce2ee2c72e6 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -455,6 +455,41 @@ openerp.base.ProcessView = openerp.base.Controller.extend({ openerp.base.HelpView = openerp.base.Controller.extend({ }); +openerp.base.json_node_to_xml = function(node, single_quote, indent) { + // For debugging purpose, this function will convert a json node back to xml + // Maybe usefull for xml view editor + if (typeof(node.tag) !== 'string' || !node.children instanceof Array || !node.attrs instanceof Object) { + throw("Node a json node"); + } + indent = indent || 0; + var sindent = Array(indent + 1).join('\t'), + r = sindent + '<' + node.tag; + for (var attr in node.attrs) { + var vattr = node.attrs[attr]; + if (typeof(vattr) !== 'string') { + // domains, ... + vattr = JSON.stringify(vattr); + } + vattr = vattr.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + if (single_quote) { + vattr = vattr.replace(/"/g, "'"); + } + r += ' ' + attr + '="' + vattr + '"'; + } + if (node.children.length) { + r += '>\n'; + var childs = []; + for (var i = 0, ii = node.children.length; i < ii; i++) { + childs.push(openerp.base.json_node_to_xml(node.children[i], single_quote, indent + 1)); + } + r += childs.join('\n'); + r += '\n' + sindent + ''; + return r; + } else { + return r + '/>'; + } +} + }; // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: From 946664f635472eee7aa8e775154d5f716e568baf Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 22 Jun 2011 13:21:23 +0200 Subject: [PATCH 47/74] [imp] added first code for cached read_ids bzr revid: nicolas.vanhoren@openerp.com-20110622112123-rq2917e1i8he2hfz --- addons/base/static/src/js/form.js | 36 +++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 5cfe5db1dd2..1f4f791d9fd 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1364,6 +1364,9 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ }); openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ + virtual_id_prefix: "one2many_v_id_", + virtual_id_regex: /one2many_v_id_.*/, + debug_mode: true, init: function() { this._super.apply(this, arguments); this.reset_ids([]); @@ -1375,15 +1378,40 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ unlink: function(ids) { var self = this; this.set_ids(_.without.apply(_, [this.ids].concat(ids))); - _.each(ids, function(x) {self.to_delete[x] = true;}); + _.each(ids, function(x) {self.to_delete.push({id:x})}); this.on_change(); }, reset_ids: function(ids) { this.set_ids(ids); - this.to_delete = {}; - this.to_create = {}; + this.to_delete = []; + this.to_create = []; + this.cache = []; + }, + on_change: function() {}, + read_ids: function (ids, fields, callback) { + var self = this; + var to_get = []; + var to_remember = []; + _.each(ids, function(id) { + var cached = _.detect(self.cache, function(x) {return x.id === id;}); + if (!cached || !_each.all(fields, function(x) {cached.values[x] !== undefined})) + to_get.push(id); + else + to_remember.push(cached); + }); + // for debuggin, test to see if all the ids we try to load from db are real ids + if (this.debug_mode) + _.each(to_get, function(x) { + if(typeof(x) == "string") { + var test = self.virtual_id_regex.exec(x); + if(test && test[0] === x) { + throw "Trying to get value from virtual id"; + } + } + }); + //TODO niv + this._super(ids, fields, callback); }, - on_change: function() {} }); openerp.base.form.One2ManyListView = openerp.base.ListView.extend({ From 94761577b4a90645812ea4022068319a5f500314 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 22 Jun 2011 14:25:42 +0200 Subject: [PATCH 48/74] [IMP] Improved fields focus bzr revid: fme@openerp.com-20110622122542-ji3zt1fy9hc3qwgk --- addons/base/static/src/js/form.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index d221872598d..4aa52266e5b 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -252,18 +252,23 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV if (!this.ready) { return false; } - var invalid = false; - var values = {}; + var invalid = false, + values = {}, + first_invalid_field = null; for (var f in this.fields) { f = this.fields[f]; if (f.invalid) { invalid = true; f.update_dom(); + if (!first_invalid_field) { + first_invalid_field = f; + } } else if (f.touched) { values[f.name] = f.get_value(); } } if (invalid) { + first_invalid_field.focus(); this.on_invalid(); return false; } else { @@ -553,7 +558,7 @@ openerp.base.form.WidgetFrame = openerp.base.form.Widget.extend({ var widget_type = node.attrs.widget || type.type || node.tag; var widget = new (this.view.registry.get_object(widget_type)) (this.view, node); if (node.tag == 'field') { - if (node.attrs.default_focus == '1') { + if (!this.view.default_focus_field || node.attrs.default_focus == '1') { this.view.default_focus_field = widget; } if (node.attrs.nolabel != '1') { From 19aa4e05c266e6f089b34c4239f54c7ed1ab165e Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 22 Jun 2011 15:43:20 +0200 Subject: [PATCH 49/74] [IMP] In ViewManager, do not instanciate search view when action.search_view == false bzr revid: fme@openerp.com-20110622134320-ejkh13tbyhsd7wce --- addons/base/static/src/js/views.js | 32 +++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index ce2ee2c72e6..8b87d9cbdbe 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -113,7 +113,8 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ * @returns {jQuery.Deferred} new view loading promise */ on_mode_switch: function(view_type) { - var view_promise; + var self = this, + view_promise; this.active_view = view_type; var view = this.views[view_type]; if (!view.controller) { @@ -124,6 +125,16 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ if (view.embedded_view) { controller.set_embedded_view(view.embedded_view); } + if (view_type === 'list' && this.flags.search_view === false && this.action && this.action['auto_search']) { + // In case the search view is not instanciated: manually call ListView#search + controller.on_loaded.add({ + callback: function () { + controller.do_search([self.action.domain], [self.action.context], []); + }, + position: 'last', + unique: true + }); + } view_promise = controller.start(); var self = this; $.when(view_promise).then(function() { @@ -132,6 +143,7 @@ openerp.base.ViewManager = openerp.base.Controller.extend({ this.views[view_type].controller = controller; } + if (this.searchview) { if (view.controller.searchable === false) { this.searchview.hide(); @@ -261,16 +273,18 @@ openerp.base.ViewManagerAction = openerp.base.ViewManager.extend({ } }); - // init search view - var searchview_id = this.action.search_view_id && this.action.search_view_id[0]; + if (this.flags.search_view !== false) { + // init search view + var searchview_id = this.action.search_view_id && this.action.search_view_id[0]; - var searchview_loaded = this.setup_search_view( - searchview_id || false, search_defaults); + var searchview_loaded = this.setup_search_view( + searchview_id || false, search_defaults); - // schedule auto_search - if (searchview_loaded != null && this.action['auto_search']) { - $.when(searchview_loaded, inital_view_loaded) - .then(this.searchview.do_search); + // schedule auto_search + if (searchview_loaded != null && this.action['auto_search']) { + $.when(searchview_loaded, inital_view_loaded) + .then(this.searchview.do_search); + } } }, stop: function() { From 46abe6600a40c0088cc83928e71167b9e816032e Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 22 Jun 2011 16:01:49 +0200 Subject: [PATCH 50/74] [imp] added most methods of one2many dataset (but not tested) bzr revid: nicolas.vanhoren@openerp.com-20110622140149-287ofpshcqmxq1wl --- addons/base/static/src/js/form.js | 72 +++++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 8 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 6aa61b22f49..c5227074bfc 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1381,35 +1381,62 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ this.reset_ids([]); }, create: function(data, callback, error_callback) { + var cached = {id:_.uniqueId(this.virtual_id_prefix), values: data}; + this.to_create.push(cached); + this.set_ids(ids.concat([cached.id])); + this.cache.push(cached); + this.on_change(); + return $.Deferred().then(callback).resolve({result: cached.id}).promise(); }, write: function (id, data, callback) { + var record = _.select(this.to_create, function(x) {return x.id === id;}); + record = record || _.select(this.to_write, function(x) {return x.id === id;}); + if (previous) { + $.extend(previous.value, data); + } else { + record = {id: id, values: data}; + self.to_write.push(record); + } + var cached = _.select(this.cache, function(x) {return x.id === id;}); + $.extend(cached.value, record.values); + this.on_change(); + return $.Deferred().then(callback).resolve({result: true}).promise(); }, unlink: function(ids) { var self = this; + var to_create_size = this.to_create.length; + var remove = function(list, to_remove) { + return _.reject(list, function(x) { return _.include(to_remove, x.id);}); + }; + this.to_create = remove(this.to_create); + this.to_write = remove(this.to_write); + this.cache = remove(this.cache); this.set_ids(_.without.apply(_, [this.ids].concat(ids))); - _.each(ids, function(x) {self.to_delete.push({id:x})}); + if (this.to_create == to_create_size) { + _.each(ids, function(x) {self.to_delete.push({id:x})}); + } this.on_change(); }, reset_ids: function(ids) { this.set_ids(ids); this.to_delete = []; this.to_create = []; + this.to_write = []; this.cache = []; + // good idea? + this.on_change(); }, on_change: function() {}, read_ids: function (ids, fields, callback) { var self = this; var to_get = []; - var to_remember = []; _.each(ids, function(id) { var cached = _.detect(self.cache, function(x) {return x.id === id;}); if (!cached || !_each.all(fields, function(x) {cached.values[x] !== undefined})) to_get.push(id); - else - to_remember.push(cached); }); - // for debuggin, test to see if all the ids we try to load from db are real ids - if (this.debug_mode) + if (this.debug_mode) { + // test to see if all the ids we try to load from db are real ids _.each(to_get, function(x) { if(typeof(x) == "string") { var test = self.virtual_id_regex.exec(x); @@ -1418,8 +1445,37 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ } } }); - //TODO niv - this._super(ids, fields, callback); + }; + var completion = $.Deferred(); + $.when(completion).then(callback); + var return_records = function() { + var records = _.map(ids, function(id) {return _.detect(self.cache, function(c) {return c.id === id;}).values;}); + if (self.debug_mode) { + if (_.include(records, undefined)) { + throw "Record not correctly loaded"; + } + } + completion.resolve(records); + } + if(to_get) { + var rpc_promise = this._super(to_get, fields, function(records) { + _.each(records, function(record, index) { + var id = to_get[index]; + var cached = _.detect(self.cache, function(x) {return x.id === id;}); + if (!cached) { + self.cache.push({id: id, values: record}); + } else { + // I assume cache value is prioritary + self.cached = $.extend({}, record, cached); + } + }); + return_records(); + }); + $.when(rpc_promise).fail(function() {completion.reject();}); + } else { + return_records(); + } + return completion.promise(); }, }); From 2cbb2fe36c778a1660ecf10a63a6e0c940736642 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 22 Jun 2011 16:38:05 +0200 Subject: [PATCH 51/74] [IMP] QWeb2 t-js now handles more than one child bzr revid: fme@openerp.com-20110622143805-qryluomj7w4l3s5m --- addons/base/static/lib/qweb/qweb2.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/addons/base/static/lib/qweb/qweb2.js b/addons/base/static/lib/qweb/qweb2.js index 5e53ddbf645..e617df60183 100644 --- a/addons/base/static/lib/qweb/qweb2.js +++ b/addons/base/static/lib/qweb/qweb2.js @@ -670,15 +670,10 @@ QWeb2.Element = (function() { this.top("(function(" + value + ") {"); this.bottom("})(dict);"); this.indent(); - if (this.children.length === 1) { - var lines = this.children[0].node.data.split(/\r?\n/); - for (var i = 0, ilen = lines.length; i < ilen; i++) { - this.top(lines[i]); - } - } else { - this.engine.tools.exception("'js' code block contains " + this.children.length + " nodes instead of 1"); + var lines = this.engine.tools.xml_node_to_string(this.node, true).split(/\r?\n/); + for (var i = 0, ilen = lines.length; i < ilen; i++) { + this.top(lines[i]); } - // Maybe I could handle the children ? this.process_children = false; }, compile_action_debug : function(value) { From 58291d4ab605ff5b9882bb84de537ce1ff6e73cf Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 22 Jun 2011 16:49:16 +0200 Subject: [PATCH 52/74] [imp] added unlink to dataset and list_view (currently just reloads the whole list) bzr revid: nicolas.vanhoren@openerp.com-20110622144916-cst2ad1s0gtchlxi --- addons/base/static/src/js/data.js | 21 ++++++++++++++++++--- addons/base/static/src/js/list.js | 20 +------------------- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 736c31c1f7b..47e6d4fed3d 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -310,9 +310,10 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. context: this.context }, callback); }, - unlink: function(ids) { - // to implement in children - this.notification.notify("Unlink", ids); + unlink: function(ids, callback, error_callback) { + var self = this; + return this.call_and_eval("unlink", [ids, this.context], null, 1, + callback, error_callback); }, call: function (method, args, callback, error_callback) { return this.rpc('/base/dataset/call', { @@ -362,9 +363,12 @@ openerp.base.DataSetStatic = openerp.base.DataSet.extend({ set_ids: function (ids) { this.ids = ids; this.count = this.ids.length; + this.index = this.index <= this.count - 1 ? + this.index : (this.count > 0 ? this.count - 1 : 0); }, unlink: function(ids) { this.on_unlink(ids); + return $.Deferred().resolve({result: true}); }, on_unlink: function(ids) { this.set_ids(_.without.apply(null, [this.ids].concat(ids))); @@ -438,6 +442,17 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({ this._sort.unshift((reverse ? '-' : '') + field); return undefined; + }, + unlink: function(ids, callback, error_callback) { + var self = this; + return this._super(ids, function(result) { + self.ids = _.without.apply(_, [self.ids].concat(ids)); + self.count = self.ids.length; + self.index = self.index <= self.count - 1 ? + self.index : (self.count > 0 ? self.count -1 : 0); + if (callback) + callback(result); + }, error_callback); } }); diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index bd2518dcb66..38162849e08 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -336,25 +336,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi } var self = this; return $.when(this.dataset.unlink(ids)).then(function () { - _(self.rows).chain() - .map(function (row, index) { - return { - index: index, - id: row.data.id.value - };}) - .filter(function (record) { - return _.contains(ids, record.id); - }) - .sort(function (a, b) { - // sort in reverse index order, so we delete from the end - // and don't blow up the following indexes (leading to - // removing the wrong records from the visible list) - return b.index - a.index; - }) - .each(function (record) { - self.rows.splice(record.index, 1); - }); - // TODO only refresh modified rows + self.reload_content(); }); }, /** From dbac9436f975c0124231a9bada6766a0eb2a2dbc Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 22 Jun 2011 16:53:54 +0200 Subject: [PATCH 53/74] [imp] avoid to reload the list view 2 times in many2many bzr revid: nicolas.vanhoren@openerp.com-20110622145354-ihabdaecz0rwq970 --- addons/base/static/src/js/form.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 09e9b39561d..53538faae41 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1518,8 +1518,6 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ 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(); }); From cbf9300f23948c6043fcd76d6ada3a56e3b16d4a Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 22 Jun 2011 16:57:57 +0200 Subject: [PATCH 54/74] [IMP] Improved CrashManager bzr revid: fme@openerp.com-20110622145757-52ffxs6cj8m0jpnb --- addons/base/static/src/css/base.css | 9 ++------- addons/base/static/src/js/chrome.js | 12 +++++++++--- addons/base/static/src/xml/base.xml | 17 +++++++++++++---- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 9749dc97110..a921f320b3d 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -1060,13 +1060,8 @@ background: linear-gradient(top, #ffffff 0%,#ebe9e9 100%); /* W3C */ color: grey; } -.openerp .oe-dialog-warning { +.openerp .oe-dialog-warning p { + padding-left: 1em; font-size: 1.2em; font-weight: bold; } -.openerp .oe-dialog-warning img { - float: left; - position: relative; - top: -0.5em; - margin:0 7px 7px 0; -} diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 2bea20fe972..b019d7f1867 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -399,7 +399,6 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b on_rpc_response: function() { }, on_rpc_error: function(error) { - this.on_log(error.message, error.data.debug); }, /** * The session is validated either by login or by restoration of a previous session @@ -830,8 +829,15 @@ openerp.base.CrashManager = openerp.base.Dialog.extend({ }, on_rpc_error: function(error) { this.error = error; - if (error.code === 200) { - this.dialog_title = "OpenERP Warning"; + if (error.data.fault_code) { + var split = error.data.fault_code.split('\n')[0].split(' -- '); + if (split.length > 1) { + error.type = split.shift(); + error.data.fault_code = error.data.fault_code.substr(error.type.length + 4); + } + } + if (error.code === 200 && error.type) { + this.dialog_title = "OpenERP " + _.capitalize(error.type); this.template = 'DialogWarning'; this.open({ width: 'auto', diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index b03bb044ba4..d059ae84864 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -871,10 +871,19 @@ -

    - - -

    + + + + + +
    +

    + + d.html_error = context.engine.tools.html_escape(d.error.data.fault_code).replace(/\n/g, '
    '); +
    + +

    +
    From 36d85bed82a7321efe6d33ea22a37e997fa4f491 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 22 Jun 2011 17:08:38 +0200 Subject: [PATCH 55/74] [imp] corrected some behavior about suppressions in datasets bzr revid: nicolas.vanhoren@openerp.com-20110622150838-6ju63f7k0njkocru --- addons/base/static/src/js/form.js | 38 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 53538faae41..7787a807c01 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1305,7 +1305,6 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ this.dataset = new openerp.base.form.One2ManyDataset(this.session, this.field.relation); this.dataset.on_change.add_last(function() { self.on_ui_change(); - self.reload_current_view(); }); var modes = this.node.attrs.mode; @@ -1377,6 +1376,23 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ } }); +openerp.base.form.One2ManyListView = openerp.base.ListView.extend({ + do_add_record: function () { + var self = this; + var pop = new openerp.base.form.SelectCreatePopup(null, self.o2m.view.session); + pop.select_element(self.o2m.field.relation,{ + initial_view: "form", + alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined + }); + pop.on_select_elements.add(function(element_ids) { + var ids = self.o2m.dataset.ids; + _.each(element_ids, function(x) {if (!_.include(ids, x)) ids.push(x);}); + self.o2m.dataset.set_ids(ids); + self.o2m.reload_current_view(); + }); + } +}); + openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ virtual_id_prefix: "one2many_v_id_", virtual_id_regex: /one2many_v_id_.*/, @@ -1484,24 +1500,6 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ }, }); -openerp.base.form.One2ManyListView = openerp.base.ListView.extend({ - do_add_record: function () { - var self = this; - var pop = new openerp.base.form.SelectCreatePopup(null, self.o2m.view.session); - pop.select_element(self.o2m.field.relation,{ - initial_view: "form", - alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined - }); - pop.on_select_elements.add(function(element_ids) { - var ids = self.o2m.dataset.ids; - _.each(element_ids, function(x) {if (!_.include(ids, x)) ids.push(x);}); - self.o2m.dataset.set_ids(ids); - self.o2m.on_ui_change(); - self.o2m.reload_current_view(); - }); - } -}); - openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); @@ -1517,7 +1515,7 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ this.dataset = new openerp.base.DataSetStatic( this.session, this.field.relation); - this.dataset.on_unlink.add_last(function(ids) { + this.dataset.on_change.add_last(function(ids) { self.on_ui_change(); }); From 6e40e0aaa1d14b0352d33cf822e64f64081a0a94 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 22 Jun 2011 17:59:43 +0200 Subject: [PATCH 56/74] [FIX] Form view does not send back untouched fields with default value when saving record bzr revid: fme@openerp.com-20110622155943-ex7p9a97fkhdaxio --- addons/base/static/src/js/form.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 4aa52266e5b..0d1e6afb82d 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -102,7 +102,11 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.touched = true; this.show_invalid = false; for (var f in record) { - this.on_form_changed(this.fields[f]); + var field = this.fields[f]; + if (field) { + field.touched = true; + this.on_form_changed(field); + } } } this.on_form_changed(); From 63d23036a353f2c52df108ec34ca36cbfd4aba8e Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 12:42:22 +0200 Subject: [PATCH 57/74] [fix] lot of fixes in o2m bzr revid: nicolas.vanhoren@openerp.com-20110623104222-5lqe0o4xih4xwvxj --- addons/base/static/src/js/form.js | 78 +++++++++++++------------------ addons/base/static/src/js/list.js | 2 +- 2 files changed, 33 insertions(+), 47 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 7787a807c01..963798ffaab 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -365,12 +365,13 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV if (!this.datarecord.id) { this.on_attachments_loaded([]); } else { - this.rpc('/base/dataset/search_read', { + // TODO fme: modify this so it doesn't try to load attachments when there is not sidebar + /*this.rpc('/base/dataset/search_read', { model: 'ir.attachment', fields: ['name', 'url', 'type'], domain: [['res_model', '=', this.dataset.model], ['res_id', '=', this.datarecord.id], ['type', 'in', ['binary', 'url']]], context: this.dataset.context - }, this.on_attachments_loaded); + }, this.on_attachments_loaded);*/ } }, on_attachments_loaded: function(attachments) { @@ -1264,6 +1265,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ }, set_value_from_ui: function() {}, set_value: function(value) { + value = value || null; this._super(value); this.original_value = value; this._change_int_ext_value(value); @@ -1295,7 +1297,6 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ this._super(view, node); this.template = "FieldOne2Many"; this.is_started = $.Deferred(); - this.is_setted = $.Deferred(); }, start: function() { this._super.apply(this, arguments); @@ -1340,14 +1341,6 @@ 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() { - if (modes[0] == "tree") { - var view = self.viewmanager.views[self.viewmanager.active_view].controller; - view.reload_content(); - } - // TODO niv: handle other types of views - }); }, reload_current_view: function() { var self = this; @@ -1355,15 +1348,18 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ if(self.viewmanager.active_view === "list") { view.reload_content(); } else if (self.viewmanager.active_view === "form") { - // TODO niv: but fme did not implemented delete in form view anyway + // TODO niv: implement } }, set_value_from_ui: function() {}, set_value: function(value) { - if(value != false) { - this.dataset.reset_ids(value); - this.is_setted.resolve(); - } + value = value || [] + this._super(value); + this.dataset.reset_ids(value); + var self = this; + $.when(this.is_started).then(function() { + self.reload_current_view(); + }); }, get_value: function() { var val = _.map(this.dataset.to_delete, function(v, k) {return [2, parseInt(k, 10)];}); @@ -1404,7 +1400,6 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ create: function(data, callback, error_callback) { var cached = {id:_.uniqueId(this.virtual_id_prefix), values: data}; this.to_create.push(cached); - this.set_ids(ids.concat([cached.id])); this.cache.push(cached); this.on_change(); return $.Deferred().then(callback).resolve({result: cached.id}).promise(); @@ -1412,7 +1407,7 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ write: function (id, data, callback) { var record = _.select(this.to_create, function(x) {return x.id === id;}); record = record || _.select(this.to_write, function(x) {return x.id === id;}); - if (previous) { + if (record) { $.extend(previous.value, data); } else { record = {id: id, values: data}; @@ -1444,8 +1439,6 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ this.to_create = []; this.to_write = []; this.cache = []; - // good idea? - this.on_change(); }, on_change: function() {}, read_ids: function (ids, fields, callback) { @@ -1453,22 +1446,15 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ var to_get = []; _.each(ids, function(id) { var cached = _.detect(self.cache, function(x) {return x.id === id;}); - if (!cached || !_each.all(fields, function(x) {cached.values[x] !== undefined})) - to_get.push(id); + var created = _.detect(self.to_create, function(x) {return x.id === id;}); + if (created) { + _.each(fields, function(x) {if (cached.values[x] === undefined) cached.values[x] = false;}); + } else { + if (!cached || !_.all(fields, function(x) {return cached.values[x] !== undefined})) + to_get.push(id); + } }); - if (this.debug_mode) { - // test to see if all the ids we try to load from db are real ids - _.each(to_get, function(x) { - if(typeof(x) == "string") { - var test = self.virtual_id_regex.exec(x); - if(test && test[0] === x) { - throw "Trying to get value from virtual id"; - } - } - }); - }; - var completion = $.Deferred(); - $.when(completion).then(callback); + var completion = $.Deferred().then(callback); var return_records = function() { var records = _.map(ids, function(id) {return _.detect(self.cache, function(c) {return c.id === id;}).values;}); if (self.debug_mode) { @@ -1478,7 +1464,7 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ } completion.resolve(records); } - if(to_get) { + if(to_get.length > 0) { var rpc_promise = this._super(to_get, fields, function(records) { _.each(records, function(record, index) { var id = to_get[index]; @@ -1487,7 +1473,7 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ self.cache.push({id: id, values: record}); } else { // I assume cache value is prioritary - self.cached = $.extend({}, record, cached); + _.defaults(cached.values, record); } }); return_records(); @@ -1506,7 +1492,6 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ this.template = "FieldMany2Many"; this.list_id = _.uniqueId("many2many"); this.is_started = $.Deferred(); - this.is_setted = $.Deferred(); }, start: function() { this._super.apply(this, arguments); @@ -1515,7 +1500,8 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ this.dataset = new openerp.base.DataSetStatic( this.session, this.field.relation); - this.dataset.on_change.add_last(function(ids) { + this.dataset.on_unlink.add_last(function(ids) { + //TODO niv: should check this for other cases self.on_ui_change(); }); @@ -1528,15 +1514,15 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ self.is_started.resolve(); }); this.list_view.start(); - $.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.resolve(); - } + value = value || []; + this._super(value); + this.dataset.set_ids(value); + var self = this; + $.when(this.is_started).then(function() { + self.list_view.reload_content(); + }); }, get_value: function() { return [[6,false,this.dataset.ids]]; diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 38162849e08..31c16b98fc1 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -877,7 +877,7 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr var d = new $.Deferred(); dataset.read_slice( - _.filter(_.pluck(this.columns, 'name'), _.identity), + _.filter(_.pluck(_.select(this.columns, function(x) {return x.tag == "field";}), 'name'), _.identity), 0, false, function (records) { var form_records = _(records).map( From 9eede2e3a42fcbea9590fdfacc48d895b76b9502 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 14:21:10 +0200 Subject: [PATCH 58/74] [fix] added setTimeout to all methods of o2m dataset to avoid lot of potential bugs in the views bzr revid: nicolas.vanhoren@openerp.com-20110623122110-4cst4fm1dzup5z69 --- addons/base/static/src/js/data.js | 2 ++ addons/base/static/src/js/form.js | 23 +++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 47e6d4fed3d..954eb8ccf43 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -357,6 +357,8 @@ openerp.base.DataSetStatic = openerp.base.DataSet.extend({ this.count = this.ids.length; }, read_slice: function (fields, offset, limit, callback) { + var self = this; + offset = offset || 0; var end_pos = limit && limit !== -1 ? offset + limit : undefined; this.read_ids(this.ids.slice(offset, end_pos), fields, callback); }, diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 963798ffaab..a2ca5b42b20 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1402,7 +1402,9 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ this.to_create.push(cached); this.cache.push(cached); this.on_change(); - return $.Deferred().then(callback).resolve({result: cached.id}).promise(); + var to_return = $.Deferred().then(callback); + setTimeout(function() {to_return.resolve({result: cached.id});}, 0); + return to_return.promise(); }, write: function (id, data, callback) { var record = _.select(this.to_create, function(x) {return x.id === id;}); @@ -1416,9 +1418,11 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ var cached = _.select(this.cache, function(x) {return x.id === id;}); $.extend(cached.value, record.values); this.on_change(); - return $.Deferred().then(callback).resolve({result: true}).promise(); + var to_return = $.Deferred().then(callback); + setTimeout(function () {to_return.resolve({result: true});}, 0); + return to_return.promise(); }, - unlink: function(ids) { + unlink: function(ids, callback, error_callback) { var self = this; var to_create_size = this.to_create.length; var remove = function(list, to_remove) { @@ -1432,6 +1436,9 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ _.each(ids, function(x) {self.to_delete.push({id:x})}); } this.on_change(); + var to_return = $.Deferred().then(callback); + setTimeout(function () {to_return.resolve({result: true});}, 0); + return to_return.promise(); }, reset_ids: function(ids) { this.set_ids(ids); @@ -1457,12 +1464,20 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ var completion = $.Deferred().then(callback); var return_records = function() { var records = _.map(ids, function(id) {return _.detect(self.cache, function(c) {return c.id === id;}).values;}); + // avoid giving fields that were not asked for (+ create a copy of the cache) + records = _.map(records, function(record) { + var tmp = {}; + _.each(fields, function(field) { + tmp[field] = record[field]; + }); + return tmp; + }); if (self.debug_mode) { if (_.include(records, undefined)) { throw "Record not correctly loaded"; } } - completion.resolve(records); + setTimeout(function () {completion.resolve(records);}, 0); } if(to_get.length > 0) { var rpc_promise = this._super(to_get, fields, function(records) { From abf83d268559516d8c6de24567731390f496a327 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 14:40:16 +0200 Subject: [PATCH 59/74] [imp] made m2o compatible with set_value(int) bzr revid: nicolas.vanhoren@openerp.com-20110623124016-5vhg59oodplvj5ig --- addons/base/static/src/js/form.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index a2ca5b42b20..62ffb997783 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1266,9 +1266,21 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ set_value_from_ui: function() {}, set_value: function(value) { value = value || null; - this._super(value); - this.original_value = value; - this._change_int_ext_value(value); + var self = this; + var _super = this._super; + var real_set_value = function(rval) { + _super.apply(self, rval); + self.original_value = rval; + self._change_int_ext_value(rval); + }; + if(typeof(value) === "number") { + var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []); + dataset.call("name_get", value, function(data) { + real_set_value(data.result[0]); + }); + } else { + setTimeout(function() {real_set_value(value);}, 0); + } }, get_value: function() { if (this.value === undefined) From 7fc77495e047a5cd0588d6c92c01fc2ed9f041f0 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 14:57:25 +0200 Subject: [PATCH 60/74] [fix] problem in get_value of m2o bzr revid: nicolas.vanhoren@openerp.com-20110623125725-lzt263x8c7t0obmk --- addons/base/static/src/js/form.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 62ffb997783..9a9f9738a6a 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1080,6 +1080,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ this.value = null; this.cm_id = _.uniqueId('m2o_cm_'); this.last_search = []; + this.tmp_value = undefined; }, start: function() { this._super(); @@ -1268,14 +1269,16 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ value = value || null; var self = this; var _super = this._super; + this.tmp_value = value; var real_set_value = function(rval) { + this.tmp_value = undefined; _super.apply(self, rval); self.original_value = rval; self._change_int_ext_value(rval); }; if(typeof(value) === "number") { var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []); - dataset.call("name_get", value, function(data) { + dataset.call("name_get", [value], function(data) { real_set_value(data.result[0]); }); } else { @@ -1283,6 +1286,12 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ } }, get_value: function() { + if (this.tmp_value !== undefined) { + if (this.tmp_value instanceof Array) { + return this.tmp_value[0]; + } + return this.tmp_value; + } if (this.value === undefined) throw "theorically unreachable state"; return this.value ? this.value[0] : false; From 986eaa7c9ca66608e364a1ea5a1f20fcdce693da Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 15:51:24 +0200 Subject: [PATCH 61/74] [fix] problem with ids not added to read_ids in o2m dataset bzr revid: nicolas.vanhoren@openerp.com-20110623135124-8yvk56l18j9f6mwk --- addons/base/static/src/js/form.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 9a9f9738a6a..4bb2e0ca636 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1280,7 +1280,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []); dataset.call("name_get", [value], function(data) { real_set_value(data.result[0]); - }); + }).fail(function() {self.tmp_value = undefined;}); } else { setTimeout(function() {real_set_value(value);}, 0); } @@ -1486,9 +1486,10 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ var return_records = function() { var records = _.map(ids, function(id) {return _.detect(self.cache, function(c) {return c.id === id;}).values;}); // avoid giving fields that were not asked for (+ create a copy of the cache) + var fields_plus_id = fields.concat(["id"]); records = _.map(records, function(record) { var tmp = {}; - _.each(fields, function(field) { + _.each(fields_plus_id, function(field) { tmp[field] = record[field]; }); return tmp; From 9029d4da7b0d40b639e9ac0819831eaf70b9687d Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 23 Jun 2011 16:10:03 +0200 Subject: [PATCH 62/74] [FIX] res_lang: set the default lang for both partner and user, not just partner. lp bug: https://launchpad.net/bugs/798637 fixed bzr revid: vmt@openerp.com-20110623141003-ysj8dmm93714nipb --- openerp/addons/base/res/res_lang.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openerp/addons/base/res/res_lang.py b/openerp/addons/base/res/res_lang.py index fb3156cd4c9..ded70fa6b1e 100644 --- a/openerp/addons/base/res/res_lang.py +++ b/openerp/addons/base/res/res_lang.py @@ -56,6 +56,9 @@ class lang(osv.osv): 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) + default_value = ir_values_obj.get(cr, uid, 'default', False, ['res.users']) + if not default_value: + ir_values_obj.set(cr, uid, 'default', False, 'context_lang', ['res.users'], lang) return True def load_lang(self, cr, uid, lang, lang_name=None): From 93e3a1f3661d084b500cc08fec0c8d7b0ad25086 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 23 Jun 2011 16:36:51 +0200 Subject: [PATCH 63/74] [FIX] netsvc: revert introduction of cgitb (was done at revno 3452, revision-id vmt@openerp.com-20110609073416-ml22a1vhtizl3z71) lp bug: https://launchpad.net/bugs/797690 fixed bzr revid: vmt@openerp.com-20110623143651-v1x7obfnj48khsdj --- openerp/netsvc.py | 3 +-- setup.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/openerp/netsvc.py b/openerp/netsvc.py index 42ccab414c7..aca1b9c12a9 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -24,7 +24,6 @@ # ############################################################################## -import cgitb import errno import heapq import logging @@ -440,7 +439,7 @@ class OpenERPDispatcher: except Exception, e: self.log('exception', tools.exception_to_unicode(e)) tb = getattr(e, 'traceback', sys.exc_info()) - tb_s = cgitb.text(tb) + tb_s = "".join(traceback.format_exception(*tb)) if tools.config['debug_mode'] and isinstance(tb, types.TracebackType): import pdb pdb.post_mortem(tb[2]) diff --git a/setup.py b/setup.py index 62fb0c9a532..930b266e66b 100755 --- a/setup.py +++ b/setup.py @@ -89,7 +89,7 @@ if os.name == 'nt': "pydot", "asyncore","asynchat", "reportlab", "vobject", "HTMLParser", "select", "mako", "poplib", "imaplib", "smtplib", "email", "yaml", "DAV", - "uuid", "commands", "openerp", # TODO is it necessary to include cgitb? + "uuid", "commands", "openerp", ], "excludes" : ["Tkconstants","Tkinter","tcl"], } From b91fca6709461462f517c480da46ae5b420a44d5 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 23 Jun 2011 17:52:18 +0200 Subject: [PATCH 64/74] [FIX] Dataset's index default value should be null bzr revid: fme@openerp.com-20110623155218-205t5nb0etjdgfc4 --- addons/base/static/src/js/data.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 954eb8ccf43..86caa8466c6 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -235,7 +235,7 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. this._super(session); this.model = model; this.context = context || {}; - this.index = 0; + this.index = null; this.count = 0; }, start: function() { From 9e9339688c716458f660b7a693e4b32db517ea7c Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 23 Jun 2011 17:55:09 +0200 Subject: [PATCH 65/74] [IMP] Improved form bzr revid: fme@openerp.com-20110623155509-00vf7x2bwu1bqpx9 --- addons/base/static/src/js/form.js | 87 ++++++++++++++++------------- addons/base/static/src/xml/base.xml | 10 +++- 2 files changed, 56 insertions(+), 41 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 0e76fcf22bd..b4578e3c762 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -36,6 +36,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.default_focus_button = null; this.registry = openerp.base.form.widgets; this.has_been_loaded = $.Deferred(); + this.$form_header = null; }, start: function() { //this.log('Starting FormView '+this.model+this.view_id) @@ -59,76 +60,80 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV _.each(this.widgets, function(w) { w.start(); }); - this.$element.find('div.oe_form_pager button[data-pager-action]').click(function() { + this.$form_header = this.$element.find('#' + this.element_id + '_header'); + this.$form_header.find('div.oe_form_pager button[data-pager-action]').click(function() { var action = $(this).data('pager-action'); self.on_pager_action(action); }); - this.$element.find('#' + this.element_id + '_header button.oe_form_button_save').click(this.do_save); - this.$element.find('#' + this.element_id + '_header button.oe_form_button_save_edit').click(this.do_save_edit); - this.$element.find('#' + this.element_id + '_header button.oe_form_button_cancel').click(this.do_cancel); - this.$element.find('#' + this.element_id + '_header button.oe_form_button_new').click(this.on_button_new); + this.$form_header.find('button.oe_form_button_save').click(this.do_save); + this.$form_header.find('button.oe_form_button_save_edit').click(this.do_save_edit); + this.$form_header.find('button.oe_form_button_cancel').click(this.do_cancel); + this.$form_header.find('button.oe_form_button_new').click(this.on_button_new); this.view_manager.sidebar.set_toolbar(data.fields_view.toolbar); this.has_been_loaded.resolve(); }, do_show: function () { var self = this; - self.$element.show(); - if (this.dataset.index === null || (this.dataset.index === 0 && this.dataset.ids.length == 0)) { + if (this.dataset.index === null) { // null index means we should start a new record - // 0 index with empty ids means we called the form with empty dataset (wizards, switched to form from empty list, ...) this.on_button_new(); } else { this.dataset.read_index(_.keys(this.fields_view.fields), this.on_record_loaded); } + self.$element.show(); this.view_manager.sidebar.do_refresh(true); }, do_hide: function () { this.$element.hide(); }, on_record_loaded: function(record) { + if (!record) { + throw("Form: No record received"); + } + if (!record.id) { + this.$form_header.find('.oe_form_on_create').show(); + this.$form_header.find('.oe_form_on_update').hide(); + this.$form_header.find('button.oe_form_button_new').hide(); + } else { + this.$form_header.find('.oe_form_on_create').hide(); + this.$form_header.find('.oe_form_on_update').show(); + this.$form_header.find('button.oe_form_button_new').show(); + } this.touched = false; - if (record) { - this.datarecord = record; - for (var f in this.fields) { + this.datarecord = record; + for (var f in this.fields) { + var field = this.fields[f]; + field.touched = false; + field.set_value(this.datarecord[f] || false); + field.validate(); + } + if (!record.id) { + // New record: Second pass in order to trigger the onchanges + this.touched = true; + this.show_invalid = false; + for (var f in record) { var field = this.fields[f]; - field.touched = false; - field.set_value(this.datarecord[f] || false); - field.validate(); - } - if (!record.id) { - // New record: Second pass in order to trigger the onchanges - this.touched = true; - this.show_invalid = false; - for (var f in record) { - var field = this.fields[f]; - if (field) { - field.touched = true; - this.on_form_changed(field); - } + if (field) { + field.touched = true; + this.do_onchange(field); } } - this.on_form_changed(); - this.show_invalid = this.ready = true; - } else { - this.log("No record received"); } + this.on_form_changed(); + this.show_invalid = this.ready = true; this.do_update_pager(record.id == null); this.do_update_sidebar(); if (this.default_focus_field) { this.default_focus_field.focus(); } }, - on_form_changed: function(widget) { - if (widget && widget.node.attrs.on_change) { - this.do_onchange(widget); - } else { - for (var w in this.widgets) { - w = this.widgets[w]; - w.process_attrs(); - w.update_dom(); - } + on_form_changed: function() { + for (var w in this.widgets) { + w = this.widgets[w]; + w.process_attrs(); + w.update_dom(); } }, on_pager_action: function(action) { @@ -161,6 +166,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.ready = false; var onchange = _.trim(widget.node.attrs.on_change); var call = onchange.match(/^\s?(.*?)\((.*?)\)\s?$/); + console.log("Onchange triggered for field '%s' -> %s", widget.name, onchange); if (call) { var method = call[1], args = []; var argument_replacement = { @@ -199,12 +205,14 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV on_processed_onchange: function(response, processed) { var result = response.result; if (result.value) { + console.log(" |-> Onchange Response :", result.value); for (var f in result.value) { var field = this.fields[f]; if (field) { var value = result.value[f]; processed.push(field.name); if (field.get_value() != value) { + console.log(" |-> Onchange Action : change '%s' value from '%s' to '%s'", field.name, field.get_value(), value); field.set_value(value); if (_.indexOf(processed, field.name) < 0) { this.do_onchange(field, processed); @@ -728,7 +736,8 @@ openerp.base.form.Field = openerp.base.form.Widget.extend({ this.validate(); if (!this.invalid) { this.set_value_from_ui(); - this.view.on_form_changed(this); + this.view.do_onchange(this); + this.view.on_form_changed(); } else { this.update_dom(); } diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index d059ae84864..de95a4294e8 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -360,8 +360,14 @@

    - - + +
    From 441197c1b3db0f0297f2686ff6691118c69aba86 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 17:58:07 +0200 Subject: [PATCH 66/74] [fix] bugs during write and unlink bzr revid: nicolas.vanhoren@openerp.com-20110623155807-xob4uhcgm3qxeao2 --- addons/base/static/src/js/form.js | 40 +++++++++++++------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index b4578e3c762..576902b952d 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1441,16 +1441,17 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ return to_return.promise(); }, write: function (id, data, callback) { - var record = _.select(this.to_create, function(x) {return x.id === id;}); - record = record || _.select(this.to_write, function(x) {return x.id === id;}); + var self = this; + var record = _.detect(this.to_create, function(x) {return x.id === id;}); + record = record || _.detect(this.to_write, function(x) {return x.id === id;}); if (record) { - $.extend(previous.value, data); + $.extend(record.values, data); } else { record = {id: id, values: data}; self.to_write.push(record); } - var cached = _.select(this.cache, function(x) {return x.id === id;}); - $.extend(cached.value, record.values); + var cached = _.detect(this.cache, function(x) {return x.id === id;}); + $.extend(cached.values, record.values); this.on_change(); var to_return = $.Deferred().then(callback); setTimeout(function () {to_return.resolve({result: true});}, 0); @@ -1458,17 +1459,15 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ }, unlink: function(ids, callback, error_callback) { var self = this; - var to_create_size = this.to_create.length; - var remove = function(list, to_remove) { - return _.reject(list, function(x) { return _.include(to_remove, x.id);}); - }; - this.to_create = remove(this.to_create); - this.to_write = remove(this.to_write); - this.cache = remove(this.cache); + _.each(ids, function(id) { + if (! _.detect(self.to_create, function(x) { return x.id === id; })) { + self.to_delete.push({id: id}) + } + }); + this.to_create = _.reject(this.to_create, function(x) { return _.include(ids, x.id);}); + this.to_write = _.reject(this.to_write, function(x) { return _.include(ids, x.id);}); + this.cache = _.reject(this.cache, function(x) { return _.include(ids, x.id);}); this.set_ids(_.without.apply(_, [this.ids].concat(ids))); - if (this.to_create == to_create_size) { - _.each(ids, function(x) {self.to_delete.push({id:x})}); - } this.on_change(); var to_return = $.Deferred().then(callback); setTimeout(function () {to_return.resolve({result: true});}, 0); @@ -1497,15 +1496,8 @@ openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ }); var completion = $.Deferred().then(callback); var return_records = function() { - var records = _.map(ids, function(id) {return _.detect(self.cache, function(c) {return c.id === id;}).values;}); - // avoid giving fields that were not asked for (+ create a copy of the cache) - var fields_plus_id = fields.concat(["id"]); - records = _.map(records, function(record) { - var tmp = {}; - _.each(fields_plus_id, function(field) { - tmp[field] = record[field]; - }); - return tmp; + var records = _.map(ids, function(id) { + return _.extend({}, _.detect(self.cache, function(c) {return c.id === id;}).values, {"id": id}); }); if (self.debug_mode) { if (_.include(records, undefined)) { From 7f8b7e7bc1645dcd19f2179919d0ddf129d2b708 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 17:59:46 +0200 Subject: [PATCH 67/74] [imp] removed useless method in main.py bzr revid: nicolas.vanhoren@openerp.com-20110623155946-mj3lca6u617exxsn --- addons/base/controllers/main.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 3f519f30962..bc6bc141863 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -383,11 +383,6 @@ class DataSet(openerpweb.Controller): reads = Model.read(ids, fields or False, context) reads.sort(key=lambda obj: ids.index(obj['id'])) return reads - - @openerpweb.jsonrequest - def read(self, request, model, ids, fields=False): - return self.do_search_read(request, model, ids, fields, - request.session.eval_context(request.context)) @openerpweb.jsonrequest def get(self, request, model, ids, fields=False): From 93cd2ec1aa8bb6ba2019dccc4d8ec4b2e0d9db6b Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 23 Jun 2011 19:20:50 +0200 Subject: [PATCH 68/74] [FIX] Date widgets does not correctly validate bzr revid: fme@openerp.com-20110623172050-deldzkj98hcuhjjs --- 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 576902b952d..69cea6e5be4 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -876,7 +876,7 @@ openerp.base.form.FieldDatetime = openerp.base.form.Field.extend({ } }, validate: function() { - this.invalid = this.required && this.$element.find('input')[this.jqueryui_object]('getDate') === ''; + this.invalid = this.required && !this.$element.find('input')[this.jqueryui_object]('getDate'); }, focus: function() { this.$element.find('input').focus(); From fe6536132f484e4c683a6466a30b99a0f2842c08 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 18:57:17 +0200 Subject: [PATCH 70/74] [imp] refactored one2many dataset & created read only search dataset & used it in the select create popup bzr revid: nicolas.vanhoren@openerp.com-20110623165717-di9r0i463tm4wm7a --- addons/base/static/src/js/data.js | 129 +++++++++++++++++++++++++++++ addons/base/static/src/js/form.js | 131 ++++-------------------------- 2 files changed, 145 insertions(+), 115 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 86caa8466c6..b3ddd7750c8 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -458,6 +458,135 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({ } }); +openerp.base.BufferedDataSet = openerp.base.DataSetStatic.extend({ + virtual_id_prefix: "one2many_v_id_", + virtual_id_regex: /one2many_v_id_.*/, + debug_mode: true, + init: function() { + this._super.apply(this, arguments); + this.reset_ids([]); + }, + create: function(data, callback, error_callback) { + var cached = {id:_.uniqueId(this.virtual_id_prefix), values: data}; + this.to_create.push(cached); + this.cache.push(cached); + this.on_change(); + var to_return = $.Deferred().then(callback); + setTimeout(function() {to_return.resolve({result: cached.id});}, 0); + return to_return.promise(); + }, + write: function (id, data, callback) { + var self = this; + var record = _.detect(this.to_create, function(x) {return x.id === id;}); + record = record || _.detect(this.to_write, function(x) {return x.id === id;}); + if (record) { + $.extend(record.values, data); + } else { + record = {id: id, values: data}; + self.to_write.push(record); + } + var cached = _.detect(this.cache, function(x) {return x.id === id;}); + $.extend(cached.values, record.values); + this.on_change(); + var to_return = $.Deferred().then(callback); + setTimeout(function () {to_return.resolve({result: true});}, 0); + return to_return.promise(); + }, + unlink: function(ids, callback, error_callback) { + var self = this; + _.each(ids, function(id) { + if (! _.detect(self.to_create, function(x) { return x.id === id; })) { + self.to_delete.push({id: id}) + } + }); + this.to_create = _.reject(this.to_create, function(x) { return _.include(ids, x.id);}); + this.to_write = _.reject(this.to_write, function(x) { return _.include(ids, x.id);}); + this.cache = _.reject(this.cache, function(x) { return _.include(ids, x.id);}); + this.set_ids(_.without.apply(_, [this.ids].concat(ids))); + this.on_change(); + var to_return = $.Deferred().then(callback); + setTimeout(function () {to_return.resolve({result: true});}, 0); + return to_return.promise(); + }, + reset_ids: function(ids) { + this.set_ids(ids); + this.to_delete = []; + this.to_create = []; + this.to_write = []; + this.cache = []; + }, + on_change: function() {}, + read_ids: function (ids, fields, callback) { + var self = this; + var to_get = []; + _.each(ids, function(id) { + var cached = _.detect(self.cache, function(x) {return x.id === id;}); + var created = _.detect(self.to_create, function(x) {return x.id === id;}); + if (created) { + _.each(fields, function(x) {if (cached.values[x] === undefined) cached.values[x] = false;}); + } else { + if (!cached || !_.all(fields, function(x) {return cached.values[x] !== undefined})) + to_get.push(id); + } + }); + var completion = $.Deferred().then(callback); + var return_records = function() { + var records = _.map(ids, function(id) { + return _.extend({}, _.detect(self.cache, function(c) {return c.id === id;}).values, {"id": id}); + }); + if (self.debug_mode) { + if (_.include(records, undefined)) { + throw "Record not correctly loaded"; + } + } + setTimeout(function () {completion.resolve(records);}, 0); + } + if(to_get.length > 0) { + var rpc_promise = this._super(to_get, fields, function(records) { + _.each(records, function(record, index) { + var id = to_get[index]; + var cached = _.detect(self.cache, function(x) {return x.id === id;}); + if (!cached) { + self.cache.push({id: id, values: record}); + } else { + // I assume cache value is prioritary + _.defaults(cached.values, record); + } + }); + return_records(); + }); + $.when(rpc_promise).fail(function() {completion.reject();}); + } else { + return_records(); + } + return completion.promise(); + }, +}); + +openerp.base.ReadOnlyDataSetSearch = openerp.base.DataSetSearch.extend({ + create: function(data, callback, error_callback) { + this.on_create(data); + var to_return = $.Deferred().then(callback); + setTimeout(function () {to_return.resolve({"result": undefined});}, 0); + return to_return.promise(); + }, + on_create: function(data) {}, + write: function (id, data, callback) { + this.on_write(id); + var to_return = $.Deferred().then(callback); + setTimeout(function () {to_return.resolve({"result": true});}, 0); + return to_return.promise(); + }, + on_write: function(id) {}, + unlink: function(ids, callback, error_callback) { + this.on_unlink(ids); + var to_return = $.Deferred().then(callback); + setTimeout(function () {to_return.resolve({"result": true});}, 0); + return to_return.promise(); + }, + on_unlink: function(ids) {} +}); + openerp.base.CompoundContext = function() { this.__ref = "compound_context"; this.__contexts = []; diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 69cea6e5be4..71ce2f5cbb4 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1337,7 +1337,7 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ var self = this; - this.dataset = new openerp.base.form.One2ManyDataset(this.session, this.field.relation); + this.dataset = new openerp.base.BufferedDataSet(this.session, this.field.relation); this.dataset.on_change.add_last(function() { self.on_ui_change(); }); @@ -1423,111 +1423,6 @@ openerp.base.form.One2ManyListView = openerp.base.ListView.extend({ } }); -openerp.base.form.One2ManyDataset = openerp.base.DataSetStatic.extend({ - virtual_id_prefix: "one2many_v_id_", - virtual_id_regex: /one2many_v_id_.*/, - debug_mode: true, - init: function() { - this._super.apply(this, arguments); - this.reset_ids([]); - }, - create: function(data, callback, error_callback) { - var cached = {id:_.uniqueId(this.virtual_id_prefix), values: data}; - this.to_create.push(cached); - this.cache.push(cached); - this.on_change(); - var to_return = $.Deferred().then(callback); - setTimeout(function() {to_return.resolve({result: cached.id});}, 0); - return to_return.promise(); - }, - write: function (id, data, callback) { - var self = this; - var record = _.detect(this.to_create, function(x) {return x.id === id;}); - record = record || _.detect(this.to_write, function(x) {return x.id === id;}); - if (record) { - $.extend(record.values, data); - } else { - record = {id: id, values: data}; - self.to_write.push(record); - } - var cached = _.detect(this.cache, function(x) {return x.id === id;}); - $.extend(cached.values, record.values); - this.on_change(); - var to_return = $.Deferred().then(callback); - setTimeout(function () {to_return.resolve({result: true});}, 0); - return to_return.promise(); - }, - unlink: function(ids, callback, error_callback) { - var self = this; - _.each(ids, function(id) { - if (! _.detect(self.to_create, function(x) { return x.id === id; })) { - self.to_delete.push({id: id}) - } - }); - this.to_create = _.reject(this.to_create, function(x) { return _.include(ids, x.id);}); - this.to_write = _.reject(this.to_write, function(x) { return _.include(ids, x.id);}); - this.cache = _.reject(this.cache, function(x) { return _.include(ids, x.id);}); - this.set_ids(_.without.apply(_, [this.ids].concat(ids))); - this.on_change(); - var to_return = $.Deferred().then(callback); - setTimeout(function () {to_return.resolve({result: true});}, 0); - return to_return.promise(); - }, - reset_ids: function(ids) { - this.set_ids(ids); - this.to_delete = []; - this.to_create = []; - this.to_write = []; - this.cache = []; - }, - on_change: function() {}, - read_ids: function (ids, fields, callback) { - var self = this; - var to_get = []; - _.each(ids, function(id) { - var cached = _.detect(self.cache, function(x) {return x.id === id;}); - var created = _.detect(self.to_create, function(x) {return x.id === id;}); - if (created) { - _.each(fields, function(x) {if (cached.values[x] === undefined) cached.values[x] = false;}); - } else { - if (!cached || !_.all(fields, function(x) {return cached.values[x] !== undefined})) - to_get.push(id); - } - }); - var completion = $.Deferred().then(callback); - var return_records = function() { - var records = _.map(ids, function(id) { - return _.extend({}, _.detect(self.cache, function(c) {return c.id === id;}).values, {"id": id}); - }); - if (self.debug_mode) { - if (_.include(records, undefined)) { - throw "Record not correctly loaded"; - } - } - setTimeout(function () {completion.resolve(records);}, 0); - } - if(to_get.length > 0) { - var rpc_promise = this._super(to_get, fields, function(records) { - _.each(records, function(record, index) { - var id = to_get[index]; - var cached = _.detect(self.cache, function(x) {return x.id === id;}); - if (!cached) { - self.cache.push({id: id, values: record}); - } else { - // I assume cache value is prioritary - _.defaults(cached.values, record); - } - }); - return_records(); - }); - $.when(rpc_promise).fail(function() {completion.reject();}); - } else { - return_records(); - } - return completion.promise(); - }, -}); - openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); @@ -1609,12 +1504,13 @@ openerp.base.form.SelectCreatePopup = openerp.base.BaseWidget.extend({ * - initial_view: form or search (default search) * - disable_multiple_selection * - alternative_form_view + * - auto_create (default true) */ select_element: function(model, options, domain, context) { this.model = model; this.domain = domain || []; this.context = context || {}; - this.options = options || {}; + this.options = _.defaults(options || {}, {"initial_view": "search", "auto_create": true}); this.initial_ids = this.options.initial_ids; jQuery(this.render()).dialog({title: '', modal: true, @@ -1623,9 +1519,9 @@ openerp.base.form.SelectCreatePopup = openerp.base.BaseWidget.extend({ }, start: function() { this._super(); - this.dataset = new openerp.base.DataSetSearch(this.session, this.model, + this.dataset = new openerp.base.ReadOnlyDataSetSearch(this.session, this.model, this.context, this.domain); - if ((this.options.initial_view || "search") == "search") { + if (this.options.initial_view == "search") { this.setup_search_view(); } else { // "form" this.new_object(); @@ -1675,6 +1571,16 @@ openerp.base.form.SelectCreatePopup = openerp.base.BaseWidget.extend({ }); this.searchview.start(); }, + on_create: function(data) { + debugger; + if (!this.options.auto_create) + return; + var self = this; + var wdataset = new openerp.base.DataSetSearch(this.session, this.model, this.context, this.domain); + wdataset.create(data, function(r) { + self.on_select_elements([r.result]); + }); + }, on_select_elements: function(element_ids) { }, on_click_element: function(ids) { @@ -1712,12 +1618,7 @@ openerp.base.form.SelectCreatePopup = openerp.base.BaseWidget.extend({ self.stop(); }); }); - this.view_form.on_created.add_last(function(r, success) { - if (r.result) { - var id = arguments[0].result; - self.on_select_elements([id]); - } - }); + this.dataset.on_create.add(this.on_create); this.view_form.do_show(); } }); From 6de6267db7002a91249032205cf8a0057bcfc87e Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 19:07:34 +0200 Subject: [PATCH 71/74] [imp] put correct behavior in creation popup bzr revid: nicolas.vanhoren@openerp.com-20110623170734-o7fab8axwupy6dwg --- addons/base/static/src/js/form.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 71ce2f5cbb4..cd022398355 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1412,13 +1412,15 @@ openerp.base.form.One2ManyListView = openerp.base.ListView.extend({ var pop = new openerp.base.form.SelectCreatePopup(null, self.o2m.view.session); pop.select_element(self.o2m.field.relation,{ initial_view: "form", - alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined + alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined, + auto_create: false }); - pop.on_select_elements.add(function(element_ids) { - var ids = self.o2m.dataset.ids; - _.each(element_ids, function(x) {if (!_.include(ids, x)) ids.push(x);}); - self.o2m.dataset.set_ids(ids); - self.o2m.reload_current_view(); + pop.on_create.add(function(data) { + self.o2m.dataset.create(data, function(r) { + self.o2m.dataset.set_ids(self.o2m.dataset.ids.concat([r.result])); + pop.stop(); + self.o2m.reload_current_view(); + }); }); } }); @@ -1572,7 +1574,6 @@ openerp.base.form.SelectCreatePopup = openerp.base.BaseWidget.extend({ this.searchview.start(); }, on_create: function(data) { - debugger; if (!this.options.auto_create) return; var self = this; From df6d64249d2ea8580d4e2a79f3ad4ee452302b0a Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 23 Jun 2011 19:27:37 +0200 Subject: [PATCH 72/74] [imp] added save to o2m bzr revid: nicolas.vanhoren@openerp.com-20110623172737-koryk7a8ecoobtt7 --- addons/base/static/src/js/form.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index cd022398355..aa69c539c00 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1396,8 +1396,10 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ }); }, get_value: function() { - var val = _.map(this.dataset.to_delete, function(v, k) {return [2, parseInt(k, 10)];}); - var val = val.concat(_.map(this.dataset.to_create, function(x) {return [0, 0, x];})); + var val = _.map(this.dataset.to_delete, function(v, k) {return [2, x.id];}); + val = val.concat(_.map(this.dataset.to_create, function(x) {return [0, 0, x.values];})); + val = val.concat(_.map(this.dataset.to_write, function(x) {return [1, x.id, x.values];})); + debugger; return val; }, validate: function() { From 227d5cd6550621a4b287b7e636abd48736a62abd Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Fri, 24 Jun 2011 05:00:11 +0000 Subject: [PATCH 73/74] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20110623045640-fkofiyjqqzf6hj6m bzr revid: launchpad_translations_on_behalf_of_openerp-20110624050011-am2yj6hmjdkpvdi2 --- addons/account_accountant/i18n/fi.po | 33 ++++ addons/base_calendar/i18n/tr.po | 18 +- addons/base_crypt/i18n/zh_CN.po | 77 ++++++++ addons/document_ftp/i18n/tr.po | 8 +- addons/hr/i18n/pt_BR.po | 17 +- addons/hr/i18n/tr.po | 254 +++++++++++++++------------ addons/mrp_repair/i18n/tr.po | 217 ++++++++++++++--------- addons/profile_tools/i18n/fi.po | 145 +++++++++++++++ addons/project_mailgate/i18n/fi.po | 100 +++++++++++ addons/project_mrp/i18n/fi.po | 133 ++++++++++++++ 10 files changed, 800 insertions(+), 202 deletions(-) create mode 100644 addons/account_accountant/i18n/fi.po create mode 100644 addons/base_crypt/i18n/zh_CN.po create mode 100644 addons/profile_tools/i18n/fi.po create mode 100644 addons/project_mailgate/i18n/fi.po create mode 100644 addons/project_mrp/i18n/fi.po diff --git a/addons/account_accountant/i18n/fi.po b/addons/account_accountant/i18n/fi.po new file mode 100644 index 00000000000..1e1c0a25072 --- /dev/null +++ b/addons/account_accountant/i18n/fi.po @@ -0,0 +1,33 @@ +# Finnish 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-22 05:51+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-23 04:56+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: account_accountant +#: model:ir.module.module,description:account_accountant.module_meta_information +msgid "" +"\n" +"This module gives the admin user the access to all the accounting features " +"like the journal\n" +"items and the chart of accounts.\n" +" " +msgstr "" + +#. module: account_accountant +#: model:ir.module.module,shortdesc:account_accountant.module_meta_information +msgid "Accountant" +msgstr "Kirjanpitäjä" diff --git a/addons/base_calendar/i18n/tr.po b/addons/base_calendar/i18n/tr.po index 2f343554c2f..ba228085c56 100644 --- a/addons/base_calendar/i18n/tr.po +++ b/addons/base_calendar/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-06-20 20:46+0000\n" +"PO-Revision-Date: 2011-06-23 19:26+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-06-21 04:37+0000\n" +"X-Launchpad-Export-Date: 2011-06-24 05:00+0000\n" "X-Generator: Launchpad (build 13168)\n" #. module: base_calendar @@ -925,7 +925,7 @@ msgstr "Yinele" msgid "" "Reference to the URIthat points to the directory information corresponding " "to the attendee." -msgstr "" +msgstr "Katılımcıyla ilgili dizin bilgisine yönlendiren URL ile ilişkilidir." #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 @@ -1166,6 +1166,8 @@ msgid "" "If the active field is set to true, it will allow you to hide the event " "alarm information without removing it." msgstr "" +"Etkin alan yanlış olarak ayarlıysa, etkinlik alarmını kaldırmadan " +"gizlemenizi sağlar." #. module: base_calendar #: field:calendar.event,recurrent_id:0 @@ -1253,6 +1255,8 @@ msgid "" "calendar component, than that provided by the " "\"SUMMARY\" property" msgstr "" +"Takvim bileşeninin tanımını \"ÖZET\" özelliğinden eldeedilenden daha tam " +"olarak belirtir." #. module: base_calendar #: view:calendar.event:0 @@ -1327,6 +1331,8 @@ msgstr "Muafşyet Kuralı" msgid "" "To specify the language for text values in aproperty or property parameter." msgstr "" +"Bir özellikteki ya da özellik parametresine ait metin değerlerinin dilini " +"belirler." #. module: base_calendar #: view:calendar.event:0 @@ -1668,6 +1674,12 @@ msgid "" " * Points to a procedure resource, which is invoked when " " the alarm is triggered for procedure." msgstr "" +"* Alarmın ses çalması için tetiklendiği durumuna benzeterek, Bir ses " +"kaynağını işaret eder.\n" +" * Bir epostaya mesal eki olarak gönderilmek istenen " +"dosya,\n" +" * Alarm işlem için tetiklendiğinde işlem kaynağını " +"işaret eder." #. module: base_calendar #: selection:base.calendar.set.exrule,byday:0 diff --git a/addons/base_crypt/i18n/zh_CN.po b/addons/base_crypt/i18n/zh_CN.po new file mode 100644 index 00000000000..ee8bd3df6f4 --- /dev/null +++ b/addons/base_crypt/i18n/zh_CN.po @@ -0,0 +1,77 @@ +# Chinese (Simplified) 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-22 08:19+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Chinese (Simplified) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-23 04:56+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: base_crypt +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "你不能同时登录两个用户!" + +#. 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 "用户无权操作所选择公司数据" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Please specify the password !" +msgstr "请指定密码!" + +#. module: base_crypt +#: model:ir.module.module,shortdesc:base_crypt.module_meta_information +msgid "Base - Password Encryption" +msgstr "Base - Password Encryption" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Error" +msgstr "错误" + +#. 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 "" +"这个模块在数据库里用密码散列代替原来的明文密码,防止任何人读取到原密码。\n" +"对于已存在在数据,当安装了base_crypt后,明文密码会在用户第一次登陆数据库的时候清除。\n" +"在安装了这个模块后将不能恢复已遗忘的用户密码,唯一的解决办法是通过管理员输入一个新密码。\n" +"注意:安装这个模块并不意味着你可以忽略基本安全措施,\n" +"除非你用了一个安全协议例如XML-RPCS,否则密码在网络仍然以非加密的形式传输(通过客户端)\n" +" " diff --git a/addons/document_ftp/i18n/tr.po b/addons/document_ftp/i18n/tr.po index cc03724641e..d629d255754 100644 --- a/addons/document_ftp/i18n/tr.po +++ b/addons/document_ftp/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:15+0000\n" -"PO-Revision-Date: 2011-06-20 20:45+0000\n" +"PO-Revision-Date: 2011-06-23 19:32+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-06-21 04:37+0000\n" +"X-Launchpad-Export-Date: 2011-06-24 05:00+0000\n" "X-Generator: Launchpad (build 13168)\n" #. module: document_ftp @@ -31,6 +31,10 @@ msgid "" "format is HOST:PORT and the default host (localhost) is only suitable for " "access from the server machine itself.." msgstr "" +"OpenERP sunucusunda son kullanıcıların erişebileceği ağ adresini belirtir. " +"Bu, ağ yapınıza ve yapılandırmasına bağlıdır ve yalnızca kullanıcılara " +"gösterilen ağları etkiler. Formatı HOST:PORT şeklindedir ve varsayılan " +"sunucu (localhost) yalnızca sunucu cihazından erişim için uygundur." #. module: document_ftp #: field:document.ftp.configuration,progress:0 diff --git a/addons/hr/i18n/pt_BR.po b/addons/hr/i18n/pt_BR.po index 001db4b97d7..0e3c61d5515 100644 --- a/addons/hr/i18n/pt_BR.po +++ b/addons/hr/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:15+0000\n" -"PO-Revision-Date: 2011-01-26 12:19+0000\n" -"Last-Translator: Vinicius Dittgen - Proge.com.br \n" +"PO-Revision-Date: 2011-06-22 23:24+0000\n" +"Last-Translator: Gustavo T \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:31+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-24 04:59+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: hr #: model:process.node,name:hr.process_node_openerpuser0 @@ -562,6 +562,13 @@ msgid "" " * HR Jobs\n" " " msgstr "" +"\n" +" Módulo de gestão de recursos humanos. Você pode gerenciar:\n" +" * Funcionários e hierarquias: você pode definir seu funcionário com um " +"usuário e exibir hierarquias\n" +" * Departamentos de RH\n" +" * Cargos de RH\n" +" " #. module: hr #: model:process.transition,note:hr.process_transition_contactofemployee0 @@ -569,6 +576,8 @@ msgid "" "In the Employee form, there are different kind of information like Contact " "information." msgstr "" +"No formulário de empregado, existem diferentes tipos de informação, como " +"contato, por exemplo." #. module: hr #: help:hr.job,expected_employees:0 diff --git a/addons/hr/i18n/tr.po b/addons/hr/i18n/tr.po index 5e0866fdf56..bc8f7f0427d 100644 --- a/addons/hr/i18n/tr.po +++ b/addons/hr/i18n/tr.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-10-30 12:04+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-06-23 19:33+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:31+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-24 04:59+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: hr #: model:process.node,name:hr.process_node_openerpuser0 @@ -25,17 +25,17 @@ msgstr "Openerp kullanıcısı" #: view:hr.job:0 #: field:hr.job,requirements:0 msgid "Requirements" -msgstr "" +msgstr "Gereksinimler" #. module: hr #: constraint:hr.department:0 msgid "Error! You can not create recursive departments." -msgstr "" +msgstr "Hata! Yinelenen bölümler oluşturamazsınız." #. module: hr #: model:process.transition,name:hr.process_transition_contactofemployee0 msgid "Link the employee to information" -msgstr "" +msgstr "Personeli danışmaya bağla" #. module: hr #: field:hr.employee,sinid:0 @@ -55,7 +55,7 @@ msgstr "İnsan Kaynakları" #: view:hr.employee:0 #: view:hr.job:0 msgid "Group By..." -msgstr "" +msgstr "Gruplandır..." #. module: hr #: model:ir.actions.act_window,help:hr.action_hr_job @@ -66,6 +66,11 @@ msgid "" "will be used in the recruitment process to evaluate the applicants for this " "job position." msgstr "" +"İş Durumları, işlerin ve gereksinimlerinin tanımlanması için kullanılır. Her " +"iş durumunda kullanılan personel sayısını ve gelecekte kaç personel " +"beklediğinizin kayıtlarını tutabilirsiniz. Bu iş durumu için başvuranların " +"değerlendirilmesi için seçme işleminde kullanmak üzere bir anket de " +"ekleyebilirsiniz." #. module: hr #: view:hr.employee:0 @@ -79,27 +84,27 @@ msgstr "Bölüm" #. module: hr #: help:hr.installer,hr_attendance:0 msgid "Simplifies the management of employee's attendances." -msgstr "" +msgstr "Personelin devam durumunu yönetmeyi basitleştirir." #. module: hr #: view:hr.job:0 msgid "Mark as Old" -msgstr "" +msgstr "Eski olarak İşaretle" #. module: hr #: view:hr.job:0 msgid "Jobs" -msgstr "" +msgstr "İşler" #. module: hr #: view:hr.job:0 msgid "In Recruitment" -msgstr "" +msgstr "Seçme İşleminde" #. module: hr #: view:hr.installer:0 msgid "title" -msgstr "" +msgstr "unvan" #. module: hr #: field:hr.department,company_id:0 @@ -112,22 +117,22 @@ msgstr "Firma" #. module: hr #: field:hr.job,no_of_recruitment:0 msgid "Expected in Recruitment" -msgstr "" +msgstr "Seçim için Bekleniyor" #. module: hr #: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_config msgid "Holidays" -msgstr "" +msgstr "Tatiller" #. module: hr #: help:hr.installer,hr_holidays:0 msgid "Tracks employee leaves, allocation requests and planning." -msgstr "" +msgstr "Personel izinlerini, tahsis istekleri ve planlamalrı izler" #. module: hr #: model:ir.model,name:hr.model_hr_employee_marital_status msgid "Employee Marital Status" -msgstr "" +msgstr "Personel Medeni Durumu" #. module: hr #: help:hr.employee,partner_id:0 @@ -135,42 +140,44 @@ msgid "" "Partner that is related to the current employee. Accounting transaction will " "be written on this partner belongs to employee." msgstr "" +"Geçerli personelle ilgili Paydaştır. Muhasebe işlemi personelle ilişkili bu " +"paydaşa yazılacaktır." #. module: hr #: model:process.transition,name:hr.process_transition_employeeuser0 msgid "Link a user to an employee" -msgstr "" +msgstr "Kullanıcıyı bir personele bağla" #. module: hr #: field:hr.installer,hr_contract:0 msgid "Employee's Contracts" -msgstr "" +msgstr "Personel Sözleşmeleri" #. module: hr #: help:hr.installer,hr_payroll:0 msgid "Generic Payroll system." -msgstr "" +msgstr "Genel Bordro Sistemi" #. module: hr #: view:hr.employee:0 msgid "My Departments Employee" -msgstr "" +msgstr "Bölümümdeki Personel" #. module: hr #: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_married msgid "Married" -msgstr "" +msgstr "Evli" #. module: hr #: constraint:hr.employee:0 msgid "" "Error ! You cannot select a department for which the employee is the manager." -msgstr "" +msgstr "Hata ! Personelin müdür olduğu bir bölümü seçemezsiniz." #. module: hr #: help:hr.employee,passport_id:0 msgid "Employee Passport Information" -msgstr "" +msgstr "Personel Pasaport Bilgisi" #. module: hr #: model:ir.actions.act_window,help:hr.open_module_tree_department @@ -179,16 +186,19 @@ msgid "" "to employees by departments: expenses and timesheet validation, leaves " "management, recruitments, etc." msgstr "" +"Firmanızın Bölüm Yapısı, bölümlere göre personelle ilgili belgelerin " +"yönetilmesinde kullanılır: giderler, zaman çizelgesi onayları, izin " +"yönetimi, seçme işlemlemleri, v.b" #. module: hr #: view:hr.employee:0 msgid "Position" -msgstr "" +msgstr "Durum" #. module: hr #: model:ir.actions.act_window,name:hr.action2 msgid "Employee Hierarchy" -msgstr "Personel Hiyerarşisi" +msgstr "Personel Sıradüzeni" #. module: hr #: model:process.transition,note:hr.process_transition_employeeuser0 @@ -196,43 +206,47 @@ msgid "" "The Related user field on the Employee form allows to link the OpenERP user " "(and her rights) to the employee." msgstr "" +"Personel formundaki İlişkili Kullanıcı alanı OpenERP kullanıcısının " +"personele bağlanmasını sağlar." #. module: hr #: view:hr.job:0 #: selection:hr.job,state:0 msgid "In Recruitement" -msgstr "" +msgstr "Seçim durumunda" #. module: hr #: field:hr.employee,identification_id:0 msgid "Identification No" -msgstr "" +msgstr "Kimlik No" #. module: hr #: field:hr.job,no_of_employee:0 msgid "No of Employee" -msgstr "" +msgstr "Personel No" #. module: hr #: selection:hr.employee,gender:0 msgid "Female" -msgstr "Bayan" +msgstr "Kadın" #. module: hr #: help:hr.installer,hr_timesheet_sheet:0 msgid "" "Tracks and helps employees encode and validate timesheets and attendances." msgstr "" +"Personelin zaman çizelgeleri ve devamlılıkları onaylamasını ve " +"şifrelendirmesini sağlar." #. module: hr #: field:hr.installer,hr_evaluation:0 msgid "Periodic Evaluations" -msgstr "" +msgstr "Süreli Değerlendirmeler" #. module: hr #: field:hr.installer,hr_timesheet_sheet:0 msgid "Timesheets" -msgstr "" +msgstr "Zaman Çizelgeleri" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_employee_tree @@ -247,12 +261,12 @@ msgstr "SGK Bilgisi" #. module: hr #: help:hr.job,no_of_employee:0 msgid "Number of employee with that job." -msgstr "" +msgstr "O işteki personel sayısı" #. module: hr #: field:hr.employee,work_phone:0 msgid "Work Phone" -msgstr "İş Telefon No." +msgstr "İş Telefonu" #. module: hr #: field:hr.employee.category,child_ids:0 @@ -264,12 +278,12 @@ msgstr "Alt Kategoriler" #: field:hr.job,description:0 #: model:ir.model,name:hr.model_hr_job msgid "Job Description" -msgstr "" +msgstr "İş Tanımı" #. module: hr #: field:hr.employee,work_location:0 msgid "Office Location" -msgstr "Ofis Lokasyonu" +msgstr "Ofis Konumu" #. module: hr #: view:hr.employee:0 @@ -282,12 +296,12 @@ msgstr "Personel" #. module: hr #: model:process.node,note:hr.process_node_employeecontact0 msgid "Other information" -msgstr "" +msgstr "Diğer Bilgiler" #. module: hr #: field:hr.employee,work_email:0 msgid "Work E-mail" -msgstr "" +msgstr "İş E-postası" #. module: hr #: field:hr.department,complete_name:0 @@ -298,7 +312,7 @@ msgstr "Adı" #. module: hr #: field:hr.employee,birthday:0 msgid "Date of Birth" -msgstr "" +msgstr "Doğum Tarihi" #. module: hr #: model:ir.ui.menu,name:hr.menu_hr_reporting @@ -308,19 +322,19 @@ msgstr "Raporlama" #. module: hr #: model:ir.model,name:hr.model_ir_actions_act_window msgid "ir.actions.act_window" -msgstr "" +msgstr "ir.actions.act_window" #. module: hr #: model:ir.actions.act_window,name:hr.open_board_hr msgid "Human Resources Dashboard" -msgstr "" +msgstr "İnsan Kaynakları Kontrol Paneli" #. module: hr #: view:hr.employee:0 #: field:hr.employee,job_id:0 #: view:hr.job:0 msgid "Job" -msgstr "" +msgstr "İş" #. module: hr #: view:hr.department:0 @@ -331,7 +345,7 @@ msgstr "Üyeler" #. module: hr #: model:ir.ui.menu,name:hr.menu_hr_configuration msgid "Configuration" -msgstr "Ayarlar" +msgstr "Yapılandırma" #. module: hr #: view:hr.installer:0 @@ -339,21 +353,23 @@ msgid "" "You can enhance the base HR Application by installing few HR-related " "functionalities." msgstr "" +"Bir kaç İK-ilişkili işlevsellik kurarak temel İK Uygulamasını " +"geliştirebilirsiniz." #. module: hr #: view:hr.employee:0 msgid "Categories" -msgstr "" +msgstr "Kategoriler" #. module: hr #: field:hr.job,expected_employees:0 msgid "Expected Employees" -msgstr "" +msgstr "Beklenen Personel" #. module: hr #: help:hr.employee,sinid:0 msgid "Social Insurance Number" -msgstr "" +msgstr "Sosyal Sigorta Numarası" #. module: hr #: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_divorced @@ -368,7 +384,7 @@ msgstr "Ana Kategori" #. module: hr #: constraint:hr.employee.category:0 msgid "Error ! You cannot create recursive Categories." -msgstr "" +msgstr "Hata ! Yinelenen Kategoriler oluşturamazsınız." #. module: hr #: view:hr.department:0 @@ -377,7 +393,7 @@ msgstr "" #: view:res.users:0 #: field:res.users,context_department_id:0 msgid "Departments" -msgstr "Departmanlar" +msgstr "Bölümler" #. module: hr #: model:process.node,name:hr.process_node_employeecontact0 @@ -387,23 +403,23 @@ msgstr "Personel İletişimi" #. module: hr #: view:board.board:0 msgid "My Board" -msgstr "" +msgstr "Kontrol Panelim" #. module: hr #: selection:hr.employee,gender:0 msgid "Male" -msgstr "Bay" +msgstr "Erkek" #. module: hr #: field:hr.installer,progress:0 msgid "Configuration Progress" -msgstr "" +msgstr "Yapılandırma İşlemi" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_categ_form #: model:ir.ui.menu,name:hr.menu_view_employee_category_form msgid "Categories of Employee" -msgstr "Personel Kategorisi" +msgstr "Personel Kategorileri" #. module: hr #: view:hr.employee.category:0 @@ -414,12 +430,12 @@ msgstr "Personel Kategorisi" #. module: hr #: field:hr.installer,config_logo:0 msgid "Image" -msgstr "" +msgstr "Resim" #. module: hr #: model:process.process,name:hr.process_process_employeecontractprocess0 msgid "Employee Contract" -msgstr "" +msgstr "Personel Sözleşmesi" #. module: hr #: help:hr.installer,hr_evaluation:0 @@ -427,21 +443,23 @@ msgid "" "Lets you create and manage the periodic evaluation and performance review of " "employees." msgstr "" +"Çalışanlarınızın süreli değerlendirme ve verimlilik incelemelerini " +"oluşturmanızı ve yönetmenizi sağlar." #. module: hr #: model:ir.model,name:hr.model_hr_department msgid "hr.department" -msgstr "" +msgstr "ik.bölümü" #. module: hr #: help:hr.employee,parent_id:0 msgid "It is linked with manager of Department" -msgstr "" +msgstr "Bölümün Müdürüne bağlanmıştır" #. module: hr #: field:hr.installer,hr_recruitment:0 msgid "Recruitment Process" -msgstr "" +msgstr "Seçme İşlemi" #. module: hr #: field:hr.employee,category_ids:0 @@ -463,11 +481,22 @@ msgid "" "they will be able to enter time through the system. In the note tab, you can " "enter text data that should be recorded for a specific employee." msgstr "" +"Burada, çalışanlar oluşturarak ve onları sistemde belirli niteliklere " +"atayarak iş gücünüzü yönetebilirsiniz. Çalışanlarınızla ilgili bilgileri " +"elde edin ve onlarla ilgili kayıt edilmesi gereken her şeyin kaydını tutun. " +"Personel bilgisi sekmesi, personelin kimlik bilgilerini elde etmenizi " +"sağlar. Kategori sekmesi, şirket içindeki durumlarına ve etkinliklerine " +"bağlı olarak personelinizi ilgili çaşıan kategorisine atamanıza fırsat " +"sağlar. Bir kategori şirket içinde veya bir bölümde bir kıdemlilik " +"kategorisi olabilir. Zaman Çizelgesi sekmesi onların sistemden zaman " +"girişlerini yapabilecekleri, belirli bir zaman çizelgesine ve analitik " +"yevmiyeye atamanızı sağlar. Not sekmesinde, belirli bir çalışan için kayıt " +"etmeniz gereken bir metin girmenizi sağlar." #. module: hr #: help:hr.employee,bank_account_id:0 msgid "Employee bank salary account" -msgstr "" +msgstr "Personel maaş banka hesabı" #. module: hr #: field:hr.department,note:0 @@ -477,7 +506,7 @@ msgstr "Not" #. module: hr #: constraint:res.users:0 msgid "The chosen company is not in the allowed companies for this user" -msgstr "" +msgstr "Seçilen firma bu kullanıcı için izin verilen şirketler arasında yok" #. module: hr #: view:hr.employee:0 @@ -492,7 +521,7 @@ msgstr "İş Adresi" #. module: hr #: model:ir.actions.act_window,name:hr.open_board_hr_manager msgid "HR Manager Dashboard" -msgstr "" +msgstr "İK Yönetici Kontrol Paneli" #. module: hr #: view:hr.employee:0 @@ -502,7 +531,7 @@ msgstr "Durum" #. module: hr #: view:hr.installer:0 msgid "Configure" -msgstr "" +msgstr "Yapılandırma" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_categ_tree @@ -513,12 +542,12 @@ msgstr "Kategori Yapısı" #. module: hr #: field:hr.employee,partner_id:0 msgid "unknown" -msgstr "" +msgstr "bilinmeyen" #. module: hr #: field:hr.installer,hr_holidays:0 msgid "Holidays / Leaves Management" -msgstr "" +msgstr "Tatil / İzin Yöneticisi" #. module: hr #: field:hr.employee,ssnid:0 @@ -528,12 +557,12 @@ msgstr "SGK No" #. module: hr #: view:hr.employee:0 msgid "Active" -msgstr "Aktif" +msgstr "Etkin" #. module: hr #: constraint:hr.employee:0 msgid "Error ! You cannot create recursive Hierarchy of Employees." -msgstr "Hata ! You cannot create recursive Hierarchy of Employees." +msgstr "Hata ! Yinelemeli Personel Sıradizini yaratamazsınız." #. module: hr #: view:hr.department:0 @@ -551,39 +580,46 @@ msgid "" " * HR Jobs\n" " " msgstr "" +"\n" +" İnsan kaynakları yönetimi modülü. Şunları yönetebilirsiniz:\n" +" * Çalışanlar ve sıradüzeni : Çalışanlarınızı Kullanıcı ve sıradüzenleri " +"ile birlikte tanımlayabilirsiniz\n" +" * İK Bölümleri\n" +" * İK İşleri\n" +" " #. module: hr #: model:process.transition,note:hr.process_transition_contactofemployee0 msgid "" "In the Employee form, there are different kind of information like Contact " "information." -msgstr "" +msgstr "Personel formunda sözleşme bilgileri gibi farklı bilgiler vardır." #. module: hr #: help:hr.job,expected_employees:0 msgid "Required number of Employees in total for that job." -msgstr "" +msgstr "O iş için gerekli toplam Personel sayısı" #. module: hr #: selection:hr.job,state:0 msgid "Old" -msgstr "" +msgstr "Eski" #. module: hr #: field:hr.employee.marital.status,description:0 msgid "Status Description" -msgstr "" +msgstr "Durum Açıklaması" #. module: hr #: sql_constraint:res.users:0 msgid "You can not have two users with the same login !" -msgstr "" +msgstr "Aynı kullanıcı adı ile iki kullanıcı oluşturamazsınız !" #. module: hr #: view:hr.job:0 #: field:hr.job,state:0 msgid "State" -msgstr "" +msgstr "Durum" #. module: hr #: field:hr.employee,marital:0 @@ -597,42 +633,42 @@ msgstr "Medeni Durumu" #. module: hr #: help:hr.installer,hr_recruitment:0 msgid "Helps you manage and streamline your recruitment process." -msgstr "" +msgstr "Eleman seçme işleminizi yönetmenizi ve yürütmenizi sağlar." #. module: hr #: model:process.node,note:hr.process_node_employee0 msgid "Employee form and structure" -msgstr "" +msgstr "Personel formu ve yapısı" #. module: hr #: field:hr.employee,photo:0 msgid "Photo" -msgstr "" +msgstr "Fotoğraf" #. module: hr #: model:ir.model,name:hr.model_res_users msgid "res.users" -msgstr "" +msgstr "res.users" #. module: hr #: field:hr.installer,hr_payroll_account:0 msgid "Payroll Accounting" -msgstr "" +msgstr "Bordro Muhasebesi" #. module: hr #: view:hr.employee:0 msgid "Personal Information" -msgstr "Personel Bilgileri" +msgstr "Kişisel Bilgiler" #. module: hr #: field:hr.employee,passport_id:0 msgid "Passport No" -msgstr "" +msgstr "Pasaport No" #. module: hr #: view:res.users:0 msgid "Current Activity" -msgstr "" +msgstr "Güncel Etkinlik" #. module: hr #: help:hr.installer,hr_expense:0 @@ -640,21 +676,23 @@ msgid "" "Tracks and manages employee expenses, and can automatically re-invoice " "clients if the expenses are project-related." msgstr "" +"Personel harcamalarını izler ve yönetir, ve eğer harcamalar projeyle ilgili " +"ise müşteriler otomatik olarak yeniden faturalandırılabilir." #. module: hr #: view:hr.job:0 msgid "Current" -msgstr "" +msgstr "Geçerli" #. module: hr #: field:hr.department,parent_id:0 msgid "Parent Department" -msgstr "" +msgstr "Ana Bölüm" #. module: hr #: view:hr.employee.category:0 msgid "Employees Categories" -msgstr "Personel Kategorisi" +msgstr "Personel Kategorileri" #. module: hr #: field:hr.employee,address_home_id:0 @@ -665,54 +703,54 @@ msgstr "Ev Adresi" #: field:hr.installer,hr_attendance:0 #: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config msgid "Attendances" -msgstr "" +msgstr "Devamlılık" #. module: hr #: view:hr.employee.marital.status:0 #: view:hr.job:0 msgid "Description" -msgstr "" +msgstr "Açıklama" #. module: hr #: help:hr.installer,hr_contract:0 msgid "Extends employee profiles to help manage their contracts." -msgstr "" +msgstr "Sözleşmelerinin yönetimi için personel profillerini açar." #. module: hr #: field:hr.installer,hr_payroll:0 msgid "Payroll" -msgstr "" +msgstr "Bordro" #. module: hr #: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_single msgid "Single" -msgstr "" +msgstr "Bekar" #. module: hr #: field:hr.job,name:0 msgid "Job Name" -msgstr "" +msgstr "İş Adı" #. module: hr #: view:hr.job:0 #: selection:hr.job,state:0 msgid "In Position" -msgstr "" +msgstr "Durumunda" #. module: hr #: field:hr.employee,mobile_phone:0 msgid "Mobile" -msgstr "" +msgstr "Cep" #. module: hr #: view:hr.department:0 msgid "department" -msgstr "" +msgstr "bölüm" #. module: hr #: field:hr.employee,country_id:0 msgid "Nationality" -msgstr "Uyruk" +msgstr "Uyruğu" #. module: hr #: view:hr.department:0 @@ -724,23 +762,23 @@ msgstr "Notlar" #. module: hr #: model:ir.model,name:hr.model_hr_installer msgid "hr.installer" -msgstr "" +msgstr "ik.kurucu" #. module: hr #: view:board.board:0 msgid "HR Manager Board" -msgstr "" +msgstr "İK Yönetim Paneli" #. module: hr #: field:hr.employee,resource_id:0 msgid "Resource" -msgstr "" +msgstr "Kaynak" #. module: hr #: view:hr.installer:0 #: model:ir.actions.act_window,name:hr.action_hr_installer msgid "Human Resources Application Configuration" -msgstr "" +msgstr "İnsan Kaynakları Uygulama Yapılandırması" #. module: hr #: field:hr.employee,gender:0 @@ -761,49 +799,49 @@ msgstr "Personeller" #. module: hr #: field:hr.employee,bank_account_id:0 msgid "Bank Account" -msgstr "" +msgstr "Banka Hesabı" #. module: hr #: field:hr.department,name:0 msgid "Department Name" -msgstr "" +msgstr "Bölüm Adı" #. module: hr #: help:hr.employee,ssnid:0 msgid "Social Security Number" -msgstr "" +msgstr "Sosyal Güvenlik Numarası" #. module: hr #: model:process.node,note:hr.process_node_openerpuser0 msgid "Creation of a OpenERP user" -msgstr "" +msgstr "OpenERP kullanıcısı Oluşturma" #. module: hr #: field:hr.department,child_ids:0 msgid "Child Departments" -msgstr "Alt Departmanlar" +msgstr "Alt Bölümler" #. module: hr #: model:ir.actions.act_window,name:hr.action_hr_job #: model:ir.ui.menu,name:hr.menu_hr_job msgid "Job Positions" -msgstr "" +msgstr "İş Durumları" #. module: hr #: view:hr.employee:0 #: field:hr.employee,coach_id:0 msgid "Coach" -msgstr "" +msgstr "Çalıştırıcı" #. module: hr #: view:hr.installer:0 msgid "Configure Your Human Resources Application" -msgstr "" +msgstr "İnsan Kaynakları Uygulamanızı yapılandırın" #. module: hr #: field:hr.installer,hr_expense:0 msgid "Expenses" -msgstr "" +msgstr "Giderler" #. module: hr #: field:hr.department,manager_id:0 @@ -815,17 +853,17 @@ msgstr "Yönetici" #. module: hr #: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_widower msgid "Widower" -msgstr "" +msgstr "Dul" #. module: hr #: help:hr.installer,hr_payroll_account:0 msgid "Generic Payroll system Integrated with Accountings." -msgstr "" +msgstr "Muhasebe ile bütünleşik Genel Bordro sistemi." #. module: hr #: field:hr.employee,child_ids:0 msgid "Subordinates" -msgstr "" +msgstr "Emrindekiler" #~ msgid "Invalid XML for View Architecture!" #~ msgstr "Görüntüleme mimarisi için Geçersiz XML" diff --git a/addons/mrp_repair/i18n/tr.po b/addons/mrp_repair/i18n/tr.po index 03e1833a574..73051f4a724 100644 --- a/addons/mrp_repair/i18n/tr.po +++ b/addons/mrp_repair/i18n/tr.po @@ -7,19 +7,19 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-09-09 07:21+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2011-06-23 20:16+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:38+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-24 04:59+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: mrp_repair #: view:mrp.repair:0 msgid "Fees Line" -msgstr "" +msgstr "Ücret Kallemleri" #. module: mrp_repair #: help:mrp.repair,state:0 @@ -35,6 +35,17 @@ msgid "" "* The 'Done' state is set when repairing is completed. \n" "* The 'Cancelled' state is used when user cancel repair order." msgstr "" +" * 'Taslak' durumu, bir kullanıcı yeni ve onaylanmamış bir onarım siparişi " +"girerken kullanılır. \n" +"* 'Onaylı' durumu, bir kullanıcı bir onarım siparişini onaylarken " +"kullanılır. \n" +"* 'Onarıma Hazır' durumu, kullanıcı onarıma başlarken kullanılır, kullanıcı " +"ancak onarım siparişi onaylandıktan sonra onarıma başlayabilir. " +"\n" +"* 'Faturalandırılacak' durumu, onarımdan önce ya da sonra fatura oluşturmak " +"için kullanılır. \n" +"* 'Bitti' durumu, onarım bittiğinde kullanılır. \n" +"* 'İptal' durumu, onarım siparişi iptal edildiğinde kullanılır." #. module: mrp_repair #: field:mrp.repair.line,move_id:0 @@ -50,11 +61,16 @@ msgid "" "date on the production lot in order to know if whether the repair should be " "invoiced to the customer or not." msgstr "" +"Onarım siparişleri ürün onarımlarınızı düzenlemenizi sağlar. Bir onarım " +"siparişinde, kaldırılacak bileşenleri ayrıntılayabilir, farklı işlemler için " +"harcadığınız süreleri ekleyebilir, çıkarabilir ve kayıt edebilirsiniz. " +"Onarım siparişi, müşteriye kesilip kesilmeyeceğini belirlemek için ürün " +"partisine ait garanti tarihini kullanır." #. module: mrp_repair #: view:mrp.repair:0 msgid "Group By..." -msgstr "" +msgstr "Şuna göre grupla" #. module: mrp_repair #: view:mrp.repair:0 @@ -69,18 +85,21 @@ msgid "" "that you can select the locations in the Info tab, if you have the extended " "view." msgstr "" +"Bu kutuyu, ürün onarılır onarılmaz teslimatı yapmak isterseniz işaretleyin. " +"İşaretlenirse, seçilen ürün için toplama oluşturulacaktır. Genişletilmiş " +"görünümdeyseniz, Bilgi Sekmesinde konumları seçebileceğinize dikkat edin." #. module: mrp_repair #: model:ir.actions.act_window,name:mrp_repair.action_cancel_repair #: view:mrp.repair.cancel:0 msgid "Cancel Repair Order" -msgstr "" +msgstr "Onarım Siparişini İptal Et" #. module: mrp_repair #: field:mrp.repair.fee,to_invoice:0 #: field:mrp.repair.line,to_invoice:0 msgid "To Invoice" -msgstr "Fatura Adresi" +msgstr "Faturalandırılacak" #. module: mrp_repair #: report:repair.order:0 @@ -90,18 +109,18 @@ msgstr "Yazdırma Tarihi" #. module: mrp_repair #: field:mrp.repair.make_invoice,group:0 msgid "Group by partner invoice address" -msgstr "Cari Fatura Adreslerine göre Gruplandı" +msgstr "Paydaş Fatura Adreslerine göre Gruplandır" #. 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 "" +msgstr "Ücretlerde tanımlanmış ürün yok!" #. module: mrp_repair #: view:mrp.repair:0 msgid "Set to Draft" -msgstr "Taslak olarak Ayarla" +msgstr "Taslağa Ayarla" #. module: mrp_repair #: selection:mrp.repair,state:0 @@ -118,13 +137,13 @@ msgstr "Teslimat Adresi" #: model:ir.model,name:mrp_repair.model_mrp_repair_make_invoice #: view:mrp.repair:0 msgid "Make Invoice" -msgstr "" +msgstr "Fatura Oluştur" #. module: mrp_repair #: field:mrp.repair.fee,price_subtotal:0 #: field:mrp.repair.line,price_subtotal:0 msgid "Subtotal" -msgstr "Alt Toplam" +msgstr "Ara Toplam" #. module: mrp_repair #: report:repair.order:0 @@ -134,12 +153,12 @@ msgstr "Fatura Adresi:" #. module: mrp_repair #: field:mrp.repair,guarantee_limit:0 msgid "Guarantee limit" -msgstr "Garanti limiti" +msgstr "Garanti sınırı" #. module: mrp_repair #: view:mrp.repair:0 msgid "Notes" -msgstr "" +msgstr "Notlar" #. module: mrp_repair #: model:ir.module.module,description:mrp_repair.module_meta_information @@ -154,13 +173,22 @@ msgid "" " * Repair quotation report\n" " * Notes for the technician and for the final customer\n" msgstr "" +"\n" +" Amaç, bütün ürün onarımlarını yapmak için tam bir modül elde " +"etmektir. Aşağıdaki konular bu modülün kapsamındadır:\n" +" * Onarımdaki ürünleri ekle/kaldır\n" +" * Stokları etkile\n" +" * Faturalama (ürünler ve/veya hizmetler)\n" +" * Garanti kavramı\n" +" * Onarım teklifi raporu\n" +" * Teknisyen ve son müşteri için notlar\n" #. module: mrp_repair #: field:mrp.repair,amount_tax:0 #: field:mrp.repair.fee,tax_id:0 #: field:mrp.repair.line,tax_id:0 msgid "Taxes" -msgstr "Vergi" +msgstr "Vergiler" #. module: mrp_repair #: report:repair.order:0 @@ -168,10 +196,10 @@ msgid "Net Total :" msgstr "Net Toplam :" #. module: mrp_repair -#: code:addons/mrp_repair/mrp_repair.py:427 +#: code:addons/mrp_repair/mrp_repair.py:430 #, python-format msgid "Warning !" -msgstr "" +msgstr "Uyarı !" #. module: mrp_repair #: report:repair.order:0 @@ -181,7 +209,7 @@ msgstr "KDV" #. module: mrp_repair #: view:mrp.repair:0 msgid "Operations" -msgstr "Operasyonlar" +msgstr "İşlemler" #. module: mrp_repair #: field:mrp.repair,move_id:0 @@ -189,16 +217,16 @@ msgid "Move" msgstr "Hareket" #. 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 "" +msgstr "Onarım formundan bir Paydaş Adresi seçmelisiniz !" #. module: mrp_repair #: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree #: model:ir.ui.menu,name:mrp_repair.menu_repair_order msgid "Repair Orders" -msgstr "Onarım Emirleri" +msgstr "Onarım Siparişleri" #. module: mrp_repair #: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair @@ -208,13 +236,13 @@ msgstr "Teklif / Sipariş" #. module: mrp_repair #: view:mrp.repair:0 msgid "Extra Info" -msgstr "Extra Bilgi" +msgstr "Ek Bilgi" #. module: mrp_repair #: field:mrp.repair.fee,repair_id:0 #: field:mrp.repair.line,repair_id:0 msgid "Repair Order Reference" -msgstr "" +msgstr "Onarım Siparişi Referansı" #. module: mrp_repair #: selection:mrp.repair.line,state:0 @@ -222,10 +250,10 @@ msgid "Draft" msgstr "Taslak" #. 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 "" +msgstr "\"%s\" Paydaşı için tanımlanmış bir hesap yok." #. module: mrp_repair #: view:mrp.repair:0 @@ -237,33 +265,34 @@ msgstr "Onaylandı" #. module: mrp_repair #: view:mrp.repair:0 msgid "Repairs order" -msgstr "Onarım Emri" +msgstr "Onarım Siparişi" #. module: mrp_repair #: report:repair.order:0 msgid "Repair Order N° :" -msgstr "Onarım Emri N° :" +msgstr "Onarım Siparişi N° :" #. module: mrp_repair #: field:mrp.repair,prodlot_id:0 +#: field:mrp.repair.line,prodlot_id:0 #: report:repair.order:0 msgid "Lot Number" -msgstr "Lot Numarası" +msgstr "Parti Numarası" #. module: mrp_repair #: field:mrp.repair,fees_lines:0 msgid "Fees Lines" -msgstr "" +msgstr "Ücret Kalemleri" #. module: mrp_repair #: field:mrp.repair.line,type:0 msgid "Type" -msgstr "Tipi" +msgstr "Tür" #. module: mrp_repair #: report:repair.order:0 msgid "Fees Line(s)" -msgstr "" +msgstr "Ücret Kalemi(leri)" #. module: mrp_repair #: selection:mrp.repair,state:0 @@ -276,17 +305,17 @@ msgid "Shipping address :" msgstr "Sevk Adresi :" #. 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 "" +msgstr "Hata !" #. module: mrp_repair #: field:mrp.repair.line,product_uom_qty:0 msgid "Quantity (UoM)" -msgstr "Miktar (Birim)" +msgstr "Miktar (Ölçü Birimi)" #. module: mrp_repair #: help:mrp.repair.line,state:0 @@ -299,6 +328,14 @@ msgid "" " \n" "* The 'Cancelled' state is set automatically when user cancel repair order." msgstr "" +" * 'Taslak' durumu, onarım siparişi taslak durumundayken otomatik olarak " +"ayarlanır. \n" +"* 'Onaylı' durumu, onarım siparişi onaylı durumdayken otomatik olarak " +"ayarlanır. \n" +"* 'Done' durumu, onarım siparişi tamamlandığında otomatik olarak ayarlanır. " +" \n" +"* 'Cancelled' durumu, kullanıcı onarım siparişini iptal ettiğinde otomatik " +"olarak ayarlanır." #. module: mrp_repair #: report:repair.order:0 @@ -311,6 +348,8 @@ msgid "" "This operation will cancel the Repair process, but will not cancel it's " "Invoice. Do you want to continue?" msgstr "" +"Bu eylem Onarım işlemini iptal edecektir ama faturasını iptal etmeyecektir. " +"Devam etmek istiyor musunuz?" #. module: mrp_repair #: field:mrp.repair,pricelist_id:0 @@ -327,17 +366,17 @@ msgstr "Teklif Notları" #: code:addons/mrp_repair/wizard/cancel_repair.py:49 #, python-format msgid "Warning!" -msgstr "" +msgstr "Uyarı!" #. module: mrp_repair #: view:mrp.repair:0 msgid "Search Reair Orders" -msgstr "" +msgstr "Onarım Siparişi Ara" #. module: mrp_repair #: report:repair.order:0 msgid "(Add)" -msgstr "" +msgstr "(Ekle)" #. module: mrp_repair #: model:ir.model,name:mrp_repair.model_mrp_repair_line @@ -349,7 +388,7 @@ msgstr "Onarım Kalemi" #: view:mrp.repair:0 #: field:mrp.repair,partner_id:0 msgid "Partner" -msgstr "Ortak" +msgstr "Paydaş" #. module: mrp_repair #: field:mrp.repair,invoice_method:0 @@ -364,7 +403,7 @@ msgstr "Onarıldı" #. module: mrp_repair #: model:ir.module.module,shortdesc:mrp_repair.module_meta_information msgid "Products Repairs Module - Manage All products Repairs" -msgstr "" +msgstr "Ürün Onarımları Modülü - Bütün ürün Onarımlarını Yönet" #. module: mrp_repair #: field:mrp.repair.fee,invoice_line_id:0 @@ -385,7 +424,7 @@ msgstr "Onarım Öncesi" #. module: mrp_repair #: field:mrp.repair,location_id:0 msgid "Current Location" -msgstr "Geçerli Lokasyon" +msgstr "Geçerli Konum" #. module: mrp_repair #: view:mrp.repair.cancel:0 @@ -402,7 +441,7 @@ msgstr "Faturalandı" #. module: mrp_repair #: view:mrp.repair.cancel:0 msgid "No" -msgstr "Hayır" +msgstr "No" #. module: mrp_repair #: view:mrp.repair.make_invoice:0 @@ -412,78 +451,78 @@ msgstr "Faturaları Oluştur" #. module: mrp_repair #: report:repair.order:0 msgid "(Remove)" -msgstr "" +msgstr "(Kaldır)" #. module: mrp_repair #: selection:mrp.repair.line,type:0 msgid "Add" -msgstr "" +msgstr "Ekle" #. module: mrp_repair #: view:mrp.repair.make_invoice:0 msgid "Do you really want to create the invoice(s) ?" -msgstr "" +msgstr "Gerçekten fatura(ları) oluşturmak istiyor musunuz?" #. module: mrp_repair #: field:mrp.repair,name:0 msgid "Repair Reference" -msgstr "" +msgstr "Onarım Referansı" #. module: mrp_repair #: model:ir.model,name:mrp_repair.model_mrp_repair msgid "Repair Order" -msgstr "" +msgstr "Onarım Siparişi" #. module: mrp_repair #: selection:mrp.repair,state:0 msgid "Under Repair" -msgstr "Onarımdakiler" +msgstr "Onarımda" #. module: mrp_repair #: view:mrp.repair:0 msgid "Ready To Repair" -msgstr "" +msgstr "Onarıma Hazır" #. module: mrp_repair #: field:mrp.repair,amount_untaxed:0 msgid "Untaxed Amount" -msgstr "Tutar" +msgstr "Vergisiz Tutar" #. module: mrp_repair #: report:repair.order:0 msgid "Guarantee Limit" -msgstr "Garanti Limiti" +msgstr "Garanti Sınırı" #. module: mrp_repair #: field:mrp.repair,default_address_id:0 msgid "unknown" -msgstr "" +msgstr "bilinmeyen" #. module: mrp_repair #: field:mrp.repair,product_id:0 #: report:repair.order:0 msgid "Product to Repair" -msgstr "Ürün Onarımı" +msgstr "Onarılacak Ürün" #. module: mrp_repair #: report:repair.order:0 msgid "N° :" -msgstr "" +msgstr "N° :" #. module: mrp_repair #: help:mrp.repair,pricelist_id:0 msgid "The pricelist comes from the selected partner, by default." -msgstr "" +msgstr "Fiyat Listesi, varsayılan olarak seçilen paydaşa aittir." #. module: mrp_repair #: view:mrp.repair:0 msgid "Date" -msgstr "" +msgstr "Tarih" #. module: mrp_repair #: model:ir.model,name:mrp_repair.model_mrp_repair_fee msgid "Repair Fees Line" -msgstr "" +msgstr "Onarım Ücretleri Kalemi" #. module: mrp_repair #: selection:mrp.repair,state:0 @@ -498,7 +537,7 @@ msgstr "Hesapla" #. module: mrp_repair #: view:mrp.repair:0 msgid "Confirm Repair" -msgstr "Düzeltmeyi Onayla" +msgstr "Onarımı Onayla" #. module: mrp_repair #: report:repair.order:0 @@ -511,16 +550,16 @@ msgid "End Repair" msgstr "Onarım Bitir" #. 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 "" +msgstr "\"%s\" Ürünü için tanımlı hesap yok." #. module: mrp_repair #: view:mrp.repair:0 msgid "Quotations" -msgstr "" +msgstr "Teklifler" #. module: mrp_repair #: field:mrp.repair.fee,product_uom_qty:0 @@ -538,7 +577,7 @@ msgstr "Onarımı Başlat" #: field:mrp.repair,state:0 #: field:mrp.repair.line,state:0 msgid "State" -msgstr "" +msgstr "Durum" #. module: mrp_repair #: view:mrp.repair:0 @@ -566,6 +605,10 @@ msgid "" "operation and fee you will add will be set as 'not to invoiced' by default. " "Note that you can change manually afterwards." msgstr "" +"Garanti sınırı şöyle hesaplanır: son işlem tarihi + seçilen ürüne ait " +"tanımlı garanti. Eğer geçerli tarih garanti sınırının altındaysa, " +"ekleyeceğiniz her işlem ve ücret varsayılan olarak faturalandırılmayacak " +"olarak işaretlenir. Daha sonra el ile değiştirebileceğinizi unutmayın." #. module: mrp_repair #: field:mrp.repair,invoice_id:0 @@ -575,18 +618,18 @@ msgstr "Fatura" #. module: mrp_repair #: view:mrp.repair:0 msgid "Fees" -msgstr "" +msgstr "Ücretler" #. module: mrp_repair #: selection:mrp.repair,state:0 #: view:mrp.repair.make_invoice:0 msgid "Cancel" -msgstr "İptal" +msgstr "Vazgeç" #. module: mrp_repair #: field:mrp.repair.line,location_dest_id:0 msgid "Dest. Location" -msgstr "Hedef Lokasyon" +msgstr "Hedef Konum" #. module: mrp_repair #: report:repair.order:0 @@ -596,12 +639,12 @@ msgstr "Operasyon Kalemi (leri)" #. module: mrp_repair #: view:mrp.repair:0 msgid "History" -msgstr "Geçmiş Bilgisi" +msgstr "Geçmiş" #. module: mrp_repair #: field:mrp.repair,location_dest_id:0 msgid "Delivery Location" -msgstr "Teslimat Lokasyonu" +msgstr "Teslimat Konumu" #. module: mrp_repair #: help:mrp.repair,invoice_method:0 @@ -610,11 +653,14 @@ msgid "" "selected is different from 'No Invoice', it also allow you to select the " "pricelist and invoicing address." msgstr "" +"Bu alan, sipariş emrine ait işakışını değiştirmenizi sağlar. Seçilen değer " +"'Faturasız' dan farklı ise, fiyat listesi ve fatura adresi seçmenize izin " +"verir." #. module: mrp_repair #: view:mrp.repair.make_invoice:0 msgid "Create Invoice" -msgstr "" +msgstr "Fatura Oluştur" #. module: mrp_repair #: field:mrp.repair.fee,name:0 @@ -626,12 +672,12 @@ msgstr "Açıklama" #. module: mrp_repair #: field:mrp.repair,operations:0 msgid "Operation Lines" -msgstr "Operasyon Kalemleri" +msgstr "İşlem Kalemleri" #. module: mrp_repair #: view:mrp.repair:0 msgid "invoiced" -msgstr "" +msgstr "faturalanmış" #. module: mrp_repair #: view:mrp.repair:0 @@ -643,7 +689,7 @@ msgstr "Ürün" #. module: mrp_repair #: view:mrp.repair:0 msgid "Invoice Corrected" -msgstr "" +msgstr "Fatura Düzeltildi" #. module: mrp_repair #: report:repair.order:0 @@ -653,13 +699,13 @@ msgstr "Fiyat" #. module: mrp_repair #: field:mrp.repair,deliver_bool:0 msgid "Deliver" -msgstr "Teslimat" +msgstr "Teslim Et" #. module: mrp_repair #: view:mrp.repair:0 #: field:mrp.repair,internal_notes:0 msgid "Internal Notes" -msgstr "Dahili Notlar" +msgstr "İç Notlar" #. module: mrp_repair #: report:repair.order:0 @@ -669,24 +715,24 @@ msgstr "Vergi:" #. module: mrp_repair #: field:mrp.repair,picking_id:0 msgid "Picking" -msgstr "" +msgstr "Toplama" #. module: mrp_repair #: view:mrp.repair:0 msgid "Untaxed amount" -msgstr "Tutar" +msgstr "Vergisiz Tutar" #. module: mrp_repair #: code:addons/mrp_repair/wizard/cancel_repair.py:41 #, python-format msgid "Active ID is not Found" -msgstr "" +msgstr "Etkin No Bulunmadı" #. module: mrp_repair #: code:addons/mrp_repair/wizard/cancel_repair.py:49 #, python-format msgid "Repair order is not invoiced." -msgstr "" +msgstr "Onarım siparişi faturanladırılmamış" #. module: mrp_repair #: view:mrp.repair:0 @@ -696,12 +742,12 @@ msgstr "Toplam Tutar" #. module: mrp_repair #: view:mrp.repair:0 msgid "UoM" -msgstr "Birim" +msgstr "Ölçü Birimi" #. module: mrp_repair #: selection:mrp.repair.line,type:0 msgid "Remove" -msgstr "" +msgstr "Kaldır" #. module: mrp_repair #: field:mrp.repair.fee,product_uom:0 @@ -750,6 +796,7 @@ msgstr "Durumlar" msgid "" "This field allow you to choose the parner that will be invoiced and delivered" msgstr "" +"Bu alan faturalandırılacak ve teslimat yapılacak paydaşı seçmenizi sağlar" #. module: mrp_repair #: field:mrp.repair,amount_total:0 @@ -762,10 +809,10 @@ msgid "Ready to Repair" msgstr "Onarıma Hazır" #. 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 "" +msgstr "Paydaş Yok !" #~ msgid "Invalid XML for View Architecture!" #~ msgstr "Görüntüleme mimarisi için Geçersiz XML" diff --git a/addons/profile_tools/i18n/fi.po b/addons/profile_tools/i18n/fi.po new file mode 100644 index 00000000000..54edf5dbbbd --- /dev/null +++ b/addons/profile_tools/i18n/fi.po @@ -0,0 +1,145 @@ +# Finnish 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-22 09:37+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-23 04:56+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: profile_tools +#: help:misc_tools.installer,idea:0 +msgid "Promote ideas of the employees, votes and discussion on best ideas." +msgstr "" +"Edistää työntekijöiden ideoita, äänestystä ja keskustelua parhaista ideoista." + +#. module: profile_tools +#: help:misc_tools.installer,share:0 +msgid "" +"Allows you to give restricted access to your OpenERP documents to external " +"users, such as customers, suppliers, or accountants. You can share any " +"OpenERP Menu such as your project tasks, support requests, invoices, etc." +msgstr "" + +#. module: profile_tools +#: help:misc_tools.installer,lunch:0 +msgid "A simple module to help you to manage Lunch orders." +msgstr "yksinkertainen moduuli lounastilausten hallintaan." + +#. module: profile_tools +#: field:misc_tools.installer,subscription:0 +msgid "Recurring Documents" +msgstr "Toistuvat dokumentit" + +#. module: profile_tools +#: model:ir.model,name:profile_tools.model_misc_tools_installer +msgid "misc_tools.installer" +msgstr "" + +#. module: profile_tools +#: model:ir.module.module,description:profile_tools.module_meta_information +msgid "" +"Installs tools for lunch,survey,subscription and audittrail\n" +" module\n" +" " +msgstr "" + +#. module: profile_tools +#: view:misc_tools.installer:0 +msgid "" +"Extra Tools are applications that can help you improve your organization " +"although they are not key for company management." +msgstr "" + +#. module: profile_tools +#: view:misc_tools.installer:0 +msgid "Configure" +msgstr "Konfiguroi" + +#. module: profile_tools +#: help:misc_tools.installer,survey:0 +msgid "Allows you to organize surveys." +msgstr "Mahdollistaa kyselyjen organisoinnin." + +#. module: profile_tools +#: model:ir.module.module,shortdesc:profile_tools.module_meta_information +msgid "Miscellaneous Tools" +msgstr "Sekalaiset työkalut" + +#. module: profile_tools +#: help:misc_tools.installer,pad:0 +msgid "" +"This module creates a tighter integration between a Pad instance of your " +"choosing and your OpenERP Web Client by letting you easily link pads to " +"OpenERP objects via OpenERP attachments." +msgstr "" + +#. module: profile_tools +#: field:misc_tools.installer,lunch:0 +msgid "Lunch" +msgstr "Lunch" + +#. module: profile_tools +#: view:misc_tools.installer:0 +msgid "Extra Tools Configuration" +msgstr "Ylimääräisten työkalujen konfiguaatio" + +#. module: profile_tools +#: field:misc_tools.installer,idea:0 +msgid "Ideas Box" +msgstr "Idealaatikkoa" + +#. module: profile_tools +#: help:misc_tools.installer,subscription:0 +msgid "Helps to generate automatically recurring documents." +msgstr "Auttaa luomaan toistuvia automaattisia dokumentteja." + +#. module: profile_tools +#: model:ir.actions.act_window,name:profile_tools.action_misc_tools_installer +msgid "Tools Configuration" +msgstr "Työkalujen konfigurointi" + +#. module: profile_tools +#: field:misc_tools.installer,pad:0 +msgid "Collaborative Note Pads" +msgstr "Yhteiset muistiinpanot" + +#. module: profile_tools +#: field:misc_tools.installer,survey:0 +msgid "Survey" +msgstr "Kysely" + +#. module: profile_tools +#: view:misc_tools.installer:0 +msgid "Configure Extra Tools" +msgstr "Konfiguroi ylimääräiset työkalut" + +#. module: profile_tools +#: field:misc_tools.installer,progress:0 +msgid "Configuration Progress" +msgstr "Konfiguraation eteneminen" + +#. module: profile_tools +#: field:misc_tools.installer,config_logo:0 +msgid "Image" +msgstr "Kuva" + +#. module: profile_tools +#: view:misc_tools.installer:0 +msgid "title" +msgstr "otsikko" + +#. module: profile_tools +#: field:misc_tools.installer,share:0 +msgid "Web Share" +msgstr "Nettijako" diff --git a/addons/project_mailgate/i18n/fi.po b/addons/project_mailgate/i18n/fi.po new file mode 100644 index 00000000000..d7b563f2f4b --- /dev/null +++ b/addons/project_mailgate/i18n/fi.po @@ -0,0 +1,100 @@ +# Finnish 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-22 10:01+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-23 04:56+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: project_mailgate +#: view:project.task:0 +msgid "History Information" +msgstr "Historiatiedot" + +#. module: project_mailgate +#: model:ir.model,name:project_mailgate.model_project_task +msgid "Task" +msgstr "Tehtävä" + +#. module: project_mailgate +#: model:ir.module.module,description:project_mailgate.module_meta_information +msgid "" +"This module is an interface that synchronises mails with OpenERP Project " +"Task.\n" +"\n" +"It allows creating tasks as soon as a new mail arrives in our configured " +"mail server.\n" +"Moreover, it keeps track of all further communications and task states.\n" +" " +msgstr "" + +#. module: project_mailgate +#: view:project.task:0 +msgid "Attachments" +msgstr "Liitteet" + +#. module: project_mailgate +#: model:ir.module.module,shortdesc:project_mailgate.module_meta_information +msgid "Project MailGateWay" +msgstr "Projektin sähköpostivälittäjä" + +#. module: project_mailgate +#: constraint:project.task:0 +msgid "Error ! You cannot create recursive tasks." +msgstr "Virhe ! Et voi luoda rekursiivisiä tehtäviä." + +#. module: project_mailgate +#: field:project.task,message_ids:0 +msgid "Messages" +msgstr "Viestit" + +#. module: project_mailgate +#: code:addons/project_mailgate/project_mailgate.py:123 +#, python-format +msgid "Draft" +msgstr "Luonnos" + +#. module: project_mailgate +#: view:project.task:0 +msgid "Details" +msgstr "Yksityiskohdat" + +#. module: project_mailgate +#: code:addons/project_mailgate/project_mailgate.py:149 +#, python-format +msgid "Cancel" +msgstr "Peruuta" + +#. module: project_mailgate +#: code:addons/project_mailgate/project_mailgate.py:143 +#, python-format +msgid "Done" +msgstr "Valmis" + +#. module: project_mailgate +#: code:addons/project_mailgate/project_mailgate.py:129 +#, python-format +msgid "Open" +msgstr "Auki" + +#. module: project_mailgate +#: code:addons/project_mailgate/project_mailgate.py:135 +#, python-format +msgid "Pending" +msgstr "Odottava" + +#. module: project_mailgate +#: view:project.task:0 +msgid "History" +msgstr "Historia" diff --git a/addons/project_mrp/i18n/fi.po b/addons/project_mrp/i18n/fi.po new file mode 100644 index 00000000000..4fda4ed837b --- /dev/null +++ b/addons/project_mrp/i18n/fi.po @@ -0,0 +1,133 @@ +# Finnish 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-22 09:30+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \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-23 04:56+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: project_mrp +#: model:process.node,note:project_mrp.process_node_procuretasktask0 +msgid "For each product, on type service and on order" +msgstr "Jokaiselle tuotteelle, pavelutyyppinen joka on tilattu." + +#. module: project_mrp +#: model:process.transition,name:project_mrp.process_transition_procuretask0 +msgid "Procurement Task" +msgstr "Hankintatehtävä" + +#. module: project_mrp +#: model:ir.module.module,shortdesc:project_mrp.module_meta_information +msgid "Procurement and Project Management integration" +msgstr "Hankinnan ja projektinhallinnan integraatio" + +#. module: project_mrp +#: model:process.transition,note:project_mrp.process_transition_createtask0 +msgid "Product type is service, then its creates the task." +msgstr "Tuotteen tyyppi on palvelu, luodaan tehtävä." + +#. module: project_mrp +#: model:process.transition,note:project_mrp.process_transition_procuretask0 +msgid "if product type is 'service' then it creates the task." +msgstr "jos tuotteen tyyppi on 'palvelu' niin luo tehtävän." + +#. module: project_mrp +#: constraint:project.task:0 +msgid "Error ! You cannot create recursive tasks." +msgstr "Virhe ! Et voi luoda rekursiivisiä tehtäviä." + +#. module: project_mrp +#: model:ir.model,name:project_mrp.model_product_product +msgid "Product" +msgstr "Tuote" + +#. module: project_mrp +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "Virhe: Väärä EAN-koodi" + +#. module: project_mrp +#: field:product.product,project_id:0 +msgid "Project" +msgstr "Projekti" + +#. module: project_mrp +#: model:ir.model,name:project_mrp.model_procurement_order +#: field:project.task,procurement_id:0 +msgid "Procurement" +msgstr "Hankinta" + +#. module: project_mrp +#: model:ir.model,name:project_mrp.model_project_task +#: model:process.node,name:project_mrp.process_node_mrptask0 +#: model:process.node,name:project_mrp.process_node_procuretasktask0 +#: field:procurement.order,task_id:0 +msgid "Task" +msgstr "Tehtävä" + +#. module: project_mrp +#: model:process.node,note:project_mrp.process_node_mrptask0 +msgid "A task is created to provide the service." +msgstr "Tehtävä on luotu tuottamaan palvelu" + +#. module: project_mrp +#: model:process.transition,name:project_mrp.process_transition_ordertask0 +msgid "Order Task" +msgstr "Tilaustehtävä" + +#. module: project_mrp +#: model:process.node,name:project_mrp.process_node_saleordertask0 +msgid "Sale Order Task" +msgstr "Myyntitilaustehtävä" + +#. module: project_mrp +#: model:process.transition,name:project_mrp.process_transition_createtask0 +msgid "Create Task" +msgstr "Luo tehtävä" + +#. module: project_mrp +#: model:ir.module.module,description:project_mrp.module_meta_information +msgid "" +"\n" +"This module creates a link between procurement orders\n" +"containing \"service\" lines and project management tasks.\n" +"\n" +"When installed, this module will automatically create a new task\n" +"for each procurement order line, when the corresponding product\n" +"meets the following characteristics:\n" +" * Type = Service\n" +" * Procurement method (Order fulfillment) = MTO (make to order)\n" +" * Supply/Procurement method = Produce\n" +"\n" +"The new task is created outside of any existing project, but\n" +"can be added to a project manually.\n" +"\n" +"When the project task is completed or cancelled, the workflow of the " +"corresponding\n" +"procurement line is updated accordingly.\n" +"\n" +"This module is useful to be able to invoice services based on tasks\n" +"automatically created via sale orders.\n" +"\n" +msgstr "" + +#. module: project_mrp +#: model:process.transition,note:project_mrp.process_transition_ordertask0 +msgid "If procurement method is Make to order and supply method is produce" +msgstr "Jos hankintametodi on tee tilaukseen ja toimitusmetodi on tuota" + +#. module: project_mrp +#: model:process.node,note:project_mrp.process_node_saleordertask0 +msgid "In case you sell services on sale order" +msgstr "tapauksessa jossa myyt palveluja myyntitilauksella" From 9673cca5631c223e636fbae0ab3534a4a28a652a Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" Date: Fri, 24 Jun 2011 11:10:56 +0530 Subject: [PATCH 74/74] [FIX]:shortcuts are reverted back to their original state i.e translatable becuase we removed editing of the shortcuts from the client lp bug: https://launchpad.net/bugs/798643 fixed bzr revid: nch@tinyerp.com-20110624054056-xbf6wdvblgoam652 --- openerp/addons/base/ir/ir_ui_view.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index 8aa4c0882bd..ebbfe7cea38 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -197,10 +197,13 @@ class view_sc(osv.osv): def get_sc(self, cr, uid, user_id, model='ir.ui.menu', context=None): ids = self.search(cr, uid, [('user_id','=',user_id),('resource','=',model)], context=context) - results = self.read(cr, uid, ids, ['res_id','name'], context=context) - available_menus = self.pool.get(model).search(cr, uid, [], context=context) + results = self.read(cr, uid, ids, ['res_id'], context=context) + name_map = dict(self.pool.get(model).name_get(cr, uid, [x['res_id'] for x in results], context=context)) # Make sure to return only shortcuts pointing to exisintg menu items. - return filter(lambda result: result['res_id'] in available_menus, results) + filtered_results = filter(lambda result: result['res_id'] in name_map, results) + for result in filtered_results: + result.update(name=name_map[result['res_id']]) + return filtered_results _order = 'sequence,name' _defaults = {