From 30073a2e8ff9fdda3e2f4d68bbbe2bd78b427170 Mon Sep 17 00:00:00 2001 From: Alexandre Fayolle Date: Tue, 19 Mar 2013 11:20:08 +0100 Subject: [PATCH 01/87] [FIX] race condition in session directory creation try to create the directory and handle the possible exception instead of doing an unsafe 2 step check and creation. The issues related to the naming of the directory mentionned in the bug report are not handled. lp bug: https://launchpad.net/bugs/1157102 fixed bzr revid: alexandre.fayolle@camptocamp.com-20130319102008-omtaka8dtq9v7m1l --- addons/web/http.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/addons/web/http.py b/addons/web/http.py index e05d74e0873..d12cdfb13a1 100644 --- a/addons/web/http.py +++ b/addons/web/http.py @@ -20,6 +20,7 @@ import traceback import urlparse import uuid import xmlrpclib +import errno import babel.core import simplejson @@ -477,8 +478,15 @@ def session_path(): except Exception: username = "unknown" path = os.path.join(tempfile.gettempdir(), "oe-sessions-" + username) - if not os.path.exists(path): + try: os.mkdir(path, 0700) + except OSError as exc: + if exc.errno == errno.EEXIST: + # directory exists: ensure it has the correct permissions + # this will fail if the directory is not owned by the current user + os.chmod(path, 0700) + else: + raise return path class Root(object): From 0cecdac970f884fcd2d65a1dea7880b27358fb51 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 21 Mar 2013 13:49:52 +0100 Subject: [PATCH 02/87] [IMP] view_form: statusbar with folded selection bzr revid: chm@openerp.com-20130321124952-kwexraafd2681isg --- addons/web/static/src/css/base.css | 49 +++++++++++++++++++++------ addons/web/static/src/css/base.sass | 45 ++++++++++++------------ addons/web/static/src/js/view_form.js | 47 +++++++++++++------------ addons/web/static/src/xml/base.xml | 14 +++++++- 4 files changed, 99 insertions(+), 56 deletions(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index be0bb19748c..ed32cbdbeaf 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -2158,6 +2158,7 @@ } .openerp .oe_form header { position: relative; + z-index: 1; border-bottom: 1px solid #cacaca; padding-left: 2px; background-color: #ededed; @@ -2630,17 +2631,17 @@ background-image: -o-linear-gradient(top, #fcfcfc, #dedede); background-image: linear-gradient(to bottom, #fcfcfc, #dedede); } -.openerp ul.oe_form_status li:first-child .label, .openerp ul.oe_form_status_clickable li:first-child .label { +.openerp ul.oe_form_status li:first-child .label, .openerp ul.oe_form_status_clickable li:first-child > .label { border-left: 1px solid #cacaca; padding-left: 14px; } .openerp ul.oe_form_status li:last-child, .openerp ul.oe_form_status_clickable li:last-child { border-right: 1px solid #cacaca; } -.openerp ul.oe_form_status li:last-child .label, .openerp ul.oe_form_status_clickable li:last-child .label { +.openerp ul.oe_form_status li:last-child .label, .openerp ul.oe_form_status_clickable li:last-child > .label { padding-right: 14px; } -.openerp ul.oe_form_status li:last-child .arrow, .openerp ul.oe_form_status_clickable li:last-child .arrow { +.openerp ul.oe_form_status li:last-child .arrow, .openerp ul.oe_form_status_clickable li:last-child > .arrow { display: none; } .openerp ul.oe_form_status li .label, .openerp ul.oe_form_status_clickable li .label { @@ -2690,18 +2691,18 @@ background-image: -o-linear-gradient(top, #729fcf, #3465a4); background-image: linear-gradient(to bottom, #729fcf, #3465a4); } -.openerp ul.oe_form_status li.oe_active .arrow span, .openerp ul.oe_form_status_clickable li.oe_active .arrow span { +.openerp ul.oe_form_status li.oe_active .arrow span, .openerp ul.oe_form_status_clickable li.oe_active > .arrow span { background-color: #3465a4; background: -moz-linear-gradient(135deg, #3465a4, #729fcf); background: -o-linear-gradient(135deg, #729fcf, #3465a4); background: -webkit-gradient(linear, left top, right bottom, from(#729fcf), to(#3465a4)); background: -ms-linear-gradient(top, #729fcf, #3465a4); } -.openerp ul.oe_form_status li.oe_active .label, .openerp ul.oe_form_status_clickable li.oe_active .label { +.openerp ul.oe_form_status li.oe_active .label, .openerp ul.oe_form_status_clickable li.oe_active > .label { color: white; text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4; } -.openerp ul.oe_form_status_clickable li { +.openerp ul.oe_form_status_clickable > li { cursor: pointer; } .openerp ul.oe_form_status_clickable li:hover { @@ -2713,10 +2714,10 @@ background-image: -o-linear-gradient(top, #e8e8e8, #cacaca); background-image: linear-gradient(to bottom, #e8e8e8, #cacaca); } -.openerp ul.oe_form_status_clickable li:hover .label { +.openerp ul.oe_form_status_clickable li:hover > .label { text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede; } -.openerp ul.oe_form_status_clickable li:hover .arrow span { +.openerp ul.oe_form_status_clickable li:hover > .arrow span { background-color: #d9d9d9; background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca)); background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca); @@ -2725,7 +2726,7 @@ background-image: -o-linear-gradient(top, #e8e8e8, #cacaca); background-image: linear-gradient(to bottom, #e8e8e8, #cacaca); } -.openerp ul.oe_form_status_clickable li .label { +.openerp ul.oe_form_status_clickable li > .label { color: #7c7bad; } .openerp ul.oe_form_status_clickable li.oe_active:hover { @@ -2737,16 +2738,42 @@ background-image: -o-linear-gradient(top, #4c85c2, #284d7d); background-image: linear-gradient(to bottom, #4c85c2, #284d7d); } -.openerp ul.oe_form_status_clickable li.oe_active:hover .label { +.openerp ul.oe_form_status_clickable li.oe_active:hover > .label { text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4; } -.openerp ul.oe_form_status_clickable li.oe_active:hover .arrow span { +.openerp ul.oe_form_status_clickable li.oe_active:hover > .arrow span { background-color: #284d7d; background: -moz-linear-gradient(135deg, #284d7d, #4c85c2); background: -o-linear-gradient(135deg, #4c85c2, #284d7d); background: -webkit-gradient(linear, left top, right bottom, from(#4c85c2), to(#284d7d)); background: -ms-linear-gradient(top, #4c85c2, #284d7d); } +.openerp ul.oe_form_field_status li.oe_folded .label{ + padding-bottom: 8px; +} +.openerp ul.oe_form_field_status li.oe_folded ul{ + position: absolute; + border-top: 1px solid #cacaca; + float: none; + top: 30px; + right: 0; + display: none; +} +.openerp ul.oe_form_field_status li.oe_folded:hover ul{ + display: block; +} +.openerp ul.oe_form_field_status li.oe_folded ul li{ + margin: 0; + border-left: 1px solid #cacaca; + display: block; +} +.openerp ul.oe_form_field_status li.oe_folded ul li .label{ + border: 0; + padding-left: 24px; +} +.openerp ul.oe_form_field_status li.oe_folded ul li:last-child { + border-bottom: 1px solid #cacaca; +} .openerp .oe_form .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page { display: none; } diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index e2c047f11e1..90d576eb6a1 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -1707,6 +1707,7 @@ $sheet-padding: 16px // FormView.header {{{ .oe_form header position: relative + z-index: 1 border-bottom: 1px solid #cacaca padding-left: 2px @include vertical-gradient(#fcfcfc, #dedede) @@ -2092,16 +2093,16 @@ $sheet-padding: 16px margin: 0 -18px 0 0 padding: 0 @include vertical-gradient(#fcfcfc, #dedede) - &:first-child .label + &:first-child > .label border-left: 1px solid #cacaca padding-left: 14px &:last-child border-right: 1px solid #cacaca - .label + > .label padding-right: 14px - .arrow + > .arrow display: none - .label + > .label color: #4c4c4c text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede padding: 7px @@ -2109,7 +2110,7 @@ $sheet-padding: 16px padding-left: 24px margin: 0 position: relative - .arrow + > .arrow width: 17px display: inline-block vertical-align: top @@ -2128,9 +2129,9 @@ $sheet-padding: 16px @include transform(rotate(45deg)) li.oe_active @include vertical-gradient(#729fcf, #3465a4) - .arrow span + > .arrow span @include skew-gradient(#729fcf, #3465a4) - .label + > .label color: white text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4 ul.oe_form_status_clickable @@ -2138,18 +2139,18 @@ $sheet-padding: 16px cursor: pointer &:hover @include vertical-gradient(darken(#fcfcfc, 8%), darken(#dedede, 8%)) - .label + > .label text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede - .arrow span + > .arrow span @include vertical-gradient(darken(#fcfcfc, 8%), darken(#dedede, 8%)) - .label + > .label color: $link-color li.oe_active &:hover @include vertical-gradient(darken(#729fcf, 10%), darken(#3465a4, 10%)) - .label + > .label text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4 - .arrow span + > .arrow span @include skew-gradient(darken(#729fcf, 10%), darken(#3465a4, 10%)) // }}} // FormView.one2many {{{ @@ -2609,26 +2610,26 @@ div.ui-widget-overlay &:last-child overflow: hidden border-right: 1px solid #cacaca - .label + > .label padding-right: 14px border-right: none - .arrow + > .arrow display: inline-block opacity: 0 filter: alpha(opacity = 0) border: none width: 0 border-right: none - .label - border-bottom: 1px solid #cacaca - background: transparent - .arrow - span - background-color: #fefefe !important + > .label + border-bottom: 1px solid #cacaca + background: transparent + > .arrow + span + background-color: #fefefe !important li.oe_active - .label + > .label border-bottom: 1px solid #729fcf - .arrow span + > .arrow span background-color: #729fcf !important // jquery ui for ie diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index b057616b6ab..a6ed212fbdc 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -5263,8 +5263,8 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ this.options.clickable = this.options.clickable || (this.node.attrs || {}).clickable || false; this.options.visible = this.options.visible || (this.node.attrs || {}).statusbar_visible || false; this.set({value: false}); - this.selection = []; - this.set("selection", []); + this.selection = {'unfolded': [], 'folded': []}; + this.set("selection", {'unfolded': [], 'folded': []}); this.selection_dm = new instance.web.DropMisordered(); }, start: function() { @@ -5278,7 +5278,7 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ }); this.get_selection(); if (this.options.clickable) { - this.$el.on('click','li',this.on_click_stage); + this.$el.on('click','li:not(.oe_folded)',this.on_click_stage); } if (this.$el.parent().is('header')) { this.$el.after('
'); @@ -5293,7 +5293,10 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ }, render_value: function() { var self = this; - var content = QWeb.render("FieldStatus.content", {widget: self}); + var content = QWeb.render("FieldStatus.content", { + 'widget': self, + 'value_folded': _.find(self.selection.folded, function(i){return i[0] === self.get('value')}) + }); self.$el.html(content); var colors = JSON.parse((self.node.attrs || {}).statusbar_colors || "{}"); var color = colors[self.get('value')]; @@ -5303,15 +5306,8 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ }, calc_domain: function() { var d = instance.web.pyeval.eval('domain', this.build_domain()); - var domain = []; //if there is no domain defined, fetch all the records - - if (d.length) { - domain = ['|',['id', '=', this.get('value')]].concat(d); - } - - if (! _.isEqual(domain, this.get("evaluated_selection_domain"))) { - this.set("evaluated_selection_domain", domain); - } + this.set("evaluated_selection_domain", ['&', ['fold', '=', false], '|', ['id', '=', this.get('value')]].concat(d)); + this.set("evaluated_selection_domain_folded", ['&', ['fold', '!=', false], '|', ['id', '=', this.get('value')]].concat(d)); }, /** Get the selection and render it * selection: [[identifier, value_to_display], ...] @@ -5320,18 +5316,24 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ */ get_selection: function() { var self = this; - var selection = []; + var selection_unfolded = []; + var selection_folded = []; var calculation = _.bind(function() { if (this.field.type == "many2one") { - var domain = []; - var ds = new instance.web.DataSetSearch(this, this.field.relation, - self.build_context(), this.get("evaluated_selection_domain")); - return ds.read_slice(['name'], {}).then(function (records) { - for(var i = 0; i < records.length; i++) { - selection.push([records[i].id, records[i].name]); - } - }); + var ds_unfold = new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), this.get("evaluated_selection_domain")) + .read_slice(['name'], {}).then(function (records) { + _.each(records, function (record) { + selection_unfolded.push([record.id, record.name]); + }); + }); + var ds_fold = new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), this.get("evaluated_selection_domain_folded")) + .read_slice(['name'], {}).then(function (records) { + _.each(records, function (record) { + selection_folded.push([record.id, record.name]); + }); + }); + return $.when(ds_unfold, ds_fold); } else { // For field type selection filter values according to // statusbar_visible attribute of the field. For example: @@ -5347,6 +5349,7 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ } }, this); this.selection_dm.add(calculation()).then(function () { + var selection = {'unfolded': selection_unfolded, 'folded': selection_folded}; if (! _.isEqual(selection, self.get("selection"))) { self.set("selection", selection); } diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 5ac7e5c3ef6..623fdc2de53 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1190,13 +1190,25 @@
    - +
  • + +
  • + ... +
      + +
    • + +
    • +
      +
    +
  • +
    From 809ec6e49f0eb328f318ce08e4baa2a87fa3db67 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 21 Mar 2013 13:56:26 +0100 Subject: [PATCH 03/87] [IMP] view_form: statusbar with folded selection, remove fold = false bzr revid: chm@openerp.com-20130321125626-83cckp5vdb14t18u --- addons/crm/crm_lead.py | 2 +- addons/crm_claim/crm_claim.py | 2 +- addons/hr_recruitment/hr_recruitment.py | 2 +- addons/project/project.py | 2 +- addons/project_issue/project_issue.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 6c74ead0140..53fd7179c25 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -266,7 +266,7 @@ class crm_lead(base_stage, format_address, osv.osv): 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'date_closed': fields.datetime('Closed', readonly=True), 'stage_id': fields.many2one('crm.case.stage', 'Stage', track_visibility='onchange', - domain="['&', '&', ('fold', '=', False), ('section_ids', '=', section_id), '|', ('type', '=', type), ('type', '=', 'both')]"), + domain="['&', ('section_ids', '=', section_id), '|', ('type', '=', type), ('type', '=', 'both')]"), 'user_id': fields.many2one('res.users', 'Salesperson', select=True, track_visibility='onchange'), 'referred': fields.char('Referred By', size=64), 'date_open': fields.datetime('Opened', readonly=True), diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py index 275d9edaab4..774571b0314 100644 --- a/addons/crm_claim/crm_claim.py +++ b/addons/crm_claim/crm_claim.py @@ -105,7 +105,7 @@ class crm_claim(base_stage, osv.osv): 'email_from': fields.char('Email', size=128, help="Destination email for email gateway."), 'partner_phone': fields.char('Phone', size=32), 'stage_id': fields.many2one ('crm.claim.stage', 'Stage', track_visibility='onchange', - domain="['&',('fold', '=', False),'|', ('section_ids', '=', section_id), ('case_default', '=', True)]"), + domain="['|', ('section_ids', '=', section_id), ('case_default', '=', True)]"), 'cause': fields.text('Root Cause'), 'state': fields.related('stage_id', 'state', type="selection", store=True, selection=crm.AVAILABLE_STATES, string="Status", readonly=True, diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index deccf10619f..fa6b861ff3f 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -196,7 +196,7 @@ class hr_applicant(base_stage, osv.Model): 'create_date': fields.datetime('Creation Date', readonly=True, select=True), 'write_date': fields.datetime('Update Date', readonly=True), 'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage', track_visibility='onchange', - domain="['&', ('fold', '=', False), '|', ('department_id', '=', department_id), ('department_id', '=', False)]"), + domain="['|', ('department_id', '=', department_id), ('department_id', '=', False)]"), 'state': fields.related('stage_id', 'state', type="selection", store=True, selection=AVAILABLE_STATES, string="Status", readonly=True, help='The status is set to \'Draft\', when a case is created.\ diff --git a/addons/project/project.py b/addons/project/project.py index 0751865d9c4..5263fea9166 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -732,7 +732,7 @@ class task(base_stage, osv.osv): 'priority': fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Important'), ('0','Very important')], 'Priority', select=True), 'sequence': fields.integer('Sequence', select=True, help="Gives the sequence order when displaying a list of tasks."), 'stage_id': fields.many2one('project.task.type', 'Stage', track_visibility='onchange', - domain="['&', ('fold', '=', False), ('project_ids', '=', project_id)]"), + domain="[('project_ids', '=', project_id)]"), 'state': fields.related('stage_id', 'state', type="selection", store=True, selection=_TASK_STATE, string="Status", readonly=True, help='The status is set to \'Draft\', when a case is created.\ diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 9233a95634c..a8f2ba28553 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -275,7 +275,7 @@ class project_issue(base_stage, osv.osv): 'version_id': fields.many2one('project.issue.version', 'Version'), 'stage_id': fields.many2one ('project.task.type', 'Stage', track_visibility='onchange', - domain="['&', ('fold', '=', False), ('project_ids', '=', project_id)]"), + domain="[('project_ids', '=', project_id)]"), 'project_id':fields.many2one('project.project', 'Project', track_visibility='onchange'), 'duration': fields.float('Duration'), 'task_id': fields.many2one('project.task', 'Task', domain="[('project_id','=',project_id)]"), From 4e43bccebcd414ee3c3aa436cea96926c22718cb Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 21 Mar 2013 16:21:56 +0100 Subject: [PATCH 04/87] [FIX] view_form: FieldStatus bzr revid: chm@openerp.com-20130321152156-3w3vnzn35effxji6 --- addons/web/static/src/js/view_form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index a6ed212fbdc..28c31b80dd6 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -5342,7 +5342,7 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ for(var i=0; i < select.length; i++) { var key = select[i][0]; if(key == this.get('value') || !this.options.visible || this.options.visible.indexOf(key) != -1) { - selection.push(select[i]); + selection_unfolded.push(select[i]); } } return $.when(); From cc4b2bbb2729077eea4dde9282eb696ce83188d4 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 21 Mar 2013 17:11:23 +0100 Subject: [PATCH 05/87] [IMP] view_form: fix FieldStatus bzr revid: chm@openerp.com-20130321161123-j2qc2ynchneibf1o --- addons/web/static/src/js/view_form.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 28c31b80dd6..4f5d2e1cc47 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -5306,8 +5306,7 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ }, calc_domain: function() { var d = instance.web.pyeval.eval('domain', this.build_domain()); - this.set("evaluated_selection_domain", ['&', ['fold', '=', false], '|', ['id', '=', this.get('value')]].concat(d)); - this.set("evaluated_selection_domain_folded", ['&', ['fold', '!=', false], '|', ['id', '=', this.get('value')]].concat(d)); + this.set("evaluated_selection_domain", ['|', ['id', '=', this.get('value')]].concat(d)); }, /** Get the selection and render it * selection: [[identifier, value_to_display], ...] @@ -5321,19 +5320,16 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ var calculation = _.bind(function() { if (this.field.type == "many2one") { - var ds_unfold = new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), this.get("evaluated_selection_domain")) - .read_slice(['name'], {}).then(function (records) { + return new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), this.get("evaluated_selection_domain")) + .read_slice(['name', 'fold'], {}).then(function (records) { _.each(records, function (record) { - selection_unfolded.push([record.id, record.name]); + if (record.fold) { + selection_folded.push([record.id, record.name]); + } else { + selection_unfolded.push([record.id, record.name]); + } }); }); - var ds_fold = new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), this.get("evaluated_selection_domain_folded")) - .read_slice(['name'], {}).then(function (records) { - _.each(records, function (record) { - selection_folded.push([record.id, record.name]); - }); - }); - return $.when(ds_unfold, ds_fold); } else { // For field type selection filter values according to // statusbar_visible attribute of the field. For example: From 8548a69f73c03fdbfeb7fdb722b95ae38363b5b5 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Wed, 27 Mar 2013 11:38:33 +0100 Subject: [PATCH 06/87] [FIX] Timesheets invoiced as expenses are and correction removed in invoiced calculation bzr revid: jco@openerp.com-20130327103833-ekjzi3e0alkpod35 --- .../account_analytic_analysis.py | 23 +++++++++++++++---- .../account_analytic_analysis_view.xml | 4 ++-- .../analytic_contract_hr_expense.py | 2 -- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py index a187f9452f5..17988294861 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis.py +++ b/addons/account_analytic_analysis/account_analytic_analysis.py @@ -211,12 +211,10 @@ class account_analytic_account(osv.osv): JOIN account_analytic_journal \ ON account_analytic_line.journal_id = account_analytic_journal.id \ WHERE account_analytic_line.account_id IN %s \ - AND account_analytic_journal.type = 'sale' \ - GROUP BY account_analytic_line.account_id", (child_ids,)) + AND account_analytic_journal.type = 'sale' \ + GROUP BY account_analytic_line.account_id", (child_ids,)) for account_id, sum in cr.fetchall(): res[account_id] = round(sum,2) - for acc in self.browse(cr, uid, res.keys(), context=context): - res[acc.id] = res[acc.id] - (acc.timesheet_ca_invoiced or 0.0) res_final = res return res_final @@ -543,6 +541,23 @@ class account_analytic_account(osv.osv): pass return result + + def hr_to_invoice_timesheets(self, cr, uid, ids, context=None): + domain = [('invoice_id','=',False),('to_invoice','!=',False), ('journal_id.type', '=', 'general'), ('account_id', 'in', ids)] + names = [record.name for record in self.browse(cr, uid, ids, context=context)] + name = _('Timesheets to Invoice of %s') % ','.join(names) + return { + 'type': 'ir.actions.act_window', + 'name': name, + 'view_type': 'form', + 'view_mode': 'tree,form', + 'domain' : domain, + 'res_model': 'account.analytic.line', + 'nodestroy': True, + } + + + class account_analytic_account_summary_user(osv.osv): _name = "account_analytic_analysis.summary.user" _description = "Hours Summary by User" diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml index a9437267611..d82a1789b2b 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml +++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml @@ -98,8 +98,8 @@ -
\n" " " msgstr "" +"\n" +"
\n" +" \n" +"

Cher ${object.name},

\n" +"

\n" +" Nous constatons avec regret que malgré notre précédent rappel, votre " +"compte est toujours débiteur.\n" +"Nous vous mettons donc en demeure de nous régler sous huitaine l’intégralité " +"de la somme. Passé ce délai,\n" +"nous bloquerons votre compte ce qui signifie que vous ne pourrez plus passer " +"de commandes\n" +"auprès de notre société (articles/services).\n" +"Si pour une raison qui nous est inconnue vous ne pouvez régler ces factures, " +"n'hésitez pas à prendre contact\n" +"avec notre service comptable afin que nous trouvions une solution rapide à " +"ce problème.\n" +"\n" +"Le détail des factures impayées est listé ci-dessous.\n" +"

\n" +"
\n" +"Veuillez agréer nos salutations distinguées,\n" +" \n" +"
\n" +"
\n" +"${user.name}\n" +" \n" +"
\n" +"
\n" +"\n" +"${object.get_followup_table_html() | safe}\n" +"\n" +"
\n" +"\n" +"
\n" +" " #. module: account_followup #: field:account_followup.stat,debit:0 @@ -424,6 +512,8 @@ msgid "" "The followup plan defined for the current company does not have any followup " "action." msgstr "" +"Les niveaux de relances définis pour la société actuelle ne contiennent " +"aucune action de relance." #. module: account_followup #: field:account_followup.followup.line,delay:0 @@ -495,7 +585,7 @@ msgstr "Imprimer le Message" #. module: account_followup #: view:res.partner:0 msgid "Responsible of credit collection" -msgstr "" +msgstr "Responsable du recouvrement" #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:155 @@ -590,6 +680,8 @@ msgid "" "He said the problem was temporary and promised to pay 50% before 15th of " "May, balance before 1st of July." msgstr "" +"Il dit que le problème n'est que passager et il a promis de payer 50% avant " +"le 15 mai, et le solde avant le 1er juilet." #. module: account_followup #: view:res.partner:0 @@ -631,6 +723,7 @@ msgstr "Analyse des relances" #: view:res.partner:0 msgid "Action to be taken e.g. Give a phonecall, Check if it's paid, ..." msgstr "" +"Action à lancer. Par ex: Appeler, vérifier si le paiement est arrivé, ..." #. module: account_followup #: help:res.partner,payment_next_action_date:0 @@ -645,6 +738,7 @@ msgstr "" #: view:res.partner:0 msgid "Print overdue payments report independent of follow-up line" msgstr "" +"Imprimer les relances de paiement indépendamment de la ligne de relance" #. module: account_followup #: help:account_followup.print,date:0 @@ -699,6 +793,38 @@ msgid "" "\n" " " msgstr "" +"\n" +"
\n" +" \n" +"

Cher ${object.name},

\n" +"

\n" +" Malgré plusieurs rappels, votre compte est toujours débiteur.\n" +"Nous vous mettons donc en demeure de nous régler sous huitaine l’intégralité " +"de la somme. Passé ce délai,\n" +"nous mettrons en œuvre toutes les démarches légales nécessaires au " +"recouvrement de notre créance sans nouvelle notification.\n" +"J'espère que ces actions ne seront pas nécessaires et vous trouverez le " +"détail des factures impayées ci-dessous.\n" +"Pour toutes questions concernant ce sujet. n'hésitez pas à prendre contact " +"avec notre service comptable.\n" +"

\n" +"
\n" +"Veuillez agréer nos salutations distinguées,\n" +"
\n" +"
\n" +"${user.name}\n" +"
\n" +"
\n" +"\n" +"\n" +"${object.get_followup_table_html() | safe}\n" +"\n" +"
\n" +"\n" +"
\n" +" " #. module: account_followup #: report:account_followup.followup.print:0 @@ -731,6 +857,24 @@ msgid "" "Best Regards,\n" " " msgstr "" +"\n" +"Cher %(partner_name)s,\n" +"\n" +"Malgré plusieurs rappels, votre compte est toujours débiteur.\n" +"\n" +"Nous vous mettons donc en demeure de nous régler sous huitaine l’intégralité " +"de la somme. Passé ce délai,\n" +"nous mettrons en œuvre toutes les démarches légales nécessaires au " +"recouvrement de notre créance sans nouvelle notification.\n" +"\n" +"J'espère que ces actions ne seront pas nécessaires et vous trouverez le " +"détail des factures impayées ci-dessous.\n" +"\n" +"Pour toutes questions concernant ce sujet. n'hésitez pas à prendre contact " +"avec notre service comptable.\n" +"\n" +"Veuillez agréer nos salutations distinguées,\n" +" " #. module: account_followup #: field:res.partner,payment_amount_due:0 @@ -765,6 +909,7 @@ msgstr "Imprimer le rapport des retards de paiement" msgid "" "You became responsible to do the next action for the payment follow-up of" msgstr "" +"Vous êtes maintenant en charge de la prochaine relance de paiement de" #. module: account_followup #: help:account_followup.followup.line,manual_action:0 @@ -781,6 +926,10 @@ msgid "" " order to exclude it from the next follow-up " "actions." msgstr "" +"Ci-dessous se trouve l'historique des transactions de ce \n" +" client. Vous pouvez sélectionner \"Aucun " +"suivi\" afin \n" +" de le retirer de la prochaine action de relance." #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:171 @@ -797,7 +946,7 @@ msgstr "Lignes d'écriture" #: code:addons/account_followup/account_followup.py:281 #, python-format msgid "Amount due" -msgstr "" +msgstr "Montant dû" #. module: account_followup #: report:account_followup.followup.print:0 @@ -834,7 +983,7 @@ msgstr "Montant en retard" #: code:addons/account_followup/account_followup.py:264 #, python-format msgid "Lit." -msgstr "" +msgstr "Lit." #. module: account_followup #: help:res.partner,latest_followup_level_id_without_lit:0 @@ -842,6 +991,7 @@ msgid "" "The maximum follow-up level without taking into account the account move " "lines with litigation" msgstr "" +"Le degré maximal de relance sans prendre en compte les écritures en litige" #. module: account_followup #: view:account_followup.stat:0 @@ -880,6 +1030,34 @@ msgid "" "\n" " " msgstr "" +"\n" +"
\n" +" \n" +"

Dear ${object.name},

\n" +"

\n" +" A l'examen de votre compte, nous constatons que sauf erreur ou omission " +"de notre part, nous n'avons toujours pas reçu à ce jour de règlement des " +"factures reprises sur le relevé ci-dessous. Nous vous remercions de bien " +"vouloir régulariser cette situation sous huitaine.\n" +"Au cas où votre règlement se serait croisé avec ce courriel, nous vous " +"prions de ne pas en tenir compte. N'hésitez pas à contacter notre service " +"comptable. \n" +"

\n" +"
\n" +"Veuillez agréer nos salutations distinguées,\n" +"
\n" +"
\n" +"${user.name}\n" +"
\n" +"
\n" +"\n" +"${object.get_followup_table_html() | safe}\n" +"\n" +"
\n" +"
\n" +" " #. module: account_followup #: field:account.move.line,result:0 @@ -920,6 +1098,19 @@ msgid "" "\n" "Best Regards,\n" msgstr "" +"\n" +"Cher %(partner_name)s,\n" +"\n" +"A l'examen de votre compte, nous constatons que sauf erreur ou omission de " +"notre part, nous n'avons toujours pas reçu à ce jour de règlement des " +"factures reprises sur le relevé ci-dessous. Nous vous remercions de bien " +"vouloir régulariser cette situation dans les 8 jours.\n" +"\n" +"Au cas où votre règlement se serait croisé avec la présente, nous vous " +"prions de ne pas en tenir compte. N'hésitez pas à contacter notre service " +"comptable.\n" +"\n" +"Veuillez agréer nos salutations distinguées,\n" #. module: account_followup #: field:account_followup.stat,date_move_last:0 @@ -941,7 +1132,7 @@ msgstr "%s partenaire(s) n'a/ont pas de crédit, donc l'action est effacée." #. module: account_followup #: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report msgid "Follow-up Report" -msgstr "" +msgstr "Rapport du suivi des paiements" #. module: account_followup #: view:res.partner:0 @@ -1042,7 +1233,7 @@ msgstr "Exercice comptable" #. module: account_followup #: field:res.partner,latest_followup_level_id_without_lit:0 msgid "Latest Follow-up Level without litigation" -msgstr "Dernière relance avant action en justice" +msgstr "Dernier niveau de suivi sans litige" #. module: account_followup #: view:res.partner:0 @@ -1142,7 +1333,7 @@ msgstr " lettres dans le rapport" #: model:ir.actions.act_window,name:account_followup.action_customer_my_followup #: model:ir.ui.menu,name:account_followup.menu_sale_followup msgid "My Follow-Ups" -msgstr "" +msgstr "Mes relances de paiement" #. module: account_followup #: view:res.partner:0 @@ -1211,7 +1402,7 @@ msgstr "Réf. Client" #. module: account_followup #: report:account_followup.followup.print:0 msgid "Maturity Date" -msgstr "Date de Maturité" +msgstr "Date d'échéance" #. module: account_followup #: help:account_followup.followup.line,delay:0 @@ -1260,6 +1451,8 @@ msgstr "" #, python-format msgid "There is no followup plan defined for the current company." msgstr "" +"Il n'y a aucun plan de suivi des paiements défini pour la société utilisée " +"actuellement." #. module: account_followup #: field:res.partner,payment_note:0 diff --git a/addons/account_followup/i18n/pt_BR.po b/addons/account_followup/i18n/pt_BR.po index 10db49e0943..1903ff2ff64 100644 --- a/addons/account_followup/i18n/pt_BR.po +++ b/addons/account_followup/i18n/pt_BR.po @@ -8,15 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-03-16 05:17+0000\n" -"Last-Translator: Fábio Martinelli - http://zupy.com.br " -"\n" +"PO-Revision-Date: 2013-04-22 03:25+0000\n" +"Last-Translator: Thiago Tognoli \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:30+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: account_followup #: model:email.template,subject:account_followup.email_template_account_followup_default @@ -993,7 +992,7 @@ msgstr "Valor em Atraso" #: code:addons/account_followup/account_followup.py:264 #, python-format msgid "Lit." -msgstr "" +msgstr "Lit." #. module: account_followup #: help:res.partner,latest_followup_level_id_without_lit:0 diff --git a/addons/account_payment/i18n/de.po b/addons/account_payment/i18n/de.po index 76deac5f038..b80744bf56d 100644 --- a/addons/account_payment/i18n/de.po +++ b/addons/account_payment/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-21 18:57+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:30+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: account_payment #: model:ir.actions.act_window,help:account_payment.action_payment_order_tree @@ -681,7 +682,7 @@ msgstr "Auftrag" #. module: account_payment #: view:payment.order:0 msgid "Cancel Payments" -msgstr "" +msgstr "Abbrechen Zahlung" #. module: account_payment #: field:payment.order,total:0 diff --git a/addons/anonymization/i18n/de.po b/addons/anonymization/i18n/de.po index 16c30ff6b2b..7bea39e929e 100644 --- a/addons/anonymization/i18n/de.po +++ b/addons/anonymization/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-21 19:08+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:32+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: anonymization #: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard @@ -50,6 +51,9 @@ msgid "" "are anonymized, while some fields are not anonymized. You should try to " "solve this problem before trying to create, write or delete fields." msgstr "" +"Die Datenbank Anonymisierung ist aktuell in einem Beta Stadium. Einige " +"Felder werden korrekt anonymisiert, andere hingegen nicht. Sie sollten das " +"Problem vor einer weiteren Bearbeitung oder Erstellung von Feldern lösen." #. module: anonymization #: field:ir.model.fields.anonymization,field_name:0 @@ -65,7 +69,7 @@ msgstr "Feld" #. module: anonymization #: selection:ir.model.fields.anonymization,state:0 msgid "New" -msgstr "" +msgstr "Neu" #. module: anonymization #: field:ir.model.fields.anonymize.wizard,file_import:0 @@ -84,6 +88,7 @@ msgid "" "Before executing the anonymization process, you should make a backup of your " "database." msgstr "" +"Vor der Anonymisierung der Datenbank sollten Sie ein Backup erstellen." #. module: anonymization #: field:ir.model.fields.anonymization.history,state:0 @@ -128,7 +133,7 @@ msgstr "unbekannt" #: code:addons/anonymization/anonymization.py:448 #, python-format msgid "Anonymized value is None. This cannot happens." -msgstr "" +msgstr "Es wurde keine Eintrag anonymisiert. Bitte prüfen Sie dieses." #. module: anonymization #: field:ir.model.fields.anonymization.history,filepath:0 @@ -166,6 +171,8 @@ msgid "" "Cannot anonymize fields of these types: binary, many2many, many2one, " "one2many, reference." msgstr "" +"Folgende Felder können nicht anonymisiert werden: Binärfelder, many2many, " +"many2one, one2many, Referenzen." #. module: anonymization #: view:ir.model.fields.anonymize.wizard:0 @@ -201,6 +208,8 @@ msgid "" "It is not possible to reverse the anonymization process without supplying " "the anonymization export file." msgstr "" +"Ohne die exportierte Datei ist es nicht möglich eine Anonymisierung " +"rückgängig zu machen." #. module: anonymization #: field:ir.model.fields.anonymize.wizard,summary:0 @@ -221,6 +230,9 @@ msgid "" "are anonymized, while some fields are not anonymized. You should try to " "solve this problem before trying to do anything." msgstr "" +"Die Datenbank Anonymisierung ist aktuell in einem Beta Stadium. Einige " +"Felder werden korrekt anonymisiert, andere hingegen nicht. Sie sollten das " +"Problem vor einer weiteren Bearbeitung oder Erstellung von Feldern lösen." #. module: anonymization #: selection:ir.model.fields.anonymize.wizard,state:0 @@ -267,13 +279,16 @@ msgid "" "are anonymized, while some fields are not anonymized. You should try to " "solve this problem before trying to do anything else." msgstr "" +"Die Datenbank Anonymisierung ist aktuell in einem Beta Stadium. Einige " +"Felder werden korrekt anonymisiert, andere hingegen nicht. Sie sollten das " +"Problem vor einer weiteren Bearbeitung oder Erstellung von Feldern lösen." #. module: anonymization #: code:addons/anonymization/anonymization.py:389 #: code:addons/anonymization/anonymization.py:448 #, python-format msgid "Error !" -msgstr "" +msgstr "Fehler !" #. module: anonymization #: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard @@ -306,6 +321,8 @@ msgstr "Begonnen" #, python-format msgid "The database is currently anonymized, you cannot anonymize it again." msgstr "" +"Die Datenbank ist bereits anonymisiert. Dieses kann nicht noch einmal " +"erfolgen." #. module: anonymization #: selection:ir.model.fields.anonymization.history,state:0 diff --git a/addons/base_calendar/i18n/nl.po b/addons/base_calendar/i18n/nl.po index b752058f615..dda56a4bd9d 100644 --- a/addons/base_calendar/i18n/nl.po +++ b/addons/base_calendar/i18n/nl.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-04-12 20:59+0000\n" +"PO-Revision-Date: 2013-04-22 14:12+0000\n" "Last-Translator: Erwin van der Ploeg (Endian Solutions) \n" "Language-Team: Dutch \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-13 06:31+0000\n" -"X-Generator: Launchpad (build 16564)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: base_calendar #: selection:calendar.alarm,trigger_related:0 @@ -592,7 +592,7 @@ msgstr "don" #. module: base_calendar #: view:crm.meeting:0 msgid "Meeting Details" -msgstr "Afspraak tdetails" +msgstr "Afspraak details" #. module: base_calendar #: field:calendar.attendee,child_ids:0 diff --git a/addons/base_gengo/i18n/de.po b/addons/base_gengo/i18n/de.po index 85912282ea4..f6d0276f3cf 100644 --- a/addons/base_gengo/i18n/de.po +++ b/addons/base_gengo/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-21 21:55+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:33+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: base_gengo #: view:res.company:0 @@ -48,11 +49,12 @@ msgstr "Gengo Privater Schlüssel" msgid "" "The Gengo translation service selected is not supported for this language." msgstr "" +"Der Gengo Übersetzungsservice wird für diese Sprache nicht unterstützt" #. module: base_gengo #: view:res.company:0 msgid "Add Gengo login Public Key..." -msgstr "" +msgstr "Hinzufügen Gengo Login Public Key" #. module: base_gengo #: model:ir.model,name:base_gengo.model_base_gengo_translations @@ -62,7 +64,7 @@ msgstr "base.gengo.translations" #. module: base_gengo #: view:ir.translation:0 msgid "Gengo Comments & Activity..." -msgstr "" +msgstr "Gengo Kommentare & Aktivitäten" #. module: base_gengo #: help:res.company,gengo_auto_approve:0 @@ -104,7 +106,7 @@ msgstr "Maschinelle Vorhersage" #. module: base_gengo #: view:res.company:0 msgid "Add Gengo login Private Key..." -msgstr "" +msgstr "Gengo Login privater Schlüssel" #. module: base_gengo #: code:addons/base_gengo/wizard/base_gengo_translations.py:155 @@ -128,7 +130,7 @@ msgstr "Gengo Übersetzungssergvice" #. module: base_gengo #: view:res.company:0 msgid "Add your comments here for translator...." -msgstr "" +msgstr "Hier Kommentare für den Übersetzer hinzufügen" #. module: base_gengo #: selection:ir.translation,gengo_translation:0 @@ -237,7 +239,7 @@ msgstr "Senden" #. module: base_gengo #: selection:ir.translation,gengo_translation:0 msgid "Ultra" -msgstr "" +msgstr "Ultra" #. module: base_gengo #: model:ir.model,name:base_gengo.model_ir_translation diff --git a/addons/base_import/i18n/de.po b/addons/base_import/i18n/de.po index 4946ecfc12f..22f76d73774 100644 --- a/addons/base_import/i18n/de.po +++ b/addons/base_import/i18n/de.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-01-06 00:06+0000\n" +"PO-Revision-Date: 2013-04-21 19:09+0000\n" "Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:33+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: base_import #. openerp-web @@ -407,7 +407,7 @@ msgstr "" #: code:addons/base_import/static/src/js/import.js:174 #, python-format msgid "Semicolon" -msgstr "" +msgstr "Semikolon" #. module: base_import #. openerp-web @@ -482,7 +482,7 @@ msgstr "" #: code:addons/base_import/static/src/js/import.js:175 #, python-format msgid "Tab" -msgstr "" +msgstr "Tabulator" #. module: base_import #: field:base_import.tests.models.preview,othervalue:0 diff --git a/addons/document_page/i18n/fr.po b/addons/document_page/i18n/fr.po index 82562d56cf6..fdaa455e8f4 100644 --- a/addons/document_page/i18n/fr.po +++ b/addons/document_page/i18n/fr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:38+0000\n" -"PO-Revision-Date: 2013-02-12 08:21+0000\n" +"PO-Revision-Date: 2013-04-22 15:40+0000\n" "Last-Translator: WANTELLET Sylvain \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:38+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: document_page #: view:document.page:0 @@ -163,7 +163,7 @@ msgstr "Catégories" #. module: document_page #: view:document.page:0 msgid "Name" -msgstr "" +msgstr "Nom" #. module: document_page #: field:document.page.create.menu,menu_parent_id:0 @@ -196,7 +196,7 @@ msgstr "Sommaire" #. module: document_page #: view:document.page:0 msgid "e.g. Once upon a time..." -msgstr "" +msgstr "Ex: Il était une fois..." #. module: document_page #: model:ir.actions.act_window,help:document_page.action_page diff --git a/addons/hr/i18n/de.po b/addons/hr/i18n/de.po index aba36b15c78..1dbaa0ee602 100644 --- a/addons/hr/i18n/de.po +++ b/addons/hr/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-01-28 17:40+0000\n" -"Last-Translator: Felix Schubert \n" +"PO-Revision-Date: 2013-04-21 19:12+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:39+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: hr #: model:process.node,name:hr.process_node_openerpuser0 @@ -148,7 +149,7 @@ msgstr "Freie Stellen" #. module: hr #: view:hr.employee:0 msgid "Other Information ..." -msgstr "" +msgstr "Weitere Informationen" #. module: hr #: constraint:hr.employee.category:0 @@ -410,7 +411,7 @@ msgstr "Mitarbeiter Kontakt" #. module: hr #: view:hr.employee:0 msgid "e.g. Part Time" -msgstr "" +msgstr "z.B. Teilzeit" #. module: hr #: model:ir.actions.act_window,help:hr.action_hr_job diff --git a/addons/hr_contract/i18n/de.po b/addons/hr_contract/i18n/de.po index 15cfaabc13d..f78d3e845c6 100644 --- a/addons/hr_contract/i18n/de.po +++ b/addons/hr_contract/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:38+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-21 19:14+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:40+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: hr_contract #: field:hr.contract,wage:0 @@ -45,7 +46,7 @@ msgstr "Gruppierung..." #. module: hr_contract #: view:hr.contract:0 msgid "Advantages..." -msgstr "" +msgstr "Zusatzvergütungen" #. module: hr_contract #: field:hr.contract,department_id:0 diff --git a/addons/mail/i18n/de.po b/addons/mail/i18n/de.po index d61aafab979..fb0d2911e05 100644 --- a/addons/mail/i18n/de.po +++ b/addons/mail/i18n/de.po @@ -8,15 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-03-17 12:20+0000\n" -"Last-Translator: Thorsten Vocks (OpenBig.org) \n" +"PO-Revision-Date: 2013-04-21 19:15+0000\n" +"Last-Translator: Robert Farr \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:47+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: mail #: view:mail.followers:0 @@ -47,7 +46,7 @@ msgstr "Empfänger der Nachricht" #. module: mail #: help:mail.message.subtype,default:0 msgid "Activated by default when subscribing." -msgstr "Standardmässig aktiviert, wenn Sie folgen." +msgstr "Standardmässig aktiviert, wenn Sie bestätigen." #. module: mail #: view:mail.message:0 diff --git a/addons/marketing_campaign_crm_demo/i18n/de.po b/addons/marketing_campaign_crm_demo/i18n/de.po index 6d80fa4edc0..07e1843f057 100644 --- a/addons/marketing_campaign_crm_demo/i18n/de.po +++ b/addons/marketing_campaign_crm_demo/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:38+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-21 19:26+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:48+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: marketing_campaign_crm_demo #: model:email.template,body_html:marketing_campaign_crm_demo.email_template_8 @@ -29,6 +30,14 @@ msgid "" "reply to this message.

\n" "

Regards,OpenERP Team,

" msgstr "" +"

Hallo,

\n" +"

Vielen Dank für Ihr Interesse an einem Technischen " +"Training.

\n" +" Bei weiteren Fragen, kontaktieren Sie uns gerne. Wir freuen uns " +"auf die Zusammenarbeit mit Ihnen.

\n" +"

Sollten Sie weitere Infos benötigen, können Sie uns ebenfalls " +"gerne anschreiben.

\n" +"

Viele Grüsse von Ihrem OpenERP Team

" #. module: marketing_campaign_crm_demo #: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report @@ -50,6 +59,12 @@ msgid "" "reply to this message.

\n" "

Regards,OpenERP Team,

" msgstr "" +"

Hallo,

\n" +"

Vielen Dank für Ihre Anfrage zur Teilnahme am OpenERP " +"Discovery Day.

\n" +"

Sollten Sie weitere Infos benötigen, können Sie uns gerne " +"kontaktieren.

\n" +"

Viele Grüsse von Ihrem OpenERP Team

" #. module: marketing_campaign_crm_demo #: report:crm.lead.demo:0 @@ -72,6 +87,13 @@ msgid "" "reply to this message.

\n" "

Regards,OpenERP Team,

" msgstr "" +"

Hallo,

\n" +"

wir haben ein interessantes Angebot für Silberpartner.

\n" +" Wir laden Sie zu einem kostenfreien technischen Training " +"ein.

\n" +"

Sollten Sie weitere Infos benötigen, können Sie uns ebenfalls " +"gerne anschreiben.

\n" +"

Viele Grüsse von Ihrem OpenERP Team

" #. module: marketing_campaign_crm_demo #: model:email.template,subject:marketing_campaign_crm_demo.email_template_1 @@ -99,6 +121,13 @@ msgid "" "reply to this message.

\n" "

Regards,OpenERP Team,

" msgstr "" +"

Hallo,

\n" +"

wir haben ein neues interessantes Angebot.

\n" +" Wir bieten Ihnen eine kostenfreie Anmeldung zu den Discovery " +"Days an.

\n" +"

Sollten Sie weitere Infos benötigen, können Sie uns ebenfalls " +"gerne anschreiben.

\n" +"

Viele Grüsse von Ihrem OpenERP Team

" #. module: marketing_campaign_crm_demo #: model:email.template,body_html:marketing_campaign_crm_demo.email_template_5 @@ -111,6 +140,13 @@ msgid "" "reply to this message.

\n" "

Regards,OpenERP Team,

" msgstr "" +"

Hallo,

\n" +"

wir haben ein exklusives Angebot für Goldpartner.

\n" +" Wir laden Sie zu einem kostenfreien technischen Training für " +"Fortgeschrittene ein.

\n" +"

Sollten Sie weitere Infos benötigen, können Sie uns ebenfalls " +"gerne anschreiben.

\n" +"

Viele Grüsse von Ihrem OpenERP Team

" #. module: marketing_campaign_crm_demo #: model:email.template,subject:marketing_campaign_crm_demo.email_template_2 @@ -141,6 +177,11 @@ msgid "" " If any further information required kindly revert back.\n" "

Regards,OpenERP Team,

" msgstr "" +"

Hallo,

\n" +"

vielen Dank für den Kauf des OpenERP Buchs.

\n" +"

Sollten Sie weitere Infos benötigen, können Sie uns ebenfalls " +"gerne anschreiben.

\n" +"

Viele Grüsse von Ihrem OpenERP Team

" #. module: marketing_campaign_crm_demo #: model:email.template,body_html:marketing_campaign_crm_demo.email_template_7 @@ -152,6 +193,12 @@ msgid "" "reply to this message.

\n" "

Regards,OpenERP Team,

" msgstr "" +"

Hallo,

\n" +"

wir haben ein exklusives Angebot für Silberpartner.

\n" +" Sie können zu Vorzugskonditionen Goldpartner werden.

\n" +"

Sollten Sie weitere Infos benötigen, können Sie uns ebenfalls " +"gerne anschreiben.

\n" +"

Viele Grüsse von Ihrem OpenERP Team

" #. module: marketing_campaign_crm_demo #: model:email.template,subject:marketing_campaign_crm_demo.email_template_5 @@ -168,3 +215,8 @@ msgid "" "reply to this message.

\n" "

Regards,OpenERP Team,

" msgstr "" +"

Hallo,

\n" +"

vielen Dank für Ihr Interesse an OpenERP Lösungen.

\n" +"

Sollten Sie weitere Infos benötigen, können Sie uns ebenfalls " +"gerne anschreiben.

\n" +"

Viele Grüsse von Ihrem OpenERP Team

" diff --git a/addons/membership/i18n/de.po b/addons/membership/i18n/de.po index 382fab6a667..f52123af394 100644 --- a/addons/membership/i18n/de.po +++ b/addons/membership/i18n/de.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:38+0000\n" -"PO-Revision-Date: 2013-01-06 21:28+0000\n" +"PO-Revision-Date: 2013-04-21 19:27+0000\n" "Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:48+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: membership #: model:process.transition,name:membership.process_transition_invoicetoassociate0 @@ -149,7 +149,7 @@ msgstr "Alle Mitglieder" #. module: membership #: view:product.product:0 msgid "This note will be displayed on quotations..." -msgstr "" +msgstr "Dieser Hinweis erscheint auf den Angeboten" #. module: membership #: code:addons/membership/membership.py:410 @@ -339,7 +339,7 @@ msgstr "Aktueller Mitgliedsschaftsstatus" #. module: membership #: view:product.product:0 msgid "Add a description..." -msgstr "" +msgstr "Ergänzen einer Beschreibung..." #. module: membership #: field:membership.membership_line,date:0 diff --git a/addons/mrp/i18n/fr.po b/addons/mrp/i18n/fr.po index 5b9d63a9362..e4caf7b95a7 100644 --- a/addons/mrp/i18n/fr.po +++ b/addons/mrp/i18n/fr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-04-15 08:07+0000\n" +"PO-Revision-Date: 2013-04-22 08:18+0000\n" "Last-Translator: WANTELLET Sylvain \n" "Language-Team: French \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-16 05:27+0000\n" -"X-Generator: Launchpad (build 16564)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: mrp #: help:mrp.config.settings,module_mrp_repair:0 @@ -1203,7 +1203,7 @@ msgstr "Ordres de fabrication" #. module: mrp #: selection:mrp.production,state:0 msgid "Awaiting Raw Materials" -msgstr "" +msgstr "Attente de matières premières" #. module: mrp #: field:mrp.bom,position:0 diff --git a/addons/pad/i18n/de.po b/addons/pad/i18n/de.po index 5f63647bea4..c4bdba49d4e 100644 --- a/addons/pad/i18n/de.po +++ b/addons/pad/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:38+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-21 19:31+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:51+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: pad #. openerp-web @@ -32,16 +33,18 @@ msgid "" "You must configure the etherpad through the menu Settings > Companies > " "Companies, in the configuration tab of your company." msgstr "" +"Sie müssen zuerst Etherpad über das Menü Einstellungen > Unternehmen > " +"Unternehmen im Konfiguration Aktenreiter konfigurieren." #. module: pad #: help:res.company,pad_key:0 msgid "Etherpad lite api key." -msgstr "" +msgstr "Etherpad lite api key" #. module: pad #: view:res.company:0 msgid "e.g. beta.primarypad.com" -msgstr "" +msgstr "z.B. beta.primarypad.com" #. module: pad #: model:ir.model,name:pad.model_res_company @@ -71,4 +74,4 @@ msgstr "" #. module: pad #: help:res.company,pad_server:0 msgid "Etherpad lite server. Example: beta.primarypad.com" -msgstr "" +msgstr "Etherpad lite Server. Beispiel: beta.primarypad.com" diff --git a/addons/point_of_sale/i18n/de.po b/addons/point_of_sale/i18n/de.po index fc3b47d9082..3a2043f16dd 100644 --- a/addons/point_of_sale/i18n/de.po +++ b/addons/point_of_sale/i18n/de.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-01-06 21:51+0000\n" +"PO-Revision-Date: 2013-04-21 21:38+0000\n" "Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:51+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: point_of_sale #: field:report.transaction.pos,product_nb:0 @@ -147,7 +147,7 @@ msgstr "Produktbezeichnung" #. module: point_of_sale #: model:product.template,name:point_of_sale.pamplemousse_rouge_pamplemousse_product_template msgid "Red grapefruit" -msgstr "" +msgstr "Rote Pampelmuse" #. module: point_of_sale #: code:addons/point_of_sale/point_of_sale.py:1343 @@ -235,7 +235,7 @@ msgstr "Abwiegen" #. module: point_of_sale #: model:product.template,name:point_of_sale.fenouil_fenouil_product_template msgid "Fennel" -msgstr "" +msgstr "Fenchel" #. module: point_of_sale #. openerp-web @@ -284,7 +284,7 @@ msgstr "Finanzbuchhaltung Info" #: code:addons/point_of_sale/static/src/xml/pos.xml:427 #, python-format msgid "0.00€" -msgstr "" +msgstr "0.00€" #. module: point_of_sale #: field:pos.session.opening,show_config:0 @@ -510,7 +510,7 @@ msgstr ") ist \"" #. module: point_of_sale #: model:product.template,name:point_of_sale.Onions_product_template msgid "Onions" -msgstr "" +msgstr "Zwiebeln" #. module: point_of_sale #: view:pos.session:0 @@ -572,7 +572,7 @@ msgstr "Sprudel" #. module: point_of_sale #: view:account.bank.statement:0 msgid "Search Cash Statements" -msgstr "Suche Kassenauszug" +msgstr "Suche Kassenbuch" #. module: point_of_sale #: view:account.bank.statement:0 @@ -774,7 +774,7 @@ msgstr "Barcode Lesegerät" #. module: point_of_sale #: model:product.template,name:point_of_sale.pomme_granny_smith_product_template msgid "Granny Smith apples" -msgstr "" +msgstr "Granny Smith Äpfel" #. module: point_of_sale #: help:product.product,expense_pdt:0 @@ -932,7 +932,7 @@ msgstr "" #. module: point_of_sale #: model:pos.category,name:point_of_sale.rouges_noyau_fruits msgid "Berries" -msgstr "" +msgstr "Beeren" #. module: point_of_sale #: view:pos.ean_wizard:0 @@ -971,7 +971,7 @@ msgstr "Datum Abschluss" #. module: point_of_sale #: model:product.template,name:point_of_sale.pomme_jonagold_product_template msgid "Jonagold apples" -msgstr "" +msgstr "Jonagold Äpfel" #. module: point_of_sale #: view:account.bank.statement:0 @@ -1058,7 +1058,7 @@ msgstr "Produkte des Benutzers" #: code:addons/point_of_sale/point_of_sale.py:984 #, python-format msgid "The POS order must have lines when calling this method" -msgstr "" +msgstr "Der POS Auftrag muss zur Ausführung Positionen aufweisen" #. module: point_of_sale #: code:addons/point_of_sale/point_of_sale.py:1143 @@ -1135,7 +1135,7 @@ msgstr "Restbetrag:" #. module: point_of_sale #: model:pos.category,name:point_of_sale.legumes msgid "Fresh vegetables" -msgstr "" +msgstr "Frisches Gemüse" #. module: point_of_sale #: view:pos.session:0 @@ -1411,7 +1411,7 @@ msgstr "Monatliche Verkäufe nach Marge" #. module: point_of_sale #: model:product.template,name:point_of_sale.poivron_jaunes_product_template msgid "Yellow Peppers" -msgstr "" +msgstr "Gelbe Pepperoni" #. module: point_of_sale #: view:pos.order:0 @@ -1706,7 +1706,7 @@ msgstr "Bitte scannen Sie einen Artikel oder eine Mitgliedskarte ein" #. module: point_of_sale #: model:product.template,name:point_of_sale.poivron_verts_product_template msgid "Green Peppers" -msgstr "" +msgstr "Grüner Pfeffer" #. module: point_of_sale #: model:product.template,name:point_of_sale.timmermans_faro_37,5cl_product_template @@ -1782,7 +1782,7 @@ msgstr "Verkauf (Summen)" #. module: point_of_sale #: model:product.template,name:point_of_sale.nectarine_product_template msgid "Peach" -msgstr "" +msgstr "Pfirsich" #. module: point_of_sale #: model:product.template,name:point_of_sale.timmermans_kriek_37,5cl_product_template @@ -1923,7 +1923,7 @@ msgstr "Nicht löschbar!" #. module: point_of_sale #: model:pos.category,name:point_of_sale.autres_agrumes msgid "Other Citrus" -msgstr "" +msgstr "Citrone" #. module: point_of_sale #: report:pos.details:0 @@ -2103,7 +2103,7 @@ msgstr "Keine Preisliste!" #. module: point_of_sale #: model:product.template,name:point_of_sale.poivron_rouges_product_template msgid "Red Pepper" -msgstr "" +msgstr "Roter Pfeffer" #. module: point_of_sale #. openerp-web @@ -2138,7 +2138,7 @@ msgstr "Sonstige" #. module: point_of_sale #: model:pos.category,name:point_of_sale.autres_legumes_frais msgid "Other fresh vegetables" -msgstr "" +msgstr "Anderes frisches Gemüse" #. module: point_of_sale #: code:addons/point_of_sale/wizard/pos_open_statement.py:49 @@ -2158,7 +2158,7 @@ msgstr "" #. module: point_of_sale #: model:pos.category,name:point_of_sale.oignons_ail_echalotes msgid "Onions / Garlic / Shallots" -msgstr "" +msgstr "Zwiebeln / Knoblauch / Kleine Zwiebeln" #. module: point_of_sale #: model:product.template,name:point_of_sale.evian_50cl_product_template @@ -2217,7 +2217,7 @@ msgstr "" #. module: point_of_sale #: model:product.template,name:point_of_sale.tomate_en_grappe_product_template msgid "In Cluster Tomatoes" -msgstr "" +msgstr "Tomatenstrang" #. module: point_of_sale #: model:ir.actions.client,name:point_of_sale.action_pos_pos @@ -2256,7 +2256,7 @@ msgstr "Point Of Sale Verkäufe" #. module: point_of_sale #: model:product.template,name:point_of_sale.spa_et_fruit_50cl_product_template msgid "Spa Fruit and Orange 50cl" -msgstr "" +msgstr "Spa Fruchtsaft und Orange 50cl" #. module: point_of_sale #: view:pos.config:0 @@ -2551,7 +2551,7 @@ msgstr "Öffne Registerkassen" #. module: point_of_sale #: model:pos.category,name:point_of_sale.poire msgid "Pears" -msgstr "" +msgstr "Pfirsiche" #. module: point_of_sale #: field:report.transaction.pos,journal_id:0 @@ -2577,7 +2577,7 @@ msgstr "Anbindung an Kassenschublade" #. module: point_of_sale #: model:pos.category,name:point_of_sale.tomates msgid "Tomatos" -msgstr "" +msgstr "Tomaten" #. module: point_of_sale #: view:report.pos.order:0 @@ -2592,7 +2592,7 @@ msgstr "" #. module: point_of_sale #: model:pos.category,name:point_of_sale.oranges msgid "Oranges" -msgstr "" +msgstr "Orangen" #. module: point_of_sale #: model:ir.actions.act_window,name:point_of_sale.action_pos_all_sales_lines @@ -2602,7 +2602,7 @@ msgstr "Alle Verkäufe" #. module: point_of_sale #: model:pos.category,name:point_of_sale.beers msgid "Beers" -msgstr "" +msgstr "Beeren" #. module: point_of_sale #: help:pos.config,name:0 @@ -2707,7 +2707,7 @@ msgstr "Zwischensumme" #. module: point_of_sale #: model:product.template,name:point_of_sale.carotte_product_template msgid "Carrots" -msgstr "" +msgstr "Karotten" #. module: point_of_sale #: view:pos.open.statement:0 @@ -2953,7 +2953,7 @@ msgstr "Gesamt Umsatz Transaktionen" #: model:pos.category,name:point_of_sale.pommes_de_terre #: model:product.template,name:point_of_sale.pomme_de_terre_product_template msgid "Potatoes" -msgstr "" +msgstr "Kartoffeln" #. module: point_of_sale #: view:pos.session.opening:0 @@ -2981,7 +2981,7 @@ msgstr "" #. module: point_of_sale #: model:pos.category,name:point_of_sale.pomme msgid "Apples" -msgstr "" +msgstr "Äpfel" #. module: point_of_sale #: report:pos.details:0 @@ -3495,7 +3495,7 @@ msgstr "" #. module: point_of_sale #: model:pos.category,name:point_of_sale.fruits msgid "Fresh Fruits" -msgstr "" +msgstr "Frische Früchte" #. module: point_of_sale #: model:product.template,name:point_of_sale.lindemans_pecheresse_37,,5cl_product_template @@ -3921,6 +3921,10 @@ msgid "" "maximum is reached, the user will have an error message at the closing of " "his session saying that he needs to contact his manager." msgstr "" +"Diese Feld zeigt die maximale erlaubte Differenz zwischen Schlussbestand und " +"errechnetem Kassenabschluss Bestand. Wenn dieses Maximum erreicht wurde, " +"erscheint eine Fehlermeldung mit dem Hinweis den Kassenmanager zu " +"kontaktieren." #. module: point_of_sale #: report:pos.invoice:0 @@ -4152,7 +4156,7 @@ msgstr "Jahr" #: code:addons/point_of_sale/static/src/xml/pos.xml:505 #, python-format msgid "at" -msgstr "" +msgstr "am" #. module: point_of_sale #: model:ir.model,name:point_of_sale.model_cash_box_in diff --git a/addons/point_of_sale/i18n/pt_BR.po b/addons/point_of_sale/i18n/pt_BR.po index e64faffb898..5921c414d67 100644 --- a/addons/point_of_sale/i18n/pt_BR.po +++ b/addons/point_of_sale/i18n/pt_BR.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-04-20 22:44+0000\n" +"PO-Revision-Date: 2013-04-22 03:34+0000\n" "Last-Translator: Thiago Tognoli \n" "Language-Team: Brazilian Portuguese \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-21 05:32+0000\n" -"X-Generator: Launchpad (build 16567)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: point_of_sale #: field:report.transaction.pos,product_nb:0 @@ -492,6 +492,7 @@ msgid "" "Difference between the counted cash control at the closing and the computed " "balance." msgstr "" +"Diferença entre o controle do dinheiro contado e o balanço computado." #. module: point_of_sale #: view:pos.session.opening:0 @@ -747,7 +748,7 @@ msgstr "Scanner de Código de Barras" #. module: point_of_sale #: model:product.template,name:point_of_sale.pomme_granny_smith_product_template msgid "Granny Smith apples" -msgstr "" +msgstr "Maçãs Granny Smith" #. module: point_of_sale #: help:product.product,expense_pdt:0 @@ -841,7 +842,7 @@ msgstr "Recibo" #: field:report.sales.by.margin.pos,net_margin_per_qty:0 #: field:report.sales.by.margin.pos.month,net_margin_per_qty:0 msgid "Net margin per Qty" -msgstr "" +msgstr "Margem líquida por Qtd." #. module: point_of_sale #: view:pos.confirm:0 @@ -1019,7 +1020,7 @@ msgstr "Produto do Usuário" #: code:addons/point_of_sale/point_of_sale.py:984 #, python-format msgid "The POS order must have lines when calling this method" -msgstr "" +msgstr "Este pedido do PDV deve ter linhas quando chamar este método" #. module: point_of_sale #: code:addons/point_of_sale/point_of_sale.py:1143 @@ -1209,7 +1210,7 @@ msgstr "Iniciar Ponto de Venda" #. module: point_of_sale #: model:pos.category,name:point_of_sale.pils msgid "Pils" -msgstr "" +msgstr "Pils" #. module: point_of_sale #: help:pos.session,cash_register_balance_end_real:0 @@ -1292,6 +1293,8 @@ msgid "" "You do not have any open cash register. You must create a payment method or " "open a cash register." msgstr "" +"Você não tem uma caixa registrador aberta. Você deve criar um método de " +"pagamento ou abrir uma caixa registradora." #. module: point_of_sale #: view:report.sales.by.margin.pos:0 @@ -1677,6 +1680,9 @@ msgid "" "Your ending balance is too different from the theorical cash closing (%.2f), " "the maximum allowed is: %.2f. You can contact your manager to force it." msgstr "" +"Seu saldo final é muito diferente do fechamento de caixa teórico (%.2f), o " +"máximo permitido é: %.2f. Você pode contatar seu gerente para forçar o " +"fechamento." #. module: point_of_sale #: view:pos.session:0 @@ -1875,7 +1881,7 @@ msgstr "Não foi possível Excluir!" #. module: point_of_sale #: model:pos.category,name:point_of_sale.autres_agrumes msgid "Other Citrus" -msgstr "" +msgstr "Other Citrus" #. module: point_of_sale #: report:pos.details:0 @@ -1942,7 +1948,7 @@ msgstr "IJsboerke Mocha 2.5L" #. module: point_of_sale #: field:pos.session,cash_control:0 msgid "Has Cash Control" -msgstr "" +msgstr "Tem Controle de Caixa" #. module: point_of_sale #: model:ir.actions.act_window,name:point_of_sale.action_report_pos_order_all diff --git a/addons/procurement/i18n/de.po b/addons/procurement/i18n/de.po index 0ca164ec2a8..a5f15b0f9b3 100644 --- a/addons/procurement/i18n/de.po +++ b/addons/procurement/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:38+0000\n" -"PO-Revision-Date: 2013-04-17 08:53+0000\n" -"Last-Translator: Iyasu Beraki \n" +"PO-Revision-Date: 2013-04-21 20:05+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \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-18 06:05+0000\n" -"X-Generator: Launchpad (build 16567)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: procurement #: model:ir.ui.menu,name:procurement.menu_stock_sched @@ -74,7 +75,7 @@ msgstr "" #. module: procurement #: view:procurement.order:0 msgid "External note..." -msgstr "" +msgstr "Externer Hinweis..." #. module: procurement #: view:product.product:0 @@ -183,7 +184,7 @@ msgstr "Nachrichten" #. module: procurement #: view:procurement.order:0 msgid "Cancel Procurement" -msgstr "" +msgstr "Abbrechen Disposition" #. module: procurement #: view:product.product:0 @@ -262,6 +263,21 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Beschaffungsaufträge repräsentieren den Bedarf einer " +"bestimmte Menge an Produkten, zu einem bestimmten Zeitpunkt, an einem " +"bestimmten Ort. Verkaufsaufträge sind dabei eine typische Quelle der " +"Beschaffung (sind aber verschiedene Dokumente). Je nach Beschaffung " +"Parameter und Produkt-Konfiguration, versucht die Engine der " +"Beschaffungsdisposition, die Notwendigkeit durch die Reservierung von " +"Produkten ab Lager, Bestellung von Produkten durch einen Lieferanten oder " +"die Übergabe eines Produktionsauftrag zu befriedigen, etc. Ein Beschaffung " +"Ausnahmefehler tritt auf, wenn das System keinen Weg finden kann, um eine " +"Beschaffung vorzuschlagen. Einige Ausnahmen werden sich dabei automatisch " +"lösen lassen, andere erfordern allerdings manuelle Eingriffe (die durch eine " +"spezielle Fehlermeldung identifiziert).\n" +"

\n" +" " #. module: procurement #: selection:procurement.order,state:0 @@ -287,7 +303,7 @@ msgstr "Bestätige" #. module: procurement #: view:stock.warehouse.orderpoint:0 msgid "Quantity Multiple" -msgstr "" +msgstr "Vielfaches" #. module: procurement #: help:procurement.order,origin:0 @@ -520,7 +536,7 @@ msgstr "Berechne Bestand" #. module: procurement #: view:procurement.order:0 msgid "e.g. SO005" -msgstr "" +msgstr "z.B. SO005" #. module: procurement #: field:stock.warehouse.orderpoint,procurement_draft_ids:0 @@ -578,7 +594,7 @@ msgstr "" #. module: procurement #: view:procurement.order:0 msgid "Internal note..." -msgstr "" +msgstr "Interner Hinweis..." #. module: procurement #: help:procurement.orderpoint.compute,automatic:0 @@ -591,7 +607,7 @@ msgstr "" #: field:procurement.order,product_uom:0 #: field:stock.warehouse.orderpoint,product_uom:0 msgid "Product Unit of Measure" -msgstr "" +msgstr "Mengen Einheit" #. module: procurement #: constraint:stock.warehouse.orderpoint:0 @@ -599,6 +615,8 @@ msgid "" "You have to select a product unit of measure in the same category than the " "default unit of measure of the product" msgstr "" +"Sie sollten eine Mengeneinheit für ein Produkt immer aus der gleichen " +"Kategorie auswählen." #. module: procurement #: view:procurement.order:0 @@ -611,6 +629,8 @@ msgid "" "as it's a consumable (as a result of this, the quantity\n" " on hand may become negative)." msgstr "" +"da es Verbrauchsware ist (als unmittelbares Resultat kann die verfügbare " +"Menge negativ sein)." #. module: procurement #: field:procurement.order,note:0 @@ -624,6 +644,9 @@ msgid "" "OpenERP generates a procurement to bring the forecasted quantity to the Max " "Quantity." msgstr "" +"Wenn der virtuelle Lagerbestand unter die Mindestmenge für dieses Produkt " +"fällt, generiert OpenERP einen Bestellvorschlag, um die prognostizierte " +"Menge wieder auf den Wiederauffüllbestand aufzufüllen." #. module: procurement #: selection:procurement.order,state:0 @@ -656,7 +679,7 @@ msgstr "" #. module: procurement #: view:product.product:0 msgid "for the delivery order." -msgstr "" +msgstr "für die Lieferung." #. module: procurement #: selection:procurement.order,priority:0 @@ -670,16 +693,20 @@ msgid "" "will be generated, depending on the product type. \n" "Buy: When procuring the product, a purchase order will be generated." msgstr "" +"Fertigung: Durch die Disposition eines Produkts wird entweder ein " +"Fertigungsauftrag oder ein Bestellvorschlag generiert, in Abhängigkeit vom " +"Produkttyp. Buy: Wenn das Produkt disponiert wird, sollte dann ein " +"Beschaffungsauftrag erstellt werden." #. module: procurement #: field:stock.warehouse.orderpoint,product_max_qty:0 msgid "Maximum Quantity" -msgstr "" +msgstr "Maximale Menge" #. module: procurement #: field:procurement.order,message_is_follower:0 msgid "Is a Follower" -msgstr "" +msgstr "Ist bereits Follower" #. module: procurement #: code:addons/procurement/procurement.py:367 @@ -704,6 +731,8 @@ msgid "" "Please check the quantity in procurement order(s) for the product \"%s\", it " "should not be 0 or less!" msgstr "" +"Bitte prüfen Sie die Menge in dem Dispositionsvorschlag für das Produkt " +"\"%s\", es sollte nicht 0 oder weniger sein!" #. module: procurement #: field:procurement.order,date_planned:0 @@ -721,6 +750,8 @@ msgid "" "When you sell this product, a delivery order will be created.\n" " OpenERP will consider that the" msgstr "" +"Wenn Sie das Produkt verkaufen, wird ein Ausgangslieferschein erstellt.\n" +" OpenERP wird annehmen , dass" #. module: procurement #: code:addons/procurement/schedulers.py:133 @@ -746,6 +777,9 @@ msgid "" "procurement method as\n" " 'Make to Stock'." msgstr "" +"Wenn Sie diesen Service verkaufen, wird nichts spezielles angestossen,\n" +" um diesen Kunden zu beliefern, außer dass die " +"Beschaffungsmethode auf \"Beschaffe an Lager\" verändert wurde." #. module: procurement #: help:stock.warehouse.orderpoint,qty_multiple:0 @@ -765,7 +799,7 @@ msgstr "Extra Informationen" #. module: procurement #: field:procurement.order,message_summary:0 msgid "Summary" -msgstr "" +msgstr "Zusammenfassung" #. module: procurement #: sql_constraint:stock.warehouse.orderpoint:0 @@ -785,7 +819,7 @@ msgstr "Datum Ende" #. module: procurement #: view:res.company:0 msgid "Logistics" -msgstr "" +msgstr "Logistik" #. module: procurement #: help:product.template,procure_method:0 @@ -794,6 +828,10 @@ msgid "" "for replenishment. \n" "Make to Order: When needed, the product is purchased or produced." msgstr "" +"Beschaffe an Lager (MtS): Bei Bedarf wird die Ware entweder direkt vom Lager " +"entnommen, ansonsten wird auf die Wiederbefüllung des gewartet.\n" +"Beschaffe von Auftrag: Bei Bedarf wird das Produkt entweder eingekauft oder " +"produziert." #. module: procurement #: field:mrp.property,composition:0 @@ -872,6 +910,9 @@ msgid "" "procurement to bring the forecasted quantity to the Quantity specified as " "Max Quantity." msgstr "" +"Wenn der verfügbare Bestand unterhalb die minimale Bestellmenge sinkt, " +"erstellt OpenERP hierdurch direkt eine Bestellung, um hierdurch auch den " +"Bestand auszugleichen." #. module: procurement #: model:ir.model,name:procurement.model_procurement_order_compute_all @@ -892,7 +933,7 @@ msgstr "Aufträge in Fehlerliste" #: model:ir.actions.act_window,name:procurement.product_open_orderpoint #: view:product.product:0 msgid "Orderpoints" -msgstr "" +msgstr "Bestellzeitpunkte" #. module: procurement #: field:product.product,orderpoint_ids:0 @@ -909,6 +950,9 @@ msgid "" "order or\n" " a new task." msgstr "" +"Wieder auffüllen ist für die Erstellung eine Beschaffungsvorschlags " +"vorgesehen.In Abhängigkeit von der Produktkonfiguration kann dieses entweder " +"eine Bestellung, einen Fertigungsauftrag oder eine neue Aufgabe erstellen." #. module: procurement #: field:procurement.order,close_move:0 @@ -978,7 +1022,7 @@ msgstr "" #. module: procurement #: view:product.product:0 msgid "When you sell this product, OpenERP will" -msgstr "" +msgstr "Wenn Sie dieses Produkt verkaufen, wird OpenERP" #. module: procurement #: view:procurement.order:0 @@ -1010,6 +1054,7 @@ msgstr "Meldebestände" #, python-format msgid "Cannot delete Procurement Order(s) which are in %s state." msgstr "" +"Es kann keine Beschaffung für Aufträge im %s Stadium vorgenommen werden." #. module: procurement #: field:procurement.order,product_uos:0 @@ -1081,7 +1126,7 @@ msgstr "DISPOSITION" #. module: procurement #: view:product.product:0 msgid "Request Procurement" -msgstr "" +msgstr "Anfrage zur Beschaffung" #. module: procurement #: code:addons/procurement/schedulers.py:87 diff --git a/addons/purchase/i18n/de.po b/addons/purchase/i18n/de.po index d135350d948..09a4ad4f265 100644 --- a/addons/purchase/i18n/de.po +++ b/addons/purchase/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-04-17 08:22+0000\n" -"Last-Translator: Iyasu Beraki \n" +"PO-Revision-Date: 2013-04-21 21:46+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \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-18 06:06+0000\n" -"X-Generator: Launchpad (build 16567)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: purchase #: model:res.groups,name:purchase.group_analytic_accounting @@ -77,7 +78,7 @@ msgstr "Tag" #. module: purchase #: view:purchase.order:0 msgid "Cancel Order" -msgstr "" +msgstr "Storno Bestellung" #. module: purchase #: view:purchase.report:0 @@ -839,7 +840,7 @@ msgstr "Angebotsanfrage" #. module: purchase #: view:purchase.order:0 msgid "Send by Email" -msgstr "" +msgstr "Email senden" #. module: purchase #: report:purchase.order:0 @@ -1692,7 +1693,7 @@ msgstr "Datum der Auftragsannahme" #: view:purchase.order:0 #: selection:purchase.report,state:0 msgid "Approved" -msgstr "Auftrag angenommen" +msgstr "Genehmigt" #. module: purchase #: selection:purchase.order,state:0 diff --git a/addons/purchase_requisition/i18n/de.po b/addons/purchase_requisition/i18n/de.po index 89fa686087e..ae58b9582a9 100644 --- a/addons/purchase_requisition/i18n/de.po +++ b/addons/purchase_requisition/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:38+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-21 21:47+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:59+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: purchase_requisition #: view:purchase.requisition:0 @@ -73,7 +74,7 @@ msgstr "Verantwortlich" #. module: purchase_requisition #: view:purchase.requisition:0 msgid "Cancel Requisition" -msgstr "" +msgstr "Abbrechen Anforderung" #. module: purchase_requisition #: view:purchase.requisition:0 @@ -198,7 +199,7 @@ msgstr "Erfasse Angebot" #. module: purchase_requisition #: view:purchase.requisition:0 msgid "e.g. PO0025" -msgstr "" +msgstr "z.B. PO0025" #. module: purchase_requisition #: help:purchase.requisition,message_ids:0 diff --git a/addons/report_webkit/i18n/de.po b/addons/report_webkit/i18n/de.po index ec8764f4b8a..b63d10fb493 100644 --- a/addons/report_webkit/i18n/de.po +++ b/addons/report_webkit/i18n/de.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:38+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-21 21:51+0000\n" +"Last-Translator: Simeon \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 05:59+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: report_webkit #: view:ir.actions.report.xml:0 @@ -413,7 +413,7 @@ msgstr "B10 16 31 x 44 mm" #. module: report_webkit #: view:report.webkit.actions:0 msgid "Cancel" -msgstr "Abrechen" +msgstr "Abbrechen" #. module: report_webkit #: field:ir.header_webkit,css:0 diff --git a/addons/sale/i18n/de.po b/addons/sale/i18n/de.po index cb97ae9060b..8e6cd31c8a6 100644 --- a/addons/sale/i18n/de.po +++ b/addons/sale/i18n/de.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-03-17 12:00+0000\n" +"PO-Revision-Date: 2013-04-21 21:49+0000\n" "Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 06:00+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: sale #: model:res.groups,name:sale.group_analytic_accounting @@ -248,7 +248,7 @@ msgstr "Fehlerhafte Daten" #. module: sale #: view:sale.order.line:0 msgid "Cancel Line" -msgstr "" +msgstr "Abbrechen Auftragszeile" #. module: sale #: help:sale.config.settings,group_discount_per_so_line:0 @@ -407,7 +407,7 @@ msgstr "Ungültig" #. module: sale #: view:sale.order:0 msgid "Terms and conditions..." -msgstr "" +msgstr "Geschäftsbedingungen..." #. module: sale #: help:sale.advance.payment.inv,advance_payment_method:0 @@ -1735,6 +1735,8 @@ msgstr "" #, python-format msgid "There is no default shop for the current user's company!" msgstr "" +"Es existiert noch kein Standard Shop für das Unternehmen des aktuellen " +"Benutzers!" #. module: sale #: model:ir.model,name:sale.model_sale_advance_payment_inv diff --git a/addons/sale/i18n/fr.po b/addons/sale/i18n/fr.po index ad022e0e9d5..0a883c03d72 100644 --- a/addons/sale/i18n/fr.po +++ b/addons/sale/i18n/fr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-03-21 16:32+0000\n" +"PO-Revision-Date: 2013-04-22 15:04+0000\n" "Last-Translator: WANTELLET Sylvain \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 06:00+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: sale #: model:res.groups,name:sale.group_analytic_accounting @@ -465,6 +465,8 @@ msgid "" "Holds the Chatter summary (number of messages, ...). This summary is " "directly in html format in order to be inserted in kanban views." msgstr "" +"Contient le résumé de la discussion (nombre de messages, ...). Ce résumé est " +"au format HTML pour permettre son utilisation dans la vue kanban." #. module: sale #: help:sale.order.line,sequence:0 @@ -1204,7 +1206,7 @@ msgstr "Analyse des ventes" #. module: sale #: field:sale.order,message_is_follower:0 msgid "Is a Follower" -msgstr "" +msgstr "Est abonné" #. module: sale #: view:sale.order.line:0 @@ -1566,7 +1568,7 @@ msgstr "Annuler le devis" #. module: sale #: field:sale.order,message_follower_ids:0 msgid "Followers" -msgstr "" +msgstr "Abonnés" #. module: sale #: code:addons/sale/sale.py:944 @@ -1593,7 +1595,7 @@ msgstr "Recherche des lignes non-facturées" #. module: sale #: model:ir.model,name:sale.model_account_config_settings msgid "account.config.settings" -msgstr "" +msgstr "account.config.settings" #. module: sale #: sql_constraint:sale.order:0 @@ -1712,7 +1714,7 @@ msgstr "Prix unitaire" #. module: sale #: selection:sale.advance.payment.inv,advance_payment_method:0 msgid "Percentage" -msgstr "" +msgstr "Pourcentage" #. module: sale #: view:sale.order:0 @@ -1807,6 +1809,91 @@ msgid "" "\n" " " msgstr "" +"\n" +"
\n" +"\n" +"

Bonjour ${object.partner_id.name},

\n" +" \n" +"

Veuillez trouver ci-joint votre ${object.state in ('draft', 'sent') " +"and 'devis' or 'confirmation de commande'} de la part de " +"${object.company_id.name}:

\n" +"\n" +"

\n" +"   RÉFÉRENCES
\n" +"   Numéro: ${object.name}
\n" +"   Montant total: ${object.amount_total} " +"${object.pricelist_id.currency_id.name}
\n" +"   Date: ${object.date_order}
\n" +" % if object.origin:\n" +"   Référence: ${object.origin}
\n" +" % endif\n" +" % if object.client_order_ref:\n" +"   Votre référence: ${object.client_order_ref}
\n" +" % endif\n" +" % if object.user_id:\n" +"   Votre contact: ${object.user_id.name}\n" +" % endif\n" +"

\n" +"\n" +" % if object.paypal_url:\n" +"
\n" +"

Il vous est possible de payer directement avec Paypal:

\n" +" \n" +" \n" +" \n" +" % endif\n" +"\n" +"
\n" +"

Si vous avez des questions, n'hésitez pas à nous contacter.

\n" +"

Merci d'avoir choisi ${object.company_id.name or 'us'}!

\n" +"
\n" +"
\n" +"
\n" +"

\n" +" ${object.company_id.name}

\n" +"
\n" +"
\n" +" \n" +" % if object.company_id.street:\n" +" ${object.company_id.street}
\n" +" % endif\n" +" % if object.company_id.street2:\n" +" ${object.company_id.street2}
\n" +" % endif\n" +" % if object.company_id.city or object.company_id.zip:\n" +" ${object.company_id.zip} ${object.company_id.city}
\n" +" % endif\n" +" % if object.company_id.country_id:\n" +" ${object.company_id.state_id and ('%s, ' % " +"object.company_id.state_id.name) or ''} ${object.company_id.country_id.name " +"or ''}
\n" +" % endif\n" +"
\n" +" % if object.company_id.phone:\n" +"
\n" +" Tél:  ${object.company_id.phone}\n" +"
\n" +" % endif\n" +" % if object.company_id.website:\n" +"
\n" +" Web : ${object.company_id.website}\n" +"
\n" +" %endif\n" +"

\n" +"
\n" +"
\n" +" " #. module: sale #: view:sale.order.line:0 @@ -2006,7 +2093,7 @@ msgstr "Prix ​​fixe (dépôt)" #. module: sale #: model:ir.model,name:sale.model_sale_config_settings msgid "sale.config.settings" -msgstr "" +msgstr "sale.config.settings" #. module: sale #: selection:sale.report,month:0 @@ -2053,7 +2140,7 @@ msgstr "Manuelle en cours" #: code:addons/sale/wizard/sale_make_invoice.py:43 #, python-format msgid "Warning!" -msgstr "" +msgstr "Attention !" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_tree @@ -2089,7 +2176,7 @@ msgstr "" #. module: sale #: help:sale.order,message_ids:0 msgid "Messages and communication history" -msgstr "" +msgstr "Historique des messages et des communications" #. module: sale #: view:sale.order:0 @@ -2178,7 +2265,7 @@ msgstr "Générer les factures à partir des lignes de commande" #: view:sale.make.invoice:0 #: view:sale.order.line.make.invoice:0 msgid "or" -msgstr "" +msgstr "ou" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_line_product_tree diff --git a/addons/share/i18n/tr.po b/addons/share/i18n/tr.po index 09c58210faa..ec013b8167f 100644 --- a/addons/share/i18n/tr.po +++ b/addons/share/i18n/tr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2013-04-04 19:14+0000\n" +"PO-Revision-Date: 2013-04-22 19:06+0000\n" "Last-Translator: Ayhan KIZILTAN \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-04-05 06:23+0000\n" -"X-Generator: Launchpad (build 16550)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: share #: code:addons/share/wizard/share_wizard.py:841 @@ -48,13 +48,13 @@ msgstr "Erişim Verildi!" #. module: share #: field:share.wizard,record_name:0 msgid "Record name" -msgstr "" +msgstr "Kayıt adı" #. module: share #: help:share.wizard,message:0 msgid "" "An optional personal message, to be included in the email notification." -msgstr "" +msgstr "Seçmeli bir kişisel mesaj, eposta bildiriminde kullanılmak üzere." #. module: share #: field:share.wizard,user_type:0 @@ -76,6 +76,10 @@ msgid "" " %s\n" "\n" msgstr "" +"Belgeler ekli değildir, onları doğrudan my OpenERP sunucusunda buradan " +"görebilirsiniz:\n" +" %s\n" +"\n" #. module: share #: model:ir.module.category,name:share.module_category_share @@ -90,6 +94,8 @@ msgid "" "Hello,\n" "\n" msgstr "" +"Merhaba,\n" +"\n" #. module: share #: field:share.wizard,share_root_url:0 @@ -101,7 +107,7 @@ msgstr "Erişim Adresini (URL) Paylaş" #: field:share.wizard,email_2:0 #: field:share.wizard,email_3:0 msgid "New user email" -msgstr "" +msgstr "Yeni kullanıcı epostası" #. module: share #: code:addons/share/wizard/share_wizard.py:886 @@ -126,7 +132,7 @@ msgstr "" #: code:addons/share/static/src/js/share.js:63 #, python-format msgid "Embed" -msgstr "" +msgstr "Göm" #. module: share #: code:addons/share/wizard/share_wizard.py:598 @@ -207,7 +213,7 @@ msgstr "Paylaşım Seçenekleri" #: code:addons/share/static/src/xml/share.xml:9 #, python-format msgid "Invite" -msgstr "" +msgstr "Davet et" #. module: share #: view:share.wizard:0 @@ -217,7 +223,7 @@ msgstr "" #. module: share #: view:share.wizard:0 msgid "Configuration" -msgstr "" +msgstr "Yapılandırma" #. module: share #: view:share.wizard:0 diff --git a/addons/stock/i18n/de.po b/addons/stock/i18n/de.po index bb0cbaab1ab..66a91c36821 100644 --- a/addons/stock/i18n/de.po +++ b/addons/stock/i18n/de.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-03-12 21:37+0000\n" -"Last-Translator: Felix Schubert \n" +"PO-Revision-Date: 2013-04-21 21:56+0000\n" +"Last-Translator: Iyasu Beraki \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 06:02+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: stock #: field:stock.inventory.line.split,line_exist_ids:0 @@ -3016,7 +3016,7 @@ msgstr "Bestände nach Seriennumer" #. module: stock #: view:stock.picking:0 msgid "Cancel Transfer" -msgstr "" +msgstr "Lieferung abbrechen" #. module: stock #: selection:report.stock.inventory,month:0 diff --git a/addons/stock/i18n/fr.po b/addons/stock/i18n/fr.po index 55b7369ec20..4b9984c9044 100644 --- a/addons/stock/i18n/fr.po +++ b/addons/stock/i18n/fr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-01-31 10:21+0000\n" -"Last-Translator: Jean-Bruno \n" +"PO-Revision-Date: 2013-04-21 15:45+0000\n" +"Last-Translator: Bertrand Rétif \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-28 06:02+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: stock #: field:stock.inventory.line.split,line_exist_ids:0 @@ -1347,6 +1347,8 @@ msgstr "Auteur" msgid "" "You are moving %.2f %s but only %.2f %s available for this serial number." msgstr "" +"Vous transférez %.2f %s mais il y a seulement %.2f %s de disponible pour ce " +"numéro de série." #. module: stock #: report:stock.picking.list:0 @@ -1452,6 +1454,15 @@ msgid "" "* Available: When products are reserved, it is set to 'Available'.\n" "* Done: When the shipment is processed, the state is 'Done'." msgstr "" +"* Nouveau : Quand le mouvement est crée mais pas encore confirmé.\n" +"* Attente d'un autre mouvement : Cet état est visible quand un mouvement est " +"en attente d'au autre, par exemple pour des transferts qui s'enchainent.\n" +"* En attente de disponibilité : Cet état est atteint lorsque la résolution " +"de l'approvisionnement n'est pas finie. Le lancement du planificateur peut " +"être nécessaire, ou la fabrication d'un composant...\n" +"* Disponible : Quand les produits sont disponibles, l'état est " +"'Disponible'.\n" +"* Terminé : Quand le bon d'expédition est traité, l'état est 'Terminé'." #. module: stock #: model:stock.location,name:stock.stock_location_locations_partner @@ -1567,7 +1578,7 @@ msgstr "" #: code:addons/stock/stock.py:1890 #, python-format msgid "Warning: No Back Order" -msgstr "" +msgstr "Attention : Pas de reliquats" #. module: stock #: model:ir.model,name:stock.model_stock_move @@ -1622,7 +1633,7 @@ msgstr "Brouillon" #. module: stock #: field:product.template,sale_delay:0 msgid "Customer Lead Time" -msgstr "" +msgstr "Délai de livraison au client" #. module: stock #: view:stock.picking:0 @@ -1633,7 +1644,7 @@ msgstr "Informations complémentaires." #: code:addons/stock/stock.py:2648 #, python-format msgid "Missing partial picking data for move #%s." -msgstr "" +msgstr "Données manquantes pour le mouvement #%s." #. module: stock #: field:stock.location.product,from_date:0 @@ -1872,7 +1883,7 @@ msgstr "Merci de saisir une quantité positive à mettre au rebut" #. module: stock #: model:stock.location,name:stock.stock_location_shop1 msgid "Your Company, Birmingham shop" -msgstr "" +msgstr "Votre société, Magasin de Birmingham" #. module: stock #: view:product.product:0 @@ -1935,7 +1946,7 @@ msgstr "Livraison entrante :" #. module: stock #: field:stock.location,valuation_out_account_id:0 msgid "Stock Valuation Account (Outgoing)" -msgstr "" +msgstr "Compte de valorisation des stocks (sortant)" #. module: stock #: view:stock.return.picking.memory:0 @@ -2131,7 +2142,7 @@ msgstr "Emplacement de Stock" #: code:addons/stock/wizard/stock_partial_picking.py:97 #, python-format msgid "_Deliver" -msgstr "" +msgstr "_Livrer" #. module: stock #: code:addons/stock/wizard/stock_inventory_merge.py:64 @@ -2317,6 +2328,7 @@ msgstr "Prix" #: field:stock.config.settings,module_stock_invoice_directly:0 msgid "Create and open the invoice when the user finish a delivery order" msgstr "" +"Créer et ouvrir la facture lorsque l'utilisateur a fini le bon de livraison" #. module: stock #: model:ir.model,name:stock.model_stock_return_picking_memory @@ -2326,7 +2338,7 @@ msgstr "stock.return.picking.memory" #. module: stock #: field:stock.config.settings,group_stock_inventory_valuation:0 msgid "Generate accounting entries per stock movement" -msgstr "" +msgstr "Générer une écriture comptable pour chaque mouvement de stock" #. module: stock #: code:addons/stock/product.py:449 @@ -2372,7 +2384,7 @@ msgstr "Nom" #. module: stock #: report:stock.picking.list:0 msgid "Supplier Address :" -msgstr "" +msgstr "Adresse du fournisseur :" #. module: stock #: field:stock.config.settings,group_product_variant:0 @@ -2414,7 +2426,7 @@ msgstr "Erreur utilisateur !" #. module: stock #: view:stock.partial.picking:0 msgid "Stock partial Picking" -msgstr "" +msgstr "Préparation partielle" #. module: stock #: view:stock.picking:0 @@ -2426,7 +2438,7 @@ msgstr "Créer facture/avoir" #: help:stock.picking.in,message_ids:0 #: help:stock.picking.out,message_ids:0 msgid "Messages and communication history" -msgstr "" +msgstr "Historique des messages et des communications" #. module: stock #: view:report.stock.inventory:0 @@ -2617,7 +2629,7 @@ msgstr "Lots" #. module: stock #: view:stock.partial.picking:0 msgid "_Transfer" -msgstr "" +msgstr "_Transférer" #. module: stock #: selection:report.stock.move,type:0 @@ -2923,6 +2935,8 @@ msgid "" "By changing the quantity here, you accept the new quantity as complete: " "OpenERP will not automatically generate a Back Order." msgstr "" +"En changeant la quantité, vous acceptez la nouvelle quantité comme " +"définitive : OpenERP ne générera pas de commande de reliquat." #. module: stock #: report:stock.inventory.move:0 @@ -3198,7 +3212,7 @@ msgstr "" #. module: stock #: view:stock.partial.move.line:0 msgid "Stock Partial Move Line" -msgstr "" +msgstr "Mouvement de stock partiel" #. module: stock #: field:stock.move,product_uos_qty:0 @@ -3228,7 +3242,7 @@ msgstr "" #: code:addons/stock/wizard/stock_partial_picking.py:95 #, python-format msgid "_Receive" -msgstr "" +msgstr "_Recevoir" #. module: stock #: field:stock.incoterms,active:0 @@ -3559,7 +3573,7 @@ msgstr "Stock" #: code:addons/stock/wizard/stock_return_picking.py:222 #, python-format msgid "Returned Picking" -msgstr "" +msgstr "Bon de retour" #. module: stock #: model:ir.model,name:stock.model_product_product @@ -3708,7 +3722,7 @@ msgstr "Assistant" #. module: stock #: view:report.stock.move:0 msgid "Completed Stock-Moves" -msgstr "" +msgstr "Mouvements de stock terminés" #. module: stock #: model:ir.actions.act_window,name:stock.action_view_stock_location_product @@ -3719,7 +3733,7 @@ msgstr "Articles par emplacement" #. module: stock #: view:stock.config.settings:0 msgid "Logistic" -msgstr "" +msgstr "Logistique" #. module: stock #: model:ir.actions.act_window,help:stock.action_location_form @@ -3765,7 +3779,7 @@ msgstr "Étagère 1" #: help:stock.picking.in,date:0 #: help:stock.picking.out,date:0 msgid "Creation time, usually the time of the order." -msgstr "" +msgstr "Date de création, habituellement la date de la commande." #. module: stock #: field:stock.tracking,name:0 @@ -3982,7 +3996,7 @@ msgstr "Numéro de série" #. module: stock #: model:ir.model,name:stock.model_stock_partial_picking msgid "Partial Picking Processing Wizard" -msgstr "" +msgstr "Assistant de livraison partielle" #. module: stock #: field:stock.location,icon:0 @@ -4077,7 +4091,7 @@ msgstr "Annulée" #. module: stock #: view:stock.picking:0 msgid "Confirmed Delivery Orders" -msgstr "" +msgstr "Bons de livraison confirmés" #. module: stock #: view:stock.move:0 @@ -4103,7 +4117,7 @@ msgstr "" #. module: stock #: model:stock.location,name:stock.stock_location_shop0 msgid "Your Company, Chicago shop" -msgstr "" +msgstr "Votre société, Magasin de Chicago" #. module: stock #: selection:report.stock.move,type:0 @@ -4164,7 +4178,7 @@ msgstr "Bons de livraisons" #. module: stock #: view:stock.picking:0 msgid "Delivery orders already processed" -msgstr "" +msgstr "Bons de livraison déjà traités" #. module: stock #: field:product.template,loc_case:0 @@ -4278,7 +4292,7 @@ msgstr "Configuration" #. module: stock #: model:res.groups,name:stock.group_locations msgid "Manage Multiple Locations and Warehouses" -msgstr "" +msgstr "Gérer les emplacements multiples et les entrepôts" #. module: stock #: help:stock.change.standard.price,new_price:0 @@ -4425,6 +4439,7 @@ msgstr "" #: help:stock.production.lot,name:0 msgid "Unique Serial Number, will be displayed as: PREFIX/SERIAL [INT_REF]" msgstr "" +"Numéro de série unique, sera affiché comme suit : PREFIX / SERIE [INT_REF]" #. module: stock #: code:addons/stock/product.py:142 @@ -4443,7 +4458,7 @@ msgstr "Articles entrants" #. module: stock #: view:product.product:0 msgid "update" -msgstr "" +msgstr "mettre à jour" #. module: stock #: view:stock.change.product.qty:0 @@ -4482,7 +4497,7 @@ msgstr "Information" #: code:addons/stock/stock.py:1199 #, python-format msgid "You cannot remove the picking which is in %s state!" -msgstr "" +msgstr "Vous ne pouvez pas supprimer une opération dans l'état %s!" #. module: stock #: help:res.partner,property_stock_customer:0 @@ -4609,6 +4624,8 @@ msgid "" "Adds a Claim link to the delivery order.\n" " This installs the module claim_from_delivery." msgstr "" +"Ajoute un lien Réclamation au bon de livraison.\n" +"                 Cela installe le module Réclamation (claim_from_delivery)." #. module: stock #: code:addons/stock/wizard/stock_return_picking.py:208 @@ -4809,7 +4826,7 @@ msgstr "Emplacement de Dest." #. module: stock #: model:ir.actions.report.xml,name:stock.report_picking_list msgid "Picking Slip" -msgstr "" +msgstr "Bordereau de transfert" #. module: stock #: help:stock.move,product_packaging:0 @@ -4827,7 +4844,7 @@ msgstr "Délais" #. module: stock #: report:stock.picking.list:0 msgid "Schedule Date" -msgstr "" +msgstr "Date prévue" #. module: stock #: field:stock.location.product,to_date:0 @@ -4848,12 +4865,12 @@ msgstr "Eclater le mouvement" #. module: stock #: selection:stock.move,state:0 msgid "New" -msgstr "" +msgstr "Nouveau" #. module: stock #: view:report.stock.move:0 msgid "Future Stock-Moves" -msgstr "" +msgstr "Mouvements de stock à venir" #. module: stock #: view:report.stock.inventory:0 @@ -4878,7 +4895,7 @@ msgstr "Mai" #: code:addons/stock/product.py:110 #, python-format msgid "No difference between standard price and new price!" -msgstr "" +msgstr "Aucune différence entre le prix standard et le nouveau prix!" #. module: stock #: view:stock.picking.out:0 @@ -4893,7 +4910,7 @@ msgstr "Livraison" #. module: stock #: view:stock.fill.inventory:0 msgid "Import the current inventory" -msgstr "" +msgstr "Importer l'inventaire actuel" #. module: stock #: model:ir.actions.act_window,name:stock.action5 @@ -4974,7 +4991,7 @@ msgstr "" #. module: stock #: view:stock.picking.in:0 msgid "Date of Reception" -msgstr "" +msgstr "Date de réception" #. module: stock #: help:stock.config.settings,group_stock_multiple_locations:0 @@ -4986,7 +5003,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 msgid "Confirm & Transfer" -msgstr "" +msgstr "Confirmer et transférer" #. module: stock #: field:stock.location,scrap_location:0 @@ -5077,7 +5094,7 @@ msgstr "Optionnel : mouvement de stock suivant quand il est enchainé." #. module: stock #: view:stock.picking.out:0 msgid "Print Delivery Slip" -msgstr "" +msgstr "Imprimer le bordereau de livraison" #. module: stock #: view:report.stock.inventory:0 @@ -5100,7 +5117,7 @@ msgstr "Prêt" #. module: stock #: report:stock.picking.list:0 msgid "Warehouse Address :" -msgstr "" +msgstr "Adresse de l'entrepôt :" #~ msgid "_Cancel" #~ msgstr "_Annuler" diff --git a/addons/stock/i18n/tr.po b/addons/stock/i18n/tr.po index b6c6d5a223c..44337f5b311 100644 --- a/addons/stock/i18n/tr.po +++ b/addons/stock/i18n/tr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-04-13 18:25+0000\n" +"PO-Revision-Date: 2013-04-22 19:01+0000\n" "Last-Translator: Ayhan KIZILTAN \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-04-14 05:50+0000\n" -"X-Generator: Launchpad (build 16564)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: stock #: field:stock.inventory.line.split,line_exist_ids:0 @@ -3801,6 +3801,24 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Bir konum eklemek için tıklayın.\n" +"

\n" +" Deponuzu yapısını ve düzeninin yansıtacak konumları\n" +" tanımlayın. OpenERP fiziksel konumları (depolar, raflar,\n" +" kutular, vb.), iş ortağı konumları (müşteriler, " +"tedarikçiler)\n" +" ve stok işlemlerinin benzeri olan üretim emirleri\n" +" harcamaları, sayımlar vb. gibi sanal konumları\n" +" yönetebilir.\n" +"

\n" +" OpenERP de her stok işlemi ürünleri bir konumdan diğerine\n" +" taşır. Örneğin, eğer bir tedarikçiden ürün alırsanız\n" +" OpenERP ürünleri Tedarikçi konumundan Stok konumuna\n" +" taşıyacaktır. Her rapor fiziksel, iş ortağı ya da sanal\n" +" konumlarda yapılabilir.\n" +"

\n" +" " #. module: stock #: field:stock.fill.inventory,recursive:0 @@ -4297,6 +4315,9 @@ msgid "" "As an example, a decimal precision of 2 will allow weights like: 9.99 kg, " "whereas a decimal precision of 4 will allow weights like: 0.0231 kg." msgstr "" +"Bir örnek olarak, 2 ondalık hassasiyeti vereceği ağırlık değeri: 9.99 kg " +"olacağı gibi 4 ondalık hassasiyetinin de vereceği ağırlık değeri: 0.0231 kg " +"olur." #. module: stock #: view:report.stock.move:0 @@ -4749,6 +4770,9 @@ msgid "" "a serial number on product moves, you can get the upstream or downstream " "traceability of that product." msgstr "" +"Bu sizin ürünlerinizi seri numarası seçerek yönetmenizi sağlar. Ürün " +"hareketlerinde seri numarası seçerseniz, o ürünün aşağı doğru ya da yukarı " +"doğru izlenebilirliğini elde edebilirsiniz." #. module: stock #: code:addons/stock/wizard/stock_fill_inventory.py:124 @@ -5045,6 +5069,20 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Bir seri numarası eklemek için tıklayın.\n" +"

\n" +" Bu kayıt ettiğiniz bütün partilerin listesidir. Bir parti\n" +" seçtiğinizde, partinin içerdiği ürünlerin aşağı doğru ve " +"yukarı\n" +" doğru izlenebilirliğini elde edebilirsiniz. Varsayılan " +"olarak, liste\n" +" deponuzda bulunan seri numaralarına göre süzülür ama siz\n" +" 'Mevcut' düğmesine basarak ürettiğiniz, aldığınız ya da\n" +" müşterilerinize teslim ettiğiniz tüm partileri elde\n" +" edebilirsiniz.\n" +"

\n" +" " #. module: stock #: view:stock.picking.in:0 @@ -5057,6 +5095,8 @@ msgid "" "This allows to configure and use multiple stock locations and warehouses,\n" " instead of having a single default one." msgstr "" +"Bu, varsayılan olarak tek bir yerine çoklu stok konumları\n" +" ve depoları yapılandırmanızı ve kullanmanızı sağlar." #. module: stock #: view:stock.picking:0 diff --git a/addons/web_calendar/i18n/de.po b/addons/web_calendar/i18n/de.po index d464de70625..fe1cda84be4 100644 --- a/addons/web_calendar/i18n/de.po +++ b/addons/web_calendar/i18n/de.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: Ferdinand @ Camptocamp \n" +"PO-Revision-Date: 2013-04-21 17:10+0000\n" +"Last-Translator: Boris Skegin \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: web_calendar #. openerp-web @@ -36,7 +36,7 @@ msgstr "Details" #: code:addons/web_calendar/static/src/js/calendar.js:487 #, python-format msgid "Edit: %s" -msgstr "" +msgstr "Editieren: %s" #. module: web_calendar #. openerp-web @@ -160,7 +160,7 @@ msgstr "Agenda" #: code:addons/web_calendar/static/src/js/calendar.js:450 #, python-format msgid "Create: %s" -msgstr "" +msgstr "Anlegen: %s" #. module: web_calendar #. openerp-web diff --git a/addons/web_kanban/i18n/de.po b/addons/web_kanban/i18n/de.po index 6c3f321ede6..c442a73ffa2 100644 --- a/addons/web_kanban/i18n/de.po +++ b/addons/web_kanban/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: Felix Schubert \n" +"PO-Revision-Date: 2013-04-21 17:16+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-29 05:10+0000\n" -"X-Generator: Launchpad (build 16546)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:10+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: web_kanban #. openerp-web @@ -86,7 +87,7 @@ msgstr "Eine neue Spalte hinzufügen" #: code:addons/web_kanban/static/src/xml/web_kanban.xml:45 #, python-format msgid "Fold" -msgstr "" +msgstr "Schließen" #. module: web_kanban #. openerp-web @@ -114,7 +115,7 @@ msgstr "Wollen Sie diesen Datensatz wirklich löschen?" #: code:addons/web_kanban/static/src/js/kanban.js:677 #, python-format msgid "Unfold" -msgstr "" +msgstr "Öffnen" #. module: web_kanban #. openerp-web @@ -135,7 +136,7 @@ msgstr "verbleibend)" #: code:addons/web_kanban/static/src/js/kanban.js:421 #, python-format msgid "An error has occured while moving the record to this group: " -msgstr "" +msgstr "Fehler beim Versuch den Datensatz dieser Gruppe zuzuweisen: " #. module: web_kanban #. openerp-web diff --git a/openerp/addons/base/i18n/de.po b/openerp/addons/base/i18n/de.po index 484e24bacf5..b3945a47131 100644 --- a/openerp/addons/base/i18n/de.po +++ b/openerp/addons/base/i18n/de.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:36+0000\n" -"PO-Revision-Date: 2013-03-24 15:20+0000\n" -"Last-Translator: Felix Schubert \n" +"PO-Revision-Date: 2013-04-22 22:24+0000\n" +"Last-Translator: Thorsten Vocks (OpenBig.org) \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-25 05:23+0000\n" -"X-Generator: Launchpad (build 16540)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:08+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -102,7 +103,7 @@ msgstr "Touchscreen Oberfläche für Shops" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll msgid "Indian Payroll" -msgstr "Indische Lohnkonten" +msgstr "Indische Lohnabrechnung" #. module: base #: help:ir.cron,model:0 @@ -133,8 +134,10 @@ msgid "" " " msgstr "" "\n" -"A module that adds manufacturers and attributes on the product form.\n" -"====================================================================\n" +"Ein Modul durch das Hersteller und Attribute direkt auf der Produktseite " +"ergänzt werden: \n" +"==========================================================================\n" +"\n" "\n" "Sie können jetzt die folgenden Produktparameter definieren:\n" "-----------------------------------------------\n" @@ -222,7 +225,7 @@ msgstr "" "Modul zur Erzeugung von Rechnung auf Basis von Personalkosten " "(Zeiterfassungseinträge, Spesen, ...).\n" "\n" -"Sie können Preislisten im Analytischen Account definieren und Auswertungen\n" +"Sie können Preislisten für eine Kostestelle definieren und Auswertungen " "erzeugen." #. module: base @@ -231,7 +234,7 @@ msgstr "" #: code:addons/base/res/res_users.py:473 #, python-format msgid "Warning!" -msgstr "Achtung!" +msgstr "Warnung !" #. module: base #: code:addons/base/ir/ir_model.py:406 @@ -2169,6 +2172,11 @@ msgid "" "Please keep in mind that you should review and adapt it with your " "Accountant, before using it in a live Environment.\n" msgstr "" +"\n" +"Dieses Modul repräsentiert den Standard Kontenplan für Österreich auf Basis " +"der Vorlage des BMF.gv.at.\n" +"Bitte beachten Sie, daß dieser Kontenplan generell vor Inbetriebnahme " +"geprüft und möglicherweise auch angepasst werden sollte.\n" #. module: base #: model:res.country,name:base.kg @@ -2381,6 +2389,17 @@ msgid "" "with the effect of creating, editing and deleting either ways.\n" " " msgstr "" +"\n" +"Synchronisation der erledigten Projektaufgaben mit der persönlichen " +"Zeiterfassung.\n" +"====================================================================\n" +"\n" +"Diese Anwendung ermöglicht den Transfer der dokumentierten Zeiten von " +"erledigten Aufgaben zu den\n" +"Zeiterfassungspositionen der Mitarbeiter unter Berücksichtigung des Datums " +"der Durchführung, als alternative Möglichkeit zur Aufgaben- und " +"Zeiterfassung.\n" +" " #. module: base #: model:ir.model,name:base.model_ir_model_access @@ -3506,6 +3525,20 @@ msgid "" " * Unlimited \"Group By\" levels (not stacked), two cross level analysis " "(stacked)\n" msgstr "" +"\n" +"Grafik Ansichten im Web Client\n" +"==========================\n" +" * Erstellt eine Ansicht und ermöglicht eine dynamische " +"Anpassung der Präsentation\n" +" * Folgende Diagrammtypen werden unterstützt: Torte, Linien, Flächen, " +"Balken, Radardiagramme\n" +" * Gestapelte / Nicht gestapelte Diagramm Ansicht für Flächen und " +"Balken\n" +" * Legende: oben, innen (oben / links), versteckt\n" +"     * Features: Download als PNG-oder CSV-, Daten-Browser, dynamischer " +"Perspektivenwechsel\n" +"     * Unlimitierte \"Gruppierung\" Ebenen (nicht gestapelt), zweifache " +"Kreuzanalyse (gestapelt)\n" #. module: base #: view:res.groups:0 @@ -3602,6 +3635,13 @@ msgid "" " * ``base_stage``: stage management\n" " " msgstr "" +"\n" +"Dieses Modul berücksichtigt Status und Stufe. Es ist eine Anpassung der " +"crm_base und crm_case Klassen aus dem CRM.\n" +"\n" +" * \"base_state\": Status Management\n" +" * \"base_stage\": Fortschritt Management\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_web_linkedin @@ -3747,7 +3787,7 @@ msgstr "" #. module: base #: view:res.company:0 msgid "e.g. Global Business Solutions" -msgstr "" +msgstr "z.B. Global Business Solutions" #. module: base #: field:res.company,rml_header1:0 @@ -4866,6 +4906,25 @@ msgid "" " and iban account numbers\n" " " msgstr "" +"\n" +"Diese Anwendung erweitert das Standard account_bank_statement_line Objekt " +"zur verbesserten e-banking Unterstützung.\n" +"=============================================================================" +"=======================\n" +"\n" +"Das Module ergänzt:\n" +" - Wertstellungsdatum\n" +" - Stapel Zahlungen\n" +" - Nachvollziehbarkeit der Kontobewegungen\n" +" - Bankauszug Anzeige der einzelnen Positionen\n" +" - Bankkonto Saldo\n" +" - Verbesserte Verarbeitungsgeschwindigkeit beim Import von Auszügen " +"(durch\n" +" den ebanking_import Kontext Schalter)\n" +" - name_search in res.partner.bank ermöglicht effektive Suche nach Banken " +"\n" +" und Iban Kontounterstützung\n" +" " #. module: base #: selection:ir.module.module,state:0 @@ -4901,7 +4960,7 @@ msgstr "Ltd" #. module: base #: model:ir.actions.server,name:base.action_run_ir_action_todo msgid "Run Remaining Action Todo" -msgstr "" +msgstr "Starte noch offene Aktionen" #. module: base #: field:res.partner,ean13:0 @@ -5276,6 +5335,17 @@ msgid "" " * Number Padding\n" " " msgstr "" +"\n" +"Dieses Modul verwaltet die interne Nummernreihenfolge für die Buchhaltung.\n" +"================================================================\n" +"\n" +"Es ist möglich die folgenden Attribute für diese Sequenz anzupassen:\n" +" *Präfix\n" +" *Suffix\n" +" *Nächste Nummer\n" +" *Fortlaufende Nummer\n" +" * Stellenanzahl der Anzeige\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_project_timesheet @@ -5782,7 +5852,7 @@ msgstr "" #. module: base #: view:base.language.export:0 msgid "This file was generated using the universal" -msgstr "" +msgstr "Die Dateianzeige wurde von der Standard Sprache generiert" #. module: base #: model:res.partner.category,name:base.res_partner_category_7 @@ -6064,7 +6134,7 @@ msgstr "Vollständiger Zugriff" #. module: base #: model:ir.module.module,description:base.module_l10n_pt msgid "Plano de contas SNC para Portugal" -msgstr "" +msgstr "Kontenplan der SNC für Portugal." #. module: base #: view:ir.actions.act_window:0 @@ -6093,7 +6163,7 @@ msgstr "Nur, wenn dieses Bankkonto zu Ihrem Unternehmen gehört" #: code:addons/base/ir/ir_fields.py:337 #, python-format msgid "Unknown sub-field '%s'" -msgstr "" +msgstr "Unbekanntes Sub-Feld '%s'" #. module: base #: model:res.country,name:base.za @@ -6132,6 +6202,11 @@ msgid "" "Collects web application usage with Google Analytics.\n" " " msgstr "" +"\n" +"Google Analytics.\n" +"==============\n" +"Zusammenfassung von Webanwendungen durch Google Analytics.\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_hr_recruitment @@ -6230,7 +6305,7 @@ msgstr "Datum" #. module: base #: model:ir.module.module,shortdesc:base.module_event_moodle msgid "Event Moodle" -msgstr "" +msgstr "Moodle Veranstaltungen" #. module: base #: model:ir.module.module,description:base.module_email_template @@ -6323,7 +6398,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_partner_category_form msgid "Partner Tags" -msgstr "" +msgstr "Partner Tags" #. module: base #: view:res.company:0 @@ -6363,12 +6438,12 @@ msgstr "Dezimalzeichen" #: code:addons/orm.py:5319 #, python-format msgid "Missing required value for the field '%s'." -msgstr "" +msgstr "Es fehlt der verantwortliche Wert für das Feld '%s'." #. module: base #: view:ir.rule:0 msgid "Write Access Right" -msgstr "" +msgstr "Schreib Zugangsberechtigung" #. module: base #: model:ir.actions.act_window,help:base.action_res_groups @@ -6408,7 +6483,7 @@ msgstr "Isle of Man" #. module: base #: help:ir.actions.client,res_model:0 msgid "Optional model, mostly used for needactions." -msgstr "" +msgstr "Dieses ist ein optionales Krokodil" #. module: base #: code:addons/base/module/module.py:306 @@ -6448,6 +6523,9 @@ msgid "" "wizard if the delivery is to be invoiced.\n" " " msgstr "" +"\n" +"Rechnungsassistenz für Teillieferungen\n" +" " #. module: base #: selection:ir.translation,type:0 @@ -7176,7 +7254,7 @@ msgstr "USA kleinere amerikanische Überseeinseln" #. module: base #: view:base.language.import:0 msgid "e.g. English" -msgstr "" +msgstr "z.B. Englisch" #. module: base #: help:ir.cron,numbercall:0 @@ -7268,7 +7346,7 @@ msgstr "Ist ein Unternehmen" #: view:res.partner:0 #: view:res.users:0 msgid "e.g. www.openerp.com" -msgstr "" +msgstr "z.B. www.openerp.com" #. module: base #: selection:ir.cron,interval_type:0 @@ -7320,13 +7398,15 @@ msgstr "" #: 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' scheint keine Nummer für das Feld '%%(field)s zu sein." #. module: base #: help:res.country.state,name:0 msgid "" "Administrative divisions of a country. E.g. Fed. State, Departement, Canton" msgstr "" +"Administrative Aufteilung eines Landes. Z.B. in Bundesstaaten, Länder, " +"Regionen" #. module: base #: view:res.partner.bank:0 @@ -7346,7 +7426,7 @@ msgstr "Objekt, dass von dieser Regel betroffen ist." #. module: base #: selection:ir.actions.act_window,target:0 msgid "Inline View" -msgstr "" +msgstr "Inline Anzeige" #. module: base #: field:ir.filters,is_default:0 @@ -7760,7 +7840,7 @@ msgstr "ir.cron" #. module: base #: model:ir.ui.menu,name:base.menu_sales_followup msgid "Payment Follow-up" -msgstr "" +msgstr "Mahnwesen" #. module: base #: model:res.country,name:base.cw @@ -7836,6 +7916,7 @@ msgstr "Nachweis der Veränderungen in der Datenbank" #, python-format msgid "Value '%s' not found in selection field '%%(field)s'" msgstr "" +"Der Wert '%s' konnte nicht in Auswahlfeld '%%(field)s' entdeckt werden." #. module: base #: model:res.country,name:base.sd @@ -8655,7 +8736,7 @@ msgstr "Benutzername" #. module: base #: view:ir.filters:0 msgid "Filters created by myself" -msgstr "" +msgstr "Eigene Filter" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_hn @@ -8916,7 +8997,7 @@ msgstr "Nächste Nummer dieser Sequenz" #: view:res.partner:0 #: view:res.users:0 msgid "Tags..." -msgstr "" +msgstr "Tags..." #. module: base #: view:res.partner:0 @@ -8936,7 +9017,7 @@ msgstr "Dieses Fenster" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_anonymous msgid "Anonymous portal" -msgstr "" +msgstr "Anonymer Gastportalzugang" #. module: base #: field:base.language.export,format:0 @@ -8946,7 +9027,7 @@ msgstr "Dateiformat" #. module: base #: view:ir.filters:0 msgid "My filters" -msgstr "" +msgstr "Eigene Filter" #. module: base #: field:res.lang,iso_code:0 @@ -9623,7 +9704,7 @@ msgstr "Aktion der Anwendungsprogramme" #. module: base #: field:res.partner.bank.type,field_ids:0 msgid "Type Fields" -msgstr "" +msgstr "Typ Felder" #. module: base #: model:ir.module.module,summary:base.module_hr_recruitment @@ -9655,7 +9736,7 @@ msgstr "Legt fest, ob die Währung vor oder hinter dem Betrag gedruckt wird." #. module: base #: model:ir.module.module,shortdesc:base.module_pad_project msgid "Pad on tasks" -msgstr "" +msgstr "Anzeigetafel für Aufgaben" #. module: base #: model:ir.model,name:base.model_base_update_translations @@ -9680,7 +9761,7 @@ msgstr "Finnland" #. module: base #: model:ir.module.module,shortdesc:base.module_web_shortcuts msgid "Web Shortcuts" -msgstr "" +msgstr "Web Schnellzugriff" #. module: base #: view:res.partner:0 @@ -9733,7 +9814,7 @@ msgstr "Diagramm Ansichten" #. module: base #: help:ir.model.relation,name:0 msgid "PostgreSQL table name implementing a many2many relation." -msgstr "" +msgstr "PostgreSQL Tabelle implementiert eine many2many Beziehung." #. module: base #: model:ir.module.module,description:base.module_base @@ -9768,13 +9849,13 @@ msgstr "Kuwait" #. module: base #: model:ir.module.module,shortdesc:base.module_account_followup msgid "Payment Follow-up Management" -msgstr "" +msgstr "Management der Zahlungserinnerungen" #. module: base #: code:addons/orm.py:5334 #, python-format msgid "The value for the field '%s' already exists." -msgstr "" +msgstr "Der Wert für dieses Feld '%s' existiert bereits." #. module: base #: field:workflow.workitem,inst_id:0 @@ -10062,7 +10143,7 @@ msgstr "" #. module: base #: field:ir.module.module,description_html:0 msgid "Description HTML" -msgstr "" +msgstr "HTML Beschreibung" #. module: base #: help:res.groups,implied_ids:0 @@ -10255,7 +10336,7 @@ msgstr "Slovenian / slovenščina" #. module: base #: field:res.currency,position:0 msgid "Symbol Position" -msgstr "" +msgstr "Position des Symbols" #. module: base #: model:ir.module.module,description:base.module_l10n_de @@ -10297,6 +10378,10 @@ msgid "" "\n" "(Document type: %s)" msgstr "" +"Für diese Art Dokument, kann es sinnvoll sein, nur auf die selbst erstellten " +"Dokumente zuzugreifen.\n" +"\n" +"(Dokumententyp: %s)" #. module: base #: view:base.language.export:0 @@ -10356,7 +10441,7 @@ msgstr "" #. module: base #: constraint:ir.rule:0 msgid "Rules can not be applied on the Record Rules model." -msgstr "" +msgstr "Regeln können nicht einfach aufgezeichnet und angewendet werden." #. module: base #: field:res.partner,supplier:0 @@ -11060,7 +11145,7 @@ msgstr "Partner Ref." #: code:addons/base/static/src/js/apps.js:103 #, python-format msgid "OpenERP Apps Unreachable" -msgstr "" +msgstr "OpenERP Apps können nicht erreicht werden" #. module: base #: field:ir.attachment,create_date:0 @@ -11405,7 +11490,7 @@ msgstr "" #: code:addons/base/ir/ir_fields.py:316 #, python-format msgid "external id" -msgstr "" +msgstr "Externe ID" #. module: base #: view:ir.model:0 @@ -11637,7 +11722,7 @@ msgstr "Felder Beschreibung" #. module: base #: model:ir.module.module,shortdesc:base.module_analytic_contract_hr_expense msgid "Contracts Management: hr_expense link" -msgstr "" +msgstr "Vertragsmanagement: hr_expense Link" #. module: base #: code:addons/base/module/module.py:670 @@ -11646,6 +11731,8 @@ msgid "" "The `%s` module appears to be unavailable at the moment, please try again " "later." msgstr "" +"Das '%s' Modul scheint nicht mehr erreichbar zu sein, bitte versuchen Sie es " +"später erneut." #. module: base #: view:ir.attachment:0 @@ -11685,7 +11772,7 @@ msgstr "" #. module: base #: field:ir.attachment,store_fname:0 msgid "Stored Filename" -msgstr "" +msgstr "Abgespeicherter Dateiname" #. module: base #: field:res.partner,use_parent_address:0 @@ -11917,7 +12004,7 @@ msgstr "Beispiel einer Marketing-Kampagne" #, python-format msgid "" "Can not create Many-To-One records indirectly, import the field separately" -msgstr "" +msgstr "Es können keine Many-To-One Daten indirekt eingegeben werden" #. module: base #: field:ir.cron,interval_type:0 @@ -11927,7 +12014,7 @@ msgstr "Intervall in Minuten" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_stock msgid "Portal Stock" -msgstr "" +msgstr "Portal Lager" #. module: base #: field:workflow.activity,kind:0 @@ -12057,7 +12144,7 @@ msgstr "" #: view:res.partner:0 #: view:res.users:0 msgid "Street..." -msgstr "" +msgstr "Straße..." #. module: base #: constraint:res.users:0 @@ -12157,7 +12244,7 @@ msgstr "" #. module: base #: help:ir.model.constraint,name:0 msgid "PostgreSQL constraint or foreign key name." -msgstr "" +msgstr "PostGreSQL Konditionen und Fremdschlüssel" #. module: base #: view:res.company:0 @@ -12197,7 +12284,7 @@ msgstr "Icon URL" #. module: base #: model:ir.module.module,shortdesc:base.module_note_pad msgid "Memos pad" -msgstr "" +msgstr "Notiz Pad" #. module: base #: model:ir.module.module,description:base.module_pad @@ -12326,7 +12413,7 @@ msgstr "Zu erledigen" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_hr_employees msgid "Portal HR employees" -msgstr "" +msgstr "Portal HR Mitarbeiter" #. module: base #: selection:base.language.install,lang:0 @@ -12354,6 +12441,8 @@ msgid "" "Insufficient fields to generate a Calendar View for %s, missing a date_stop " "or a date_delay" msgstr "" +"Ungültige Felder für die Erzeugung eines Kalenders für %s, es fehlt ein Ende " +"Datum oder ein Ende Verzögerung Datum" #. module: base #: field:workflow.activity,action:0 @@ -12754,7 +12843,7 @@ msgstr "Folgenart" #. module: base #: view:res.partner:0 msgid "Mobile:" -msgstr "" +msgstr "Mobile:" #. module: base #: code:addons/base/res/res_bank.py:195 @@ -12907,7 +12996,7 @@ msgstr "Bürobedarf" #. module: base #: field:ir.attachment,res_model:0 msgid "Resource Model" -msgstr "" +msgstr "Datenmodell" #. module: base #: code:addons/custom.py:555 @@ -12981,7 +13070,7 @@ msgstr "workflow" #. module: base #: view:ir.rule:0 msgid "Read Access Right" -msgstr "" +msgstr "Schreibe Benutzerrecht" #. module: base #: model:ir.module.module,shortdesc:base.module_analytic_user_function @@ -13085,7 +13174,7 @@ msgstr "Bundesland Bezeichnung" #. module: base #: help:ir.attachment,type:0 msgid "Binary File or URL" -msgstr "" +msgstr "Binärdatei oder URL" #. module: base #: code:addons/base/ir/ir_fields.py:313 @@ -13207,6 +13296,9 @@ msgid "" "Allow users to sign up through OAuth2 Provider.\n" "===============================================\n" msgstr "" +"\n" +"Erlauben Sie Benutzern, sich immer über einen OAuth2 Anbieter " +"einzuschreiben.\n" #. module: base #: field:change.password.user,user_id:0 @@ -13230,7 +13322,7 @@ msgstr "Puerto Rico" #. module: base #: model:ir.module.module,shortdesc:base.module_web_tests_demo msgid "Demonstration of web/javascript tests" -msgstr "" +msgstr "Demonstration der web/javasript Tests" #. module: base #: field:workflow.transition,signal:0 @@ -13301,7 +13393,7 @@ msgstr "" #. module: base #: field:res.users,partner_id:0 msgid "Related Partner" -msgstr "" +msgstr "zugehöriger Partner" #. module: base #: code:addons/osv.py:172 @@ -13338,13 +13430,13 @@ msgstr "Fertigungsabläufe" #. module: base #: view:base.language.export:0 msgid "Here is the exported translation file:" -msgstr "" +msgstr "Hier finden Sie die exportierte Übersetzung:" #. module: base #: field:ir.actions.report.xml,report_rml_content:0 #: field:ir.actions.report.xml,report_rml_content_data:0 msgid "RML Content" -msgstr "" +msgstr "RML Inhalte" #. module: base #: view:res.lang:0 @@ -13602,7 +13694,7 @@ msgstr "DIN A4" #. module: base #: view:res.config.installer:0 msgid "Configuration Installer" -msgstr "" +msgstr "Konfiguration Installer" #. module: base #: field:res.partner,customer:0 @@ -13613,7 +13705,7 @@ msgstr "Kunde" #: view:res.partner:0 #: view:res.users:0 msgid "e.g. +32.81.81.37.00" -msgstr "" +msgstr "z.B. +49.4471.84090000" #. module: base #: selection:base.language.install,lang:0 @@ -13628,6 +13720,16 @@ msgid "" "===================================================\n" " " msgstr "" +"\n" +"Diese Anwendung ergänzt ein PAD in allen Projekt Kanban Ansichten.\n" +"==========================================================\n" +" \n" +" repräsentiert einen Zeilenumbruch. Starten Sie hierzu einfach eine neue " +"Zeile in Ihrer Übersetzung.\n" +" repräsentiert ein Leerzeichen. Geben Sie einfach an der passenden Position " +"der Übersetzung ein \n" +"Leezeichen ein.\n" +" " #. module: base #: field:ir.actions.act_window,context:0 @@ -13669,7 +13771,7 @@ msgstr "Monat: %(month)s" #: model:ir.actions.client,name:base.modules_updates_act_cl #: model:ir.ui.menu,name:base.menu_module_updates msgid "Updates" -msgstr "" +msgstr "Aktualisierungen" #. module: base #: field:ir.actions.act_window.view,sequence:0 @@ -13740,7 +13842,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_account_check_writing msgid "Check Writing" -msgstr "" +msgstr "Scheck ausstellen" #. module: base #: model:ir.module.module,description:base.module_plugin_outlook @@ -14090,6 +14192,7 @@ msgstr "Benutzer Referenz" #, python-format msgid "'%s' does not seem to be a valid datetime for field '%%(field)s'" msgstr "" +"'%s' scheint kein gültiges Datum/Zeit für das Feld '%%(field)s' zu sein" #. module: base #: model:res.partner.bank.type.field,name:base.bank_normal_field_bic @@ -14460,7 +14563,7 @@ msgstr "Der Name der Gruppe muss eindeutig sein!" #. module: base #: help:ir.translation,module:0 msgid "Module this term belongs to" -msgstr "" +msgstr "Anwendung zu der diese Ausdrucksweise dazu gehört" #. module: base #: model:ir.module.module,description:base.module_web_view_editor @@ -14471,6 +14574,11 @@ msgid "" "\n" " " msgstr "" +"\n" +"OpenERP Web zur Bearbeitung von Ansichten\n" +"=======================================\n" +"\n" +" " #. module: base #: view:ir.sequence:0 @@ -14615,7 +14723,7 @@ msgstr "Adressenformat" #. module: base #: model:ir.model,name:base.model_change_password_user msgid "Change Password Wizard User" -msgstr "" +msgstr "Passwortänderung Assistent" #. module: base #: model:res.groups,name:base.group_no_one @@ -14684,7 +14792,7 @@ msgstr "Externe Identifikationen" #: code:addons/base/static/src/js/apps.js:103 #, python-format msgid "Showing locally available modules" -msgstr "" +msgstr "Anzeige der lokal verfügbaren Module" #. module: base #: selection:base.language.install,lang:0 @@ -14755,7 +14863,7 @@ msgstr "Bank" #: model:ir.module.category,name:base.module_category_point_of_sale #: model:ir.module.module,shortdesc:base.module_point_of_sale msgid "Point of Sale" -msgstr "" +msgstr "Point of Sale" #. module: base #: model:ir.module.module,description:base.module_mail @@ -15016,7 +15124,7 @@ msgstr "Filter für meine Dokumente" #. module: base #: model:ir.module.module,summary:base.module_project_gtd msgid "Personal Tasks, Contexts, Timeboxes" -msgstr "" +msgstr "Persönliche Aufgaben, Kontext, Zeitkonten" #. module: base #: model:ir.module.module,description:base.module_l10n_cr @@ -15119,7 +15227,7 @@ msgstr "Neukaledonien (franz.)" #. module: base #: field:ir.model,osv_memory:0 msgid "Transient Model" -msgstr "" +msgstr "Übergabemodelle" #. module: base #: model:res.country,name:base.cy @@ -15445,7 +15553,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_account_test msgid "Accounting Consistency Tests" -msgstr "" +msgstr "Buchhaltung Konsistenzprüfungen" #. module: base #: model:ir.module.module,description:base.module_purchase_double_validation @@ -15509,6 +15617,9 @@ msgid "" "128x128px image, with aspect ratio preserved. Use this field in form views " "or some kanban views." msgstr "" +"mittlere Bildgröße dieses Kontakts. Es wird vermutlich auf 128x128px Image " +"verändert unter Beibehaltung der Formate. Benutzen Sie das Feld in einfachen " +"Formularanzeigen oder Kanban Ansichten." #. module: base #: view:base.update.translations:0 @@ -15547,7 +15658,7 @@ msgstr "Startaktion" #: field:ir.model,modules:0 #: field:ir.model.fields,modules:0 msgid "In Modules" -msgstr "" +msgstr "In Anwendungen" #. module: base #: model:ir.module.module,shortdesc:base.module_contacts @@ -15758,6 +15869,9 @@ msgid "" "The user this filter is private to. When left empty the filter is public and " "available to all users." msgstr "" +"Der eingestellte Benutzer für diesen Filter ist nicht öffentlich. Wenn " +"dieses Feld leer bleibt, ist der Filter öffentlich und für alle Benutzer " +"verfügbar." #. module: base #: field:ir.actions.act_window,auto_refresh:0 @@ -15811,7 +15925,7 @@ msgstr "" #. module: base #: view:res.partner:0 msgid "Fax:" -msgstr "" +msgstr "Fax:" #. module: base #: selection:ir.ui.view,type:0 @@ -16573,7 +16687,7 @@ msgstr "Thailand" #. module: base #: model:ir.model,name:base.model_change_password_wizard msgid "Change Password Wizard" -msgstr "" +msgstr "Passwort ändern" #. module: base #: model:ir.module.module,summary:base.module_account_voucher @@ -16717,7 +16831,7 @@ msgstr "" #. module: base #: field:ir.ui.menu,parent_left:0 msgid "Parent Left" -msgstr "" +msgstr "Oberkonto Links" #. module: base #: model:ir.module.module,description:base.module_document_page @@ -16728,6 +16842,11 @@ msgid "" "Web pages\n" " " msgstr "" +"\n" +"Seiten\n" +"=====\n" +"Homepages\n" +" " #. module: base #: help:ir.actions.server,code:0 @@ -16818,7 +16937,7 @@ msgstr "Autom. Öffnen des Ansichtsformulars" #. module: base #: view:res.country:0 msgid "Address format..." -msgstr "" +msgstr "Adressformat" #. module: base #: model:ir.module.module,description:base.module_l10n_et @@ -16888,7 +17007,7 @@ msgstr "Export Einstellungen" #. module: base #: field:ir.actions.act_window,src_model:0 msgid "Source Model" -msgstr "" +msgstr "Quelle" #. module: base #: view:ir.sequence:0 @@ -16946,12 +17065,12 @@ msgstr "" "Schneller und einfacher Verkaufsprozess\n" "=================================\n" "\n" -"Diese Anwendung ermöglicht es Ihnen, Ihren Shop Verkäufe sehr einfach " -"mithilfe einer vollständig web-basierte Touchscreen-Schnittstelle zu " -"verwalten. Sie ist kompatibel mit allen Tablett PCs und dem iPad und bietet " -"mehrere Zahlungsmöglichkeiten. \n" +"Diese Anwendung ermöglicht Shop Verkäufe über eine vollständig web-basierte " +"Touchscreen-Benutzeroberfläche . \n" +"Sie ist kompatibel mit allen Tablett PCs und dem iPad und bietet mehrere " +"Zahlungsmöglichkeiten. \n" "\n" -"Produktauswahl kann auf verschiedene Weise erfolgen: \n" +"Eine Produktauswahl kann auf verschiedene Weise erfolgen: \n" "\n" "* Mit einem Barcode-Leser\n" "* Durchsuchen der Kategorien von Produkten oder über eine Volltextsuche\n" @@ -16959,12 +17078,12 @@ msgstr "" "Hauptfunktionen\n" "---------------------------\n" "* Schnelle Kodierung des Verkaufs\n" -"* Wählen Sie eine Zahlungsmethode (der schnelle Weg) oder teilen Sie die " -"Zahlung zwischen mehreren Zahlungsarten\n" -"* Berechnung der Menge an Geld, um zurückzugeben\n" +"* Wählen Sie eine Zahlungsmethode (z.B. Bar) oder teilen Sie die Zahlung auf " +"mehrere Zahlungsarten auf\n" +"* Berechnung des Wechselgeldes\n" "* automatische Erstellung und Bestätigung der Kommissionierung Liste\n" -"* Ermöglicht es dem Benutzer automatisch eine Rechnung zu erstellen\n" -"* Rückerstattung bisherigen Umsätze\n" +"* Automatische Rechnungserstellung\n" +"* Rückerstattung von bisherigen Umsätzen\n" " " #. module: base @@ -16977,6 +17096,10 @@ msgid "" "\n" "(Document type: %s, Operation: %s)" msgstr "" +"Der gewünschte Vorgang kann aufgrund Sicherheitsbeschränkungen nicht " +"ausgeführt werden. Bitte kontaktieren Sie den System Administrator.\n" +"\n" +"(Dokumenten Typ: %s, Vorgang: %s)" #. module: base #: model:ir.module.module,description:base.module_idea @@ -17016,6 +17139,8 @@ msgid "" "%s This might be '%s' in the current model, or a field of the same name in " "an o2m." msgstr "" +"%s Dieses kann '%s' aus dem aktuellen Modell sein, oder ein Feld des " +"gleichen Namens in einerm o2m Szenario." #. module: base #: model:ir.module.module,description:base.module_account_payment @@ -17356,7 +17481,7 @@ msgstr "" #: code:addons/base/ir/ir_model.py:165 #, python-format msgid "Model '%s' contains module data and cannot be removed!" -msgstr "" +msgstr "Modell '%s' beinhaltet Daten und kann nicht verschoben werden" #. module: base #: model:res.country,name:base.az @@ -17394,7 +17519,7 @@ msgstr "Parameter" #. module: base #: view:res.partner:0 msgid "e.g. Sales Director" -msgstr "" +msgstr "z.B. Verkaufsleiter" #. module: base #: selection:base.language.install,lang:0 @@ -17590,7 +17715,7 @@ msgstr "Automatische Installation" #. module: base #: view:base.language.import:0 msgid "e.g. en_US" -msgstr "" +msgstr "z.B. en_US" #. module: base #: model:ir.module.module,description:base.module_l10n_hn @@ -17827,7 +17952,7 @@ msgstr "Zustand" #: code:addons/base/module/module.py:669 #, python-format msgid "Module not found" -msgstr "" +msgstr "Anwendung wurde nicht gefunden" #. module: base #: help:res.currency,rate:0 @@ -17940,7 +18065,7 @@ msgstr "SXW Inhalt" #. module: base #: field:ir.attachment,file_size:0 msgid "File Size" -msgstr "" +msgstr "Datei Grösse" #. module: base #: help:ir.sequence,prefix:0 @@ -17982,12 +18107,12 @@ msgstr "Allgemeine Informationen" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_pt msgid "Portugal - Chart of Accounts" -msgstr "" +msgstr "Portugal - Kontenpläne" #. module: base #: field:ir.model.data,complete_name:0 msgid "Complete ID" -msgstr "" +msgstr "Vollständige ID" #. module: base #: model:ir.module.module,description:base.module_stock diff --git a/openerp/addons/base/i18n/he.po b/openerp/addons/base/i18n/he.po index 4d38b47ac82..f0aaa9ef36a 100644 --- a/openerp/addons/base/i18n/he.po +++ b/openerp/addons/base/i18n/he.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:36+0000\n" -"PO-Revision-Date: 2013-04-19 12:49+0000\n" +"PO-Revision-Date: 2013-04-21 10:53+0000\n" "Last-Translator: sef \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-04-20 06:48+0000\n" -"X-Generator: Launchpad (build 16567)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:08+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -100,7 +100,7 @@ msgstr "ממשק מסך מגע לחנויות" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll msgid "Indian Payroll" -msgstr "" +msgstr "משכורות הודיות" #. module: base #: help:ir.cron,model:0 @@ -143,7 +143,7 @@ msgstr "" #. module: base #: field:ir.actions.client,params:0 msgid "Supplementary arguments" -msgstr "" +msgstr "טיעונים\\משתנים משלימים" #. module: base #: model:ir.module.module,description:base.module_google_base_account @@ -152,11 +152,14 @@ msgid "" "The module adds google user in res user.\n" "========================================\n" msgstr "" +"\n" +"רכיב זה מוסיף משתמש גוגל in res user.\n" +"========================================\n" #. module: base #: help:res.partner,employee:0 msgid "Check this box if this contact is an Employee." -msgstr "" +msgstr "נא לסמן את התיבה אם אשת\\איש קשר זו עובד\\ת בחברה" #. module: base #: help:ir.model.fields,domain:0 @@ -237,7 +240,7 @@ msgstr "" #: code:addons/osv.py:151 #, python-format msgid "Constraint Error" -msgstr "" +msgstr "שגיאת אילוץ" #. module: base #: model:ir.model,name:base.model_ir_ui_view_custom @@ -408,6 +411,14 @@ msgid "" "invoices from picking, OpenERP is able to add and compute the shipping " "line.\n" msgstr "" +"\n" +"מאפשר הוספת שיטות משלוח להזמנה ובחירתן\n" +"==============================================================\n" +"\n" +"You can define your own carrier and delivery grids for prices. When creating " +"\n" +"invoices from picking, OpenERP is able to add and compute the shipping " +"line.\n" #. module: base #: code:addons/base/ir/ir_filters.py:80 @@ -485,7 +496,7 @@ msgstr "קבוצה" msgid "" "Invalid date/time format directive specified. Please refer to the list of " "allowed directives, displayed when you edit a language." -msgstr "" +msgstr "פורמט תאריך\\שעה לא תקין. נא להיעזר בהנחיות המוצגות בעריכת שפה." #. module: base #: code:addons/orm.py:4153 @@ -507,7 +518,7 @@ msgstr "" #. module: base #: field:ir.model.relation,name:0 msgid "Relation Name" -msgstr "" +msgstr "שם היחס" #. module: base #: view:ir.rule:0 @@ -578,6 +589,16 @@ msgid "" "that have no counterpart in the general financial accounts.\n" " " msgstr "" +"\n" +"רכיב להגדרת עצמים לחישובי עלות (Analytic Accounts).\n" +"===============================================\n" +"\n" +"In OpenERP, analytic accounts are linked to general accounts but are " +"treated\n" +"totally independently. So, you can enter various different analytic " +"operations\n" +"that have no counterpart in the general financial accounts.\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_idea @@ -850,7 +871,7 @@ msgstr "" #. module: base #: model:res.country,name:base.jo msgid "Jordan" -msgstr "Jordan" +msgstr "ירדן" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_hr @@ -870,7 +891,7 @@ msgstr "ir.ui.view" #. module: base #: model:res.country,name:base.er msgid "Eritrea" -msgstr "Eritrea" +msgstr "אריתריאה" #. module: base #: sql_constraint:res.company:0 @@ -989,7 +1010,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_crm_config_opportunity msgid "Opportunities" -msgstr "" +msgstr "הזדמנויות" #. module: base #: model:ir.model,name:base.model_base_language_export @@ -1005,6 +1026,7 @@ msgstr "Papua New Guinea" #: help:ir.actions.report.xml,report_type:0 msgid "Report Type, e.g. pdf, html, raw, sxw, odt, html2html, mako2html, ..." msgstr "" +"סוג (פורמט) הדו\"ח, כגון: pdf, html, raw, sxw, odt, html2html, mako2html..." #. module: base #: model:ir.module.module,shortdesc:base.module_document_webdav @@ -1025,7 +1047,7 @@ msgstr "" #. module: base #: view:res.partner:0 msgid "My Partners" -msgstr "" +msgstr "השותפים שלי" #. module: base #: model:res.country,name:base.zw @@ -1041,7 +1063,7 @@ msgstr "" #. module: base #: view:ir.actions.report.xml:0 msgid "XML Report" -msgstr "" +msgstr "דו\"ח XML" #. module: base #: model:res.country,name:base.es @@ -1057,7 +1079,7 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_base_module_upgrade msgid "Module Upgrade" -msgstr "" +msgstr "שדרוג הרכיב" #. module: base #: view:res.bank:0 @@ -1308,6 +1330,8 @@ msgid "" "Language with code \"%s\" is not defined in your system !\n" "Define it through the Administration menu." msgstr "" +"שפה עם קוד \"%s\" אינה מוגדרת במערכת שלך!\n" +"הגדר אותה באמצעות תפריט הניהול." #. module: base #: model:res.country,name:base.gu @@ -1344,7 +1368,7 @@ msgstr "מדומה" #. module: base #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "XML לא בתוקף להצגת ארכיטקטורה" +msgstr "XML לא חוקי להצגת ארכיטקטורה" #. module: base #: model:res.country,name:base.ky @@ -2661,7 +2685,7 @@ msgstr "שער נוכחי" #. module: base #: selection:base.language.install,lang:0 msgid "Greek / Ελληνικά" -msgstr "" +msgstr "יוונית / Ελληνικά" #. module: base #: field:res.company,custom_footer:0 @@ -5752,7 +5776,7 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_base_language_import msgid "Language Import" -msgstr "" +msgstr "ייבוא שפה" #. module: base #: help:workflow.transition,act_from:0 @@ -8003,7 +8027,7 @@ msgstr "" #: code:addons/base/res/res_users.py:473 #, python-format msgid "Setting empty passwords is not allowed for security reasons!" -msgstr "" +msgstr "לא ניתן להגדיר סיסמה ריקה מטעמי אבטחה !" #. module: base #: help:ir.mail_server,smtp_pass:0 @@ -11139,7 +11163,7 @@ msgstr "הערה" #: field:ir.rule,domain_force:0 #: field:res.partner.title,domain:0 msgid "Domain" -msgstr "מתחם" +msgstr "שם-מתחם (דומיין)" #. module: base #: code:addons/base/ir/ir_fields.py:166 diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po index 3220b27287c..339e5bc7599 100644 --- a/openerp/addons/base/i18n/zh_CN.po +++ b/openerp/addons/base/i18n/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-03-07 08:36+0000\n" -"PO-Revision-Date: 2013-04-20 06:45+0000\n" -"Last-Translator: Qian Jin \n" +"PO-Revision-Date: 2013-04-22 08:15+0000\n" +"Last-Translator: Joshua Jan(SHINEIT) \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-04-21 05:32+0000\n" -"X-Generator: Launchpad (build 16567)\n" +"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -12341,7 +12341,7 @@ msgstr "报表类型" #: view:res.partner.bank:0 #: view:res.users:0 msgid "State" -msgstr "状态" +msgstr "省" #. module: base #: selection:base.language.install,lang:0 From 200257ab895e993bfc6815eaf15d1968b1839c28 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 23 Apr 2013 11:16:26 +0200 Subject: [PATCH 27/87] [FIX] hr_payroll: do not crash when duplicating a payroll structure (because of both classes with same name in the .py) + added recursion check bzr revid: qdp-launchpad@openerp.com-20130423091626-02475bdw67wdmhd1 --- addons/hr_payroll/hr_payroll.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py index b711ed1a9c4..5fd74ff9fe0 100644 --- a/addons/hr_payroll/hr_payroll.py +++ b/addons/hr_payroll/hr_payroll.py @@ -51,6 +51,7 @@ class hr_payroll_structure(osv.osv): 'note': fields.text('Description'), 'parent_id':fields.many2one('hr.payroll.structure', 'Parent'), 'children_ids':fields.one2many('hr.payroll.structure', 'parent_id', 'Children'), + 'rule_ids':fields.many2many('hr.salary.rule', 'hr_structure_salary_rule_rel', 'struct_id', 'rule_id', 'Salary Rules'), } def _get_parent(self, cr, uid, context=None): @@ -68,6 +69,10 @@ class hr_payroll_structure(osv.osv): 'parent_id': _get_parent, } + _constraints = [ + (osv.osv._check_recursion, 'Error ! You cannot create a recursive Salary Structure.', ['parent_id']) + ] + def copy(self, cr, uid, id, default=None, context=None): """ Create a new record in hr_payroll_structure model from existing one @@ -951,14 +956,6 @@ class hr_payslip_line(osv.osv): hr_payslip_line() -class hr_payroll_structure(osv.osv): - - _inherit = 'hr.payroll.structure' - _columns = { - 'rule_ids':fields.many2many('hr.salary.rule', 'hr_structure_salary_rule_rel', 'struct_id', 'rule_id', 'Salary Rules'), - } - -hr_payroll_structure() class hr_employee(osv.osv): ''' From 8590e68b2b399394c8b0541e885949fc40bca898 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 23 Apr 2013 11:25:20 +0200 Subject: [PATCH 28/87] [FIX] im: small graphical bug when we click on an already opened contact bzr revid: nicolas.vanhoren@openerp.com-20130423092520-hoqpi01li03yjmrm --- addons/im/static/src/js/im.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/im/static/src/js/im.js b/addons/im/static/src/js/im.js index 547ee2c3026..b21a339cb84 100644 --- a/addons/im/static/src/js/im.js +++ b/addons/im/static/src/js/im.js @@ -450,6 +450,8 @@ openerp.im = function(instance) { }, focus: function() { this.$(".oe_im_chatview_input").focus(); + if (! this.shown) + this.show_hide(); }, destroy: function() { this.user.remove_watcher(); From a98ae1d75397dbc94264155c1299eb46fd0d3d90 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 23 Apr 2013 12:37:06 +0200 Subject: [PATCH 29/87] [IMP/FIX] ir_model_data: added check_object_reference() in order to return a value only if the uid has read access on the targeted object. It avoids raising access rights errors further in the process and prevents duplicating that same code in all addons bzr revid: qdp-launchpad@openerp.com-20130423103706-u4wk2y65kam587c6 --- openerp/addons/base/ir/ir_model.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 9e7697c1bbb..6edb5a70d0a 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -866,11 +866,22 @@ class ir_model_data(osv.osv): def get_object_reference(self, cr, uid, module, xml_id): """Returns (model, res_id) corresponding to a given module and xml_id (cached) or raise ValueError if not found""" data_id = self._get_id(cr, uid, module, xml_id) + #assuming data_id is not False, as it was checked upstream res = self.read(cr, uid, data_id, ['model', 'res_id']) if not res['res_id']: raise ValueError('No such external ID currently defined in the system: %s.%s' % (module, xml_id)) return res['model'], res['res_id'] + def check_object_reference(self, cr, uid, module, xml_id): + """Returns (model, res_id) corresponding to a given module and xml_id (cached), if and only if the user has the necessary access rights + to see that object, otherwise raise ValueError""" + model, res_id = self.get_object_reference(cr, uid, module, xml_id) + #search on id found in result to check if current user has read access right + check_right = self.pool.get(model).search(cr, uid, [('id', '=', res_id)]) + if check_right: + return model, res_id + raise ValueError('Not enough access rights on the external ID: %s.%s' % (module, xml_id)) + def get_object(self, cr, uid, module, xml_id, context=None): """Returns a browsable record for the given module name and xml_id or raise ValueError if not found""" res_model, res_id = self.get_object_reference(cr, uid, module, xml_id) From e5736828f9eaa9de22360b52f6c31267cc2ee892 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Tue, 23 Apr 2013 14:41:51 +0200 Subject: [PATCH 30/87] [REVERT] revert commit fme@openerp.com-20130418171750-7oldgiewo1eewxk7: do not break stable API !!! bzr revid: chs@openerp.com-20130423124151-h025b891xp77flg3 --- addons/web/controllers/main.py | 24 +- addons/web/http.py | 60 +--- addons/web/tests/__init__.py | 3 +- addons/web/tests/test_dispatch.py | 373 ------------------------- addons/web_diagram/controllers/main.py | 7 +- 5 files changed, 22 insertions(+), 445 deletions(-) delete mode 100644 addons/web/tests/test_dispatch.py diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 47498752c24..01126694059 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*- + import ast import base64 import csv import glob import itertools +import logging import operator import datetime import hashlib @@ -28,6 +30,7 @@ except ImportError: xlwt = None import openerp +import openerp.modules.registry from openerp.tools.translate import _ from .. import http @@ -1436,8 +1439,7 @@ class Action(openerpweb.Controller): else: return False - -class Export(openerpweb.Controller): +class Export(View): _cp_path = "/web/export" @openerpweb.jsonrequest @@ -1578,13 +1580,7 @@ class Export(openerpweb.Controller): (prefix + '/' + k, prefix_string + '/' + v) for k, v in self.fields_info(req, model, export_fields).iteritems()) - -class ExportFormat(object): - """ - Superclass for export formats, should probably be an abc and have a way to - generate _cp_path from fmt but it's a pain to deal with conflicts with - ControllerType - """ + #noinspection PyPropertyDefinition @property def content_type(self): """ Provides the format's content type """ @@ -1625,14 +1621,14 @@ class ExportFormat(object): else: columns_headers = [val['label'].strip() for val in fields] + return req.make_response(self.from_data(columns_headers, import_data), headers=[('Content-Disposition', content_disposition(self.filename(model), req)), ('Content-Type', self.content_type)], cookies={'fileToken': int(token)}) - -class CSVExport(ExportFormat, http.Controller): +class CSVExport(Export): _cp_path = '/web/export/csv' fmt = {'tag': 'csv', 'label': 'CSV'} @@ -1667,8 +1663,7 @@ class CSVExport(ExportFormat, http.Controller): fp.close() return data - -class ExcelExport(ExportFormat, http.Controller): +class ExcelExport(Export): _cp_path = '/web/export/xls' fmt = { 'tag': 'xls', @@ -1707,8 +1702,7 @@ class ExcelExport(ExportFormat, http.Controller): fp.close() return data - -class Reports(openerpweb.Controller): +class Reports(View): _cp_path = "/web/report" POLLING_DELAY = 0.25 TYPES_MAPPING = { diff --git a/addons/web/http.py b/addons/web/http.py index 7f99d27bd04..d12cdfb13a1 100644 --- a/addons/web/http.py +++ b/addons/web/http.py @@ -355,64 +355,18 @@ def httprequest(f): #---------------------------------------------------------- addons_module = {} addons_manifest = {} -controllers_class = {} +controllers_class = [] +controllers_object = {} controllers_path = {} class ControllerType(type): def __init__(cls, name, bases, attrs): super(ControllerType, cls).__init__(name, bases, attrs) - # Only for root "Controller" - if bases == (object,): - assert name == 'Controller' - return - - path = attrs.get('_cp_path') - if Controller in bases: - assert path, "Controller subclass %s missing a _cp_path" % name - else: - parent_paths = set(base._cp_path for base in bases - if issubclass(base, Controller)) - assert len(parent_paths) == 1,\ - "%s inheriting from multiple controllers is not supported" % ( - name) - [parent_path] = parent_paths - [parent] = [ - controller for controller in controllers_class.itervalues() - if controller._cp_path == parent_path] - - # inherit from a Controller subclass - if path: - # if extending in place with same URL, ignore URL - if parent_path == path: - _logger.warn( - "Controller %s extending %s in-place should not " - "explicitly specify URL", name, parent) - return - _logger.warn("Re-exposing %s at %s.\n" - "\tThis usage is unsupported.", - parent.__name__, - attrs['_cp_path']) - - if path: - assert path not in controllers_class,\ - "Trying to expose %s at the same URL as %s" % ( - name, controllers_class[path]) - controllers_class[path] = cls - + controllers_class.append(("%s.%s" % (cls.__module__, cls.__name__), cls)) class Controller(object): __metaclass__ = ControllerType - def __new__(cls, *args, **kwargs): - subclasses = [c for c in cls.__subclasses__() - if c._cp_path == cls._cp_path] - if subclasses: - name = "%s (+%s)" % ( - cls.__name__, - '+'.join(sub.__name__ for sub in subclasses)) - cls = type(name, tuple(reversed(subclasses)), {}) - return object.__new__(cls) - #---------------------------------------------------------- # Session context manager #---------------------------------------------------------- @@ -612,8 +566,12 @@ class Root(object): addons_manifest[module] = manifest self.statics['/%s/static' % module] = path_static - for c in controllers_class.itervalues(): - controllers_path[c._cp_path] = c() + for k, v in controllers_class: + if k not in controllers_object: + o = v() + controllers_object[k] = o + if hasattr(o, '_cp_path'): + controllers_path[o._cp_path] = o app = werkzeug.wsgi.SharedDataMiddleware(self.dispatch, self.statics) self.dispatch = DisableCacheMiddleware(app) diff --git a/addons/web/tests/__init__.py b/addons/web/tests/__init__.py index 2734bd45ddb..d7abb8e5a8c 100644 --- a/addons/web/tests/__init__.py +++ b/addons/web/tests/__init__.py @@ -1,10 +1,9 @@ # -*- coding: utf-8 -*- -from . import test_dataset, test_menu, test_serving_base, test_js, test_dispatch +from . import test_dataset, test_menu, test_serving_base, test_js fast_suite = [] checks = [ test_dataset, test_menu, test_serving_base, - test_dispatch, ] diff --git a/addons/web/tests/test_dispatch.py b/addons/web/tests/test_dispatch.py deleted file mode 100644 index b532cebac44..00000000000 --- a/addons/web/tests/test_dispatch.py +++ /dev/null @@ -1,373 +0,0 @@ -# -*- coding: utf-8 -*- -import contextlib -import json -import logging -import logging.handlers -import types -import unittest2 - -from .. import http -import werkzeug.test - - -def setUpModule(): - """ - Force load_addons once to import all the crap we don't care for as this - thing is full of side-effects - """ - http.Root().load_addons() - -class DispatchCleanup(unittest2.TestCase): - """ - Cleans up controllers registries in the web client so it's possible to - test controllers registration and dispatching in isolation. - """ - def setUp(self): - self.classes = http.controllers_class - self.paths = http.controllers_path - - http.controllers_class = {} - http.controllers_path = {} - - def tearDown(self): - http.controllers_path = self.paths - http.controllers_class = self.classes - - -def jsonrpc_body(params=None): - """ - Builds and dumps the body of a JSONRPC request with params ``params`` - """ - return json.dumps({ - 'jsonrpc': '2.0', - 'method': 'call', - 'id': None, - 'params': params or {}, - }) - - -def jsonrpc_response(result=None): - """ - Builds a JSONRPC response (as a Python dict) with result ``result`` - """ - return { - u'jsonrpc': u'2.0', - u'id': None, - u'result': result, - } - - -class TestHandler(logging.handlers.BufferingHandler): - def __init__(self): - logging.handlers.BufferingHandler.__init__(self, 0) - - def shouldFlush(self, record): - return False - -@contextlib.contextmanager -def capture_logging(logger, level=logging.DEBUG): - logger = logging.getLogger(logger) - old_level = logger.level - old_handlers = logger.handlers - old_propagate = logger.propagate - - test_handler = TestHandler() - logger.handlers = [test_handler] - logger.setLevel(level) - logger.propagate = False - - try: - yield test_handler - finally: - logger.propagate = old_propagate - logger.setLevel(old_level) - logger.handlers = old_handlers - - -class TestDispatching(DispatchCleanup): - def setUp(self): - super(TestDispatching, self).setUp() - self.app = http.Root() - self.client = werkzeug.test.Client(self.app) - - def test_not_exposed(self): - class CatController(http.Controller): - _cp_path = '/cat' - - def index(self): - return 'Blessid iz da feline' - - self.app.load_addons() - - body, status, headers = self.client.get('/cat') - self.assertEqual('404 NOT FOUND', status) - - def test_basic_http(self): - class CatController(http.Controller): - _cp_path = '/cat' - - @http.httprequest - def index(self, req): - return 'no walk in counsil of wickid,' - - self.app.load_addons() - - body, status, headers = self.client.get('/cat') - self.assertEqual('200 OK', status) - self.assertEqual('no walk in counsil of wickid,', ''.join(body)) - - def test_basic_jsonrpc(self): - class CatController(http.Controller): - _cp_path = '/cat' - - @http.jsonrequest - def index(self, req): - return 'no place paws in path of da sinnerz,' - self.app.load_addons() - - body, status, headers = self.client.post('/cat', data=jsonrpc_body()) - - self.assertEqual('200 OK', status) - self.assertEqual( - jsonrpc_response('no place paws in path of da sinnerz,'), - json.loads(''.join(body))) - - -class TestSubclassing(DispatchCleanup): - def setUp(self): - super(TestSubclassing, self).setUp() - self.app = http.Root() - self.client = werkzeug.test.Client(self.app) - - def test_add_method(self): - class CatController(http.Controller): - _cp_path = '/cat' - - @http.httprequest - def index(self, req): - return 'no sit and purr with da mockerz.' - - class CeilingController(CatController): - @http.httprequest - def lol(self, req): - return 'But der delightz in lawz of Ceiling Cat,' - - self.app.load_addons() - - body, status, headers = self.client.get('/cat') - self.assertEqual('200 OK', status) - self.assertEqual('no sit and purr with da mockerz.', ''.join(body)) - body, status, headers = self.client.get('/cat/lol') - self.assertEqual('200 OK', status) - self.assertEqual('But der delightz in lawz of Ceiling Cat,', - ''.join(body)) - - def test_override_method(self): - class CatController(http.Controller): - _cp_path = '/cat' - - @http.httprequest - def index(self, req): - return 'an ponderz' - - class CeilingController(CatController): - @http.httprequest - def index(self, req): - return '%s much.' % super(CeilingController, self).index(req) - - self.app.load_addons() - - body, status, headers = self.client.get('/cat') - self.assertEqual('200 OK', status) - self.assertEqual('an ponderz much.', ''.join(body)) - - def test_make_invisible(self): - class CatController(http.Controller): - _cp_path = '/cat' - - @http.httprequest - def index(self, req): - return 'Tehy liek treez bai teh waterz,' - - class CeilingController(CatController): - def index(self, req): - return super(CeilingController, self).index(req) - - self.app.load_addons() - - body, status, headers = self.client.get('/cat') - self.assertEqual('404 NOT FOUND', status) - - def test_make_json_invisible(self): - class CatController(http.Controller): - _cp_path = '/cat' - - @http.jsonrequest - def index(self, req): - return 'Tehy liek treez bai teh waterz,' - - class CeilingController(CatController): - def index(self, req): - return super(CeilingController, self).index(req) - - self.app.load_addons() - - body, status, headers = self.client.post('/cat') - self.assertEqual('404 NOT FOUND', status) - - def test_extends(self): - """ - When subclassing an existing Controller new classes are "merged" into - the base one - """ - class A(http.Controller): - _cp_path = '/foo' - @http.httprequest - def index(self, req): - return '1' - - class B(A): - @http.httprequest - def index(self, req): - return "%s 2" % super(B, self).index(req) - - class C(A): - @http.httprequest - def index(self, req): - return "%s 3" % super(C, self).index(req) - - self.app.load_addons() - - body, status, headers = self.client.get('/foo') - self.assertEqual('200 OK', status) - self.assertEqual('1 2 3', ''.join(body)) - - def test_extends_same_path(self): - """ - When subclassing an existing Controller and specifying the same - _cp_path as the parent, ??? - """ - class A(http.Controller): - _cp_path = '/foo' - @http.httprequest - def index(self, req): - return '1' - - class B(A): - _cp_path = '/foo' - @http.httprequest - def index(self, req): - return '2' - - self.app.load_addons() - - body, status, headers = self.client.get('/foo') - self.assertEqual('200 OK', status) - self.assertEqual('2', ''.join(body)) - - def test_re_expose(self): - """ - An existing Controller should not be extended with a new cp_path - (re-exposing somewhere else) - """ - class CatController(http.Controller): - _cp_path = '/cat' - - @http.httprequest - def index(self, req): - return '[%s]' % self.speak() - - def speak(self): - return 'Yu ordered cheezburgerz,' - - with capture_logging('openerp.addons.web.http') as handler: - class DogController(CatController): - _cp_path = '/dog' - - def speak(self): - return 'Woof woof woof woof' - - [record] = handler.buffer - self.assertEqual(logging.WARN, record.levelno) - self.assertEqual("Re-exposing CatController at /dog.\n" - "\tThis usage is unsupported.", - record.getMessage()) - - def test_fail_redefine(self): - """ - An existing Controller can't be overwritten by a new one on the same - path (? or should this generate a warning and still work as if it was - an extend?) - """ - class FooController(http.Controller): - _cp_path = '/foo' - - with self.assertRaises(AssertionError): - class BarController(http.Controller): - _cp_path = '/foo' - - def test_fail_no_path(self): - """ - A Controller must have a path (and thus be exposed) - """ - with self.assertRaises(AssertionError): - class FooController(http.Controller): - pass - - def test_mixin(self): - """ - Can mix "normal" python classes into a controller directly - """ - class Mixin(object): - @http.httprequest - def index(self, req): - return 'ok' - - class FooController(http.Controller, Mixin): - _cp_path = '/foo' - - class BarContoller(Mixin, http.Controller): - _cp_path = '/bar' - - self.app.load_addons() - - body, status, headers = self.client.get('/foo') - self.assertEqual('200 OK', status) - self.assertEqual('ok', ''.join(body)) - - body, status, headers = self.client.get('/bar') - self.assertEqual('200 OK', status) - self.assertEqual('ok', ''.join(body)) - - def test_mixin_extend(self): - """ - Can mix "normal" python class into a controller by extension - """ - class FooController(http.Controller): - _cp_path = '/foo' - - class M1(object): - @http.httprequest - def m1(self, req): - return 'ok 1' - - class M2(object): - @http.httprequest - def m2(self, req): - return 'ok 2' - - class AddM1(FooController, M1): - pass - - class AddM2(M2, FooController): - pass - - self.app.load_addons() - - body, status, headers = self.client.get('/foo/m1') - self.assertEqual('200 OK', status) - self.assertEqual('ok 1', ''.join(body)) - - body, status, headers = self.client.get('/foo/m2') - self.assertEqual('200 OK', status) - self.assertEqual('ok 2', ''.join(body)) diff --git a/addons/web_diagram/controllers/main.py b/addons/web_diagram/controllers/main.py index 2efaab7183d..c598a7e4652 100644 --- a/addons/web_diagram/controllers/main.py +++ b/addons/web_diagram/controllers/main.py @@ -1,10 +1,9 @@ -from openerp.addons.web.http import Controller, jsonrequest +import openerp - -class Diagram(Controller): +class DiagramView(openerp.addons.web.controllers.main.View): _cp_path = "/web_diagram/diagram" - @jsonrequest + @openerp.addons.web.http.jsonrequest def get_diagram_info(self, req, id, model, node, connector, src_node, des_node, label, **kw): From 2e4aafa7dc26981066df7f7fa648241e6d13fd5e Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 23 Apr 2013 15:06:56 +0200 Subject: [PATCH 31/87] [FIX] res.partner: proper store trigger for display name field That was a stupid oversight, sorry! bzr revid: odo@openerp.com-20130423130656-celrtr352yht19ro --- addons/account_report_company/account_report_company.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account_report_company/account_report_company.py b/addons/account_report_company/account_report_company.py index 0c102fcc4e1..eacee60e13c 100644 --- a/addons/account_report_company/account_report_company.py +++ b/addons/account_report_company/account_report_company.py @@ -30,7 +30,7 @@ class res_partner(osv.Model): _display_name_store_triggers = { 'res.partner': (lambda self,cr,uid,ids,context=None: self.search(cr, uid, [('id','child_of',ids)]), - ['parent_id', 'is_company'], 10) + ['parent_id', 'is_company', 'name'], 10) } # indirection to avoid passing a copy of the overridable method when declaring the function field From 6d9ae761cdc5b5b4599c0fbe1a63265f930ff8b9 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 23 Apr 2013 14:28:20 +0200 Subject: [PATCH 32/87] [FIX] hr_timesheet: return default values for journal and product only if the uid has the read access on it (multi-company) thanks to a new method on ir.model.data: check_object_reference() bzr revid: qdp-launchpad@openerp.com-20130423122820-9gf2i4iic5bqr8g6 --- addons/hr_timesheet/hr_timesheet.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py index 6a538e5d09c..461507f9e41 100644 --- a/addons/hr_timesheet/hr_timesheet.py +++ b/addons/hr_timesheet/hr_timesheet.py @@ -37,8 +37,8 @@ class hr_employee(osv.osv): def _getAnalyticJournal(self, cr, uid, context=None): md = self.pool.get('ir.model.data') try: - result = md.get_object_reference(cr, uid, 'hr_timesheet', 'analytic_journal') - return result[1] + dummy, res_id = md.check_object_reference(cr, uid, 'hr_timesheet', 'analytic_journal') + return res_id except ValueError: pass return False @@ -46,8 +46,8 @@ class hr_employee(osv.osv): def _getEmployeeProduct(self, cr, uid, context=None): md = self.pool.get('ir.model.data') try: - result = md.get_object_reference(cr, uid, 'product', 'product_product_consultant') - return result[1] + dummy, res_id = md.check_object_reference(cr, uid, 'product', 'product_product_consultant') + return res_id except ValueError: pass return False From 7e462604747f4f9bd8668732b9cdae72d8613fd2 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 23 Apr 2013 14:57:31 +0200 Subject: [PATCH 33/87] [FIX] account: modified the constraint on account.move.reconcile in order to allow the reconciliation to be made on different partners if it doesn't concern a payable or receivable account bzr revid: qdp-launchpad@openerp.com-20130423125731-dblhpx7zz4q9x464 --- addons/account/account.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account/account.py b/addons/account/account.py index 9cc6023375e..58c4cf447ef 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -1680,7 +1680,7 @@ class account_move_reconcile(osv.osv): elif reconcile.line_partial_ids: first_partner = reconcile.line_partial_ids[0].partner_id.id move_lines = reconcile.line_partial_ids - if any([line.partner_id.id != first_partner for line in move_lines]): + if any([(line.account_id.type in ('receivable', 'payable') and line.partner_id.id != first_partner) for line in move_lines]): return False return True From 2bc4260c545dca24a1ea4f92dd52ac548a577b0e Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 23 Apr 2013 15:50:28 +0200 Subject: [PATCH 34/87] [FIX] account_voucher: fix in amount_currency computation when the rate is specified on the voucher and the voucher is in the company currency bzr revid: qdp-launchpad@openerp.com-20130423135028-70887smme8mxv0tn --- addons/account_voucher/account_voucher.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index dd8bb157067..9e0e7e5b167 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -1167,8 +1167,13 @@ class account_voucher(osv.osv): amount_currency = sign * (line.amount) elif line.move_line_id.currency_id.id == voucher_brw.payment_rate_currency_id.id: # if the rate is specified on the voucher, we must use it - voucher_rate = currency_obj.browse(cr, uid, voucher_currency, context=ctx).rate - amount_currency = (move_line['debit'] - move_line['credit']) * voucher_brw.payment_rate * voucher_rate + payment_rate = voucher_brw.payment_rate + if voucher_currency != company_currency: + #if the voucher currency is not the company currency, we need to consider the rate of the line's currency + voucher_rate = currency_obj.browse(cr, uid, voucher_currency, context=ctx).rate + payment_rate = voucher_rate * payment_rate + amount_currency = (move_line['debit'] - move_line['credit']) * payment_rate + else: # otherwise we use the rates of the system (giving the voucher date in the context) amount_currency = currency_obj.compute(cr, uid, company_currency, line.move_line_id.currency_id.id, move_line['debit']-move_line['credit'], context=ctx) From 764b3181434e2f8d2d0915809db1f788ace89904 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 23 Apr 2013 16:09:42 +0200 Subject: [PATCH 35/87] [IMP] view_form: FieldStatus, calc_domain: if there is no domain defined, fetch all the records bzr revid: chm@openerp.com-20130423140942-lu1cakf0a0rgf9pf --- addons/web/static/src/js/view_form.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 1e69df1e6d1..975262c9c5c 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -5306,7 +5306,15 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ }, calc_domain: function() { var d = instance.web.pyeval.eval('domain', this.build_domain()); - this.set("evaluated_selection_domain", ['|', ['id', '=', this.get('value')]].concat(d)); + var domain = []; //if there is no domain defined, fetch all the records + + if (d.length) { + domain = ['|',['id', '=', this.get('value')]].concat(d); + } + + if (! _.isEqual(domain, this.get("evaluated_selection_domain"))) { + this.set("evaluated_selection_domain", domain); + } }, /** Get the selection and render it * selection: [[identifier, value_to_display], ...] From e13dc082e5f58f1bbaed3625e53ff1afb422562a Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 23 Apr 2013 16:49:48 +0200 Subject: [PATCH 36/87] [REV] revert revision 9056 that was deleting a whole wizard. The patch is good but not applicable as it in the v7 bzr revid: qdp-launchpad@openerp.com-20130423144948-unekni1ztjwv71fb --- .../account_analytic_analysis.py | 32 +++------- .../account_analytic_analysis_view.xml | 4 +- addons/hr_timesheet_invoice/__openerp__.py | 1 + .../test/test_hr_timesheet_invoice.yml | 17 ++++- .../test_hr_timesheet_invoice_no_prod_tax.yml | 17 ++++- .../hr_timesheet_invoice/wizard/__init__.py | 1 + .../hr_timesheet_final_invoice_create.py | 63 +++++++++++++++++++ ...hr_timesheet_invoice_create_final_view.xml | 52 +++++++++++++++ 8 files changed, 160 insertions(+), 27 deletions(-) create mode 100644 addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py create mode 100644 addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py index 89e39c71660..a187f9452f5 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis.py +++ b/addons/account_analytic_analysis/account_analytic_analysis.py @@ -206,14 +206,17 @@ class account_analytic_account(osv.osv): return res if child_ids: - #Search all invoice lines not in cancelled state that refer to this analytic account - inv_line_obj = self.pool.get("account.invoice.line") - inv_lines = inv_line_obj.search(cr, uid, ['&', ('account_analytic_id', 'in', child_ids), ('invoice_id.state', '!=', 'cancel')], context=context) - for line in inv_line_obj.browse(cr, uid, inv_lines, context=context): - res[line.account_analytic_id.id] += line.price_subtotal + cr.execute("SELECT account_analytic_line.account_id, COALESCE(SUM(amount), 0.0) \ + FROM account_analytic_line \ + JOIN account_analytic_journal \ + ON account_analytic_line.journal_id = account_analytic_journal.id \ + WHERE account_analytic_line.account_id IN %s \ + AND account_analytic_journal.type = 'sale' \ + GROUP BY account_analytic_line.account_id", (child_ids,)) + for account_id, sum in cr.fetchall(): + res[account_id] = round(sum,2) for acc in self.browse(cr, uid, res.keys(), context=context): res[acc.id] = res[acc.id] - (acc.timesheet_ca_invoiced or 0.0) - res_final = res return res_final @@ -540,23 +543,6 @@ class account_analytic_account(osv.osv): pass return result - - def hr_to_invoice_timesheets(self, cr, uid, ids, context=None): - domain = [('invoice_id','=',False),('to_invoice','!=',False), ('journal_id.type', '=', 'general'), ('account_id', 'in', ids)] - names = [record.name for record in self.browse(cr, uid, ids, context=context)] - name = _('Timesheets to Invoice of %s') % ','.join(names) - return { - 'type': 'ir.actions.act_window', - 'name': name, - 'view_type': 'form', - 'view_mode': 'tree,form', - 'domain' : domain, - 'res_model': 'account.analytic.line', - 'nodestroy': True, - } - - - class account_analytic_account_summary_user(osv.osv): _name = "account_analytic_analysis.summary.user" _description = "Hours Summary by User" diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml index c70a2493be9..8d7a89e4622 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml +++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml @@ -98,8 +98,8 @@ -