From 61be1b4637fc04c1d95c807eff44e2c49d8d669e Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 21 Jan 2013 16:33:58 +0100 Subject: [PATCH 01/26] [FIX] kanban: display no_result message when there are no records in the kanban view with columns bzr revid: chm@openerp.com-20130121153358-tzp976npk1jp9yip --- addons/web_kanban/static/src/js/kanban.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 1d9ced0ca6d..6d361bc4311 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -223,7 +223,6 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ }, do_search: function(domain, context, group_by) { var self = this; - this.$el.find('.oe_view_nocontent').remove(); this.search_domain = domain; this.search_context = context; this.search_group_by = group_by; @@ -235,6 +234,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ self.$el.toggleClass('oe_kanban_grouped_by_m2o', self.grouped_by_m2o); var grouping = new instance.web.Model(self.dataset.model, context, domain).query().group_by(self.group_by); $.when(grouping).done(function(groups) { + self.$el.find('.oe_view_nocontent').remove(); if (groups) { self.do_process_groups(groups); } else { @@ -245,6 +245,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ }, do_process_groups: function(groups) { var self = this; + this.$el.find('table:first').show(); this.$el.removeClass('oe_kanban_ungrouped').addClass('oe_kanban_grouped'); this.add_group_mutex.exec(function() { self.do_clear_groups(); @@ -253,13 +254,15 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ self.no_result(); return false; } + self.nb_records = 0; var remaining = groups.length - 1, groups_array = []; return $.when.apply(null, _.map(groups, function (group, index) { var dataset = new instance.web.DataSetSearch(self, self.dataset.model, new instance.web.CompoundContext(self.dataset.get_context(), group.model.context()), group.model.domain()); return dataset.read_slice(self.fields_keys.concat(['__last_update']), { 'limit': self.limit }) - .then(function(records) { + .then(function (records) { + self.nb_records += records.length; self.dataset.ids.push.apply(self.dataset.ids, dataset.ids); groups_array[index] = new instance.web_kanban.KanbanGroup(self, records, group, dataset); if (!remaining--) { @@ -267,11 +270,16 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ return self.do_add_groups(groups_array); } }); - })); + })).then(function () { + if(!self.nb_records) { + self.no_result(); + } + }); }); }, do_process_dataset: function() { var self = this; + this.$el.find('table:first').show(); this.$el.removeClass('oe_kanban_grouped').addClass('oe_kanban_ungrouped'); this.add_group_mutex.exec(function() { var def = $.Deferred(); @@ -447,7 +455,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ || !this.options.action.help) { return; } - this.$el.find('.oe_view_nocontent').remove(); + this.$el.find('table:first').hide(); this.$el.prepend( $('
').html(this.options.action.help) ); From d345c7b07a0d08bac01d3d5936c1f1d1516f0f46 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 22 Jan 2013 11:30:37 +0100 Subject: [PATCH 02/26] [IMP] kanban: no_message on hover columns with opacity effect bzr revid: chm@openerp.com-20130122103037-iyciy625vnhjak0x --- addons/web_kanban/static/src/css/kanban.css | 27 +++++++++++++++++ addons/web_kanban/static/src/css/kanban.sass | 29 +++++++++++++++++-- addons/web_kanban/static/src/js/kanban.js | 16 ++++++---- .../web_kanban/static/src/xml/web_kanban.xml | 8 +++++ 4 files changed, 72 insertions(+), 8 deletions(-) diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 3083a9e30a5..5492d4923fe 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -172,9 +172,11 @@ } .openerp .oe_kanban_view .oe_kanban_add { top: -8px; + z-index: 2; } .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle { top: -2px; + z-index: 2; } .openerp .oe_kanban_view .oe_kanban_card, .openerp .oe_kanban_view .oe_dropdown_toggle { cursor: pointer; @@ -190,6 +192,9 @@ width: 185px; padding: 10px; } +.openerp .oe_kanban_view .oe_kanban_quick_create { + z-index: 2; +} .openerp .oe_kanban_view .oe_kanban_quick_create input { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; @@ -607,6 +612,28 @@ background: white; } +.openerp .oe_kanban_grouped .oe_view_nocontent { + position: relative; + z-index: 1; + max-width: none; + height: 100%; +} +.openerp .oe_kanban_grouped .oe_view_nocontent .oe_view_nocontent_content { + margin-left: 90px; + margin-top: 5px; + max-width: 700px; +} +.openerp .oe_kanban_grouped .oe_view_nocontent .oe_view_nocontent_bg { + background: #eee; + opacity: 0.7; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: -1; +} + .openerp .oe_popup_form .oe_kanban_buttons .oe_highlight { color: #404040; background: none; diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index 988dee01051..4c4d8fa5dff 100644 --- a/addons/web_kanban/static/src/css/kanban.sass +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -51,9 +51,28 @@ //background: url(data:image/pngbase64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAKElEQVQIHWP8DwTv379nAAFBQUEGhnfv3oHEwADEZgJLIRGMIClkLQCr3x2Htp/lLwAAAABJRU5ErkJggg==) background: white height: inherit - &.oe_kanban_grouped .oe_kanban_dummy_cell - background: url(/web/static/src/img/form_sheetbg.png) - width: 100% + &.oe_kanban_grouped + .oe_kanban_dummy_cell + background: url(/web/static/src/img/form_sheetbg.png) + width: 100% + .oe_view_nocontent + position: relative + z-index: 1 + max-width: none + height: 100% + .oe_view_nocontent_content + margin-left: 90px + margin-top: 5px + max-width: 700px + .oe_view_nocontent_bg + background: #eee + opacity: 0.7 + position: absolute + top: 0 + bottom: 0 + left: 0 + right: 0 + z-index: -1 .ui-sortable-placeholder border: 1px solid rgba(0,0,0,0.1) visibility: visible !important @@ -187,8 +206,10 @@ position: relative .oe_kanban_add top: -8px + z-index: 2 .oe_kanban_header .oe_dropdown_toggle top: -2px + z-index: 2 .oe_kanban_card, .oe_dropdown_toggle cursor: pointer display: inline-block @@ -200,6 +221,8 @@ .oe_kanban_no_group .oe_kanban_quick_create width: 185px padding: 10px + .oe_kanban_quick_create + z-index: 2 .oe_kanban_quick_create input @include box-sizing(border-box) outline: none diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 6d361bc4311..758c4246d87 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -234,7 +234,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ self.$el.toggleClass('oe_kanban_grouped_by_m2o', self.grouped_by_m2o); var grouping = new instance.web.Model(self.dataset.model, context, domain).query().group_by(self.group_by); $.when(grouping).done(function(groups) { - self.$el.find('.oe_view_nocontent').remove(); + self.remove_no_result(); if (groups) { self.do_process_groups(groups); } else { @@ -318,6 +318,9 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ var $last_td = self.$el.find('.oe_kanban_groups_headers td:last'); var groups_started = _.map(this.groups, function(group) { if (!group.is_started) { + group.on("add_record", self, function () { + self.remove_no_result(); + }); return group.insertBefore($last_td); } }); @@ -455,15 +458,17 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ || !this.options.action.help) { return; } - this.$el.find('table:first').hide(); - this.$el.prepend( - $('
').html(this.options.action.help) - ); + this.$el.find('table:first').css("position", "absolute"); + $(QWeb.render('KanbanView.nocontent', { content : this.options.action.help})).insertAfter(this.$('table:first')); var create_nocontent = this.$buttons; this.$el.find('.oe_view_nocontent').click(function() { create_nocontent.openerpBounce(); }); }, + remove_no_result: function() { + this.$el.find('table:first').css("position", false); + this.$el.find('.oe_view_nocontent').remove(); + }, /* * postprocessing of fields type many2many @@ -726,6 +731,7 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({ */ quick_created: function (record) { var id = record, self = this; + self.trigger("add_record"); this.dataset.read_ids([id], this.view.fields_keys) .done(function (records) { self.view.dataset.ids.push(id); diff --git a/addons/web_kanban/static/src/xml/web_kanban.xml b/addons/web_kanban/static/src/xml/web_kanban.xml index 67ee563c14d..7b3cfb10447 100644 --- a/addons/web_kanban/static/src/xml/web_kanban.xml +++ b/addons/web_kanban/static/src/xml/web_kanban.xml @@ -93,4 +93,12 @@
+ +
+
+
+ +
+
+
From b02c1eb263dadb4d4a4bf20025d0e4e448c73204 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 23 Jan 2013 11:31:02 +0100 Subject: [PATCH 03/26] [IMP] view: no message alias bzr revid: chm@openerp.com-20130123103102-81kafjq0l61uq8qx --- addons/web/static/src/js/view_list.js | 1 + addons/web/static/src/js/views.js | 29 ++++++++++++++++++++++- addons/web_kanban/static/src/js/kanban.js | 5 ++-- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index fbbfabcacca..c0231487640 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -850,6 +850,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi this.$el.find('.oe_view_nocontent').click(function() { create_nocontent.openerpBounce(); }); + this.insert_alias(this.$el.find('.oe_view_nocontent')); } }); instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web.ListView.List# */{ diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 9fd49367171..8f5eed37521 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -1394,7 +1394,34 @@ instance.web.View = instance.web.Widget.extend({ is_action_enabled: function(action) { var attrs = this.fields_view.arch.attrs; return (action in attrs) ? JSON.parse(attrs[action]) : true; - } + }, + /** + * insert alias into the dom + */ + insert_alias: function ($dom) { + var self = this; + var context = this.options.action.context || {}; + if (context && context.alias) { + new instance.web.Model('mail.alias').call("get_alias", [], {'alias': context.alias}).then(function (alias_ids) { + if (alias_ids.length) { + var $alias = $('

'); + var global = false; + var inc = 0; + _.each(alias_ids, function (alias_id) { + if (alias_id.email.match(/@.+/)) { + if (inc && global != alias_id.global) { + $alias.append('
' + _t("or")); + global = alias_id.global; + } + $alias.append((inc? '
': '') + '' + alias_id.email + ''); + inc++; + } + }) + $dom.append($alias); + } + }); + } + }, }); /** diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 758c4246d87..b1ed4f16973 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -453,6 +453,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ } }, no_result: function() { + var self = this; if (this.groups.group_by || !this.options.action || !this.options.action.help) { @@ -460,10 +461,10 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ } this.$el.find('table:first').css("position", "absolute"); $(QWeb.render('KanbanView.nocontent', { content : this.options.action.help})).insertAfter(this.$('table:first')); - var create_nocontent = this.$buttons; this.$el.find('.oe_view_nocontent').click(function() { - create_nocontent.openerpBounce(); + self.$buttons.openerpBounce(); }); + this.insert_alias(this.$el.find('.oe_view_nocontent_content')); }, remove_no_result: function() { this.$el.find('table:first').css("position", false); From 65555ae9720dfa2b9873dbd542abaf9a2b9bdab2 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 23 Jan 2013 12:16:28 +0100 Subject: [PATCH 04/26] [IMP] view: alias bzr revid: chm@openerp.com-20130123111628-m74jj7xj1c9t5zf9 --- addons/web/static/src/js/views.js | 8 +++++--- addons/web/static/src/xml/base.xml | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 8f5eed37521..006d3e50c2d 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -1404,7 +1404,7 @@ instance.web.View = instance.web.Widget.extend({ if (context && context.alias) { new instance.web.Model('mail.alias').call("get_alias", [], {'alias': context.alias}).then(function (alias_ids) { if (alias_ids.length) { - var $alias = $('

'); + var $alias = $(QWeb.render('View.nocontent_alias')); var global = false; var inc = 0; _.each(alias_ids, function (alias_id) { @@ -1413,11 +1413,13 @@ instance.web.View = instance.web.Widget.extend({ $alias.append('
' + _t("or")); global = alias_id.global; } - $alias.append((inc? '
': '') + '' + alias_id.email + ''); + $alias.append('
' + alias_id.email + ''); inc++; } }) - $dom.append($alias); + if(inc) { + $dom.append($alias); + } } }); } diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 6d707bb4627..8d8adaf1a3a 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1873,4 +1873,9 @@ + +

+ You can also create the document by sending an email to : +

+
From aec0de7a96599154eaf4742a33f33d48316c7a76 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 23 Jan 2013 12:38:34 +0100 Subject: [PATCH 05/26] [IMP] view: alias bzr revid: chm@openerp.com-20130123113834-xlujbrmxgrr8e8ft --- addons/web/static/src/js/views.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 006d3e50c2d..625f50ca2f8 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -1401,8 +1401,11 @@ instance.web.View = instance.web.Widget.extend({ insert_alias: function ($dom) { var self = this; var context = this.options.action.context || {}; - if (context && context.alias) { - new instance.web.Model('mail.alias').call("get_alias", [], {'alias': context.alias}).then(function (alias_ids) { + if (context && context.help_alias) { + new instance.web.Model('mail.alias').call("get_alias", [], { + 'model': this.options.action.res_model, + 'alias_defaults': context.help_alias + }).then(function (alias_ids) { if (alias_ids.length) { var $alias = $(QWeb.render('View.nocontent_alias')); var global = false; From b79cf38a37c32159bf459dfcf74fa76c53c29351 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 23 Jan 2013 13:12:06 +0100 Subject: [PATCH 06/26] [IMP] kanban: help message position bzr revid: chm@openerp.com-20130123121206-uehsdih50xy8jgts --- addons/web_kanban/static/src/css/kanban.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 5492d4923fe..3eab33a0569 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -612,18 +612,18 @@ background: white; } -.openerp .oe_kanban_grouped .oe_view_nocontent { +.openerp .oe_kanban_view .oe_view_nocontent { position: relative; z-index: 1; max-width: none; height: 100%; } -.openerp .oe_kanban_grouped .oe_view_nocontent .oe_view_nocontent_content { +.openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_content { margin-left: 90px; margin-top: 5px; max-width: 700px; } -.openerp .oe_kanban_grouped .oe_view_nocontent .oe_view_nocontent_bg { +.openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_bg { background: #eee; opacity: 0.7; position: absolute; From 6416b6f27590ea643667ff8aba71a5cf5b0144e4 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 23 Jan 2013 13:13:46 +0100 Subject: [PATCH 07/26] [IMP] kanban: help message position bzr revid: chm@openerp.com-20130123121346-o1n8ne749npinkc4 --- addons/web_kanban/static/src/css/kanban.sass | 36 ++++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index 4c4d8fa5dff..83ae61da356 100644 --- a/addons/web_kanban/static/src/css/kanban.sass +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -51,28 +51,28 @@ //background: url(data:image/pngbase64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAKElEQVQIHWP8DwTv379nAAFBQUEGhnfv3oHEwADEZgJLIRGMIClkLQCr3x2Htp/lLwAAAABJRU5ErkJggg==) background: white height: inherit + .oe_view_nocontent + position: relative + z-index: 1 + max-width: none + height: 100% + .oe_view_nocontent_content + margin-left: 90px + margin-top: 5px + max-width: 700px + .oe_view_nocontent_bg + background: #eee + opacity: 0.7 + position: absolute + top: 0 + bottom: 0 + left: 0 + right: 0 + z-index: -1 &.oe_kanban_grouped .oe_kanban_dummy_cell background: url(/web/static/src/img/form_sheetbg.png) width: 100% - .oe_view_nocontent - position: relative - z-index: 1 - max-width: none - height: 100% - .oe_view_nocontent_content - margin-left: 90px - margin-top: 5px - max-width: 700px - .oe_view_nocontent_bg - background: #eee - opacity: 0.7 - position: absolute - top: 0 - bottom: 0 - left: 0 - right: 0 - z-index: -1 .ui-sortable-placeholder border: 1px solid rgba(0,0,0,0.1) visibility: visible !important From d738d755066873640e835473289606fa4002f82d Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 25 Jan 2013 13:01:53 +0100 Subject: [PATCH 08/26] [IMP] kanban: display number of folded records bzr revid: chm@openerp.com-20130125120153-5ygo6kvscmap8tnq --- addons/web_kanban/static/src/css/kanban.css | 19 ++++++++++--- addons/web_kanban/static/src/css/kanban.sass | 15 ++++++++--- .../web_kanban/static/src/xml/web_kanban.xml | 27 ++++++++++++------- 3 files changed, 44 insertions(+), 17 deletions(-) diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 3083a9e30a5..eaba760292c 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -92,12 +92,21 @@ overflow: hidden; text-overflow: ellipsis; } -.openerp .oe_kanban_view .oe_kanban_group_title .oe_kanban_group_length { +.openerp .oe_kanban_view .oe_kanban_group_length { + text-align: center; + display: none; +} +.openerp .oe_kanban_view .oe_kanban_group_length .oe_tag { + position: relative; + top: +8px; + font-weight: bold; +} +.openerp .oe_kanban_view .oe_fold_column .oe_kanban_group_length { position: absolute; top: -1px; right: -14px; - text-align: center; float: right; + display: block; } .openerp .oe_kanban_view .oe_kanban_header:hover .oe_kanban_group_length { display: none; @@ -141,7 +150,8 @@ .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title, .openerp .oe_kanban_view .oe_kanban_group_folded.oe_kanban_column *, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_aggregates, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_add { display: none; } -.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title_vertical { +.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title_vertical, +.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_length { display: block; } .openerp .oe_kanban_view .oe_kanban_group_folded .oe_dropdown_kanban { @@ -163,7 +173,7 @@ display: none; position: relative; opacity: 0.75; - top: 20px; + top: 26px; } .openerp .oe_kanban_view .oe_kanban_add, .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle { margin-left: 4px; @@ -175,6 +185,7 @@ } .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle { top: -2px; + height: 14px; } .openerp .oe_kanban_view .oe_kanban_card, .openerp .oe_kanban_view .oe_dropdown_toggle { cursor: pointer; diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index 988dee01051..7fef8604c97 100644 --- a/addons/web_kanban/static/src/css/kanban.sass +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -54,6 +54,13 @@ &.oe_kanban_grouped .oe_kanban_dummy_cell background: url(/web/static/src/img/form_sheetbg.png) width: 100% + .oe_kanban_group_length + text-align: center + display: none + .oe_tag + position: relative + top: +8px + font-weight: bold .ui-sortable-placeholder border: 1px solid rgba(0,0,0,0.1) visibility: visible !important @@ -118,12 +125,13 @@ white-space: nowrap overflow: hidden text-overflow: ellipsis + .oe_fold_column .oe_kanban_group_length position: absolute top: -1px right: -14px - text-align: center float: right + display: block &.oe_kanban_grouped .oe_kanban_column, .oe_kanban_group_header width: 185px @@ -159,7 +167,7 @@ .oe_kanban_group_folded .oe_kanban_group_title, &.oe_kanban_column *, .oe_kanban_aggregates, .oe_kanban_add display: none - .oe_kanban_group_title_vertical + .oe_kanban_group_title_vertical, .oe_kanban_group_length display: block .oe_dropdown_kanban left: -5px @@ -178,7 +186,7 @@ display: none position: relative opacity: 0.75 - top: 20px + top: 26px // }}} // KanbanQuickCreate {{{ .oe_kanban_add, .oe_kanban_header .oe_dropdown_toggle @@ -189,6 +197,7 @@ top: -8px .oe_kanban_header .oe_dropdown_toggle top: -2px + height: 14px; .oe_kanban_card, .oe_dropdown_toggle cursor: pointer display: inline-block diff --git a/addons/web_kanban/static/src/xml/web_kanban.xml b/addons/web_kanban/static/src/xml/web_kanban.xml index 67ee563c14d..f943541d007 100644 --- a/addons/web_kanban/static/src/xml/web_kanban.xml +++ b/addons/web_kanban/static/src/xml/web_kanban.xml @@ -34,16 +34,21 @@
]
-
- í - +
+
+ + 99+ +
+ í + +
@@ -57,7 +62,9 @@
- + + +
From 06b2fd58654f06a7356a3f885685fc0393809d79 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 29 Jan 2013 11:06:14 +0100 Subject: [PATCH 09/26] [IMP] base: apply same css of body content for the textarea bzr revid: chm@openerp.com-20130129100614-fwz3lf8pvqeuuohl --- addons/web/static/src/css/base.css | 2 ++ addons/web/static/src/css/base.sass | 2 ++ 2 files changed, 4 insertions(+) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 638f446c5ba..1e1c4812be4 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -2341,6 +2341,7 @@ background: white; min-width: 60px; color: #1f1f1f; + font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; } .openerp .oe_form input[readonly], .openerp .oe_form select[readonly], .openerp .oe_form textarea[readonly], .openerp .oe_form input[disabled], .openerp .oe_form select[disabled] { background: #e5e5e5 !important; @@ -2355,6 +2356,7 @@ -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; + color: #4C4C4C; } .openerp .oe_form textarea.oe_inline[disabled] { border-left: 8px solid #eeeeee; diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 42ade77ccbb..20e573b099d 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -1857,6 +1857,7 @@ $sheet-padding: 16px background: white min-width: 60px color: #1f1f1f + font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif input[readonly], select[readonly], textarea[readonly], input[disabled], select[disabled] background: #E5E5E5 !important color: #666 @@ -1865,6 +1866,7 @@ $sheet-padding: 16px padding-left: 8px @include box-shadow(none) @include radius(0px) + color: #4C4C4C textarea.oe_inline[disabled] border-left: 8px solid #eee .oe_form_field_url button img From 0d3004e8290b7d9ff90d1f84ee7353b6a9e75694 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 1 Feb 2013 10:51:33 +0100 Subject: [PATCH 10/26] [IMP] view: only first alias displayed bzr revid: chm@openerp.com-20130201095133-i3p6vehexh7a9bqh --- addons/web/static/src/js/views.js | 20 ++++---------------- addons/web/static/src/xml/base.xml | 2 +- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 625f50ca2f8..4b532e633be 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -1406,23 +1406,11 @@ instance.web.View = instance.web.Widget.extend({ 'model': this.options.action.res_model, 'alias_defaults': context.help_alias }).then(function (alias_ids) { - if (alias_ids.length) { + if (alias_ids.length && alias_ids[0].email.match(/@.+/)) { + // alias_ids[0].global var $alias = $(QWeb.render('View.nocontent_alias')); - var global = false; - var inc = 0; - _.each(alias_ids, function (alias_id) { - if (alias_id.email.match(/@.+/)) { - if (inc && global != alias_id.global) { - $alias.append('
' + _t("or")); - global = alias_id.global; - } - $alias.append('
' + alias_id.email + ''); - inc++; - } - }) - if(inc) { - $dom.append($alias); - } + $alias.append('' + alias_ids[0].email + ''); + $dom.append($alias); } }); } diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 30a3f8f2351..47eb0214616 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1873,7 +1873,7 @@

- You can also create the document by sending an email to : + You can also create documents by sending an email to:

From c349508149be291dc4a4e90d6f521baee6f3d9d7 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 4 Feb 2013 16:03:04 +0100 Subject: [PATCH 11/26] [IMP] web view: remove insert_alias and add active_id, active_model, active_ids into the context for web/action/load bzr revid: chm@openerp.com-20130204150304-j11944irbcp4o4gf --- addons/web/static/src/js/view_list.js | 1 - addons/web/static/src/js/views.js | 22 +--------------------- addons/web/static/src/xml/base.xml | 5 ----- addons/web_kanban/static/src/js/kanban.js | 5 ++--- 4 files changed, 3 insertions(+), 30 deletions(-) diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index c0231487640..fbbfabcacca 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -850,7 +850,6 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi this.$el.find('.oe_view_nocontent').click(function() { create_nocontent.openerpBounce(); }); - this.insert_alias(this.$el.find('.oe_view_nocontent')); } }); instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web.ListView.List# */{ diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 4b532e633be..fbe53711c8a 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -1306,7 +1306,7 @@ instance.web.View = instance.web.Widget.extend({ } else if (action_data.type=="action") { return this.rpc('/web/action/load', { action_id: action_data.name, - context: instance.web.pyeval.eval('context', context), + context: _.extend({'active_model': dataset.model, 'active_ids': dataset.ids, 'active_id': record_id}, instance.web.pyeval.eval('context', context)), do_not_eval: true }).then(handler); } else { @@ -1395,26 +1395,6 @@ instance.web.View = instance.web.Widget.extend({ var attrs = this.fields_view.arch.attrs; return (action in attrs) ? JSON.parse(attrs[action]) : true; }, - /** - * insert alias into the dom - */ - insert_alias: function ($dom) { - var self = this; - var context = this.options.action.context || {}; - if (context && context.help_alias) { - new instance.web.Model('mail.alias').call("get_alias", [], { - 'model': this.options.action.res_model, - 'alias_defaults': context.help_alias - }).then(function (alias_ids) { - if (alias_ids.length && alias_ids[0].email.match(/@.+/)) { - // alias_ids[0].global - var $alias = $(QWeb.render('View.nocontent_alias')); - $alias.append('' + alias_ids[0].email + ''); - $dom.append($alias); - } - }); - } - }, }); /** diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 47eb0214616..7604814fe1d 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1871,9 +1871,4 @@ - -

- You can also create documents by sending an email to: -

-
diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 9fac388d7bc..618e3c7e915 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -456,15 +456,14 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ var self = this; if (this.groups.group_by || !this.options.action - || !this.options.action.help) { + || (!this.options.action.help)) { return; } this.$el.find('table:first').css("position", "absolute"); - $(QWeb.render('KanbanView.nocontent', { content : this.options.action.help})).insertAfter(this.$('table:first')); + $(QWeb.render('KanbanView.nocontent', { content : this.options.action.dynamic_help || this.options.action.help})).insertAfter(this.$('table:first')); this.$el.find('.oe_view_nocontent').click(function() { self.$buttons.openerpBounce(); }); - this.insert_alias(this.$el.find('.oe_view_nocontent_content')); }, remove_no_result: function() { this.$el.find('table:first').css("position", false); From 8c58ae9ad20f3d9c5a2a4742e6e9bfe2070f2d82 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 5 Feb 2013 15:52:44 +0100 Subject: [PATCH 12/26] [IMP] kanban: auto close quick_create when click an other quick_create, and hide help message bzr revid: chm@openerp.com-20130205145244-309lce3bsl5fb704 --- addons/web_kanban/static/src/js/kanban.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 618e3c7e915..7db23b3225d 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -583,19 +583,26 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({ }); this.$el.find('.oe_kanban_add').click(function () { - if (self.quick) { - return self.quick.trigger('close'); + if (self.view.quick) { + self.view.quick.trigger('close'); } + if (self.quick) { + return false; + } + self.view.$el.find('.oe_view_nocontent').hide(); var ctx = {}; ctx['default_' + self.view.group_by] = self.value; self.quick = new (get_class(self.view.quick_create_class))(this, self.dataset, ctx, true) .on('added', self, self.proxy('quick_created')) .on('close', self, function() { + self.view.$el.find('.oe_view_nocontent').show(); this.quick.destroy(); + delete self.view.quick; delete this.quick; }); self.quick.appendTo($(".oe_kanban_group_list_header", self.$records)); self.quick.focus(); + self.view.quick = self.quick; }); // Add bounce effect on image '+' of kanban header when click on empty space of kanban grouped column. this.$records.on('click', '.oe_kanban_show_more', this.do_show_more); @@ -731,6 +738,7 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({ */ quick_created: function (record) { var id = record, self = this; + self.view.remove_no_result(); self.trigger("add_record"); this.dataset.read_ids([id], this.view.fields_keys) .done(function (records) { From 85af3bfca627f89bbd835463fc26d9806e14116d Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 4 Mar 2013 14:52:44 +0100 Subject: [PATCH 13/26] [IMP] css: add a class oe_read_only bzr revid: chm@openerp.com-20130304135244-p32vbjd493h06oq4 --- addons/web/static/src/css/base.css | 3 +++ addons/web/static/src/css/base.sass | 2 ++ 2 files changed, 5 insertions(+) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 36e2c4658cd..c58185d8d54 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -2096,6 +2096,9 @@ .openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty { display: none !important; } +.openerp .oe_form_editable .oe_read_only { + display: none !important; +} .openerp .oe_form_readonly .oe_form .oe_form_field_date { width: auto; } diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 1f58e12976f..55f3fe0b04b 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -1659,6 +1659,8 @@ $sheet-padding: 16px .oe_form_readonly .oe_edit_only, .oe_form_field:empty display: none !important + .oe_read_only + display: none !important .oe_form .oe_form_field_date width: auto // Sheet and padding From 5bce8e3d3da841b7c67cc5440170d801dd01fac2 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 4 Mar 2013 14:59:25 +0100 Subject: [PATCH 14/26] [IMP] css: oe_kanban_group z-index:1 bzr revid: chm@openerp.com-20130304135925-drjoivburtj23p9i --- addons/web/static/src/css/base.css | 4 ++++ addons/web/static/src/css/base.sass | 3 +++ 2 files changed, 7 insertions(+) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index c58185d8d54..1420ab577a8 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -3200,6 +3200,10 @@ div.ui-widget-overlay { clear: both; text-align: center; } +.openerp .oe_kanban_grouped { + position: relative; + z-index: 1; +} .openerp_ie.oe_kanban_grouped .oe_kanban_show_more .oe_button { width: 100%; padding: 3px 12px; diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 55f3fe0b04b..c31ffbe43a3 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -1599,6 +1599,9 @@ $sheet-padding: 16px // }}} + .oe_kanban_grouped + position: relative + z-index: 1 // Views Common {{{ .oe_view_nocontent padding: 15px From f6f4c735ce5397dc124325a7d4dfeda1e87d4c66 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 4 Mar 2013 16:15:11 +0100 Subject: [PATCH 15/26] [fix] kanban: add dynamic_help bzr revid: chm@openerp.com-20130304151511-ob5ugrshni3zr2ql --- addons/web_kanban/static/src/js/kanban.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 7db23b3225d..49acc3c4327 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -456,7 +456,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ var self = this; if (this.groups.group_by || !this.options.action - || (!this.options.action.help)) { + || (!this.options.action.help && !this.options.action.dynamic_help)) { return; } this.$el.find('table:first').css("position", "absolute"); From dc709078ffbaf06158e6c1d9d12e54e00bb044c3 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 21 Mar 2013 14:30:53 +0100 Subject: [PATCH 16/26] [IMP] code cleaning for get_empty_list_help bzr revid: chm@openerp.com-20130321133053-wczo7iizsci4hkjs --- addons/web_kanban/static/src/js/kanban.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index fb6dc0781ec..b02f8d12151 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -459,11 +459,11 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ var self = this; if (this.groups.group_by || !this.options.action - || (!this.options.action.help && !this.options.action.dynamic_help)) { + || (!this.options.action.help && !this.options.action.get_empty_list_help)) { return; } this.$el.find('table:first').css("position", "absolute"); - $(QWeb.render('KanbanView.nocontent', { content : this.options.action.dynamic_help || this.options.action.help})).insertAfter(this.$('table:first')); + $(QWeb.render('KanbanView.nocontent', { content : this.options.action.get_empty_list_help || this.options.action.help})).insertAfter(this.$('table:first')); this.$el.find('.oe_view_nocontent').click(function() { self.$buttons.openerpBounce(); }); From caff74a6504d48e2a3fde8fb61d23efcd3c68a2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 28 Mar 2013 12:23:27 +0100 Subject: [PATCH 17/26] [CLEAN] Moved kanban specific css from base.sass to kanban.sass; regenerated css files accordingly. bzr revid: tde@openerp.com-20130328112327-3jurcsvur7u4z2ry --- addons/web/static/src/css/base.css | 16 +++--- addons/web/static/src/css/base.sass | 5 +- addons/web_kanban/static/src/css/kanban.css | 58 ++++++++------------- 3 files changed, 29 insertions(+), 50 deletions(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 96b8a23a705..1bad7a02f90 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -1269,7 +1269,7 @@ color: white; padding: 2px 4px; margin: 1px 6px 0 0; - border: 1px solid lightGray; + border: 1px solid lightgrey; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); -moz-border-radius: 4px; -webkit-border-radius: 4px; @@ -1301,7 +1301,7 @@ transform: scale(1.1); } .openerp .oe_secondary_submenu .oe_active { - border-top: 1px solid lightGray; + border-top: 1px solid lightgrey; border-bottom: 1px solid #dedede; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2); @@ -2108,8 +2108,8 @@ .openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty { display: none !important; } -.openerp .oe_form_editable .oe_read_only { - display: none !important; +.openerp .oe_form_readonly .oe_read_only { + display: none !important; } .openerp .oe_form_readonly .oe_form .oe_form_field_date { width: auto; @@ -2286,7 +2286,7 @@ } .openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span { font-size: 80%; - color: darkGreen; + color: darkgreen; vertical-align: top; position: relative; top: -4px; @@ -2397,7 +2397,7 @@ -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; - color: #4C4C4C; + color: #4c4c4c; } .openerp .oe_form textarea.oe_inline[disabled] { border-left: 8px solid #eeeeee; @@ -3267,10 +3267,6 @@ div.ui-widget-overlay { clear: both; text-align: center; } -.openerp .oe_kanban_grouped { - position: relative; - z-index: 1; -} .openerp_ie.oe_kanban_grouped .oe_kanban_show_more .oe_button { width: 100%; padding: 3px 12px; diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 1e70d09e0fd..a9fa725b07c 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -1607,9 +1607,6 @@ $sheet-padding: 16px // }}} - .oe_kanban_grouped - position: relative - z-index: 1 // Views Common {{{ .oe_view_nocontent padding: 15px @@ -1898,7 +1895,7 @@ $sheet-padding: 16px padding-left: 8px @include box-shadow(none) @include radius(0px) - color: #4C4C4C + color: #4c4c4c textarea.oe_inline[disabled] border-left: 8px solid #eee .oe_form_field_url button img diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index fee8a3642f1..1c30f752a86 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -3,6 +3,27 @@ background: white; height: inherit; } +.openerp .oe_kanban_view .oe_view_nocontent { + position: relative; + z-index: 1; + max-width: none; + height: 100%; +} +.openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_content { + margin-left: 90px; + margin-top: 5px; + max-width: 700px; +} +.openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_bg { + background: #eeeeee; + opacity: 0.7; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: -1; +} .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_dummy_cell { background: url(/web/static/src/img/form_sheetbg.png); width: 100%; @@ -101,15 +122,6 @@ overflow: hidden; text-overflow: ellipsis; } -.openerp .oe_kanban_view .oe_kanban_group_length { - text-align: center; - display: none; -} -.openerp .oe_kanban_view .oe_kanban_group_length .oe_tag { - position: relative; - top: +8px; - font-weight: bold; -} .openerp .oe_kanban_view .oe_fold_column .oe_kanban_group_length { position: absolute; top: -1px; @@ -117,9 +129,6 @@ float: right; display: block; } -.openerp .oe_kanban_view .oe_kanban_header:hover .oe_kanban_group_length { - display: none; -} .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_column, .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header { width: 185px; min-width: 185px; @@ -159,8 +168,7 @@ .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title, .openerp .oe_kanban_view .oe_kanban_group_folded.oe_kanban_column *, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_aggregates, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_add { display: none; } -.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title_vertical, -.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_length { +.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title_vertical, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_length { display: block; } .openerp .oe_kanban_view .oe_kanban_group_folded .oe_dropdown_kanban { @@ -631,28 +639,6 @@ background: white; } -.openerp .oe_kanban_view .oe_view_nocontent { - position: relative; - z-index: 1; - max-width: none; - height: 100%; -} -.openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_content { - margin-left: 90px; - margin-top: 5px; - max-width: 700px; -} -.openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_bg { - background: #eee; - opacity: 0.7; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: -1; -} - .openerp .oe_popup_form .oe_kanban_buttons .oe_highlight { color: #404040; background: none; From d3657d858f1180d1add09ec6d9ae596a86323014 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Fri, 29 Mar 2013 14:58:53 +0100 Subject: [PATCH 18/26] [IMP] registry: add convenience operators ('in' and 'iter') on registry objects bzr revid: rco@openerp.com-20130329135853-woi26cl2yiofv7h2 --- openerp/modules/registry.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 89cb6143a59..679a73ebb1b 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -94,13 +94,21 @@ class Registry(object): self.models[model_name] = model def get(self, model_name): - """ Return a model for a given name or None if it doesn't exist.""" + """ Return the model with the given name or None if it doesn't exist.""" return self.models.get(model_name) def __getitem__(self, model_name): - """ Return a model for a given name or raise KeyError if it doesn't exist.""" + """ Return the model with the given name or raise KeyError if it doesn't exist.""" return self.models[model_name] + def __contains__(self, model_name): + """ Test whether the model with the given name exists. """ + return model_name in self.models + + def __iter__(self): + """ Return an iterator over all model names. """ + return iter(self.models) + def load(self, cr, module): """ Load a given module in the registry. From 09be864f1d2198afa245bc12d68cd38cc2119874 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Fri, 29 Mar 2013 15:07:23 +0100 Subject: [PATCH 19/26] [IMP] replace all tests like 'registry.get(X)' by 'X in registry' where X is non static bzr revid: rco@openerp.com-20130329140723-dnrl02saky570xg0 --- openerp/addons/base/ir/ir_actions.py | 31 +++-- openerp/addons/base/ir/ir_attachment.py | 8 +- openerp/addons/base/ir/ir_cron.py | 30 ++--- openerp/addons/base/ir/ir_model.py | 23 ++-- openerp/addons/base/ir/ir_rule.py | 6 +- openerp/addons/base/ir/ir_translation.py | 2 +- openerp/addons/base/ir/ir_ui_menu.py | 20 +-- openerp/addons/base/ir/ir_ui_view.py | 10 +- openerp/addons/base/ir/ir_values.py | 4 +- .../report/ir_module_reference_print.py | 6 +- openerp/modules/loading.py | 11 +- openerp/osv/expression.py | 4 +- openerp/osv/fields.py | 47 +++---- openerp/osv/orm.py | 116 +++++++++--------- openerp/report/print_xml.py | 2 +- openerp/service/model.py | 4 +- openerp/tests/test_uninstall.py | 8 +- openerp/tools/translate.py | 8 +- openerp/tools/yaml_import.py | 2 +- openerpcommand/model.py | 2 +- openerpcommand/read.py | 2 +- 21 files changed, 170 insertions(+), 176 deletions(-) diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index cde6f6f9a91..fb294ee781e 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -185,9 +185,9 @@ class act_window(osv.osv): def _check_model(self, cr, uid, ids, context=None): for action in self.browse(cr, uid, ids, context): - if not self.pool.get(action.res_model): + if action.res_model not in self.pool: return False - if action.src_model and not self.pool.get(action.src_model): + if action.src_model and action.src_model not in self.pool: return False return True @@ -530,7 +530,7 @@ class actions_server(osv.osv): } def get_email(self, cr, uid, action, context): - obj_pool = self.pool.get(action.model_id.model) + obj_pool = self.pool[action.model_id.model] id = context.get('active_id') obj = obj_pool.browse(cr, uid, id) @@ -550,7 +550,7 @@ class actions_server(osv.osv): return obj def get_mobile(self, cr, uid, action, context): - obj_pool = self.pool.get(action.model_id.model) + obj_pool = self.pool[action.model_id.model] id = context.get('active_id') obj = obj_pool.browse(cr, uid, id) @@ -574,7 +574,7 @@ class actions_server(osv.osv): context = {} def merge(match): - obj_pool = self.pool.get(action.model_id.model) + obj_pool = self.pool[action.model_id.model] id = context.get('active_id') obj = obj_pool.browse(cr, uid, id) exp = str(match.group()[2:-2]).strip() @@ -607,7 +607,7 @@ class actions_server(osv.osv): user = self.pool.get('res.users').browse(cr, uid, uid) for action in self.browse(cr, uid, ids, context): obj = None - obj_pool = self.pool.get(action.model_id.model) + obj_pool = self.pool[action.model_id.model] if context.get('active_model') == action.model_id.model and context.get('active_id'): obj = obj_pool.browse(cr, uid, context['active_id'], context=context) cxt = { @@ -628,8 +628,7 @@ class actions_server(osv.osv): if action.state=='client_action': if not action.action_id: raise osv.except_osv(_('Error'), _("Please specify an action to launch !")) - return self.pool.get(action.action_id.type)\ - .read(cr, uid, action.action_id.id, context=context) + return self.pool[action.action_id.type].read(cr, uid, action.action_id.id, context=context) if action.state=='code': eval(action.code, cxt, mode="exec", nocopy=True) # nocopy allows to return 'action' @@ -708,16 +707,16 @@ class actions_server(osv.osv): if not action.write_id: if not action.srcmodel_id: - obj_pool = self.pool.get(action.model_id.model) + obj_pool = self.pool[action.model_id.model] obj_pool.write(cr, uid, [context.get('active_id')], res) else: write_id = context.get('active_id') - obj_pool = self.pool.get(action.srcmodel_id.model) + obj_pool = self.pool[action.srcmodel_id.model] obj_pool.write(cr, uid, [write_id], res) elif action.write_id: - obj_pool = self.pool.get(action.srcmodel_id.model) - rec = self.pool.get(action.model_id.model).browse(cr, uid, context.get('active_id')) + obj_pool = self.pool[action.srcmodel_id.model] + rec = self.pool[action.model_id.model].browse(cr, uid, context.get('active_id')) id = eval(action.write_id, {'object': rec}) try: id = int(id) @@ -739,10 +738,10 @@ class actions_server(osv.osv): expr = exp.value res[exp.col1.name] = expr - obj_pool = self.pool.get(action.srcmodel_id.model) + obj_pool = self.pool[action.srcmodel_id.model] res_id = obj_pool.create(cr, uid, res) if action.record_id: - self.pool.get(action.model_id.model).write(cr, uid, [context.get('active_id')], {action.record_id.name:res_id}) + self.pool[action.model_id.model].write(cr, uid, [context.get('active_id')], {action.record_id.name:res_id}) if action.state == 'object_copy': res = {} @@ -756,7 +755,7 @@ class actions_server(osv.osv): model = action.copy_object.split(',')[0] cid = action.copy_object.split(',')[1] - obj_pool = self.pool.get(model) + obj_pool = self.pool[model] obj_pool.copy(cr, uid, int(cid), res) return False @@ -813,7 +812,7 @@ Launch Manually Once: after having been launched manually, it sets automatically # Load action act_type = self.pool.get('ir.actions.actions').read(cr, uid, wizard.action_id.id, ['type'], context=context) - res = self.pool.get(act_type['type']).read(cr, uid, wizard.action_id.id, [], context=context) + res = self.pool[act_type['type']].read(cr, uid, wizard.action_id.id, [], context=context) if act_type['type'] != 'ir.actions.act_window': return res res.setdefault('context','{}') diff --git a/openerp/addons/base/ir/ir_attachment.py b/openerp/addons/base/ir/ir_attachment.py index 1cd9ed94d4c..10104669796 100644 --- a/openerp/addons/base/ir/ir_attachment.py +++ b/openerp/addons/base/ir/ir_attachment.py @@ -50,7 +50,7 @@ class ir_attachment(osv.osv): model_object = attachment.res_model res_id = attachment.res_id if model_object and res_id: - model_pool = self.pool.get(model_object) + model_pool = self.pool[model_object] res = model_pool.name_get(cr,uid,[res_id],context) res_name = res and res[0][1] or False if res_name: @@ -205,9 +205,9 @@ class ir_attachment(osv.osv): for model, mids in res_ids.items(): # ignore attachments that are not attached to a resource anymore when checking access rights # (resource was deleted but attachment was not) - mids = self.pool.get(model).exists(cr, uid, mids) + mids = self.pool[model].exists(cr, uid, mids) ima.check(cr, uid, model, mode) - self.pool.get(model).check_access_rule(cr, uid, mids, mode, context=context) + self.pool[model].check_access_rule(cr, uid, mids, mode, context=context) def _search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False, access_rights_uid=None): ids = super(ir_attachment, self)._search(cr, uid, args, offset=offset, @@ -250,7 +250,7 @@ class ir_attachment(osv.osv): # filter ids according to what access rules permit target_ids = targets.keys() - allowed_ids = self.pool.get(model).search(cr, uid, [('id', 'in', target_ids)], context=context) + allowed_ids = self.pool[model].search(cr, uid, [('id', 'in', target_ids)], context=context) disallowed_ids = set(target_ids).difference(allowed_ids) for res_id in disallowed_ids: for attach_id in targets[res_id]: diff --git a/openerp/addons/base/ir/ir_cron.py b/openerp/addons/base/ir/ir_cron.py index c3f7ccc7dd2..eef43d535f3 100644 --- a/openerp/addons/base/ir/ir_cron.py +++ b/openerp/addons/base/ir/ir_cron.py @@ -124,21 +124,23 @@ class ir_cron(osv.osv): args = str2tuple(args) openerp.modules.registry.RegistryManager.check_registry_signaling(cr.dbname) registry = openerp.registry(cr.dbname) - model = registry.get(model_name) - if model and hasattr(model, method_name): - method = getattr(model, method_name) - log_depth = (None if _logger.isEnabledFor(logging.DEBUG) else 1) - netsvc.log(_logger, logging.DEBUG, 'cron.object.execute', (cr.dbname,uid,'*',model_name,method_name)+tuple(args), depth=log_depth) - if _logger.isEnabledFor(logging.DEBUG): - start_time = time.time() - method(cr, uid, *args) - if _logger.isEnabledFor(logging.DEBUG): - end_time = time.time() - _logger.debug('%.3fs (%s, %s)' % (end_time - start_time, model_name, method_name)) - openerp.modules.registry.RegistryManager.signal_caches_change(cr.dbname) + if model_name in registry: + model = registry[model_name] + if hasattr(model, method_name): + log_depth = (None if _logger.isEnabledFor(logging.DEBUG) else 1) + netsvc.log(_logger, logging.DEBUG, 'cron.object.execute', (cr.dbname,uid,'*',model_name,method_name)+tuple(args), depth=log_depth) + if _logger.isEnabledFor(logging.DEBUG): + start_time = time.time() + getattr(model, method_name)(cr, uid, *args) + if _logger.isEnabledFor(logging.DEBUG): + end_time = time.time() + _logger.debug('%.3fs (%s, %s)' % (end_time - start_time, model_name, method_name)) + openerp.modules.registry.RegistryManager.signal_caches_change(cr.dbname) + else: + msg = "Method `%s.%s` does not exist." % (model_name, method_name) + _logger.warning(msg) else: - msg = "Method `%s.%s` does not exist." % (model_name, method_name) \ - if model else "Model `%s` does not exist." % model_name + msg = "Model `%s` does not exist." % model_name _logger.warning(msg) except Exception, e: self._handle_callback_exception(cr, uid, model_name, method_name, args, job_id, e) diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index f0bacc1cd32..a95d29aa788 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -70,7 +70,7 @@ class ir_model(osv.osv): models = self.browse(cr, uid, ids, context=context) res = dict.fromkeys(ids) for model in models: - if self.pool.get(model.model): + if model.model in self.pool: res[model.id] = self.pool[model.model].is_transient() else: _logger.error('Missing model %s' % (model.model, )) @@ -340,7 +340,7 @@ class ir_model_fields(osv.osv): if vals.get('relation',False) and not self.pool['ir.model'].search(cr, user, [('model','=',vals['relation'])]): raise except_orm(_('Error'), _("Model %s does not exist!") % vals['relation']) - if self.pool.get(vals['model']): + if vals['model'] in self.pool: self.pool[vals['model']].__init__(self.pool, cr) #Added context to _auto_init for special treatment to custom field for select_level ctx = dict(context, @@ -367,7 +367,6 @@ class ir_model_fields(osv.osv): raise except_orm(_('Error!'), _('Renaming sparse field "%s" is not allowed')%field.name) column_rename = None # if set, *one* column can be renamed here - obj = None models_patch = {} # structs of (obj, [(field, prop, change_to),..]) # data to be updated on the orm model @@ -390,8 +389,7 @@ class ir_model_fields(osv.osv): checked_selection = False # need only check it once, so defer for item in self.browse(cr, user, ids, context=context): - if not (obj and obj._name == item.model): - obj = self.pool.get(item.model) + obj = self.pool.get(item.model) if item.state != 'manual': raise except_orm(_('Error!'), @@ -427,7 +425,7 @@ class ir_model_fields(osv.osv): # We don't check the 'state', because it might come from the context # (thus be set for multiple fields) and will be ignored anyway. - if obj: + if obj is not None: models_patch.setdefault(obj._name, (obj,[])) # find out which properties (per model) we need to update for field_name, field_property, set_fn in model_props: @@ -507,7 +505,7 @@ class ir_model_constraint(Model): ids.reverse() for data in self.browse(cr, uid, ids, context): model = data.model.model - model_obj = self.pool.get(model) + model_obj = self.pool[model] name = openerp.tools.ustr(data.name) typ = data.type @@ -682,7 +680,7 @@ class ir_model_access(osv.osv): model_name = model # TransientModel records have no access rights, only an implicit access rule - if not self.pool.get(model_name): + if model_name not in self.pool: _logger.error('Missing model %s' % (model_name, )) elif self.pool[model_name].is_transient(): return True @@ -746,9 +744,8 @@ class ir_model_access(osv.osv): def call_cache_clearing_methods(self, cr): self.check.clear_cache(self) # clear the cache of check function for model, method in self.__cache_clearing_methods: - object_ = self.pool.get(model) - if object_: - getattr(object_, method)() + if model in self.pool: + getattr(self.pool[model], method)() # # Check rights on actions @@ -896,7 +893,7 @@ class ir_model_data(osv.osv): 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) + model_obj = self.pool[model] if not context: context = {} # records created during module install should not display the messages of OpenChatter @@ -1114,7 +1111,7 @@ class ir_model_data(osv.osv): to_unlink.append((model,res_id)) if not config.get('import_partial'): for (model, res_id) in to_unlink: - if self.pool.get(model): + if model in self.pool: _logger.info('Deleting %s@%s', res_id, model) self.pool[model].unlink(cr, uid, [res_id]) diff --git a/openerp/addons/base/ir/ir_rule.py b/openerp/addons/base/ir/ir_rule.py index 7a6c79d5f51..9926fd689ac 100644 --- a/openerp/addons/base/ir/ir_rule.py +++ b/openerp/addons/base/ir/ir_rule.py @@ -65,7 +65,7 @@ class ir_rule(osv.osv): return res def _check_model_obj(self, cr, uid, ids, context=None): - return not any(self.pool.get(rule.model_id.model).is_transient() for rule in self.browse(cr, uid, ids, context)) + return not any(self.pool[rule.model_id.model].is_transient() for rule in self.browse(cr, uid, ids, context)) def _check_model_name(self, cr, uid, ids, context=None): # Don't allow rules on rules records (this model). @@ -153,9 +153,9 @@ class ir_rule(osv.osv): # involve objects on which the real uid has no acces rights. # This means also there is no implicit restriction (e.g. an object # references another object the user can't see). - query = self.pool.get(model_name)._where_calc(cr, SUPERUSER_ID, dom, active_test=False) + query = self.pool[model_name]._where_calc(cr, SUPERUSER_ID, dom, active_test=False) return query.where_clause, query.where_clause_params, query.tables - return [], [], ['"'+self.pool.get(model_name)._table+'"'] + return [], [], ['"' + self.pool[model_name]._table + '"'] def unlink(self, cr, uid, ids, context=None): res = super(ir_rule, self).unlink(cr, uid, ids, context=context) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 35547fe6f75..5d71568315f 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -334,7 +334,7 @@ class ir_translation(osv.osv): return result def translate_fields(self, cr, uid, model, id, field=None, context=None): - trans_model = self.pool.get(model) + trans_model = self.pool[model] domain = ['&', ('res_id', '=', id), ('name', '=like', model + ',%')] langs_ids = self.pool.get('res.lang').search(cr, uid, [('code', '!=', 'en_US')], context=context) if not langs_ids: diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index 95379098cf4..ac1d7b980e8 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -289,8 +289,7 @@ class ir_ui_menu(osv.osv): res = dict.fromkeys(ids, False) for menu in self.browse(cr, uid, ids, context=context): if menu.action and menu.action.type in ('ir.actions.act_window', 'ir.actions.client') and menu.action.res_model: - obj = self.pool.get(menu.action.res_model) - if obj and obj._needaction: + if menu.action.res_model in self.pool and self.pool[menu.action.res_model]._needaction: res[menu.id] = True return res @@ -307,14 +306,15 @@ class ir_ui_menu(osv.osv): 'needaction_counter': False, } if menu.action and menu.action.type in ('ir.actions.act_window', 'ir.actions.client') and menu.action.res_model: - obj = self.pool.get(menu.action.res_model) - if obj and obj._needaction: - if menu.action.type == 'ir.actions.act_window': - dom = menu.action.domain and eval(menu.action.domain, {'uid': uid}) or [] - else: - dom = eval(menu.action.params_store or '{}', {'uid': uid}).get('domain') - res[menu.id]['needaction_enabled'] = obj._needaction - res[menu.id]['needaction_counter'] = obj._needaction_count(cr, uid, dom, context=context) + if menu.action.res_model in self.pool: + obj = self.pool[menu.action.res_model] + if obj._needaction: + if menu.action.type == 'ir.actions.act_window': + dom = menu.action.domain and eval(menu.action.domain, {'uid': uid}) or [] + else: + dom = eval(menu.action.params_store or '{}', {'uid': uid}).get('domain') + res[menu.id]['needaction_enabled'] = obj._needaction + res[menu.id]['needaction_counter'] = obj._needaction_count(cr, uid, dom, context=context) return res _columns = { diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index 0b8ff4ee66f..6a73c1692e8 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -122,7 +122,7 @@ class view(osv.osv): if no error occurred, else False. """ try: - fvg = self.pool.get(view.model).fields_view_get(cr, uid, view_id=view.id, view_type=view.type, context=context) + fvg = self.pool[view.model].fields_view_get(cr, uid, view_id=view.id, view_type=view.type, context=context) return fvg['arch'] except: _logger.exception("Can't render view %s for model: %s", view.xml_id, view.model) @@ -216,9 +216,9 @@ class view(osv.osv): no_ancester=[] blank_nodes = [] - _Model_Obj=self.pool.get(model) - _Node_Obj=self.pool.get(node_obj) - _Arrow_Obj=self.pool.get(conn_obj) + _Model_Obj = self.pool[model] + _Node_Obj = self.pool[node_obj] + _Arrow_Obj = self.pool[conn_obj] for model_key,model_value in _Model_Obj._columns.items(): if model_value._type=='one2many': @@ -292,7 +292,7 @@ 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'], context=context) - name_map = dict(self.pool.get(model).name_get(cr, uid, [x['res_id'] for x in results], context=context)) + name_map = dict(self.pool[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. filtered_results = filter(lambda result: result['res_id'] in name_map, results) for result in filtered_results: diff --git a/openerp/addons/base/ir/ir_values.py b/openerp/addons/base/ir/ir_values.py index 9e0c8e5ab9b..dd8501230ec 100644 --- a/openerp/addons/base/ir/ir_values.py +++ b/openerp/addons/base/ir/ir_values.py @@ -397,11 +397,11 @@ class ir_values(osv.osv): action_model,id = action['value'].split(',') fields = [ field - for field in self.pool.get(action_model)._all_columns + for field in self.pool[action_model]._all_columns if field not in EXCLUDED_FIELDS] # FIXME: needs cleanup try: - action_def = self.pool.get(action_model).read(cr, uid, int(id), fields, context) + action_def = self.pool[action_model].read(cr, uid, int(id), fields, context) if action_def: if action_model in ('ir.actions.report.xml','ir.actions.act_window', 'ir.actions.wizard'): diff --git a/openerp/addons/base/module/report/ir_module_reference_print.py b/openerp/addons/base/module/report/ir_module_reference_print.py index bb95dd7b2b8..7f2b8a2a5b4 100644 --- a/openerp/addons/base/module/report/ir_module_reference_print.py +++ b/openerp/addons/base/module/report/ir_module_reference_print.py @@ -34,7 +34,7 @@ class ir_module_reference_print(report_sxw.rml_parse): 'findflds': self._fields_find, }) def _object_doc(self, obj): - modobj = self.pool.get(obj) + modobj = self.pool[obj] strdocs= modobj.__doc__ if not strdocs: return None @@ -48,7 +48,7 @@ class ir_module_reference_print(report_sxw.rml_parse): return res def _object_doc2(self, obj): - modobj = self.pool.get(obj) + modobj = self.pool[obj] strdocs= modobj.__doc__ if not strdocs: return None @@ -72,7 +72,7 @@ class ir_module_reference_print(report_sxw.rml_parse): return modobj.browse(self.cr, self.uid, ids) def _fields_find(self, obj): - modobj = self.pool.get(obj) + modobj = self.pool[obj] res = modobj.fields_get(self.cr, self.uid).items() res.sort() return res diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py index 73709055755..aeafd45099f 100644 --- a/openerp/modules/loading.py +++ b/openerp/modules/loading.py @@ -348,8 +348,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False): if processed_modules: cr.execute("""select model,name from ir_model where id NOT IN (select distinct model_id from ir_model_access)""") for (model, name) in cr.fetchall(): - model_obj = registry.get(model) - if model_obj and not model_obj.is_transient(): + if model in registry and not registry[model].is_transient(): _logger.warning('The model %s has no access rules, consider adding one. E.g. access_%s,access_%s,model_%s,,1,1,1,1', model, model.replace('.', '_'), model.replace('.', '_'), model.replace('.', '_')) @@ -357,15 +356,13 @@ def load_modules(db, force_demo=False, status=None, update_module=False): # been replaced by owner-only access rights cr.execute("""select distinct mod.model, mod.name from ir_model_access acc, ir_model mod where acc.model_id = mod.id""") for (model, name) in cr.fetchall(): - model_obj = registry.get(model) - if model_obj and model_obj.is_transient(): + if model in registry and registry[model].is_transient(): _logger.warning('The transient model %s (%s) should not have explicit access rules!', model, name) cr.execute("SELECT model from ir_model") for (model,) in cr.fetchall(): - obj = registry.get(model) - if obj: - obj._check_removed_columns(cr, log=True) + if model in registry: + registry[model]._check_removed_columns(cr, log=True) else: _logger.warning("Model %s is declared but cannot be loaded! (Perhaps a module was partially removed or renamed)", model) diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py index 6989be2ccb3..e4814dc2266 100644 --- a/openerp/osv/expression.py +++ b/openerp/osv/expression.py @@ -758,7 +758,7 @@ class expression(object): field_path = left.split('.', 1) field = working_model._columns.get(field_path[0]) if field and field._obj: - relational_model = working_model.pool.get(field._obj) + relational_model = working_model.pool[field._obj] else: relational_model = None @@ -787,7 +787,7 @@ class expression(object): # comments about inherits'd fields # { 'field_name': ('parent_model', 'm2o_field_to_reach_parent', # field_column_obj, origina_parent_model), ... } - next_model = working_model.pool.get(working_model._inherit_fields[field_path[0]][0]) + next_model = working_model.pool[working_model._inherit_fields[field_path[0]][0]] leaf.add_join_context(next_model, working_model._inherits[next_model._name], 'id', working_model._inherits[next_model._name]) push(leaf) diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index 34968a662fb..f38d1efa0cc 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -193,7 +193,7 @@ class reference(_column): result[value['id']] = value[name] if value[name]: model, res_id = value[name].split(',') - if not obj.pool.get(model).exists(cr, uid, [int(res_id)], context=context): + if not obj.pool[model].exists(cr, uid, [int(res_id)], context=context): result[value['id']] = False return result @@ -203,8 +203,8 @@ class reference(_column): # reference fields have a 'model,id'-like value, that we need to convert # to a real name model_name, res_id = value.split(',') - model = obj.pool.get(model_name) - if model and res_id: + if model_name in obj.pool and res_id: + model = obj.pool[model_name] return model.name_get(cr, uid, [int(res_id)], context=context)[0][1] return tools.ustr(value) @@ -456,7 +456,7 @@ class many2one(_column): res[r['id']] = r[name] for id in ids: res.setdefault(id, '') - obj = obj.pool.get(self._obj) + obj = obj.pool[self._obj] # build a dictionary of the form {'id_of_distant_resource': name_of_distant_resource} # we use uid=1 because the visibility of a many2one field value (just id and name) @@ -474,8 +474,8 @@ class many2one(_column): def set(self, cr, obj_src, id, field, values, user=None, context=None): if not context: context = {} - obj = obj_src.pool.get(self._obj) - self._table = obj_src.pool.get(self._obj)._table + obj = obj_src.pool[self._obj] + self._table = obj._table if type(values) == type([]): for act in values: if act[0] == 0: @@ -496,7 +496,7 @@ class many2one(_column): cr.execute('update '+obj_src._table+' set '+field+'=null where id=%s', (id,)) def search(self, cr, obj, args, name, value, offset=0, limit=None, uid=None, context=None): - return obj.pool.get(self._obj).search(cr, uid, args+self._domain+[('name', 'like', value)], offset, limit, context=context) + return obj.pool[self._obj].search(cr, uid, args+self._domain+[('name', 'like', value)], offset, limit, context=context) @classmethod @@ -533,8 +533,9 @@ class one2many(_column): res[id] = [] domain = self._domain(obj) if callable(self._domain) else self._domain - ids2 = obj.pool.get(self._obj).search(cr, user, domain + [(self._fields_id, 'in', ids)], limit=self._limit, context=context) - for r in obj.pool.get(self._obj)._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'): + model = obj.pool[self._obj] + ids2 = model.search(cr, user, domain + [(self._fields_id, 'in', ids)], limit=self._limit, context=context) + for r in model._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'): if r[self._fields_id] in res: res[r[self._fields_id]].append(r['id']) return res @@ -549,8 +550,8 @@ class one2many(_column): context['no_store_function'] = True if not values: return - _table = obj.pool.get(self._obj)._table - obj = obj.pool.get(self._obj) + obj = obj.pool[self._obj] + _table = obj._table for act in values: if act[0] == 0: act[2][self._fields_id] = id @@ -595,7 +596,7 @@ class one2many(_column): def search(self, cr, obj, args, name, value, offset=0, limit=None, uid=None, operator='like', context=None): domain = self._domain(obj) if callable(self._domain) else self._domain - return obj.pool.get(self._obj).name_search(cr, uid, value, domain, operator, context=context,limit=limit) + return obj.pool[self._obj].name_search(cr, uid, value, domain, operator, context=context,limit=limit) @classmethod @@ -666,7 +667,7 @@ class many2many(_column): tbl, col1, col2 = self._rel, self._id1, self._id2 if not all((tbl, col1, col2)): # the default table name is based on the stable alphabetical order of tables - dest_model = source_model.pool.get(self._obj) + dest_model = source_model.pool[self._obj] tables = tuple(sorted([source_model._table, dest_model._table])) if not tbl: assert tables[0] != tables[1], 'Implicit/Canonical naming of m2m relationship table '\ @@ -707,7 +708,7 @@ class many2many(_column): _logger.warning( "Specifying offset at a many2many.get() is deprecated and may" " produce unpredictable results.") - obj = model.pool.get(self._obj) + obj = model.pool[self._obj] rel, id1, id2 = self._sql_names(model) # static domains are lists, and are evaluated both here and on client-side, while string @@ -749,7 +750,7 @@ class many2many(_column): if not values: return rel, id1, id2 = self._sql_names(model) - obj = model.pool.get(self._obj) + obj = model.pool[self._obj] for act in values: if not (isinstance(act, list) or isinstance(act, tuple)) or not act: continue @@ -785,7 +786,7 @@ class many2many(_column): # TODO: use a name_search # def search(self, cr, obj, args, name, value, offset=0, limit=None, uid=None, operator='like', context=None): - return obj.pool.get(self._obj).search(cr, uid, args+self._domain+[('name', operator, value)], offset, limit, context=context) + return obj.pool[self._obj].search(cr, uid, args+self._domain+[('name', operator, value)], offset, limit, context=context) @classmethod def _as_display_name(cls, field, cr, uid, obj, value, context=None): @@ -1107,7 +1108,7 @@ class function(_column): if field_type == "many2one": # make the result a tuple if it is not already one if isinstance(value, (int,long)) and hasattr(obj._columns[field], 'relation'): - obj_model = obj.pool.get(obj._columns[field].relation) + obj_model = obj.pool[obj._columns[field].relation] dict_names = dict(obj_model.name_get(cr, uid, [value], context)) result = (value, dict_names[value]) @@ -1204,7 +1205,7 @@ class related(function): # Perform name_get as root, as seeing the name of a related object depends on # access right of source document, not target, so user may not have access. value_ids = list(set(value.id for value in res.itervalues() if value)) - value_name = dict(obj.pool.get(self._obj).name_get(cr, SUPERUSER_ID, value_ids, context=context)) + value_name = dict(obj.pool[self._obj].name_get(cr, SUPERUSER_ID, value_ids, context=context)) res = dict((id, value and (value.id, value_name[value.id])) for id, value in res.iteritems()) elif self._type in ('one2many', 'many2many'): @@ -1258,7 +1259,7 @@ class sparse(function): elif self._type == 'one2many': if not read_value: read_value = [] - relation_obj = obj.pool.get(self.relation) + relation_obj = obj.pool[self.relation] for vals in value: assert vals[0] in (0,1,2), 'Unsupported o2m value for sparse field: %s' % vals if vals[0] == 0: @@ -1301,10 +1302,10 @@ class sparse(function): value = value or [] if value: # filter out deleted records as superuser - relation_obj = obj.pool.get(obj._columns[field_name].relation) + relation_obj = obj.pool[obj._columns[field_name].relation] value = relation_obj.exists(cr, openerp.SUPERUSER_ID, value) if type(value) in (int,long) and field_type == 'many2one': - relation_obj = obj.pool.get(obj._columns[field_name].relation) + relation_obj = obj.pool[obj._columns[field_name].relation] # check for deleted record as superuser if not relation_obj.exists(cr, openerp.SUPERUSER_ID, [value]): value = False @@ -1452,7 +1453,7 @@ class property(function): # not target, so user may not have access) in order to avoid # pointing on an unexisting record. if property_destination_obj: - if res[id][prop_name] and obj.pool.get(property_destination_obj).exists(cr, SUPERUSER_ID, res[id][prop_name].id): + if res[id][prop_name] and obj.pool[property_destination_obj].exists(cr, SUPERUSER_ID, res[id][prop_name].id): name_get_ids[id] = res[id][prop_name].id else: res[id][prop_name] = False @@ -1460,7 +1461,7 @@ class property(function): # name_get as root (as seeing the name of a related # object depends on access right of source document, # not target, so user may not have access.) - name_get_values = dict(obj.pool.get(property_destination_obj).name_get(cr, SUPERUSER_ID, name_get_ids.values(), context=context)) + name_get_values = dict(obj.pool[property_destination_obj].name_get(cr, SUPERUSER_ID, name_get_ids.values(), context=context)) # the property field is a m2o, we need to return a tuple with (id, name) for k, v in name_get_ids.iteritems(): if res[k][prop_name]: diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 69c7498c6b9..dd427d3907e 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -420,7 +420,7 @@ class browse_record(object): for field_name, field_column in fields_to_fetch: if field_column._type == 'many2one': if result_line[field_name]: - obj = self._table.pool.get(field_column._obj) + obj = self._table.pool[field_column._obj] if isinstance(result_line[field_name], (list, tuple)): value = result_line[field_name][0] else: @@ -450,7 +450,7 @@ class browse_record(object): else: new_data[field_name] = browse_null() elif field_column._type in ('one2many', 'many2many') and len(result_line[field_name]): - new_data[field_name] = self._list_class([browse_record(self._cr, self._uid, id, self._table.pool.get(field_column._obj), self._cache, context=self._context, list_class=self._list_class, fields_process=self._fields_process) for id in result_line[field_name]], self._context) + new_data[field_name] = self._list_class([browse_record(self._cr, self._uid, id, self._table.pool[field_column._obj], self._cache, context=self._context, list_class=self._list_class, fields_process=self._fields_process) for id in result_line[field_name]], self._context) elif field_column._type == 'reference': if result_line[field_name]: if isinstance(result_line[field_name], browse_record): @@ -459,7 +459,7 @@ class browse_record(object): ref_obj, ref_id = result_line[field_name].split(',') ref_id = long(ref_id) if ref_id: - obj = self._table.pool.get(ref_obj) + obj = self._table.pool[ref_obj] new_data[field_name] = browse_record(self._cr, self._uid, ref_id, obj, self._cache, context=self._context, list_class=self._list_class, fields_process=self._fields_process) else: new_data[field_name] = browse_null() @@ -867,10 +867,10 @@ class BaseModel(object): raise TypeError('_name is mandatory in case of multiple inheritance') for parent_name in ((type(parent_names)==list) and parent_names or [parent_names]): - parent_model = pool.get(parent_name) - if not parent_model: + if parent_name not in pool: raise TypeError('The model "%s" specifies an unexisting parent class "%s"\n' 'You may need to add a dependency on the parent class\' module.' % (name, parent_name)) + parent_model = pool[parent_name] if not getattr(cls, '_original_module', None) and name == parent_model._name: cls._original_module = parent_model._original_module parent_class = parent_model.__class__ @@ -1095,7 +1095,7 @@ class BaseModel(object): return '' def selection_field(in_field): - col_obj = self.pool.get(in_field.keys()[0]) + col_obj = self.pool[in_field.keys()[0]] if f[i] in col_obj._columns.keys(): return col_obj._columns[f[i]] elif f[i] in col_obj._inherits.keys(): @@ -1183,10 +1183,10 @@ class BaseModel(object): if not data[fpos]: dt = '' for rr in r: - name_relation = self.pool.get(rr._table_name)._rec_name + name_relation = self.pool[rr._table_name]._rec_name if isinstance(rr[name_relation], browse_record): rr = rr[name_relation] - rr_name = self.pool.get(rr._table_name).name_get(cr, uid, [rr.id], context=context) + rr_name = self.pool[rr._table_name].name_get(cr, uid, [rr.id], context=context) rr_name = rr_name and rr_name[0] and rr_name[0][1] or '' dt += tools.ustr(rr_name or '') + ',' data[fpos] = dt[:-1] @@ -1199,7 +1199,7 @@ class BaseModel(object): i += 1 if i == len(f): if isinstance(r, browse_record): - r = self.pool.get(r._table_name).name_get(cr, uid, [r.id], context=context) + r = self.pool[r._table_name].name_get(cr, uid, [r.id], context=context) r = r and r[0] and r[0][1] or '' data[fpos] = tools.ustr(r or '') return [data] + lines @@ -1570,8 +1570,7 @@ class BaseModel(object): # get the default values for the inherited fields for t in self._inherits.keys(): - defaults.update(self.pool.get(t).default_get(cr, uid, fields_list, - context)) + defaults.update(self.pool[t].default_get(cr, uid, fields_list, context)) # get the default values defined in the object for f in fields_list: @@ -1605,11 +1604,11 @@ class BaseModel(object): if field in fields_list: fld_def = (field in self._columns) and self._columns[field] or self._inherit_fields[field][2] if fld_def._type == 'many2one': - obj = self.pool.get(fld_def._obj) + obj = self.pool[fld_def._obj] if not obj.search(cr, uid, [('id', '=', field_value or False)]): continue if fld_def._type == 'many2many': - obj = self.pool.get(fld_def._obj) + obj = self.pool[fld_def._obj] field_value2 = [] for i in range(len(field_value or [])): if not obj.search(cr, uid, [('id', '=', @@ -1618,18 +1617,18 @@ class BaseModel(object): field_value2.append(field_value[i]) field_value = field_value2 if fld_def._type == 'one2many': - obj = self.pool.get(fld_def._obj) + obj = self.pool[fld_def._obj] field_value2 = [] for i in range(len(field_value or [])): field_value2.append({}) for field2 in field_value[i]: if field2 in obj._columns.keys() and obj._columns[field2]._type == 'many2one': - obj2 = self.pool.get(obj._columns[field2]._obj) + obj2 = self.pool[obj._columns[field2]._obj] if not obj2.search(cr, uid, [('id', '=', field_value[i][field2])]): continue elif field2 in obj._inherit_fields.keys() and obj._inherit_fields[field2][2]._type == 'many2one': - obj2 = self.pool.get(obj._inherit_fields[field2][2]._obj) + obj2 = self.pool[obj._inherit_fields[field2][2]._obj] if not obj2.search(cr, uid, [('id', '=', field_value[i][field2])]): continue @@ -1649,7 +1648,7 @@ class BaseModel(object): # TODO I believe this loop can be replace by # res.extend(self._inherit_fields.key()) for parent in self._inherits: - res.extend(self.pool.get(parent).fields_get_keys(cr, user, context)) + res.extend(self.pool[parent].fields_get_keys(cr, user, context)) return res def _rec_name_fallback(self, cr, uid, context=None): @@ -1745,7 +1744,7 @@ class BaseModel(object): new_xml = etree.fromstring(encode(xml)) ctx = context.copy() ctx['base_model_name'] = self._name - xarch, xfields = self.pool.get(node.get('object')).__view_look_dom_arch(cr, user, new_xml, view_id, ctx) + xarch, xfields = self.pool[node.get('object')].__view_look_dom_arch(cr, user, new_xml, view_id, ctx) views['form'] = { 'arch': xarch, 'fields': xfields @@ -1763,7 +1762,7 @@ class BaseModel(object): column = False if column: - relation = self.pool.get(column._obj) + relation = self.pool[column._obj] if column._obj else None children = False views = {} @@ -1899,13 +1898,13 @@ class BaseModel(object): fields = {} if node.tag == 'diagram': if node.getchildren()[0].tag == 'node': - node_model = self.pool.get(node.getchildren()[0].get('object')) + node_model = self.pool[node.getchildren()[0].get('object')] node_fields = node_model.fields_get(cr, user, None, context) fields.update(node_fields) if not node.get("create") and not node_model.check_access_rights(cr, user, 'create', raise_exception=False): node.set("create", 'false') if node.getchildren()[1].tag == 'arrow': - arrow_fields = self.pool.get(node.getchildren()[1].get('object')).fields_get(cr, user, None, context) + arrow_fields = self.pool[node.getchildren()[1].get('object')].fields_get(cr, user, None, context) fields.update(arrow_fields) else: fields = self.fields_get(cr, user, None, context) @@ -2446,7 +2445,7 @@ class BaseModel(object): res[lang][f] = self._columns[f].string for table in self._inherits: cols = intersect(self._inherit_fields.keys(), fields) - res2 = self.pool.get(table).read_string(cr, uid, id, langs, cols, context) + res2 = self.pool[table].read_string(cr, uid, id, langs, cols, context) for lang in res2: if lang in res: res[lang]['code'] = lang @@ -2465,7 +2464,7 @@ class BaseModel(object): for table in self._inherits: cols = intersect(self._inherit_fields.keys(), vals) if cols: - self.pool.get(table).write_string(cr, uid, id, langs, vals, context) + self.pool[table].write_string(cr, uid, id, langs, vals, context) return True def _add_missing_default_values(self, cr, uid, values, context=None): @@ -2726,7 +2725,7 @@ class BaseModel(object): :param query: query object on which the JOIN should be added """ inherits_field = current_model._inherits[parent_model_name] - parent_model = self.pool.get(parent_model_name) + parent_model = self.pool[parent_model_name] parent_alias, parent_alias_statement = query.add_join((current_model._table, parent_model._table, inherits_field, 'id', inherits_field), implicit=True) return parent_alias @@ -2743,7 +2742,7 @@ class BaseModel(object): parent_alias = '"%s"' % current_table._table while field in current_table._inherit_fields and not field in current_table._columns: parent_model_name = current_table._inherit_fields[field][0] - parent_table = self.pool.get(parent_model_name) + parent_table = self.pool[parent_model_name] parent_alias = self._inherits_join_add(current_table, parent_model_name, query) current_table = parent_table return '%s."%s"' % (parent_alias, field) @@ -3142,7 +3141,7 @@ class BaseModel(object): _schema.debug(msg, self._table, k, f._type) if isinstance(f, fields.many2one): - dest_model = self.pool.get(f._obj) + dest_model = self.pool[f._obj] if dest_model._table != 'ir_actions': self._m2o_fix_foreign_key(cr, self._table, k, dest_model, f.ondelete) @@ -3177,9 +3176,9 @@ class BaseModel(object): # and add constraints if needed if isinstance(f, fields.many2one): - if not self.pool.get(f._obj): + if f._obj not in self.pool: raise except_orm('Programming Error', 'There is no reference available for %s' % (f._obj,)) - dest_model = self.pool.get(f._obj) + dest_model = self.pool[f._obj] ref = dest_model._table # ir_actions is inherited so foreign key doesn't work on it if ref != 'ir_actions': @@ -3299,9 +3298,8 @@ class BaseModel(object): def _o2m_raise_on_missing_reference(self, cr, f): # TODO this check should be a method on fields.one2many. - - other = self.pool.get(f._obj) - if other: + if f._obj in self.pool: + other = self.pool[f._obj] # TODO the condition could use fields_get_keys(). if f._fields_id not in other._columns.keys(): if f._fields_id not in other._inherit_fields.keys(): @@ -3312,9 +3310,9 @@ class BaseModel(object): self._save_relation_table(cr, m2m_tbl) cr.execute("SELECT relname FROM pg_class WHERE relkind IN ('r','v') AND relname=%s", (m2m_tbl,)) if not cr.dictfetchall(): - if not self.pool.get(f._obj): + if f._obj not in self.pool: raise except_orm('Programming Error', 'Many2Many destination model does not exist: `%s`' % (f._obj,)) - dest_model = self.pool.get(f._obj) + dest_model = self.pool[f._obj] ref = dest_model._table cr.execute('CREATE TABLE "%s" ("%s" INTEGER NOT NULL, "%s" INTEGER NOT NULL, UNIQUE("%s","%s"))' % (m2m_tbl, col1, col2, col1, col2)) # create foreign key references with ondelete=cascade, unless the targets are SQL views @@ -3419,7 +3417,7 @@ class BaseModel(object): """ res = {} for table in self._inherits: - other = self.pool.get(table) + other = self.pool[table] for col in other._columns.keys(): res[col] = (table, self._inherits[table], other._columns[col], table) for col in other._inherit_fields.keys(): @@ -3503,7 +3501,7 @@ class BaseModel(object): translation_obj = self.pool.get('ir.translation') for parent in self._inherits: - res.update(self.pool.get(parent).fields_get(cr, user, allfields, context)) + res.update(self.pool[parent].fields_get(cr, user, allfields, context)) for f, field in self._columns.iteritems(): if (allfields and f not in allfields) or \ @@ -3669,7 +3667,7 @@ class BaseModel(object): cols = [x for x in intersect(self._inherit_fields.keys(), fields_to_read) if x not in self._columns.keys()] if not cols: continue - res2 = self.pool.get(table).read(cr, user, [x[col] for x in res], cols, context, load) + res2 = self.pool[table].read(cr, user, [x[col] for x in res], cols, context, load) res3 = {} for r in res2: @@ -4009,9 +4007,9 @@ class BaseModel(object): if ir_value_ids: ir_values_obj.unlink(cr, uid, ir_value_ids, context=context) - for order, object, store_ids, fields in result_store: - if object != self._name: - obj = self.pool.get(object) + for order, obj_name, store_ids, fields in result_store: + if obj_name != self._name: + obj = self.pool[obj_name] cr.execute('select id from '+obj._table+' where id IN %s', (tuple(store_ids),)) rids = map(lambda x: x[0], cr.fetchall()) if rids: @@ -4175,7 +4173,7 @@ class BaseModel(object): # TODO: optimize for f in direct: if self._columns[f].translate: - src_trans = self.pool.get(self._name).read(cr, user, ids, [f])[0][f] + src_trans = self.pool[self._name].read(cr, user, ids, [f])[0][f] if not src_trans: src_trans = vals[f] # Inserting value to DB @@ -4211,7 +4209,7 @@ class BaseModel(object): v[val] = vals[val] unknown_fields.remove(val) if v: - self.pool.get(table).write(cr, user, nids, v, context) + self.pool[table].write(cr, user, nids, v, context) if unknown_fields: _logger.warning( @@ -4277,8 +4275,8 @@ class BaseModel(object): result.sort() done = {} - for order, object, ids_to_update, fields_to_recompute in result: - key = (object, tuple(fields_to_recompute)) + for order, model_name, ids_to_update, fields_to_recompute in result: + key = (model_name, tuple(fields_to_recompute)) done.setdefault(key, {}) # avoid to do several times the same computation todo = [] @@ -4286,7 +4284,7 @@ class BaseModel(object): if id not in done[key]: done[key][id] = True todo.append(id) - self.pool.get(object)._store_set_values(cr, user, todo, fields_to_recompute, context) + self.pool[model_name]._store_set_values(cr, user, todo, fields_to_recompute, context) self.step_workflow(cr, user, ids, context=context) return True @@ -4379,9 +4377,9 @@ class BaseModel(object): parent_context.pop('no_store_function', None) if record_id is None or not record_id: - record_id = self.pool.get(table).create(cr, user, tocreate[table], context=parent_context) + record_id = self.pool[table].create(cr, user, tocreate[table], context=parent_context) else: - self.pool.get(table).write(cr, user, [record_id], tocreate[table], context=parent_context) + self.pool[table].write(cr, user, [record_id], tocreate[table], context=parent_context) upd0 += ',' + self._inherits[table] upd1 += ',%s' @@ -4493,10 +4491,10 @@ class BaseModel(object): result += self._store_get_values(cr, user, [id_new], vals.keys(), context) result.sort() done = [] - for order, object, ids, fields2 in result: - if not (object, ids, fields2) in done: - self.pool.get(object)._store_set_values(cr, user, ids, fields2, context) - done.append((object, ids, fields2)) + for order, model_name, ids, fields2 in result: + if not (model_name, ids, fields2) in done: + self.pool[model_name]._store_set_values(cr, user, ids, fields2, context) + done.append((model_name, ids, fields2)) if self._log_create and not (context and context.get('no_store_function', False)): message = self._description + \ @@ -4720,7 +4718,7 @@ class BaseModel(object): # to reach the parent table (if it was not JOINed yet in the query) parent_alias = child_object._inherits_join_add(child_object, parent_model, query) # inherited rules are applied on the external table -> need to get the alias and replace - parent_table = self.pool.get(parent_model)._table + parent_table = self.pool[parent_model]._table added_clause = [clause.replace('"%s"' % parent_table, '"%s"' % parent_alias) for clause in added_clause] # change references to parent_table to parent_alias, because we now use the alias to refer to the table new_tables = [] @@ -4775,7 +4773,7 @@ class BaseModel(object): return # figure out the applicable order_by for the m2o - dest_model = self.pool.get(order_field_column._obj) + dest_model = self.pool[order_field_column._obj] m2o_order = dest_model._order if not regex_order.match(m2o_order): # _order is complex, can't use it here, so we default to _rec_name @@ -4822,7 +4820,7 @@ class BaseModel(object): else: continue # ignore non-readable or "non-joinable" fields elif order_field in self._inherit_fields: - parent_obj = self.pool.get(self._inherit_fields[order_field][3]) + parent_obj = self.pool[self._inherit_fields[order_field][3]] order_column = parent_obj._columns[order_field] if order_column._classic_read: inner_clause = self._inherits_join_calc(order_field, query) @@ -4895,7 +4893,7 @@ class BaseModel(object): if not args: args = [] if field in self._inherit_fields: - return self.pool.get(self._inherit_fields[field][0]).distinct_field_get(cr, uid, field, value, args, offset, limit) + return self.pool[self._inherit_fields[field][0]].distinct_field_get(cr, uid, field, value, args, offset, limit) else: return self._columns[field].search(cr, self, args, field, value, offset, limit, uid) @@ -4949,9 +4947,9 @@ class BaseModel(object): if field_to_other in default: # all the fields of 'other' are given by the record: default[field_to_other], # except the ones redefined in self - blacklist.update(set(self.pool.get(other)._all_columns) - set(self._columns)) + blacklist.update(set(self.pool[other]._all_columns) - set(self._columns)) else: - blacklist_given_fields(self.pool.get(other)) + blacklist_given_fields(self.pool[other]) blacklist_given_fields(self) res = dict(default) @@ -4966,7 +4964,7 @@ class BaseModel(object): elif field._type == 'many2one': res[f] = data[f] and data[f][0] elif field._type == 'one2many': - other = self.pool.get(field._obj) + other = self.pool[field._obj] # duplicate following the order of the ids because we'll rely on # it later for copying translations in copy_translation()! lines = [other.copy_data(cr, uid, line_id, context=context) for line_id in sorted(data[f])] @@ -4998,7 +4996,7 @@ class BaseModel(object): for field_name, field_def in fields.items(): # we must recursively copy the translations for o2o and o2m if field_def['type'] == 'one2many': - target_obj = self.pool.get(field_def['relation']) + target_obj = self.pool[field_def['relation']] old_record, new_record = self.read(cr, uid, [old_id, new_id], [field_name], context=context) # here we rely on the order of the ids to match the translations # as foreseen in copy_data() @@ -5267,7 +5265,7 @@ class BaseModel(object): result, record_ids = [], list(command[2]) # read the records and apply the updates - other_model = self.pool.get(self._all_columns[field_name].column._obj) + other_model = self.pool[self._all_columns[field_name].column._obj] for record in other_model.read(cr, uid, record_ids, fields=fields, context=context): record.update(updates.get(record['id'], {})) result.append(record) diff --git a/openerp/report/print_xml.py b/openerp/report/print_xml.py index f4191498aa8..3d74008e120 100644 --- a/openerp/report/print_xml.py +++ b/openerp/report/print_xml.py @@ -201,7 +201,7 @@ class document(object): args = [] # get the object if 'model' in attrs: - obj = self.pool.get(attrs['model']) + obj = self.pool[attrs['model']] else: if isinstance(browser, list): obj = browser[0]._table diff --git a/openerp/service/model.py b/openerp/service/model.py index 79f0ace4f2b..af1939e95d7 100644 --- a/openerp/service/model.py +++ b/openerp/service/model.py @@ -116,8 +116,8 @@ def check(f): last_quote_begin = errortxt.rfind('"', 0, last_quote_end) model_name = table = errortxt[last_quote_begin+1:last_quote_end].strip() model = table.replace("_",".") - model_obj = registry.get(model) - if model_obj: + if model in registry: + model_obj = registry[model] model_name = model_obj._description or model_obj._name msg += _('\n\n[object with reference: %s - %s]') % (model_name, model) except Exception: diff --git a/openerp/tests/test_uninstall.py b/openerp/tests/test_uninstall.py index 2425249afa4..6f6a623f6a9 100644 --- a/openerp/tests/test_uninstall.py +++ b/openerp/tests/test_uninstall.py @@ -15,9 +15,9 @@ def registry(model): def cursor(): return openerp.modules.registry.RegistryManager.get(DB).db.cursor() -def get_module(module_name): +def model_exists(model_name): registry = openerp.modules.registry.RegistryManager.get(DB) - return registry.get(module_name) + return model_name in registry def reload_registry(): openerp.modules.registry.RegistryManager.new( @@ -61,7 +61,7 @@ class test_uninstall(unittest2.TestCase): def test_01_install(self): """ Check a few things showing the module is installed. """ install_module('test_uninstall') - assert get_module('test_uninstall.model') + assert model_exists('test_uninstall.model') assert search_registry('ir.model.data', [('module', '=', 'test_uninstall')]) @@ -72,7 +72,7 @@ class test_uninstall(unittest2.TestCase): def test_02_uninstall(self): """ Check a few things showing the module is uninstalled. """ uninstall_module('test_uninstall') - assert not get_module('test_uninstall.model') + assert not model_exists('test_uninstall.model') assert not search_registry('ir.model.data', [('module', '=', 'test_uninstall')]) diff --git a/openerp/tools/translate.py b/openerp/tools/translate.py index 207d2f2992c..705502de812 100644 --- a/openerp/tools/translate.py +++ b/openerp/tools/translate.py @@ -659,7 +659,7 @@ def trans_generate(lang, modules, cr): model = encode(model) xml_name = "%s.%s" % (module, encode(xml_name)) - if not registry.get(model): + if model not in registry: _logger.error("Unable to find object %r", model) continue @@ -764,12 +764,12 @@ def trans_generate(lang, modules, cr): push_constraint_msg(module, term_type, model._name, constraint[msg_pos]) for (_, model, module) in cr.fetchall(): - model_obj = registry.get(model) - - if not model_obj: + if model not in registry: _logger.error("Unable to find object %r", model) continue + model_obj = registry[model] + if model_obj._constraints: push_local_constraints(module, model_obj, 'constraints') diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index 6c2d459d6a8..aba9db25f13 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -769,7 +769,7 @@ class YamlInterpreter(object): def process_delete(self, node): assert getattr(node, 'model'), "Attribute %s of delete tag is empty !" % ('model',) - if self.pool.get(node.model): + if node.model in self.pool: if node.search: ids = self.pool[node.model].search(self.cr, self.uid, eval(node.search, self.eval_context)) else: diff --git a/openerpcommand/model.py b/openerpcommand/model.py index 26a499c647f..ccd3ae78718 100644 --- a/openerpcommand/model.py +++ b/openerpcommand/model.py @@ -13,7 +13,7 @@ def run(args): openerp.netsvc.init_logger() registry = openerp.modules.registry.RegistryManager.get( args.database, update_module=False) - model = registry.get(args.model) + model = registry[args.model] longest_k = 1 longest_string = 1 columns = model._columns diff --git a/openerpcommand/read.py b/openerpcommand/read.py index d8455e16fff..5b68fb26ef0 100644 --- a/openerpcommand/read.py +++ b/openerpcommand/read.py @@ -19,7 +19,7 @@ def run(args): openerp.netsvc.init_logger() registry = openerp.modules.registry.RegistryManager.get( args.database, update_module=False) - model = registry.get(args.model) + model = registry[args.model] cr = registry.db.cursor() # TODO context manager field_names = [args.field] if args.field else [] if args.short: From 96ad6088540cc4cea5ea656f9350623cfecbc4a5 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Fri, 29 Mar 2013 15:37:20 +0100 Subject: [PATCH 20/26] [IMP] general: use registry[X] instead registry.get(X) when X is dynamic bzr revid: rco@openerp.com-20130329143720-80pkd4csemlk1aqz --- addons/account/account.py | 2 +- addons/account/account_invoice.py | 2 +- addons/account/wizard/pos_box.py | 2 +- .../account_analytic_plans.py | 6 ++--- addons/account_payment/report/order.rml | 2 +- addons/anonymization/anonymization.py | 4 ++-- addons/audittrail/audittrail.py | 17 +++++++------- addons/base_action_rule/base_action_rule.py | 8 +++---- addons/base_calendar/base_calendar.py | 8 +++---- addons/base_calendar/crm_meeting.py | 2 +- .../wizard/crm_forward_to_partner.py | 4 ++-- .../wizard/open_questionnaire.py | 2 +- addons/document/document.py | 13 +++++------ addons/document_webdav/nodes.py | 6 ++--- addons/edi/models/edi.py | 16 +++++++------- addons/email_template/email_template.py | 2 +- .../wizard/email_template_preview.py | 2 +- addons/google_docs/google_docs.py | 2 +- addons/hr_payroll/hr_payroll.py | 4 ++-- .../wizard/account_coda_import.py | 2 +- addons/l10n_multilang/l10n_multilang.py | 2 +- addons/mail/mail_alias.py | 2 +- addons/mail/mail_mail.py | 8 +++---- addons/mail/mail_message.py | 8 +++---- addons/mail/mail_thread.py | 22 +++++++++---------- addons/mail/wizard/invite.py | 6 ++--- addons/mail/wizard/mail_compose_message.py | 6 ++--- .../marketing_campaign/marketing_campaign.py | 12 +++++----- addons/pad/pad.py | 2 +- addons/plugin/plugin_handler.py | 6 ++--- addons/point_of_sale/point_of_sale.py | 2 +- addons/point_of_sale/wizard/pos_box.py | 6 ++--- addons/portal/mail_mail.py | 2 +- .../project/wizard/project_task_delegate.py | 2 +- addons/purchase/purchase.py | 2 +- addons/share/wizard/share_wizard.py | 14 ++++++------ .../stock/wizard/stock_invoice_onshipping.py | 4 ++-- addons/subscription/subscription.py | 4 ++-- addons/survey/wizard/survey_answer.py | 13 ++++++----- 39 files changed, 114 insertions(+), 115 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index bb24aec1748..48e66dd957b 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -3398,7 +3398,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): try: tmp2 = obj_data.get_object_reference(cr, uid, *ref) if tmp2: - self.pool.get(tmp2[0]).write(cr, uid, tmp2[1], { + self.pool[tmp2[0]].write(cr, uid, tmp2[1], { 'currency_id': obj_wizard.currency_id.id }) except ValueError, e: diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 30bdc2eedac..0802f77f497 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -313,7 +313,7 @@ class account_invoice(osv.osv): context = {} if context.get('active_model', '') in ['res.partner'] and context.get('active_ids', False) and context['active_ids']: - partner = self.pool.get(context['active_model']).read(cr, uid, context['active_ids'], ['supplier','customer'])[0] + partner = self.pool[context['active_model']].read(cr, uid, context['active_ids'], ['supplier','customer'])[0] if not view_type: view_id = self.pool.get('ir.ui.view').search(cr, uid, [('name', '=', 'account.invoice.tree')]) view_type = 'tree' diff --git a/addons/account/wizard/pos_box.py b/addons/account/wizard/pos_box.py index 49178dfd3ea..810d101eefd 100644 --- a/addons/account/wizard/pos_box.py +++ b/addons/account/wizard/pos_box.py @@ -21,7 +21,7 @@ class CashBox(osv.osv_memory): active_model = context.get('active_model', False) or False active_ids = context.get('active_ids', []) or [] - records = self.pool.get(active_model).browse(cr, uid, active_ids, context=context) + records = self.pool[active_model].browse(cr, uid, active_ids, context=context) return self._run(cr, uid, ids, records, context=None) diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index 5834db99cd3..40a227d8ceb 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -40,10 +40,10 @@ class one2many_mod2(fields.one2many): plan = journal.plan_id if plan and len(plan.plan_ids) > pnum: acc_id = plan.plan_ids[pnum].root_analytic_id.id - ids2 = obj.pool.get(self._obj).search(cr, user, [(self._fields_id,'in',ids),('analytic_account_id','child_of',[acc_id])], limit=self._limit) + ids2 = obj.pool[self._obj].search(cr, user, [(self._fields_id,'in',ids),('analytic_account_id','child_of',[acc_id])], limit=self._limit) if ids2 is None: - ids2 = obj.pool.get(self._obj).search(cr, user, [(self._fields_id,'in',ids)], limit=self._limit) - for r in obj.pool.get(self._obj)._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'): + ids2 = obj.pool[self._obj].search(cr, user, [(self._fields_id,'in',ids)], limit=self._limit) + for r in obj.pool[self._obj]._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'): res[r[self._fields_id]].append( r['id'] ) return res diff --git a/addons/account_payment/report/order.rml b/addons/account_payment/report/order.rml index ca2315d81b1..07d549db618 100644 --- a/addons/account_payment/report/order.rml +++ b/addons/account_payment/report/order.rml @@ -253,7 +253,7 @@ [[ get_invoice_name(line.ml_inv_ref.id) or '-' ]] - [[line.date=='False' and '-' or formatLang(line.date,date=True) ]] + [[not line.date and '-' or formatLang(line.date,date=True) ]] [[ formatLang(line.amount or '-', currency_obj=line.company_currency) ]] diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py index de46e2e8d03..025f1f79f70 100644 --- a/addons/anonymization/anonymization.py +++ b/addons/anonymization/anonymization.py @@ -411,7 +411,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory): model_name = field.model_id.model field_name = field.field_id.name field_type = field.field_id.ttype - table_name = self.pool.get(model_name)._table + table_name = self.pool[model_name]._table # get the current value sql = "select id, %s from %s" % (field_name, table_name) @@ -543,7 +543,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory): fixes = group(fixes, ('model_name', 'field_name')) for line in data: - table_name = self.pool.get(line['model_id'])._table if self.pool.get(line['model_id']) else None + table_name = self.pool[line['model_id']]._table if line['model_id'] in self.pool else None # check if custom sql exists: key = (line['model_id'], line['field_id']) diff --git a/addons/audittrail/audittrail.py b/addons/audittrail/audittrail.py index 811c5387697..159baf3a9e7 100644 --- a/addons/audittrail/audittrail.py +++ b/addons/audittrail/audittrail.py @@ -70,8 +70,7 @@ class audittrail_rule(osv.osv): obj_model = self.pool.get('ir.model.data') #start Loop for thisrule in self.browse(cr, uid, ids): - obj = self.pool.get(thisrule.object_id.model) - if not obj: + if thisrule.object_id.model not in self.pool: raise osv.except_osv( _('WARNING: audittrail is not part of the pool'), _('Change audittrail depends -- Setting rule as DRAFT')) @@ -131,7 +130,7 @@ class audittrail_log(osv.osv): model_object = resname.object_id res_id = resname.res_id if model_object and res_id: - model_pool = self.pool.get(model_object.model) + model_pool = self.pool[model_object.model] res = model_pool.read(cr, uid, res_id, ['name']) data[resname.id] = res['name'] else: @@ -190,7 +189,7 @@ def get_value_text(cr, uid, pool, resource_pool, method, field, value): field_obj = (resource_pool._all_columns.get(field)).column if field_obj._type in ('one2many','many2many'): - data = pool.get(field_obj._obj).name_get(cr, uid, value) + data = pool[field_obj._obj].name_get(cr, uid, value) #return the modifications on x2many fields as a list of names res = map(lambda x:x[1], data) elif field_obj._type == 'many2one': @@ -212,7 +211,7 @@ def create_log_line(cr, uid, log_id, model, lines=None): if lines is None: lines = [] pool = openerp.registry(cr.dbname) - obj_pool = pool.get(model.model) + obj_pool = pool[model.model] model_pool = pool.get('ir.model') field_pool = pool.get('ir.model.fields') log_line_pool = pool.get('audittrail.log.line') @@ -251,7 +250,7 @@ def log_fct(cr, uid_orig, model, method, fct_src, *args, **kw): @return: Returns result as per method of Object proxy """ pool = openerp.registry(cr.dbname) - resource_pool = pool.get(model) + resource_pool = pool[model] model_pool = pool.get('ir.model') model_ids = model_pool.search(cr, SUPERUSER_ID, [('model', '=', model)]) model_id = model_ids and model_ids[0] or False @@ -321,7 +320,7 @@ def get_data(cr, uid, pool, res_ids, model, method): } """ data = {} - resource_pool = pool.get(model.model) + resource_pool = pool[model.model] # read all the fields of the given resources in super admin mode for resource in resource_pool.read(cr, SUPERUSER_ID, res_ids): values = {} @@ -390,7 +389,7 @@ def prepare_audittrail_log_line(cr, uid, pool, model, resource_id, method, old_v key: [] } # loop on all the fields - for field_name, field_definition in pool.get(model.model)._all_columns.items(): + for field_name, field_definition in pool[model.model]._all_columns.items(): if field_name in ('__last_update', 'id'): continue #if the field_list param is given, skip all the fields not in that list @@ -457,7 +456,7 @@ def process_data(cr, uid, pool, res_ids, model, method, old_values=None, new_val # if at least one modification has been found for model_id, resource_id in lines: - name = pool.get(model.model).name_get(cr, uid, [resource_id])[0][1] + name = pool[model.model].name_get(cr, uid, [resource_id])[0][1] vals = { 'method': method, 'object_id': model_id, diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py index 62c808ed556..9d7d4d34ac4 100644 --- a/addons/base_action_rule/base_action_rule.py +++ b/addons/base_action_rule/base_action_rule.py @@ -96,7 +96,7 @@ class base_action_rule(osv.osv): """ filter the list record_ids that satisfy the action filter """ if record_ids and action_filter: assert action.model == action_filter.model_id, "Filter model different from action rule model" - model = self.pool.get(action_filter.model_id) + model = self.pool[action_filter.model_id] domain = [('id', 'in', record_ids)] + eval(action_filter.domain) ctx = dict(context or {}) ctx.update(eval(action_filter.context)) @@ -106,7 +106,7 @@ class base_action_rule(osv.osv): def _process(self, cr, uid, action, record_ids, context=None): """ process the given action on the records """ # execute server actions - model = self.pool.get(action.model_id.model) + model = self.pool[action.model_id.model] if action.server_action_ids: server_action_ids = map(int, action.server_action_ids) for record in model.browse(cr, uid, record_ids, context): @@ -195,7 +195,7 @@ class base_action_rule(osv.osv): ids = self.search(cr, SUPERUSER_ID, []) for action_rule in self.browse(cr, SUPERUSER_ID, ids): model = action_rule.model_id.model - model_obj = self.pool.get(model) + model_obj = self.pool[model] if not hasattr(model_obj, 'base_action_ruled'): model_obj.create = self._wrap_create(model_obj.create, model) model_obj.write = self._wrap_write(model_obj.write, model) @@ -232,7 +232,7 @@ class base_action_rule(osv.osv): last_run = get_datetime(action.last_run) if action.last_run else False # retrieve all the records that satisfy the action's condition - model = self.pool.get(action.model_id.model) + model = self.pool[action.model_id.model] domain = [] ctx = dict(context) if action.filter_id: diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index ca75c9e20fc..fe5ffbc8988 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -591,7 +591,7 @@ property or property parameter."), for vals in self.browse(cr, uid, ids, context=context): if vals.ref and vals.ref.user_id: - mod_obj = self.pool.get(vals.ref._name) + mod_obj = self.pool[vals.ref._name] res=mod_obj.read(cr,uid,[vals.ref.id],['duration','class'],context) defaults = {'user_id': vals.user_id.id, 'organizer_id': vals.ref.user_id.id,'duration':res[0]['duration'],'class':res[0]['class']} mod_obj.copy(cr, uid, vals.ref.id, default=defaults, context=context) @@ -684,7 +684,7 @@ true, it will allow you to hide the event alarm information without removing it. ir_obj = self.pool.get('ir.model') model_id = ir_obj.search(cr, uid, [('model', '=', model)])[0] - model_obj = self.pool.get(model) + model_obj = self.pool[model] for data in model_obj.browse(cr, uid, ids, context=context): basic_alarm = data.alarm_id @@ -754,7 +754,7 @@ true, it will allow you to hide the event alarm information without removing it. alarm_obj = self.pool.get('calendar.alarm') ir_obj = self.pool.get('ir.model') model_id = ir_obj.search(cr, uid, [('model', '=', model)])[0] - model_obj = self.pool.get(model) + model_obj = self.pool[model] for data in model_obj.browse(cr, uid, ids, context=context): alarm_ids = alarm_obj.search(cr, uid, [('model_id', '=', model_id), ('res_id', '=', data.id)]) if alarm_ids: @@ -853,7 +853,7 @@ class calendar_alarm(osv.osv): for alarm in self.browse(cr, uid, alarm_ids, context=context): next_trigger_date = None update_vals = {} - model_obj = self.pool.get(alarm.model_id.model) + model_obj = self.pool[alarm.model_id.model] res_obj = model_obj.browse(cr, uid, alarm.res_id, context=context) re_dates = [] diff --git a/addons/base_calendar/crm_meeting.py b/addons/base_calendar/crm_meeting.py index 6010f5ccfca..aa476002abc 100644 --- a/addons/base_calendar/crm_meeting.py +++ b/addons/base_calendar/crm_meeting.py @@ -135,7 +135,7 @@ class mail_message(osv.osv): def _find_allowed_model_wise(self, cr, uid, doc_model, doc_dict, context=None): if doc_model == 'crm.meeting': - for virtual_id in self.pool.get(doc_model).get_recurrent_ids(cr, uid, doc_dict.keys(), [], context=context): + for virtual_id in self.pool[doc_model].get_recurrent_ids(cr, uid, doc_dict.keys(), [], context=context): doc_dict.setdefault(virtual_id, doc_dict[get_real_ids(virtual_id)]) return super(mail_message, self)._find_allowed_model_wise(cr, uid, doc_model, doc_dict, context=context) diff --git a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py index 81cc09d9717..91d462de015 100644 --- a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py +++ b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py @@ -86,7 +86,7 @@ class crm_lead_forward_to_partner(osv.TransientModel): if context is None: context = {} if model and model == 'crm.lead' and res_id: - lead = self.pool.get(model).browse(cr, uid, res_id, context=context) + lead = self.pool[model].browse(cr, uid, res_id, context=context) context['history_mode'] = history_mode body = self.get_record_data(cr, uid, 'crm.lead', res_id, context=context)['body'] return {'value': {'body': body}} @@ -110,7 +110,7 @@ class crm_lead_forward_to_partner(osv.TransientModel): if wizard.model not in ('crm.lead'): return res - lead = self.pool.get(wizard.model) + lead = self.pool[wizard.model] lead_ids = wizard.res_id and [wizard.res_id] or [] if wizard.composition_mode == 'mass_mail': diff --git a/addons/crm_profiling/wizard/open_questionnaire.py b/addons/crm_profiling/wizard/open_questionnaire.py index cb7ad220e3f..be0d2ef54af 100644 --- a/addons/crm_profiling/wizard/open_questionnaire.py +++ b/addons/crm_profiling/wizard/open_questionnaire.py @@ -61,7 +61,7 @@ class open_questionnaire(osv.osv_memory): for d in data.question_ans_ids: if d.answer_id: answers.append(d.answer_id.id) - self.pool.get(model)._questionnaire_compute(cr, uid, answers, context=context) + self.pool[model]._questionnaire_compute(cr, uid, answers, context=context) return {'type': 'ir.actions.act_window_close'} diff --git a/addons/document/document.py b/addons/document/document.py index 9b1fdc1d66b..54f12e204fe 100644 --- a/addons/document/document.py +++ b/addons/document/document.py @@ -137,7 +137,7 @@ class document_file(osv.osv): It is a hack that will try to discover if the mentioned record is clearly associated with a partner record. """ - obj_model = self.pool.get(res_model) + obj_model = self.pool[res_model] if obj_model._name == 'res.partner': return res_id elif 'partner_id' in obj_model._columns and obj_model._columns['partner_id']._obj == 'res.partner': @@ -422,7 +422,6 @@ class document_directory_content(osv.osv): tname = '' if content.include_name: record_name = node.displayname or '' - # obj = node.context._dirobj.pool.get(model) if record_name: tname = (content.prefix or '') + record_name + (content.suffix or '') + (content.extension or '') else: @@ -1296,9 +1295,9 @@ class node_res_dir(node_class): Note that many objects use NULL for a name, so we should better call the name_search(),name_get() set of methods """ - obj = self.context._dirobj.pool.get(self.res_model) - if not obj: + if self.res_model not in self.context._dirobj.pool: return [] + obj = self.context._dirobj.pool[self.res_model] dirobj = self.context._dirobj uid = self.context.uid ctx = self.context.context.copy() @@ -1333,7 +1332,7 @@ class node_res_dir(node_class): if self.ressource_tree: object2 = False if self.resm_id: - object2 = dirobj.pool.get(self.res_model).browse(cr, uid, self.resm_id) or False + object2 = dirobj.pool[self.res_model].browse(cr, uid, self.resm_id) or False if obj._parent_name in obj.fields_get(cr, uid): where.append((obj._parent_name,'=',object2 and object2.id or False)) @@ -1504,7 +1503,7 @@ class node_res_obj(node_class): ctx = self.context.context.copy() ctx.update(self.dctx) directory = dirobj.browse(cr, uid, self.dir_id) - obj = dirobj.pool.get(self.res_model) + obj = dirobj.pool[self.res_model] where = [] res = [] if name: @@ -1590,7 +1589,7 @@ class node_res_obj(node_class): uid = self.context.uid ctx = self.context.context.copy() ctx.update(self.dctx) - res_obj = dirobj.pool.get(self.res_model) + res_obj = dirobj.pool[self.res_model] object2 = res_obj.browse(cr, uid, self.res_id) or False diff --git a/addons/document_webdav/nodes.py b/addons/document_webdav/nodes.py index 5e819e01754..9a35f3cfe1b 100644 --- a/addons/document_webdav/nodes.py +++ b/addons/document_webdav/nodes.py @@ -67,7 +67,7 @@ class node_acl_mixin(object): """ ret = par_class.get_dav_props(self, cr) if prop_model: - propobj = self.context._dirobj.pool.get(prop_model) + propobj = self.context._dirobj.pool[prop_model] uid = self.context.uid ctx = self.context.context.copy() ctx.update(self.dctx) @@ -105,7 +105,7 @@ class node_acl_mixin(object): if ret is not None: return ret if prop_model: - propobj = self.context._dirobj.pool.get(prop_model) + propobj = self.context._dirobj.pool[prop_model] uid = self.context.uid ctx = self.context.context.copy() ctx.update(self.dctx) @@ -151,7 +151,7 @@ class node_acl_mixin(object): assert prop_model assert res_id assert isinstance(lock_data, dict), '%r' % lock_data - propobj = self.context._dirobj.pool.get(prop_model) + propobj = self.context._dirobj.pool[prop_model] uid = self.context.uid ctx = self.context.context.copy() ctx.update(self.dctx) diff --git a/addons/edi/models/edi.py b/addons/edi/models/edi.py index 239b543e194..bfd59dae15a 100644 --- a/addons/edi/models/edi.py +++ b/addons/edi/models/edi.py @@ -106,8 +106,8 @@ class edi(osv.AbstractModel): """ edi_list = [] for record in records: - record_model_obj = self.pool.get(record._name) - edi_list += record_model_obj.edi_export(cr, uid, [record], context=context) + record_model = record._model + edi_list += record_model.edi_export(cr, uid, [record], context=context) return self.serialize(edi_list) def load_edi(self, cr, uid, edi_documents, context=None): @@ -131,9 +131,9 @@ class edi(osv.AbstractModel): "You can install it by connecting as the administrator and opening the configuration assistant.")%(module,)) model = edi_document.get('__import_model') or edi_document.get('__model') assert model, 'a `__model` or `__import_model` attribute is required in each EDI document.' - model_obj = self.pool.get(model) - assert model_obj, 'model `%s` cannot be found, despite module `%s` being available - '\ + assert model in self.pool, 'model `%s` cannot be found, despite module `%s` being available - '\ 'this EDI document seems invalid or unsupported.' % (model,module) + model_obj = self.pool[model] record_id = model_obj.edi_import(cr, uid, edi_document, context=context) record_action = model_obj._edi_record_display_action(cr, uid, record_id, context=context) res.append((model, record_id, record_action)) @@ -400,7 +400,7 @@ class EDIMixin(object): return results def _edi_get_object_by_name(self, cr, uid, name, model_name, context=None): - model = self.pool.get(model_name) + model = self.pool[model_name] search_results = model.name_search(cr, uid, name, operator='=', context=context) if len(search_results) == 1: return model.browse(cr, uid, search_results[0][0], context=context) @@ -483,7 +483,7 @@ class EDIMixin(object): ('name','=',ext_id), ('module','in',modules)]) if data_ids: - model = self.pool.get(model) + model = self.pool[model] data = ir_model_data.browse(cr, uid, data_ids[0], context=context) if model.exists(cr, uid, [data.res_id]): return model.browse(cr, uid, data.res_id, context=context) @@ -519,7 +519,7 @@ class EDIMixin(object): _logger.debug("%s: Importing EDI relationship [%r,%r] - name not found, creating it.", self._name, external_id, value) # also need_new_ext_id here, but already been set above - model = self.pool.get(model) + model = self.pool[model] res_id, _ = model.name_create(cr, uid, value, context=context) target = model.browse(cr, uid, res_id, context=context) else: @@ -592,7 +592,7 @@ class EDIMixin(object): # process o2m values, connecting them to their parent on-the-fly for o2m_field, o2m_value in o2m_todo.iteritems(): field = self._all_columns[o2m_field].column - dest_model = self.pool.get(field._obj) + dest_model = self.pool[field._obj] for o2m_line in o2m_value: # link to parent record: expects an (ext_id, name) pair o2m_line[field._fields_id] = (ext_id_members['full'], record_display[1]) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index ed76b69901c..5993252b72b 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -89,7 +89,7 @@ class email_template(osv.osv): template = tools.ustr(template) record = None if res_id: - record = self.pool.get(model).browse(cr, uid, res_id, context=context) + record = self.pool[model].browse(cr, uid, res_id, context=context) user = self.pool.get('res.users').browse(cr, uid, uid, context=context) variables = { 'object': record, diff --git a/addons/email_template/wizard/email_template_preview.py b/addons/email_template/wizard/email_template_preview.py index 1cfcf048691..f24c4f13962 100644 --- a/addons/email_template/wizard/email_template_preview.py +++ b/addons/email_template/wizard/email_template_preview.py @@ -40,7 +40,7 @@ class email_template_preview(osv.osv_memory): email_template = self.pool.get('email.template') template = email_template.browse(cr, uid, int(template_id), context=context) template_object = template.model_id - model = self.pool.get(template_object.model) + model = self.pool[template_object.model] record_ids = model.search(cr, uid, [], 0, 10, 'id', context=context) default_id = context.get('default_res_id') diff --git a/addons/google_docs/google_docs.py b/addons/google_docs/google_docs.py index cdb14de1de3..3b060e199c0 100644 --- a/addons/google_docs/google_docs.py +++ b/addons/google_docs/google_docs.py @@ -155,7 +155,7 @@ class google_docs_ir_attachment(osv.osv): pool_ir_attachment = self.pool.get('ir.attachment') pool_gdoc_config = self.pool.get('google.docs.config') name_gdocs = '' - model_fields_dic = self.pool.get(res_model).read(cr, uid, res_id, [], context=context) + model_fields_dic = self.pool[res_model].read(cr, uid, res_id, [], context=context) # check if a model is configured with a template google_docs_config = pool_gdoc_config.search(cr, uid, [('model_id', '=', res_model)], context=context) diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py index 06af3054b68..a3d3da04f0e 100644 --- a/addons/hr_payroll/hr_payroll.py +++ b/addons/hr_payroll/hr_payroll.py @@ -202,8 +202,8 @@ class one2many_mod2(fields.one2many): res = {} for id in ids: res[id] = [] - ids2 = obj.pool.get(self._obj).search(cr, user, [(self._fields_id,'in',ids), ('appears_on_payslip', '=', True)], limit=self._limit) - for r in obj.pool.get(self._obj)._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'): + ids2 = obj.pool[self._obj].search(cr, user, [(self._fields_id,'in',ids), ('appears_on_payslip', '=', True)], limit=self._limit) + for r in obj.pool[self._obj]._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'): res[r[self._fields_id]].append( r['id'] ) return res diff --git a/addons/l10n_be_coda/wizard/account_coda_import.py b/addons/l10n_be_coda/wizard/account_coda_import.py index 213040d6204..9465980629c 100644 --- a/addons/l10n_be_coda/wizard/account_coda_import.py +++ b/addons/l10n_be_coda/wizard/account_coda_import.py @@ -389,7 +389,7 @@ class account_coda_import(osv.osv_memory): if statement['coda_note'] != '': self.pool.get('account.bank.statement').write(cr, uid, [statement['id']], {'coda_note': statement['coda_note']}, context=context) model, action_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_bank_statement_tree') - action = self.pool.get(model).browse(cr, uid, action_id, context=context) + action = self.pool[model].browse(cr, uid, action_id, context=context) return { 'name': action.name, 'view_type': action.view_type, diff --git a/addons/l10n_multilang/l10n_multilang.py b/addons/l10n_multilang/l10n_multilang.py index 9596b292ff3..b94ff303eae 100644 --- a/addons/l10n_multilang/l10n_multilang.py +++ b/addons/l10n_multilang/l10n_multilang.py @@ -78,7 +78,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): else: #replace the value in the destination object only if it's the user lang if context.get('lang') == lang: - self.pool.get(out_obj._name).write(cr, uid, out_ids[j], {in_field: value[in_id]}) + self.pool[out_obj._name].write(cr, uid, out_ids[j], {in_field: value[in_id]}) else: _logger.info('Language: %s. Translation from template: there is no translation available for %s!' %(lang, src[in_id]))#out_obj._name)) return True diff --git a/addons/mail/mail_alias.py b/addons/mail/mail_alias.py index d5e3b675b56..dab6621824c 100644 --- a/addons/mail/mail_alias.py +++ b/addons/mail/mail_alias.py @@ -159,7 +159,7 @@ class mail_alias(osv.Model): registry = RegistryManager.get(cr.dbname) mail_alias = registry.get('mail.alias') - child_class_model = registry.get(child_model_name) + child_class_model = registry[child_model_name] no_alias_ids = child_class_model.search(cr, SUPERUSER_ID, [('alias_id', '=', False)], context={'active_test':False}) # Use read() not browse(), to avoid prefetching uninitialized inherited fields for obj_data in child_class_model.read(cr, SUPERUSER_ID, no_alias_ids, [alias_key]): diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py index c5a7e227465..8bcc8b0a91c 100644 --- a/addons/mail/mail_mail.py +++ b/addons/mail/mail_mail.py @@ -108,8 +108,8 @@ class mail_mail(osv.Model): res_id = message.res_id # if model and res_id: try to use ``message_get_reply_to`` that returns the document alias - if model and res_id and hasattr(self.pool.get(model), 'message_get_reply_to'): - email_reply_to = self.pool.get(model).message_get_reply_to(cr, uid, [res_id], context=context)[0] + if model and res_id and hasattr(self.pool[model], 'message_get_reply_to'): + email_reply_to = self.pool[model].message_get_reply_to(cr, uid, [res_id], context=context)[0] # no alias reply_to -> reply_to will be the email_from, only the email part if not email_reply_to and values.get('email_from'): emails = tools.email_split(values.get('email_from')) @@ -118,7 +118,7 @@ class mail_mail(osv.Model): # format 'Document name ' if email_reply_to and model and res_id: - document_name = self.pool.get(model).name_get(cr, SUPERUSER_ID, [res_id], context=context)[0] + document_name = self.pool[model].name_get(cr, SUPERUSER_ID, [res_id], context=context)[0] if document_name: # sanitize document name sanitized_doc_name = re.sub(r'[^\w+.]+', '-', document_name[1]) @@ -217,7 +217,7 @@ class mail_mail(osv.Model): and self.check_access_rights(cr, partner.user_ids[0].id, 'read', raise_exception=False): related_user = partner.user_ids[0] try: - self.pool.get(mail.model).check_access_rule(cr, related_user.id, [mail.res_id], 'read', context=context) + self.pool[mail.model].check_access_rule(cr, related_user.id, [mail.res_id], 'read', context=context) base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url') # the parameters to encode for the query and fragment part of url query = {'db': cr.dbname} diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index 8442891f3f9..dd5ebc8b48b 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -76,9 +76,9 @@ class mail_message(osv.Model): # TDE note: regroup by model/ids, to have less queries to perform result = dict.fromkeys(ids, False) for message in self.read(cr, uid, ids, ['model', 'res_id'], context=context): - if not message.get('model') or not message.get('res_id') or not self.pool.get(message['model']): + if not message.get('model') or not message.get('res_id') or message['model'] not in self.pool: continue - result[message['id']] = self.pool.get(message['model']).name_get(cr, SUPERUSER_ID, [message['res_id']], context=context)[0][1] + result[message['id']] = self.pool[message['model']].name_get(cr, SUPERUSER_ID, [message['res_id']], context=context)[0][1] return result def _get_to_read(self, cr, uid, ids, name, arg, context=None): @@ -563,7 +563,7 @@ class mail_message(osv.Model): def _find_allowed_model_wise(self, cr, uid, doc_model, doc_dict, context=None): doc_ids = doc_dict.keys() - allowed_doc_ids = self.pool.get(doc_model).search(cr, uid, [('id', 'in', doc_ids)], context=context) + allowed_doc_ids = self.pool[doc_model].search(cr, uid, [('id', 'in', doc_ids)], context=context) return set([message_id for allowed_doc_id in allowed_doc_ids for message_id in doc_dict[allowed_doc_id]]) def _find_allowed_doc_ids(self, cr, uid, model_ids, context=None): @@ -711,7 +711,7 @@ class mail_message(osv.Model): model_record_ids = _generate_model_record_ids(message_values, other_ids) document_related_ids = [] for model, doc_dict in model_record_ids.items(): - model_obj = self.pool.get(model) + model_obj = self.pool[model] mids = model_obj.exists(cr, uid, doc_dict.keys()) if operation in ['create', 'write', 'unlink']: model_obj.check_access_rights(cr, uid, 'write') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 778d7d53bd1..3c81af924e5 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -409,7 +409,7 @@ class mail_thread(osv.AbstractModel): """ Used by the plugin addon, based for plugin_outlook and others. """ ret_dict = {} for model_name in self.pool.obj_list(): - model = self.pool.get(model_name) + model = self.pool[model_name] if 'mail.thread' in getattr(model, '_inherit', []): ret_dict[model_name] = model._description return ret_dict @@ -478,12 +478,12 @@ class mail_thread(osv.AbstractModel): if ref_match: thread_id = int(ref_match.group(1)) model = ref_match.group(2) or model - model_pool = self.pool.get(model) - if thread_id and model and model_pool and model_pool.exists(cr, uid, thread_id) \ - and hasattr(model_pool, 'message_update'): - _logger.debug('Routing mail with Message-Id %s: direct reply to model: %s, thread_id: %s, custom_values: %s, uid: %s', - message_id, model, thread_id, custom_values, uid) - return [(model, thread_id, custom_values, uid)] + if thread_id and model in self.pool: + model_obj = self.pool[model] + if model_obj.exists(cr, uid, thread_id) and hasattr(model_obj, 'message_update'): + _logger.debug('Routing mail with Message-Id %s: direct reply to model: %s, thread_id: %s, custom_values: %s, uid: %s', + message_id, model, thread_id, custom_values, uid) + return [(model, thread_id, custom_values, uid)] # Verify whether this is a reply to a private message if in_reply_to: @@ -528,7 +528,7 @@ class mail_thread(osv.AbstractModel): return routes # 3. Fallback to the provided parameters, if they work - model_pool = self.pool.get(model) + model_pool = self.pool[model] if not thread_id: # Legacy: fallback to matching [ID] in the Subject match = tools.res_re.search(decode_header(message, 'Subject')) @@ -611,7 +611,7 @@ class mail_thread(osv.AbstractModel): if self._name == 'mail.thread': context.update({'thread_model': model}) if model: - model_pool = self.pool.get(model) + model_pool = self.pool[model] assert thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new'), \ "Undeliverable mail with Message-Id %s, model %s does not accept incoming emails" % \ (msg['message_id'], model) @@ -665,7 +665,7 @@ class mail_thread(osv.AbstractModel): if isinstance(custom_values, dict): data = custom_values.copy() model = context.get('thread_model') or self._name - model_pool = self.pool.get(model) + model_pool = self.pool[model] fields = model_pool.fields_get(cr, uid, context=context) if 'name' in fields and not data.get('name'): data['name'] = msg_dict.get('subject', '') @@ -942,7 +942,7 @@ class mail_thread(osv.AbstractModel): model = context.get('thread_model', self._name) if self._name == 'mail.thread' else self._name if model != self._name: del context['thread_model'] - return self.pool.get(model).message_post(cr, uid, thread_id, body=body, subject=subject, type=type, subtype=subtype, parent_id=parent_id, attachments=attachments, context=context, content_subtype=content_subtype, **kwargs) + return self.pool[model].message_post(cr, uid, thread_id, body=body, subject=subject, type=type, subtype=subtype, parent_id=parent_id, attachments=attachments, context=context, content_subtype=content_subtype, **kwargs) # 0: Parse email-from, try to find a better author_id based on document's followers for incoming emails email_from = kwargs.get('email_from') diff --git a/addons/mail/wizard/invite.py b/addons/mail/wizard/invite.py index 2eb48f3d998..4ff6584d789 100644 --- a/addons/mail/wizard/invite.py +++ b/addons/mail/wizard/invite.py @@ -37,10 +37,10 @@ class invite_wizard(osv.osv_memory): res_id = result.get('res_id') if 'message' in fields and model and res_id: ir_model = self.pool.get('ir.model') - model_ids = ir_model.search(cr, uid, [('model', '=', self.pool.get(model)._name)], context=context) + model_ids = ir_model.search(cr, uid, [('model', '=', self.pool[model]._name)], context=context) model_name = ir_model.name_get(cr, uid, model_ids, context=context)[0][1] - document_name = self.pool.get(model).name_get(cr, uid, [res_id], context=context)[0][1] + document_name = self.pool[model].name_get(cr, uid, [res_id], context=context)[0][1] message = _('

Hello,

%s invited you to follow %s document: %s.

') % (user_name, model_name, document_name) result['message'] = message elif 'message' in fields: @@ -63,7 +63,7 @@ class invite_wizard(osv.osv_memory): def add_followers(self, cr, uid, ids, context=None): for wizard in self.browse(cr, uid, ids, context=context): - model_obj = self.pool.get(wizard.res_model) + model_obj = self.pool[wizard.res_model] document = model_obj.browse(cr, uid, wizard.res_id, context=context) # filter partner_ids to get the new followers, to avoid sending email to already following partners diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 66e7149ac6d..b259135b7b7 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -174,7 +174,7 @@ class mail_compose_message(osv.TransientModel): related to. :param int res_id: id of the document record this mail is related to """ - doc_name_get = self.pool.get(model).name_get(cr, uid, [res_id], context=context) + doc_name_get = self.pool[model].name_get(cr, uid, [res_id], context=context) if doc_name_get: record_name = doc_name_get[0][1] else: @@ -231,7 +231,7 @@ class mail_compose_message(osv.TransientModel): mass_mail_mode = wizard.composition_mode == 'mass_mail' if mass_mail_mode: # mass mail: avoid any auto subscription because this could lead to people being follower of plenty of documents context['mail_create_nosubscribe'] = True - active_model_pool = self.pool.get(wizard.model if wizard.model else 'mail.thread') + active_model_pool = self.pool[wizard.model if wizard.model else 'mail.thread'] # wizard works in batch mode: [res_id] or active_ids res_ids = active_ids if mass_mail_mode and wizard.model and active_ids else [wizard.res_id] @@ -313,7 +313,7 @@ class mail_compose_message(osv.TransientModel): exp = str(match.group()[2:-1]).strip() result = eval(exp, { 'user': self.pool.get('res.users').browse(cr, uid, uid, context=context), - 'object': self.pool.get(model).browse(cr, uid, res_id, context=context), + 'object': self.pool[model].browse(cr, uid, res_id, context=context), 'context': dict(context), # copy context to prevent side-effects of eval }) return result and tools.ustr(result) or '' diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py index dfa13259383..4aa340d7a14 100644 --- a/addons/marketing_campaign/marketing_campaign.py +++ b/addons/marketing_campaign/marketing_campaign.py @@ -165,7 +165,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor # dead code def signal(self, cr, uid, model, res_id, signal, run_existing=True, context=None): - record = self.pool.get(model).browse(cr, uid, res_id, context) + record = self.pool[model].browse(cr, uid, res_id, context) return self._signal(cr, uid, record, signal, run_existing, context) #dead code @@ -228,7 +228,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor if unique_value: if unique_field.ttype == 'many2one': unique_value = unique_value.id - similar_res_ids = self.pool.get(campaign_rec.object_id.model).search(cr, uid, + similar_res_ids = self.pool[campaign_rec.object_id.model].search(cr, uid, [(unique_field.name, '=', unique_value)], context=context) if similar_res_ids: duplicate_workitem_domain = [('res_id','in', similar_res_ids), @@ -349,7 +349,7 @@ class marketing_campaign_segment(osv.osv): act_ids = self.pool.get('marketing.campaign.activity').search(cr, uid, [('start', '=', True), ('campaign_id', '=', segment.campaign_id.id)], context=context) - model_obj = self.pool.get(segment.object_id.model) + model_obj = self.pool[segment.object_id.model] criteria = [] if segment.sync_last_date and segment.sync_mode != 'all': criteria += [(segment.sync_mode, '>', segment.sync_last_date)] @@ -594,7 +594,7 @@ class marketing_campaign_workitem(osv.osv): if not wi.res_id: continue - proxy = self.pool.get(wi.object_id.model) + proxy = self.pool[wi.object_id.model] if not proxy.exists(cr, uid, [wi.res_id]): continue ng = proxy.name_get(cr, uid, [wi.res_id], context=context) @@ -628,7 +628,7 @@ class marketing_campaign_workitem(osv.osv): for id, res_id, model in res: workitem_map.setdefault(model,{}).setdefault(res_id,set()).add(id) for model, id_map in workitem_map.iteritems(): - model_pool = self.pool.get(model) + model_pool = self.pool[model] condition_name[0] = model_pool._rec_name condition = [('id', 'in', id_map.keys()), condition_name] for res_id in model_pool.search(cr, uid, condition, context=context): @@ -676,7 +676,7 @@ class marketing_campaign_workitem(osv.osv): return False activity = workitem.activity_id - proxy = self.pool.get(workitem.object_id.model) + proxy = self.pool[workitem.object_id.model] object_id = proxy.browse(cr, uid, workitem.res_id, context=context) eval_context = { diff --git a/addons/pad/pad.py b/addons/pad/pad.py index 90f5354054c..4cd9e91b76e 100644 --- a/addons/pad/pad.py +++ b/addons/pad/pad.py @@ -42,7 +42,7 @@ class pad_common(osv.osv_memory): myPad.createPad(path) #get attr on the field model - model = self.pool.get(context["model"]) + model = self.pool[context["model"]] field = model._all_columns[context['field_name']] real_field = field.column.pad_content_field diff --git a/addons/plugin/plugin_handler.py b/addons/plugin/plugin_handler.py index 0664af1c92e..b4b5064f2b1 100644 --- a/addons/plugin/plugin_handler.py +++ b/addons/plugin/plugin_handler.py @@ -57,7 +57,7 @@ class plugin_handler(osv.osv_memory): res_id = msg.res_id model = msg.model url = self._make_url(cr, uid, res_id, model) - name = self.pool.get(model).name_get(cr, uid, [res_id])[0][1] + name = self.pool[model].name_get(cr, uid, [res_id])[0][1] return (model,res_id, url,name) def document_type(self, cr, uid, context=None): @@ -81,7 +81,7 @@ class plugin_handler(osv.osv_memory): @return : the result of name_search a list of tuple [(id, 'name')] """ - return self.pool.get(model).name_search(cr, uid, name) + return self.pool[model].name_search(cr, uid, name) def push_message(self, cr, uid, model, email, res_id=0): """ @@ -91,7 +91,7 @@ class plugin_handler(osv.osv_memory): @return Dictionary which contain model , url and resource id. """ mail_message = self.pool.get('mail.message') - model_obj = self.pool.get(model) + model_obj = self.pool[model] msg = self.pool.get('mail.thread').message_parse(cr, uid, email) message_id = msg.get('message-id') mail_ids = mail_message.search(cr, uid, [('message_id','=',message_id),('res_id','=',res_id),('model','=',model)]) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index 7e8487b2b2b..5e680833dd6 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -1279,7 +1279,7 @@ class ean_wizard(osv.osv_memory): ean13 = openerp.addons.product.product.sanitize_ean13(r.ean13_pattern) m = context.get('active_model') m_id = context.get('active_id') - self.pool.get(m).write(cr,uid,[m_id],{'ean13':ean13}) + self.pool[m].write(cr,uid,[m_id],{'ean13':ean13}) return { 'type' : 'ir.actions.act_window_close' } class product_product(osv.osv): diff --git a/addons/point_of_sale/wizard/pos_box.py b/addons/point_of_sale/wizard/pos_box.py index 776d962a3a8..471153695f4 100644 --- a/addons/point_of_sale/wizard/pos_box.py +++ b/addons/point_of_sale/wizard/pos_box.py @@ -16,7 +16,7 @@ class PosBox(CashBox): active_ids = context.get('active_ids', []) or [] if active_model == 'pos.session': - records = self.pool.get(active_model).browse(cr, uid, active_ids, context=context) + records = self.pool[active_model].browse(cr, uid, active_ids, context=context) bank_statements = [record.cash_register_id for record in records if record.cash_register_id] if not bank_statements: @@ -41,7 +41,7 @@ class PosBoxIn(PosBox): active_ids = context.get('active_ids', []) or [] if active_model == 'pos.session': - session = self.pool.get(active_model).browse(cr, uid, active_ids, context=context)[0] + session = self.pool[active_model].browse(cr, uid, active_ids, context=context)[0] values['ref'] = session.name return values @@ -57,7 +57,7 @@ class PosBoxOut(PosBox): active_ids = context.get('active_ids', []) or [] if active_model == 'pos.session': - session = self.pool.get(active_model).browse(cr, uid, active_ids, context=context)[0] + session = self.pool[active_model].browse(cr, uid, active_ids, context=context)[0] values['ref'] = session.name return values diff --git a/addons/portal/mail_mail.py b/addons/portal/mail_mail.py index 3810ddd2540..bc982671bfe 100644 --- a/addons/portal/mail_mail.py +++ b/addons/portal/mail_mail.py @@ -45,7 +45,7 @@ class mail_mail(osv.Model): and self.check_access_rights(cr, partner.user_ids[0].id, 'read', raise_exception=False): related_user = partner.user_ids[0] try: - self.pool.get(mail.model).check_access_rule(cr, related_user.id, [mail.res_id], 'read', context=context) + self.pool[mail.model].check_access_rule(cr, related_user.id, [mail.res_id], 'read', context=context) url = partner_obj._get_signup_url_for_action(cr, related_user.id, [partner.id], action='', res_id=mail.res_id, model=mail.model, context=context)[partner.id] text = _("""Access this document directly in OpenERP""") % url except except_orm, e: diff --git a/addons/project/wizard/project_task_delegate.py b/addons/project/wizard/project_task_delegate.py index bb15c62db1f..bbea5ce2d8f 100644 --- a/addons/project/wizard/project_task_delegate.py +++ b/addons/project/wizard/project_task_delegate.py @@ -125,7 +125,7 @@ class project_task_delegate(osv.osv_memory): action_model, action_id = models_data.get_object_reference(cr, uid, 'project', 'action_view_task') view_model, task_view_form_id = models_data.get_object_reference(cr, uid, 'project', 'view_task_form2') view_model, task_view_tree_id = models_data.get_object_reference(cr, uid, 'project', 'view_task_tree2') - action = self.pool.get(action_model).read(cr, uid, action_id, context=context) + action = self.pool[action_model].read(cr, uid, action_id, context=context) action['res_id'] = delegated_tasks[task_id] action['view_id'] = False action['views'] = [(task_view_form_id, 'form'), (task_view_tree_id, 'tree')] diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 6258a18e399..7d73b0169ed 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -371,7 +371,7 @@ class purchase_order(osv.osv): pick_ids += [picking.id for picking in po.picking_ids] action_model, action_id = tuple(mod_obj.get_object_reference(cr, uid, 'stock', 'action_picking_tree4')) - action = self.pool.get(action_model).read(cr, uid, action_id, context=context) + action = self.pool[action_model].read(cr, uid, action_id, context=context) ctx = eval(action['context']) ctx.update({ 'search_default_purchase_id': ids[0] diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py index 429a1dc2f08..813a8a80e88 100644 --- a/addons/share/wizard/share_wizard.py +++ b/addons/share/wizard/share_wizard.py @@ -205,7 +205,7 @@ class share_wizard(osv.TransientModel): raise osv.except_osv(_('No email address configured'), _('You must configure your email address in the user preferences before using the Share button.')) model, res_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'share', 'action_share_wizard_step1') - action = self.pool.get(model).read(cr, uid, res_id, context=context) + action = self.pool[model].read(cr, uid, res_id, context=context) action['res_id'] = ids[0] action.pop('context', '') return action @@ -404,7 +404,7 @@ class share_wizard(osv.TransientModel): local_rel_fields = [] models = [x[1].model for x in relation_fields] model_obj = self.pool.get('ir.model') - model_osv = self.pool.get(model.model) + model_osv = self.pool[model.model] for colinfo in model_osv._all_columns.itervalues(): coldef = colinfo.column coltype = coldef._type @@ -412,7 +412,7 @@ class share_wizard(osv.TransientModel): if coltype in ttypes and colinfo.column._obj not in models: relation_model_id = model_obj.search(cr, UID_ROOT, [('model','=',coldef._obj)])[0] relation_model_browse = model_obj.browse(cr, UID_ROOT, relation_model_id, context=context) - relation_osv = self.pool.get(coldef._obj) + relation_osv = self.pool[coldef._obj] if coltype == 'one2many': # don't record reverse path if it's not a real m2o (that happens, but rarely) dest_model_ci = relation_osv._all_columns @@ -422,7 +422,7 @@ class share_wizard(osv.TransientModel): local_rel_fields.append((relation_field, relation_model_browse)) for parent in relation_osv._inherits: if parent not in models: - parent_model = self.pool.get(parent) + parent_model = self.pool[parent] parent_colinfos = parent_model._all_columns parent_model_browse = model_obj.browse(cr, UID_ROOT, model_obj.search(cr, UID_ROOT, [('model','=',parent)]))[0] @@ -458,7 +458,7 @@ class share_wizard(osv.TransientModel): """ # obj0 class and its parents obj0 = [(None, model)] - model_obj = self.pool.get(model.model) + model_obj = self.pool[model.model] ir_model_obj = self.pool.get('ir.model') for parent in model_obj._inherits: parent_model_browse = ir_model_obj.browse(cr, UID_ROOT, @@ -777,7 +777,7 @@ class share_wizard(osv.TransientModel): # Record id not found: issue if res_id <= 0: raise osv.except_osv(_('Record id not found'), _('The share engine has not been able to fetch a record_id for your invitation.')) - self.pool.get(model.model).message_subscribe(cr, uid, [res_id], new_ids + existing_ids, context=context) + self.pool[model.model].message_subscribe(cr, uid, [res_id], new_ids + existing_ids, context=context) # self.send_invite_email(cr, uid, wizard_data, context=context) # self.send_invite_note(cr, uid, model.model, res_id, wizard_data, context=context) @@ -823,7 +823,7 @@ class share_wizard(osv.TransientModel): elif tmp_idx == len(wizard_data.result_line_ids)-2: body += ' and' body += '.' - return self.pool.get(model_name).message_post(cr, uid, [res_id], body=body, context=context) + return self.pool[model_name].message_post(cr, uid, [res_id], body=body, context=context) def send_invite_email(self, cr, uid, wizard_data, context=None): # TDE Note: not updated because will disappear diff --git a/addons/stock/wizard/stock_invoice_onshipping.py b/addons/stock/wizard/stock_invoice_onshipping.py index 7c960c5e617..d742ede366d 100644 --- a/addons/stock/wizard/stock_invoice_onshipping.py +++ b/addons/stock/wizard/stock_invoice_onshipping.py @@ -39,7 +39,7 @@ class stock_invoice_onshipping(osv.osv_memory): if not model or 'stock.picking' not in model: return [] - model_pool = self.pool.get(model) + model_pool = self.pool[model] journal_obj = self.pool.get('account.journal') res_ids = context and context.get('active_ids', []) vals = [] @@ -119,7 +119,7 @@ class stock_invoice_onshipping(osv.osv_memory): elif inv_type == "in_refund": action_model,action_id = data_pool.get_object_reference(cr, uid, 'account', "action_invoice_tree4") if action_model: - action_pool = self.pool.get(action_model) + action_pool = self.pool[action_model] action = action_pool.read(cr, uid, action_id, context=context) action['domain'] = "[('id','in', ["+','.join(map(str,invoice_ids))+"])]" return action diff --git a/addons/subscription/subscription.py b/addons/subscription/subscription.py index 92bde135bc6..356ab78aadb 100644 --- a/addons/subscription/subscription.py +++ b/addons/subscription/subscription.py @@ -115,7 +115,7 @@ class subscription_subscription(osv.osv): try: (model_name, id) = row['doc_source'].split(',') id = int(id) - model = self.pool.get(model_name) + model = self.pool[model_name] except: raise osv.except_osv(_('Wrong Source Document !'), _('Please provide another source document.\nThis one does not exist !')) @@ -136,7 +136,7 @@ class subscription_subscription(osv.osv): # the subscription is over and we mark it as being done if remaining == 1: state = 'done' - id = self.pool.get(model_name).copy(cr, uid, id, default, context) + id = self.pool[model_name].copy(cr, uid, id, default, context) self.pool.get('subscription.subscription.history').create(cr, uid, {'subscription_id': row['id'], 'date':time.strftime('%Y-%m-%d %H:%M:%S'), 'document_id': model_name+','+str(id)}) self.write(cr, uid, [row['id']], {'state':state}) return True diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py index 903937af441..a108388ac8e 100644 --- a/addons/survey/wizard/survey_answer.py +++ b/addons/survey/wizard/survey_answer.py @@ -402,9 +402,10 @@ class survey_question_wiz(osv.osv_memory): sur_response_obj.write(cr, uid, [sur_name_read.response], {'state' : 'done'}) # mark the survey request as done; call 'survey_req_done' on its actual model - survey_req_obj = self.pool.get(context.get('active_model')) - if survey_req_obj and hasattr(survey_req_obj, 'survey_req_done'): - survey_req_obj.survey_req_done(cr, uid, context.get('active_ids', []), context=context) + if context.get('active_model') in self.pool: + survey_req_obj = self.pool[context.get('active_model')] + if hasattr(survey_req_obj, 'survey_req_done'): + survey_req_obj.survey_req_done(cr, uid, context.get('active_ids', []), context=context) if sur_rec.send_response: survey_data = survey_obj.browse(cr, uid, survey_id) @@ -609,10 +610,10 @@ class survey_question_wiz(osv.osv_memory): survey_obj.write(cr, uid, survey_id, {'tot_start_survey' : sur_rec['tot_start_survey'] + 1}) if context.has_key('cur_id'): if context.has_key('request') and context.get('request',False): - self.pool.get(context.get('object',False)).write(cr, uid, [int(context.get('cur_id',False))], {'response' : response_id}) - self.pool.get(context.get('object',False)).survey_req_done(cr, uid, [int(context.get('cur_id'))], context) + self.pool[context.get('object')].write(cr, uid, [int(context.get('cur_id',False))], {'response' : response_id}) + self.pool[context.get('object')].survey_req_done(cr, uid, [int(context.get('cur_id'))], context) else: - self.pool.get(context.get('object',False)).write(cr, uid, [int(context.get('cur_id',False))], {'response' : response_id}) + self.pool[context.get('object')].write(cr, uid, [int(context.get('cur_id',False))], {'response' : response_id}) if sur_name_read['store_ans'] and type(safe_eval(sur_name_read['store_ans'])) == dict: sur_name_read['store_ans'] = safe_eval(sur_name_read['store_ans']) for key,val in sur_name_read['store_ans'].items(): From fb4b655139d5a00f605ea954dfee2df77e457778 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Fri, 29 Mar 2013 15:56:52 +0100 Subject: [PATCH 21/26] [FIX] mail: make some registry access more tolerant bzr revid: rco@openerp.com-20130329145652-ux8g42u063015zy9 --- addons/mail/mail_thread.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 3c81af924e5..b082a52a9a9 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -528,7 +528,7 @@ class mail_thread(osv.AbstractModel): return routes # 3. Fallback to the provided parameters, if they work - model_pool = self.pool[model] + model_pool = self.pool.get(model) if not thread_id: # Legacy: fallback to matching [ID] in the Subject match = tools.res_re.search(decode_header(message, 'Subject')) From b99398fa2908124310efd65e853b11a79998764c Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Thu, 4 Apr 2013 12:25:24 +0200 Subject: [PATCH 22/26] [IMP] registry: make class Registry inherit from abstract class collections.Mapping bzr revid: rco@openerp.com-20130404102524-innz9qu824yfds4b --- openerp/modules/registry.py | 42 +++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 679a73ebb1b..1dc1698d7d1 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -22,6 +22,7 @@ """ Models registries. """ +from collections import Mapping from contextlib import contextmanager import logging import threading @@ -35,7 +36,7 @@ from openerp.tools import assertion_report _logger = logging.getLogger(__name__) -class Registry(object): +class Registry(Mapping): """ Model registry for a particular database. The registry is essentially a mapping between model names and model @@ -44,6 +45,7 @@ class Registry(object): """ def __init__(self, db_name): + super(Registry, self).__init__() self.models = {} # model name/model instance mapping self._sql_error = {} self._store_function = {} @@ -80,6 +82,26 @@ class Registry(object): self.has_unaccent = openerp.tools.config['unaccent'] and has_unaccent cr.close() + # + # Mapping abstract methods implementation + # => mixin provides methods keys, items, values, get, __eq__, and __ne__ + # + def __len__(self): + """ Return the size of the registry. """ + return len(self.models) + + def __iter__(self): + """ Return an iterator over all model names. """ + return iter(self.models) + + def __contains__(self, model_name): + """ Test whether the model with the given name exists. """ + return model_name in self.models + + def __getitem__(self, model_name): + """ Return the model with the given name or raise KeyError if it doesn't exist.""" + return self.models[model_name] + def do_parent_store(self, cr): for o in self._init_parent: self.get(o)._parent_store_compute(cr) @@ -87,28 +109,12 @@ class Registry(object): def obj_list(self): """ Return the list of model names in this registry.""" - return self.models.keys() + return self.keys() def add(self, model_name, model): """ Add or replace a model in the registry.""" self.models[model_name] = model - def get(self, model_name): - """ Return the model with the given name or None if it doesn't exist.""" - return self.models.get(model_name) - - def __getitem__(self, model_name): - """ Return the model with the given name or raise KeyError if it doesn't exist.""" - return self.models[model_name] - - def __contains__(self, model_name): - """ Test whether the model with the given name exists. """ - return model_name in self.models - - def __iter__(self): - """ Return an iterator over all model names. """ - return iter(self.models) - def load(self, cr, module): """ Load a given module in the registry. From 6e846120b353fe94b0f61127503f77663f5a4f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 4 Apr 2013 13:56:58 +0200 Subject: [PATCH 23/26] [FIX] base.sass: fixed oe_read_only bzr revid: tde@openerp.com-20130404115658-1rrfr3nhvc34l18u --- addons/web/static/src/css/base.css | 48 ++++++++++++++--------------- addons/web/static/src/css/base.sass | 5 +-- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 50028703f51..1b5ce950b60 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -544,6 +544,28 @@ background: #7c7bad; color: #eeeeee; } +.openerp .oe_form_field_radio.oe_horizontal { + white-space: nowrap; +} +.openerp .oe_form_field_radio.oe_horizontal .oe_radio_header { + display: inline-block; + text-align: center; +} +.openerp .oe_form_field_radio.oe_vertical .oe_radio_header { + cursor: pointer; +} +.openerp .oe_form_field_radio .oe_radio_input { + cursor: pointer; + display: inline-block; + width: 20px; + background: transparent url(/web/static/src/img/icons/input_radio-off.png) no-repeat center center; +} +.openerp .oe_form_field_radio .oe_radio_input_on { + background: transparent url(/web/static/src/img/icons/input_radio-on.png) no-repeat center center; +} +.openerp .oe_form_field_radio .oe_radio_label { + cursor: default; +} .openerp .oe_tags { margin-bottom: 1px; } @@ -2105,10 +2127,10 @@ .openerp .oe_form_invisible { display: none !important; } -.openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty { +.openerp .oe_form_editable .oe_read_only { display: none !important; } -.openerp .oe_form_readonly .oe_read_only { +.openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty { display: none !important; } .openerp .oe_form_readonly .oe_form .oe_form_field_date { @@ -2312,28 +2334,6 @@ display: inline-block; min-width: 70px; } -.openerp .oe_form_field_radio.oe_horizontal { - white-space: nowrap; -} -.openerp .oe_form_field_radio.oe_horizontal .oe_radio_header { - display: inline-block; - text-align: center; -} -.openerp .oe_form_field_radio.oe_vertical .oe_radio_header { - cursor: pointer; -} -.openerp .oe_form_field_radio .oe_radio_input { - cursor: pointer; - display: inline-block; - width: 20px; - background: transparent url(/web/static/src/img/icons/input_radio-off.png) no-repeat center center; -} -.openerp .oe_form_field_radio .oe_radio_input_on { - background: transparent url(/web/static/src/img/icons/input_radio-on.png) no-repeat center center; -} -.openerp .oe_form_field_radio .oe_radio_label { - cursor: default; -} .openerp .oe_form_field_progressbar.ui-progressbar { height: 22px; font-size: 10px; diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index c0d5aa0ad91..4be6aa9e150 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -1681,11 +1681,12 @@ $sheet-padding: 16px @include box-shadow((0 1px 2px rgba(0, 0, 0, .1), 0 1px 1px rgba(255, 255, 255, .8) inset)) .oe_form_invisible display: none !important + .oe_form_editable + .oe_read_only + display: none !important .oe_form_readonly .oe_edit_only, .oe_form_field:empty display: none !important - .oe_read_only - display: none !important .oe_form .oe_form_field_date width: auto // Sheet and padding From 825d3445a8993fc5a720d4ad2cecb2a4dde41bca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 5 Apr 2013 13:08:39 +0200 Subject: [PATCH 24/26] [IMP] kanban: added some css for alias box that appear in several kanban view, in order to factorize a bit. bzr revid: tde@openerp.com-20130405110839-umm25ui4stg7axs4 --- addons/web_kanban/static/src/css/kanban.css | 12 ++++++++++++ addons/web_kanban/static/src/css/kanban.sass | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 1c30f752a86..7feb371754c 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -291,6 +291,18 @@ font-weight: bold; margin: 2px 4px; } +.openerp .oe_kanban_view .oe_kanban_record .oe_kanban_alias { + margin: 0px 0 8px 0; +} +.openerp .oe_kanban_view .oe_kanban_record .oe_kanban_alias .oe_e { + font-size: 30px; + line-height: 6px; + vertical-align: top; + margin-right: 3px; + color: white; + text-shadow: 0px 0px 2px black; + float: left; +} .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_record { margin-bottom: 4px; } diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index d87d39f5cb5..2752cecd294 100644 --- a/addons/web_kanban/static/src/css/kanban.sass +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -280,6 +280,16 @@ .oe_kanban_title font-weight: bold margin: 2px 4px + .oe_kanban_alias + margin: 0px 0 8px 0 + .oe_e + font-size: 30px + line-height: 6px + vertical-align: top + margin-right: 3px + color: white + text-shadow: 0px 0px 2px rgba(0, 0, 0, 1) + float: left &.oe_kanban_grouped .oe_kanban_record margin-bottom: 4px From 4804af59bdd4363148c514d8471e8333dec1d095 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 10 Apr 2013 05:21:54 +0000 Subject: [PATCH 25/26] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130410052138-0ij72v89o1n91jen bzr revid: launchpad_translations_on_behalf_of_openerp-20130410052154-hwz5qpedh7ek2p3d --- addons/portal_anonymous/i18n/ru.po | 25 + openerp/addons/base/i18n/ab.po | 4 +- openerp/addons/base/i18n/af.po | 4 +- openerp/addons/base/i18n/am.po | 4 +- openerp/addons/base/i18n/ar.po | 4 +- openerp/addons/base/i18n/bg.po | 4 +- openerp/addons/base/i18n/bs.po | 4 +- openerp/addons/base/i18n/ca.po | 4 +- openerp/addons/base/i18n/cs.po | 4 +- openerp/addons/base/i18n/da.po | 4 +- openerp/addons/base/i18n/de.po | 4 +- openerp/addons/base/i18n/el.po | 4 +- openerp/addons/base/i18n/en_GB.po | 4 +- openerp/addons/base/i18n/es.po | 4 +- openerp/addons/base/i18n/es_AR.po | 4 +- openerp/addons/base/i18n/es_CL.po | 4 +- openerp/addons/base/i18n/es_CR.po | 4 +- openerp/addons/base/i18n/es_DO.po | 4 +- openerp/addons/base/i18n/es_EC.po | 4 +- openerp/addons/base/i18n/es_MX.po | 4 +- openerp/addons/base/i18n/es_VE.po | 4 +- openerp/addons/base/i18n/et.po | 4 +- openerp/addons/base/i18n/eu.po | 4 +- openerp/addons/base/i18n/fa.po | 4 +- openerp/addons/base/i18n/fa_AF.po | 4 +- openerp/addons/base/i18n/fi.po | 4 +- openerp/addons/base/i18n/fr.po | 1048 ++++++++++++++++++++++++-- openerp/addons/base/i18n/gl.po | 4 +- openerp/addons/base/i18n/gu.po | 4 +- openerp/addons/base/i18n/he.po | 4 +- openerp/addons/base/i18n/hi.po | 4 +- openerp/addons/base/i18n/hr.po | 4 +- openerp/addons/base/i18n/hu.po | 24 +- openerp/addons/base/i18n/hy.po | 4 +- openerp/addons/base/i18n/id.po | 4 +- openerp/addons/base/i18n/is.po | 4 +- openerp/addons/base/i18n/it.po | 4 +- openerp/addons/base/i18n/ja.po | 4 +- openerp/addons/base/i18n/ka.po | 4 +- openerp/addons/base/i18n/kk.po | 4 +- openerp/addons/base/i18n/ko.po | 4 +- openerp/addons/base/i18n/lt.po | 4 +- openerp/addons/base/i18n/lv.po | 4 +- openerp/addons/base/i18n/mk.po | 86 ++- openerp/addons/base/i18n/mn.po | 30 +- openerp/addons/base/i18n/nb.po | 4 +- openerp/addons/base/i18n/nl.po | 4 +- openerp/addons/base/i18n/nl_BE.po | 4 +- openerp/addons/base/i18n/pl.po | 4 +- openerp/addons/base/i18n/pt.po | 4 +- openerp/addons/base/i18n/pt_BR.po | 4 +- openerp/addons/base/i18n/ro.po | 422 +++++------ openerp/addons/base/i18n/ru.po | 10 +- openerp/addons/base/i18n/sk.po | 4 +- openerp/addons/base/i18n/sl.po | 4 +- openerp/addons/base/i18n/sq.po | 4 +- openerp/addons/base/i18n/sr.po | 4 +- openerp/addons/base/i18n/sr@latin.po | 4 +- openerp/addons/base/i18n/sv.po | 4 +- openerp/addons/base/i18n/th.po | 4 +- openerp/addons/base/i18n/tlh.po | 4 +- openerp/addons/base/i18n/tr.po | 189 +++-- openerp/addons/base/i18n/uk.po | 4 +- openerp/addons/base/i18n/ur.po | 4 +- openerp/addons/base/i18n/vi.po | 4 +- openerp/addons/base/i18n/zh_CN.po | 4 +- openerp/addons/base/i18n/zh_HK.po | 4 +- openerp/addons/base/i18n/zh_TW.po | 4 +- 68 files changed, 1543 insertions(+), 531 deletions(-) create mode 100644 addons/portal_anonymous/i18n/ru.po diff --git a/addons/portal_anonymous/i18n/ru.po b/addons/portal_anonymous/i18n/ru.po new file mode 100644 index 00000000000..5ae80dfe490 --- /dev/null +++ b/addons/portal_anonymous/i18n/ru.po @@ -0,0 +1,25 @@ +# Russian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-09 13:04+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n" +"X-Generator: Launchpad (build 16550)\n" + +#. module: portal_anonymous +#. openerp-web +#: code:addons/portal_anonymous/static/src/xml/portal_anonymous.xml:8 +#, python-format +msgid "Login" +msgstr "Вход" diff --git a/openerp/addons/base/i18n/ab.po b/openerp/addons/base/i18n/ab.po index f1dfdaad78e..7945af211b1 100644 --- a/openerp/addons/base/i18n/ab.po +++ b/openerp/addons/base/i18n/ab.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:17+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:11+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/af.po b/openerp/addons/base/i18n/af.po index 2baf5a77121..0d0e72e643c 100644 --- a/openerp/addons/base/i18n/af.po +++ b/openerp/addons/base/i18n/af.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:17+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/am.po b/openerp/addons/base/i18n/am.po index 6dffe1999b8..f87adf07a89 100644 --- a/openerp/addons/base/i18n/am.po +++ b/openerp/addons/base/i18n/am.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:18+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ar.po b/openerp/addons/base/i18n/ar.po index 35963eaff6e..f35bb1303de 100644 --- a/openerp/addons/base/i18n/ar.po +++ b/openerp/addons/base/i18n/ar.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:18+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/bg.po b/openerp/addons/base/i18n/bg.po index cd7c012ef96..c0e69c105cd 100644 --- a/openerp/addons/base/i18n/bg.po +++ b/openerp/addons/base/i18n/bg.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:18+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/bs.po b/openerp/addons/base/i18n/bs.po index 06d5925c158..8bd25cedaac 100644 --- a/openerp/addons/base/i18n/bs.po +++ b/openerp/addons/base/i18n/bs.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:18+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ca.po b/openerp/addons/base/i18n/ca.po index 21a55fae177..419a6be6405 100644 --- a/openerp/addons/base/i18n/ca.po +++ b/openerp/addons/base/i18n/ca.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:18+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/cs.po b/openerp/addons/base/i18n/cs.po index 44d398e12b1..adeb04dd5e9 100644 --- a/openerp/addons/base/i18n/cs.po +++ b/openerp/addons/base/i18n/cs.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:19+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n" +"X-Generator: Launchpad (build 16550)\n" "X-Poedit-Language: Czech\n" #. module: base diff --git a/openerp/addons/base/i18n/da.po b/openerp/addons/base/i18n/da.po index 8dd3cc05ea9..9cb48d90601 100644 --- a/openerp/addons/base/i18n/da.po +++ b/openerp/addons/base/i18n/da.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:19+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/de.po b/openerp/addons/base/i18n/de.po index 674634d40b4..691dc9aa72e 100644 --- a/openerp/addons/base/i18n/de.po +++ b/openerp/addons/base/i18n/de.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:20+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/el.po b/openerp/addons/base/i18n/el.po index ea83f873f67..9d5e08ab37b 100644 --- a/openerp/addons/base/i18n/el.po +++ b/openerp/addons/base/i18n/el.po @@ -12,8 +12,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:20+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n" +"X-Generator: Launchpad (build 16550)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" "X-Poedit-SourceCharset: utf-8\n" diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po index 00c401cfc69..07a72040756 100644 --- a/openerp/addons/base/i18n/en_GB.po +++ b/openerp/addons/base/i18n/en_GB.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:26+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po index 8e2607ec52b..87ddcc27531 100644 --- a/openerp/addons/base/i18n/es.po +++ b/openerp/addons/base/i18n/es.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:24+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_AR.po b/openerp/addons/base/i18n/es_AR.po index 3284232f850..25f36681e86 100644 --- a/openerp/addons/base/i18n/es_AR.po +++ b/openerp/addons/base/i18n/es_AR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:26+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_CL.po b/openerp/addons/base/i18n/es_CL.po index 780e6efd4f9..47bb1dfe89d 100644 --- a/openerp/addons/base/i18n/es_CL.po +++ b/openerp/addons/base/i18n/es_CL.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:26+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_CR.po b/openerp/addons/base/i18n/es_CR.po index 838dbb25289..199ba293aa3 100644 --- a/openerp/addons/base/i18n/es_CR.po +++ b/openerp/addons/base/i18n/es_CR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:26+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n" +"X-Generator: Launchpad (build 16550)\n" "Language: \n" #. module: base diff --git a/openerp/addons/base/i18n/es_DO.po b/openerp/addons/base/i18n/es_DO.po index 9ff0f43beb5..402262c0586 100644 --- a/openerp/addons/base/i18n/es_DO.po +++ b/openerp/addons/base/i18n/es_DO.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:26+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_EC.po b/openerp/addons/base/i18n/es_EC.po index 1c3e8a1a73b..e2a8f80861b 100644 --- a/openerp/addons/base/i18n/es_EC.po +++ b/openerp/addons/base/i18n/es_EC.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_MX.po b/openerp/addons/base/i18n/es_MX.po index 08ddfc649c4..72f0f4e9357 100644 --- a/openerp/addons/base/i18n/es_MX.po +++ b/openerp/addons/base/i18n/es_MX.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_VE.po b/openerp/addons/base/i18n/es_VE.po index beb8bca2941..3e06be053f7 100644 --- a/openerp/addons/base/i18n/es_VE.po +++ b/openerp/addons/base/i18n/es_VE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:25+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/et.po b/openerp/addons/base/i18n/et.po index 1044f856cb4..7cda5c5e505 100644 --- a/openerp/addons/base/i18n/et.po +++ b/openerp/addons/base/i18n/et.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:19+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/eu.po b/openerp/addons/base/i18n/eu.po index 9c7357f0a62..686c559235f 100644 --- a/openerp/addons/base/i18n/eu.po +++ b/openerp/addons/base/i18n/eu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:18+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/fa.po b/openerp/addons/base/i18n/fa.po index 7c0046f383e..a81d030e80e 100644 --- a/openerp/addons/base/i18n/fa.po +++ b/openerp/addons/base/i18n/fa.po @@ -9,8 +9,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:23+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n" +"X-Generator: Launchpad (build 16550)\n" "X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" "X-Poedit-Language: Persian\n" diff --git a/openerp/addons/base/i18n/fa_AF.po b/openerp/addons/base/i18n/fa_AF.po index 832fb5cf86e..1a679915d26 100644 --- a/openerp/addons/base/i18n/fa_AF.po +++ b/openerp/addons/base/i18n/fa_AF.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/fi.po b/openerp/addons/base/i18n/fi.po index 180863d68f8..735993733a4 100644 --- a/openerp/addons/base/i18n/fi.po +++ b/openerp/addons/base/i18n/fi.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:19+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po index e1ba0b495dd..a3308f8c4a5 100644 --- a/openerp/addons/base/i18n/fr.po +++ b/openerp/addons/base/i18n/fr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:19+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -1328,6 +1328,36 @@ msgid "" "* Planned Revenue by Stage and User (graph)\n" "* Opportunities by Stage (graph)\n" msgstr "" +"\n" +"Le module OpenERP de gestion de la relation client (CRM)\n" +"=============================================\n" +"\n" +"Cette application permet aux utilisateurs de gérer efficacement et " +"intelligemment leurs pistes, opportunités, réunions et appels " +"téléphoniques.\n" +"\n" +"Elle gère les tâches clés comme la communication, l'identification, les " +"assignations, les résolutions et les notifications.\n" +"\n" +"OpenERP assure que toutes les demandes sont suivis par les utilisateurs, les " +"clients et les fournisseurs. Il permet d'envoyer automatiquement des " +"rappels, d'escalader des requêtes, de lancer des actions spécifiques et de " +"nombreuses autres selon les règles de l'entreprise.\n" +"\n" +"Le grand avantage de ce système est que les utilisateurs n'ont rien à faire " +"de spécial. Le module CRM dispose d'une passerelle de courriel permettant de " +"synchroniser les courriels reçus et OpenERP. De cette façon, les " +"utilisateurs peuvent simplement envoyer des courriels au système de suivi " +"des demandes.\n" +"\n" +"OpenERP s'occupera de remercier les utilisateurs de leur message, de diriger " +"cette demande à l'équipe appropriée et de s'assurer que toute les " +"communications futures seront rangées à la bonne place.\n" +"\n" +"\n" +"Le tableau bord de cette application inclut:\n" +"* les revenus prévus par étape de vente et par utilisateur (graphique);\n" +"* les opportunités par étape de vente (graphique).\n" #. module: base #: selection:base.language.export,format:0 @@ -1425,6 +1455,50 @@ msgid "" "come with any additional paid permission for online use of 'private " "modules'.\n" msgstr "" +"\n" +"Module de base pour la localisation Brésilienne\n" +"=====================================\n" +"\n" +"Ce module fournit :\n" +"* a charte de compte générique brésilienne ;\n" +"* les taxes brésiliennes telles que :\n" +" * IPI,\n" +" * ICMS,\n" +" * PIS,\n" +" * COFINS,\n" +" * ISS,\n" +" * IR,\n" +" * IRPJ,\n" +" * CSLL.\n" +"\n" +"Le champs tax_discount a aussi été ajouté dans les objets " +"account.tax.template et account.tax\n" +"pour permettre le calcul correct de certaines TVA brésiliennes telle que " +"l'ICMS. L'assistant de création\n" +"de la charte de compte a été étendu afin de prendre en compte correctement " +"ces nouvelles données.\n" +"\n" +"Il est important de noter cependant que plusieurs fonctionnalités sont " +"manquant dans ce module\n" +"pour permettre d'utiliser OpenERP correctement au Brésil. Ces " +"fonctionnalités (tel que la facturation \n" +"fiscale électronique, qui est déjà opérationnelle) sont apportées par plus " +"de 15 modules du projet\n" +"Launchpad de localisation brésilienne https://launchpad.net/openerp.pt-br-" +"localiz et leurs dépendances \n" +"dans la branche extra-addons. Ces modules visent à ne pas briser la " +"remarquable modularité d'OpenERP; \n" +"c'est pour cela qu'ils sont petits mais nombreux. Une des raisons de " +"maintenir ces modules à part est que\n" +"les responsables de la localisation ont besoin des droits de commit afin de " +"rester agile et pouvoir terminer\n" +"cette localisation; en effet, des compagnies financent les requis légaux " +"restants (comme les livres fiscaux, \n" +"la comptabilité SPED, la fiscalité SPED et le PAF ECF encore manquants en " +"date de Septembre 2011).\n" +"Ces modules sont strictement distribués sous licence AGPL v3 et aujourd'hui " +"ne permettent pas des droits\n" +"payants pour une utilisation en ligne de \"modules privés\".\n" #. module: base #: code:addons/orm.py:406 @@ -1491,7 +1565,7 @@ msgstr "Corée du Sud" #. module: base #: model:ir.module.module,description:base.module_l10n_si msgid "Kontni načrt za gospodarske družbe" -msgstr "" +msgstr "Le plan comptable pour les entreprises" #. module: base #: code:addons/orm.py:4918 @@ -1871,6 +1945,16 @@ msgid "" " * the main taxes used in Luxembourg\n" " * default fiscal position for local, intracom, extracom " msgstr "" +"\n" +"Ceci est le module de base pour gérer la charte de comptes pour le " +"Luxembourg.\n" +"===============================================================\n" +"\n" +" * La charte de compte officielle du Luxembourg (loi de Juin 2009 et " +"charte & taxes de 2011).\n" +" * La charte des codes de taxe pour le Luxembourg.\n" +" * Les taxes principales utilisées au Luxembourg.\n" +" * Les positions fiscales par défaut : local, intracom et extracom " #. module: base #: code:addons/base/module/wizard/base_update_translations.py:39 @@ -2733,7 +2817,7 @@ msgstr "" #. module: base #: field:change.password.user,new_passwd:0 msgid "New Password" -msgstr "" +msgstr "Nouveau mot de passe" #. module: base #: model:ir.actions.act_window,help:base.action_ui_view @@ -2835,6 +2919,35 @@ msgid "" "\n" " " msgstr "" +"\n" +" \n" +"Localisation belge pour les factures clients et fournisseurs (pré-requis : " +"account_coda) :\n" +"=============================================================================" +"=============\n" +" - Renomme la description du champ 'reference' par 'Communication'\n" +" - Ajoute le support pour la Communication Belge Structurée\n" +"\n" +"Une Communication Structurée peut être gérénée automatiquement sur les " +"factures clients en fonction des algorithmes suivants :\n" +"-----------------------------------------------------------------------------" +"-------------------------------------------------\n" +" 1) Aléatoire : +++RRR/RRRR/RRRDD+++\n" +" **R..R =** Nombre aléatoir, **DD =** Vérification du nombre\n" +" 2) Date : +++DOY/YEAR/SSSDD+++\n" +" **DOY =** Jour de l'année, **SSS =** Séquence, **DD =** Vérification " +"du nombre\n" +" 3) Référence du client +++RRR/RRRR/SSSDDD+++\n" +" **R..R =** Référence du client sans caractère numérique, **SSS =** " +"Séquence, **DD =** Vérification du nombre \n" +" \n" +"Le type de Communication Structurée préféré et l'Algorithme associé peuvent " +"être\n" +"spécifiés dans les fiches des partenaires. Une Communication Structurée " +"'aléatoire' sera\n" +"générée si aucun algorithme n'est spécifié sur la fiche du partenaire. \n" +"\n" +" " #. module: base #: model:res.country,name:base.pl @@ -2975,6 +3088,30 @@ msgid "" "Print product labels with barcode.\n" " " msgstr "" +"\n" +"Ceci est le module pour gérer les produits et les listes de prix dans " +"OpenERP.\n" +"============================================================\n" +"\n" +"Les produits peuvent avoir des variantes, différentes méthodes de calcul du " +"prix, les informations des fournisseurs, différentes méthode de lancement de " +"la fabrication (sur stock ou sur commande), différentes unités de mesures, " +"définir le conditionnement et les propriétés.\n" +"\n" +"Les listes de prix permettent :\n" +"-----------------------------------------\n" +" * niveaux multiples de réductions (par produit, catégories ou " +"quantités);\n" +" * calculer le prix en fonction de différents critères :\n" +" * une autre liste de prix,\n" +" * un prix de revient,\n" +" * un prix de liste,\n" +" * un prix fournisseur.\n" +"\n" +"Les listes de prix sont définies par produit et/ou partenaires.\n" +"\n" +"Impression des étiquettes de produits avec les code-barres.\n" +" " #. module: base #: model:ir.module.module,description:base.module_account_analytic_default @@ -3150,6 +3287,17 @@ msgid "" " * Files by Partner (graph)\n" " * Files Size by Month (graph)\n" msgstr "" +"\n" +"Ceci est un système complet de gestion de documents.\n" +"===========================================\n" +" * Authentification utilisateur\n" +" * Indexation de documents :- Les fichiers .pptx et .docx ne sont pas " +"pris en charge pour la plate-fome Windows.\n" +" * Sont inclus dans le tableau de bord des documents : \n" +" * Nouveaux fichiers (liste)\n" +" * Fichiers par type de ressource (graphique)\n" +" * Fichiers par partenaire (graphique)\n" +" * Taille des fichiers par mois (graphique)\n" #. module: base #: view:ir.actions.report.xml:0 @@ -3199,6 +3347,40 @@ msgid "" "* Monthly Turnover (Graph)\n" " " msgstr "" +"\n" +"Demandes de prix de vente et bon de commandes\n" +"=======================================\n" +"\n" +"Cette application permet de gérer les objectifs de ventes d'une façon " +"efficace et efficiente en gardant trace de tous les bons de commande y " +"compris leur historique.\n" +"\n" +"Elle permet de gérer le processus de vente au complet :\n" +" Devis -> bon de commande -> facture\n" +"\n" +"Paramètres (seulement si la gestion d'entrepôt est installée)\n" +"-----------------------------------------------------------------------------" +"------\n" +"\n" +"Si vous avez aussi installé l'application de gestion d'entrepôt, vous " +"pourrez gérer les paramètres suivants :\n" +"* expédition : choix de livrer en une fois ou de façon partielle;\n" +"* facturation : choix des méthodes de facturation;\n" +"* Incoterms : termes des échanges commerciaux à l'internationnal.\n" +"\n" +"Vous pouvez choisir des méthodes flexibles de facturation :\n" +"* à la demande : les factures sont crées manuellement à partir des bons de " +"commandes lorsque désiré;\n" +"* sur bon de livraison : les factures sont générées automatiquement à la " +"collecte (livraison);\n" +"* avant livraison : une facture brouillon est créée et doit être payée avant " +"livraison.\n" +"\n" +"Le tableau de bord des gestionnaires de vente inclut :\n" +"-------------------------------------------------------------------------\n" +"* mes devis ;\n" +"* le taux de roulement mensuel (graphique).\n" +" " #. module: base #: field:ir.actions.act_window,res_id:0 @@ -3253,6 +3435,15 @@ msgid "" "\n" " " msgstr "" +"\n" +"Perou - Charte de compte et localisation des taxes (selon PCGE 2010).\n" +"=======================================================\n" +"\n" +"Comptabilité péruvienne et taxes conformément aux dispositions applicables " +"de la\n" +"SUNAT 2011 (PCGE 2010).\n" +"\n" +" " #. module: base #: view:ir.actions.server:0 @@ -3302,6 +3493,15 @@ msgid "" "This module is currently not compatible with the ``user_ldap`` module and\n" "will disable LDAP authentication completely if installed at the same time.\n" msgstr "" +"\n" +"Mots de passe chiffrés\n" +"==================\n" +"\n" +"Interaction avec l'authentification LDAP :\n" +"--------------------------------------------------------\n" +"Ce module est actuellement incompatible avec le module user_ldap et " +"désactivera complètement\n" +"l'authentification LDAP si il est installé en même temps.\n" #. module: base #: model:res.groups,name:base.group_hr_manager @@ -3358,6 +3558,30 @@ msgid "" "* Purchase Analysis\n" " " msgstr "" +"\n" +"Gérer facilement l'approvisionnement par les bons d'achats\n" +"===============================================\n" +"\n" +"La gestion des achats vous permet de suivre les devis fournisseurs et les " +"convertir en bons d'achat si nécessaire.\n" +"OpenERP a plusieurs méthodes de suivis des factures et garder trace des " +"biens commandés. OpenERP permet de gérer les livraisons partielle, vous " +"permettant de garder traces des biens qui sont encore à livrer et vous " +"permettre d'envoyer des rappels automatiquement.\n" +"\n" +"Les règles de gestion des approvisionnement d'OpenERP permettent au système " +"de générer automatiquement les brouillons des bons d'achat; vous pouvez " +"aussi le configurer afin d'exécuter un processus simple entièrement dirigé " +"par les besoins de production.\n" +"\n" +"Le tableau de bord et rapports de ce module incluent :\n" +"---------------------------------------------------------------------------\n" +"* les demandes de cotations ;\n" +"* les bons d'achat en attente d'approbation ;\n" +"* les achats mensuels par catégories ;\n" +"* l'analyse des réceptions ;\n" +"* l'analyse des achats.\n" +" " #. module: base #: model:ir.model,name:base.model_ir_actions_act_window_close @@ -3390,6 +3614,19 @@ msgid "" " * Unlimited \"Group By\" levels (not stacked), two cross level analysis " "(stacked)\n" msgstr "" +"\n" +"Vues graphiques pour le client Web\n" +"============================\n" +"\n" +" * Analyse une vue mais permet le changement dynamique de la " +"représentation.\n" +" * Types de graphiques : tarte, lignes, surfaces, barres, radars.\n" +" * Empilage ou non pour les graphiques en surfaces et en barres.\n" +" * Légendes : au dessus, à l'intérieur (en haut/à gauche), cachées.\n" +" * Fonctionnalités : download au format PNG ou CSV, parcourir la grille " +"de données, changer l'orientation.\n" +" * Niveaux regroupement (non-empilés) illimités, 2 niveaux croisés " +"d'analyse (empilés).\n" #. module: base #: view:res.groups:0 @@ -3425,6 +3662,20 @@ msgid "" " * Salary Maj, ONSS, Withholding Tax, Child Allowance, ...\n" " " msgstr "" +"\n" +"Règles de paie belges.\n" +"=================\n" +"\n" +" * Détails des employés.\n" +" * Contrats des employés.\n" +" * Contrats basés sur les passeports.\n" +" * Indemnités et retenues.\n" +" * Permet de configurer le salaire de base, brut ou net.\n" +" * Fiche de paie des employés.\n" +" * Enregistrement de la paie mensuellement.\n" +" * Intégré avec la gestion des congés.\n" +" * Salaire MAJ, ONSS, retenue d'impôt, allocation enfant...\n" +" " #. module: base #: code:addons/base/ir/ir_fields.py:174 @@ -3468,6 +3719,24 @@ msgid "" "purchase price and fixed product standard price are booked on a separate \n" "account." msgstr "" +"\n" +"Support de la méthodologie comptable anglo-saxonne en changeant la logique " +"comptable des mouvements de stock.\n" +"=============================================================================" +"===============\n" +"\n" +"La différence entre la comptabilité anglo-saxonne et la comptabilité " +"continentale est la gestion du coût des biens vendus versus le coût de " +"vente. La comptabilité anglo-saxonne prend le coût lorsque la facture est " +"créée alors que la comptabilité continentale le prendra lorsque les biens " +"sont expédiés.\n" +"\n" +"Ce module ajoute cette fonctionnalité en utilisant un compte intermédiaire " +"afin d'enregistrer la valeur des biens expédiés et fera la contrepartie de " +"compte intermédiaire lorsque la facture sera créée afin de transférer ce " +"montant dans le compte client ou le compte fournisseur. Deuxièmement, les " +"différences entre le prix réel d'achat et le prix standard fixe des produits " +"sont enregistrés dans un autre compte." #. module: base #: model:res.country,name:base.si @@ -4184,6 +4453,39 @@ msgid "" "* Work Order Analysis\n" " " msgstr "" +"\n" +"Module de gestion de production dans OpenERP\n" +"======================================\n" +"\n" +"Ce module vous permet de couvrir la planification, les ordres, les stocks, " +"la fabrication et l'assemblage de produits à partir de matières premières et " +"de composants. Il gère la consommation et la production de produit selon " +"leur nomenclature et les opérations nécessaires en machines, outils et " +"ressources humaines en accord avec les gammes opératoires.\n" +"\n" +"Il supporte l'intégration complète et la planification des biens stockables, " +"consommables ou des services. Les services sont complètement intégrés avec " +"le reste du logiciel. Par exemple, vous pouvez définir un service sous-" +"contracté dans une nomenclature afin d'automatiquement acheter sur commande " +"l’assemblage de votre production.\n" +"\n" +"Fonctionnalités clés\n" +"---------------------------\n" +"* Fabrication sur stock ou sur commande.\n" +"* Plusieurs niveaux de nomenclature, sans limite.\n" +"* Plusieurs niveaux de gammes opératoires, sans limite.\n" +"* Gamme opératoire et poste de charge intégrés avec la comptabilité " +"analytique.\n" +"* Calcul périodique des besoins.\n" +"* Permet de naviguer les nomenclatures dans une structure complète qui " +"inclut les nomenclature enfants et fantômes.\n" +"\n" +"Tableau de bord et rapport du module incluent :\n" +"------------------------------------------------------------------\n" +"* les approvisionnements en exception (graphique) ;\n" +"* variation des stocks (graphique) ;\n" +"* analyse des ordres de travail ;\n" +" " #. module: base #: view:ir.attachment:0 @@ -4213,6 +4515,14 @@ msgid "" "easily\n" "keep track and order all your purchase orders.\n" msgstr "" +"\n" +"Ce module permet la gestion des demandes d'achats.\n" +"=========================================\n" +"\n" +"Lorsque un ordre d'achat est créé, vous avez maintenant la possibilité de " +"sauver la demande associée.\n" +"Le nouvel objet regroupera et vous permettra de facilement garder trace et " +"commander vos ordres d'achat.\n" #. module: base #: help:ir.mail_server,smtp_host:0 @@ -4342,7 +4652,7 @@ msgstr "Récursivité détectée" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_et msgid "Ethiopia - Accounting" -msgstr "" +msgstr "Ethiopie - Comptabilité" #. module: base #: code:addons/base/module/module.py:366 @@ -4372,6 +4682,24 @@ msgid "" "\n" " " msgstr "" +"\n" +"Ce module permet de définir la fonction par défaut d'un utilisateur " +"spécifique sur un compte donné.\n" +"=============================================================================" +"==\n" +"\n" +"Il est le plus souvent utilisé lorsque un utilisateur saisi sa feuille de " +"temps : les données sont extraites\n" +"et les champs remplis automatiquement. Mais, il est encore possible de " +"modifier ces valeurs.\n" +"\n" +"Évidemment, si aucune donnée n'a été enregistré sur ce compte, la valeur par " +"défaut est donnée par \n" +"défaut, comme d'habitude, par les données de l'employé; ainsi, ce module est " +"parfaitement compatible\n" +"avec les anciennes configurations.\n" +"\n" +" " #. module: base #: view:ir.model:0 @@ -4387,7 +4715,7 @@ msgstr "Togo" #: field:ir.actions.act_window,res_model:0 #: field:ir.actions.client,res_model:0 msgid "Destination Model" -msgstr "" +msgstr "Modèle de destination" #. module: base #: selection:ir.sequence,implementation:0 @@ -4466,6 +4794,27 @@ msgid "" " payslip interface, but not in the payslip report\n" " " msgstr "" +"\n" +"Règle de gestion de la paie française.\n" +"=============================\n" +"\n" +" * Configuration du module hr_payroll pour la localisation française.\n" +" * Toutes les règles de contributions principales pour les fiches de paie " +"française, pour le personnel cadre et non-cadre.\n" +" * Nouveau rapport de fiche de paie.\n" +"\n" +"Reste à faire :\n" +"-------------------\n" +" * intégration avec le module de gestion des congés pour les indemnités " +"et retenues ;\n" +" * intégration avec le module hr_payroll_account pour l'automatisation " +"des écritures comptables de la fiche de paie ;\n" +" * continuer l'intégration des contributions : seules les contributions " +"principales sont aujourd'hui implémentées ;\n" +" * refaire le rapport avec Webkit ;\n" +" * les \"payslip.line\" avec l'attribut \"appears_in_payslip\" avec une " +"valeur False devrait apparaître dans l'interface mais pas dans le rapport.\n" +" " #. module: base #: model:res.country,name:base.pm @@ -4508,7 +4857,7 @@ msgstr "" #. module: base #: model:res.country,name:base.je msgid "Jersey" -msgstr "" +msgstr "Maillot" #. module: base #: model:ir.model,name:base.model_ir_translation @@ -4690,6 +5039,41 @@ msgid "" ".. _link: http://puc.com.co/normatividad/\n" " " msgstr "" +"\n" +"Charte de comptes pour la Colombie\n" +"============================\n" +"\n" +"Le code source de cette charte de compte est ici_.\n" +"\n" +"Toute la documentation disponible sur ce site web est dans ce module afin " +"d'être sûr qu'à l'ouverture\n" +"qu'à l'ouverture d'OpenERP toute l'information nécessaire à la gestion de la " +"comptabilité en Colombie\n" +"soit présente.\n" +"\n" +"La loi sur laquelle s'appuie ce module est dans cet autre lien_.\n" +"\n" +"La comptabilité colombienne est immédiatement utilisable dans OpenERP après " +"l'installation de ce module.\n" +"\n" +"Nous recommandons d'installer le module account_anglo_saxon afin d'avoir la " +"comptabilisation des coûts\n" +"correctement configurés dans les factures sortantes.\n" +"\n" +"Après installation de ce module, l'assistant de configuration pour la " +"comptabilité est démarré :\n" +" * nous avons un modèle de compte qui peut aider à générer la charte " +"comptable ;\n" +" * dans cet assistant, il vous sera demandé d'entrer le nom de la " +"compagnie,\n" +" le modèle de charte à suivre, le nombre de chiffres à générer, le " +"code de votre compte\n" +" et le compte en banque, la devise utilisée pour créer les journaux.\n" +"\n" +"\n" +".. _ici : http://puc.com.co/\n" +".. _lien : http://puc.com.co/normatividad/\n" +" " #. module: base #: model:ir.module.module,description:base.module_account_bank_statement_extensions @@ -4713,6 +5097,27 @@ msgid "" " and iban account numbers\n" " " msgstr "" +"\n" +"Module qui étend l'objet standard account_bank_statement_line pour le " +"support avancé des services bancaires en ligne.\n" +"=============================================================================" +"=================\n" +"\n" +"Ce module ajoute :\n" +"-------------------------\n" +"\n" +" * date de valeur ;\n" +" * paiements en lots ;\n" +" * traçabilité des changements sur les lignes des relevés de banque ;\n" +" * vues des lignes des relevés de banque ;\n" +" * rapport des soldes des relevés de banque ;\n" +" * amélioration de la performance lors de l'import électronique des " +"relevés de banques\n" +" (par l'attribut de contexte 'ebanking_import') ;\n" +" * name_search sur la table res.partner.bank amélioré pour permettre la " +"recherche sur\n" +" la banque et le numéro de compte IBAN.\n" +" " #. module: base #: selection:ir.module.module,state:0 @@ -4748,7 +5153,7 @@ msgstr "SARL" #. module: base #: model:ir.actions.server,name:base.action_run_ir_action_todo msgid "Run Remaining Action Todo" -msgstr "" +msgstr "Exécuter les actions restantes à faire" #. module: base #: field:res.partner,ean13:0 @@ -4944,7 +5349,7 @@ msgstr "Par défaut" #. module: base #: model:ir.module.module,summary:base.module_lunch msgid "Lunch Order, Meal, Food" -msgstr "" +msgstr "Commande de déjeuner, repas, nourriture" #. module: base #: view:ir.model.fields:0 @@ -4991,6 +5396,26 @@ msgid "" "very handy when used in combination with the module 'share'.\n" " " msgstr "" +"\n" +"Personnalise l'accès à votre base de données OpenERP aux utilisateurs " +"externes par la création de portails.\n" +"=============================================================================" +"=======\n" +"Un portail définit un menu utilisateur spécifique et des droits d'accès pour " +"ses membres.\n" +"Ce menu peut être vu par les membres du portail, les utilisateurs anonymes " +"et n'importe\n" +"quel autre utilisateur qui a accès aux caractéristiques techniques " +"(l'administrateur par exemple).\n" +"Aussi, chaque membre du portail est lié à un partenaire spécifique.\n" +"\n" +"Le module associe aussi les groupes d'utilisateurs aux utilisateurs du " +"portail (ajouter un groupe\n" +"dans un portail l'ajoute automatiquement aux utilisateurs du portail, etc). " +"Cette fonctionnalité\n" +"est très pratique lorsqu'elle est utilisée conjointement avec le module " +"'share'.\n" +" " #. module: base #: field:multi_company.default,expression:0 @@ -5161,6 +5586,9 @@ msgid "" "==========================\n" "\n" msgstr "" +"\n" +"Vue agenda d'OpenERP Web\n" +"\n" #. module: base #: selection:base.language.install,lang:0 @@ -5175,7 +5603,7 @@ msgstr "Type de Séquence" #. module: base #: view:base.language.export:0 msgid "Unicode/UTF-8" -msgstr "" +msgstr "Unicode/UTF-8" #. module: base #: selection:base.language.install,lang:0 @@ -5209,6 +5637,18 @@ msgid "" "then select the test \n" "and print the report from Print button in header area.\n" msgstr "" +"\n" +"Validations sur la comptabilité.\n" +"========================\n" +"Avec ce module vous pouvez vérifier manuellement les consistances et les " +"inconsistances du module comptable à partir du menu\n" +"Suivi d'activité/Comptabilité/Tests comptables.\n" +"\n" +"Vous pouvez écrire une requête afin de créer des tests de consistances et " +"vous obtiendrez le résultat de ce test\n" +"au format PDF lequel sera accessible par le menu Suivi d'activité -> Tests " +"comptables, puis sélectionner le test et\n" +"imprimer le rapport depuis le bouton Imprimer dans la section d'en-tête.\n" #. module: base #: field:ir.module.module,license:0 @@ -5258,6 +5698,23 @@ msgid "" "for\n" "this event.\n" msgstr "" +"\n" +"Créer des inscriptions avec les bons de commande.\n" +"========================================\n" +"\n" +"Ce module vous permet d'automatiser et de lier les créations d'inscription " +"avec\n" +"votre processus de vente et donc, de permettre la facturation de ces " +"inscriptions.\n" +"\n" +"Il définit un nouveau type de produit de type service qui vous permet de " +"choisir\n" +"une catégorie d’événement associée. Lorsque vous créez un bon de commande\n" +"pour ce produit, vous avez la possibilité de choisir un événement de cette " +"catégorie\n" +"et lorsque ce bon de commande est confirmé, l'inscription à cet événement " +"est\n" +"automatiquement créée.\n" #. module: base #: model:ir.module.module,description:base.module_sale_order_dates @@ -5272,6 +5729,14 @@ msgid "" " * Commitment Date\n" " * Effective Date\n" msgstr "" +"\n" +"Ajouter des dates supplémentaires aux bons de commande.\n" +"==============================================\n" +"\n" +"Vous pouvez ajouter les dates suivantes aux bons de commande:\n" +" * date requise ;\n" +" * date d'engagement ;\n" +" * date effective.\n" #. module: base #: field:ir.actions.server,srcmodel_id:0 @@ -5308,7 +5773,7 @@ msgstr "Vue" #: code:addons/base/ir/ir_fields.py:146 #, python-format msgid "no" -msgstr "" +msgstr "non" #. module: base #: model:ir.module.module,description:base.module_crm_partner_assign @@ -5328,6 +5793,21 @@ msgid "" "You can also use the geolocalization without using the GPS coordinates.\n" " " msgstr "" +"\n" +"Ceci est le module utilisé par OpenERP SA pour rediriger les clients vers " +"ses partenaires, en fonction de la géolocalisation.\n" +"=============================================================================" +"==================\n" +"\n" +"Vous pouvez géolocaliser vos opportunités en utilisant ce module.\n" +"\n" +"Utilise la géolocalisation pour assigner des opportunités à des " +"partenaires.\n" +"Détermine les coordonnées GPS en fonction de l'adresse du partenaire.\n" +"\n" +"Le partenaire le plus approprié peut être assigné.\n" +"La géolocalisation peut être utilisée aussi sans les coordonnées GPS.\n" +" " #. module: base #: view:ir.actions.act_window:0 @@ -5342,7 +5822,7 @@ msgstr "Guinée Équatoriale" #. module: base #: model:ir.module.module,shortdesc:base.module_web_api msgid "OpenERP Web API" -msgstr "" +msgstr "API Web OpenERP" #. module: base #: model:ir.module.module,description:base.module_l10n_fr_rib @@ -5386,6 +5866,49 @@ msgid "" "Accounts in OpenERP: the first with the type 'RIB', the second with the type " "'IBAN'. \n" msgstr "" +"\n" +"Ce module permet aux utilisateurs de spécifier les coordonnées bancaires des " +"partenaires au format RIB (standard français pour les informations des " +"comptes bancaires).\n" +"=============================================================================" +"=======================================================\n" +"\n" +"Le RIB des comptes bancaires peut être entré dans l'onglet \"Comptabilité\" " +"du formulaire Partenaire en spécifiant le type de compte \"RIB\".\n" +"\n" +"Les 4 champs standards du RIB deviennent alors obligatoires :\n" +"-----------------------------------------------------------------------------" +"-------\n" +" * code de banque ;\n" +" * code de succursale ;\n" +" * numéro de compte ;\n" +" * clé RIB.\n" +"\n" +"Par mesure de sécurité, OpenERP vérifiera la clé RIB lorsque celle-ci est " +"sauvée \n" +"et refusera d'enregistrer ces données si la clé est incorrecte. Gardez à " +"l'esprit\n" +"que cette vérification n'est effectuée que lorsque l'utilisateur presse le " +"bouton\n" +"\"Enregistrer\", sur le formulaire du partenaire par exemple. Puisque les " +"comptes\n" +"de banques sont associés à chaque banque, les utilisateurs peuvent saisir " +"les codes RIB\n" +"dans le formulaire des banques - ce qui initialisera automatiquement le code " +"de banque\n" +"du RIB. Pour rendre cela plus facile, ce module permettra aussi de trouver " +"une banque\n" +"à partir de leur code RIB.\n" +"\n" +"Le module base_iban peut être un module additionnel utile à ce module parce " +"que les \n" +"banques française adoptent progressivement le format international IBAN à la " +"place du\n" +"format RIB. Les codes RIB et IBAN pour un compte peuvent être saisis en " +"enregistrant \n" +"deux comptes en banque dans OpenERP : le premier avec le type \"RIB\", le " +"second avec \n" +"le type \"IBAN\". \n" #. module: base #: model:res.country,name:base.ps @@ -5522,6 +6045,24 @@ msgid "" "since it's the same which has been renamed.\n" " " msgstr "" +"\n" +"Ce module permet aux utilisateurs de faire une segmentation parmi les " +"partenaires.\n" +"==================================================================\n" +"\n" +"Il utilise les critères de profils de l'ancien module de segmentation et " +"l'améliore\n" +"grâce au nouveau concept de questionnaire. Vous pouvez maintenant regrouper " +"les\n" +"questions dans un questionnaire et l'utiliser directement sur le " +"partenaire.\n" +"\n" +"Il a aussi été fusionné avec l'ancien outil de segmentation CRM & SRM parce " +"qu'ils se chevauchaient.\n" +"\n" +" ** Note : ** ce module n'est pas compatible avec le module segmentation " +"puisque c'est le même qui a été renommé.\n" +" " #. module: base #: model:res.country,name:base.gt @@ -5554,22 +6095,22 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Portuguese (BR) / Português (BR)" -msgstr "" +msgstr "Portuguais (BR) / Português (BR)" #. module: base #: model:ir.model,name:base.model_ir_needaction_mixin msgid "ir.needaction_mixin" -msgstr "" +msgstr "ir.needaction_mixin" #. module: base #: view:base.language.export:0 msgid "This file was generated using the universal" -msgstr "" +msgstr "Ce fichier a été généré en utilisant le format universel" #. module: base #: model:res.partner.category,name:base.res_partner_category_7 msgid "IT Services" -msgstr "" +msgstr "Services TI" #. module: base #: model:ir.module.category,name:base.module_category_specific_industry_applications @@ -5579,12 +6120,12 @@ msgstr "Applications spécifiques à l'industrie" #. module: base #: model:ir.module.module,shortdesc:base.module_google_docs msgid "Google Docs integration" -msgstr "" +msgstr "Integration Google Docs" #. module: base #: help:ir.attachment,res_model:0 msgid "The database object this attachment will be attached to" -msgstr "" +msgstr "L'objet de la base de données auquel cet attachement sera attaché" #. module: base #: code:addons/base/ir/ir_fields.py:327 @@ -5627,6 +6168,35 @@ msgid "" "So, that we can compare the theoretic delay and real delay. \n" " " msgstr "" +"\n" +"Ce module ajoute les champs état, date de début et date de fin sur les " +"lignes d'opération des ordres de fabrication (dans l'onglet \"Ordres de " +"travaux\").\n" +"=============================================================================" +"============================================\n" +"\n" +"États : brouillon, confirmé, terminé, annulé\n" +"Lorsque un ordre de fabrication est confirmé, terminé ou annulé, toutes les " +"lignes sont mises dans l'état correspondant.\n" +"\n" +"Création du menu \"Fabrication > Fabrication > Ordres de travaux\", lequel " +"est une vue sur les lignes \"Ordres de travaux\" des ordres de fabrication.\n" +"\n" +"Ajoute des boutons dans la vue formulaire des ordres de fabrication dans " +"l'onglet Ordre de travaux :\n" +" * démarrer (met l'état à confirmé), définit la date de début ;\n" +" * terminé (met l'état à terminé), définit la date de fin ;\n" +" * met en brouillon (met l'état à brouillon) ;\n" +" * annuler (met l'état à terminé).\n" +"\n" +"Lorsque l'ordre de fabrication devient \"prêt à produire\", les opérations " +"doivent devenir \"confirmées\".\n" +"Lorsque l'ordre de fabrication est terminé, toutes les opérations doivent " +"devenir terminées.\n" +"\n" +"Le champ \"Heures travaillées\" est le délai (date de fin - date de début).\n" +"Ainsi, il est possible de comparer le délai théorique avec le délai réel. \n" +" " #. module: base #: view:res.config.installer:0 @@ -5646,7 +6216,7 @@ msgstr "Lesotho" #. module: base #: view:base.language.export:0 msgid ", or your preferred text editor" -msgstr "" +msgstr ", ou votre éditeur de texte préféré" #. module: base #: model:ir.module.module,shortdesc:base.module_crm_partner_assign @@ -5718,7 +6288,7 @@ msgstr "" #. module: base #: field:ir.actions.report.xml,report_xml:0 msgid "XML Path" -msgstr "" +msgstr "Chemin XML" #. module: base #: model:res.country,name:base.bj @@ -5779,6 +6349,17 @@ msgid "" " \n" "%(country_code)s: the code of the country" msgstr "" +"Vous pouvez définir ici le format de l'adresse selon l'usage en vigueur dans " +"ce pays.\n" +"\n" +"Vous pouvez utiliser les formats de chaînes de caractère python pour " +"afficher tous les champs d'adresse.\n" +"Par exemple :\n" +"* %(street)s' pour afficher la rue ;\n" +"* %(state_name)s' pour afficher le nom de l'état ;\n" +"* %(state_code)s' pour afficher le code de l'état ;\n" +"* %(country_name)s' pour afficher le nom du pays ;\n" +"* %(country_code)s' pour afficher le code du pays ;" #. module: base #: model:res.country,name:base.mu @@ -5793,7 +6374,7 @@ msgstr "Accès complet" #. module: base #: model:ir.module.module,description:base.module_l10n_pt msgid "Plano de contas SNC para Portugal" -msgstr "" +msgstr "Plan de compte SNC pour le Portugal" #. module: base #: view:ir.actions.act_window:0 @@ -5805,7 +6386,7 @@ msgstr "Sécurité" #. module: base #: selection:base.language.install,lang:0 msgid "Portuguese / Português" -msgstr "" +msgstr "Portuguais / Português" #. module: base #: code:addons/base/ir/ir_model.py:373 @@ -5823,7 +6404,7 @@ msgstr "Seulement si ce compte bancaire appartiennent à votre société" #: code:addons/base/ir/ir_fields.py:337 #, python-format msgid "Unknown sub-field '%s'" -msgstr "" +msgstr "Sous-champ inconnu \"%s\"" #. module: base #: model:res.country,name:base.za @@ -5862,6 +6443,12 @@ msgid "" "Collects web application usage with Google Analytics.\n" " " msgstr "" +"\n" +"Google Analytics.\n" +"=============\n" +"\n" +"Collecte l'utilisation de l'application Web avec Google Analytics.\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_hr_recruitment @@ -5938,6 +6525,10 @@ msgid "" "================\n" "\n" msgstr "" +"\n" +"API Web OpenERP.\n" +"===============\n" +"\n" #. module: base #: selection:res.request,state:0 @@ -5956,7 +6547,7 @@ msgstr "Date" #. module: base #: model:ir.module.module,shortdesc:base.module_event_moodle msgid "Event Moodle" -msgstr "" +msgstr "Événement Moodle" #. module: base #: model:ir.module.module,description:base.module_email_template @@ -6003,16 +6594,59 @@ msgid "" "Email by Openlabs was kept.\n" " " msgstr "" +"\n" +"Modèles de courriel (version simplifiée du module original \"Power Email\" " +"d'Openlabs).\n" +"===================================================================\n" +"\n" +"Vous permet de définir complètement des modèles de courriel relié à tout " +"document OpenERP\n" +"(bons de commande, facture, etc...), incluant émetteur, destinataire, sujet, " +"corps du message \n" +"(format texte et HTML). Vous pouvez aussi attacher automatiquement des " +"fichiers à vos modèles\n" +"ou imprimer puis attacher un rapport.\n" +"\n" +"Pour une utilisation avancée, les modèles peuvent inclure des attributs " +"dynamiques issus des\n" +"documents auxquels ils sont reliés. Par exemple, vous pouvez utiliser le " +"pays d'un partenaire\n" +"lorsque vous lui écrivez, et définir aussi une valeur par défaut au cas où " +"cet attribut ne serait pas\n" +"défini. Chaque modèle contient un assistant intégré pour faciliter " +"l'inclusion de ces valeurs \n" +"dynamiques.\n" +"\n" +"Si vous activez l'option, un assistant de rédaction va aussi apparaître dans " +"la barre latérale\n" +"des documents OpenERP auxquels s'applique ce modèle (par exemple les " +"factures).\n" +"Ceci permet de fournir une façon rapide d'envoyer de nouveaux courriels " +"basés sur ce modèle,\n" +"après avoir revu et corrigé le contenu si nécessaire.\n" +"L'assistant de rédaction va aussi se transformer en outil d'envoi en masse " +"lorsqu'il est appelé\n" +"plusieurs documents en une fois.\n" +"\n" +"Ces modèles de courriel sont aussi au cœur du système de campagne marketing " +"(voir l'application\n" +"\"campagne marketing\"), si vous avez besoin d'automatiser des campagnes " +"plus grandes sur tout\n" +"type de document OpenERP.\n" +"\n" +" **Note technique :** seul le système de modèle du module original " +"\"Power Email\" de Openlabs a été conservé.\n" +" " #. module: base #: model:ir.ui.menu,name:base.menu_partner_category_form msgid "Partner Tags" -msgstr "" +msgstr "Étiquettes du partenaire" #. module: base #: view:res.company:0 msgid "Preview Header/Footer" -msgstr "" +msgstr "Pré-visualisation de l'entête/pied de page" #. module: base #: field:ir.ui.menu,parent_id:0 @@ -6046,12 +6680,12 @@ msgstr "Séparateur décimal" #: code:addons/orm.py:5319 #, python-format msgid "Missing required value for the field '%s'." -msgstr "" +msgstr "Valeur requise manquante pour le champs \"%s\"." #. module: base #: view:ir.rule:0 msgid "Write Access Right" -msgstr "" +msgstr "Droit d'accés en écriture" #. module: base #: model:ir.actions.act_window,help:base.action_res_groups @@ -6086,12 +6720,14 @@ msgstr "Historique" #. module: base #: model:res.country,name:base.im msgid "Isle of Man" -msgstr "" +msgstr "Île de Man" #. module: base #: help:ir.actions.client,res_model:0 msgid "Optional model, mostly used for needactions." msgstr "" +"Modèle optionnel, principalement utilisé pour les fonctionnalités " +"\"need_action\"" #. module: base #: code:addons/base/module/module.py:306 @@ -6107,7 +6743,7 @@ msgstr "Île Bouvet" #. module: base #: field:ir.model.constraint,type:0 msgid "Constraint Type" -msgstr "" +msgstr "Type de containte" #. module: base #: field:res.company,child_ids:0 @@ -6131,6 +6767,14 @@ msgid "" "wizard if the delivery is to be invoiced.\n" " " msgstr "" +"\n" +"Assistant de facturation pour les livraisons.\n" +"=================================\n" +"\n" +"Lorsque vous envoyez ou livrez des biens, ce module démarre automatiquement " +"l'assistant de facturation\n" +"si la livraison doit être facturée.\n" +" " #. module: base #: selection:ir.translation,type:0 @@ -6173,7 +6817,7 @@ msgstr "Lancer l'assistant de configuration" #. module: base #: model:ir.module.module,summary:base.module_mrp msgid "Manufacturing Orders, Bill of Materials, Routing" -msgstr "" +msgstr "Ordres de fabrication, Nomenclature, Gammes opératoire" #. module: base #: field:ir.attachment,name:0 @@ -6242,16 +6886,71 @@ msgid "" " * Zip return for separated PDF\n" " * Web client WYSIWYG\n" msgstr "" +"\n" +"Ce module ajoute un nouveau moteur de rapport basé sur la librairie Webkit " +"(wkhtmltopdf) pour supporter les rapports écris en HTML et CSS.\n" +"=============================================================================" +"==================================\n" +"\n" +"La structure du module et une partie du code sont inspirées du module " +"report_openoffice.\n" +"\n" +"Ce module permet :\n" +"---------------------------\n" +" * la définition de rapports HTML ;\n" +" * le support des entêtes multiples ;\n" +" * les logos multiples ;\n" +" * les configurations multi-compagnies ;\n" +" * support de HTML et CSS-3 (dans la limite de la versions actuelle de " +"Webkit) ;\n" +" * support de javaScript ;\n" +" * déboguage de HTML brut ;\n" +" * possibilité d'imprimer au format livre ;\n" +" * définition des marges ;\n" +" * définition des tailles de papier.\n" +"\n" +"Des entêtes et logos multiples peuvent être définis par compagnie. Style " +"CSS, entête et pied de page\n" +"sont définis par compagnie.\n" +"\n" +"Pour un exemple, voir aussi le module webkit_report_sample module et cette " +"vidéo:\n" +" http://files.me.com/nbessi/06n92k.mov\n" +"\n" +"Pré-requis et installation :\n" +"-----------------------------------\n" +"Ce module requiert la librairie \"wkthtmltopdf\" pour afficher les documents " +"HTML au format PDF.\n" +"La version 0.9.9 ou ultérieure est nécessaire et peut être trouvée à " +"l'adresse\n" +"http://code.google.com/p/wkhtmltopdf/ pour Linux, Mac OS X (i386) et Windows " +"(32bits).\n" +"\n" +"Après installation de la librairie sur la machine du serveur OpenERP, vous " +"devez définir le chemin\n" +"vers le fichier exécutable \"wkthtmltopdf\" pour chaque compagnie.\n" +"\n" +"Si vous rencontrez des problèmes d'en-tête/pieds de page sous Linux, " +"vérifier d'installer une version\n" +"\"statique\" de la librairie. La librairie par défaut sous Ubuntu est connue " +"pour avoir des problèmes.\n" +"\n" +"\n" +"Reste à faire:\n" +" * activation/désactivation du support JavaScript ;\n" +" * support des formats assemblage et livre ;\n" +" * retour ZIP pour les fichiers PDF séparés ;\n" +" * client web WYSIWYG.\n" #. module: base #: model:res.groups,name:base.group_sale_salesman_all_leads msgid "See all Leads" -msgstr "" +msgstr "Voir toutes les pistes" #. module: base #: model:res.country,name:base.ci msgid "Ivory Coast (Cote D'Ivoire)" -msgstr "Cote d'Ivoire" +msgstr "Côte d'Ivoire" #. module: base #: model:res.country,name:base.kz @@ -6272,7 +6971,7 @@ msgstr "Nom de la ressource" #. module: base #: model:ir.ui.menu,name:base.menu_ir_filters msgid "User-defined Filters" -msgstr "" +msgstr "Filtres personnalisés" #. module: base #: field:ir.actions.act_window_close,name:0 @@ -6346,6 +7045,9 @@ msgid "" "

You should try others search criteria.

\n" " " msgstr "" +"

Aucun module trouvé!

\n" +"

vous devriez essayer d'autres critères de recherche.

\n" +" " #. module: base #: model:ir.model,name:base.model_ir_module_module @@ -6368,7 +7070,7 @@ msgstr "Anglais (UK)" #. module: base #: selection:base.language.install,lang:0 msgid "Japanese / 日本語" -msgstr "Japanais / 日本語" +msgstr "Japonais / 日本語" #. module: base #: model:ir.model,name:base.model_base_language_import @@ -6434,6 +7136,49 @@ msgid "" "only the country code will be validated.\n" " " msgstr "" +"\n" +"Validation du numéro de TVA des partenaires.\n" +"====================================\n" +"\n" +"Après installation de ce module, la valeur entrée dans le champs TVA des " +"partenaires\n" +"sera validé pour tous les pays supportés. Le pays est déduit des 2 lettres " +"du code de\n" +"pays qui préfixent le numéro de TVA. Par exemple \"BE0477472701\" sera " +"validé en \n" +"utilisant les règles belges.\n" +"\n" +"Il y a deux niveaux différents de validation du numéro de TVA :\n" +"-----------------------------------------------------------------------------" +"--------\n" +" * par défaut, une simple vérification hors-ligne est faite en réalisant " +"les règles de validation\n" +" connue pour le pays, en général une simple vérification de numéro. " +"Ceci est rapide et \n" +" et toujours disponible, mais ne détecte pas les numéros qui ne sont " +"peut-être pas \n" +" alloués ou plus valides.\n" +"\n" +" * Lorsque l'option \"Validation du numéro TVA par VIES\" est cochée " +"(dans la configuration \n" +" de la compagnie de l'utilisateur), le numéro de TVA est soumis en-" +"ligne à la base de donnée \n" +" européenne VIES, laquelle vérifiera réellement si le numéro est " +"valide et actuellement \n" +" alloué à une compagnie européenne. Ceci est un peu plus lent qu'une " +"simple vérification \n" +" hors-ligne, requiert une connexion internet et n'est peut-être pas " +"disponible tout le temps. \n" +" Si le service n'est pas disponible ou ne supporte pas le pays demande " +"(cas des pays hors Union \n" +" Européenne), la vérification simple sera réalisé à la place.\n" +"\n" +"Les pays supportés actuellement inclus les pays de l'Union Européenne et " +"quelques pays hors UE\n" +"tels que Chili, Colombie, Mexique, Norvège ou Russie. Pour les pays non-" +"supportés, seul le code\n" +"de pays sera validé.\n" +" " #. module: base #: model:ir.model,name:base.model_ir_actions_act_window_view @@ -6481,11 +7226,25 @@ msgid "" " Replica of Democratic Congo, Senegal, Chad, Togo.\n" " " msgstr "" +"\n" +"Ce module implémente la charte de compte pour les pays de l'HOADA.\n" +"=======================================================\n" +"\n" +"Il permet à toute compagnie ou association de gérer sa comptabilité " +"financière.\n" +"\n" +"Les pays qui utilisent OHADA sont les suivants :\n" +"----------------------------------------------------------------\n" +" Benin, Burkina Faso, Cameroun, Centrafrique, Comores, Congo,\n" +" Côte d'Ivoire, Gabon, Guinée, Guinée-Bissau, Guinée Équatoriale, Mali, " +"Niger,\n" +" République Démocratique du Congo, Sénégal, Tchad et Togo.\n" +" " #. module: base #: view:ir.translation:0 msgid "Comments" -msgstr "" +msgstr "Commentaires" #. module: base #: model:res.country,name:base.et @@ -6495,7 +7254,7 @@ msgstr "Ethiopie" #. module: base #: model:ir.module.category,name:base.module_category_authentication msgid "Authentication" -msgstr "" +msgstr "Authentification" #. module: base #: model:res.country,name:base.sj @@ -6591,6 +7350,11 @@ msgid "" "===============================================\n" " " msgstr "" +"\n" +"Permet aux utilisateurs de s'enregistrer et réinitialiser leur mot de " +"passe.\n" +"=========================================================\n" +" " #. module: base #: model:ir.module.category,name:base.module_category_usability @@ -6615,6 +7379,14 @@ msgid "" "membership products (schemes).\n" " " msgstr "" +"\n" +"Ce module configure les modules nécessaires aux associations.\n" +"=================================================\n" +"\n" +"Il installe le profil pour les associations leur permettant de gérer les " +"événements, enregistrements, \n" +"adhésions, produits d'adhésion (programmes).\n" +" " #. module: base #: model:ir.ui.menu,name:base.menu_base_config @@ -6647,6 +7419,20 @@ msgid "" "documentation at http://doc.openerp.com.\n" " " msgstr "" +"\n" +"Fournit une plateforme EDI que les autres applications peuvent utiliser.\n" +"=======================================================\n" +"\n" +"OpenERP spécifie un format générique EDI pour l'échange de document " +"d'affaire entre\n" +"différents systèmes et fournit les mécanismes génériques pour les importer " +"et les\n" +"exporter.\n" +"\n" +"Plus de détails au sujet du format EDI d'OpenERP peut être trouvé dans la " +"documentation\n" +"technique d'OpenERP à l'adresse http://doc.openerp.com.\n" +" " #. module: base #: code:addons/base/ir/workflow/workflow.py:99 @@ -6666,6 +7452,9 @@ msgid "" "deleting it (if you delete a native record rule, it may be re-created when " "you reload the module." msgstr "" +"Si vous désactivez le champs \"Actif\", cela désactivera la règle " +"d'enregistrement sans la supprimer (si vous supprimez une règle native " +"d'enregistrement, elle peut être recrée en rechargeant le module)." #. module: base #: selection:base.language.install,lang:0 @@ -6682,6 +7471,12 @@ msgid "" "Allows users to create custom dashboard.\n" " " msgstr "" +"\n" +"Permet aux utilisateurs de créer un tableau de bord personnalisé.\n" +"====================================================\n" +"\n" +"Permet aux utilisateurs de créer un tableau de bord personnalisé.\n" +" " #. module: base #: model:ir.actions.act_window,name:base.ir_access_act @@ -6779,7 +7574,7 @@ msgstr "" #. module: base #: field:res.partner,is_company:0 msgid "Is a Company" -msgstr "" +msgstr "Est une compagnie" #. module: base #: selection:ir.cron,interval_type:0 @@ -6823,18 +7618,23 @@ msgid "" "========================\n" "\n" msgstr "" +"\n" +"Vue kanban pour le client Web OpenERP.\n" +"================================\n" +"\n" #. module: base #: code:addons/base/ir/ir_fields.py:182 #, python-format msgid "'%s' does not seem to be a number for field '%%(field)s'" -msgstr "" +msgstr "'%s' ne semble pas être un nombre pour le champs '%%(field)s'" #. module: base #: help:res.country.state,name:0 msgid "" "Administrative divisions of a country. E.g. Fed. State, Departement, Canton" msgstr "" +"Divisions administratives d'un pays. Par exemple État, Département, Canton" #. module: base #: view:res.partner.bank:0 @@ -6844,7 +7644,7 @@ msgstr "Mes banques" #. module: base #: sql_constraint:ir.filters:0 msgid "Filter names must be unique" -msgstr "" +msgstr "Les noms de filtre doivent être uniques" #. module: base #: help:multi_company.default,object_id:0 @@ -6854,12 +7654,12 @@ msgstr "Objet affecté par cette règle" #. module: base #: selection:ir.actions.act_window,target:0 msgid "Inline View" -msgstr "" +msgstr "Vue intégrée" #. module: base #: field:ir.filters,is_default:0 msgid "Default filter" -msgstr "" +msgstr "Filtre par défaut" #. module: base #: report:ir.module.reference:0 @@ -6972,6 +7772,93 @@ msgid "" "If required, you can manually adjust the descriptions via the CODA " "configuration menu.\n" msgstr "" +"\n" +"Module pour importer les relevés de banque CODA.\n" +"=========================================\n" +"\n" +"Support des fichiers plats CODA v2 des comptes de banque belges.\n" +"-----------------------------------------------------------------------------" +"---------------\n" +" * Support de CODA v1.\n" +" * Support de CODA v2.2.\n" +" * Support des devises étrangères.\n" +" * Support de tous les types d'enregistrements (0, 1, 2, 3, 4, 8,9).\n" +" * Analyse et journalisation de tous les codes de transactions et formats " +"structurés de communications.\n" +" * Assignation automatique aux journaux financiers via les paramètres de " +"configuration CODA.\n" +" * Support des journaux multiples par numéro de compte bancaire.\n" +" * Support des relevés multiples depuis les différents comptes de banque " +"dans un fichier CODA unique.\n" +" * Support de l'\"analyse seule\" des comptes de banque CODA (définie " +"comme type=\"info\" dans la \n" +" configuration des comptes de banque CODA).\n" +" * Analyse CODA multi-langue, analyse des données de configuration " +"fournie pour EN, NL et FR.\n" +"\n" +"Les fichiers informatiques CODA sont analysés puis enregistrés dans un " +"format lisible dans les relevés de\n" +"banque CODA. Aussi, les relevés de banque sont générés avec le sous-ensemble " +"des informations CODA\n" +"(seulement les lignes de transaction requises pour la création des " +"enregistrements de la comptabilité financière).\n" +"Le relevé de banque CODA est un objet en lecture seule, et reste donc une " +"représentation fiable du fichier\n" +"CODA original, alors que le relevé de banque sera modifié comme requis par " +"le processus comptable.\n" +"\n" +"Les comptes bancaires CODA configuré comme type \"info\" généreront " +"uniquement les relevés de banque CODA.\n" +"\n" +"La suppression d'un des objets du processus CODA entraînera la suppression " +"des objets associés.\n" +"La suppression d'un fichier CODA contenant plusieurs relevés de banque " +"supprimera aussi les relevés associés.\n" +"\n" +"La logique de réconciliation suivante a été implémentée dans le traitement " +"CODA:\n" +"-----------------------------------------------------------------------------" +"-----------------------------------\n" +" 1) Le numéro du compte bancaire de la Compagnie du relevé CODA est " +"comparé au champ Numéro de\n" +" compte bancaire dans la configuration du compte bancaire CODA de la " +"compagnie (les comptes\n" +" bancaires de type \"info\" sont ignorés). Dans ce cas, une " +"transaction de \"transfert interne\" est\n" +" générée en utilisant le champ \"Compte de Transfert Interne\" de " +"l'assistant d'importation de fichier\n" +" CODA.\n" +" 2) Lors de la seconde étape, le champs \"Communication structurée\" de " +"la ligne de transaction est\n" +" comparé au champ de références des factures entrantes et sortantes " +"(les types de communication\n" +" structurées belges sont supportées).\n" +" 3) Lorsque l'étape précédente ne trouve pas de correspondance, la " +"transaction de contrepartie est\n" +" trouvée par le numéro de compte bancaire configuré dans les " +"enregistrements OpenERP des clients et\n" +" fournisseurs.\n" +" 4) Au cas où les étapes précédentes échouent, la transaction est générée " +"en utilisant le champ \"Compte\n" +" par Défaut pour les mouvements non-reconnus\" de l'assistant " +"d'importation de fichier CODA afin de\n" +" de permettre ultérieurement un traitement manuel.\n" +"\n" +"Au lieu d'un ajustement manuel des relevés de banque générés, vous pouvez " +"aussi ré-importer le fichier\n" +"CODA après avoir mis à jour la base OpenERP avec les informations qui " +"étaient manquantes et permettre\n" +"la réconciliation automatique.\n" +"\n" +"Remarque sur le support de CODA v1 :\n" +"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" +"Dans certains cas, un code de transaction, une catégorie de transaction ou " +"un code de communication\n" +"structurée a reçu une description nouvelle ou plus claire dans CODA v2. La " +"description fournie par les tables\n" +"de configuration CODA est basée sur les spécifications de CODA v2.2.\n" +"Si nécessaire, vous pouvez manuellement ajuster les descriptions par le menu " +"de configuration CODA.\n" #. module: base #: view:ir.attachment:0 @@ -6988,7 +7875,7 @@ msgstr "Malaisie" #: code:addons/base/ir/ir_sequence.py:130 #, python-format msgid "Increment number must not be zero." -msgstr "" +msgstr "Le numéro d'incrément ne doit pas être zéro." #. module: base #: model:ir.module.module,shortdesc:base.module_account_cancel @@ -6998,7 +7885,7 @@ msgstr "Annuler des écritures" #. module: base #: field:res.partner,tz_offset:0 msgid "Timezone offset" -msgstr "" +msgstr "Décalage horaire" #. module: base #: model:ir.module.module,description:base.module_marketing_campaign @@ -7059,6 +7946,13 @@ msgid "" "Price and Cost Price.\n" " " msgstr "" +"\n" +"Ce module ajoute la \"Marge\" sur les bons de commandes.\n" +"=============================================\n" +"\n" +"Il donne la profitabilité en calculant la différence du prix unitaire et du " +"prix coûtant.\n" +" " #. module: base #: selection:ir.actions.todo,type:0 @@ -7087,7 +7981,7 @@ msgstr "Cap-Vert" #. module: base #: model:res.groups,comment:base.group_sale_salesman msgid "the user will have access to his own data in the sales application." -msgstr "" +msgstr "l'utilisateur aura accès à ses propres données dans le CRM." #. module: base #: model:res.groups,comment:base.group_user @@ -7095,6 +7989,9 @@ msgid "" "the user will be able to manage his own human resources stuff (leave " "request, timesheets, ...), if he is linked to an employee in the system." msgstr "" +"l'utilisateur sera capable de gérer ses propres données de ressources " +"humaines (demandes d'absence, feuille de temps...), si il est lié à un " +"employé dans le système." #. module: base #: code:addons/orm.py:2247 @@ -7231,7 +8128,7 @@ msgstr "Année en cours sans les siècles : %(y)s" #: view:ir.config_parameter:0 #: model:ir.ui.menu,name:base.ir_config_menu msgid "System Parameters" -msgstr "" +msgstr "Paramètres systèmes" #. module: base #: help:ir.actions.client,tag:0 @@ -7291,7 +8188,7 @@ msgstr "Rapport de l' audit" #: code:addons/base/ir/ir_fields.py:264 #, python-format msgid "Value '%s' not found in selection field '%%(field)s'" -msgstr "" +msgstr "La valeur '%s' n'est pas dans le champ de sélection '%%(field)s'" #. module: base #: model:res.country,name:base.sd @@ -7383,7 +8280,7 @@ msgstr "Israël" #: code:addons/base/res/res_config.py:444 #, python-format msgid "Cannot duplicate configuration!" -msgstr "" +msgstr "La configuration ne peut pas être dupliquée!" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_syscohada @@ -7398,7 +8295,7 @@ msgstr "Parfois appelé BIC ou Swift" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in msgid "Indian - Accounting" -msgstr "" +msgstr "Inde - Comptabilité" #. module: base #: field:res.lang,time_format:0 @@ -7408,12 +8305,12 @@ msgstr "Format de l'heure" #. module: base #: field:res.company,rml_header3:0 msgid "RML Internal Header for Landscape Reports" -msgstr "" +msgstr "En-tête RML interne pour les rapports au format paysage" #. module: base #: model:res.groups,name:base.group_partner_manager msgid "Contact Creation" -msgstr "" +msgstr "Création du contact" #. module: base #: view:ir.module.module:0 @@ -7464,11 +8361,17 @@ msgid "" "This module provides the core of the OpenERP Web Client.\n" " " msgstr "" +"\n" +"Module cœur du client Web OpenERP.\n" +"==============================\n" +"\n" +"Ce module fourni le cœur du client Web OpenERP.\n" +" " #. module: base #: view:ir.sequence:0 msgid "Week of the Year: %(woy)s" -msgstr "" +msgstr "Semaine de l'année : %(woy)s" #. module: base #: field:res.users,id:0 @@ -7510,7 +8413,7 @@ msgstr "Royaume-Uni" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_pa msgid "Panama Localization Chart Account" -msgstr "" +msgstr "Panama - Plan de compte localisé" #. module: base #: help:res.partner.category,active:0 @@ -7538,7 +8441,7 @@ msgstr "Formes juridiques" #: code:addons/base/ir/ir_fields.py:227 #, python-format msgid "Use the format '%s'" -msgstr "" +msgstr "Utilisez le format '%s'" #. module: base #: help:ir.actions.act_window,auto_refresh:0 @@ -7570,12 +8473,12 @@ msgstr "Tâches" #: code:addons/base/res/res_bank.py:195 #, python-format msgid "Invalid Bank Account Type Name format." -msgstr "" +msgstr "Format de nom invalide pour le type de compte bancaire." #. module: base #: view:ir.filters:0 msgid "Filters visible only for one user" -msgstr "" +msgstr "Filtres visibles seulement pour un utilisateur" #. module: base #: model:ir.model,name:base.model_ir_attachment @@ -7640,7 +8543,7 @@ msgstr "" #. module: base #: model:res.groups,comment:base.group_hr_user msgid "the user will be able to approve document created by employees." -msgstr "" +msgstr "l'utilisateur pourra approuver les documents créés par les employés" #. module: base #: field:ir.ui.menu,needaction_enabled:0 @@ -7699,7 +8602,7 @@ msgstr "Fichier de module importé avec succès !" #: view:ir.model.constraint:0 #: model:ir.ui.menu,name:base.ir_model_constraint_menu msgid "Model Constraints" -msgstr "" +msgstr "Contraintes du modèle" #. module: base #: model:ir.actions.act_window,name:base.action_workflow_transition_form @@ -7777,6 +8680,17 @@ msgid "" "their status quickly as they evolve.\n" " " msgstr "" +"\n" +"Suivi des incidents/gestion des bogues pour les projets\n" +"===========================================\n" +"Cette application vous permet de gérer les incidents que vous pourriez " +"rencontrer dans un projet comme les bogues dans le système, les plaintes " +"client ou les bris matériels.\n" +"\n" +"Ceci permet au gestionnaire de rapidement vérifier les incidents, les " +"assigner et de décider rapidement leur statut au fur et à mesure qu'ils " +"évoluent.\n" +" " #. module: base #: field:ir.model.access,perm_create:0 @@ -7803,6 +8717,22 @@ msgid "" "up a management by affair.\n" " " msgstr "" +"\n" +"Ce module met en œuvre un système de feuilles de temps.\n" +"===============================================\n" +"\n" +"Chaque employé peut saisir et suivre leur temps passé sur les différents " +"projets.\n" +"Un projet est un compte analytique et le temps passé sur un projet génère un " +"coût\n" +"sur ce compte analytique.\n" +"\n" +"Beaucoup de rapports sur le temps et le suivi des employés sont fournis.\n" +"\n" +"Il est complètement intégré au module gestion des coûts (cost_accounting). " +"Il vous\n" +"permet de mettre en place une gestion par affaire.\n" +" " #. module: base #: field:res.bank,state:0 @@ -7819,7 +8749,7 @@ msgstr "Copie de" #. module: base #: field:ir.model.data,display_name:0 msgid "Record Name" -msgstr "" +msgstr "Nom d'enregistrement" #. module: base #: model:ir.model,name:base.model_ir_actions_client diff --git a/openerp/addons/base/i18n/gl.po b/openerp/addons/base/i18n/gl.po index 3e22a3f1891..145a6592a3a 100644 --- a/openerp/addons/base/i18n/gl.po +++ b/openerp/addons/base/i18n/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:20+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/gu.po b/openerp/addons/base/i18n/gu.po index ef47974cb60..46b401cb150 100644 --- a/openerp/addons/base/i18n/gu.po +++ b/openerp/addons/base/i18n/gu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:20+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/he.po b/openerp/addons/base/i18n/he.po index d0887c8fe31..13f28740def 100644 --- a/openerp/addons/base/i18n/he.po +++ b/openerp/addons/base/i18n/he.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:20+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/hi.po b/openerp/addons/base/i18n/hi.po index a95974a7b8c..f6f8f627702 100644 --- a/openerp/addons/base/i18n/hi.po +++ b/openerp/addons/base/i18n/hi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:21+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po index 50fbd98addb..1b542801bbe 100644 --- a/openerp/addons/base/i18n/hr.po +++ b/openerp/addons/base/i18n/hr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:24+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n" +"X-Generator: Launchpad (build 16550)\n" "Language: hr\n" #. module: base diff --git a/openerp/addons/base/i18n/hu.po b/openerp/addons/base/i18n/hu.po index 9eab29bf208..573ed26a0f3 100644 --- a/openerp/addons/base/i18n/hu.po +++ b/openerp/addons/base/i18n/hu.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:21+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -3274,7 +3274,7 @@ msgstr "" "==============================================\n" " * Felhasználó azonosítás\n" " * Dokumentum indexálás:- .pptx és .docx fájlok nem támogatottak Windows " -"oprendszeren.\n" +"operációs rendszeren.\n" " * Dashboard / Műszerfal a dokumentumokhoz mely magában foglalja:\n" " * Új fájl (lista)\n" " * Fájlok a forrás típusa szerint (grafikon)\n" @@ -3334,7 +3334,7 @@ msgstr "" "==================================\n" "\n" "Ez az alkalmazás lehetővé teszi a célul kitűzött eladások eredményes és " -"hatékony kezelését figyelembevéve a megrendelések és annak régebbi " +"hatékony kezelését figyelembe véve a megrendelések és annak régebbi " "történetének nyomon követését.\n" "\n" "Kezeli a teljes eladási munkafolyamatot:\n" @@ -3351,7 +3351,7 @@ msgstr "" "* Incoterms: International Commercial terms /Nemzetközi szállítási " "feltételek pl.:EXW/\n" "\n" -"Használható rugalmas számlázáasi módszer:\n" +"Használható rugalmas számlázási módszer:\n" "\n" "* *Igényléskori*: Ha szükséges a számlák kézzel létrehozhatók a megrendelés " "alapján\n" @@ -3361,7 +3361,7 @@ msgstr "" "egyenlíteni a szállítás előtt\n" "\n" "\n" -"A kereskedő vezérklő műszerfala a következőket tartalmazza\n" +"A kereskedő vezérlő műszerfala a következőket tartalmazza\n" "------------------------------------------------\n" "* Az árajánlataim\n" "* Havi forgótőke (Grafikon)\n" @@ -3555,7 +3555,7 @@ msgstr "" "automatikusan tud hozzárendelni emlékeztetőt.\n" "\n" "OpenERP alkatrész kezelés szabálya megengedi a rendszernek, hogy sablonból " -"rendelést generáljon autómatikusan, vagy beállíthatja, hogy az egészet a " +"rendelést generáljon automatikusan, vagy beállíthatja, hogy az egészet a " "termelés tényleges igénynek megfelelően folyamat vezérléssel hajtsa végre.\n" "\n" "Dashboard / Műszerfal a beszerzés kezelés kimutatásához ezt tartalmazza:\n" @@ -4457,7 +4457,7 @@ msgstr "" "Támogatja a raktározott termékek, fogyóeszközök vagy szolgáltatások " "integrációját. Szolgáltatások teljesen integráltak a szoftver teljes " "egységével. Például, beállíthat egy alvállalkozói szolgáltatást a " -"darabjegyzékben az autómatikus anyag beszerzéshez egy összeszerelni kívánt " +"darabjegyzékben az automatikus anyag beszerzéshez egy összeszerelni kívánt " "termék megrendelésénél.\n" "\n" "Fő tulajdonságok\n" @@ -4465,8 +4465,8 @@ msgstr "" "* Raktár létrehozás/Megrendelés létrehozás\n" "* Több szintű darabjegyzés, nincs határ\n" "* Több szintű útvonal, nincs határ\n" -"* Útvonal és munka központ integrálva az analitikai könyvitellel\n" -"* Periódikus ütemező számítás \n" +"* Útvonal és munka központ integrálva az analitikai könyvvitellel\n" +"* Periodikus ütemező számítás \n" "* Lehetővé teszi a darabjegyzékek böngészését komplett szerkezetben ami " "magában foglalja az al- és a fantom darabjegyzékeket\n" "\n" @@ -18709,7 +18709,7 @@ msgid "" " " msgstr "" "\n" -"Több-raktár kezelése, többes- és struktúrált/rendezett raktár helyek\n" +"Több-raktár kezelése, többes- és strukturált/rendezett raktár helyek\n" "==============================================================\n" "\n" "A raktár és raktárkészlet kezelés a hierarchikus elhelyezkedési szerkezeten " @@ -18721,7 +18721,7 @@ msgstr "" "lehetőségével a nyomon követhetőség biztosításához, mely követelmény nagyobb " "vállalkozásoknál.\n" "\n" -"Fó jellemzők\n" +"Fő jellemzők\n" "------------\n" "* A mozgások előzményei és tervezése,\n" "* Raktár értékelés (alap vagy átlag ár, ...)\n" diff --git a/openerp/addons/base/i18n/hy.po b/openerp/addons/base/i18n/hy.po index 40853d59148..6ead160f921 100644 --- a/openerp/addons/base/i18n/hy.po +++ b/openerp/addons/base/i18n/hy.po @@ -9,8 +9,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:18+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/id.po b/openerp/addons/base/i18n/id.po index e44e67f2628..bf958dd0679 100644 --- a/openerp/addons/base/i18n/id.po +++ b/openerp/addons/base/i18n/id.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:21+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/is.po b/openerp/addons/base/i18n/is.po index 0bf723604a7..54ef21a788a 100644 --- a/openerp/addons/base/i18n/is.po +++ b/openerp/addons/base/i18n/is.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:21+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/it.po b/openerp/addons/base/i18n/it.po index 3d2fd549c4c..298f1c20132 100644 --- a/openerp/addons/base/i18n/it.po +++ b/openerp/addons/base/i18n/it.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:21+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po index 62d5b775948..523379d4273 100644 --- a/openerp/addons/base/i18n/ja.po +++ b/openerp/addons/base/i18n/ja.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:21+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ka.po b/openerp/addons/base/i18n/ka.po index 2fc698508a8..ff9a36dbc03 100644 --- a/openerp/addons/base/i18n/ka.po +++ b/openerp/addons/base/i18n/ka.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:20+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/kk.po b/openerp/addons/base/i18n/kk.po index f6469cfed8f..158eb75b473 100644 --- a/openerp/addons/base/i18n/kk.po +++ b/openerp/addons/base/i18n/kk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:21+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ko.po b/openerp/addons/base/i18n/ko.po index 029330e1cc7..acf95acff74 100644 --- a/openerp/addons/base/i18n/ko.po +++ b/openerp/addons/base/i18n/ko.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:22+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/lt.po b/openerp/addons/base/i18n/lt.po index e08d86f76c5..a3fb9b19c79 100644 --- a/openerp/addons/base/i18n/lt.po +++ b/openerp/addons/base/i18n/lt.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:22+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/lv.po b/openerp/addons/base/i18n/lv.po index 3652580c7af..7e3ba4c96ca 100644 --- a/openerp/addons/base/i18n/lv.po +++ b/openerp/addons/base/i18n/lv.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:22+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/mk.po b/openerp/addons/base/i18n/mk.po index d25727a1052..f14ad6b6f95 100644 --- a/openerp/addons/base/i18n/mk.po +++ b/openerp/addons/base/i18n/mk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:22+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -4153,6 +4153,7 @@ msgstr "Титула" #: help:ir.property,res_id:0 msgid "If not set, acts as a default value for new resources" msgstr "" +"Доколку не е подесено, се однесува како стандардна вредност за новите ресурси" #. module: base #: code:addons/orm.py:4246 @@ -4560,7 +4561,7 @@ msgstr "EAN13" #: code:addons/orm.py:2247 #, python-format msgid "Invalid Architecture!" -msgstr "" +msgstr "Погрешна архитектура!" #. module: base #: model:res.country,name:base.pt @@ -4703,13 +4704,13 @@ msgstr "" #. module: base #: view:ir.cron:0 msgid "Action to Trigger" -msgstr "" +msgstr "Акција за активирање" #. module: base #: field:ir.model.constraint,name:0 #: selection:ir.translation,type:0 msgid "Constraint" -msgstr "" +msgstr "Ограничување" #. module: base #: selection:ir.values,key:0 @@ -4827,7 +4828,7 @@ msgstr "Телеком сектор" #. module: base #: field:workflow.transition,trigger_model:0 msgid "Trigger Object" -msgstr "" +msgstr "Активирај објект" #. module: base #: sql_constraint:ir.sequence.type:0 @@ -4848,7 +4849,7 @@ msgstr "Дојдовни премини" #. module: base #: field:ir.values,value_unpickle:0 msgid "Default value or action reference" -msgstr "" +msgstr "Стандардна вредност или референца на акцијата" #. module: base #: model:ir.module.module,description:base.module_note_pad @@ -4920,7 +4921,7 @@ msgstr "Шпански (HN) / Español (HN)" #. module: base #: view:ir.sequence.type:0 msgid "Sequence Type" -msgstr "" +msgstr "Тип на секвенца" #. module: base #: view:base.language.export:0 @@ -4973,7 +4974,7 @@ msgstr "Url" #. module: base #: selection:ir.translation,type:0 msgid "SQL Constraint" -msgstr "" +msgstr "SQL ограничување" #. module: base #: help:ir.ui.menu,groups_id:0 @@ -5179,7 +5180,7 @@ msgstr "" #. module: base #: model:ir.module.category,description:base.module_category_marketing msgid "Helps you manage your marketing campaigns step by step." -msgstr "" +msgstr "Ви помага да ги менаџирате вашите маркетинг кампањи чекор по чекор." #. module: base #: selection:base.language.install,lang:0 @@ -5324,7 +5325,7 @@ msgstr "Интеграција на Google Docs" #. module: base #: help:ir.attachment,res_model:0 msgid "The database object this attachment will be attached to" -msgstr "" +msgstr "Објектот на базата на податоци на кој овој прилог ќе биде прикачен" #. module: base #: code:addons/base/ir/ir_fields.py:327 @@ -5391,7 +5392,7 @@ msgstr ", или друг текст едитор" #. module: base #: model:ir.module.module,shortdesc:base.module_crm_partner_assign msgid "Partners Geo-Localization" -msgstr "" +msgstr "Географска локализација на партнери" #. module: base #: model:res.country,name:base.ke @@ -5448,7 +5449,7 @@ msgstr "Перу" #. module: base #: selection:ir.model.fields,on_delete:0 msgid "Set NULL" -msgstr "" +msgstr "Подеси Нула" #. module: base #: view:res.users:0 @@ -5479,7 +5480,7 @@ msgstr "" #. module: base #: help:ir.mail_server,smtp_user:0 msgid "Optional username for SMTP authentication" -msgstr "" +msgstr "Опционо корисничко име за SMTP автентификација" #. module: base #: model:ir.model,name:base.model_ir_actions_actions @@ -5552,6 +5553,7 @@ msgstr "Португалски / Português" #, python-format msgid "Changing the storing system for field \"%s\" is not allowed." msgstr "" +"Поврзувањето на системот за складирање за полето \"%s\" не е дозволено." #. module: base #: help:res.partner.bank,company_id:0 @@ -5775,6 +5777,7 @@ msgstr "Име на сопственикот на сметката" #, python-format msgid "Cannot rename column to %s, because that column already exists!" msgstr "" +"Не може да се преименува колоната во %s, бидејќи колоната веќе постои!" #. module: base #: view:ir.attachment:0 @@ -5790,7 +5793,7 @@ msgstr "Децимален знак" #: code:addons/orm.py:5319 #, python-format msgid "Missing required value for the field '%s'." -msgstr "" +msgstr "Недостига потребната вредност за полето '%s'." #. module: base #: view:ir.rule:0 @@ -5845,7 +5848,7 @@ msgstr "Буве Остров" #. module: base #: field:ir.model.constraint,type:0 msgid "Constraint Type" -msgstr "" +msgstr "Тип на ограничување" #. module: base #: field:res.company,child_ids:0 @@ -6172,7 +6175,7 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_ir_actions_act_window_view msgid "ir.actions.act_window.view" -msgstr "" +msgstr "ir.actions.act_window.view" #. module: base #: model:ir.module.module,shortdesc:base.module_web @@ -6183,7 +6186,7 @@ msgstr "Веб" #. module: base #: model:ir.module.module,shortdesc:base.module_lunch msgid "Lunch Orders" -msgstr "" +msgstr "Нарачки за ручек" #. module: base #: selection:base.language.install,lang:0 @@ -6229,7 +6232,7 @@ msgstr "Етиопија" #. module: base #: model:ir.module.category,name:base.module_category_authentication msgid "Authentication" -msgstr "" +msgstr "Автентикација" #. module: base #: model:res.country,name:base.sj @@ -6240,7 +6243,7 @@ msgstr "" #: model:ir.model,name:base.model_ir_actions_wizard #: selection:ir.ui.menu,action:0 msgid "ir.actions.wizard" -msgstr "" +msgstr "ir.actions.wizard" #. module: base #: model:ir.module.module,shortdesc:base.module_web_kanban @@ -6252,7 +6255,7 @@ msgstr "" #: view:ir.actions.report.xml:0 #: view:ir.actions.server:0 msgid "Group By" -msgstr "" +msgstr "Групирај по" #. module: base #: view:res.config.installer:0 @@ -6303,7 +6306,7 @@ msgstr "Семтководство и финансии" #. module: base #: field:ir.actions.server,write_id:0 msgid "Write Id" -msgstr "" +msgstr "Напиши ID" #. module: base #: model:ir.ui.menu,name:base.menu_product @@ -6330,12 +6333,12 @@ msgstr "" #: model:ir.module.category,name:base.module_category_usability #: view:res.users:0 msgid "Usability" -msgstr "" +msgstr "Употребливост" #. module: base #: field:ir.actions.act_window,domain:0 msgid "Domain Value" -msgstr "" +msgstr "Вредност на домен" #. module: base #: model:ir.module.module,description:base.module_association @@ -6386,7 +6389,7 @@ msgstr "" #: code:addons/base/ir/workflow/workflow.py:99 #, python-format msgid "Operation forbidden" -msgstr "" +msgstr "Забранета операција" #. module: base #: view:ir.actions.server:0 @@ -6444,7 +6447,7 @@ msgstr "Тип на банка" #: code:addons/base/res/res_users.py:99 #, python-format msgid "The name of the group can not start with \"-\"" -msgstr "" +msgstr "Името на групата не може да почнува со \"-\"" #. module: base #: model:ir.actions.client,name:base.modules_act_cl @@ -6484,7 +6487,7 @@ msgstr "" #: view:workflow.activity:0 #: field:workflow.activity,flow_start:0 msgid "Flow Start" -msgstr "" +msgstr "Почеток на тек" #. module: base #: model:ir.model,name:base.model_res_partner_title @@ -6823,7 +6826,7 @@ msgstr "" #: code:addons/orm.py:2247 #, python-format msgid "There is no view of type '%s' defined for the structure!" -msgstr "" +msgstr "Нема приказ од типот \\%s\\ дефинирано за структурата!" #. module: base #: help:ir.values,key:0 @@ -6964,7 +6967,7 @@ msgstr "" #. module: base #: sql_constraint:ir.rule:0 msgid "Rule must have at least one checked access right !" -msgstr "" +msgstr "Правилото мора да има барем едно означено право за пристап !" #. module: base #: field:res.partner.bank.type,format_layout:0 @@ -7402,7 +7405,7 @@ msgstr "Датотеката од модулот е успешно увезен #: view:ir.model.constraint:0 #: model:ir.ui.menu,name:base.ir_model_constraint_menu msgid "Model Constraints" -msgstr "" +msgstr "Ограничувања на модулот" #. module: base #: model:ir.actions.act_window,name:base.action_workflow_transition_form @@ -7415,7 +7418,7 @@ msgstr "Транзиции" #: model:ir.module.module,shortdesc:base.module_hr_timesheet #: model:ir.module.module,shortdesc:base.module_hr_timesheet_sheet msgid "Timesheets" -msgstr "" +msgstr "Временски таблици" #. module: base #: help:ir.values,company_id:0 @@ -7449,6 +7452,9 @@ msgid "" "password, otherwise leave empty. After a change of password, the user has to " "login again." msgstr "" +"Специфицирајте вредност единствено кога креирате корисник или ја менувате " +"корисничката лозинка, во спротивно оставете празно. После промената на " +"лозинката, корисникот треба повторно да се најави." #. module: base #: model:res.country,name:base.so @@ -7613,7 +7619,7 @@ msgstr "на" #. module: base #: view:ir.property:0 msgid "Parameters that are used by all resources." -msgstr "" +msgstr "Параметри кои се користат од сите расурси." #. module: base #: model:res.country,name:base.mz @@ -15713,7 +15719,7 @@ msgstr "Северна Кореа" #. module: base #: selection:ir.actions.server,state:0 msgid "Create Object" -msgstr "" +msgstr "Креирај објект" #. module: base #: model:res.country,name:base.ss @@ -15728,7 +15734,7 @@ msgstr "Контекст" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_mrp msgid "Sales and MRP Management" -msgstr "" +msgstr "Управување со продажби и производство" #. module: base #: model:ir.actions.act_window,help:base.action_partner_form @@ -15742,6 +15748,14 @@ msgid "" "

\n" " " msgstr "" +"

\n" +"Кликнете за да додадете контакт во вашиот именик.\n" +"

\n" +"OpenERP ви помага полесно да ги следите сите активности поврзани со\n" +"купувач; дискусии, историја на бизнис можности,\n" +"документи, итн.\n" +"

\n" +" " #. module: base #: model:res.partner.category,name:base.res_partner_category_2 @@ -15769,6 +15783,8 @@ msgid "" "Used to select automatically the right address according to the context in " "sales and purchases documents." msgstr "" +"Се користи за автоматски да се избере вистинската адреса според контекстот " +"во документите за продажби и набавки." #. module: base #: model:ir.module.module,description:base.module_purchase_analytic_plans @@ -15801,7 +15817,7 @@ msgstr "Руски / русский язык" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_signup msgid "Signup" -msgstr "" +msgstr "Регистрација" #~ msgid "Code (eg:en__US)" #~ msgstr "Код (пр. en_US)" diff --git a/openerp/addons/base/i18n/mn.po b/openerp/addons/base/i18n/mn.po index bbcf259fa43..479dd4340d9 100644 --- a/openerp/addons/base/i18n/mn.po +++ b/openerp/addons/base/i18n/mn.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:22+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -609,8 +609,8 @@ msgstr "" "===============================================\n" "\n" "OpenERP-д шинжилгээний дансд нь ерөнхий дансдадтай холбогддог боловч \n" -"бүрэн үл хамаарах байдаг. Иймээс ерөнхий санхүүгийн данс эсрэг тал нь болгох " -"албагүй \n" +"бүрэн үл хамаарах байдаг. Иймээс ерөнхий санхүүгийн данс харьцах тал нь " +"болгох албагүй \n" "бөгөөд төрөл бүрийн шинжилгээний үйлдлүүдийг оруулж болно.\n" " " @@ -919,7 +919,7 @@ msgstr "Иордан" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_hr msgid "Croatia - RRIF 2012 COA" -msgstr "" +msgstr "Croatia - RRIF 2012 COA" #. module: base #: help:ir.cron,nextcall:0 @@ -2373,9 +2373,9 @@ msgstr "" "\n" " * Дансны Мод, Татвар, Татварын Код, Журналь, Дансны Үлгэр, Шинжилгээний " "Дансны Мод, Шинжилгээний Журналиудад олон хэлийг нэмдэг.\n" -" * Тохируулах харилцах нь дараахыг өөрчилдөг.\n" -" - Үлгэрээс авагдсан Дансны Модт, Татвар, Татварын Код, Мөчлөг зэрэгт " -"орчуулгыг хуулна.\n" +" * Тохируулах харилцах цонх нь дараахыг өөрчилдөг.\n" +" - Үлгэрээс авагдсан Дансны Мод, Татвар, Татварын Код, Санхүүгийн " +"харгалзаа зэрэгт орчуулгыг хуулна.\n" " " #. module: base @@ -2564,7 +2564,7 @@ msgstr "Солонгос хэл (KP) / 한국어 (KP)" #. module: base #: model:res.country,name:base.ax msgid "Åland Islands" -msgstr "" +msgstr "Аландийн Арлууд" #. module: base #: field:res.company,logo:0 @@ -4210,22 +4210,22 @@ msgstr "" "\n" "Энэ модуль нь төлөвлөлт, захиалга, нөөцлөлт, бүтээгдэхүүний түүхий эд, дэд " "хэсгүүдээс угсрах зэрэгийг үйлдвэрлэлийн процессыг хамардаг. Түүнчлэн " -"бүтээгдэхүүний орц, жор, дамжлагын хүний нөөц, машин тоног төхөөрөмж " -"зэрэгийг таамагладаг.\n" +"бүтээгдэхүүний орц, дамжлагын хүний нөөц, машин тоног төхөөрөмж зэрэгийг " +"таамагладаг.\n" "\n" "Түүхийн эд нөөцлөл, хангамж, үйлчилгээний бүрэн төлөвлөлтийг дэмждэг. " "Үйлчилгээ нь програм хангамжийн бусад бүх хэсэгтэй бүрэн уялддаг. Тухайлбал, " -"үйлдвэрлэлийг явуулахдаа жор дотор нь дэд гэрээгээр авах үйлчилгээг " +"үйлдвэрлэлийг явуулахдаа орц дотор нь дэд гэрээгээр авах үйлчилгээг " "тодорхойлж өгөх боломжтой байдаг.\n" "\n" "Онцлог:\n" "---------\n" " * Хадгалуулах / Захиалуулах (мөр бүрээр)\n" -" * Олон түвшний жор, хязгааргүй\n" +" * Олон түвшний орц, хязгааргүй\n" " * Олон түвшний урсгал, хязгааргүй\n" " * Шинжилгээний санхүүтэй уялдсан үйлдвэрлэлийн урсгал болон дамжлага\n" " * Тогтол хугацааны тооцоолол / Яг Хугацаандааа модуль\n" -" * Жоруудыг бүтцээр нь, завсрынхаар нь гэх мэт гүйцэд шинжилгээ, үзлэг\n" +" * Орцуудыг бүтцээр нь, завсрынхаар нь гэх мэт гүйцэд шинжилгээ, үзлэг\n" "\n" "Үйлдвэрлэлийн модулийн Хянах самбар / Тайлангууд нь дараах зүйлсийг " "агуулдаг:\n" @@ -6404,7 +6404,7 @@ msgstr "Ачаалах Тохиргооны Визард" #. module: base #: model:ir.module.module,summary:base.module_mrp msgid "Manufacturing Orders, Bill of Materials, Routing" -msgstr "Үйлдвэрлэлийн захиалгууд, Жор, Дамжлагын цуваа" +msgstr "Үйлдвэрлэлийн захиалгууд, Орц, Шугам" #. module: base #: field:ir.attachment,name:0 diff --git a/openerp/addons/base/i18n/nb.po b/openerp/addons/base/i18n/nb.po index d4149a16387..149626edadd 100644 --- a/openerp/addons/base/i18n/nb.po +++ b/openerp/addons/base/i18n/nb.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:22+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/nl.po b/openerp/addons/base/i18n/nl.po index a7b4fc135c5..38cc4bc0cfd 100644 --- a/openerp/addons/base/i18n/nl.po +++ b/openerp/addons/base/i18n/nl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:19+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/nl_BE.po b/openerp/addons/base/i18n/nl_BE.po index 40a71d6a8f1..2b2ca0f20e2 100644 --- a/openerp/addons/base/i18n/nl_BE.po +++ b/openerp/addons/base/i18n/nl_BE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:26+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/pl.po b/openerp/addons/base/i18n/pl.po index ff8a077dc50..aeaf1845937 100644 --- a/openerp/addons/base/i18n/pl.po +++ b/openerp/addons/base/i18n/pl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:23+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/pt.po b/openerp/addons/base/i18n/pt.po index b0d97cb7dfc..0e75dcb2072 100644 --- a/openerp/addons/base/i18n/pt.po +++ b/openerp/addons/base/i18n/pt.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:23+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/pt_BR.po b/openerp/addons/base/i18n/pt_BR.po index 5c4b22a9f20..2c2168f9237 100644 --- a/openerp/addons/base/i18n/pt_BR.po +++ b/openerp/addons/base/i18n/pt_BR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:25+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ro.po b/openerp/addons/base/i18n/ro.po index e42ef15f0e3..0ac6b1d40fd 100644 --- a/openerp/addons/base/i18n/ro.po +++ b/openerp/addons/base/i18n/ro.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:23+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -32,17 +32,17 @@ msgstr "" #. module: base #: model:res.country,name:base.sh msgid "Saint Helena" -msgstr "Sfanta Elena" +msgstr "Sfânta Elena" #. module: base #: view:ir.actions.report.xml:0 msgid "Other Configuration" -msgstr "Alta configuratie" +msgstr "Altă configurație" #. module: base #: selection:ir.property,type:0 msgid "DateTime" -msgstr "DataOra" +msgstr "DatăOră" #. module: base #: code:addons/fields.py:652 @@ -51,29 +51,29 @@ 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 "" -"Al doilea parametru al campului many2many %s trebuie sa fie un tabel SQL ! " -"Ati folosit %s, care nu este un tabel SQL valid." +"Al doilea parametru al câmpului many2many %s trebuie să fie un tabel SQL ! " +"Ați folosit %s, care nu este un tabel SQL valid." #. module: base #: field:ir.ui.view,arch:0 #: field:ir.ui.view.custom,arch:0 msgid "View Architecture" -msgstr "Alcatuirea vizualizarii" +msgstr "Alcatuirea vizualizării" #. module: base #: model:ir.module.module,summary:base.module_sale_stock msgid "Quotation, Sale Orders, Delivery & Invoicing Control" -msgstr "Cotatie, Ordine de vanzari, Controlul Livrarii & Facturarii" +msgstr "Cotație, Comandă de vânzări, Controlul Livrării & Facturării" #. module: base #: selection:ir.sequence,implementation:0 msgid "No gap" -msgstr "Fara intrerupere" +msgstr "Fără întrerupere" #. module: base #: selection:base.language.install,lang:0 msgid "Hungarian / Magyar" -msgstr "Maghiara / Magyar" +msgstr "Maghiară / Magyar" #. module: base #: selection:base.language.install,lang:0 @@ -86,13 +86,13 @@ msgid "" "Helps you manage your projects and tasks by tracking them, generating " "plannings, etc..." msgstr "" -"Va ajuta sa va gestionati proiectele si sarcinile prin monitorizarea lor, " -"generarea de planificari, etc..." +"Vă ajută să vă gestionați proiectele și sarcinile prin monitorizarea lor, " +"generarea de planificări, etc..." #. module: base #: model:ir.module.module,summary:base.module_point_of_sale msgid "Touchscreen Interface for Shops" -msgstr "Interfata cu Ecran tactil pentru Magazine" +msgstr "Interfața cu Ecran tactil pentru Magazine" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll @@ -104,13 +104,13 @@ msgstr "Stat de plata indian" msgid "" "Model name on which the method to be called is located, e.g. 'res.partner'." msgstr "" -"Numele modelului unde este localizata metoda care va fi numita, de exemplu " +"Numele modelului unde este localizată metoda care va fi numită, de exemplu " "'res.partener'." #. module: base #: view:ir.module.module:0 msgid "Created Views" -msgstr "Vizualizari Create" +msgstr "Vizualizări Create" #. module: base #: model:ir.module.module,description:base.module_product_manufacturer @@ -158,7 +158,7 @@ msgstr "" #. module: base #: help:res.partner,employee:0 msgid "Check this box if this contact is an Employee." -msgstr "Bifati aceasta casuta daca acest contact este un Angajat." +msgstr "Bifați această căsuța dacă acest contact este un Angajat." #. module: base #: help:ir.model.fields,domain:0 @@ -167,14 +167,14 @@ msgid "" "specified as a Python expression defining a list of triplets. For example: " "[('color','=','red')]" msgstr "" -"Domeniul optional pentru a restrictiona posibilele valori pentru campurile " -"asociate, specificat ca o expresie Python care defineste o lista cu trei " +"Domeniul opțional pentru a restricționa posibilele valori pentru câmpurile " +"asociate, specificat ca o expresie Python care definește o listă cu trei " "elemente. De exemplu: [('culoare','=','rosu')]" #. module: base #: field:res.partner,ref:0 msgid "Reference" -msgstr "Referinta" +msgstr "Referință" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba @@ -184,7 +184,7 @@ msgstr "Belgia - Comunicare Structurata" #. module: base #: field:ir.actions.act_window,target:0 msgid "Target Window" -msgstr "Fereastra tinta" +msgstr "Fereastra țintă" #. module: base #: field:ir.actions.report.xml,report_rml:0 @@ -194,7 +194,7 @@ msgstr "Ruta Principala Fisier Raport" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_analytic_plans msgid "Sales Analytic Distribution" -msgstr "Distributia Analitica a Vanzarilor" +msgstr "Distribuția Analitică a Vânzărilor" #. module: base #: model:ir.module.module,description:base.module_hr_timesheet_invoice @@ -244,7 +244,7 @@ msgstr "" #: code:addons/osv.py:151 #, python-format msgid "Constraint Error" -msgstr "Eroare constrangere" +msgstr "Eroare constrângere" #. module: base #: model:ir.model,name:base.model_ir_ui_view_custom @@ -255,7 +255,7 @@ msgstr "ir.ui.vizualizare.personalizata" #: code:addons/base/ir/ir_model.py:375 #, python-format msgid "Renaming sparse field \"%s\" is not allowed" -msgstr "Nu este permisa redenumirea campului \"%s\"" +msgstr "Nu este permisă redenumirea campului \"%s\"" #. module: base #: model:res.country,name:base.sz @@ -266,12 +266,12 @@ msgstr "Swaziland (tara in sudul Africii)" #: code:addons/orm.py:4486 #, python-format msgid "created." -msgstr "creat(a)." +msgstr "creat(ă)." #. module: base #: field:ir.actions.report.xml,report_xsl:0 msgid "XSL Path" -msgstr "Ruta XSL" +msgstr "Rută XSL" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_tr @@ -281,7 +281,7 @@ msgstr "Turcia - Contabilitate" #. module: base #: field:ir.sequence,number_increment:0 msgid "Increment Number" -msgstr "Majorare Numar" +msgstr "Majorare Număr" #. module: base #: model:ir.actions.act_window,name:base.action_res_company_tree @@ -319,7 +319,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_sale msgid "Sales Management" -msgstr "Gestionarea vanzarilor" +msgstr "Gestionarea vânzărilor" #. module: base #: help:res.partner,user_id:0 @@ -328,7 +328,7 @@ msgid "" "any." msgstr "" "Utilizatorul intern care este responsabil cu comunicarea cu acest contact, " -"daca exista." +"dacă există." #. module: base #: view:res.partner:0 @@ -343,7 +343,7 @@ msgstr "Numar de Module" #. module: base #: help:multi_company.default,company_dest_id:0 msgid "Company to store the current record" -msgstr "Compania unde se pastreaza inregistrarea actuala" +msgstr "Compania unde se pastreaza înregistrarea actuală" #. module: base #: field:res.partner.bank.type.field,size:0 @@ -356,8 +356,8 @@ msgid "" "Database ID of record to open in form view, when ``view_mode`` is set to " "'form' only" msgstr "" -"ID baza de date a inregistrarii de deschis in vizualizare formular, atunci " -"cand ``modul_vizualizare`` este setat doar pe 'formular'" +"ID bază de date a înregistrării de deschis în vizualizare formular, atunci " +"când ``view_mode``` este setat doar pe 'form'" #. module: base #: help:ir.values,key2:0 @@ -384,7 +384,7 @@ msgstr "Numele limbii trebuie sa fie unic !" #. module: base #: selection:res.request,state:0 msgid "active" -msgstr "activ(a)" +msgstr "activ(ă)" #. module: base #: field:ir.actions.wizard,wiz_name:0 @@ -414,7 +414,7 @@ msgstr "" #. module: base #: model:ir.module.category,name:base.module_category_customer_relationship_management msgid "Customer Relationship Management" -msgstr "Gestionarea Relatiilor cu Clientii" +msgstr "Gestionarea relațiilor cu clienții" #. module: base #: model:ir.module.module,description:base.module_delivery @@ -456,24 +456,24 @@ msgstr "Grup invalid_dupa" #. module: base #: field:ir.module.category,child_ids:0 msgid "Child Applications" -msgstr "Aplicatii secundare" +msgstr "Aplicații secundare" #. module: base #: field:res.partner,credit_limit:0 msgid "Credit Limit" -msgstr "Limita de credit" +msgstr "Limită de credit" #. module: base #: field:ir.model.constraint,date_update:0 #: field:ir.model.data,date_update:0 #: field:ir.model.relation,date_update:0 msgid "Update Date" -msgstr "Data actualizarii" +msgstr "Data actualizării" #. module: base #: model:ir.module.module,shortdesc:base.module_base_action_rule msgid "Automated Action Rules" -msgstr "Reguli de actiune automata" +msgstr "Reguli de acțiune automată" #. module: base #: view:ir.attachment:0 @@ -484,7 +484,7 @@ msgstr "Proprietar" #. module: base #: view:ir.actions.act_window:0 msgid "Source Object" -msgstr "Obiect Sursa" +msgstr "Obiect Sursă" #. module: base #: model:res.partner.bank.type,format_layout:base.bank_normal @@ -494,7 +494,7 @@ msgstr "%(bank_name)s: %(acc_number)s" #. module: base #: view:ir.actions.todo:0 msgid "Config Wizard Steps" -msgstr "Configurare pasi asistent" +msgstr "Configurare pași asistent" #. module: base #: model:ir.model,name:base.model_ir_ui_view_sc @@ -544,7 +544,7 @@ msgstr "" #. module: base #: field:ir.model.relation,name:0 msgid "Relation Name" -msgstr "Nume Relatie" +msgstr "Nume Relație" #. module: base #: view:ir.rule:0 @@ -559,7 +559,7 @@ msgstr "Tuvalu" #. module: base #: field:ir.actions.configuration.wizard,note:0 msgid "Next Wizard" -msgstr "Wizardul urmator" +msgstr "Wizardul următor" #. module: base #: field:res.lang,date_format:0 @@ -589,7 +589,7 @@ msgstr "" #. module: base #: view:workflow.transition:0 msgid "Workflow Transition" -msgstr "Tranzitie Flux de lucru" +msgstr "Tranziție Flux de lucru" #. module: base #: model:res.country,name:base.gf @@ -738,7 +738,7 @@ msgstr "Text" #. module: base #: field:res.country,name:0 msgid "Country Name" -msgstr "Numele tarii" +msgstr "Numele țării" #. module: base #: model:res.country,name:base.co @@ -767,7 +767,7 @@ msgstr "Palau" #. module: base #: view:res.partner:0 msgid "Sales & Purchases" -msgstr "Vanzari & Achizitii" +msgstr "Vânzări & Achiziții" #. module: base #: view:ir.translation:0 @@ -777,7 +777,7 @@ msgstr "Netradus(e)" #. module: base #: view:ir.mail_server:0 msgid "Outgoing Mail Server" -msgstr "Server Iesire E-mail-uri" +msgstr "Server Ieșire E-mail-uri" #. module: base #: help:ir.actions.act_window,context:0 @@ -798,7 +798,7 @@ msgstr "Logo Web" #, python-format msgid "Custom fields must have a name that starts with 'x_' !" msgstr "" -"Campurile personalizate trebuie sa aiba un nume care incepe cu 'x_' !" +"Câmpurile personalizate trebuie să aibă un nume care începe cu 'x_' !" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_mx @@ -820,7 +820,7 @@ msgstr "Cheia trebuie sa fie unica." #. module: base #: model:ir.module.module,shortdesc:base.module_plugin_outlook msgid "Outlook Plug-In" -msgstr "Aplicatia Outlook" +msgstr "Aplicația Outlook" #. module: base #: model:ir.module.module,description:base.module_account @@ -930,7 +930,7 @@ msgstr "" #. module: base #: field:workflow.transition,trigger_expr_id:0 msgid "Trigger Expression" -msgstr "Declanseaza Expresia" +msgstr "Declanșează Expresia" #. module: base #: model:res.country,name:base.jo @@ -960,17 +960,17 @@ msgstr "Eritreea" #. module: base #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "Numele companiei trebuie sa fie unic !" +msgstr "Numele companiei trebuie să fie unic !" #. module: base #: model:ir.ui.menu,name:base.menu_base_action_rule_admin msgid "Automated Actions" -msgstr "Actiuni Automate" +msgstr "Acțiuni Automate" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_ro msgid "Romania - Accounting" -msgstr "Romania - Contabilitate" +msgstr "România - Contabilitate" #. module: base #: model:ir.model,name:base.model_res_config_settings @@ -1003,7 +1003,7 @@ msgstr "" #. module: base #: view:ir.mail_server:0 msgid "Security and Authentication" -msgstr "Securitate si Autentificare" +msgstr "Securitate și Autentificare" #. module: base #: model:ir.module.module,shortdesc:base.module_web_calendar @@ -1019,7 +1019,7 @@ msgstr "Suedeza / svenska" #: field:base.language.export,name:0 #: field:ir.attachment,datas_fname:0 msgid "File Name" -msgstr "Nume Fisier" +msgstr "Nume fișier" #. module: base #: model:res.country,name:base.rs @@ -1106,7 +1106,7 @@ msgstr "Albaneza / Shqip" #. module: base #: model:ir.ui.menu,name:base.menu_crm_config_opportunity msgid "Opportunities" -msgstr "Oportunitati" +msgstr "Oportunități" #. module: base #: model:ir.model,name:base.model_base_language_export @@ -1133,7 +1133,7 @@ msgstr "Depozite comune (WebDAV)" #. module: base #: view:res.users:0 msgid "Email Preferences" -msgstr "Preferinte email" +msgstr "Preferințe email" #. module: base #: code:addons/base/ir/ir_fields.py:195 @@ -1173,7 +1173,7 @@ msgstr "Spania" msgid "" "Optional domain filtering of the destination data, as a Python expression" msgstr "" -"Filtrarea optionala a domeniului pentru datele destinatie, ca o expresie " +"Filtrarea opțională a domeniului pentru datele destinație, ca o expresie " "Python" #. module: base @@ -1232,12 +1232,12 @@ msgstr "Gestionarea adeziunii ca membru" #. module: base #: selection:ir.module.module,license:0 msgid "Other OSI Approved Licence" -msgstr "Alte licente OSI aprobate" +msgstr "Alte licențe OSI aprobate" #. module: base #: model:ir.module.module,shortdesc:base.module_web_gantt msgid "Web Gantt" -msgstr "Diagrama Gantt Web" +msgstr "Diagramă Gantt Web" #. module: base #: model:ir.actions.act_window,name:base.act_menu_create @@ -1289,7 +1289,7 @@ msgstr "Principatul Andorra" #. module: base #: field:ir.rule,perm_read:0 msgid "Apply for Read" -msgstr "Se aplica pentru Citit" +msgstr "Se aplică pentru Citit" #. module: base #: model:res.country,name:base.mn @@ -1383,7 +1383,7 @@ msgstr "Model document" #. module: base #: view:res.users:0 msgid "Change the user password." -msgstr "Schimba parola utilizatorului." +msgstr "Schimbă parola utilizatorului." #. module: base #: view:res.lang:0 @@ -1518,17 +1518,17 @@ msgstr "Guam (SUA)" #. module: base #: sql_constraint:res.country:0 msgid "The name of the country must be unique !" -msgstr "Numele tarii trebuie sa fie unic !" +msgstr "Numele țării trebuie să fie unic !" #. module: base #: field:ir.module.module,installed_version:0 msgid "Latest Version" -msgstr "Cea mai recenta versiune" +msgstr "Cea mai recentă versiune" #. module: base #: view:ir.rule:0 msgid "Delete Access Right" -msgstr "Sterge Dreptul de Acces" +msgstr "Șterge Dreptul de Acces" #. module: base #: code:addons/base/ir/ir_mail_server.py:214 @@ -1545,7 +1545,7 @@ msgstr "Provizoriu" #. module: base #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "XML nevalid pentru arhitectura vizualizarii!" +msgstr "XML nevalid pentru arhitectura vizualizării!" #. module: base #: model:res.country,name:base.ky @@ -1555,7 +1555,7 @@ msgstr "Insulele Cayman" #. module: base #: view:ir.rule:0 msgid "Record Rule" -msgstr "Regula Inregistrare" +msgstr "Regulă înregistrare" #. module: base #: model:res.country,name:base.kr @@ -1571,7 +1571,7 @@ msgstr "Plan economic pentru societati" #: code:addons/orm.py:4918 #, python-format msgid "Record #%d of %s not found, cannot copy!" -msgstr "Inregistrarea #%d a %s nu a fost gasita, nu se poate copia!" +msgstr "Înregistrarea #%d a %s nu a fost găsită, nu se poate copia!" #. module: base #: field:ir.module.module,contributors:0 @@ -1581,7 +1581,7 @@ msgstr "Colaboratori" #. module: base #: field:ir.rule,perm_unlink:0 msgid "Apply for Delete" -msgstr "Aplica pentru Stergere" +msgstr "Aplică pentru ștergere" #. module: base #: selection:ir.property,type:0 @@ -1591,12 +1591,12 @@ msgstr "Caracter" #. module: base #: field:ir.module.category,visible:0 msgid "Visible" -msgstr "Vizibil(a)" +msgstr "Vizibil(ă)" #. module: base #: model:ir.actions.client,name:base.action_client_base_menu msgid "Open Settings Menu" -msgstr "Deschide Meniul Setari" +msgstr "Deschide Meniul Setări" #. module: base #: selection:base.language.install,lang:0 @@ -1611,7 +1611,7 @@ msgstr "Uganda" #. module: base #: field:ir.model.access,perm_unlink:0 msgid "Delete Access" -msgstr "Stergeti Accesul" +msgstr "Ștergeti accesul" #. module: base #: model:res.country,name:base.ne @@ -1621,17 +1621,17 @@ msgstr "Niger" #. module: base #: selection:base.language.install,lang:0 msgid "Chinese (HK)" -msgstr "Chineza (HK)" +msgstr "Chineză (HK)" #. module: base #: model:res.country,name:base.ba msgid "Bosnia-Herzegovina" -msgstr "Bosnia-Hertegovina" +msgstr "Bosnia-Herțegovina" #. module: base #: selection:ir.translation,type:0 msgid "Wizard Field" -msgstr "Camp asistent" +msgstr "Câmp asistent" #. module: base #: selection:base.language.install,lang:0 @@ -1676,7 +1676,7 @@ msgstr "" #: code:addons/base/module/wizard/base_language_install.py:53 #, python-format msgid "Language Pack" -msgstr "Pachet limba" +msgstr "Pachet limbă" #. module: base #: model:ir.module.module,shortdesc:base.module_web_tests @@ -1686,7 +1686,7 @@ msgstr "Teste" #. module: base #: field:ir.actions.report.xml,attachment:0 msgid "Save as Attachment Prefix" -msgstr "Salveaza ca Prefix Atasament" +msgstr "Salvează ca Prefix Atașament" #. module: base #: field:ir.ui.view_sc,res_id:0 @@ -1696,7 +1696,7 @@ msgstr "Ref. Resursa" #. module: base #: field:ir.actions.act_url,url:0 msgid "Action URL" -msgstr "URL Actiune" +msgstr "URL Acțiune" #. module: base #: field:base.module.import,module_name:0 @@ -1729,7 +1729,7 @@ msgstr "Stat de plata francez" #: view:ir.ui.view:0 #: selection:ir.ui.view,type:0 msgid "Search" -msgstr "Cautati" +msgstr "Căutați" #. module: base #: code:addons/osv.py:154 @@ -1748,20 +1748,20 @@ msgstr "" #. module: base #: field:ir.module.category,parent_id:0 msgid "Parent Application" -msgstr "Aplicatie principala" +msgstr "Aplicație principală" #. module: base #: model:ir.actions.act_window,name:base.ir_action_wizard #: view:ir.actions.wizard:0 #: model:ir.ui.menu,name:base.menu_ir_action_wizard msgid "Wizards" -msgstr "Asistenti" +msgstr "Asistenți" #. module: base #: code:addons/base/res/res_users.py:131 #, python-format msgid "Operation Canceled" -msgstr "Operatiune anulata" +msgstr "Operațiune anulată" #. module: base #: model:ir.module.module,shortdesc:base.module_document @@ -1771,7 +1771,7 @@ msgstr "Sistemul de gestionare a documentelor" #. module: base #: model:ir.module.module,shortdesc:base.module_crm_claim msgid "Claims Management" -msgstr "Gestionare reclamatii" +msgstr "Gestionare reclamații" #. module: base #: model:ir.module.module,description:base.module_document_webdav @@ -1837,7 +1837,7 @@ msgstr "" #: model:ir.module.category,name:base.module_category_purchase_management #: model:ir.ui.menu,name:base.menu_purchase_root msgid "Purchases" -msgstr "Achizitii" +msgstr "Achiziții" #. module: base #: model:res.country,name:base.md @@ -1968,7 +1968,7 @@ msgstr "Nu exista nici o limba cu codul \"%s\"" #: model:ir.module.category,name:base.module_category_social_network #: model:ir.module.module,shortdesc:base.module_mail msgid "Social Network" -msgstr "Retea Sociala" +msgstr "Rețea socială" #. module: base #: view:res.lang:0 @@ -2051,7 +2051,7 @@ msgstr "" #: view:res.bank:0 #: field:res.partner.bank,bank:0 msgid "Bank" -msgstr "Banca" +msgstr "Bancă" #. module: base #: model:ir.model,name:base.model_ir_exports_line @@ -2174,20 +2174,20 @@ msgstr "res.link.cerere" #. module: base #: field:ir.actions.wizard,name:0 msgid "Wizard Info" -msgstr "Informatii asistent" +msgstr "Informații asistent" #. module: base #: 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 "Exportati Traducerea" +msgstr "Exportați traducerea" #. module: base #: model:ir.actions.act_window,name:base.action_server_action #: view:ir.actions.server:0 #: model:ir.ui.menu,name:base.menu_server_action msgid "Server Actions" -msgstr "Actiuni Server" +msgstr "Acțiuni server" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_lu @@ -2204,7 +2204,7 @@ msgstr "Timorul de Est" #: view:ir.module.module:0 #, python-format msgid "Install" -msgstr "Instaleaza" +msgstr "Instalează" #. module: base #: field:res.currency,accuracy:0 @@ -2294,7 +2294,7 @@ msgstr "Eveniment Portal" #. module: base #: selection:ir.translation,state:0 msgid "Translation in Progress" -msgstr "Traducere in desfasurare" +msgstr "Traducere în desfășurare" #. module: base #: model:ir.model,name:base.model_ir_rule @@ -2410,7 +2410,7 @@ msgstr "Parteneri" #. module: base #: field:res.partner.category,parent_left:0 msgid "Left parent" -msgstr "Parinte stang" +msgstr "Părinte stânga" #. module: base #: model:ir.module.module,shortdesc:base.module_project_mrp @@ -2426,7 +2426,7 @@ msgstr "Aceasta coloana contine datele modulului si nu poate fi stearsa!" #. module: base #: field:res.partner.bank,footer:0 msgid "Display on Reports" -msgstr "Afisati in Rapoarte" +msgstr "Afisați în Rapoarte" #. module: base #: model:ir.module.module,description:base.module_project_timesheet @@ -2484,12 +2484,12 @@ msgstr "" #. module: base #: field:workflow.transition,act_from:0 msgid "Source Activity" -msgstr "Activitatea sursa" +msgstr "Activitatea sursă" #. module: base #: view:ir.sequence:0 msgid "Legend (for prefix, suffix)" -msgstr "Legenda (pentru prefix, sufix)" +msgstr "Legendă (pentru prefix, sufix)" #. module: base #: selection:ir.server.object.lines,type:0 @@ -2593,7 +2593,7 @@ msgstr "" #. module: base #: field:ir.ui.menu,complete_name:0 msgid "Full Path" -msgstr "Calea completa" +msgstr "Calea completă" #. module: base #: view:base.language.export:0 @@ -2621,7 +2621,7 @@ msgstr "Format PO(T): ar trebui editat cu un editor PO, cum ar fi" #: model:ir.ui.menu,name:base.menu_administration #: model:res.groups,name:base.group_system msgid "Settings" -msgstr "Setari" +msgstr "Setări" #. module: base #: selection:ir.actions.act_window,view_type:0 @@ -2634,12 +2634,12 @@ msgstr "Arbore" #. module: base #: view:ir.actions.server:0 msgid "Create / Write / Copy" -msgstr "Creati / Scrieti / Copiati" +msgstr "Creați / Scrieți / Copiați" #. module: base #: view:ir.sequence:0 msgid "Second: %(sec)s" -msgstr "Secunda: %(sec)s" +msgstr "Secundă: %(sec)s" #. module: base #: field:ir.actions.act_window,view_mode:0 @@ -2684,17 +2684,17 @@ msgstr "Costa Rica - Contabilitate" #: selection:ir.actions.act_url,target:0 #: selection:ir.actions.act_window,target:0 msgid "New Window" -msgstr "Fereastra noua" +msgstr "Fereastră nouă" #. module: base #: field:ir.values,action_id:0 msgid "Action (change only)" -msgstr "Actiune (modificati doar daca)" +msgstr "Acțiune (modificați doar dacă)" #. module: base #: model:ir.module.module,shortdesc:base.module_subscription msgid "Recurring Documents" -msgstr "Documente Recurente" +msgstr "Documente recurente" #. module: base #: model:res.country,name:base.bs @@ -2704,7 +2704,7 @@ msgstr "Bahamas" #. module: base #: field:ir.rule,perm_create:0 msgid "Apply for Create" -msgstr "Aplica pentru Creare" +msgstr "Aplică pentru Creare" #. module: base #: model:ir.module.category,name:base.module_category_tools @@ -2812,7 +2812,7 @@ msgstr "" #. module: base #: field:change.password.user,new_passwd:0 msgid "New Password" -msgstr "Parola Noua" +msgstr "Parola Nouă" #. module: base #: model:ir.actions.act_window,help:base.action_ui_view @@ -2982,7 +2982,7 @@ msgstr "Editor Flux de lucru" #: selection:ir.module.module,state:0 #: selection:ir.module.module.dependency,state:0 msgid "To be removed" -msgstr "Va fi sters" +msgstr "Va fi șters" #. module: base #: model:ir.model,name:base.model_ir_sequence @@ -3162,7 +3162,7 @@ msgstr "Madagascar" msgid "" "The Object name must start with x_ and not contain any special character !" msgstr "" -"Numele obiectului trebuie sa inceapa cu x_ si sa nu contina nici un caracter " +"Numele obiectului trebuie să înceapă cu x_ și să nu conțină nici un caracter " "special !" #. module: base @@ -3185,7 +3185,7 @@ msgstr "Meniu" #. module: base #: field:res.currency,rate:0 msgid "Current Rate" -msgstr "Rata curenta" +msgstr "Rata curentă" #. module: base #: selection:base.language.install,lang:0 @@ -3238,7 +3238,7 @@ msgstr "" #. module: base #: field:ir.actions.act_url,target:0 msgid "Action Target" -msgstr "Actiune tinta" +msgstr "Acțiune țintă" #. module: base #: model:res.country,name:base.ai @@ -3248,7 +3248,7 @@ msgstr "Anguilla" #. module: base #: model:ir.actions.report.xml,name:base.report_ir_model_overview msgid "Model Overview" -msgstr "Model de prezentare generala" +msgstr "Model de prezentare generală" #. module: base #: model:ir.module.module,shortdesc:base.module_product_margin @@ -3393,7 +3393,7 @@ msgstr "" #: field:ir.translation,res_id:0 #: field:ir.values,res_id:0 msgid "Record ID" -msgstr "ID Inregistrare" +msgstr "ID Înregistrare" #. module: base #: view:ir.filters:0 @@ -3454,7 +3454,7 @@ msgstr "" #: view:ir.actions.server:0 #: field:workflow.activity,action_id:0 msgid "Server Action" -msgstr "Actiune Server" +msgstr "Acțiune server" #. module: base #: help:ir.actions.client,params:0 @@ -3464,12 +3464,12 @@ msgstr "Argumentele trimise clientului impreuna cu eticheta vizualizarii" #. module: base #: model:ir.module.module,summary:base.module_contacts msgid "Contacts, People and Companies" -msgstr "Contacte, Oameni si Companii" +msgstr "Contacte, Oameni și Companii" #. module: base #: model:res.country,name:base.tt msgid "Trinidad and Tobago" -msgstr "Trinidad si Tobago" +msgstr "Trinidad și Tobago" #. module: base #: model:res.country,name:base.lv @@ -3484,7 +3484,7 @@ msgstr "Aplicatii Camp" #. module: base #: view:base.language.export:0 msgid "Export Translations" -msgstr "Exporta Traduceri" +msgstr "Exportă traduceri" #. module: base #: model:ir.module.module,description:base.module_auth_crypt @@ -3596,7 +3596,7 @@ msgstr "ir.actiuni.inchide_fereastra_act" #. module: base #: field:ir.server.object.lines,col1:0 msgid "Destination" -msgstr "Destinatie" +msgstr "Destinație" #. module: base #: model:res.country,name:base.lt @@ -3636,7 +3636,7 @@ msgstr "" #. module: base #: view:res.groups:0 msgid "Inherited" -msgstr "Mostenit" +msgstr "Moștenit" #. module: base #: code:addons/base/ir/ir_fields.py:146 @@ -3700,7 +3700,7 @@ msgstr "" #. module: base #: view:res.lang:0 msgid "%y - Year without century [00,99]." -msgstr "%y - An fara secol [00,99]." +msgstr "%y - An fără secol [00,99]." #. module: base #: model:ir.module.module,description:base.module_account_anglo_saxon @@ -3788,7 +3788,7 @@ msgstr "Integrare LinkedIn" #: code:addons/orm.py:2032 #, python-format msgid "Invalid Object Architecture!" -msgstr "Arhitectura Obiect Nevalida!" +msgstr "Arhitectură Obiect Nevalidă!" #. module: base #: code:addons/base/ir/ir_model.py:373 @@ -3817,7 +3817,7 @@ msgstr "%p - Echivalent pentru AM sau PM." #. module: base #: view:ir.actions.server:0 msgid "Iteration Actions" -msgstr "Actiuni de repetare" +msgstr "Acțiuni de repetare" #. module: base #: help:multi_company.default,company_id:0 @@ -3836,14 +3836,14 @@ msgstr "" #. module: base #: model:res.country,name:base.nz msgid "New Zealand" -msgstr "Noua Zeelanda" +msgstr "Noua Zeelandă" #. module: base #: field:ir.exports.line,name:0 #: view:ir.model.fields:0 #: field:res.partner.bank.type.field,name:0 msgid "Field Name" -msgstr "Nume camp" +msgstr "Nume câmp" #. module: base #: model:ir.actions.act_window,help:base.action_country @@ -3876,7 +3876,7 @@ msgstr "Numele tehnic al modelului de care apartine acest camp" #: selection:ir.actions.server,state:0 #: view:ir.values:0 msgid "Client Action" -msgstr "Actiune client" +msgstr "Acțiune client" #. module: base #: model:ir.module.module,description:base.module_subscription @@ -3925,7 +3925,7 @@ msgstr "Sloganul Companiei" #: view:res.users:0 #, python-format msgid "Application" -msgstr "Aplicatie" +msgstr "Aplicație" #. module: base #: model:res.groups,comment:base.group_hr_manager @@ -4034,13 +4034,13 @@ msgstr "Suedia" #. module: base #: field:ir.actions.report.xml,report_file:0 msgid "Report File" -msgstr "Fisier Raport" +msgstr "Fișier Raport" #. module: base #: selection:ir.actions.act_window.view,view_mode:0 #: selection:ir.ui.view,type:0 msgid "Gantt" -msgstr "Diagrama Gantt" +msgstr "Diagramă Gantt" #. module: base #: model:ir.module.module,description:base.module_l10n_in_hr_payroll @@ -4085,7 +4085,7 @@ msgstr "" #: code:addons/orm.py:3871 #, python-format msgid "Missing document(s)" -msgstr "Document(e) lipsa" +msgstr "Document(e) lipsă" #. module: base #: model:ir.model,name:base.model_res_partner_bank_type @@ -4175,7 +4175,7 @@ msgstr "Calendar" #. module: base #: model:ir.module.category,name:base.module_category_knowledge_management msgid "Knowledge" -msgstr "Cunostinte" +msgstr "Cunoștințe" #. module: base #: field:workflow.activity,signal_send:0 @@ -4202,7 +4202,7 @@ msgstr "Dependenta modul" #. module: base #: model:res.country,name:base.bd msgid "Bangladesh" -msgstr "Bangladesh" +msgstr "Bangladeș" #. module: base #: model:ir.actions.act_window,help:base.action_partner_title_contact @@ -4241,12 +4241,12 @@ msgstr "Sondaj / Utilizator" #: view:ir.module.module:0 #: field:ir.module.module,dependencies_id:0 msgid "Dependencies" -msgstr "Dependente" +msgstr "Dependențe" #. module: base #: field:multi_company.default,company_id:0 msgid "Main Company" -msgstr "Compania Principala" +msgstr "Compania principală" #. module: base #: field:ir.ui.menu,web_icon_hover:0 @@ -4280,7 +4280,7 @@ msgstr "Eroare! Nu puteti crea companii recursive." #. module: base #: field:res.partner,birthdate:0 msgid "Birthdate" -msgstr "Zi de nastere" +msgstr "Zi de naștere" #. module: base #: model:ir.actions.act_window,name:base.action_partner_title_contact @@ -4291,7 +4291,7 @@ msgstr "Titluri contact" #. module: base #: model:ir.module.module,shortdesc:base.module_product_manufacturer msgid "Products Manufacturers" -msgstr "Producatori de produse" +msgstr "Producători de produse" #. module: base #: code:addons/base/ir/ir_mail_server.py:239 @@ -4332,7 +4332,7 @@ msgstr "" #. module: base #: field:ir.model.fields,select_level:0 msgid "Searchable" -msgstr "Poate fi cautat" +msgstr "Poate fi căutat" #. module: base #: model:res.country,name:base.uy @@ -4347,7 +4347,7 @@ msgstr "Finlandeza / Suomi" #. module: base #: view:ir.config_parameter:0 msgid "System Properties" -msgstr "Proprietatile Sistemului" +msgstr "Proprietățile sistemului" #. module: base #: field:ir.sequence,prefix:0 @@ -4357,12 +4357,12 @@ msgstr "Prefix" #. module: base #: selection:base.language.install,lang:0 msgid "German / Deutsch" -msgstr "Germana / Deutsch" +msgstr "Germană / Deutsch" #. module: base #: view:ir.actions.server:0 msgid "Fields Mapping" -msgstr "Reprezentare Campuri" +msgstr "Reprezentare cămpuri" #. module: base #: model:res.partner.title,name:base.res_partner_title_sir @@ -4423,12 +4423,12 @@ msgstr "" #. module: base #: field:ir.actions.server,fields_lines:0 msgid "Field Mappings." -msgstr "Mapari campuri." +msgstr "Mapări câmpuri." #. module: base #: selection:res.request,priority:0 msgid "High" -msgstr "Ridicat(a)" +msgstr "Ridicat(ă)" #. module: base #: model:ir.module.module,description:base.module_mrp @@ -4513,7 +4513,7 @@ msgstr "Descriere" #: model:ir.actions.act_window,name:base.action_workflow_instance_form #: model:ir.ui.menu,name:base.menu_workflow_instance msgid "Instances" -msgstr "Instante" +msgstr "Instanțe" #. module: base #: model:ir.module.module,description:base.module_purchase_requisition @@ -4554,12 +4554,12 @@ msgstr "Persoane" #. module: base #: view:base.language.import:0 msgid "_Import" -msgstr "_Importa" +msgstr "_Importă" #. module: base #: field:res.users,action_id:0 msgid "Home Action" -msgstr "Actiunea Initiala" +msgstr "Acțiunea inițială" #. module: base #: field:res.lang,grouping:0 @@ -4579,7 +4579,7 @@ msgstr "Structura Bazei de date" #. module: base #: model:ir.actions.act_window,name:base.action_partner_mass_mail msgid "Mass Mailing" -msgstr "Trimitere e-mail-uri in masa" +msgstr "Trimitere e-mail-uri în masă" #. module: base #: model:res.country,name:base.yt @@ -4603,7 +4603,7 @@ msgstr "" #. module: base #: view:ir.rule:0 msgid "Interaction between rules" -msgstr "Interactiune intre norme" +msgstr "Interacțiune între norme" #. module: base #: field:res.company,rml_footer:0 @@ -4614,7 +4614,7 @@ msgstr "Subsolul paginii Raportului" #. module: base #: selection:res.lang,direction:0 msgid "Right-to-Left" -msgstr "De la dreapta la stanga" +msgstr "De la dreapta la stânga" #. module: base #: model:res.country,name:base.sx @@ -4634,7 +4634,7 @@ msgstr "Filtre" #: view:ir.cron:0 #: model:ir.ui.menu,name:base.menu_ir_cron_act msgid "Scheduled Actions" -msgstr "Actiuni Planificate" +msgstr "Acțiuni planificate" #. module: base #: model:ir.module.category,name:base.module_category_reporting @@ -4716,7 +4716,7 @@ msgstr "" #. module: base #: view:ir.model:0 msgid "Create a Menu" -msgstr "Creati un meniu" +msgstr "Creați un meniu" #. module: base #: model:res.country,name:base.tg @@ -4756,7 +4756,7 @@ msgstr "Acces Interzis" #. module: base #: field:res.company,name:0 msgid "Company Name" -msgstr "Numele Companiei" +msgstr "Numele companiei" #. module: base #: code:addons/orm.py:2808 @@ -4772,7 +4772,7 @@ msgstr "" #: model:ir.actions.act_window,name:base.action_country #: model:ir.ui.menu,name:base.menu_country_partner msgid "Countries" -msgstr "Tari" +msgstr "Țări" #. module: base #: selection:ir.translation,type:0 @@ -4837,7 +4837,7 @@ msgstr "Saint Pierre si Miquelon" #. module: base #: view:ir.actions.todo:0 msgid "Search Actions" -msgstr "Cautare Actiuni" +msgstr "Căutare Acțiuni" #. module: base #: model:ir.module.module,description:base.module_base_calendar @@ -4900,7 +4900,7 @@ msgstr "Eticheta" #. module: base #: view:res.lang:0 msgid "%d - Day of the month [01,31]." -msgstr "%d - Ziua din luna [01,31]." +msgstr "%d - Ziua din lună [01,31]." #. module: base #: model:res.country,name:base.tj @@ -4910,7 +4910,7 @@ msgstr "Tadjikistan" #. module: base #: selection:ir.module.module,license:0 msgid "GPL-2 or later version" -msgstr "GPL-2 sau o versiune mai noua" +msgstr "GPL-2 sau o versiune mai nouă" #. module: base #: selection:workflow.activity,kind:0 @@ -4920,7 +4920,7 @@ msgstr "Opriti Tot" #. module: base #: field:res.company,paper_format:0 msgid "Paper Format" -msgstr "Format hartie" +msgstr "Format hârtie" #. module: base #: code:addons/base/module/module.py:644 @@ -5176,7 +5176,7 @@ msgstr "EAN13" #: code:addons/orm.py:2247 #, python-format msgid "Invalid Architecture!" -msgstr "Arhitectura Nevalida!" +msgstr "Arhitectură Nevalidă!" #. module: base #: model:res.country,name:base.pt @@ -5186,7 +5186,7 @@ msgstr "Portugalia" #. module: base #: model:ir.module.module,shortdesc:base.module_share msgid "Share any Document" -msgstr "Partajeaza orice Document" +msgstr "Partajează orice Document" #. module: base #: field:workflow.transition,group_id:0 @@ -5213,7 +5213,7 @@ msgstr "Italia - Contabilitate" #: field:ir.actions.server,help:0 #: field:ir.actions.wizard,help:0 msgid "Action description" -msgstr "Descriere actiune" +msgstr "Descriere acțiune" #. module: base #: model:ir.module.module,description:base.module_l10n_ma @@ -5287,7 +5287,7 @@ msgstr "Organizarea de Evenimente" #: model:ir.ui.menu,name:base.menu_partner_form #: view:res.partner:0 msgid "Customers" -msgstr "Clienti" +msgstr "Clienți" #. module: base #: model:res.country,name:base.au @@ -5302,7 +5302,7 @@ msgstr "Meniu :" #. module: base #: selection:ir.model.fields,state:0 msgid "Base Field" -msgstr "Camp de baza" +msgstr "Câmp de bază" #. module: base #: model:ir.module.category,name:base.module_category_managing_vehicles_and_contracts @@ -5345,13 +5345,13 @@ msgstr "Polonia - Contabilitate" #. module: base #: view:ir.cron:0 msgid "Action to Trigger" -msgstr "Actiunea de declansat" +msgstr "Acțiunea de declanșat" #. module: base #: field:ir.model.constraint,name:0 #: selection:ir.translation,type:0 msgid "Constraint" -msgstr "Constrangere" +msgstr "Constrângere" #. module: base #: selection:ir.values,key:0 @@ -5362,7 +5362,7 @@ msgstr "Implicit" #. module: base #: model:ir.module.module,summary:base.module_lunch msgid "Lunch Order, Meal, Food" -msgstr "Comanda pentru pranz, Masa, Mancare" +msgstr "Comandă pentru prânz, Masă, Mâncare" #. module: base #: view:ir.model.fields:0 @@ -5374,7 +5374,7 @@ msgstr "Solicitat (e)" #. module: base #: model:res.country,name:base.ro msgid "Romania" -msgstr "Romania" +msgstr "România" #. module: base #: field:ir.module.module,summary:0 @@ -5385,7 +5385,7 @@ msgstr "Rezumat" #. module: base #: model:ir.module.category,name:base.module_category_hidden_dependency msgid "Dependency" -msgstr "Dependenta" +msgstr "Dependență" #. module: base #: model:ir.module.module,description:base.module_portal @@ -5452,12 +5452,12 @@ msgstr "" #. module: base #: model:ir.module.module,summary:base.module_sale msgid "Quotations, Sales Orders, Invoicing" -msgstr "Cotatii, Comenzi de Vanzare, Facturare" +msgstr "Cotații, Comenzi de Vânzare, Facturare" #. module: base #: field:res.partner,parent_id:0 msgid "Related Company" -msgstr "Compania Asociata" +msgstr "Compania Asociată" #. module: base #: help:ir.actions.act_url,help:0 @@ -5483,7 +5483,7 @@ msgstr "Sfantul Scaun (Vatican)" #. module: base #: field:base.module.import,module_file:0 msgid "Module .ZIP file" -msgstr "Modulul pentru fisiere .ZIP" +msgstr "Modulul pentru fișiere .ZIP" #. module: base #: model:res.partner.category,name:base.res_partner_category_17 @@ -5493,17 +5493,17 @@ msgstr "Sector telecomunicatii" #. module: base #: field:workflow.transition,trigger_model:0 msgid "Trigger Object" -msgstr "Declanseaza obiect" +msgstr "Declanșează obiect" #. module: base #: sql_constraint:ir.sequence.type:0 msgid "`code` must be unique." -msgstr "`codul` trebuie sa fie unic." +msgstr "`codul` trebuie să fie unic." #. module: base #: model:ir.module.module,shortdesc:base.module_knowledge msgid "Knowledge Management System" -msgstr "Sistemul de Management al Cunostintelor" +msgstr "Sistemul de management al cunoștințelor" #. module: base #: view:workflow.activity:0 @@ -5609,7 +5609,7 @@ msgstr "Spaniola (HN) / Español (HN)" #. module: base #: view:ir.sequence.type:0 msgid "Sequence Type" -msgstr "Tipul secventei" +msgstr "Tipul secvenței" #. module: base #: view:base.language.export:0 @@ -5626,12 +5626,12 @@ msgstr "Hindi / हिंदी" #: model:ir.actions.act_window,name:base.action_view_base_language_install #: model:ir.ui.menu,name:base.menu_view_base_language_install msgid "Load a Translation" -msgstr "Incarca o Traducere" +msgstr "Încarcă o traducere" #. module: base #: field:ir.module.module,latest_version:0 msgid "Installed Version" -msgstr "Versiunea Instalata" +msgstr "Versiunea instalată" #. module: base #: model:ir.module.module,description:base.module_account_test @@ -5663,7 +5663,7 @@ msgstr "" #. module: base #: field:ir.module.module,license:0 msgid "License" -msgstr "Licenta" +msgstr "Licență" #. module: base #: field:ir.attachment,url:0 @@ -5673,7 +5673,7 @@ msgstr "Url" #. module: base #: selection:ir.translation,type:0 msgid "SQL Constraint" -msgstr "Constrangere SQL" +msgstr "Constrângere SQL" #. module: base #: help:ir.ui.menu,groups_id:0 @@ -5821,7 +5821,7 @@ msgstr "" #. module: base #: view:ir.actions.act_window:0 msgid "Open a Window" -msgstr "Deschide o fereastra" +msgstr "Deschide o fereastră" #. module: base #: model:res.country,name:base.gq @@ -5929,7 +5929,7 @@ msgstr "Elvetia - Contabilitate" #: field:res.partner,zip:0 #: field:res.partner.bank,zip:0 msgid "Zip" -msgstr "Cod postal" +msgstr "Cod poștal" #. module: base #: view:ir.module.module:0 @@ -5982,7 +5982,7 @@ msgstr "Ghana" #. module: base #: field:res.lang,direction:0 msgid "Direction" -msgstr "Directie" +msgstr "Direcție" #. module: base #: view:ir.actions.act_window:0 @@ -5997,7 +5997,7 @@ msgstr "Directie" #: view:res.groups:0 #: field:res.groups,view_access:0 msgid "Views" -msgstr "Vizualizari" +msgstr "Vizualizări" #. module: base #: view:res.groups:0 @@ -6094,7 +6094,7 @@ msgstr "Fluxuri de lucru" #. module: base #: model:ir.ui.menu,name:base.next_id_73 msgid "Purchase" -msgstr "Achizitie" +msgstr "Achiziție" #. module: base #: selection:base.language.install,lang:0 @@ -6218,7 +6218,7 @@ msgstr "Omite" #. module: base #: model:ir.module.module,shortdesc:base.module_event_sale msgid "Events Sales" -msgstr "Evenimente Vanzari" +msgstr "Evenimente vânzări" #. module: base #: model:res.country,name:base.ls @@ -6244,7 +6244,7 @@ msgstr "Kenia" #: model:ir.actions.act_window,name:base.action_translation #: model:ir.ui.menu,name:base.menu_action_translation msgid "Translated Terms" -msgstr "Termeni tradusi" +msgstr "Termeni traduși" #. module: base #: selection:base.language.install,lang:0 @@ -6290,12 +6290,12 @@ msgstr "Peru" #. module: base #: selection:ir.model.fields,on_delete:0 msgid "Set NULL" -msgstr "Setati NULL" +msgstr "Setați NULL" #. module: base #: view:res.users:0 msgid "Save" -msgstr "Salveaza" +msgstr "Salvează" #. module: base #: field:ir.actions.report.xml,report_xml:0 @@ -6337,7 +6337,7 @@ msgstr "Nu poate fi cautat" #: view:ir.config_parameter:0 #: field:ir.config_parameter,key:0 msgid "Key" -msgstr "Tasta" +msgstr "Tastă" #. module: base #: field:res.company,rml_header:0 @@ -6395,7 +6395,7 @@ msgstr "Plan de conturi SNC pentru Portugalia" #: view:ir.actions.report.xml:0 #: model:ir.ui.menu,name:base.menu_security msgid "Security" -msgstr "Siguranta" +msgstr "Siguranță" #. module: base #: selection:base.language.install,lang:0 @@ -6418,7 +6418,7 @@ msgstr "Numai daca acest cont bancar apartine companiei d-voastra" #: code:addons/base/ir/ir_fields.py:337 #, python-format msgid "Unknown sub-field '%s'" -msgstr "Sub-camp '%s' necunoscut" +msgstr "Sub-câmp '%s' necunoscut" #. module: base #: model:res.country,name:base.za @@ -6430,7 +6430,7 @@ msgstr "Africa de Sud" #: selection:ir.module.module,state:0 #: selection:ir.module.module.dependency,state:0 msgid "Installed" -msgstr "Instalat(a)" +msgstr "Instalat(ă)" #. module: base #: selection:base.language.install,lang:0 @@ -6487,7 +6487,7 @@ msgstr "Affero GPL-3" #. module: base #: field:ir.sequence,number_next:0 msgid "Next Number" -msgstr "Urmatorul numar" +msgstr "Următorul număr" #. module: base #: help:workflow.transition,condition:0 @@ -6509,7 +6509,7 @@ msgstr "Tarife" #. module: base #: model:ir.module.module,shortdesc:base.module_email_template msgid "Email Templates" -msgstr "Sabloane e-mail" +msgstr "Șabloane e-mail" #. module: base #: model:res.country,name:base.sy @@ -6550,7 +6550,7 @@ msgstr "" #. module: base #: selection:res.request,state:0 msgid "draft" -msgstr "ciorna" +msgstr "ciornă" #. module: base #: selection:ir.property,type:0 @@ -6694,7 +6694,7 @@ msgstr "Separator Zecimal" #: code:addons/orm.py:5319 #, python-format msgid "Missing required value for the field '%s'." -msgstr "Lipseste valoarea solicitata pentru campul '%s'." +msgstr "Lipsește valoarea solicitată pentru câmpul '%s'." #. module: base #: view:ir.rule:0 @@ -6739,13 +6739,13 @@ msgstr "Insula Man" #. module: base #: help:ir.actions.client,res_model:0 msgid "Optional model, mostly used for needactions." -msgstr "Model optional, folosit mai ales pentru actiuni" +msgstr "Model opțional, folosit mai ales pentru acțiuni" #. module: base #: code:addons/base/module/module.py:306 #, python-format msgid "The name of the module must be unique !" -msgstr "Numele modulului trebuie sa fie unic !" +msgstr "Numele modulului trebuie să fie unic !" #. module: base #: model:res.country,name:base.bv @@ -6755,7 +6755,7 @@ msgstr "Insula Bouvet" #. module: base #: field:ir.model.constraint,type:0 msgid "Constraint Type" -msgstr "Tipul Restrictiei" +msgstr "Tipul Restricției" #. module: base #: field:res.company,child_ids:0 @@ -6798,7 +6798,7 @@ msgstr "Buton Wizard" #: selection:ir.translation,type:0 #: field:multi_company.default,field_id:0 msgid "Field" -msgstr "Camp" +msgstr "Câmp" #. module: base #: model:ir.module.module,shortdesc:base.module_project_long_term @@ -6828,17 +6828,17 @@ msgstr "Lansati Wizard-ul de Configurare" #. module: base #: model:ir.module.module,summary:base.module_mrp msgid "Manufacturing Orders, Bill of Materials, Routing" -msgstr "Comenzi de Productie, Lista de Materiale, Distribuire" +msgstr "Comenzi de Producție, Listă de Materiale, Distribuire" #. module: base #: field:ir.attachment,name:0 msgid "Attachment Name" -msgstr "Nume Atasament" +msgstr "Nume atașament" #. module: base #: view:ir.module.module:0 msgid "Cancel Upgrade" -msgstr "Anulati Actualizarea" +msgstr "Anulați Actualizarea" #. module: base #: model:ir.module.module,description:base.module_report_webkit @@ -7046,7 +7046,7 @@ msgstr "ir.actions.act_url" #. module: base #: model:ir.ui.menu,name:base.menu_translation_app msgid "Application Terms" -msgstr "Termeni aplicatie" +msgstr "Termeni aplicație" #. module: base #: model:ir.actions.act_window,help:base.open_module_tree @@ -7075,7 +7075,7 @@ msgstr "Modul" #. module: base #: selection:base.language.install,lang:0 msgid "English (UK)" -msgstr "Engleza (Marea Britanie)" +msgstr "Engleză (Marea Britanie)" #. module: base #: selection:base.language.install,lang:0 @@ -7085,7 +7085,7 @@ msgstr "Japoneza / 日本語" #. module: base #: model:ir.model,name:base.model_base_language_import msgid "Language Import" -msgstr "Import limba" +msgstr "Import limbă" #. module: base #: help:workflow.transition,act_from:0 @@ -7201,7 +7201,7 @@ msgstr "Internet" #. module: base #: model:ir.module.module,shortdesc:base.module_lunch msgid "Lunch Orders" -msgstr "Comenzi Pranz" +msgstr "Comenzi Prânz" #. module: base #: selection:base.language.install,lang:0 @@ -7286,7 +7286,7 @@ msgstr "Baza Kanban" #: view:ir.actions.report.xml:0 #: view:ir.actions.server:0 msgid "Group By" -msgstr "Grupeaza dupa" +msgstr "Grupează după" #. module: base #: view:res.config.installer:0 @@ -7297,12 +7297,12 @@ msgstr "titlu" #: code:addons/base/ir/ir_fields.py:146 #, python-format msgid "true" -msgstr "adevarat" +msgstr "adevărat" #. module: base #: model:ir.model,name:base.model_base_language_install msgid "Install Language" -msgstr "Instaleaza Limba" +msgstr "Instalează Limba" #. module: base #: model:res.partner.category,name:base.res_partner_category_11 @@ -7317,12 +7317,12 @@ msgstr "Traducere" #. module: base #: selection:res.request,state:0 msgid "closed" -msgstr "inchis" +msgstr "închis" #. module: base #: selection:base.language.export,state:0 msgid "get" -msgstr "obtine" +msgstr "obține" #. module: base #: help:ir.model.fields,on_delete:0 @@ -7332,7 +7332,7 @@ msgstr "Proprietatea Sterge pentru campurile many2one" #. module: base #: model:ir.module.category,name:base.module_category_accounting_and_finance msgid "Accounting & Finance" -msgstr "Contabilitate si Finante" +msgstr "Contabilitate și Finanțe" #. module: base #: field:ir.actions.server,write_id:0 @@ -7446,7 +7446,7 @@ msgstr "" #: code:addons/base/ir/workflow/workflow.py:99 #, python-format msgid "Operation forbidden" -msgstr "Operatiune interzisa" +msgstr "Operațiune interzisă" #. module: base #: view:ir.actions.server:0 @@ -7510,7 +7510,7 @@ msgstr "" #. module: base #: field:res.partner.bank.type.field,bank_type_id:0 msgid "Bank Type" -msgstr "Tip Banca" +msgstr "Tip Bancă" #. module: base #: code:addons/base/res/res_users.py:99 @@ -7523,7 +7523,7 @@ msgstr "Numele grupului nu poate sa inceapa cu \"-\"" #: view:ir.module.module:0 #: model:ir.ui.menu,name:base.module_mi msgid "Apps" -msgstr "Aplicatii" +msgstr "Aplicații" #. module: base #: view:ir.ui.view_sc:0 @@ -7583,7 +7583,7 @@ msgstr "Telefon:" #. module: base #: field:res.partner,is_company:0 msgid "Is a Company" -msgstr "Este o Companie" +msgstr "Este o companie" #. module: base #: selection:ir.cron,interval_type:0 @@ -7618,7 +7618,7 @@ msgstr "" #. module: base #: field:ir.ui.view.custom,ref_id:0 msgid "Original View" -msgstr "Vizualizare Originala" +msgstr "Vizualizare Originală" #. module: base #: model:ir.module.module,description:base.module_web_kanban diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po index 6320984bf78..0820328722c 100644 --- a/openerp/addons/base/i18n/ru.po +++ b/openerp/addons/base/i18n/ru.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:23+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -882,7 +882,7 @@ msgstr "" #. module: base #: help:ir.cron,nextcall:0 msgid "Next planned execution date for this job." -msgstr "Следующая запланированная дата выполнения для данной работы." +msgstr "Следующая дата выполнения задачи планировщиком." #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -11026,7 +11026,7 @@ msgstr "" #: model:ir.actions.act_window,name:base.action_view_base_module_upgrade #, python-format msgid "Apply Schedule Upgrade" -msgstr "Применить запланированные обновления" +msgstr "Выполнить обновление" #. module: base #: view:workflow.activity:0 @@ -14840,7 +14840,7 @@ msgstr "Файл веб-значка" #. module: base #: model:ir.ui.menu,name:base.menu_view_base_module_upgrade msgid "Apply Scheduled Upgrades" -msgstr "Выполнить запланированные обновления" +msgstr "Выполнить обновления" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_journal diff --git a/openerp/addons/base/i18n/sk.po b/openerp/addons/base/i18n/sk.po index fb167a93dac..1fe42b2c740 100644 --- a/openerp/addons/base/i18n/sk.po +++ b/openerp/addons/base/i18n/sk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:24+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sl.po b/openerp/addons/base/i18n/sl.po index 83be47972c4..34e56d1352b 100644 --- a/openerp/addons/base/i18n/sl.po +++ b/openerp/addons/base/i18n/sl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:24+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sq.po b/openerp/addons/base/i18n/sq.po index c3bbb1f9ef4..ed98a4597a5 100644 --- a/openerp/addons/base/i18n/sq.po +++ b/openerp/addons/base/i18n/sq.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:17+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sr.po b/openerp/addons/base/i18n/sr.po index 66eaf5b0c0d..e9d77f2f633 100644 --- a/openerp/addons/base/i18n/sr.po +++ b/openerp/addons/base/i18n/sr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:23+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sr@latin.po b/openerp/addons/base/i18n/sr@latin.po index b9216f1b040..3730a1dcfa3 100644 --- a/openerp/addons/base/i18n/sr@latin.po +++ b/openerp/addons/base/i18n/sr@latin.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sv.po b/openerp/addons/base/i18n/sv.po index 5c10147e721..b4e93dc875c 100644 --- a/openerp/addons/base/i18n/sv.po +++ b/openerp/addons/base/i18n/sv.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:24+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/th.po b/openerp/addons/base/i18n/th.po index d338cfcf992..487e249b2e7 100644 --- a/openerp/addons/base/i18n/th.po +++ b/openerp/addons/base/i18n/th.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:24+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/tlh.po b/openerp/addons/base/i18n/tlh.po index 087c4e0bae4..4d29cbb774a 100644 --- a/openerp/addons/base/i18n/tlh.po +++ b/openerp/addons/base/i18n/tlh.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:24+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/tr.po b/openerp/addons/base/i18n/tr.po index a82dca06e42..4dd3408dbdf 100644 --- a/openerp/addons/base/i18n/tr.po +++ b/openerp/addons/base/i18n/tr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:25+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -25,7 +25,7 @@ msgid "" " " msgstr "" "\n" -"Çek yazımı ve basımı için modül.\n" +"Çek Yazma ve Bastırma Modülü.\n" "================================================\n" " " @@ -37,7 +37,7 @@ msgstr "Azize Helen" #. module: base #: view:ir.actions.report.xml:0 msgid "Other Configuration" -msgstr "Diğer Ayarlar" +msgstr "Diğer Yapılandırmalar" #. module: base #: selection:ir.property,type:0 @@ -73,7 +73,7 @@ msgstr "Boşluk Yok" #. module: base #: selection:base.language.install,lang:0 msgid "Hungarian / Magyar" -msgstr "Macarca / Magyar" +msgstr "Macarca" #. module: base #: selection:base.language.install,lang:0 @@ -103,7 +103,7 @@ msgstr "Hindistan Bordro" #: help:ir.cron,model:0 msgid "" "Model name on which the method to be called is located, e.g. 'res.partner'." -msgstr "" +msgstr "Çağrılacak yöntemin bulunduğu model adı, örn. 'res.partner'" #. module: base #: view:ir.module.module:0 @@ -125,6 +125,17 @@ msgid "" " * Product Attributes\n" " " msgstr "" +"\n" +"Ürün kartına üretici ve öznitelikleri ekleyecek bir modül.\n" +"====================================================================\n" +"\n" +"Şimdi bir ürün için aşağıdakileri tanımlayabilirsiniz:\n" +"-----------------------------------------------\n" +" * Üretici\n" +" * Üretici Ürün Adı\n" +" * Üretici Ürün Kodu\n" +" * Ürün Öznitelikleri\n" +" " #. module: base #: field:ir.actions.client,params:0 @@ -154,6 +165,9 @@ msgid "" "specified as a Python expression defining a list of triplets. For example: " "[('color','=','red')]" msgstr "" +"ilişki alanlarında olası değerleri sınırlayacak seçmeli etki alanı adı, bir " +"üçlü liste olarak tanımlanan bir Python ifadesi olarak belirlenmiştir. " +"Örneğin: [('renk','=','kırmızı')]" #. module: base #: field:res.partner,ref:0 @@ -194,6 +208,14 @@ msgid "" "revenue\n" "reports." msgstr "" +"\n" +"Giderlerden, Zaman Çizelgesi Kayıtlarından Faturalarınızı oluşturun.\n" +"========================================================\n" +"\n" +"Maliyetlere göre fatura oluşturan modül (insan kaynaklar, giderler, ...).\n" +"\n" +"Analitik hesaplarda fiyat listeleri tanımlayabilirsiniz, bazı kuramsal gelir " +"raporları yapabilirsiniz." #. module: base #: code:addons/base/ir/ir_sequence.py:104 @@ -228,7 +250,7 @@ msgstr "ir.ui.view.custom" #: code:addons/base/ir/ir_model.py:375 #, python-format msgid "Renaming sparse field \"%s\" is not allowed" -msgstr "" +msgstr "\"%s\" boş alanının yeniden adlandırılmasına izin verilmez" #. module: base #: model:res.country,name:base.sz @@ -270,7 +292,7 @@ msgstr "Eskimo / ᐃᓄᒃᑎᑐᑦ" #. module: base #: model:res.groups,name:base.group_multi_currency msgid "Multi Currencies" -msgstr "Çoklu ParaBirimi" +msgstr "Çok Para Birimli" #. module: base #: model:ir.module.module,description:base.module_l10n_cl @@ -282,6 +304,12 @@ msgid "" "\n" " " msgstr "" +"\n" +"Şili hesap planı ve yerel vergi.\n" +"==============================================\n" +"Plan contable chileno e impuestos de acuerdo a disposiciones vigentes\n" +"\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_sale @@ -293,7 +321,7 @@ msgstr "Satış Yönetimi" msgid "" "The internal user that is in charge of communicating with this contact if " "any." -msgstr "" +msgstr "Eğer varsa, bu kişi ile iletişime görevlendirilmiş iç kullanıcı." #. module: base #: view:res.partner:0 @@ -321,6 +349,8 @@ msgid "" "Database ID of record to open in form view, when ``view_mode`` is set to " "'form' only" msgstr "" +"\"view_mode\" yalnızca 'form' olarak ayarlandığındaki görünüm formında " +"açılacak kaydın Veritabanı ID i" #. module: base #: help:ir.values,key2:0 @@ -332,6 +362,12 @@ msgid "" " - tree_but_open\n" "For defaults, an optional condition" msgstr "" +"İşlemler için, olası işlem yuvaları: \n" +" - client_action_multi\n" +" - client_print_multi\n" +" - client_action_relate\n" +" - tree_but_open\n" +"Varsayılanlar için, seçmeli bir koşul" #. module: base #: sql_constraint:res.lang:0 @@ -570,6 +606,8 @@ msgid "" "* Use emails to automatically confirm and send acknowledgements for any " "event registration\n" msgstr "" +"\n" +"Etkinliklerin organizasyonu ve yönetimi\n" #. module: base #: selection:base.language.install,lang:0 @@ -659,7 +697,7 @@ msgstr "Palau" #. module: base #: view:res.partner:0 msgid "Sales & Purchases" -msgstr "Satışlar & SatınAlmalar" +msgstr "Satışlar ve Satınalmalar" #. module: base #: view:ir.translation:0 @@ -1541,7 +1579,7 @@ msgstr "" #: model:ir.module.category,name:base.module_category_purchase_management #: model:ir.ui.menu,name:base.menu_purchase_root msgid "Purchases" -msgstr "SatınAlma" +msgstr "Satınalma" #. module: base #: model:res.country,name:base.md @@ -1854,7 +1892,7 @@ msgstr "Yükle" #. module: base #: field:res.currency,accuracy:0 msgid "Computational Accuracy" -msgstr "Hesapsal Doğruluk" +msgstr "Hesaplama Doğruluğu" #. module: base #: model:ir.module.module,description:base.module_l10n_at @@ -1947,7 +1985,7 @@ msgstr "Okuma Erişimi" #. module: base #: help:ir.attachment,res_id:0 msgid "The record id this is attached to" -msgstr "" +msgstr "Kayıt buna eklenmiştir" #. module: base #: model:ir.module.module,description:base.module_share @@ -3167,7 +3205,7 @@ msgstr "" #. module: base #: field:res.company,rml_header1:0 msgid "Company Tagline" -msgstr "Firma Slogan" +msgstr "Firma Sloganı" #. module: base #: code:addons/base/res/res_users.py:674 @@ -3446,7 +3484,7 @@ msgstr "Web ikon dosyası (hover)" #. module: base #: help:res.currency,name:0 msgid "Currency Code (ISO 4217)" -msgstr "ParaBirimi Kodu (ISO 4217)" +msgstr "ParaNBirimi Kodu (ISO 4217)" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_contract @@ -4307,7 +4345,7 @@ msgstr "Menü :" #. module: base #: selection:ir.model.fields,state:0 msgid "Base Field" -msgstr "Taban Alan" +msgstr "Temel Alan" #. module: base #: model:ir.module.category,name:base.module_category_managing_vehicles_and_contracts @@ -5558,7 +5596,7 @@ msgstr "Yapılandırma Sihirbazı'nı başlatın" #. module: base #: model:ir.module.module,summary:base.module_mrp msgid "Manufacturing Orders, Bill of Materials, Routing" -msgstr "Üretim Siparişler, Malzeme Listesi, Yönlendirme" +msgstr "Üretim Emirleri, Ürün Ağaçları, Rotalar" #. module: base #: field:ir.attachment,name:0 @@ -6371,7 +6409,7 @@ msgstr "Arttırma sayı sıfır olamaz." #. module: base #: model:ir.module.module,shortdesc:base.module_account_cancel msgid "Cancel Journal Entries" -msgstr "Yevmiye Girişleri İptalEt" +msgstr "Günlük Kaydı İptal" #. module: base #: field:res.partner,tz_offset:0 @@ -6664,7 +6702,7 @@ msgstr "Sudan" #: field:res.currency.rate,currency_rate_type_id:0 #: view:res.currency.rate.type:0 msgid "Currency Rate Type" -msgstr "ParaBirimi Kur Türü" +msgstr "Para Birimi Kur Türü" #. module: base #: model:ir.module.module,description:base.module_l10n_fr @@ -6743,7 +6781,7 @@ msgstr "İsrail" #: code:addons/base/res/res_config.py:444 #, python-format msgid "Cannot duplicate configuration!" -msgstr "" +msgstr "Yapılandırmasını çoğaltması yamazsınız!" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_syscohada @@ -6758,7 +6796,7 @@ msgstr "Bazen BIC ya da SWIFT olarak geçer." #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in msgid "Indian - Accounting" -msgstr "" +msgstr "Hindistan Hesapplanı" #. module: base #: field:res.lang,time_format:0 @@ -6860,7 +6898,7 @@ msgstr "Dış ID" #. module: base #: help:res.currency.rate,rate:0 msgid "The rate of the currency to the currency of rate 1" -msgstr "Parabirimi kur oranı (1'e göre)" +msgstr "Parabirimi kur oranı (kur oranı 1 e göre)" #. module: base #: model:res.country,name:base.uk @@ -6979,7 +7017,7 @@ msgstr "" #. module: base #: selection:res.currency,position:0 msgid "After Amount" -msgstr "Tutar Sonra" +msgstr "Tutardan Sonra" #. module: base #: selection:base.language.install,lang:0 @@ -6999,6 +7037,7 @@ msgstr "" #: model:res.groups,comment:base.group_hr_user msgid "the user will be able to approve document created by employees." msgstr "" +"Kullanıcı çalışanlar tarafından oluşturulan belgeyi onaylaması mümkün." #. module: base #: field:ir.ui.menu,needaction_enabled:0 @@ -7165,7 +7204,7 @@ msgstr "Fed. Eyalet" #. module: base #: field:ir.actions.server,copy_object:0 msgid "Copy Of" -msgstr "kopyası" +msgstr "Kopyası" #. module: base #: field:ir.model.data,display_name:0 @@ -7206,7 +7245,7 @@ msgstr "Eyalet Kodu" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_multilang msgid "Multi Language Chart of Accounts" -msgstr "Çok dilli Hesap Planları" +msgstr "Çok Dilli Hesap Planları" #. module: base #: model:ir.module.module,description:base.module_l10n_gt @@ -7236,7 +7275,7 @@ msgstr "Tercüme edilebilir" #. module: base #: help:base.language.import,code:0 msgid "ISO Language and Country code, e.g. en_US" -msgstr "ISO Dil ve Ülke kodu, örnek en_US" +msgstr "ISO Dil ve Ülke kodu, örn. en_US" #. module: base #: model:res.country,name:base.vn @@ -7261,7 +7300,7 @@ msgstr "" #. module: base #: view:ir.property:0 msgid "Parameters that are used by all resources." -msgstr "" +msgstr "Tüm kaynaklar tarafından kullanılan parametreler." #. module: base #: model:res.country,name:base.mz @@ -7860,7 +7899,7 @@ msgstr "Kanada" #. module: base #: view:base.language.export:0 msgid "Launchpad" -msgstr "" +msgstr "Launchpad" #. module: base #: help:res.currency.rate,currency_rate_type_id:0 @@ -7954,7 +7993,7 @@ msgstr "Banka türü alanları" #. module: base #: constraint:ir.rule:0 msgid "Rules can not be applied on Transient models." -msgstr "" +msgstr "Kurallar Geçiş modellerde uygulanamaz." #. module: base #: selection:base.language.install,lang:0 @@ -8188,7 +8227,7 @@ msgstr "Giriş Sıralama Numaraları" #. module: base #: view:base.language.export:0 msgid "POEdit" -msgstr "" +msgstr "POEdit" #. module: base #: view:ir.values:0 @@ -8283,7 +8322,7 @@ msgstr "Proje Yönetimi" #. module: base #: view:ir.module.module:0 msgid "Cancel Uninstall" -msgstr "Kaldırmayı İptal Et" +msgstr "Kaldırma İptal" #. module: base #: view:res.bank:0 @@ -8531,7 +8570,7 @@ msgstr "workflow.transition" #. module: base #: view:res.lang:0 msgid "%a - Abbreviated weekday name." -msgstr "%a - Günün kısaltması" +msgstr "%a - Gün kısaltması" #. module: base #: view:ir.ui.menu:0 @@ -8610,6 +8649,7 @@ msgstr "Açıklama HTML" #: help:res.groups,implied_ids:0 msgid "Users of this group automatically inherit those groups" msgstr "" +"Bu grubun kullanıcılar otomatik olarak bu grup özelliklerinini devralır" #. module: base #: model:ir.module.module,summary:base.module_note @@ -8757,7 +8797,7 @@ msgstr "Slovence / Slovenščina" #. module: base #: field:res.currency,position:0 msgid "Symbol Position" -msgstr "Sembol Pozisyonu" +msgstr "Simge Konumu" #. module: base #: model:ir.module.module,description:base.module_l10n_de @@ -8951,7 +8991,7 @@ msgstr "Ülkenin tam adı." #. module: base #: selection:ir.actions.server,state:0 msgid "Iteration" -msgstr "Yineleme" +msgstr "Yenileme" #. module: base #: code:addons/orm.py:4246 @@ -9290,7 +9330,7 @@ msgstr "" #. module: base #: view:ir.module.category:0 msgid "Module Category" -msgstr "Modül Kategori" +msgstr "Modül Kategorisi" #. module: base #: model:res.country,name:base.us @@ -9422,7 +9462,7 @@ msgstr "Özel Kısayollar" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_si msgid "Slovenian - Accounting" -msgstr "" +msgstr "Slovenya - Hesapplananı" #. module: base #: model:ir.module.module,description:base.module_account_cancel @@ -9512,7 +9552,7 @@ msgstr "Firmalar" #. module: base #: help:res.currency,symbol:0 msgid "Currency sign, to be used when printing amounts." -msgstr "Parabirimi Kuru işareti, (Miktarları basarken kullanmak için)" +msgstr "Para Birimi işareti, tutarları yazarken kullanılan" #. module: base #: view:res.lang:0 @@ -9736,7 +9776,7 @@ msgstr "Almanya" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_oauth msgid "OAuth2 Authentication" -msgstr "" +msgstr "OAuth2 Authentication" #. module: base #: view:workflow:0 @@ -10024,7 +10064,7 @@ msgstr "Dakika" #. module: base #: view:res.currency:0 msgid "Display" -msgstr "Görüntüle" +msgstr "Görüntü" #. module: base #: model:res.groups,name:base.group_multi_company @@ -10126,7 +10166,7 @@ msgstr "Aralık Birimi" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_stock msgid "Portal Stock" -msgstr "" +msgstr "Portal Stok" #. module: base #: field:workflow.activity,kind:0 @@ -10149,7 +10189,7 @@ msgstr "Terimleri Senkronize Et" #. module: base #: field:res.lang,thousands_sep:0 msgid "Thousands Separator" -msgstr "Binler Ayracı" +msgstr "Bin Ayracı" #. module: base #: field:res.request,create_date:0 @@ -10208,7 +10248,7 @@ msgstr "res.request" #. module: base #: field:res.partner,image_medium:0 msgid "Medium-sized image" -msgstr "" +msgstr "Orta ölçekli resim" #. module: base #: view:ir.model:0 @@ -10422,7 +10462,7 @@ msgstr "Bu şirketle ilişkili banka hesapları" #: model:ir.ui.menu,name:base.next_id_64 #: view:res.users:0 msgid "Sales" -msgstr "Satışlar" +msgstr "Satış" #. module: base #: field:ir.actions.server,child_ids:0 @@ -10499,7 +10539,7 @@ msgstr "Yapılacak" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_hr_employees msgid "Portal HR employees" -msgstr "" +msgstr "Portal İK Personeller" #. module: base #: selection:base.language.install,lang:0 @@ -10617,6 +10657,7 @@ msgstr "" msgid "" "Please contact your system administrator if you think this is an error." msgstr "" +"Bunun bir hata olduğunu düşünüyorsanız lütfen sistem yöneticinize başvurun." #. module: base #: code:addons/base/module/module.py:545 @@ -10995,7 +11036,7 @@ msgstr "" #. module: base #: field:ir.attachment,res_model:0 msgid "Resource Model" -msgstr "" +msgstr "Kayanak Model" #. module: base #: code:addons/custom.py:555 @@ -11298,12 +11339,12 @@ msgstr "Porto Riko" #. module: base #: model:ir.module.module,shortdesc:base.module_web_tests_demo msgid "Demonstration of web/javascript tests" -msgstr "" +msgstr "Demonstration of web/javascript tests" #. module: base #: field:workflow.transition,signal:0 msgid "Signal (Button Name)" -msgstr "" +msgstr "Sinyal Buton Adı)" #. module: base #: view:ir.actions.act_window:0 @@ -11555,7 +11596,7 @@ msgstr "A4" #. module: base #: view:res.config.installer:0 msgid "Configuration Installer" -msgstr "" +msgstr "Yapılandırma Yükleyicisi" #. module: base #: field:res.partner,customer:0 @@ -11645,13 +11686,13 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_ir_fields_converter msgid "ir.fields.converter" -msgstr "" +msgstr "ir.fields.converter" #. module: base #: code:addons/base/res/res_partner.py:439 #, python-format msgid "Couldn't create contact without email address !" -msgstr "" +msgstr "E-posta adresi olmayan kontak oluşturmak olamazdı!" #. module: base #: model:ir.module.category,name:base.module_category_manufacturing @@ -11668,17 +11709,17 @@ msgstr "Komorlar" #. module: base #: view:ir.module.module:0 msgid "Cancel Install" -msgstr "Yükleme İptal" +msgstr "Kurulum İptal" #. module: base #: model:ir.model,name:base.model_ir_model_relation msgid "ir.model.relation" -msgstr "" +msgstr "ir.model.relation" #. module: base #: model:ir.module.module,shortdesc:base.module_account_check_writing msgid "Check Writing" -msgstr "" +msgstr "Çek Yazma" #. module: base #: model:ir.module.module,description:base.module_plugin_outlook @@ -11747,7 +11788,7 @@ msgstr "Erişim Kuralları" #. module: base #: field:res.groups,trans_implied_ids:0 msgid "Transitively inherits" -msgstr "" +msgstr "Geçişler devralır" #. module: base #: field:ir.default,ref_table:0 @@ -11955,7 +11996,7 @@ msgstr "Guetemala - Muhasebe" #. module: base #: help:ir.cron,args:0 msgid "Arguments to be passed to the method, e.g. (uid,)." -msgstr "Metoda (fonsiyona) gönderilecek argümanlar ör: (uid,)." +msgstr "Metoda (fonsiyona) gönderilecek argümanlar örn.: (uid,)." #. module: base #: report:ir.module.reference:0 @@ -12016,7 +12057,7 @@ msgstr "Rapor Türü" #: view:res.partner.bank:0 #: view:res.users:0 msgid "State" -msgstr "Durum" +msgstr "Eyalet" #. module: base #: selection:base.language.install,lang:0 @@ -12072,7 +12113,7 @@ msgstr "Bağlantı Bilgileri" #. module: base #: model:res.partner.title,name:base.res_partner_title_prof msgid "Professor" -msgstr "" +msgstr "Profesör" #. module: base #: model:res.country,name:base.hm @@ -12101,7 +12142,7 @@ msgstr "Teklifleri, sipariş emirlerini ve faturalarınızı yönetmenizi sağla #. module: base #: field:res.users,login_date:0 msgid "Latest connection" -msgstr "" +msgstr "Son bağlantı" #. module: base #: field:res.groups,implied_ids:0 @@ -12208,7 +12249,7 @@ msgstr "" #. module: base #: model:res.country,name:base.cd msgid "Congo, Democratic Republic of the" -msgstr "" +msgstr "Kongo Demokratik Cumhuriyeti" #. module: base #: model:res.country,name:base.cr @@ -12243,7 +12284,7 @@ msgstr "Diğer Partner" #: view:workflow.workitem:0 #: field:workflow.workitem,state:0 msgid "Status" -msgstr "Durum" +msgstr "Durumu" #. module: base #: model:ir.actions.act_window,name:base.action_currency_form @@ -12517,7 +12558,7 @@ msgstr "" #. module: base #: field:ir.actions.report.xml,report_sxw:0 msgid "SXW Path" -msgstr "" +msgstr "SXW Yolu" #. module: base #: model:ir.module.module,description:base.module_account_asset @@ -12963,7 +13004,7 @@ msgstr "" #. module: base #: field:res.company,company_registry:0 msgid "Company Registry" -msgstr "Vergi Dairesi" +msgstr "Şirket Sicil No" #. module: base #: view:ir.actions.report.xml:0 @@ -13079,7 +13120,7 @@ msgstr "French Southern Territories" #: field:res.currency,name:0 #: field:res.currency.rate,currency_id:0 msgid "Currency" -msgstr "ParaBirimi" +msgstr "Para Birimi" #. module: base #: view:res.lang:0 @@ -13155,7 +13196,7 @@ msgstr "bilinmeyen" #. module: base #: field:res.currency,symbol:0 msgid "Symbol" -msgstr "Sembol" +msgstr "Simge" #. module: base #: help:res.partner,image_medium:0 @@ -13271,7 +13312,7 @@ msgstr "Bağımlılıklar :" #. module: base #: field:res.company,vat:0 msgid "Tax ID" -msgstr "Vergi NO" +msgstr "Vergi No" #. module: base #: model:ir.module.module,shortdesc:base.module_account_bank_statement_extensions @@ -13449,7 +13490,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_stock_no_autopicking msgid "Picking Before Manufacturing" -msgstr "Üretim Öncesi Seçmek" +msgstr "Üretim Öncesi Seçme" #. module: base #: model:ir.module.module,summary:base.module_note_pad @@ -13707,7 +13748,7 @@ msgstr "Modülleri Kurma" #. module: base #: model:ir.ui.menu,name:base.menu_import_crm msgid "Import & Synchronize" -msgstr "" +msgstr "İçe aktarım ve senkronize" #. module: base #: view:res.partner:0 @@ -14071,7 +14112,7 @@ msgstr "" #. module: base #: model:ir.module.module,summary:base.module_account_voucher msgid "Send Invoices and Track Payments" -msgstr "" +msgstr "Faturalar ve Parça Ödemeler gönder" #. module: base #: model:ir.ui.menu,name:base.menu_crm_config_lead @@ -14177,7 +14218,7 @@ msgstr "Tayvan" #. module: base #: model:ir.model,name:base.model_res_currency_rate msgid "Currency Rate" -msgstr "ParaBirimi Kur Oranı" +msgstr "ParabBirimi Oranı" #. module: base #: view:base.module.upgrade:0 @@ -14502,7 +14543,7 @@ msgstr "Erişim" #: field:res.partner,vat:0 #, python-format msgid "TIN" -msgstr "" +msgstr "V.No" #. module: base #: model:res.country,name:base.aw @@ -15088,7 +15129,7 @@ msgstr "Şili" #. module: base #: model:ir.module.module,shortdesc:base.module_web_view_editor msgid "View Editor" -msgstr "Editör Görüntüle" +msgstr "Görünüm Düzenleyici" #. module: base #: view:ir.cron:0 @@ -15189,7 +15230,7 @@ msgstr "Sistem Güncelleme" #: field:ir.actions.report.xml,report_sxw_content:0 #: field:ir.actions.report.xml,report_sxw_content_data:0 msgid "SXW Content" -msgstr "" +msgstr "SXW İçerek" #. module: base #: field:ir.attachment,file_size:0 @@ -15317,7 +15358,7 @@ msgstr "" #: model:ir.actions.act_window,name:base.open_module_tree #: model:ir.ui.menu,name:base.menu_module_tree msgid "Installed Modules" -msgstr "Kurulumuş Modüller" +msgstr "Kurulmuş Modüller" #. module: base #: code:addons/base/res/res_users.py:170 @@ -15468,7 +15509,7 @@ msgstr "" #. module: base #: model:res.partner.category,name:base.res_partner_category_2 msgid "Prospect" -msgstr "Muhtemel" +msgstr "Beklenti" #. module: base #: model:ir.module.module,shortdesc:base.module_stock_invoice_directly diff --git a/openerp/addons/base/i18n/uk.po b/openerp/addons/base/i18n/uk.po index b66c3b400e4..5eaad5d001f 100644 --- a/openerp/addons/base/i18n/uk.po +++ b/openerp/addons/base/i18n/uk.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:25+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ur.po b/openerp/addons/base/i18n/ur.po index e844192bacd..6cdb2bb0a4b 100644 --- a/openerp/addons/base/i18n/ur.po +++ b/openerp/addons/base/i18n/ur.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:25+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/vi.po b/openerp/addons/base/i18n/vi.po index caa2627a59d..0f3e9ff097e 100644 --- a/openerp/addons/base/i18n/vi.po +++ b/openerp/addons/base/i18n/vi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:25+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po index 5f0d479b3be..ceef0176579 100644 --- a/openerp/addons/base/i18n/zh_CN.po +++ b/openerp/addons/base/i18n/zh_CN.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/zh_HK.po b/openerp/addons/base/i18n/zh_HK.po index f2c06334654..7ff8c866a5f 100644 --- a/openerp/addons/base/i18n/zh_HK.po +++ b/openerp/addons/base/i18n/zh_HK.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:25+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/zh_TW.po b/openerp/addons/base/i18n/zh_TW.po index a4150bd120a..212e6e7158b 100644 --- a/openerp/addons/base/i18n/zh_TW.po +++ b/openerp/addons/base/i18n/zh_TW.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-31 05:26+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n" +"X-Generator: Launchpad (build 16550)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing From a0a9ae61e7e41607aa9f6c918f003fd5699ffa4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20van=20der=20Essen?= Date: Wed, 10 Apr 2013 12:32:38 +0200 Subject: [PATCH 26/26] [IMP] point_of_sale: added barcodes in demo data for a few commonly found products bzr revid: fva@openerp.com-20130410103238-igbolt8hst05xvi1 --- addons/point_of_sale/point_of_sale_demo.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/point_of_sale/point_of_sale_demo.xml b/addons/point_of_sale/point_of_sale_demo.xml index 011c6d81bfc..1c61218a4cb 100644 --- a/addons/point_of_sale/point_of_sale_demo.xml +++ b/addons/point_of_sale/point_of_sale_demo.xml @@ -430,6 +430,7 @@ True 1.49 Coca-Cola Regular 1L + 5449000054227 /9j/4AAQSkZJRgABAAEBLAEsAAD/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9PjsBCwoKDg0OHBYWHCgoKCgoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIAGQAIgMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APZqYHHfEPXNS0W3sjp0zRGUvvKqD0246g+tc+InKNrHqZVhaVdy5+ljlPCfjPxBf65aW1xevLFJOqOCi8gn6cVnGrPnSPRxuW4elRlJLWx65XWfNENusizXJcMFaUFMngjYo4+Y8ZB7L34/iKW7NKjTjG3b9X5L9fXopqozMPX9Kt9YvtPtp9+AZHbbj7oA9fcrUyipbmtGvOldxdjPPhPS9G1PT7q2EiKbkK3Ixkqdp4H97ApKnFO9jWpja1SNpSOsqzlCgAoArwx77mS6JyGUJH7KOSfxP8hSAW9thd2rRZ2tkMjf3WByp/AgUASROZIwxG1v4l9D3FAD6YHLeN/FqeHFsLSMj7VqMxRSULhEAyzFQRnqB17+1IaKUnjCyaBmHiSOHaMk+SqY/wC+gaGmBHY+NLCWUr/wlUE5AztAjb/0FaSuN2J7PxvAfFNnpj3Kzw3yskcyxFMSDkAknnIyBxT2EdnTEeQ/EzzW8eRSNG7Rw6avl4GQCXbd+PSlzJM1jRqShzJNo4TVZlawmRchihzuBH86pmRz+hXH2bUN57rjHryKSA7RLl7i805rdJfNivoJI2CHghx/TNKTRpCnOeyufQtMzPMvH8ck3jWyjQqubQl2Y4CqNxJPsAP0rlrrmkkfSZI4xw1RvuvvOQ1jRb2S58mGzmmQkKD5RBZiM4xzyKy5ZR0R69OthpQvNxKFt4fZIvtV1ss4wCy7kyzD1A9O2TjJ49cP3t2yFKgp8sIJv5HQabZJb+INMiNys7M+4IsZXCkcE5789O1OEUpIxxc+fC1Go2S8/P8AI9rrtPjThvFMFtc+Kmha4SC+axQ2pkfarne+VyQQD909OcVhUScj2MvlOFHmSvHm1t6b/mcnfalqOk2k8F9ptxb3e3y0meMMm3LHgjA6uemRwOOKxcnFao9inh6NealCacd7Xs+nr28iD/hINMnu/Mj0ySaNGjWNTCPljHDLwTzjAB7jPAycnPG+wLA1oxs5pb9evQ07RpNV8R6fcxyQxrEwHkyTqZXy3zPtHT6HFVH3pI5sRy0MJOLTd+ttF2V2epW/2jz7rzs+X5o8jgfc2Lnp/tbuvP4YrojzXd++n3L9bnztTk5Ycu9tfW7/AEtt+Z458X9Xaw8ZRwTQxvFLYIUZs5U73yQR9KmpT5zuy7M3hNLO1+hx8fim5ih2pqF1GmMbUnOPyBrH2NRdT2f7Wy+erhr5pFV9eS4bDzyyn/bJP86n2M2aRznBw2/I2YPFLat4u0JIIFidbi3t9qvnOJBzxxznpWypu6b6Hj1MypqjOnFN8zbu/P7z6Lrc8c8S/aBtNuoaLegf6yKWIn/dKkf+hGkB5ZkGIY9KBobH1pgdJ8NLM6h8SdJTGRHMZT7bFLD9QKQj6epgeQftAzxCy0W3JBmMkrj2UBQf1I/KkB44n+pH0oGgi5NAHafBiWKL4jQLKQGkglVM/wB7Gf5A0CPo6mB4P8ab42/jy286FZol09Aqt2y75IpDOEuZ7CaycwwBJCOMKP6UwKWnNCs5NwhdMdMZ7ikgOi8J3UMnjrQ/sNsIdt/EC4PJBYAj8iaGB9PUxHkXx50Ca4srDXYI2cWxaCcgZ2q3Kk+2cj8RSYHj39najb6d/aD2c62bSeWJmjIRm54DdCeDQncbTTG2lle6iJhY2k0/kx+ZL5SFiq5AycdByKLgdr8H9BuNS8ZwXJhb7PYjzpHK8A4+UZ9SSD9AaSdxuLW59F1RIjKrqVdQykYIIyDQBR1nRNP13SJdL1C3EtrKACg4xjkEEdCKTApeGPBuieEYpk0i2MZuGBkd3LscdBk9vb3oSA2Y4YoQwijSPcdzbVAyfU0wH0AA/9k= @@ -716,6 +717,7 @@ True 0.44 + 5449000111715 Chaudfontaine 50cl /9j/4AAQSkZJRgABAAEBLAEsAAD/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9PjsBCwoKDg0OHBYWHCgoKCgoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIAGQAJAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APZqYHnfj34gaj4a1xdPtYU8vyVkLkckkn1+ld2EwsKsbswq1XF2Oa/4XBqwmUxwqVHVWAwf6/rXQ8DTSIVeVz2KxuGurC3uGXa0sSuR6EjNeVJWbR0rYnpDCgDjvFfhCw8Qaul1PJIJEiEeF6dSR05712Yau6cLW6nLXg5S0ZjS/DLS127pJl7jk5/Umt/rjfQy9jJPc9Ht0WK3jjQ5VVAB9gK8x7neh9AEVxN5SD1PApxVxN2M6Kzja5EsjMxJyd2TWzm7GSpJu5NfWkE6qehHGRkVMJtDnTUh1o/kAQlmYE8Fj0pT11Kh7uheFZllG/fFzChHBBOffitILRkyeqEQ9xxTAVizD5jxRawEEj7GTC7jvUYzzyadrkt2NWsTQp34O6I4yMkGrh1JkInTjiqBDj065pAQMf38YC/xin0F1NIVkWUdVuBbQxOy5UyYJ/u8HmtKUeZsipLlRQj1WFpBGJV3HoCwAP0zWrpSS2M1VVy5HOZc8AAdwwNQ1YtSuRifddQBFMgdyCw6LgHn9KbjowUtUaorA0KGsqr2O1hkFhWtF+8Z1fhOM8Q38+lWEUtoUWR5QnIz8pB/wr08LSjVk1LscdRuK0LHhi9uzqd7b3dzHMsUalWRcA5J/wAKjFwhyRcVbU0otxk02dJFJvvIdvIyc4PHSuGStFnRF3ZrVgaFLVl3WWP9qtKPxGdX4Th/Elk11p8fzJEsEnms7HBAAPAHfqK9TCVFGb63VjkqQukL4fkeTxDqIJP3IhyMdvTJ/nRiElRh8xxbdRnWWg/02PA9ea86psdNPc2KwNSrqS7rNuM4NXS+Iip8JwvimSKKxhMi7gJRhcZ5wSMj0yK9XBpuTt2OOrbQk8NKy+JNRXbjbHFngZ6Z55NTiv4EPVl0v4jOsgx9uiA9D0rz5fCzoW5qViaFe9lSKEbj944qoK7Jk0jkvFGmTahZW4trbzylwruowCVwc9cZ/OvQwdZU5O7toc1aDklZdSPwxp99aahfXN5bvH5qxhS5zkgHOOTxVYurCUIqL2uFGMlJto6W3KLex5IBOQAK4ZX5WbppM1KxNDP1faYUDlQuTkscCtKZnUa6meiyKoUF9o7A5qxaj2LqNyll/wA+9AbDLfbFfRscb5HHfJNNq8WSnaR0Fc5uVdRhaa3wq7sHp61dN2ZM1dGBftLDAipByuemRg4rqppNnJVbtYjmYyuskI81VOMEkD8hjNacqWj0MeZ3utTWsIJXlVzEyqDksx61y1Gl1Oyld62NesDcOtAAQD1FAAFA6AUBYKACgAD/2Q== @@ -830,6 +832,7 @@ True 0.77 + 5410228142027 Jupiler 33cl /9j/4AAQSkZJRgABAAEBLAEsAAD/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9PjsBCwoKDg0OHBYWHCgoKCgoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIAGQAPQMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APZqYGdqet2+myJE6tJK4yFXgAepNACJqrPD5reTEvbc+aVwKU2vyR7mDx7FOCxUj+dMC3Z61bzxF5LuFAOu4hcfnQBZmv444fNSSKVc4+Vuv40gH2l7Hdq20FXX7yt1FMCduq/X+hrCs7Tp6/a/9tf9df1TXUWtxHlnjvxjFDrotYbWG6jiUBw5Iyc+oNc1XEckrI9vA5OsRS5pNrsT6ZrM2q2izw6LdqgGP9HuQR+RIq41m1sYYjK1Slb2i+af/BM+58UwaTcukkWqW7scssipyfzxSdeK3TFDJ681eLi/n/wCH/hOLa/22wtbmY9gIkGfxzmhYiL2uOWT14q7cV/XoQax4pvbWJ3fT3O8/wDLWXp+A/xode3QKWVqb1kbPwv8YG/1G6sL3y0lmw0RGecdsk06VXm3IxuCVGKcT05vvJ9f6GprtKdP/F/7bLz/AM/TqvPWzKmsySQ6PdyRNtdYjg1tLYuik6kU+58838N4buSW5Us7sSWHIry5KV9T7yg6fIlE9M8JXsen+H4kKHcFy2EJH5gV2UmlE+fzCnKdZtHCeM9QF/rDPECwAxjpzWNWze56GB56VKzgzM0afyNRjlcbcHpmpgkpbmuIc50n7up0Wul9TtnjghZnK/KAh6/lW7SaPLp88HrZfMx9K8O+ILO4g1EW0losci/vJPl6kDp170owknew8RiqDg4tpu3Q+homZoYWJySASfXitat+aFv5v/bX56/j3t1Xz3cr60M6Ld/9cjWstmXQ/iR9TxS6P71vrXDI+upbGTqSkBJF4PQkVnJaHXRe6MwmoNGy3owDa7YqwyDcICD3+YVrRXvo4ce2qEj2Hw8Uj8L6YzFUBtYuTxztFejT+Beh8ljP48/8T/Mi190bTmQMCyzRbh6fOKU/hIpb/I7WH/UQf7o/lWVX46f+L/21+f8An6dVK6kGsDOkXQ/6ZGtpbF0vjXqeXaZ4f1K71CC7TTftNoJfnDFQrKDg9T9a5I05N3sfQVcZShTceazsdhqWhaBoqTakdKNwXQQpaxoH3seyqe5/kK6lSgnseJLHYiUbOTOZ8PQ21zo+owaX4PvLO8jjkMU2pxKMyH7qhm5wM+nQeppRpQjsgqY7EVLc02YGl/D3xDY6nZzSwR+XDKjM3nKTgEZNYRoz57nq1cwoPDezTbdkburo1z8MrAQW0106Jb/u4SQxKldwyBkdDz2rpirRR4uIkp1pNbNsWHUtW1Pw9LcarZRWZNxH5KRybyU3DknJ759OlKfwip7v0PUIR+4i/wB0fyqZptxt3/R+a/X06qSDVf8AkFXX/XI/yq5bFU/jXqeY6tPdJHYQQ3j2sCWrSyuHKqo8x8scdew9+BXM1JtJHuUp0qcJzmk9f0RVXSfEGsWC3OnWV89rIuY557tAz88OEJ4/M8d619k0tGcX1+M5WcUtdLLb17nHajNr2l3T292buKVeShmYE/nXLKLT1bR7sainDmjTjJeVv1sbPgDWLyfxbaRS3VwyP5iPHJITg7CeQT64rSkpRqJNnBjJUK+EnKEbNNdLNanRatb3E3w/ms4LaW4KX8kbwxEgui3DZGe3A611vY+e6lLw1Hcx+D5Eu3jEsd1FGIo5Ffy1XbgEgnBPJx71MvhNIbv0PYoT+4i91H8qUpNOPm/0ZJDqn/ILuf8Ark38qp7Dh8SPJ/EsTXel2VvE+17tUtwScLxLITk+nCn8Kzprr5HbjJWjy/3r/gjF/wCElN5pVroOq2Yc2JKQXK3PkFAOMHPB6Y5x0FanCVNZ8aXceiadp+o6ba3v+jbkmuA/nINzAHII4KhSCRzU1KfMjpweKeHldX+T/wCAxvw/lF740tLhE27mAK5zjbERn8cGs7WlFHWqiqUa89rtafM3NY0qLUXurlrPUrsxySukMEmyJs3Eg5O089z7YrZnlFvQ7c23hSbdY21mjXiYjgm80nkZ3NuPze3H0qJfCaQ+J+h69EMwxc9FB/SpnTcpRd9nf8GvluRfcS72/ZJdy7l2HK+taivY8f8AEjJNbQadE2xlvrhY+efu/uxn/eJH41nT6rzO3Gp+4+8UcncPZalCj30/2K8OS8phJSYdmOOQ3XoMHj3NaI4zIuYF1rWb+5UMIHaTyAeMsQxjTH0XAHtincVjp/hParFqF5qk3ENjAzsfQ4I/kT+VRb3jojLloyXdr/M63V4vtPw8s4xazXLS+TI0UOdzksGb6ZyeardGEo8smjI0611Kz0+7VtOj0/TmuIylv5xkkWT5Ov1HPOOtRPYunu/Q9oh/1Ef+6P5VZmNu/wDj0lz/AHDQB5JNHZ3Pis219lYnaZRMT/qpXOFb8MD8zWF46q+7PWUKzcJqN1GK+fcxNa0ud/EHkajClvDZKwIUZLrlm4Hc/Mfr+NNztp1M44duXtOW8fLr8vzMfyZ7283xwt9onYBIkB+QfwoBWdWbbsj08twsKdN1Zqzf4I7O/wDJ8MaTa6CRG2papKkt+V7LkcH3OMe/zHvW6fKknueNVjGtVnOCtFFzUvL/AOEBsvOe8SPyoQfsY/eNwOBVR+FHPW/iS9WZ+nW32XwpdqlhcWSNfRskdy2ZCMKMngdSD2qanwhT3foewwf6iP8A3R/KrM2Nuji0lPohoA8W17jVrv8A67P/AOhGuGp8TPrcD/Bj6I1LTV9L1uyjsPEJaOWJdsN8n3gPRvX/AD9auMozVpfec1bD1cPJzo6p7x/yIZfEPh7w0jjw7aSXt8wx9ruV+VPp0P5AfWrUqdPY55Ucbi/j91djlbFp9R8R29xeytLLNcKXYnk81EZ80zorYRUsO0tEdwNF1XVf7Nt4dWudP08aZE2Lfgu/RhnIxwR611Q+Feh4GI0qy9WR3nhyPw/bTrbSTSQTmAs0r7maQO2SfwIqanwipbv0PUrf/j2i/wBwfyqzNjpE3xsp/iGKAPHfEqyWus3aXNu2Gkcpu9CSQQT1riqpqTPp8DaVGPK+xjEQvKRuKR46kZNZna3NR7spSQQszE3IHJH3fyoKdSaXwk2kRxrq1kwlDN56ZXB45q6fxI5cbKToyTX9XPXNGH/Eh0//AK9Y/wD0EV2w+FHzGJ/jT/xP8yvr1jcajZx2tsm+Rpk/AZ5NE1dEUmk36HXRp5capnO0AZpkjqAKt/p1tqEJjuIY5R6SKGFJpMuFSUHeLaOUvvAmkuWJtJ4Ae9vJkfrmsnRh2O2nmuIj1T9TDn+H+kBj/p92nsyg/wBKn2MfM6Fndb+VDLXwZpFldxXC3t5K8ThgoQDJH4U404p31M6+bVasHFxSudbYwXn2WG1tLORYoY1jWS5O3gDAPv8AhWqemh5s5OcnJ9Wb9naC1j+Zt8h+82MfkPSqJLFABQAUAFAAQD1GaACgAoAKACgA/9k=