From 301d63b8c96deece3084be319a2f99843f7823d2 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 28 Feb 2013 11:16:14 +0100 Subject: [PATCH 01/72] [WIP] wip , lots of troubles ! bzr revid: fme@openerp.com-20130228101614-zn4prwhi6zk0h13d --- addons/web/controllers/main.py | 3 +++ addons/web/static/src/js/chrome.js | 31 ++++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 247d6f5dd00..7758510ecba 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -535,6 +535,9 @@ class Home(openerpweb.Controller): @openerpweb.httprequest def index(self, req, s_action=None, db=None, **kw): + if not db: + # TODO: maybe redirect to ?db=xxx instead of implicit db set ?? + db = req.httprequest.cookies.get('last_db_login_success') js = "\n ".join('' % i for i in manifest_list(req, 'js', db=db)) css = "\n ".join('' % i for i in manifest_list(req, 'css', db=db)) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 6b16204932b..a207d37dd41 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -619,10 +619,19 @@ instance.web.Login = instance.web.Widget.extend({ self.$el.find('.oe_login_manage_db').click(function() { self.do_action("database_manager"); }); + self.on('change:database_selector', this, function() { + var params = $.deparam.querystring(); + params.db = self.get('database_selector'); + self.$('.oe_login_dbpane').empty().text(_t('Loading...')); + window.location = '/?' + $.param(params); + }); var d = $.when(); if ($.deparam.querystring().db) { self.params.db = $.deparam.querystring().db; } + if (self.params.db) { + self.selected_db = self.params.db; + } if ($.param.fragment().token) { self.params.token = $.param.fragment().token; } @@ -630,17 +639,22 @@ instance.web.Login = instance.web.Widget.extend({ if (self.params.db && self.params.login && self.params.password) { d = self.do_login(self.params.db, self.params.login, self.params.password); } else { - if (self.params.db) { - self.on_db_loaded([self.params.db]) - } else { + // TODO: removing following code breaks portal anonymous + //if (self.params.db) { + // self.on_db_loaded([self.params.db]) + //} else { d = self.rpc("/web/database/get_list", {}).done(self.on_db_loaded).fail(self.on_db_failed); - } + //} } return d; }, on_db_loaded: function (result) { + var self = this; this.db_list = result; this.$("[name=db]").replaceWith(QWeb.render('Login.dblist', { db_list: this.db_list, selected_db: this.selected_db})); + this.$('select[name=db]').on('change', function(ev) { + self.set('database_selector', $(this).val()); + }); if(this.db_list.length === 0) { this.do_action("database_manager"); } else if(this.db_list.length === 1) { @@ -680,6 +694,15 @@ instance.web.Login = instance.web.Widget.extend({ self.hide_error(); self.$(".oe_login_pane").fadeOut("slow"); return this.session.session_authenticate(db, login, password).then(function() { + // This cookie will be used server side in order to avoid db reloading on next visit + var ttl = 24 * 60 * 60 * 365; + document.cookie = [ + 'last_db_login_success=' + db, + 'path=/', + 'max-age=' + ttl, + 'expires=' + new Date(new Date().getTime() + ttl * 1000).toGMTString() + ].join(';'); + if (self.has_local_storage) { if(self.remember_credentials) { localStorage.setItem('last_db_login_success', db); From d6e460d9e760f76e37efe1e4d4b51c1adb1b78f1 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 28 Feb 2013 17:15:37 +0100 Subject: [PATCH 02/72] [FIX] Correctly handles db param in url. Home controller redirects on db if more than one db bzr revid: fme@openerp.com-20130228161537-cen2lyknfifqtyu0 --- addons/web/controllers/main.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 7758510ecba..fe2c7c5f543 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -15,6 +15,7 @@ import simplejson import time import urllib import urllib2 +import urlparse import xmlrpclib import zlib from xml.etree import ElementTree @@ -84,6 +85,7 @@ def rjsmin(script): return result def db_list(req): + return ['v7bis'] proxy = req.session.proxy("db") dbs = proxy.list() h = req.httprequest.environ['HTTP_HOST'].split(':')[0] @@ -535,9 +537,17 @@ class Home(openerpweb.Controller): @openerpweb.httprequest def index(self, req, s_action=None, db=None, **kw): + dbl = db_list(req) if not db: - # TODO: maybe redirect to ?db=xxx instead of implicit db set ?? - db = req.httprequest.cookies.get('last_db_login_success') + first = dbl[0] if dbl else None + db = req.httprequest.cookies.get('last_used_database') or first + if db not in dbl: + db = None + if db and req.params.get('db') is not db and len(dbl) > 1: + query = dict(urlparse.parse_qsl(req.httprequest.query_string, keep_blank_values=True)) + query.update({ 'db': db }) + return werkzeug.utils.redirect('?' + urllib.urlencode(query), 303) + js = "\n ".join('' % i for i in manifest_list(req, 'js', db=db)) css = "\n ".join('' % i for i in manifest_list(req, 'css', db=db)) From cb9c598ca4a66a7efb4df9cc6a6d7b4b8f1cd9c3 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 28 Feb 2013 17:17:57 +0100 Subject: [PATCH 03/72] [FIX] correctly set cookie for last used database bzr revid: fme@openerp.com-20130228161757-le1halu03kesu3fa --- addons/web/static/src/js/chrome.js | 31 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index a207d37dd41..4226463b90d 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -622,6 +622,7 @@ instance.web.Login = instance.web.Widget.extend({ self.on('change:database_selector', this, function() { var params = $.deparam.querystring(); params.db = self.get('database_selector'); + self.remember_last_used_database(params.db); self.$('.oe_login_dbpane').empty().text(_t('Loading...')); window.location = '/?' + $.param(params); }); @@ -639,18 +640,26 @@ instance.web.Login = instance.web.Widget.extend({ if (self.params.db && self.params.login && self.params.password) { d = self.do_login(self.params.db, self.params.login, self.params.password); } else { - // TODO: removing following code breaks portal anonymous - //if (self.params.db) { - // self.on_db_loaded([self.params.db]) - //} else { - d = self.rpc("/web/database/get_list", {}).done(self.on_db_loaded).fail(self.on_db_failed); - //} + d = self.rpc("/web/database/get_list", {}).done(self.on_db_loaded).fail(self.on_db_failed); } return d; }, + remember_last_used_database: function(db) { + // This cookie will be used server side in order to avoid db reloading on first visit + var ttl = 24 * 60 * 60 * 365; + document.cookie = [ + 'last_used_database=' + db, + 'path=/', + 'max-age=' + ttl, + 'expires=' + new Date(new Date().getTime() + ttl * 1000).toGMTString() + ].join(';'); + }, on_db_loaded: function (result) { var self = this; this.db_list = result; + if (!this.selected_db) { + this.selected_db = result[0]; + } this.$("[name=db]").replaceWith(QWeb.render('Login.dblist', { db_list: this.db_list, selected_db: this.selected_db})); this.$('select[name=db]').on('change', function(ev) { self.set('database_selector', $(this).val()); @@ -694,15 +703,7 @@ instance.web.Login = instance.web.Widget.extend({ self.hide_error(); self.$(".oe_login_pane").fadeOut("slow"); return this.session.session_authenticate(db, login, password).then(function() { - // This cookie will be used server side in order to avoid db reloading on next visit - var ttl = 24 * 60 * 60 * 365; - document.cookie = [ - 'last_db_login_success=' + db, - 'path=/', - 'max-age=' + ttl, - 'expires=' + new Date(new Date().getTime() + ttl * 1000).toGMTString() - ].join(';'); - + self.remember_last_used_database(db); if (self.has_local_storage) { if(self.remember_credentials) { localStorage.setItem('last_db_login_success', db); From 686e919b8dd3074d355af7fc3cb3e05e93a3e21c Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 28 Feb 2013 17:19:01 +0100 Subject: [PATCH 04/72] [FIX] Also check dbname in session_is_valid() bzr revid: fme@openerp.com-20130228161901-8ff2t1km24t1im3b --- addons/web/static/src/js/coresetup.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/addons/web/static/src/js/coresetup.js b/addons/web/static/src/js/coresetup.js index 43d292b66db..dedb4a49710 100644 --- a/addons/web/static/src/js/coresetup.js +++ b/addons/web/static/src/js/coresetup.js @@ -89,6 +89,10 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess }); }, session_is_valid: function() { + var db = $.deparam.querystring().db; + if (db && this.db !== db) { + return false; + } return !!this.uid; }, /** From 97698c02b0bde63f5ee5c4f8777121bd2b463979 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 28 Feb 2013 17:33:19 +0100 Subject: [PATCH 05/72] [FIX] Fix modules for monodb login bzr revid: fme@openerp.com-20130228163319-lyu985ueqj7xpr6u --- .../auth_signup/static/src/js/auth_signup.js | 3 +-- .../static/src/js/portal_anonymous.js | 22 ++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/addons/auth_signup/static/src/js/auth_signup.js b/addons/auth_signup/static/src/js/auth_signup.js index 6757b9cb69d..97c647a3e28 100644 --- a/addons/auth_signup/static/src/js/auth_signup.js +++ b/addons/auth_signup/static/src/js/auth_signup.js @@ -29,8 +29,7 @@ openerp.auth_signup = function(instance) { return false; }); - var dblist = self.db_list || []; - var dbname = self.params.db || (dblist.length === 1 ? dblist[0] : null); + var dbname = self.selected_db; // if there is an error message in params, show it then forget it if (self.params.error_message) { diff --git a/addons/portal_anonymous/static/src/js/portal_anonymous.js b/addons/portal_anonymous/static/src/js/portal_anonymous.js index 10a53418c59..c408936720c 100644 --- a/addons/portal_anonymous/static/src/js/portal_anonymous.js +++ b/addons/portal_anonymous/static/src/js/portal_anonymous.js @@ -45,10 +45,10 @@ openerp.portal_anonymous = function(instance) { var self = this; return $.when(this._super()).then(function() { var dblist = self.db_list || []; - if (!self.session.session_is_valid() && dblist.length === 1 && !(self.params.token || self.params.login)) { + if (!self.session.session_is_valid() && !(self.params.token || self.params.login)) { self.remember_credentials = false; // XXX get login/pass from server (via a rpc call) ? - return self.do_login(dblist[0], 'anonymous', 'anonymous'); + return self.do_login(self.selected_db, 'anonymous', 'anonymous'); } }); }, @@ -69,15 +69,17 @@ openerp.portal_anonymous = function(instance) { var p = self.getParent(); var am = p.action_manager; p.$el.find('.oe_leftbar').hide(); - am.do_action({ - type:'ir.actions.client', - tag:'login', - target: 'current', - params: { - login_successful: function() { - am.do_action("reload"); + self.session.session_logout().done(function () { + am.do_action({ + type:'ir.actions.client', + tag:'login', + target: 'current', + params: { + login_successful: function() { + am.do_action("reload"); + } } - } + }); }); }); } From 02d4ab6597664c76c20e93ba62a43082479455f4 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 28 Feb 2013 18:34:44 +0100 Subject: [PATCH 06/72] [FIX] Make credential autocomplete per database bzr revid: fme@openerp.com-20130228173444-th4grlsz70lewf9h --- addons/web/controllers/main.py | 1 - addons/web/static/src/js/chrome.js | 29 ++++++++++------------------- addons/web/static/src/xml/base.xml | 4 ++-- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index fe2c7c5f543..6eb5d89d567 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -85,7 +85,6 @@ def rjsmin(script): return result def db_list(req): - return ['v7bis'] proxy = req.session.proxy("db") dbs = proxy.list() h = req.httprequest.environ['HTTP_HOST'].split(':')[0] diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 4226463b90d..1bf6299816b 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -604,14 +604,6 @@ instance.web.Login = instance.web.Widget.extend({ if (this.params.login_successful) { this.on('login_successful', this, this.params.login_successful); } - - if (this.has_local_storage && this.remember_credentials) { - this.selected_db = localStorage.getItem('last_db_login_success'); - this.selected_login = localStorage.getItem('last_login_login_success'); - if (jQuery.deparam(jQuery.param.querystring()).debug !== undefined) { - this.selected_password = localStorage.getItem('last_password_login_success'); - } - } }, start: function() { var self = this; @@ -671,6 +663,12 @@ instance.web.Login = instance.web.Widget.extend({ } else { this.$('div.oe_login_dbpane').show(); } + if (this.has_local_storage && this.remember_credentials) { + this.$("[name=login]").val(localStorage.getItem(this.selected_db + '|last_login') || ''); + if (this.session.debug) { + this.$("[name=password]").val(localStorage.getItem(this.selected_db + '|last_password') || ''); + } + } }, on_db_failed: function (error, event) { if (error.data.fault_code === 'AccessDenied') { @@ -704,17 +702,10 @@ instance.web.Login = instance.web.Widget.extend({ self.$(".oe_login_pane").fadeOut("slow"); return this.session.session_authenticate(db, login, password).then(function() { self.remember_last_used_database(db); - if (self.has_local_storage) { - if(self.remember_credentials) { - localStorage.setItem('last_db_login_success', db); - localStorage.setItem('last_login_login_success', login); - if (jQuery.deparam(jQuery.param.querystring()).debug !== undefined) { - localStorage.setItem('last_password_login_success', password); - } - } else { - localStorage.setItem('last_db_login_success', ''); - localStorage.setItem('last_login_login_success', ''); - localStorage.setItem('last_password_login_success', ''); + if (self.has_local_storage && self.remember_credentials) { + localStorage.setItem(db + '|last_login', login); + if (self.session.debug) { + localStorage.setItem(db + '|last_password', password); } } self.trigger('login_successful'); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index bf2542b2052..090eaa0cd62 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -71,9 +71,9 @@
  • Username
  • -
  • +
  • Password
  • -
  • +
From f08bf5a08e67af086a26b51e67c69bd253155a38 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 4 Mar 2013 14:53:29 +0100 Subject: [PATCH 07/72] [FIX] Generates journal items immediately from expense bzr revid: jco@openerp.com-20130304135329-v1dfw564svd0zv7q --- addons/hr_expense/hr_expense.py | 301 ++++++++++++++++++++++ addons/hr_expense/hr_expense_workflow.xml | 2 +- 2 files changed, 302 insertions(+), 1 deletion(-) diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index f32479c2ae2..03475c90b04 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -145,6 +145,307 @@ class hr_expense_expense(osv.osv): def expense_canceled(self, cr, uid, ids, context=None): return self.write(cr, uid, ids, {'state': 'cancelled'}, context=context) + + def account_move_get(self, cr, uid, expense_id, journal_id, context=None): + ''' + This method prepare the creation of the account move related to the given expense. + + :param expense_id: Id of voucher for which we are creating account_move. + :return: mapping between fieldname and value of account move to create + :rtype: dict + ''' + + + #Search for the period corresponding with confirmation date + expense_brw = self.browse(cr,uid,expense_id,context) + period_obj = self.pool.get('account.period') + company_id = expense_brw.company_id.id + ctx = context + ctx.update({'company_id': company_id}) + date = expense_brw.date_confirm + pids = period_obj.find(cr, uid, date, context=ctx) + try: + period_id = pids[0] + except: + raise osv.except_osv(_('Error! '), + _('Please define periods!')) + period = period_obj.browse(cr, uid, period_id, context=context) + + seq_obj = self.pool.get('ir.sequence') + + journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context) + if journal.sequence_id: + if not journal.sequence_id.active: + raise osv.except_osv(_('Configuration Error !'), + _('Please activate the sequence of selected journal !')) + c = dict(context) + c.update({'fiscalyear_id': period.fiscalyear_id.id}) + name = seq_obj.next_by_id(cr, uid, journal.sequence_id.id, context=c) + else: + raise osv.except_osv(_('Error!'), + _('Please define a sequence on the journal.')) + #Look for the next expense number + ref = seq_obj.get(cr, uid, 'hr.expense.invoice') + + move = { + 'name': name, + 'journal_id': journal_id, + 'narration': '', + 'date': expense_brw.date_confirm, + 'ref': ref, + 'period_id': period_id, + } + return move + + def line_get_convert(self, cr, uid, x, part, date, context=None): + return { + 'date_maturity': x.get('date_maturity', False), + 'partner_id': part.id, + 'name': x['name'][:64], + 'date': date, + 'debit': x['price']>0 and x['price'], + 'credit': x['price']<0 and -x['price'], + 'account_id': x['account_id'], + 'analytic_lines': x.get('analytic_lines', False), + 'amount_currency': x['price']>0 and abs(x.get('amount_currency', False)) or -abs(x.get('amount_currency', False)), + 'currency_id': x.get('currency_id', False), + 'tax_code_id': x.get('tax_code_id', False), + 'tax_amount': x.get('tax_amount', False), + 'ref': x.get('ref', False), + 'quantity': x.get('quantity',1.00), + 'product_id': x.get('product_id', False), + 'product_uom_id': x.get('uos_id', False), + 'analytic_account_id': x.get('account_analytic_id', False), + } + + def compute_expense_totals(self, cr, uid, inv, company_currency, ref, invoice_move_lines, context=None): + if context is None: + context={} + total = 0 + total_currency = 0 + cur_obj = self.pool.get('res.currency') + for i in invoice_move_lines: + if inv.currency_id.id != company_currency: + context.update({'date': inv.date_confirm or time.strftime('%Y-%m-%d')}) + i['currency_id'] = inv.currency_id.id + i['amount_currency'] = i['price'] + i['price'] = cur_obj.compute(cr, uid, inv.currency_id.id, + company_currency, i['price'], + context=context) + else: + i['amount_currency'] = False + i['currency_id'] = False + i['ref'] = ref + total -= i['price'] + total_currency -= i['amount_currency'] or i['price'] + return total, total_currency, invoice_move_lines + + + def action_move_create(self, cr, uid, ids, context=None): + property_obj = self.pool.get('ir.property') + sequence_obj = self.pool.get('ir.sequence') + analytic_journal_obj = self.pool.get('account.analytic.journal') + account_journal = self.pool.get('account.journal') + voucher_obj = self.pool.get('account.voucher') + currency_obj = self.pool.get('res.currency') + ait_obj = self.pool.get('account.invoice.tax') + move_obj = self.pool.get('account.move') + if context is None: + context = {} + for exp in self.browse(cr, uid, ids, context=context): + company_id = exp.company_id.id + lines = [] + total = 0.0 + ctx = context.copy() + ctx.update({'date': exp.date}) + journal = False + if exp.journal_id: + journal = exp.journal_id + else: + journal_id = voucher_obj._get_journal(cr, uid, context={'type': 'purchase', 'company_id': company_id}) + if journal_id: + journal = account_journal.browse(cr, uid, journal_id, context=context) + if not journal: + raise osv.except_osv(_('Error!'), _("No expense journal found. Please make sure you have a journal with type 'purchase' configured.")) + if not journal.sequence_id: + raise osv.except_osv(_('Error!'), _('Please define sequence on the journal related to this invoice.')) + company_currency = exp.company_id.currency_id.id + current_currency = exp.currency_id +# for line in exp.line_ids: +# if line.product_id: +# acc = line.product_id.property_account_expense +# if not acc: +# acc = line.product_id.categ_id.property_account_expense_categ +# else: +# acc = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context={'force_company': company_id}) +# if not acc: +# raise osv.except_osv(_('Error!'), _('Please configure Default Expense account for Product purchase: `property_account_expense_categ`.')) +# total_amount = line.total_amount +# if journal.currency: +# if exp.currency_id != journal.currency: +# total_amount = currency_obj.compute(cr, uid, exp.currency_id.id, journal.currency.id, total_amount, context=ctx) +# elif exp.currency_id != exp.company_id.currency_id: +# total_amount = currency_obj.compute(cr, uid, exp.currency_id.id, exp.company_id.currency_id.id, total_amount, context=ctx) +# lines.append((0, False, { +# 'name': line.name, +# 'account_id': acc.id, +# 'account_analytic_id': line.analytic_account.id, +# 'amount': total_amount, +# 'type': 'dr' +# })) +# total += total_amount + if not exp.employee_id.address_home_id: + raise osv.except_osv(_('Error!'), _('The employee must have a home address.')) + acc = exp.employee_id.address_home_id.property_account_payable.id + + #From action_move_line_create of voucher + move_id = move_obj.create(cr, uid, self.account_move_get(cr, uid, exp.id, journal.id, context=context), context=context) + move = move_obj.browse(cr, uid, move_id, context=context) + #iml = self._get_analytic_lines + + # within: iml = self.pool.get('account.invoice.line').move_line_get + iml = self.move_line_get(cr, uid, exp.id, context=context) + + #Write taxes on the lines which should automatically add the necessary extra lines upon creation + + + + diff_currency_p = exp.currency_id.id <> company_currency + # create one move line for the total + total = 0 + total_currency = 0 + total, total_currency, iml = self.compute_expense_totals(cr, uid, exp, company_currency, exp.name, iml, context=ctx) + + + #Need to have counterline: + + iml.append({ + 'type':'dest', + 'name':'/', + 'price':total, + 'account_id': acc, + 'date_maturity': exp.date_confirm, + 'amount_currency': diff_currency_p and total_currency or False, + 'currency_id': diff_currency_p and exp.currency_id.id or False, + 'ref': exp.name + }) + + line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x, exp.user_id.partner_id, exp.date_confirm, context=ctx)),iml) + move_obj.write(cr, uid, [move_id], {'line_id':line}, context=ctx) + self.write(cr, uid, ids, {'account_move_id':move_id, 'state':'done'}, context=context) + + + #compute_taxes = ait_obj.compute(cr, uid, , context=context) + + + +# return { +# 'type':'src', +# 'name':line.name.split('\n')[0][:64], +# 'price_unit':line.price_unit, +# 'quantity':line.quantity, +# 'price':line.price_subtotal, +# 'account_id':line.account_id.id, +# 'product_id':line.product_id.id, +# 'uos_id':line.uos_id.id, +# 'account_analytic_id':line.account_analytic_id.id, +# 'taxes':line.invoice_line_tax_id} + + + def move_line_get(self, cr, uid, expense_id, context=None): + res = [] + tax_obj = self.pool.get('account.tax') + cur_obj = self.pool.get('res.currency') + if context is None: + context = {} + exp = self.browse(cr, uid, expense_id, context=context) + company_currency = exp.company_id.currency_id.id + + for line in exp.line_ids: + mres = self.move_line_get_item(cr, uid, line, context) + if not mres: + continue + res.append(mres) + tax_code_found= False + + #Calculate tax according to default tax on product + + #Taken from product_id_onchange in account.invoice + if line.product_id: + fposition_id = False + fpos_obj = self.pool.get('account.fiscal.position') + fpos = fposition_id and fpos_obj.browse(cr, uid, fposition_id, context=context) or False + product = line.product_id + taxes = product.supplier_taxes_id + #If taxes are not related to the product, maybe they are in the account + if not taxes: + a = product.property_account_expense.id #Why is not there a check here? + if not a: + a = product.categ_id.property_account_expense_categ.id + a = fpos_obj.map_account(cr, uid, fpos, a) + taxes = a and self.pool.get('account.account').browse(cr, uid, a, context=context).tax_ids or False + tax_id = fpos_obj.map_tax(cr, uid, fpos, taxes) + #Calculating tax on the line and creating move? + for tax in tax_obj.compute_all(cr, uid, taxes, + line.unit_amount , + line.unit_quantity, line.product_id, + exp.user_id.partner_id)['taxes']: + tax_code_id = tax['base_code_id'] + tax_amount = line.total_amount * tax['base_sign'] + if tax_code_found: + if not tax_code_id: + continue + res.append(self.move_line_get_item(cr, uid, line, context)) + res[-1]['price'] = 0.0 + res[-1]['account_analytic_id'] = False + elif not tax_code_id: + continue + tax_code_found = True + res[-1]['tax_code_id'] = tax_code_id + res[-1]['tax_amount'] = cur_obj.compute(cr, uid, exp.currency_id.id, company_currency, tax_amount, context={'date': exp.date_confirm}) + + #Will create the tax here as we don't have the access + assoc_tax = { + 'type':'tax', + 'name':tax['name'], + 'price_unit': tax['price_unit'], + 'quantity': 1, + 'price': tax['amount'] * tax['base_sign'] or 0.0, + 'account_id': tax['account_collected_id'], + 'tax_code_id': tax['tax_code_id'], + 'tax_amount': tax['amount'] * tax['base_sign'], + } + res.append(assoc_tax) + return res + + def move_line_get_item(self, cr, uid, line, context=None): + company = line.expense_id.company_id + property_obj = self.pool.get('ir.property') + if line.product_id: + acc = line.product_id.property_account_expense + if not acc: + acc = line.product_id.categ_id.property_account_expense_categ + else: + acc = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context={'force_company': company.id}) + if not acc: + raise osv.except_osv(_('Error!'), _('Please configure Default Expense account for Product purchase: `property_account_expense_categ`.')) + return { + 'type':'src', + 'name': line.name.split('\n')[0][:64], + 'price_unit':line.unit_amount, + 'quantity':line.unit_quantity, + 'price':line.total_amount, + 'account_id':acc.id, + 'product_id':line.product_id.id, + 'uos_id':line.uom_id.id, + 'account_analytic_id':line.analytic_account.id, + #'taxes':line.invoice_line_tax_id, + } + + + + + def action_receipt_create(self, cr, uid, ids, context=None): property_obj = self.pool.get('ir.property') sequence_obj = self.pool.get('ir.sequence') diff --git a/addons/hr_expense/hr_expense_workflow.xml b/addons/hr_expense/hr_expense_workflow.xml index 2e085071207..c01bb4cd14b 100644 --- a/addons/hr_expense/hr_expense_workflow.xml +++ b/addons/hr_expense/hr_expense_workflow.xml @@ -43,7 +43,7 @@ done function - action_receipt_create() + action_move_create() From 1e3725b9e6cc0f167dd3000844dc3d13e64dff98 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 4 Mar 2013 15:47:22 +0100 Subject: [PATCH 08/72] [FIX] adjust tests and no taxes when product not available bzr revid: jco@openerp.com-20130304144722-y30nkmmd8hyby7x0 --- addons/hr_expense/hr_expense.py | 2 ++ addons/hr_expense/test/expense_process.yml | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index 03475c90b04..fb8af6649de 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -385,6 +385,8 @@ class hr_expense_expense(osv.osv): a = fpos_obj.map_account(cr, uid, fpos, a) taxes = a and self.pool.get('account.account').browse(cr, uid, a, context=context).tax_ids or False tax_id = fpos_obj.map_tax(cr, uid, fpos, taxes) + else: + taxes = [] #Calculating tax on the line and creating move? for tax in tax_obj.compute_all(cr, uid, taxes, line.unit_amount , diff --git a/addons/hr_expense/test/expense_process.yml b/addons/hr_expense/test/expense_process.yml index eae63c460fc..4b65c16e8ea 100644 --- a/addons/hr_expense/test/expense_process.yml +++ b/addons/hr_expense/test/expense_process.yml @@ -26,11 +26,6 @@ !python {model: hr.expense.expense}: | sep_expenses = self.browse(cr, uid, ref("sep_expenses"), context=context) assert sep_expenses.state == 'done', "Expense should be in 'Done' state." - assert sep_expenses.voucher_id, "Expense should have link of Purchase Receipt." - assert sep_expenses.voucher_id.type == 'purchase', "Receipt type is not purchase receipt." - assert sep_expenses.voucher_id.amount == sep_expenses.amount,"Receipt total amount is not correspond with expense total." - assert len(sep_expenses.voucher_id.line_dr_ids) == len(sep_expenses.line_ids),"Lines of Receipt and expense line are not correspond." - - I duplicate the expenses and cancel duplicated. - From 804bc3a916916eb5c32ef44e8bc5b5f37c89078d Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 4 Mar 2013 16:55:50 +0100 Subject: [PATCH 09/72] [FIX] in case of no taxes bzr revid: jco@openerp.com-20130304155550-g5m12ryt6id0b3m3 --- addons/hr_expense/hr_expense.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index fb8af6649de..f61f8923411 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -306,9 +306,6 @@ class hr_expense_expense(osv.osv): # within: iml = self.pool.get('account.invoice.line').move_line_get iml = self.move_line_get(cr, uid, exp.id, context=context) - #Write taxes on the lines which should automatically add the necessary extra lines upon creation - - diff_currency_p = exp.currency_id.id <> company_currency # create one move line for the total @@ -385,7 +382,7 @@ class hr_expense_expense(osv.osv): a = fpos_obj.map_account(cr, uid, fpos, a) taxes = a and self.pool.get('account.account').browse(cr, uid, a, context=context).tax_ids or False tax_id = fpos_obj.map_tax(cr, uid, fpos, taxes) - else: + if not taxes: taxes = [] #Calculating tax on the line and creating move? for tax in tax_obj.compute_all(cr, uid, taxes, From fc74aaf7602aaa2182112b6e61e492659c1d45c8 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 10:24:26 +0100 Subject: [PATCH 10/72] [FIX] Fixed for --no-database-list option bzr revid: fme@openerp.com-20130305092426-48h757qc62taugpl --- addons/web/controllers/main.py | 37 ++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 6eb5d89d567..885871654d5 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -94,15 +94,25 @@ def db_list(req): return dbs def db_monodb(req): - # if only one db exists, return it else return False try: dbs = db_list(req) - if len(dbs) == 1: - return dbs[0] except xmlrpclib.Fault: # ignore access denied - pass - return False + dbs = [] + + db = db_url = req.params.get('db') or False + if not db: + first_db = dbs[0] if dbs else False + db = req.httprequest.cookies.get('last_used_database') or first_db + if db not in dbs: + db = False + + redirect = False + if db and db_url is not db and len(dbs) > 1: + query = dict(urlparse.parse_qsl(req.httprequest.query_string, keep_blank_values=True)) + query.update({ 'db': db }) + redirect = req.httprequest.path + '?' + urllib.urlencode(query) + return [db, dbs, redirect] def module_topological_sort(modules): """ Return a list of module names sorted so that their dependencies of the @@ -197,7 +207,7 @@ def module_boot(req, db=None): for i in server_wide_modules: if i in openerpweb.addons_manifest: serverside.append(i) - monodb = db or db_monodb(req) + monodb = db or db_monodb(req)[0] if monodb: dbside = module_installed_bypass_session(monodb) dbside = [i for i in dbside if i not in serverside] @@ -536,16 +546,9 @@ class Home(openerpweb.Controller): @openerpweb.httprequest def index(self, req, s_action=None, db=None, **kw): - dbl = db_list(req) - if not db: - first = dbl[0] if dbl else None - db = req.httprequest.cookies.get('last_used_database') or first - if db not in dbl: - db = None - if db and req.params.get('db') is not db and len(dbl) > 1: - query = dict(urlparse.parse_qsl(req.httprequest.query_string, keep_blank_values=True)) - query.update({ 'db': db }) - return werkzeug.utils.redirect('?' + urllib.urlencode(query), 303) + db, dbs, redir = db_monodb(req) + if redir: + return werkzeug.utils.redirect(redir, 303) js = "\n ".join('' % i for i in manifest_list(req, 'js', db=db)) css = "\n ".join('' % i for i in manifest_list(req, 'css', db=db)) @@ -1331,7 +1334,7 @@ class Binary(openerpweb.Controller): dbname = req.session._db uid = req.session._uid elif dbname is None: - dbname = db_monodb(req) + dbname = db_monodb(req)[0] if uid is None: uid = openerp.SUPERUSER_ID From 3ebe708abf58e7889e47d564376fd437a828f3c8 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 10:24:55 +0100 Subject: [PATCH 11/72] [FIX] Api change for db_monodb bzr revid: fme@openerp.com-20130305092455-fny0mh1g5kamusnl --- addons/auth_oauth/controllers/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py index 1c38f7f4eae..878eb292a63 100644 --- a/addons/auth_oauth/controllers/main.py +++ b/addons/auth_oauth/controllers/main.py @@ -90,7 +90,7 @@ class OAuthController(oeweb.Controller): """login user via OpenERP Account provider""" dbname = kw.pop('db', None) if not dbname: - dbname = db_monodb(req) + dbname = db_monodb(req)[0] if not dbname: return BadRequest() From de658646e091153f97aaafc3e845d7bf69f7444b Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 11:40:54 +0100 Subject: [PATCH 12/72] [FIX] Correctly handle --no-database-list bzr revid: fme@openerp.com-20130305104054-s0r4g02954fd8qmw --- addons/web/static/src/js/chrome.js | 33 +++++++++++++++++------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 1bf6299816b..a14153fc8f5 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -589,6 +589,11 @@ instance.web.client_actions.add("database_manager", "instance.web.DatabaseManage instance.web.Login = instance.web.Widget.extend({ template: "Login", remember_credentials: true, + events: { + 'change input[name=db],select[name=db]': function(ev) { + this.set('database_selector', $(ev.currentTarget).val()); + }, + }, init: function(parent, action) { this._super(parent); @@ -600,6 +605,12 @@ instance.web.Login = instance.web.Widget.extend({ if (_.isEmpty(this.params)) { this.params = $.bbq.getState(true); } + if ($.deparam.querystring().db) { + this.params.db = $.deparam.querystring().db; + } + if (this.params.db) { + this.selected_db = this.params.db; + } if (this.params.login_successful) { this.on('login_successful', this, this.params.login_successful); @@ -612,19 +623,9 @@ instance.web.Login = instance.web.Widget.extend({ self.do_action("database_manager"); }); self.on('change:database_selector', this, function() { - var params = $.deparam.querystring(); - params.db = self.get('database_selector'); - self.remember_last_used_database(params.db); - self.$('.oe_login_dbpane').empty().text(_t('Loading...')); - window.location = '/?' + $.param(params); + this.database_selected(this.get('database_selector')); }); var d = $.when(); - if ($.deparam.querystring().db) { - self.params.db = $.deparam.querystring().db; - } - if (self.params.db) { - self.selected_db = self.params.db; - } if ($.param.fragment().token) { self.params.token = $.param.fragment().token; } @@ -646,6 +647,13 @@ instance.web.Login = instance.web.Widget.extend({ 'expires=' + new Date(new Date().getTime() + ttl * 1000).toGMTString() ].join(';'); }, + database_selected: function(db) { + var params = $.deparam.querystring(); + params.db = db; + this.remember_last_used_database(db); + this.$('.oe_login_dbpane').empty().text(_t('Loading...')); + window.location = '/?' + $.param(params); + }, on_db_loaded: function (result) { var self = this; this.db_list = result; @@ -653,9 +661,6 @@ instance.web.Login = instance.web.Widget.extend({ this.selected_db = result[0]; } this.$("[name=db]").replaceWith(QWeb.render('Login.dblist', { db_list: this.db_list, selected_db: this.selected_db})); - this.$('select[name=db]').on('change', function(ev) { - self.set('database_selector', $(this).val()); - }); if(this.db_list.length === 0) { this.do_action("database_manager"); } else if(this.db_list.length === 1) { From 96ddbcd2c7bc0d94c0e20848c0df070067a2c0b9 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 11:51:12 +0100 Subject: [PATCH 13/72] [FIX] Make 'remember credential' option work with --no-database-list bzr revid: fme@openerp.com-20130305105112-6d5q0qyxw1p2k9d6 --- addons/web/static/src/js/chrome.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index a14153fc8f5..91adfad9ebd 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -633,7 +633,17 @@ instance.web.Login = instance.web.Widget.extend({ if (self.params.db && self.params.login && self.params.password) { d = self.do_login(self.params.db, self.params.login, self.params.password); } else { - d = self.rpc("/web/database/get_list", {}).done(self.on_db_loaded).fail(self.on_db_failed); + d = self.rpc("/web/database/get_list", {}) + .done(self.on_db_loaded) + .fail(self.on_db_failed) + .always(function() { + if (self.selected_db && self.has_local_storage && self.remember_credentials) { + self.$("[name=login]").val(localStorage.getItem(self.selected_db + '|last_login') || ''); + if (self.session.debug) { + self.$("[name=password]").val(localStorage.getItem(self.selected_db + '|last_password') || ''); + } + } + }); } return d; }, @@ -652,6 +662,7 @@ instance.web.Login = instance.web.Widget.extend({ params.db = db; this.remember_last_used_database(db); this.$('.oe_login_dbpane').empty().text(_t('Loading...')); + this.$('[name=login], [name=password]').prop('readonly', true); window.location = '/?' + $.param(params); }, on_db_loaded: function (result) { @@ -668,12 +679,6 @@ instance.web.Login = instance.web.Widget.extend({ } else { this.$('div.oe_login_dbpane').show(); } - if (this.has_local_storage && this.remember_credentials) { - this.$("[name=login]").val(localStorage.getItem(this.selected_db + '|last_login') || ''); - if (this.session.debug) { - this.$("[name=password]").val(localStorage.getItem(this.selected_db + '|last_password') || ''); - } - } }, on_db_failed: function (error, event) { if (error.data.fault_code === 'AccessDenied') { From 44f8d5f1a0df7371eb94375e95a5d2cd4085b49b Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 12:09:47 +0100 Subject: [PATCH 14/72] [IMP] Use instance.web.redirect bzr revid: fme@openerp.com-20130305110947-ztgb4cbyjso5r4so --- addons/web/static/src/js/chrome.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 91adfad9ebd..420cedd81e4 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -663,7 +663,7 @@ instance.web.Login = instance.web.Widget.extend({ this.remember_last_used_database(db); this.$('.oe_login_dbpane').empty().text(_t('Loading...')); this.$('[name=login], [name=password]').prop('readonly', true); - window.location = '/?' + $.param(params); + instance.web.redirect('/?' + $.param(params)); }, on_db_loaded: function (result) { var self = this; From 1a00c2953882ced789f396076999e86e7b5e66c9 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 12:17:03 +0100 Subject: [PATCH 15/72] [FIX] unbreak api bzr revid: fme@openerp.com-20130305111703-5l6iw2s970j76f43 --- addons/web/controllers/main.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 885871654d5..2ac6fbca98e 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -94,6 +94,17 @@ def db_list(req): return dbs def db_monodb(req): + # if only one db exists, return it else return False + try: + dbs = db_list(req) + if len(dbs) == 1: + return dbs[0] + except xmlrpclib.Fault: + # ignore access denied + pass + return False + +def db_monodb_list(req): try: dbs = db_list(req) except xmlrpclib.Fault: @@ -207,7 +218,7 @@ def module_boot(req, db=None): for i in server_wide_modules: if i in openerpweb.addons_manifest: serverside.append(i) - monodb = db or db_monodb(req)[0] + monodb = db or db_monodb(req) if monodb: dbside = module_installed_bypass_session(monodb) dbside = [i for i in dbside if i not in serverside] @@ -546,7 +557,7 @@ class Home(openerpweb.Controller): @openerpweb.httprequest def index(self, req, s_action=None, db=None, **kw): - db, dbs, redir = db_monodb(req) + db, dbs, redir = db_monodb_list(req) if redir: return werkzeug.utils.redirect(redir, 303) @@ -1334,7 +1345,7 @@ class Binary(openerpweb.Controller): dbname = req.session._db uid = req.session._uid elif dbname is None: - dbname = db_monodb(req)[0] + dbname = db_monodb(req) if uid is None: uid = openerp.SUPERUSER_ID From f1b8f7411d79caf579f11880378b724cd7a7b438 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 12:17:19 +0100 Subject: [PATCH 16/72] [FIX] unbreak api bzr revid: fme@openerp.com-20130305111719-ja4u3hpqfrj3amqu --- addons/auth_oauth/controllers/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py index 878eb292a63..1c38f7f4eae 100644 --- a/addons/auth_oauth/controllers/main.py +++ b/addons/auth_oauth/controllers/main.py @@ -90,7 +90,7 @@ class OAuthController(oeweb.Controller): """login user via OpenERP Account provider""" dbname = kw.pop('db', None) if not dbname: - dbname = db_monodb(req)[0] + dbname = db_monodb(req) if not dbname: return BadRequest() From 0f03ed38f0e259e5e13c19a543ec6380364bb9da Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 12:19:32 +0100 Subject: [PATCH 17/72] [IMP] forgot a change in previous commit bzr revid: fme@openerp.com-20130305111932-lytw8pax3bjihg9d --- addons/web/controllers/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 2ac6fbca98e..71294d66ac6 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -123,7 +123,7 @@ def db_monodb_list(req): query = dict(urlparse.parse_qsl(req.httprequest.query_string, keep_blank_values=True)) query.update({ 'db': db }) redirect = req.httprequest.path + '?' + urllib.urlencode(query) - return [db, dbs, redirect] + return (db, dbs, redirect) def module_topological_sort(modules): """ Return a list of module names sorted so that their dependencies of the From 8bb8ebba362075c4ebac5c33f1980fc64bd234e1 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 17:40:22 +0100 Subject: [PATCH 18/72] [IMP] portal anonymous, hide top bar when clicking Login button bzr revid: fme@openerp.com-20130305164022-p177nfhajihhm9l6 --- addons/portal_anonymous/static/src/js/portal_anonymous.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/portal_anonymous/static/src/js/portal_anonymous.js b/addons/portal_anonymous/static/src/js/portal_anonymous.js index c408936720c..8a217f03b3d 100644 --- a/addons/portal_anonymous/static/src/js/portal_anonymous.js +++ b/addons/portal_anonymous/static/src/js/portal_anonymous.js @@ -68,7 +68,7 @@ openerp.portal_anonymous = function(instance) { this.$el.find('a.login').click(function() { var p = self.getParent(); var am = p.action_manager; - p.$el.find('.oe_leftbar').hide(); + p.$el.find('.oe_leftbar, .oe_topbar').hide(); self.session.session_logout().done(function () { am.do_action({ type:'ir.actions.client', From 7b154aa8e02f8b46f119319c36e04a693057775c Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 5 Mar 2013 17:51:44 +0100 Subject: [PATCH 19/72] [REM] Removed database check, this is not the role of the controller to reject a bad database name bzr revid: fme@openerp.com-20130305165144-1nzgf3urk4ke20ty --- addons/web/controllers/main.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 71294d66ac6..1b28b3f8503 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -115,8 +115,6 @@ def db_monodb_list(req): if not db: first_db = dbs[0] if dbs else False db = req.httprequest.cookies.get('last_used_database') or first_db - if db not in dbs: - db = False redirect = False if db and db_url is not db and len(dbs) > 1: From b5b625932abd6d546f1a498826c210c72c7d86d9 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Tue, 5 Mar 2013 22:14:33 +0100 Subject: [PATCH 20/72] db_monodb use the new implementation bzr revid: al@openerp.com-20130305211433-cz7jopkmehxbbbsh --- addons/web/controllers/main.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 1b28b3f8503..e51deacd57b 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -93,17 +93,6 @@ def db_list(req): dbs = [i for i in dbs if re.match(r, i)] return dbs -def db_monodb(req): - # if only one db exists, return it else return False - try: - dbs = db_list(req) - if len(dbs) == 1: - return dbs[0] - except xmlrpclib.Fault: - # ignore access denied - pass - return False - def db_monodb_list(req): try: dbs = db_list(req) @@ -117,12 +106,16 @@ def db_monodb_list(req): db = req.httprequest.cookies.get('last_used_database') or first_db redirect = False - if db and db_url is not db and len(dbs) > 1: + if db and db_url != db and len(dbs) > 1: query = dict(urlparse.parse_qsl(req.httprequest.query_string, keep_blank_values=True)) query.update({ 'db': db }) redirect = req.httprequest.path + '?' + urllib.urlencode(query) return (db, dbs, redirect) +def db_monodb(req): + # if only one db exists, return it else return False + return db_monodb_list(req)[0] + def module_topological_sort(modules): """ Return a list of module names sorted so that their dependencies of the modules are listed before the module itself From 88e0e2933c0e445d082eb8caaac623498562abc3 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Wed, 6 Mar 2013 01:57:55 +0100 Subject: [PATCH 21/72] db_monodb better version and naming bzr revid: al@openerp.com-20130306005755-bgyl65f03st6mn6x --- addons/web/controllers/main.py | 36 ++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index e51deacd57b..876f8c8a26d 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -93,28 +93,40 @@ def db_list(req): dbs = [i for i in dbs if re.match(r, i)] return dbs -def db_monodb_list(req): +def db_monodb_redirect(req): + db = False + redirect = False + + # 1 try the db in the url + db_url = req.params.get('db') + if db_url: + return (db_url, False) + try: dbs = db_list(req) except xmlrpclib.Fault: # ignore access denied dbs = [] - db = db_url = req.params.get('db') or False - if not db: - first_db = dbs[0] if dbs else False - db = req.httprequest.cookies.get('last_used_database') or first_db + # 2 use the database from the cookie if it's listable and still listed + cookie_db = req.httprequest.cookies.get('last_used_database') + if cookie_db in dbs: + db = cookie_db - redirect = False - if db and db_url != db and len(dbs) > 1: + # 3 use the first db + if dbs: + db = dbs[0] + + # redirect to the chosen db if multiple are available + if db and len(dbs) > 1: query = dict(urlparse.parse_qsl(req.httprequest.query_string, keep_blank_values=True)) query.update({ 'db': db }) redirect = req.httprequest.path + '?' + urllib.urlencode(query) - return (db, dbs, redirect) + return (db, redirect) def db_monodb(req): # if only one db exists, return it else return False - return db_monodb_list(req)[0] + return db_monodb_redirect(req)[0] def module_topological_sort(modules): """ Return a list of module names sorted so that their dependencies of the @@ -305,6 +317,10 @@ def manifest_glob(req, extension, addons=None, db=None): return r def manifest_list(req, extension, mods=None, db=None): + """ list ressources to load specifying either: + mods: a comma separated string listing modules + db: a database name (return all installed modules in that database) + """ if not req.debug: path = '/web/webclient/' + extension if mods is not None: @@ -548,7 +564,7 @@ class Home(openerpweb.Controller): @openerpweb.httprequest def index(self, req, s_action=None, db=None, **kw): - db, dbs, redir = db_monodb_list(req) + db, redir = db_monodb_redirect(req) if redir: return werkzeug.utils.redirect(redir, 303) From 28aa304d44368d666a64dcce4e032c48211e46ee Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 6 Mar 2013 09:59:36 +0100 Subject: [PATCH 22/72] [FIX] db_monodb: cookie not used. keep same behavior as previous bzr revid: fme@openerp.com-20130306085936-3mcyorwtgbb0uk0u --- addons/web/controllers/main.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 876f8c8a26d..bc859f10687 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -109,12 +109,10 @@ def db_monodb_redirect(req): dbs = [] # 2 use the database from the cookie if it's listable and still listed - cookie_db = req.httprequest.cookies.get('last_used_database') - if cookie_db in dbs: - db = cookie_db + db = req.httprequest.cookies.get('last_used_database') or False # 3 use the first db - if dbs: + if dbs and not db: db = dbs[0] # redirect to the chosen db if multiple are available From cdabf79cf27a08f8ecb63a0a94e7d13b9f05fc4e Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 6 Mar 2013 15:05:54 +0100 Subject: [PATCH 23/72] [REF] hr_expense, creation of accounting entries from hr.expense: a lot of code refactoring. Still a huge work to be done in order to factorize some code with other objects (like account.invoice, account.voucher, account.asset...) bzr revid: qdp-launchpad@openerp.com-20130306140554-fhs6fhkyb779t6re --- addons/account/account.py | 23 +++ addons/hr_expense/__openerp__.py | 2 +- addons/hr_expense/hr_expense.py | 264 ++++++-------------------- addons/hr_expense/hr_expense_view.xml | 1 + 4 files changed, 79 insertions(+), 211 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index acf27c42392..2aab34ff8ba 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -1150,6 +1150,29 @@ class account_move(osv.osv): _description = "Account Entry" _order = 'id desc' + def account_move_prepare(self, cr, uid, journal_id, date=False, ref='', company_id=False, context=None): + ''' + Prepares and returns a dictionary of values, ready to be passed to create() based on the parameters received. + ''' + if not date: + date = fields.date.today() + period_obj = self.pool.get('account.period') + if not company_id: + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + company_id = user.company_id.id + if context is None: + context = {} + #put the company in context to find the good period + ctx = context.copy() + ctx.update({'company_id': company_id}) + return { + 'journal_id': journal_id, + 'date': date, + 'period_id': period_obj.find(cr, uid, date, context=ctx)[0], + 'ref': ref, + 'company_id': company_id, + } + def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80): """ Returns a list of tupples containing id, name, as internally it is called {def name_get} diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py index 516af7f9d27..1f4e7b42209 100644 --- a/addons/hr_expense/__openerp__.py +++ b/addons/hr_expense/__openerp__.py @@ -46,7 +46,7 @@ This module also uses analytic accounting and is compatible with the invoice on 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'images': ['images/hr_expenses_analysis.jpeg', 'images/hr_expenses.jpeg'], - 'depends': ['hr', 'account_voucher'], + 'depends': ['hr', 'account_voucher, account_accountant'], 'data': [ 'security/ir.model.access.csv', 'hr_expense_data.xml', diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index f61f8923411..29570559c65 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -145,8 +145,7 @@ class hr_expense_expense(osv.osv): def expense_canceled(self, cr, uid, ids, context=None): return self.write(cr, uid, ids, {'state': 'cancelled'}, context=context) - - def account_move_get(self, cr, uid, expense_id, journal_id, context=None): + def account_move_get(self, cr, uid, expense_id, context=None): ''' This method prepare the creation of the account move related to the given expense. @@ -154,53 +153,27 @@ class hr_expense_expense(osv.osv): :return: mapping between fieldname and value of account move to create :rtype: dict ''' - - - #Search for the period corresponding with confirmation date - expense_brw = self.browse(cr,uid,expense_id,context) - period_obj = self.pool.get('account.period') - company_id = expense_brw.company_id.id - ctx = context - ctx.update({'company_id': company_id}) - date = expense_brw.date_confirm - pids = period_obj.find(cr, uid, date, context=ctx) - try: - period_id = pids[0] - except: - raise osv.except_osv(_('Error! '), - _('Please define periods!')) - period = period_obj.browse(cr, uid, period_id, context=context) - - seq_obj = self.pool.get('ir.sequence') - - journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context) - if journal.sequence_id: - if not journal.sequence_id.active: - raise osv.except_osv(_('Configuration Error !'), - _('Please activate the sequence of selected journal !')) - c = dict(context) - c.update({'fiscalyear_id': period.fiscalyear_id.id}) - name = seq_obj.next_by_id(cr, uid, journal.sequence_id.id, context=c) + journal_obj = self.pool.get('account.journal') + expense = self.browse(cr, uid, expense_id, context=context) + company_id = expense.company_id.id + date = expense.date_confirm + ref = expense.name + journal_id = False + if expense.journal_id: + journal_id = expense.journal_id.id else: - raise osv.except_osv(_('Error!'), - _('Please define a sequence on the journal.')) - #Look for the next expense number - ref = seq_obj.get(cr, uid, 'hr.expense.invoice') - - move = { - 'name': name, - 'journal_id': journal_id, - 'narration': '', - 'date': expense_brw.date_confirm, - 'ref': ref, - 'period_id': period_id, - } - return move + journal_id = journal_obj.search(cr, uid, [('type', '=', 'purchase'), ('company_id', '=', company_id)]) + if not journal_id: + raise osv.except_osv(_('Error!'), _("No expense journal found. Please make sure you have a journal with type 'purchase' configured.")) + journal_id = journal_id[0] + return self.pool.get('account_move').account_move_prepare(cr, uid, journal_id, date=date, ref=ref, company_id=company_id, context=context) def line_get_convert(self, cr, uid, x, part, date, context=None): + #partner_id = self.pool.get('res.partner')._find_partner(part) + partner_id = part.id return { 'date_maturity': x.get('date_maturity', False), - 'partner_id': part.id, + 'partner_id': partner_id, 'name': x['name'][:64], 'date': date, 'debit': x['price']>0 and x['price'], @@ -218,108 +191,65 @@ class hr_expense_expense(osv.osv): 'analytic_account_id': x.get('account_analytic_id', False), } - def compute_expense_totals(self, cr, uid, inv, company_currency, ref, invoice_move_lines, context=None): + def compute_expense_totals(self, cr, uid, exp, company_currency, ref, account_move_lines, context=None): + ''' + internal method used for computation of total amount of an expense in the company currency and + in the expense currency, given the account_move_lines that will be created. It also do some small + transformations at these account_move_lines (for multi-currency purposes) + + :param account_move_lines: list of dict + :rtype: tuple of 3 elements (a, b ,c) + a: total in company currency + b: total in hr.expense currency + c: account_move_lines potentially modified + ''' + cur_obj = self.pool.get('res.currency') if context is None: context={} - total = 0 - total_currency = 0 - cur_obj = self.pool.get('res.currency') - for i in invoice_move_lines: - if inv.currency_id.id != company_currency: - context.update({'date': inv.date_confirm or time.strftime('%Y-%m-%d')}) - i['currency_id'] = inv.currency_id.id + context.update({'date': exp.date_confirm or time.strftime('%Y-%m-%d')}) + total = 0.0 + total_currency = 0.0 + for i in account_move_lines: + if exp.currency_id.id != company_currency: + i['currency_id'] = exp.currency_id.id i['amount_currency'] = i['price'] - i['price'] = cur_obj.compute(cr, uid, inv.currency_id.id, + i['price'] = cur_obj.compute(cr, uid, exp.currency_id.id, company_currency, i['price'], context=context) else: i['amount_currency'] = False i['currency_id'] = False - i['ref'] = ref total -= i['price'] total_currency -= i['amount_currency'] or i['price'] - return total, total_currency, invoice_move_lines + return total, total_currency, account_move_lines def action_move_create(self, cr, uid, ids, context=None): - property_obj = self.pool.get('ir.property') - sequence_obj = self.pool.get('ir.sequence') - analytic_journal_obj = self.pool.get('account.analytic.journal') - account_journal = self.pool.get('account.journal') - voucher_obj = self.pool.get('account.voucher') - currency_obj = self.pool.get('res.currency') - ait_obj = self.pool.get('account.invoice.tax') move_obj = self.pool.get('account.move') if context is None: context = {} for exp in self.browse(cr, uid, ids, context=context): - company_id = exp.company_id.id - lines = [] - total = 0.0 - ctx = context.copy() - ctx.update({'date': exp.date}) - journal = False - if exp.journal_id: - journal = exp.journal_id - else: - journal_id = voucher_obj._get_journal(cr, uid, context={'type': 'purchase', 'company_id': company_id}) - if journal_id: - journal = account_journal.browse(cr, uid, journal_id, context=context) - if not journal: - raise osv.except_osv(_('Error!'), _("No expense journal found. Please make sure you have a journal with type 'purchase' configured.")) - if not journal.sequence_id: - raise osv.except_osv(_('Error!'), _('Please define sequence on the journal related to this invoice.')) - company_currency = exp.company_id.currency_id.id - current_currency = exp.currency_id -# for line in exp.line_ids: -# if line.product_id: -# acc = line.product_id.property_account_expense -# if not acc: -# acc = line.product_id.categ_id.property_account_expense_categ -# else: -# acc = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context={'force_company': company_id}) -# if not acc: -# raise osv.except_osv(_('Error!'), _('Please configure Default Expense account for Product purchase: `property_account_expense_categ`.')) -# total_amount = line.total_amount -# if journal.currency: -# if exp.currency_id != journal.currency: -# total_amount = currency_obj.compute(cr, uid, exp.currency_id.id, journal.currency.id, total_amount, context=ctx) -# elif exp.currency_id != exp.company_id.currency_id: -# total_amount = currency_obj.compute(cr, uid, exp.currency_id.id, exp.company_id.currency_id.id, total_amount, context=ctx) -# lines.append((0, False, { -# 'name': line.name, -# 'account_id': acc.id, -# 'account_analytic_id': line.analytic_account.id, -# 'amount': total_amount, -# 'type': 'dr' -# })) -# total += total_amount if not exp.employee_id.address_home_id: raise osv.except_osv(_('Error!'), _('The employee must have a home address.')) - acc = exp.employee_id.address_home_id.property_account_payable.id + company_currency = exp.company_id.currency_id.id + diff_currency_p = exp.currency_id.id <> company_currency - #From action_move_line_create of voucher - move_id = move_obj.create(cr, uid, self.account_move_get(cr, uid, exp.id, journal.id, context=context), context=context) - move = move_obj.browse(cr, uid, move_id, context=context) + #create the move that will contain the accounting entries + move_id = move_obj.create(cr, uid, self.account_move_get(cr, uid, exp.id, context=context), context=context) #iml = self._get_analytic_lines # within: iml = self.pool.get('account.invoice.line').move_line_get iml = self.move_line_get(cr, uid, exp.id, context=context) - - diff_currency_p = exp.currency_id.id <> company_currency # create one move line for the total - total = 0 - total_currency = 0 - total, total_currency, iml = self.compute_expense_totals(cr, uid, exp, company_currency, exp.name, iml, context=ctx) - - - #Need to have counterline: + total, total_currency, iml = self.compute_expense_totals(cr, uid, exp, company_currency, exp.name, iml, context=context) + #counterline with the total on payable account for the employee + acc = exp.employee_id.address_home_id.property_account_payable.id iml.append({ - 'type':'dest', - 'name':'/', - 'price':total, + 'type': 'dest', + 'name': '/', + 'price': total, 'account_id': acc, 'date_maturity': exp.date_confirm, 'amount_currency': diff_currency_p and total_currency or False, @@ -327,27 +257,10 @@ class hr_expense_expense(osv.osv): 'ref': exp.name }) - line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x, exp.user_id.partner_id, exp.date_confirm, context=ctx)),iml) - move_obj.write(cr, uid, [move_id], {'line_id':line}, context=ctx) - self.write(cr, uid, ids, {'account_move_id':move_id, 'state':'done'}, context=context) - - - #compute_taxes = ait_obj.compute(cr, uid, , context=context) - - - -# return { -# 'type':'src', -# 'name':line.name.split('\n')[0][:64], -# 'price_unit':line.price_unit, -# 'quantity':line.quantity, -# 'price':line.price_subtotal, -# 'account_id':line.account_id.id, -# 'product_id':line.product_id.id, -# 'uos_id':line.uos_id.id, -# 'account_analytic_id':line.account_analytic_id.id, -# 'taxes':line.invoice_line_tax_id} - + lines = map(lambda x:(0,0,self.line_get_convert(cr, uid, x, exp.user_id.partner_id, exp.date_confirm, context=context)),iml) + move_obj.write(cr, uid, [move_id], {'line_id': lines}, context=context) + self.write(cr, uid, ids, {'account_move_id': move_id, 'state': 'done'}, context=context) + return True def move_line_get(self, cr, uid, expense_id, context=None): res = [] @@ -442,80 +355,11 @@ class hr_expense_expense(osv.osv): } - - - def action_receipt_create(self, cr, uid, ids, context=None): - property_obj = self.pool.get('ir.property') - sequence_obj = self.pool.get('ir.sequence') - analytic_journal_obj = self.pool.get('account.analytic.journal') - account_journal = self.pool.get('account.journal') - voucher_obj = self.pool.get('account.voucher') - currency_obj = self.pool.get('res.currency') - wkf_service = netsvc.LocalService("workflow") - if context is None: - context = {} - for exp in self.browse(cr, uid, ids, context=context): - company_id = exp.company_id.id - lines = [] - total = 0.0 - ctx = context.copy() - ctx.update({'date': exp.date}) - journal = False - if exp.journal_id: - journal = exp.journal_id - else: - journal_id = voucher_obj._get_journal(cr, uid, context={'type': 'purchase', 'company_id': company_id}) - if journal_id: - journal = account_journal.browse(cr, uid, journal_id, context=context) - if not journal: - raise osv.except_osv(_('Error!'), _("No expense journal found. Please make sure you have a journal with type 'purchase' configured.")) - for line in exp.line_ids: - if line.product_id: - acc = line.product_id.property_account_expense - if not acc: - acc = line.product_id.categ_id.property_account_expense_categ - else: - acc = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context={'force_company': company_id}) - if not acc: - raise osv.except_osv(_('Error!'), _('Please configure Default Expense account for Product purchase: `property_account_expense_categ`.')) - total_amount = line.total_amount - if journal.currency: - if exp.currency_id != journal.currency: - total_amount = currency_obj.compute(cr, uid, exp.currency_id.id, journal.currency.id, total_amount, context=ctx) - elif exp.currency_id != exp.company_id.currency_id: - total_amount = currency_obj.compute(cr, uid, exp.currency_id.id, exp.company_id.currency_id.id, total_amount, context=ctx) - lines.append((0, False, { - 'name': line.name, - 'account_id': acc.id, - 'account_analytic_id': line.analytic_account.id, - 'amount': total_amount, - 'type': 'dr' - })) - total += total_amount - if not exp.employee_id.address_home_id: - raise osv.except_osv(_('Error!'), _('The employee must have a home address.')) - acc = exp.employee_id.address_home_id.property_account_payable.id - voucher = { - 'name': exp.name or '/', - 'reference': sequence_obj.get(cr, uid, 'hr.expense.invoice'), - 'account_id': acc, - 'type': 'purchase', - 'partner_id': exp.employee_id.address_home_id.id, - 'company_id': company_id, - 'line_ids': lines, - 'amount': total, - 'journal_id': journal.id, - } - if journal and not journal.analytic_journal_id: - analytic_journal_ids = analytic_journal_obj.search(cr, uid, [('type','=','purchase')], context=context) - if analytic_journal_ids: - account_journal.write(cr, uid, [journal.id], {'analytic_journal_id': analytic_journal_ids[0]}, context=context) - voucher_id = voucher_obj.create(cr, uid, voucher, context=context) - self.write(cr, uid, [exp.id], {'voucher_id': voucher_id, 'state': 'done'}, context=context) - return True + raise osv.except_osv(_('Error!'), _('Deprecated function used')) def action_view_receipt(self, cr, uid, ids, context=None): + raise osv.except_osv(_('Error!'), _('Deprecated function used')) ''' This function returns an action that display existing receipt of given expense ids. ''' diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index 0324388786f..cb1a7408a29 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -133,6 +133,7 @@ + From d448390cafeeeadc470d1c84d77252e53483bf50 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 6 Mar 2013 15:35:34 +0100 Subject: [PATCH 24/72] [FIX] hr_expense: mising coma in manifest bzr revid: qdp-launchpad@openerp.com-20130306143534-30vh1xl79eo6bf5c --- addons/hr_expense/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py index 1f4e7b42209..8eb7de957f8 100644 --- a/addons/hr_expense/__openerp__.py +++ b/addons/hr_expense/__openerp__.py @@ -46,7 +46,7 @@ This module also uses analytic accounting and is compatible with the invoice on 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'images': ['images/hr_expenses_analysis.jpeg', 'images/hr_expenses.jpeg'], - 'depends': ['hr', 'account_voucher, account_accountant'], + 'depends': ['hr', 'account_voucher', 'account_accountant'], 'data': [ 'security/ir.model.access.csv', 'hr_expense_data.xml', From ee72f0953aec63c1f5f5444541a9075e0f3c9c43 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 6 Mar 2013 15:38:37 +0100 Subject: [PATCH 25/72] [FIX] hr_expense: typo bzr revid: qdp-launchpad@openerp.com-20130306143837-gc7edztg71h5hi56 --- addons/hr_expense/hr_expense.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index 29570559c65..9196cba3d96 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -166,7 +166,7 @@ class hr_expense_expense(osv.osv): if not journal_id: raise osv.except_osv(_('Error!'), _("No expense journal found. Please make sure you have a journal with type 'purchase' configured.")) journal_id = journal_id[0] - return self.pool.get('account_move').account_move_prepare(cr, uid, journal_id, date=date, ref=ref, company_id=company_id, context=context) + return self.pool.get('account.move').account_move_prepare(cr, uid, journal_id, date=date, ref=ref, company_id=company_id, context=context) def line_get_convert(self, cr, uid, x, part, date, context=None): #partner_id = self.pool.get('res.partner')._find_partner(part) From c41aa09d92796e7e84e0fd892c7bb532af58e683 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 6 Mar 2013 16:21:29 +0100 Subject: [PATCH 26/72] [FIX] Restore cookie_db check bzr revid: fme@openerp.com-20130306152129-945co8a1gljz95eu --- addons/web/controllers/main.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index bc859f10687..b324e5a18cf 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -109,7 +109,9 @@ def db_monodb_redirect(req): dbs = [] # 2 use the database from the cookie if it's listable and still listed - db = req.httprequest.cookies.get('last_used_database') or False + cookie_db = req.httprequest.cookies.get('last_used_database') + if cookie_db in dbs: + db = cookie_db # 3 use the first db if dbs and not db: From fd54f58ccb7802af3aa8eff580affb29dceb9874 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 6 Mar 2013 17:39:31 +0100 Subject: [PATCH 27/72] [IMP] hr_expense: now propose to open the account.move in form view thanks to a button in the expense form view bzr revid: qdp-launchpad@openerp.com-20130306163931-609cgn16xmcr0wot --- addons/hr_expense/hr_expense.py | 25 +++++++++++++------------ addons/hr_expense/hr_expense_view.xml | 2 +- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index 9196cba3d96..cd11d19ff17 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -145,6 +145,9 @@ class hr_expense_expense(osv.osv): def expense_canceled(self, cr, uid, ids, context=None): return self.write(cr, uid, ids, {'state': 'cancelled'}, context=context) + def action_receipt_create(self, cr, uid, ids, context=None): + raise osv.except_osv(_('Error!'), _('Deprecated function used')) + def account_move_get(self, cr, uid, expense_id, context=None): ''' This method prepare the creation of the account move related to the given expense. @@ -354,28 +357,26 @@ class hr_expense_expense(osv.osv): #'taxes':line.invoice_line_tax_id, } - - def action_receipt_create(self, cr, uid, ids, context=None): - raise osv.except_osv(_('Error!'), _('Deprecated function used')) - - def action_view_receipt(self, cr, uid, ids, context=None): - raise osv.except_osv(_('Error!'), _('Deprecated function used')) + def action_view_move(self, cr, uid, ids, context=None): ''' - This function returns an action that display existing receipt of given expense ids. + This function returns an action that display existing account.move of given expense ids. ''' assert len(ids) == 1, 'This option should only be used for a single id at a time' voucher_id = self.browse(cr, uid, ids[0], context=context).voucher_id.id - res = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account_voucher', 'view_purchase_receipt_form') + try: + dummy, view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'view_move_form') + except: + view_id = False result = { - 'name': _('Expense Receipt'), + 'name': _('Expense Account Move'), 'view_type': 'form', 'view_mode': 'form', - 'view_id': res and res[1] or False, - 'res_model': 'account.voucher', + 'view_id': view_id, + 'res_model': 'account.move', 'type': 'ir.actions.act_window', 'nodestroy': True, 'target': 'current', - 'res_id': voucher_id, + 'res_id': account_move_id, } return result diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index cb1a7408a29..3ee97ba3a0e 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -67,7 +67,7 @@ - File + /web/binary/upload_attachment From 22bba15ccd7ab709db9ed2c38a132273c9847e09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 8 Mar 2013 13:43:41 +0100 Subject: [PATCH 41/72] [FIX] email_template: on_change values for m2m can be list of ids, not necessarily commands. bzr revid: tde@openerp.com-20130308124341-ih0f4us81cffer7m --- addons/email_template/wizard/mail_compose_message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index e9f539a22b2..9dad18e07f3 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -141,7 +141,7 @@ class mail_compose_message(osv.TransientModel): # legacy template behavior: void values do not erase existing values and the # related key is removed from the values dict if partner_ids: - values['partner_ids'] = [(6, 0, list(partner_ids))] + values['partner_ids'] = list(partner_ids) return values From 6dbb52267f514055f013207f7522f9d49dfd6110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 8 Mar 2013 13:47:24 +0100 Subject: [PATCH 42/72] [FIX] res_partner: notification_email_send help and selection values strings updated for cleaner explanations. bzr revid: tde@openerp.com-20130308124724-6tmb4w180sf32ktb --- addons/mail/res_partner.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/addons/mail/res_partner.py b/addons/mail/res_partner.py index 218b5ae3cb7..6807c13a08a 100644 --- a/addons/mail/res_partner.py +++ b/addons/mail/res_partner.py @@ -30,13 +30,16 @@ class res_partner_mail(osv.Model): _columns = { 'notification_email_send': fields.selection([ - ('all', 'All feeds'), - ('comment', 'Comments and Emails'), - ('email', 'Emails only'), + ('all', 'All Messages (discussions, emails, followed system notifications)'), + ('comment', 'Incoming Emails and Discussions'), + ('email', 'Incoming Emails only'), ('none', 'Never') - ], 'Receive Feeds by Email', required=True, - help="Choose in which case you want to receive an email when you "\ - "receive new feeds."), + ], 'Receive Messages by Email', required=True, + help="Policy to receive emails for new notifications pushed to your Inbox. "\ + "'Never' prevents OpenERP from sending emails for notifications. "\ + "'Incoming Emails only' send an email when you receive an incoming email, such as customer replies. "\ + "'Incoming Emails and Discussions' sends emails for incoming emails along with user input. "\ + "'All Messages' also sends emails for notifications received for followed subtype, like stage changes, in addition to Incoming Emails and Discussions."), } _defaults = { From d130a05e8cf147ea983c42de588d3ac9c66e319a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 8 Mar 2013 13:47:53 +0100 Subject: [PATCH 43/72] [FIX] crm, email_template: opt_out parameter used only for mass mailing and marketing campaigns. Updated help accordingly. bzr revid: tde@openerp.com-20130308124753-dzt5e5nf7zpaq2dk --- addons/crm/crm_lead.py | 2 +- addons/email_template/res_partner.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index e8bba67e1ce..9b3697b8dc5 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -259,7 +259,7 @@ class crm_lead(base_stage, format_address, osv.osv): 'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel (mail, direct, phone, ...)"), 'contact_name': fields.char('Contact Name', size=64), 'partner_name': fields.char("Customer Name", size=64,help='The name of the future partner company that will be created while converting the lead into opportunity', select=1), - 'opt_out': fields.boolean('Opt-Out', oldname='optout', help="If opt-out is checked, this contact has refused to receive emails or unsubscribed to a campaign."), + 'opt_out': fields.boolean('Opt-Out', oldname='optout', help="If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign."), 'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'date_closed': fields.datetime('Closed', readonly=True), diff --git a/addons/email_template/res_partner.py b/addons/email_template/res_partner.py index 987fca43219..bf730f37458 100644 --- a/addons/email_template/res_partner.py +++ b/addons/email_template/res_partner.py @@ -28,8 +28,8 @@ class res_partner(osv.osv): _inherit = 'res.partner' _columns = { - 'opt_out': fields.boolean('Opt-Out', help="If checked, this partner will not receive any automated email " \ - "notifications, such as the availability of invoices."), + 'opt_out': fields.boolean('Opt-Out', + help="If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign."), } _defaults = { From 6d78c2f2349ea64d5248644c559c34a0bdccd7f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 8 Mar 2013 13:48:35 +0100 Subject: [PATCH 44/72] [FIX] res_partner: mail now adds forgotten notification_email_send field; otherwise partner manager are not able to change the email reception policy for partners that are not users. bzr revid: tde@openerp.com-20130308124835-sooyabgjhawjg7qr --- addons/mail/res_partner_view.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/mail/res_partner_view.xml b/addons/mail/res_partner_view.xml index a4aa56ae971..7df5d27c9d0 100644 --- a/addons/mail/res_partner_view.xml +++ b/addons/mail/res_partner_view.xml @@ -7,6 +7,9 @@ res.partner + + +
From 16a89075e0cbfcb42bfe0e8c6ebbac2012b1097e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 8 Mar 2013 14:14:52 +0100 Subject: [PATCH 45/72] [FIX] FieldTextHtml: fixed quote error in parameter of cleditor, leading to font-family not taken into account. bzr revid: tde@openerp.com-20130308131452-8mmmpc6was3lfse8 --- 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 3ca546a9754..c8f7eaf032e 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2662,7 +2662,7 @@ instance.web.form.FieldTextHtml = instance.web.form.AbstractField.extend(instanc "| removeformat | bullets numbering | outdent " + "indent | link unlink | source", bodyStyle: // style to assign to document body contained within the editor - "margin:4px; color:#4c4c4c; font-size:13px; font-family:\"Lucida Grande\",Helvetica,Verdana,Arial,sans-serif; cursor:text" + "margin:4px; color:#4c4c4c; font-size:13px; font-family:\'Lucida Grande\',Helvetica,Verdana,Arial,sans-serif; cursor:text" }); this.$cleditor = this.$textarea.cleditor()[0]; this.$cleditor.change(function() { From 7310643b6b15e09db11de2ec38be007e37706936 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 11 Mar 2013 12:46:23 +0100 Subject: [PATCH 46/72] [IMP] email: better reply_to that includes document name. bzr revid: tde@openerp.com-20130311114623-ftcj8s8rbahvjupz --- addons/mail/mail_mail.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py index 1b3ca152a9a..6219ace864f 100644 --- a/addons/mail/mail_mail.py +++ b/addons/mail/mail_mail.py @@ -21,6 +21,7 @@ import base64 import logging +import re from urllib import urlencode from urlparse import urljoin @@ -198,13 +199,27 @@ class mail_mail(osv.Model): :param browse_record mail: mail.mail browse_record :param browse_record partner: specific recipient partner """ + # TDE FIXME BEFORE MERGE: not sure the late change is interesting if mail.reply_to: return mail.reply_to - if not mail.model or not mail.res_id: - return False - if not hasattr(self.pool.get(mail.model), 'message_get_reply_to'): - return False - return self.pool.get(mail.model).message_get_reply_to(cr, uid, [mail.res_id], context=context)[0] + document_name = '' + email_reply_to = False + if mail.model and mail.res_id and hasattr(self.pool.get(mail.model), 'message_get_reply_to'): + email_reply_to = self.pool.get(mail.model).message_get_reply_to(cr, uid, [mail.res_id], context=context)[0] + + if not email_reply_to: + if mail.email_from: + match = re.search(r'([^\s,<@]+@[^>\s,]+)', mail.email_from) # TDE TODO: simplify multiple same regex + if match: + email_reply_to = match.group(1) + + if email_reply_to: + if mail.model and mail.res_id: + document_name = self.pool.get(mail.model).name_get(cr, SUPERUSER_ID, [mail.res_id], context=context)[0] + if document_name: + return 'Followers of %s <%s>' % (document_name[1], email_reply_to) + else: + return email_reply_to def send_get_email_dict(self, cr, uid, mail, partner=None, context=None): """ Return a dictionary for specific email values, depending on a From a2a8c238dcd04e683ef6d3f1051aaa9e432db89a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 11 Mar 2013 13:42:54 +0100 Subject: [PATCH 47/72] [CLEAN] email_template: removed a print statement. bzr revid: tde@openerp.com-20130311124254-xzxs1r6cnqw2zxxc --- addons/email_template/wizard/mail_compose_message.py | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index 9dad18e07f3..255f93998a2 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -70,7 +70,6 @@ class mail_compose_message(osv.TransientModel): elif template_id: # FIXME odo: change the mail generation to avoid attachment duplication values = self.generate_email_for_composer(cr, uid, template_id, res_id, context=context) - print values.get('partner_ids') # transform attachments into attachment_ids values['attachment_ids'] = [] ir_attach_obj = self.pool.get('ir.attachment') From 6ae80a98acb524d0965658446a65bf5fd2a020d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 11 Mar 2013 13:49:14 +0100 Subject: [PATCH 48/72] [CLEAN] mail: cleaned code of modified reply_to. bzr revid: tde@openerp.com-20130311124914-xcdbgmw4w7nm02rv --- addons/mail/mail_mail.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py index 6219ace864f..1ca3255fd84 100644 --- a/addons/mail/mail_mail.py +++ b/addons/mail/mail_mail.py @@ -202,24 +202,26 @@ class mail_mail(osv.Model): # TDE FIXME BEFORE MERGE: not sure the late change is interesting if mail.reply_to: return mail.reply_to - document_name = '' email_reply_to = False + + # if model and res_id: try to use ``message_get_reply_to`` that returns the document alias if mail.model and mail.res_id and hasattr(self.pool.get(mail.model), 'message_get_reply_to'): email_reply_to = self.pool.get(mail.model).message_get_reply_to(cr, uid, [mail.res_id], context=context)[0] + # no alias reply_to -> reply_to will be the email_from, only the email part + if not email_reply_to and mail.email_from: + match = re.search(r'([^\s,<@]+@[^>\s,]+)', mail.email_from) # TDE TODO: simplify multiple same regex + if match: + email_reply_to = match.group(1) - if not email_reply_to: - if mail.email_from: - match = re.search(r'([^\s,<@]+@[^>\s,]+)', mail.email_from) # TDE TODO: simplify multiple same regex - if match: - email_reply_to = match.group(1) - + # format 'Document name ' if email_reply_to: + document_name = '' if mail.model and mail.res_id: document_name = self.pool.get(mail.model).name_get(cr, SUPERUSER_ID, [mail.res_id], context=context)[0] if document_name: - return 'Followers of %s <%s>' % (document_name[1], email_reply_to) - else: - return email_reply_to + email_reply_to = 'Followers of %s <%s>' % (document_name[1], email_reply_to) + + return email_reply_to def send_get_email_dict(self, cr, uid, mail, partner=None, context=None): """ Return a dictionary for specific email values, depending on a From 459fce0150981269e668fda52001463269f58659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 11 Mar 2013 15:08:38 +0100 Subject: [PATCH 49/72] [CLEAN] Removed unnecessary quotes. As Teal'c said: Indeed. bzr revid: tde@openerp.com-20130311140838-g9pvncskvuibz1wm --- 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 c8f7eaf032e..952a1c9d15f 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2662,7 +2662,7 @@ instance.web.form.FieldTextHtml = instance.web.form.AbstractField.extend(instanc "| removeformat | bullets numbering | outdent " + "indent | link unlink | source", bodyStyle: // style to assign to document body contained within the editor - "margin:4px; color:#4c4c4c; font-size:13px; font-family:\'Lucida Grande\',Helvetica,Verdana,Arial,sans-serif; cursor:text" + "margin:4px; color:#4c4c4c; font-size:13px; font-family:'Lucida Grande',Helvetica,Verdana,Arial,sans-serif; cursor:text" }); this.$cleditor = this.$textarea.cleditor()[0]; this.$cleditor.change(function() { From ee46eb8015d72c5a7ba69f347e844d9386d1cb04 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 12 Mar 2013 14:14:12 +0100 Subject: [PATCH 50/72] [FIX] blurring propagation on m2m tag fields lp bug: https://launchpad.net/bugs/1153492 fixed bzr revid: xmo@openerp.com-20130312131412-mtcl932of1466n2j --- addons/web/static/src/js/view_form.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 80abcc0afdf..d81ccbd0b51 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -4037,6 +4037,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in if (this.get("effective_readonly")) return; var self = this; + var ignore_blur = false; self.$text = this.$("textarea"); self.$text.textext({ plugins : 'tags arrow autocomplete', @@ -4055,6 +4056,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in if (data.id) { self.add_id(data.id); } else { + ignore_blur = true; data.action(); } }, @@ -4105,10 +4107,13 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in self.$text .focusin(function () { self.trigger('focused'); + ignore_blur = false; }) .focusout(function() { self.$text.trigger("setInputData", ""); - self.trigger('blurred'); + if (!ignore_blur) { + self.trigger('blurred'); + } }).keydown(function(e) { if (e.which === $.ui.keyCode.TAB && self._drop_shown) { self.$text.textext()[0].autocomplete().selectFromDropdown(); From 18eb55643e42765ffb5f4ed03d70b1fa55967c95 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 12 Mar 2013 14:21:44 +0100 Subject: [PATCH 51/72] [FIX] hide form autofocus trying to focus destroyed fields under the rug lp bug: https://launchpad.net/bugs/1153437 fixed bzr revid: xmo@openerp.com-20130312132144-o5enjfemuk5zxilz --- 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 d81ccbd0b51..673bfc7058e 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -3306,7 +3306,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc }, focus: function () { if (!this.get('effective_readonly')) { - this.$input[0].focus(); + this.$input && this.$input[0].focus(); } }, _quick_create: function() { From 74a1ea66174884b4cf1f075c4adfe8007c1d6fd6 Mon Sep 17 00:00:00 2001 From: Thibault Delavallee Date: Tue, 12 Mar 2013 15:18:38 +0100 Subject: [PATCH 52/72] [FIX] sale: fixed typo in message, quotation send -> quotation sent. bzr revid: tde@openerp.com-20130312141838-rwmj9fv07ar7uvx5 --- addons/sale/sale_data.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/sale/sale_data.xml b/addons/sale/sale_data.xml index a0e93cbf581..fc2287cadc0 100644 --- a/addons/sale/sale_data.xml +++ b/addons/sale/sale_data.xml @@ -46,10 +46,10 @@ - Quotation send + Quotation sent sale.order - Quotation send + Quotation sent Sales Order Confirmed From 95f3847244ee84bbfe1e641012f140bdce8d0d66 Mon Sep 17 00:00:00 2001 From: Frederic van der Essen Date: Tue, 12 Mar 2013 16:06:38 +0100 Subject: [PATCH 53/72] [FIX] point_of_sale: potentially improve performance when loading lots of categories bzr revid: fred@pc-fred.localhost-20130312150638-s980pt6pezi16x2j --- addons/point_of_sale/static/src/js/db.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/point_of_sale/static/src/js/db.js b/addons/point_of_sale/static/src/js/db.js index 2be58d6ce97..a79b111b5c5 100644 --- a/addons/point_of_sale/static/src/js/db.js +++ b/addons/point_of_sale/static/src/js/db.js @@ -178,7 +178,7 @@ function openerp_pos_db(instance, module){ var ancestors = this.get_category_ancestors_ids(categ_id) || []; - for(var j = 0; j < ancestors.length; j++){ + for(var j = 0, jlen = ancestors.length; j < jlen; j++){ var ancestor = ancestors[j]; if(! stored_categories[ancestor]){ stored_categories[ancestor] = []; From ace0e38574a5442848a5f2edeadec1b7412671dd Mon Sep 17 00:00:00 2001 From: "dle@openerp.com" <> Date: Tue, 12 Mar 2013 17:55:46 +0100 Subject: [PATCH 54/72] [FIX]crm: crm_lead, search view, group_by stage appeared twice bzr revid: dle@openerp.com-20130312165546-lign74m7ypz7wrec --- addons/crm/crm_lead_view.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index d5a24575809..df68f90aa57 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -348,7 +348,6 @@ - From e35e1990641077eaa3ea0b5e164278918d515547 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 12 Mar 2013 18:05:15 +0100 Subject: [PATCH 55/72] [FIX] small error, probably due to refactoring, that disabled feature of form buttons. The feature was to disable button automatically buttons in unsaved o2m to avoid errors. lp bug: https://launchpad.net/bugs/1095255 fixed bzr revid: nicolas.vanhoren@openerp.com-20130312170515-qt74ceqm50uscupu --- addons/web/static/src/js/view_form.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 673bfc7058e..57b528e7ecf 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -1892,10 +1892,11 @@ instance.web.form.WidgetButton = instance.web.form.FormWidget.extend({ if (this.node.attrs.icon && (! /\//.test(this.node.attrs.icon))) { this.node.attrs.icon = '/web/static/src/img/icons/' + this.node.attrs.icon + '.png'; } - this.view.on('view_content_has_changed', this, this.check_disable); }, start: function() { this._super.apply(this, arguments); + this.view.on('view_content_has_changed', this, this.check_disable); + this.check_disable(); this.$el.click(this.on_click); if (this.node.attrs.help || instance.session.debug) { this.do_attach_tooltip(); From f79f6a5a25a0708e662f2deed4a54c704c6872b5 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 13 Mar 2013 04:59:10 +0000 Subject: [PATCH 56/72] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130313045907-qk0bmylr4b75nwiq bzr revid: launchpad_translations_on_behalf_of_openerp-20130313045910-tzs0o1kzuyfhsx05 --- addons/account/i18n/it.po | 11 +- addons/account/i18n/mk.po | 25 +- addons/account/i18n/nl.po | 14 +- addons/account/i18n/ro.po | 345 ++++++++++++------------ addons/account/i18n/sv.po | 26 +- addons/crm/i18n/hu.po | 45 ++-- addons/crm_claim/i18n/hu.po | 102 ++++--- addons/crm_helpdesk/i18n/hu.po | 19 +- addons/google_docs/i18n/mk.po | 22 +- addons/knowledge/i18n/de.po | 22 +- addons/multi_company/i18n/hr.po | 4 +- addons/point_of_sale/i18n/hr.po | 4 +- addons/product/i18n/de.po | 19 +- addons/product/i18n/hr.po | 4 +- addons/project/i18n/hr.po | 70 ++--- addons/project_timesheet/i18n/mk.po | 35 ++- addons/purchase/i18n/mk.po | 14 +- addons/purchase/i18n/ro.po | 335 ++++++++++++----------- addons/purchase_requisition/i18n/mk.po | 21 +- addons/report_intrastat/i18n/mk.po | 18 +- addons/report_webkit/i18n/mk.po | 106 ++++---- addons/sale/i18n/mk.po | 111 +++++++- addons/sale/i18n/ro.po | 358 ++++++++++++------------- addons/sale_analytic_plans/i18n/mk.po | 8 +- addons/sale_stock/i18n/mk.po | 16 +- addons/share/i18n/mk.po | 17 +- addons/stock/i18n/de.po | 16 +- addons/stock/i18n/mk.po | 132 ++++++--- addons/stock_location/i18n/mk.po | 21 +- addons/subscription/i18n/mk.po | 9 +- addons/survey/i18n/mk.po | 68 +++-- addons/web/i18n/ro.po | 10 +- 32 files changed, 1149 insertions(+), 878 deletions(-) diff --git a/addons/account/i18n/it.po b/addons/account/i18n/it.po index da8274c1518..a06716d86d3 100644 --- a/addons/account/i18n/it.po +++ b/addons/account/i18n/it.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-07 23:55+0000\n" -"Last-Translator: Sergio Corato \n" +"PO-Revision-Date: 2013-03-12 15:06+0000\n" +"Last-Translator: Leonardo Pistone - Agile BG - Domsense " +"\n" "Language-Team: Italian \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-08 05:26+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -8453,7 +8454,7 @@ msgstr "Pro-Forma" #: view:account.move.line:0 #: selection:account.move.line,state:0 msgid "Unbalanced" -msgstr "Zoppe" +msgstr "Squadrate" #. module: account #: selection:account.move.line,centralisation:0 diff --git a/addons/account/i18n/mk.po b/addons/account/i18n/mk.po index a1cc4df1795..c4f0a5d6bf0 100644 --- a/addons/account/i18n/mk.po +++ b/addons/account/i18n/mk.po @@ -9,14 +9,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-11 15:11+0000\n" +"PO-Revision-Date: 2013-03-12 08:35+0000\n" "Last-Translator: Aleksandar Panov \n" "Language-Team: ESKON-INZENERING\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-12 05:18+0000\n" -"X-Generator: Launchpad (build 16524)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" "Language: mk\n" #. module: account @@ -2329,6 +2329,8 @@ msgid "" "You cannot change the type of account to '%s' type as it contains journal " "items!" msgstr "" +"Неможе да се промени типот на сметката во '%s' бидејќи содржи ставки од " +"дневникот!" #. module: account #: model:ir.model,name:account.model_account_aged_trial_balance @@ -3426,7 +3428,7 @@ msgstr "Пробна состојба" #: code:addons/account/account.py:431 #, python-format msgid "Unable to adapt the initial balance (negative value)." -msgstr "" +msgstr "Неможе да се адаптира почетното салдо (негативна вредност)." #. module: account #: selection:account.invoice,type:0 @@ -4717,6 +4719,7 @@ msgid "" "If you put \"%(year)s\" in the prefix, it will be replaced by the current " "year." msgstr "" +"Доколку ставите \"%(year)s\" во префиксот, ќе се замени со сегашната година." #. module: account #: help:account.account,active:0 @@ -5136,6 +5139,8 @@ msgid "" "Error!\n" "You cannot create an account which has parent account of different company." msgstr "" +"Грешка!\n" +"Неможе да креирате сметка што има матична сметка од друга компанија." #. module: account #: code:addons/account/account_invoice.py:627 @@ -9586,7 +9591,7 @@ msgstr "" #: code:addons/account/account.py:634 #, python-format msgid "You cannot deactivate an account that contains journal items." -msgstr "" +msgstr "Неможе да деактивирате сметка што содржи ставки од дневникот." #. module: account #: selection:account.tax,applicable_type:0 @@ -10523,7 +10528,7 @@ msgstr "Currency Rate" #. module: account #: view:account.config.settings:0 msgid "e.g. sales@openerp.com" -msgstr "" +msgstr "на пр. sales@openerp.com" #. module: account #: field:account.account,tax_ids:0 @@ -10913,7 +10918,7 @@ msgstr "" #. module: account #: view:account.partner.reconcile.process:0 msgid "Go to Next Partner" -msgstr "" +msgstr "Оди на следен партнер" #. module: account #: view:account.automatic.reconcile:0 @@ -11297,7 +11302,7 @@ msgstr "Parent Right" #: code:addons/account/static/src/js/account_move_reconciliation.js:80 #, python-format msgid "Never" -msgstr "" +msgstr "Никогаш" #. module: account #: model:ir.model,name:account.model_account_addtmpl_wizard @@ -11318,7 +11323,7 @@ msgstr "Partner's" #. module: account #: field:account.account,note:0 msgid "Internal Notes" -msgstr "" +msgstr "Внатрешни белешки" #. module: account #: model:ir.actions.act_window,name:account.action_account_fiscalyear @@ -11351,7 +11356,7 @@ msgstr "Модел на сметка" #: code:addons/account/account_cash_statement.py:292 #, python-format msgid "Loss" -msgstr "" +msgstr "Загуба" #. module: account #: selection:account.entries.report,month:0 diff --git a/addons/account/i18n/nl.po b/addons/account/i18n/nl.po index 1e2fc2d4943..e5540352741 100644 --- a/addons/account/i18n/nl.po +++ b/addons/account/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-03-09 09:51+0000\n" -"Last-Translator: Erwin van der Ploeg (Endian Solutions) \n" +"PO-Revision-Date: 2013-03-12 11:58+0000\n" +"Last-Translator: debaetsr \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-03-10 05:14+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -6496,7 +6496,7 @@ msgstr "Letter af met afboeken verschil" #: constraint:account.move.line:0 msgid "You cannot create journal items on an account of type view." msgstr "" -"Het is niet ogelijk om regels aan te maken op een rekening van het type " +"Het is niet mogelijk om regels aan te maken op een rekening van het type " "'weergave'." #. module: account @@ -9933,7 +9933,7 @@ msgstr "" #, python-format msgid "You cannot deactivate an account that contains journal items." msgstr "" -"Het is niet mogelijk ene rekening inactief te maken, als deze nog regels " +"Het is niet mogelijk een rekening inactief te maken, als deze nog regels " "bevat." #. module: account @@ -10741,7 +10741,7 @@ msgstr "Code/Datum" #: model:ir.model,name:account.model_account_move_line #: model:ir.ui.menu,name:account.menu_action_account_moves_all msgid "Journal Items" -msgstr "Boekingen" +msgstr "Dagboekregels" #. module: account #: view:accounting.report:0 diff --git a/addons/account/i18n/ro.po b/addons/account/i18n/ro.po index 07f58154714..db8c0167a83 100644 --- a/addons/account/i18n/ro.po +++ b/addons/account/i18n/ro.po @@ -8,14 +8,182 @@ 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-07 17:49+0000\n" +"PO-Revision-Date: 2013-03-12 17:38+0000\n" "Last-Translator: Fekete Mihai \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-08 05:27+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" + +#. module: account +#: model:email.template,body_html:account.email_template_edi_invoice +msgid "" +"\n" +"
\n" +"\n" +"

Hello ${object.partner_id.name},

\n" +"\n" +"

A new invoice is available for you:

\n" +" \n" +"

\n" +"   REFERENCES
\n" +"   Invoice number: ${object.number}
\n" +"   Invoice total: ${object.amount_total} " +"${object.currency_id.name}
\n" +"   Invoice date: ${object.date_invoice}
\n" +" % if object.origin:\n" +"   Order reference: ${object.origin}
\n" +" % endif\n" +" % if object.user_id:\n" +"   Your contact: ${object.user_id.name}\n" +" % endif\n" +"

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

It is also possible to directly pay with Paypal:

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

If you have any question, do not hesitate to contact us.

\n" +"

Thank you for choosing ${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" +" Phone:  ${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" +" " +msgstr "" +"\n" +"
\n" +"\n" +"

Buna ziua ${object.partner_id.name},

\n" +"\n" +"

O noua factura este disponibila pentru dumneavoastra:

\n" +" \n" +"

\n" +"   REFERINTE
\n" +"   Numarul facturii: ${object.number}
\n" +"   Total factura: ${object.amount_total} " +"${object.currency_id.name}
\n" +"   Data facturii: ${object.date_invoice}
\n" +" % if object.origin:\n" +"   Referinta comenzii: ${object.origin}
\n" +" % endif\n" +" % if object.user_id:\n" +"   Contactul dumneavoastra: ${object.user_id.name}\n" +" % endif\n" +"

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

De asemenea, puteti sa platiti direct cu Paypal:

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

Daca aveti intrebari, nu ezitati sa ne contactati.

\n" +"

Va multumim pentru ca ati ales ${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" +" Telefon:  ${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: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -3667,177 +3835,6 @@ msgstr "Sablon Cod Fiscal" msgid "Account Partner Ledger" msgstr "Registru Cont Partener" -#. module: account -#: model:email.template,body_html:account.email_template_edi_invoice -msgid "" -"\n" -"
\n" -"\n" -"

Hello ${object.partner_id.name},

\n" -"\n" -"

A new invoice is available for you:

\n" -" \n" -"

\n" -"   REFERENCES
\n" -"   Invoice number: ${object.number}
\n" -"   Invoice total: ${object.amount_total} " -"${object.currency_id.name}
\n" -"   Invoice date: ${object.date_invoice}
\n" -" % if object.origin:\n" -"   Order reference: ${object.origin}
\n" -" % endif\n" -" % if object.user_id:\n" -"   Your contact: ${object.user_id.name}\n" -" % endif\n" -"

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

It is also possible to directly pay with Paypal:

\n" -" \n" -" \n" -" \n" -" % endif\n" -" \n" -"
\n" -"

If you have any question, do not hesitate to contact us.

\n" -"

Thank you for choosing ${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" -" Phone:  ${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" -" " -msgstr "" -"\n" -"\n" -"\n" -"

Buna ziua ${obiect.partener_id.nume},

\n" -"\n" -"

O noua factura este disponibila pentru dumneavoastra:

\n" -" \n" -" \n" -"   REFERINTE
\n" -"   Numarul facturii: ${obiect.numar}
\n" -"   Total factura: ${obiect.suma_totala} " -"${obiect.valuta_id.nume}
\n" -"   Data facturii: ${obiect.data_facturii}
\n" -" % if obiect.origine:\n" -"   Referinta comenzii: ${obiect.origine}
\n" -" % endif\n" -" % if obiect.id_utilizator:\n" -"   Contactul dumneavoastra: ${obiect.id_utilizator.nume}\n" -" % endif\n" -"

\n" -" \n" -" % if obiect.url_paypal:\n" -"
\n" -"

De asemenea, puteti sa platiti direct cu Paypal:

\n" -" \n" -" \n" -" \n" -" % endif\n" -" \n" -"
\n" -"

Daca aveti intrebari, nu ezitati sa ne contactati.

\n" -"

Va multumim pentru ca ati ales ${obiect.companie_id.nume sau " -"'noi'}!

\n" -"
\n" -"
\n" -" \n" -" \n" -" ${obiect.id_companie.nume}\n" -"
\n" -" \n" -" \n" -" % if obiect.id_companie.strada:\n" -" ${obiect.id_companie.strada}
\n" -" % endif\n" -" % if obiect.id_companie.strada2:\n" -" ${obiect.id_companie.strada2}
\n" -" % endif\n" -" % if obiect.id_companie.oras sau obiect.id_companie.cod postal:\n" -" ${obiect.id_companie.cod postal} " -"${obiect.id_companie.oras}
\n" -" % endif\n" -" % if obiect.id_companie.id_tara:\n" -" ${obiect.id_companie.id-stat si ('%s, ' % " -"obiect.id_companie.id_stat.nume) sau ''} ${obiect.id_companie.id_tara.nume " -"sau ''}
\n" -" % endif\n" -" \n" -" % if obiect.id_companie.telefon:\n" -" \n" -" Telefon:  ${obiect.id_companie.telefon}\n" -" \n" -" % endif\n" -" % if obiect.id_companie.pagina_de_internet:\n" -" \n" -" %endif\n" -"

\n" -" \n" -"\n" -" " - #. module: account #: view:account.period:0 msgid "Account Period" diff --git a/addons/account/i18n/sv.po b/addons/account/i18n/sv.po index 1d0898380fb..77015fe588f 100644 --- a/addons/account/i18n/sv.po +++ b/addons/account/i18n/sv.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-20 17:11+0000\n" -"Last-Translator: Mikael Dúi Bolinder \n" +"PO-Revision-Date: 2013-03-12 16:12+0000\n" +"Last-Translator: Jan-Eric Lindh \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-08 05:28+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -169,7 +169,7 @@ msgstr "" #: field:account.fiscal.position.account,account_src_id:0 #: field:account.fiscal.position.account.template,account_src_id:0 msgid "Account Source" -msgstr "Konto Källa" +msgstr "Källkonto" #. module: account #: model:ir.actions.act_window,help:account.action_account_period @@ -285,7 +285,7 @@ msgstr "Tillåt avskrivningar" #. module: account #: view:account.analytic.chart:0 msgid "Select the Period for Analysis" -msgstr "Välj period för analysering" +msgstr "Välj period för analys" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree3 @@ -355,7 +355,7 @@ msgstr "Du måste definiera objektjournal för '%s' journalen!" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "June" -msgstr "Juni" +msgstr "juni" #. module: account #: code:addons/account/wizard/account_automatic_reconcile.py:148 @@ -773,7 +773,7 @@ msgstr "Huvudboksrapport" #. module: account #: view:account.invoice:0 msgid "Re-Open" -msgstr "Reaktivera" +msgstr "Återöppna" #. module: account #: view:account.use.model:0 @@ -996,7 +996,7 @@ msgstr "Att betala" #. module: account #: field:account.config.settings,purchase_journal_id:0 msgid "Purchase journal" -msgstr "" +msgstr "Inköpsjournal" #. module: account #: model:mail.message.subtype,description:account.mt_invoice_paid @@ -1014,7 +1014,7 @@ msgstr "Godkänn" #: view:account.move:0 #: view:report.invoice.created:0 msgid "Total Amount" -msgstr "Total summa" +msgstr "Totalsumma" #. module: account #: help:account.invoice,supplier_invoice_number:0 @@ -1281,7 +1281,7 @@ msgstr "Ersättningsskatt" #. module: account #: selection:account.move.line,centralisation:0 msgid "Credit Centralisation" -msgstr "Kredit Centralisering" +msgstr "Kreditcentralisering" #. module: account #: model:ir.actions.act_window,name:account.action_account_tax_code_template_form @@ -1628,7 +1628,7 @@ msgstr "Kreditnota" #. module: account #: view:account.config.settings:0 msgid "eInvoicing & Payments" -msgstr "" +msgstr "E-fakturor och betalningar" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 @@ -2081,7 +2081,7 @@ msgstr "Fel kredit- eller debetvärde i bokföringstransaktionerna." #: model:ir.actions.act_window,name:account.action_account_invoice_report_all #: model:ir.ui.menu,name:account.menu_action_account_invoice_report_all msgid "Invoices Analysis" -msgstr "Fakturor analys" +msgstr "Fakturaanalyser" #. module: account #: model:ir.model,name:account.model_mail_compose_message diff --git a/addons/crm/i18n/hu.po b/addons/crm/i18n/hu.po index 373a1acf554..4bf53ca7404 100644 --- a/addons/crm/i18n/hu.po +++ b/addons/crm/i18n/hu.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:36+0000\n" -"PO-Revision-Date: 2012-12-21 23:00+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-03-12 18:01+0000\n" +"Last-Translator: krnkris \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-08 05:38+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: crm #: view:crm.lead.report:0 @@ -28,6 +28,8 @@ msgid "" "Allows you to configure your incoming mail server, and create leads from " "incoming emails." msgstr "" +"Lehetővé teszi a bejövő email szerver beállítását, és érdeklődés " +"létrehozását a bejövő levelekből." #. module: crm #: code:addons/crm/crm_lead.py:881 @@ -55,6 +57,11 @@ msgid "" "Description: [[object.description]]\n" " " msgstr "" +"Figyelem a feldolgozatlan bejövő érdeklődés több mint 5 napos.\n" +"Név: [[object.name ]]\n" +"ID azonosító: [[object.id ]]\n" +"Leírás: [[object.description]]\n" +" " #. module: crm #: field:crm.opportunity2phonecall,action:0 @@ -65,7 +72,7 @@ msgstr "Művelet" #. module: crm #: model:ir.actions.server,name:crm.action_set_team_sales_department msgid "Set team to Sales Department" -msgstr "" +msgstr "Csoport beállítása az értékesítési osztályhoz" #. module: crm #: view:crm.lead2opportunity.partner.mass:0 @@ -82,7 +89,7 @@ msgstr "" #: view:crm.lead.report:0 #: field:crm.phonecall.report,delay_close:0 msgid "Delay to close" -msgstr "" +msgstr "Késleltetés a zárásig" #. module: crm #: view:crm.case.stage:0 @@ -101,7 +108,7 @@ msgstr "" #. module: crm #: model:ir.model,name:crm.model_crm_lead_report msgid "CRM Lead Analysis" -msgstr "" +msgstr "CRM érdeklődés elemzés" #. module: crm #: view:crm.lead.report:0 @@ -339,6 +346,8 @@ msgstr "Kapcsolat" msgid "" "When escalating to this team override the salesman with the team leader." msgstr "" +"Ha kiterjeszti erre a csoportra akkor felülírja az értékesítőt a csoport " +"vezetővel." #. module: crm #: model:process.transition,name:crm.process_transition_opportunitymeeting0 @@ -359,7 +368,7 @@ msgstr "Ha egy valódi projektet/lehetőséget érzékel" #. module: crm #: field:res.partner,opportunity_ids:0 msgid "Leads and Opportunities" -msgstr "Érdeklődők és Lehetőségek" +msgstr "Érdeklődések és Lehetőségek" #. module: crm #: model:ir.actions.act_window,help:crm.relate_partner_opportunities @@ -415,7 +424,7 @@ msgstr "Frissítés dátuma" #. module: crm #: field:crm.case.section,user_id:0 msgid "Team Leader" -msgstr "" +msgstr "Csoportvezető" #. module: crm #: code:addons/crm/crm_lead.py:1032 @@ -451,6 +460,8 @@ msgstr "Lehetőségek száma" msgid "" "Please select more than one element (lead or opportunity) from the list view." msgstr "" +"Kérem válaszon ki több mint egy elemet (érdeklődés vagy lehetőség) a lista " +"nézetből." #. module: crm #: field:crm.lead,partner_address_email:0 @@ -587,6 +598,8 @@ msgid "" "Reminder on Lead: [[object.id ]] [[object.partner_id and 'of ' " "+object.partner_id.name or '']]" msgstr "" +"Emlékeztető az érdeklődésre: [[object.id ]] [[object.partner_id and 'of ' " +"+object.partner_id.name or '']]" #. module: crm #: code:addons/crm/crm_lead.py:745 @@ -699,7 +712,7 @@ msgstr "" #. module: crm #: model:ir.filters,name:crm.filter_usa_lead msgid "Leads from USA" -msgstr "" +msgstr "Érdeklődés USA-ból" #. module: crm #: sql_constraint:crm.lead:0 @@ -709,7 +722,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Leads Generation" -msgstr "" +msgstr "Érdeklődés generálása" #. module: crm #: view:board.board:0 @@ -765,6 +778,8 @@ msgstr "Telefonszámok közötti keresés" msgid "" "Leads/Opportunities that are assigned to one of the sale teams I manage" msgstr "" +"Érdeklődés/Lehetőség ami az általam vezetett értékesítési osztályhoz lett " +"rendelve" #. module: crm #: field:crm.segmentation.line,expr_value:0 @@ -871,7 +886,7 @@ msgstr "Kimenő" #. module: crm #: view:crm.lead:0 msgid "Leads that are assigned to me" -msgstr "" +msgstr "Érdeklődés ami hozzám lett rendelve" #. module: crm #: view:crm.lead:0 @@ -891,7 +906,7 @@ msgstr "" #. module: crm #: model:ir.filters,name:crm.filter_draft_lead msgid "Draft Leads" -msgstr "" +msgstr "Érdeklődés tervezet" #. module: crm #: selection:crm.lead.report,creation_month:0 @@ -1048,7 +1063,7 @@ msgstr "Létrehozás dátuma" #: code:addons/crm/crm_lead.py:698 #, python-format msgid "Lead converted into an Opportunity" -msgstr "" +msgstr "Tervezet lehetőséggé átalakítva lehetőséggé" #. module: crm #: selection:crm.segmentation.line,expr_name:0 @@ -1063,7 +1078,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Open Leads" -msgstr "" +msgstr "Nyitott érdeklődések" #. module: crm #: view:crm.case.stage:0 diff --git a/addons/crm_claim/i18n/hu.po b/addons/crm_claim/i18n/hu.po index 18a84a7f043..4358c35b6f4 100644 --- a/addons/crm_claim/i18n/hu.po +++ b/addons/crm_claim/i18n/hu.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-03-10 22:55+0000\n" +"PO-Revision-Date: 2013-03-12 16:57+0000\n" "Last-Translator: krnkris \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-11 05:42+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: crm_claim #: help:crm.claim.stage,fold:0 @@ -23,6 +23,8 @@ msgid "" "This stage is not visible, for example in status bar or kanban view, when " "there are no records in that stage to display." msgstr "" +"Ez a szint nem látható, például az állapot sorban vagy kanban nézetben, ha " +"azon a szinten nem lehet rekordot kijelezni." #. module: crm_claim #: field:crm.claim.report,nbr:0 @@ -46,6 +48,8 @@ msgid "" "Allows you to configure your incoming mail server, and create claims from " "incoming emails." msgstr "" +"Engedélyezi a bejövő email szerver konfigurálását, és jótállási igények " +"létrehozását a bejövő levelekből." #. module: crm_claim #: model:ir.model,name:crm_claim.model_crm_claim_stage @@ -60,12 +64,12 @@ msgstr "Március" #. module: crm_claim #: field:crm.claim.report,delay_close:0 msgid "Delay to close" -msgstr "" +msgstr "Késleltetés a zárásig" #. module: crm_claim #: field:crm.claim,message_unread:0 msgid "Unread Messages" -msgstr "" +msgstr "Olvasatlan üzenetek" #. module: crm_claim #: field:crm.claim,resolution:0 @@ -110,12 +114,12 @@ msgstr "# reklamációk száma" #. module: crm_claim #: field:crm.claim.stage,name:0 msgid "Stage Name" -msgstr "" +msgstr "Szakasz neve" #. module: crm_claim #: view:crm.claim.report:0 msgid "Salesperson" -msgstr "" +msgstr "Értékesítő" #. module: crm_claim #: selection:crm.claim,priority:0 @@ -159,7 +163,7 @@ msgstr "Preventív" #. module: crm_claim #: help:crm.claim,message_unread:0 msgid "If checked new messages require your attention." -msgstr "" +msgstr "Ha be van jelölve, akkor figyelje az új üzeneteket." #. module: crm_claim #: field:crm.claim.report,date_closed:0 @@ -169,7 +173,7 @@ msgstr "Zárás dátuma" #. module: crm_claim #: view:res.partner:0 msgid "False" -msgstr "" +msgstr "Hamis" #. module: crm_claim #: field:crm.claim,ref:0 @@ -184,7 +188,7 @@ msgstr "Reklamáció dátuma" #. module: crm_claim #: view:crm.claim.report:0 msgid "# Mails" -msgstr "" +msgstr "E-mailek száma" #. module: crm_claim #: help:crm.claim,message_summary:0 @@ -192,6 +196,8 @@ msgid "" "Holds the Chatter summary (number of messages, ...). This summary is " "directly in html format in order to be inserted in kanban views." msgstr "" +"A chettelés összegzést megállítja (üzenetek száma,...). Ez az összegzés " +"direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe." #. module: crm_claim #: view:crm.claim:0 @@ -245,12 +251,12 @@ msgstr "Prioritás" #. module: crm_claim #: field:crm.claim.stage,fold:0 msgid "Hide in Views when Empty" -msgstr "" +msgstr "Tüntesse el a nézetekben, ha üres" #. module: crm_claim #: field:crm.claim,message_follower_ids:0 msgid "Followers" -msgstr "" +msgstr "Követők" #. module: crm_claim #: view:crm.claim:0 @@ -259,12 +265,12 @@ msgstr "" #: model:crm.claim.stage,name:crm_claim.stage_claim1 #: selection:crm.claim.stage,state:0 msgid "New" -msgstr "" +msgstr "Új" #. module: crm_claim #: field:crm.claim.stage,section_ids:0 msgid "Sections" -msgstr "" +msgstr "Szakaszok" #. module: crm_claim #: field:crm.claim,email_from:0 @@ -285,7 +291,7 @@ msgstr "Következő művelet" #. module: crm_claim #: view:crm.claim.report:0 msgid "My Sales Team(s)" -msgstr "" +msgstr "Az én értékesítő csapato(ai)m" #. module: crm_claim #: field:crm.claim,create_date:0 @@ -300,7 +306,7 @@ msgstr "Reklamáció tárgya" #. module: crm_claim #: model:crm.claim.stage,name:crm_claim.stage_claim3 msgid "Rejected" -msgstr "" +msgstr "Elutasított" #. module: crm_claim #: field:crm.claim,date_action_next:0 @@ -348,13 +354,13 @@ msgstr "Dátumok" #. module: crm_claim #: help:crm.claim,email_from:0 msgid "Destination email for email gateway." -msgstr "" +msgstr "Címzett e-mail az email átjáróhoz." #. module: crm_claim #: code:addons/crm_claim/crm_claim.py:194 #, python-format msgid "No Subject" -msgstr "" +msgstr "Nincs tárgy" #. module: crm_claim #: help:crm.claim.stage,state:0 @@ -364,11 +370,15 @@ msgid "" "is related to the status 'Close', when your document reaches this stage, it " "will be automatically have the 'closed' status." msgstr "" +"A szakaszhoz tartozó állapot. A dokumentum állapota automatikusan változni " +"fog a kiválasztott szakasz szerint. Például, ha a szakasz a 'Lezárt' " +"állapothoz kapcsolódik, és ezt a szintet eléri a dokumentuma, akkor az " +"automatikusan 'Lezárt' állapotú lesz." #. module: crm_claim #: view:crm.claim:0 msgid "Settle" -msgstr "" +msgstr "Eldönt" #. module: crm_claim #: model:ir.ui.menu,name:crm_claim.menu_claim_stage_view @@ -394,7 +404,7 @@ msgstr "CRM Reklamációjelentés" #. module: crm_claim #: view:sale.config.settings:0 msgid "Configure" -msgstr "" +msgstr "Beállítás" #. module: crm_claim #: model:crm.case.resource.type,name:crm_claim.type_claim1 @@ -440,6 +450,8 @@ msgid "" "If you check this field, this stage will be proposed by default on each " "sales team. It will not assign this stage to existing teams." msgstr "" +"Ha bejelölte ezt a mezőt, ez a szakasz lesz javasolva alapértelmezetten az " +"összes értékesítő csoportnak. Meglévő csoportokhoz nem lesz hozzárendelve." #. module: crm_claim #: field:crm.claim,categ_id:0 @@ -456,12 +468,12 @@ msgstr "Reklamációk értéke" #. module: crm_claim #: view:crm.claim:0 msgid "Responsible User" -msgstr "" +msgstr "Felelős felhasználó" #. module: crm_claim #: field:crm.claim,email_cc:0 msgid "Watchers Emails" -msgstr "" +msgstr "Követők e-mailjei" #. module: crm_claim #: help:crm.claim,email_cc:0 @@ -470,6 +482,9 @@ msgid "" "outbound emails for this record before being sent. Separate multiple email " "addresses with a comma" msgstr "" +"Ezek az email címek lesznek hozzáadva a CC /Carbon copy,másolat/ mezőhöz " +"minden bejövő és kimenő email-hez amit ezzel a feljegyzéssel küld. Több " +"email felsorolását vesszővel elválasztva adja meg." #. module: crm_claim #: selection:crm.claim.report,state:0 @@ -493,7 +508,7 @@ msgstr "Lezárt" #. module: crm_claim #: view:crm.claim:0 msgid "Reject" -msgstr "" +msgstr "Elutasít" #. module: crm_claim #: view:res.partner:0 @@ -521,7 +536,7 @@ msgstr "Függőben lévő" #: field:crm.claim.report,state:0 #: field:crm.claim.stage,state:0 msgid "Status" -msgstr "" +msgstr "Állapot" #. module: crm_claim #: selection:crm.claim.report,month:0 @@ -537,7 +552,7 @@ msgstr "Normál" #. module: crm_claim #: help:crm.claim.stage,sequence:0 msgid "Used to order stages. Lower is better." -msgstr "" +msgstr "Szakaszok rendszerezéséhez használt. Alacsonyabb érték a jobb." #. module: crm_claim #: selection:crm.claim.report,month:0 @@ -557,7 +572,7 @@ msgstr "Telefon" #. module: crm_claim #: field:crm.claim,message_is_follower:0 msgid "Is a Follower" -msgstr "" +msgstr "Ez egy követő" #. module: crm_claim #: field:crm.claim.report,user_id:0 @@ -600,11 +615,16 @@ msgid "" "the case needs to be reviewed then the status is set " "to 'Pending'." msgstr "" +"Az állapot 'Terv', az ügy létrehozásakor. Ha az ügy " +"folyamatban van akkor az állapota 'Nyitott'. Ha az ügy " +"elintézve akkor az állapota 'Elvégezve'. Ha az ügyet át " +"kell tekinteni akkor az állapota be lesz állítva " +"'Függőben'." #. module: crm_claim #: field:crm.claim,active:0 msgid "Active" -msgstr "" +msgstr "Aktív" #. module: crm_claim #: selection:crm.claim.report,month:0 @@ -627,6 +647,8 @@ msgid "" "Responsible sales team. Define Responsible user and Email account for mail " "gateway." msgstr "" +"Felelős értékesítési csoport. Határozzon meg felelős felhasználót és e-mail " +"címet az email átjáróhoz." #. module: crm_claim #: selection:crm.claim.report,month:0 @@ -647,7 +669,7 @@ msgstr "Reklamáció időpontja" #. module: crm_claim #: field:crm.claim,message_summary:0 msgid "Summary" -msgstr "" +msgstr "Összegzés" #. module: crm_claim #: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action @@ -657,7 +679,7 @@ msgstr "Reklamáció kategória" #. module: crm_claim #: field:crm.claim.stage,case_default:0 msgid "Common to All Teams" -msgstr "" +msgstr "Minden csoportnak közös" #. module: crm_claim #: view:crm.claim:0 @@ -684,7 +706,7 @@ msgstr "Reklamációk házirendje" #. module: crm_claim #: view:crm.claim:0 msgid "Date Closed" -msgstr "" +msgstr "Lezárás dátuma" #. module: crm_claim #: view:crm.claim:0 @@ -696,7 +718,7 @@ msgstr "Reklamáció" #. module: crm_claim #: view:crm.claim.report:0 msgid "My Company" -msgstr "" +msgstr "Cégem" #. module: crm_claim #: view:crm.claim.report:0 @@ -751,7 +773,7 @@ msgstr "Még nem kiosztott reklamációk" #. module: crm_claim #: field:crm.claim.report,delay_expected:0 msgid "Overpassed Deadline" -msgstr "" +msgstr "Túllépett határidő" #. module: crm_claim #: field:crm.claim,cause:0 @@ -792,7 +814,7 @@ msgstr "Döntési műveletek" #. module: crm_claim #: field:crm.claim.stage,case_refused:0 msgid "Refused stage" -msgstr "" +msgstr "Elutasított szakasz" #. module: crm_claim #: model:ir.actions.act_window,help:crm_claim.crm_case_categ_claim0 @@ -826,7 +848,7 @@ msgstr "Február" #. module: crm_claim #: model:ir.model,name:crm_claim.model_sale_config_settings msgid "sale.config.settings" -msgstr "" +msgstr "sale.config.settings" #. module: crm_claim #: view:crm.claim.report:0 @@ -837,7 +859,7 @@ msgstr "Év" #. module: crm_claim #: view:crm.claim.report:0 msgid "My company" -msgstr "" +msgstr "Saját cégem" #. module: crm_claim #: selection:crm.claim.report,month:0 @@ -852,12 +874,12 @@ msgstr "Eseteim" #. module: crm_claim #: model:crm.claim.stage,name:crm_claim.stage_claim2 msgid "Settled" -msgstr "" +msgstr "Eldöntött" #. module: crm_claim #: help:crm.claim,message_ids:0 msgid "Messages and communication history" -msgstr "" +msgstr "Üzenetek és kommunikáció történet" #. module: crm_claim #: field:sale.config.settings,fetchmail_claim:0 @@ -867,7 +889,7 @@ msgstr "Reklamáció létrehozása a beérkező levélből" #. module: crm_claim #: field:crm.claim.stage,sequence:0 msgid "Sequence" -msgstr "" +msgstr "Sorrend/szekvencia" #. module: crm_claim #: view:crm.claim:0 @@ -902,8 +924,10 @@ msgid "" "Link between stages and sales teams. When set, this limitate the current " "stage to the selected sales teams." msgstr "" +"Kapcsolatok a szintek és az értékesítő csoportok között. Ha beállított, ez " +"lehatárolja a jelenlegi szintre a kiválasztott értékesítési csoportot." #. module: crm_claim #: help:crm.claim.stage,case_refused:0 msgid "Refused stages are specific stages for done." -msgstr "" +msgstr "Visszautasított szakaszok" diff --git a/addons/crm_helpdesk/i18n/hu.po b/addons/crm_helpdesk/i18n/hu.po index 06bea008030..bf49826ec9e 100644 --- a/addons/crm_helpdesk/i18n/hu.po +++ b/addons/crm_helpdesk/i18n/hu.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-03-10 23:10+0000\n" +"PO-Revision-Date: 2013-03-12 16:26+0000\n" "Last-Translator: krnkris \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-11 05:42+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: crm_helpdesk #: field:crm.helpdesk.report,delay_close:0 @@ -218,7 +218,7 @@ msgstr "E-mailek száma" #. module: crm_helpdesk #: view:crm.helpdesk.report:0 msgid "My Sales Team(s)" -msgstr "Az én értékesítő csapata(ai)om" +msgstr "Az én értékesítő csapato(ai)m" #. module: crm_helpdesk #: field:crm.helpdesk,create_date:0 @@ -635,6 +635,9 @@ msgid "" "specific criteria such as the processing time, number of requests answered, " "emails sent and costs." msgstr "" +"Általános áttekintést ad a támogatási ügyekről egy sajátos kritérium " +"szerinti kiválogatás szerint, ami lehet műveleti idő, megválaszolt kérések " +"száma, elküldött levelek száma valamint a költségek nagysága." #. module: crm_helpdesk #: selection:crm.helpdesk.report,month:0 @@ -678,6 +681,14 @@ msgid "" " \n" "If the case needs to be reviewed then the status is set to 'Pending'." msgstr "" +"Az állapota 'Tervezet', ha a jótállási ügy most lett létrehozva. " +" \n" +"Ha a jótállási ügy folyamatban van akkor annak állapota 'Nyitott'. " +" \n" +"Ha a jótállási ügy befejezett akkor annak állapota 'Elvégezve'. " +" \n" +"Ha a jótállási ügy még felülvizsgálatra szorul akkor annak állapota " +"'Függőben'." #. module: crm_helpdesk #: help:crm.helpdesk,message_ids:0 diff --git a/addons/google_docs/i18n/mk.po b/addons/google_docs/i18n/mk.po index 1aa7250cab3..baae5c5a708 100644 --- a/addons/google_docs/i18n/mk.po +++ b/addons/google_docs/i18n/mk.po @@ -8,20 +8,20 @@ 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-03-11 12:24+0000\n" -"Last-Translator: Aleksandar Panov \n" +"PO-Revision-Date: 2013-03-12 12:49+0000\n" +"Last-Translator: Ivica Dimitrijev \n" "Language-Team: Macedonian \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-12 05:18+0000\n" -"X-Generator: Launchpad (build 16524)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: google_docs #: code:addons/google_docs/google_docs.py:167 #, python-format msgid "Key Error!" -msgstr "" +msgstr "Грешка во клуч!" #. module: google_docs #: view:google.docs.config:0 @@ -30,6 +30,9 @@ msgid "" "`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id" ".p`, the ID is `presentation:123456789`" msgstr "" +"за презентација (слајдшоу) документ со url како " +"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id" +".p`, ID е `presentation:123456789`" #. module: google_docs #: view:google.docs.config:0 @@ -38,6 +41,9 @@ msgid "" "`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is " "`document:123456789`" msgstr "" +"за текст документ со урл " +"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, ID е " +"`document:123456789`" #. module: google_docs #: field:google.docs.config,gdocs_resource_id:0 @@ -51,6 +57,9 @@ msgid "" "`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is " "`drawings:123456789`" msgstr "" +"за цртеж со урл како " +"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, ID е " +"`drawings:123456789`" #. module: google_docs #. openerp-web @@ -89,6 +98,9 @@ msgid "" "`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, " "the ID is `spreadsheet:123456789`" msgstr "" +"for a spreadsheet document with url like " +"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, " +"the ID is `spreadsheet:123456789`" #. module: google_docs #: code:addons/google_docs/google_docs.py:129 diff --git a/addons/knowledge/i18n/de.po b/addons/knowledge/i18n/de.po index 15e3effc20e..5c6885a8916 100644 --- a/addons/knowledge/i18n/de.po +++ b/addons/knowledge/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-22 13:33+0000\n" +"PO-Revision-Date: 2013-03-12 21:35+0000\n" "Last-Translator: Felix Schubert \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-08 05:47+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: knowledge #: view:knowledge.config.settings:0 @@ -33,8 +33,8 @@ msgid "" "Access your documents in OpenERP through WebDAV.\n" " This installs the module document_webdav." msgstr "" -"Verbinden Sie Ihre Dokumente mit WebDAV. Es wird das Modul \n" -"document_webdav installieren." +"Zugriff auf Ihre Dokumente in OpenERP mittels WebDAV. \n" +" Es wird das Modul document_webdav installieren." #. module: knowledge #: help:knowledge.config.settings,module_document_page:0 @@ -50,7 +50,7 @@ msgstr "Wikipedia" #: model:ir.actions.act_window,name:knowledge.action_knowledge_configuration #: view:knowledge.config.settings:0 msgid "Configure Knowledge" -msgstr "Konfigurieren Sie den Know-How-Transfer" +msgstr "Konfiguriere Dokumentenmanagement" #. module: knowledge #: view:knowledge.config.settings:0 @@ -67,8 +67,8 @@ msgid "" msgstr "" "Es handelt sich um ein vollständiges Dokumenten Management, mit folgenden " "Funktionen:\n" -" komplette Dokumenten Suche mit Volltext Suche und eine " -"Dokumenten Anzeigetafel.\n" +" Vollständiges Dokumentenmanagement mit Volltext Suche " +"und einem Dashboard.\n" " Durch Aktivierung wird das Modul 'document' dann " "installiert." @@ -85,7 +85,7 @@ msgstr "Freigeben von Verzeichnissen (FTP)" #. module: knowledge #: field:knowledge.config.settings,module_document:0 msgid "Manage documents" -msgstr "Management von Dokumenten" +msgstr "Dokumentenverwaltung" #. module: knowledge #: view:knowledge.config.settings:0 @@ -108,7 +108,7 @@ msgid "" "Access your documents in OpenERP through an FTP interface.\n" " This installs the module document_ftp." msgstr "" -"Verbinden Sie Ihre Dokumente in OpenERP durch ein FTP Interface.\n" +"Zugriff auf Ihre Dokumente in OpenERP mittels FTP.\n" " Es wird das Modul document_ftp installiert." #. module: knowledge @@ -125,4 +125,4 @@ msgstr "Freigabe von Verzeichnissen (WebDAV)" #: model:ir.ui.menu,name:knowledge.menu_document #: model:ir.ui.menu,name:knowledge.menu_knowledge_configuration msgid "Knowledge" -msgstr "Knowledge" +msgstr "Dokumente" diff --git a/addons/multi_company/i18n/hr.po b/addons/multi_company/i18n/hr.po index e6901350e13..2e1d943d094 100644 --- a/addons/multi_company/i18n/hr.po +++ b/addons/multi_company/i18n/hr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-12 05:19+0000\n" -"X-Generator: Launchpad (build 16524)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: multi_company #: model:ir.ui.menu,name:multi_company.menu_custom_multicompany diff --git a/addons/point_of_sale/i18n/hr.po b/addons/point_of_sale/i18n/hr.po index f70b18142e1..84c10e5f295 100644 --- a/addons/point_of_sale/i18n/hr.po +++ b/addons/point_of_sale/i18n/hr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-12 05:19+0000\n" -"X-Generator: Launchpad (build 16524)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: point_of_sale #: field:report.transaction.pos,product_nb:0 diff --git a/addons/product/i18n/de.po b/addons/product/i18n/de.po index b65b82de91b..afa6f11425e 100644 --- a/addons/product/i18n/de.po +++ b/addons/product/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:38+0000\n" -"PO-Revision-Date: 2013-01-06 22:36+0000\n" -"Last-Translator: Thorsten Vocks (OpenBig.org) \n" +"PO-Revision-Date: 2013-03-12 21:27+0000\n" +"Last-Translator: Felix Schubert \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-08 05:55+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: product #: field:product.packaging,rows:0 @@ -510,7 +509,7 @@ msgstr "Menge-3" #. module: product #: model:res.groups,name:product.group_product_variant msgid "Product Variant (not supported)" -msgstr "" +msgstr "Produkt Varianten (nicht unterstützt)" #. module: product #: field:product.price_list,qty4:0 @@ -1393,7 +1392,7 @@ msgstr "" #. module: product #: field:product.product,name_template:0 msgid "Template Name" -msgstr "" +msgstr "Vorlagenname" #. module: product #: field:product.template,weight_net:0 @@ -1427,7 +1426,7 @@ msgstr "" #. module: product #: view:product.product:0 msgid "This note will be displayed on requests for quotation..." -msgstr "" +msgstr "Diese Anmerkungen werden auf Angebotsanfragen ausgegeben..." #. module: product #: view:product.product:0 @@ -2217,7 +2216,7 @@ msgstr "Lieferzeit des Lieferanten" #. module: product #: model:ir.model,name:product.model_decimal_precision msgid "decimal.precision" -msgstr "" +msgstr "Nachkommastellen" #. module: product #: selection:product.ul,type:0 @@ -2620,7 +2619,7 @@ msgstr "Lieferanten Mengeneinheit" #. module: product #: view:product.product:0 msgid "note to be displayed on quotations..." -msgstr "" +msgstr "Anmerkungen die auf den Angeboten ausgegeben werden ..." #. module: product #: view:product.product:0 diff --git a/addons/product/i18n/hr.po b/addons/product/i18n/hr.po index d47f6d3cdc1..4faccb11a46 100644 --- a/addons/product/i18n/hr.po +++ b/addons/product/i18n/hr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-12 05:19+0000\n" -"X-Generator: Launchpad (build 16524)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: product #: field:product.packaging,rows:0 diff --git a/addons/project/i18n/hr.po b/addons/project/i18n/hr.po index f92e4f6db21..6b6e52bd280 100644 --- a/addons/project/i18n/hr.po +++ b/addons/project/i18n/hr.po @@ -8,19 +8,19 @@ 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-03-13 00:01+0000\n" +"Last-Translator: Davor Bojkić \n" "Language-Team: Croatian \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-08 05:57+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: project #: view:project.project:0 msgid "Email Interface" -msgstr "" +msgstr "Email sučelje" #. module: project #: help:account.analytic.account,use_tasks:0 @@ -34,7 +34,7 @@ msgstr "" #: view:report.project.task.user:0 #: field:report.project.task.user,progress:0 msgid "Progress" -msgstr "Progres" +msgstr "Napredak" #. module: project #: model:process.node,name:project.process_node_taskbydelegate0 @@ -44,7 +44,7 @@ msgstr "Zadatak po nostelju" #. module: project #: view:project.project:0 msgid "Parent" -msgstr "" +msgstr "Nadređeni" #. module: project #: model:ir.actions.act_window,name:project.dblc_proj @@ -54,7 +54,7 @@ msgstr "Projektni zadaci" #. module: project #: field:project.task.type,name:0 msgid "Stage Name" -msgstr "" +msgstr "Naziv faze" #. module: project #: model:process.transition.action,name:project.process_transition_action_openpendingtask0 @@ -70,12 +70,12 @@ msgstr "Novi Projekt na Temelju Predloška" #: view:report.project.task.user:0 #: field:report.project.task.user,day:0 msgid "Day" -msgstr "" +msgstr "Dan" #. module: project #: model:project.task.type,name:project.project_tt_merge msgid "Merge" -msgstr "" +msgstr "Stopi" #. module: project #: view:res.partner:0 @@ -86,13 +86,13 @@ msgstr "Započni Zadatak" #: code:addons/project/project.py:932 #, python-format msgid "Warning !" -msgstr "" +msgstr "Upozorenje!" #. module: project #: help:project.project,message_unread:0 #: help:project.task,message_unread:0 msgid "If checked new messages require your attention." -msgstr "" +msgstr "Ako je odabrano, nove poruke zahtijevaju Vašu pažnju." #. module: project #: model:process.node,name:project.process_node_donetask0 @@ -112,7 +112,7 @@ msgstr "" #. module: project #: model:project.task.type,name:project.project_tt_testing msgid "Testing" -msgstr "" +msgstr "Testiranje" #. module: project #: model:ir.model,name:project.model_account_analytic_account @@ -122,7 +122,7 @@ msgstr "Analitički Konto" #. module: project #: field:project.config.settings,group_time_work_estimation_tasks:0 msgid "Manage time estimation on tasks" -msgstr "" +msgstr "Upravljanje procjenom vremena na zadacima" #. module: project #: help:project.project,message_summary:0 @@ -131,13 +131,15 @@ msgid "" "Holds the Chatter summary (number of messages, ...). This summary is " "directly in html format in order to be inserted in kanban views." msgstr "" +"Sadrži sažetak konverzacije (broj poruka,..). Ovaj sažetak je u html formatu " +"da bi mogao biti ubačen u kanban pogled." #. module: project #: code:addons/project/project.py:432 #: code:addons/project/project.py:1318 #, python-format msgid "Warning!" -msgstr "" +msgstr "Upozorenje!" #. module: project #: model:ir.model,name:project.model_res_partner @@ -147,14 +149,14 @@ msgstr "Partner" #. module: project #: field:project.config.settings,group_manage_delegation_task:0 msgid "Allow task delegation" -msgstr "" +msgstr "Dozvoli delegiranje zadataka" #. module: project #: field:project.task.delegate,planned_hours:0 #: view:report.project.task.user:0 #: field:report.project.task.user,hours_planned:0 msgid "Planned Hours" -msgstr "Planirani Sati" +msgstr "Planirani sati" #. module: project #: view:project.project:0 @@ -164,7 +166,7 @@ msgstr "Postavi kao Projekt" #. module: project #: view:report.project.task.user:0 msgid "In progress tasks" -msgstr "" +msgstr "Zadaci u tijeku" #. module: project #: help:project.project,progress_rate:0 @@ -175,7 +177,7 @@ msgstr "" #. module: project #: model:ir.actions.client,name:project.action_client_project_menu msgid "Open Project Menu" -msgstr "" +msgstr "Otvori izbornik projekata" #. module: project #: model:ir.actions.act_window,help:project.action_project_task_user_tree @@ -193,7 +195,7 @@ msgstr "" #. module: project #: model:res.groups,name:project.group_delegate_task msgid "Task Delegation" -msgstr "" +msgstr "Delegiranje zadataka" #. module: project #: field:project.project,planned_hours:0 @@ -205,7 +207,7 @@ msgstr "Planirano Vrijeme" #. module: project #: selection:project.project,privacy_visibility:0 msgid "Public" -msgstr "" +msgstr "Javno" #. module: project #: view:project.task:0 @@ -219,7 +221,7 @@ msgstr "" #: selection:report.project.task.user,state:0 #: view:res.partner:0 msgid "Done" -msgstr "Učinjeno" +msgstr "Završeno" #. module: project #: model:project.category,name:project.project_category_01 @@ -229,25 +231,25 @@ msgstr "" #. module: project #: help:project.config.settings,group_time_work_estimation_tasks:0 msgid "Allows you to compute Time Estimation on tasks." -msgstr "" +msgstr "Dozvoljava izračun procjene vremena za zadatke" #. module: project #: field:report.project.task.user,user_id:0 msgid "Assigned To" -msgstr "" +msgstr "Dodijeljeno" #. module: project #: model:mail.message.subtype,name:project.mt_project_task_closed #: model:mail.message.subtype,name:project.mt_task_closed msgid "Task Done" -msgstr "" +msgstr "Zadatak završen" #. module: project #: view:project.project:0 #: view:report.project.task.user:0 #: field:report.project.task.user,partner_id:0 msgid "Contact" -msgstr "Kontaktiraj" +msgstr "Kontakt" #. module: project #: model:process.transition,name:project.process_transition_delegate0 @@ -259,12 +261,12 @@ msgstr "Delegiraj" #: model:ir.actions.act_window,name:project.open_view_template_project #: view:project.project:0 msgid "Templates of Projects" -msgstr "" +msgstr "Predlošci projekata" #. module: project #: field:project.project,analytic_account_id:0 msgid "Contract/Analytic" -msgstr "" +msgstr "Ugovor/Analitika" #. module: project #: view:project.config.settings:0 @@ -275,33 +277,33 @@ msgstr "Upravljanje Projektima" #: model:ir.actions.act_window,name:project.action_project_task_delegate #: view:project.task.delegate:0 msgid "Project Task Delegate" -msgstr "" +msgstr "Delegiraje projetknog zadatka" #. module: project #: model:mail.message.subtype,name:project.mt_project_task_started #: model:mail.message.subtype,name:project.mt_task_started msgid "Task Started" -msgstr "" +msgstr "Zadatak započet" #. module: project #: view:project.task:0 msgid "Very Important" -msgstr "" +msgstr "Veoma važno" #. module: project #: view:project.config.settings:0 msgid "Support" -msgstr "" +msgstr "Podrška" #. module: project #: view:project.project:0 msgid "Member" -msgstr "" +msgstr "Pripadnik" #. module: project #: view:project.task:0 msgid "Cancel Task" -msgstr "" +msgstr "Otkaži zadatak" #. module: project #: help:project.project,members:0 diff --git a/addons/project_timesheet/i18n/mk.po b/addons/project_timesheet/i18n/mk.po index 8b8502c333c..a0647ec045f 100644 --- a/addons/project_timesheet/i18n/mk.po +++ b/addons/project_timesheet/i18n/mk.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-03-07 11:00+0000\n" -"Last-Translator: Aleksandar Panov \n" +"PO-Revision-Date: 2013-03-12 11:21+0000\n" +"Last-Translator: Софче Димитријева \n" "Language-Team: Macedonian \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-08 05:58+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: project_timesheet #: view:report.timesheet.task.user:0 @@ -35,7 +35,7 @@ msgstr "Јуни" #. module: project_timesheet #: field:project.task.work,hr_analytic_timesheet_id:0 msgid "Related Timeline Id" -msgstr "" +msgstr "Id на поврзана временска линија" #. module: project_timesheet #: code:addons/project_timesheet/project_timesheet.py:266 @@ -139,7 +139,7 @@ msgstr "Август" #. module: project_timesheet #: model:process.transition,name:project_timesheet.process_transition_taskinvoice0 msgid "Task invoice" -msgstr "" +msgstr "Фактура за задача" #. module: project_timesheet #: model:process.node,name:project_timesheet.process_node_taskwork0 @@ -216,7 +216,7 @@ msgstr "Комплетирајте го вашиот распоред." #. module: project_timesheet #: field:report.timesheet.task.user,task_hrs:0 msgid "Task Hours" -msgstr "" +msgstr "Часови на задача" #. module: project_timesheet #: selection:report.timesheet.task.user,month:0 @@ -234,16 +234,23 @@ msgid "" "

\n" " " msgstr "" +"

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

\n" +" " #. module: project_timesheet #: model:process.node,name:project_timesheet.process_node_timesheettask0 msgid "Timesheet task" -msgstr "" +msgstr "Задача на распоред" #. module: project_timesheet #: model:process.transition,name:project_timesheet.process_transition_taskencoding0 msgid "Task encoding" -msgstr "" +msgstr "Кодирање на задача" #. module: project_timesheet #: model:process.transition,note:project_timesheet.process_transition_filltimesheet0 @@ -288,7 +295,7 @@ msgstr "report.timesheet.task.user" #. module: project_timesheet #: model:process.transition,note:project_timesheet.process_transition_taskencoding0 msgid "Encode how much time u spent on your task" -msgstr "" +msgstr "Кодирајте колку време сте поминале на задачата" #. module: project_timesheet #: code:addons/project_timesheet/project_timesheet.py:85 @@ -310,7 +317,7 @@ msgstr "Погрешно аналитичко конто !" #. module: project_timesheet #: view:report.timesheet.task.user:0 msgid "Timesheet/Task hours Report Per Month" -msgstr "" +msgstr "Извештај за распоред/Часови на задача по месец" #. module: project_timesheet #: code:addons/project_timesheet/project_timesheet.py:84 @@ -347,6 +354,8 @@ msgid "" "

Timesheets on this project may be invoiced to %s, according to the terms " "defined in the contract.

" msgstr "" +"

Распоредите на овој проект може да бидат фактурирани до %s, во согласност " +"со условите дефинирани во договорот.

" #. module: project_timesheet #: model:process.node,note:project_timesheet.process_node_taskwork0 @@ -357,7 +366,7 @@ msgstr "Работа на задача" #: model:ir.actions.act_window,name:project_timesheet.action_project_timesheet_bill_task #: model:ir.ui.menu,name:project_timesheet.menu_project_billing_line msgid "Invoice Tasks" -msgstr "" +msgstr "Фактурирај задачи" #. module: project_timesheet #: model:ir.actions.act_window,name:project_timesheet.action_report_timesheet_task_user @@ -400,6 +409,8 @@ msgid "" "

Record your timesheets for the project " "'%s'.

" msgstr "" +"

Зачувајте ги распоредите за проектот " +"'%s'.

" #. module: project_timesheet #: field:report.timesheet.task.user,timesheet_hrs:0 diff --git a/addons/purchase/i18n/mk.po b/addons/purchase/i18n/mk.po index 4bbc1ec243b..a07c7602961 100644 --- a/addons/purchase/i18n/mk.po +++ b/addons/purchase/i18n/mk.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-02-27 17:58+0000\n" -"Last-Translator: Aleksandar Panov \n" +"PO-Revision-Date: 2013-03-12 11:24+0000\n" +"Last-Translator: Софче Димитријева \n" "Language-Team: ЕСКОН-ИНЖЕНЕРИНГ\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-08 05:59+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" "Language: mk\n" #. module: purchase @@ -75,7 +75,7 @@ msgstr "Ден" #. module: purchase #: view:purchase.order:0 msgid "Cancel Order" -msgstr "" +msgstr "Откажи налог" #. module: purchase #: view:purchase.report:0 @@ -822,7 +822,7 @@ msgstr "Барање за понуда" #. module: purchase #: view:purchase.order:0 msgid "Send by Email" -msgstr "" +msgstr "Испратено по Е-пошта" #. module: purchase #: report:purchase.order:0 @@ -1370,7 +1370,7 @@ msgstr "Производи" #. module: purchase #: view:purchase.order:0 msgid "Terms and conditions..." -msgstr "" +msgstr "Рокови и услови..." #. module: purchase #: model:ir.model,name:purchase.model_stock_move diff --git a/addons/purchase/i18n/ro.po b/addons/purchase/i18n/ro.po index fda3d6bac8f..ff8f549d2f5 100644 --- a/addons/purchase/i18n/ro.po +++ b/addons/purchase/i18n/ro.po @@ -8,14 +8,177 @@ 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-07 19:07+0000\n" +"PO-Revision-Date: 2013-03-12 18:03+0000\n" "Last-Translator: Fekete Mihai \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-08 05:59+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" + +#. module: purchase +#: model:email.template,body_html:purchase.email_template_edi_purchase +msgid "" +"\n" +"
\n" +"\n" +"

Hello$ ${object.partner_id.name},

\n" +" \n" +"

Here is a ${object.state in ('draft', 'sent') and 'request for " +"quotation' or 'purchase order confirmation'} from ${object.company_id.name}: " +"

\n" +" \n" +"

\n" +"   REFERENCES
\n" +"   Order number: ${object.name}
\n" +"   Order total: ${object.amount_total} " +"${object.pricelist_id.currency_id.name}
\n" +"   Order date: ${object.date_order}
\n" +" % if object.origin:\n" +"   Order reference: ${object.origin}
\n" +" % endif\n" +" % if object.partner_ref:\n" +"   Your reference: ${object.partner_ref}
\n" +" % endif\n" +" % if object.validator:\n" +"   Your contact: ${object.validator.name}\n" +" % endif\n" +"

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

If you have any question, do not hesitate to contact us.

\n" +"

Thank you!

\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" +" Phone:  ${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" +" " +msgstr "" +"\n" +"
\n" +"\n" +"

Buna ziua$ ${object.partner_id.name},

\n" +" \n" +"

Aici este ${object.state in ('draft', 'sent') and 'request for " +"quotation' or 'purchase order confirmation'} de la " +"${object.company_id.name}:

\n" +" \n" +"

\n" +"   REFERINTE
\n" +"   Numar comanda: ${object.name}
\n" +"   Total comanda: ${object.amount_total} " +"${object.pricelist_id.currency_id.name}
\n" +"   Data comanda: ${object.date_order}
\n" +" % if object.origin:\n" +"   Referinta comanda: ${object.origin}
\n" +" % endif\n" +" % if object.partner_ref:\n" +"   Refeninta dumneavoastra: ${object.partner_ref}
\n" +" % endif\n" +" % if object.validator:\n" +"   Contactul dumneavoastra: ${object.validator.name}\n" +" % endif\n" +"

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

Daca aveti intrebari, nu ezitati sa ne contactati..

\n" +"

Va multumim!

\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" +" Telefon:  ${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: purchase +#: view:purchase.report:0 +msgid "Order of Year" +msgstr "Comanda Anului" #. module: purchase #: model:res.groups,name:purchase.group_analytic_accounting @@ -1054,172 +1217,6 @@ msgstr "Data aprobata" msgid "a draft purchase order" msgstr "o comanda de achizitie ciorna" -#. module: purchase -#: model:email.template,body_html:purchase.email_template_edi_purchase -msgid "" -"\n" -"
\n" -"\n" -"

Hello$ ${object.partner_id.name},

\n" -" \n" -"

Here is a ${object.state in ('draft', 'sent') and 'request for " -"quotation' or 'purchase order confirmation'} from ${object.company_id.name}: " -"

\n" -" \n" -"

\n" -"   REFERENCES
\n" -"   Order number: ${object.name}
\n" -"   Order total: ${object.amount_total} " -"${object.pricelist_id.currency_id.name}
\n" -"   Order date: ${object.date_order}
\n" -" % if object.origin:\n" -"   Order reference: ${object.origin}
\n" -" % endif\n" -" % if object.partner_ref:\n" -"   Your reference: ${object.partner_ref}
\n" -" % endif\n" -" % if object.validator:\n" -"   Your contact: ${object.validator.name}\n" -" % endif\n" -"

\n" -"\n" -"
\n" -"

If you have any question, do not hesitate to contact us.

\n" -"

Thank you!

\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" -" Phone:  ${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" -" " -msgstr "" -"\n" -"\n" -"\n" -"

Buna ziua$ ${obiect.partener_id.nume},

\n" -" \n" -"

Iata ${obiect.stare in ('ciorna', 'trimis') si 'cerere pentru " -"cotatie' sau 'confirmarea comenzii de cumparare'} de la " -"${obiect.companie_id.nume}:

\n" -" \n" -" \n" -"   REFERINTE
\n" -"   Numar comanda: ${obiect.nume}
\n" -"   Total comanda: ${obiect.suma_totala} " -"${obiect.lista_de_preturi_id.moneda_id.nume}
\n" -"   Stare comanda: ${obiect.data_comenzii}
\n" -" % if obiect.origine:\n" -"   Referinta comanda: ${obiect.origine}
\n" -" % endif\n" -" % if obiect.partener_ref:\n" -"   Refeninta dumneavoastra: ${obiect.partener_ref}
\n" -" % endif\n" -" % if obiect.validator:\n" -"   Contactul dumneavoastra: ${obiect.validator.nume}\n" -" % endif\n" -"

\n" -"\n" -"
\n" -"

Daca aveti intrebari, nu ezitati sa ne contactati.

\n" -"

Va multumim!

\n" -"
\n" -"
\n" -" \n" -" \n" -" ${obiect.companie_id.nume}\n" -" \n" -" \n" -" \n" -" % if obiect.companie_id.strada:\n" -" ${obiect.companie_id.strada}
\n" -" % endif\n" -" % if obiect.companie_id.strada2:\n" -" ${obiect.companie_id.strada2}
\n" -" % endif\n" -" % if obiect.companie_id.i=oras sau obiect.companie_id.cod_postal:\n" -" ${obiect.companie_id.cod_postal} " -"${obiect.companie_id.oras}
\n" -" % endif\n" -" % if obiect.companie_id.tara_id:\n" -" ${obiect.companie_id.stat_id si ('%s, ' % " -"obiect.companie_id.stat_id.nume) sau ''} ${obiect.companie_id.tara_id.nume " -"sau ''}
\n" -" % endif\n" -" \n" -" % if obiect.companie_id.telefon:\n" -" \n" -" Telefon:  ${obiect.companie_id.telefon}\n" -" \n" -" % endif\n" -" % if obiect.companie_id.pagina_de_internet:\n" -" \n" -" %endif\n" -"

\n" -" \n" -"\n" -" " - -#. module: purchase -#: view:purchase.report:0 -msgid "Order of Year" -msgstr "Comanda din An" - #. module: purchase #: model:ir.actions.act_window,name:purchase.act_res_partner_2_purchase_order msgid "RFQs and Purchases" diff --git a/addons/purchase_requisition/i18n/mk.po b/addons/purchase_requisition/i18n/mk.po index dc2b2a2965f..aa3f1c81924 100644 --- a/addons/purchase_requisition/i18n/mk.po +++ b/addons/purchase_requisition/i18n/mk.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-03-09 13:54+0000\n" -"Last-Translator: Aleksandar Panov \n" +"PO-Revision-Date: 2013-03-12 11:53+0000\n" +"Last-Translator: Софче Димитријева \n" "Language-Team: Macedonian \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-10 05:15+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: purchase_requisition #: view:purchase.requisition:0 @@ -196,7 +196,7 @@ msgstr "Креирај понуда" #. module: purchase_requisition #: view:purchase.requisition:0 msgid "e.g. PO0025" -msgstr "" +msgstr "на пр. PO0025" #. module: purchase_requisition #: help:purchase.requisition,message_ids:0 @@ -321,6 +321,11 @@ msgid "" "orders.On confirmation of a purchase order it does not cancel the remaining " "orders" msgstr "" +"Барање за набавка (ексклузивно): По потврдување на налогот за набавка, го " +"откажува преостанатиот налог за набавка.\n" +"Барање за набавка (повеќекратно): Ви овозможува да имате повеќе налози за " +"набавка. По потврдувањето на налогот за набавка не ги откажува преостанатите " +"налози." #. module: purchase_requisition #: view:purchase.requisition:0 @@ -372,7 +377,7 @@ msgstr "Откажано" #. module: purchase_requisition #: model:ir.model,name:purchase_requisition.model_purchase_requisition_partner msgid "Purchase Requisition Partner" -msgstr "" +msgstr "Партнер за барање за набавка" #. module: purchase_requisition #: help:purchase.requisition,message_unread:0 @@ -433,7 +438,7 @@ msgstr "Менаџер" #. module: purchase_requisition #: selection:purchase.requisition,exclusive:0 msgid "Purchase Requisition (exclusive)" -msgstr "" +msgstr "Барање за набавка (ексклузивно)" #. module: purchase_requisition #: help:purchase.requisition,message_summary:0 @@ -492,6 +497,8 @@ msgid "" "Check this box to generates purchase requisition instead of generating " "requests for quotation from procurement." msgstr "" +"Означете го ова поле за да генерирате барања за набавка наместо генерирање " +"на барања за понуди од набавките." #. module: purchase_requisition #: field:purchase.requisition,purchase_ids:0 diff --git a/addons/report_intrastat/i18n/mk.po b/addons/report_intrastat/i18n/mk.po index be9ff0edd57..316c4c99651 100644 --- a/addons/report_intrastat/i18n/mk.po +++ b/addons/report_intrastat/i18n/mk.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-03-02 14:00+0000\n" +"PO-Revision-Date: 2013-03-12 11:59+0000\n" "Last-Translator: Софче Димитријева \n" "Language-Team: Macedonian \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-08 06:00+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: report_intrastat #: report:account.invoice.intrastat:0 @@ -151,7 +151,7 @@ msgstr "Октомври" #. module: report_intrastat #: model:ir.model,name:report_intrastat.model_report_intrastat msgid "Intrastat report" -msgstr "" +msgstr "Intrastst извештај" #. module: report_intrastat #: report:account.invoice.intrastat:0 @@ -186,7 +186,7 @@ msgstr "Износ" #. module: report_intrastat #: view:report.intrastat:0 msgid "Intrastat Data" -msgstr "" +msgstr "Intrastat податоци" #. module: report_intrastat #: field:report.intrastat,value:0 @@ -198,7 +198,7 @@ msgstr "Вредност" #: model:ir.actions.act_window,name:report_intrastat.action_report_intrastat_tree_all #: model:ir.ui.menu,name:report_intrastat.menu_report_intrastat_all msgid "Intrastat" -msgstr "" +msgstr "Intrastat" #. module: report_intrastat #: report:account.invoice.intrastat:0 @@ -221,7 +221,7 @@ msgstr "Ноември" #: field:report.intrastat,intrastat_id:0 #: view:report.intrastat.code:0 msgid "Intrastat code" -msgstr "" +msgstr "Intrastat код" #. module: report_intrastat #: report:account.invoice.intrastat:0 @@ -252,7 +252,7 @@ msgstr "Урнек на производ" #. module: report_intrastat #: field:res.country,intrastat:0 msgid "Intrastat member" -msgstr "" +msgstr "Intrastat член" #. module: report_intrastat #: selection:report.intrastat,month:0 @@ -315,4 +315,4 @@ msgstr "Цена" #: view:report.intrastat.code:0 #: field:report.intrastat.code,name:0 msgid "Intrastat Code" -msgstr "" +msgstr "Intrastat код" diff --git a/addons/report_webkit/i18n/mk.po b/addons/report_webkit/i18n/mk.po index ca786e7d97b..0f5d2790134 100644 --- a/addons/report_webkit/i18n/mk.po +++ b/addons/report_webkit/i18n/mk.po @@ -8,19 +8,20 @@ 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-03-02 14:13+0000\n" +"PO-Revision-Date: 2013-03-12 12:34+0000\n" "Last-Translator: Софче Димитријева \n" "Language-Team: Macedonian \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-08 06:00+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: report_webkit #: view:ir.actions.report.xml:0 msgid "Webkit Template (used if Report File is not found)" msgstr "" +"Webkit Урнек (се користи доколку не е пронајдена Датотеката на извештајот)" #. module: report_webkit #: selection:ir.header_webkit,format:0 @@ -36,7 +37,7 @@ msgstr "Главна книга 28 431.8 x 279.4 mm" #: code:addons/report_webkit/webkit_report.py:233 #, python-format msgid "No header defined for this Webkit report!" -msgstr "" +msgstr "Нема дефинирано заглавие за овој Webkit извештај!" #. module: report_webkit #: help:ir.header_img,type:0 @@ -51,11 +52,14 @@ msgid "" " but memory and disk " "usage is wider" msgstr "" +"Овој режим овозможува попрецизна позиција на елементот со тоа што секој " +"објект е испечатен на одделен HTML. но меморијата и искористеноста на дискот " +"се пошироки" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "Executive 4 7.5 x 10 inches, 190.5 x 254 mm" -msgstr "" +msgstr "Извршно 4 7.5 x 10 инчи, 190.5 x 254 mm" #. module: report_webkit #: field:ir.header_img,company_id:0 @@ -67,17 +71,17 @@ msgstr "Компанија" #: code:addons/report_webkit/webkit_report.py:234 #, python-format msgid "Please set a header in company settings." -msgstr "" +msgstr "Поставете заглавие во подесувањата на компанијата." #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "DLE 26 110 x 220 mm" -msgstr "" +msgstr "DLE 26 110 x 220 mm" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "B7 21 88 x 125 mm" -msgstr "" +msgstr "B7 21 88 x 125 mm" #. module: report_webkit #: view:res.company:0 @@ -93,33 +97,33 @@ msgstr "Име на слика" #: model:ir.actions.act_window,name:report_webkit.action_header_webkit #: model:ir.ui.menu,name:report_webkit.menu_header_webkit msgid "Webkit Headers/Footers" -msgstr "" +msgstr "Webkit Заглавија/Подножја" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "Legal 3 8.5 x 14 inches, 215.9 x 355.6 mm" -msgstr "" +msgstr "Законски 3 8.5 x 14 инчи, 215.9 x 355.6 mm" #. module: report_webkit #: model:ir.model,name:report_webkit.model_ir_header_webkit msgid "ir.header_webkit" -msgstr "" +msgstr "ir.header_webkit" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "A4 0 210 x 297 mm, 8.26 x 11.69 inches" -msgstr "" +msgstr "A4 0 210 x 297 mm, 8.26 x 11.69 инчи" #. module: report_webkit #: code:addons/report_webkit/webkit_report.py:176 #, python-format msgid "Webkit error" -msgstr "" +msgstr "Webkit грешка" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "B2 17 500 x 707 mm" -msgstr "" +msgstr "B2 17 500 x 707 mm" #. module: report_webkit #: code:addons/report_webkit/webkit_report.py:260 @@ -139,7 +143,7 @@ msgstr "ir.header_img" #. module: report_webkit #: field:ir.actions.report.xml,precise_mode:0 msgid "Precise Mode" -msgstr "" +msgstr "Прецизен режим" #. module: report_webkit #: code:addons/report_webkit/webkit_report.py:96 @@ -154,12 +158,12 @@ msgstr "" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "A0 5 841 x 1189 mm" -msgstr "" +msgstr "A0 5 841 x 1189 mm" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "C5E 24 163 x 229 mm" -msgstr "" +msgstr "C5E 24 163 x 229 mm" #. module: report_webkit #: field:ir.header_img,type:0 @@ -170,7 +174,7 @@ msgstr "Tип" #: code:addons/report_webkit/wizard/report_webkit_actions.py:133 #, python-format msgid "Client Actions Connections" -msgstr "" +msgstr "Конекции на акции на клиент" #. module: report_webkit #: field:res.company,header_image:0 @@ -180,17 +184,17 @@ msgstr "Достапни слики" #. module: report_webkit #: field:ir.header_webkit,html:0 msgid "webkit header" -msgstr "" +msgstr "webkit заглавие" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "B1 15 707 x 1000 mm" -msgstr "" +msgstr "B1 15 707 x 1000 mm" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "A1 6 594 x 841 mm" -msgstr "" +msgstr "A1 6 594 x 841 mm" #. module: report_webkit #: help:ir.actions.report.xml,webkit_header:0 @@ -207,7 +211,7 @@ msgstr "" #: view:ir.actions.report.xml:0 #: view:res.company:0 msgid "Webkit" -msgstr "" +msgstr "Webkit" #. module: report_webkit #: help:ir.header_webkit,format:0 @@ -217,7 +221,7 @@ msgstr "Изберете правилна големина на хартијат #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "B5 1 176 x 250 mm, 6.93 x 9.84 inches" -msgstr "" +msgstr "B5 1 176 x 250 mm, 6.93 x 9.84 инчи" #. module: report_webkit #: selection:ir.header_webkit,format:0 @@ -233,16 +237,18 @@ msgstr "A6 10 105 x 148 mm" #: help:ir.actions.report.xml,report_webkit_data:0 msgid "This template will be used if the main report file is not found" msgstr "" +"Овој урнек ќе се користи доколку не се пронајде датотеката за главниот " +"извештај" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "Folio 27 210 x 330 mm" -msgstr "" +msgstr "Фолио 27 210 x 330 mm" #. module: report_webkit #: field:ir.header_webkit,margin_top:0 msgid "Top Margin (mm)" -msgstr "" +msgstr "Горна маргина (mm)" #. module: report_webkit #: view:report.webkit.actions:0 @@ -255,6 +261,8 @@ msgid "" "Check this to add a Print action for this Report in the sidebar of the " "corresponding document types" msgstr "" +"Означете го ова за да додадете активност за печатење за овој Извештај на " +"страничната лента од соодветните типови на документи" #. module: report_webkit #: selection:ir.header_webkit,format:0 @@ -264,12 +272,12 @@ msgstr "Copy text \t B3 18 353 x 500 mm" #. module: report_webkit #: field:ir.actions.report.xml,webkit_header:0 msgid "Webkit Header" -msgstr "" +msgstr "Webkit Заглавие" #. module: report_webkit #: help:ir.actions.report.xml,webkit_debug:0 msgid "Enable the webkit engine debugger" -msgstr "" +msgstr "Овозможи webkit отстранувач на грешки на мотор" #. module: report_webkit #: field:ir.header_img,img:0 @@ -279,12 +287,12 @@ msgstr "Слика" #. module: report_webkit #: view:ir.header_img:0 msgid "Header Image" -msgstr "" +msgstr "Слика на заглавие" #. module: report_webkit #: field:res.company,header_webkit:0 msgid "Available html" -msgstr "" +msgstr "Достапна html" #. module: report_webkit #: help:report.webkit.actions,open_action:0 @@ -292,6 +300,8 @@ msgid "" "Check this to view the newly added internal print action after creating it " "(technical view) " msgstr "" +"Означете го ова за да ја видите акцијата внатрешно печатење после нејзиното " +"креирање (технички приказ) " #. module: report_webkit #: view:res.company:0 @@ -322,7 +332,7 @@ msgstr "B8 22 62 x 88 mm" #: code:addons/report_webkit/webkit_report.py:177 #, python-format msgid "The command 'wkhtmltopdf' failed with error code = %s. Message: %s" -msgstr "" +msgstr "Командата 'wkhtmltopdf' е не успеа со грешка код = %s. Порака: %s" #. module: report_webkit #: selection:ir.header_webkit,format:0 @@ -347,28 +357,28 @@ msgstr "Компании" #. module: report_webkit #: field:ir.header_webkit,margin_bottom:0 msgid "Bottom Margin (mm)" -msgstr "" +msgstr "Долна маргина (mm)" #. module: report_webkit #: model:ir.model,name:report_webkit.model_report_webkit_actions msgid "Webkit Actions" -msgstr "" +msgstr "Webkit акции" #. module: report_webkit #: field:report.webkit.actions,open_action:0 msgid "Open added action" -msgstr "" +msgstr "Отвори додадена акција" #. module: report_webkit #: field:ir.header_webkit,margin_right:0 msgid "Right Margin (mm)" -msgstr "" +msgstr "Десна маргина (mm)" #. module: report_webkit #: code:addons/report_webkit/webkit_report.py:228 #, python-format msgid "Webkit report template not found!" -msgstr "" +msgstr "Урнекот за webkit извештајот не е пронајден!" #. module: report_webkit #: field:ir.header_webkit,orientation:0 @@ -383,7 +393,7 @@ msgstr "B6 20 125 x 176 mm" #. module: report_webkit #: help:ir.header_webkit,html:0 msgid "Set Webkit Report Header" -msgstr "" +msgstr "Постави заглавие на webkit извештај" #. module: report_webkit #: field:ir.header_webkit,format:0 @@ -403,7 +413,7 @@ msgstr "Откажи" #. module: report_webkit #: field:ir.header_webkit,css:0 msgid "Header CSS" -msgstr "" +msgstr "Заглавие CSS" #. module: report_webkit #: selection:ir.header_webkit,format:0 @@ -414,13 +424,13 @@ msgstr "B4 19 250 x 353 mm" #: model:ir.actions.act_window,name:report_webkit.action_header_img #: model:ir.ui.menu,name:report_webkit.menu_header_img msgid "Webkit Logos" -msgstr "" +msgstr "Webkit лога" #. module: report_webkit #: code:addons/report_webkit/webkit_report.py:172 #, python-format msgid "No diagnosis message was provided" -msgstr "" +msgstr "Не беше обезбедена порака за дијагноза" #. module: report_webkit #: selection:ir.header_webkit,format:0 @@ -430,22 +440,22 @@ msgstr "Copy text \t A3 8 297 x 420 mm" #. module: report_webkit #: field:ir.actions.report.xml,report_webkit_data:0 msgid "Webkit Template" -msgstr "" +msgstr "Webkit урнек" #. module: report_webkit #: field:ir.header_webkit,footer_html:0 msgid "webkit footer" -msgstr "" +msgstr "webkit подножје" #. module: report_webkit #: field:ir.actions.report.xml,webkit_debug:0 msgid "Webkit debug" -msgstr "" +msgstr "Webkit отстранувач на грешки" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "Letter 2 8.5 x 11 inches, 215.9 x 279.4 mm" -msgstr "" +msgstr "Писмо 2 8.5 x 11 инчи, 215.9 x 279.4 mm" #. module: report_webkit #: selection:ir.header_webkit,format:0 @@ -477,12 +487,12 @@ msgstr "Додади копчиња печати" #. module: report_webkit #: selection:ir.header_webkit,format:0 msgid "Comm10E 25 105 x 241 mm, U.S. Common 10 Envelope" -msgstr "" +msgstr "Comm10E 25 105 x 241 mm, U.S. Common 10 Envelope" #. module: report_webkit #: field:ir.header_webkit,margin_left:0 msgid "Left Margin (mm)" -msgstr "" +msgstr "Лева маргина (mm)" #. module: report_webkit #: code:addons/report_webkit/webkit_report.py:228 @@ -493,7 +503,7 @@ msgstr "Грешка!" #. module: report_webkit #: help:ir.header_webkit,footer_html:0 msgid "Set Webkit Report Footer." -msgstr "" +msgstr "Поставете подножје на webkit извештај" #. module: report_webkit #: selection:ir.header_webkit,format:0 @@ -509,9 +519,9 @@ msgstr "ir.actions.report.xml" #: code:addons/report_webkit/webkit_report.py:174 #, python-format msgid "The following diagnosis message was provided:\n" -msgstr "" +msgstr "Следнава дијагностичка порака беше обезбедена:\n" #. module: report_webkit #: view:ir.header_webkit:0 msgid "HTML Header" -msgstr "" +msgstr "HTML Заглавие" diff --git a/addons/sale/i18n/mk.po b/addons/sale/i18n/mk.po index 4423dc2b8d5..b60418cb455 100644 --- a/addons/sale/i18n/mk.po +++ b/addons/sale/i18n/mk.po @@ -9,15 +9,15 @@ msgstr "" "Report-Msgid-Bugs-To: OpenERP Macedonian \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-03-11 23:00+0000\n" -"Last-Translator: Ivica Dimitrijev \n" +"PO-Revision-Date: 2013-03-12 12:47+0000\n" +"Last-Translator: Софче Димитријева \n" "Language-Team: OpenERP Macedonia \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-12 05:19+0000\n" -"X-Generator: Launchpad (build 16524)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" "Language: mk\n" #. module: sale @@ -98,6 +98,8 @@ msgid "" "${(object.name or '').replace('/','_')}_${object.state == 'draft' and " "'draft' or ''}" msgstr "" +"${(object.name or '').replace('/','_')}_${object.state == 'draft' and " +"'draft' or ''}" #. module: sale #: view:sale.order.line:0 @@ -170,7 +172,7 @@ msgstr "Понудата е потврдена" #: selection:sale.order,state:0 #: selection:sale.report,state:0 msgid "Invoice Exception" -msgstr "" +msgstr "Исклучување на фактура" #. module: sale #: view:sale.order:0 @@ -245,7 +247,7 @@ msgstr "Неточни податоци" #. module: sale #: view:sale.order.line:0 msgid "Cancel Line" -msgstr "" +msgstr "Откажи ставка" #. module: sale #: help:sale.config.settings,group_discount_per_so_line:0 @@ -381,7 +383,7 @@ msgstr "Продавница" #. module: sale #: model:ir.actions.act_window,name:sale.action_orders_exception msgid "Sales in Exception" -msgstr "" +msgstr "Продажби во исклучување" #. module: sale #: field:sale.order,partner_invoice_id:0 @@ -401,7 +403,7 @@ msgstr "Неточно" #. module: sale #: view:sale.order:0 msgid "Terms and conditions..." -msgstr "" +msgstr "Рокови и услови..." #. module: sale #: help:sale.advance.payment.inv,advance_payment_method:0 @@ -1374,7 +1376,7 @@ msgstr "" #. module: sale #: field:sale.order,paypal_url:0 msgid "Paypal Url" -msgstr "" +msgstr "Пејпал Url" #. module: sale #: help:sale.order,project_id:0 @@ -1504,7 +1506,7 @@ msgstr "Ценовник" #. module: sale #: report:sale.order:0 msgid "TVA :" -msgstr "" +msgstr "TVA :" #. module: sale #: code:addons/sale/sale.py:449 @@ -1593,7 +1595,7 @@ msgstr "Ставки на мојот налог за продажба" #. module: sale #: view:sale.order:0 msgid "Cancel Quotation" -msgstr "" +msgstr "Откажи понуда" #. module: sale #: field:sale.order,message_follower_ids:0 @@ -1701,7 +1703,7 @@ msgstr "" #: code:addons/sale/sale.py:185 #, python-format msgid "There is no default shop for the current user's company!" -msgstr "" +msgstr "Нема стандардна продавница за компанијата на тековниот корисник!" #. module: sale #: model:ir.model,name:sale.model_sale_advance_payment_inv @@ -1837,6 +1839,91 @@ msgid "" "\n" " " msgstr "" +"\n" +"
\n" +"\n" +"

Почитувани${object.partner_id.name},

\n" +" \n" +"

Еве ја вашата ${object.state in ('draft', 'sent') and 'quotation' or " +"'order confirmation'} од ${object.company_id.name}:

\n" +"\n" +"

\n" +"   РЕФЕРЕНЦИ
\n" +"   Број на налогот: ${object.name}
\n" +"   Вкупно налог: ${object.amount_total} " +"${object.pricelist_id.currency_id.name}
\n" +"   Датум на налогот: ${object.date_order}
\n" +" % if object.origin:\n" +"   Референца на налогот: ${object.origin}
\n" +" % endif\n" +" % if object.client_order_ref:\n" +"   Ваша референца: ${object.client_order_ref}
\n" +" % endif\n" +" % if object.user_id:\n" +"   Ваш контакт: ${object.user_id.name}\n" +" % endif\n" +"

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

Исто така е можно и директно плаќање преку Paypal:

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

Доколку имате некои прашања, слободно контактирајте не.

\n" +"

Ви благодариме што ја избравте ${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" +" Телефон:  ${object.company_id.phone}\n" +"
\n" +" % endif\n" +" % if object.company_id.website:\n" +"
\n" +" Веб страна: ${object.company_id.website}\n" +"
\n" +" %endif\n" +"

\n" +"
\n" +"
\n" +" " #. module: sale #: view:sale.order.line:0 diff --git a/addons/sale/i18n/ro.po b/addons/sale/i18n/ro.po index d0ce1b0fd59..4342664b6f2 100644 --- a/addons/sale/i18n/ro.po +++ b/addons/sale/i18n/ro.po @@ -8,14 +8,188 @@ 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-07 19:06+0000\n" +"PO-Revision-Date: 2013-03-12 17:48+0000\n" "Last-Translator: Fekete Mihai \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-08 06:01+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" + +#. module: sale +#: model:email.template,body_html:sale.email_template_edi_sale +msgid "" +"\n" +"
\n" +"\n" +"

Hello ${object.partner_id.name},

\n" +" \n" +"

Here is your ${object.state in ('draft', 'sent') and 'quotation' or " +"'order confirmation'} from ${object.company_id.name}:

\n" +"\n" +"

\n" +"   REFERENCES
\n" +"   Order number: ${object.name}
\n" +"   Order total: ${object.amount_total} " +"${object.pricelist_id.currency_id.name}
\n" +"   Order date: ${object.date_order}
\n" +" % if object.origin:\n" +"   Order reference: ${object.origin}
\n" +" % endif\n" +" % if object.client_order_ref:\n" +"   Your reference: ${object.client_order_ref}
\n" +" % endif\n" +" % if object.user_id:\n" +"   Your contact: ${object.user_id.name}\n" +" % endif\n" +"

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

It is also possible to directly pay with Paypal:

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

If you have any question, do not hesitate to contact us.

\n" +"

Thank you for choosing ${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" +" Phone:  ${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" +" " +msgstr "" +"\n" +"
\n" +"\n" +"

Buna ziua ${object.partner_id.name},

\n" +" \n" +"

Aici este ${object.state in ('draft', 'sent') and 'quotation' or " +"'order confirmation'} pentru ${object.company_id.name}:

\n" +"\n" +"

\n" +"   REFERINTE
\n" +"   Numar comanda: ${object.name}
\n" +"   Total comanda: ${object.amount_total} " +"${object.pricelist_id.currency_id.name}
\n" +"   Data comenzii: ${object.date_order}
\n" +" % if object.origin:\n" +"   Referinta comanda: ${object.origin}
\n" +" % endif\n" +" % if object.client_order_ref:\n" +"   Your reference: ${object.client_order_ref}
\n" +" % endif\n" +" % if object.user_id:\n" +"   Contactul dumneavoastra: ${object.user_id.name}\n" +" % endif\n" +"

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

De asemenea, puteti plati direct cu Paypal:

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

Daca aveti intrebari, nu ezitati sa ne contactati.

\n" +"

Va multumim ca ati ales ${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" +" Telefon:  ${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 #: model:res.groups,name:sale.group_analytic_accounting @@ -1772,184 +1946,6 @@ msgstr "Procentaj" msgid "Other Information" msgstr "Alte informatii" -#. module: sale -#: model:email.template,body_html:sale.email_template_edi_sale -msgid "" -"\n" -"
\n" -"\n" -"

Hello ${object.partner_id.name},

\n" -" \n" -"

Here is your ${object.state in ('draft', 'sent') and 'quotation' or " -"'order confirmation'} from ${object.company_id.name}:

\n" -"\n" -"

\n" -"   REFERENCES
\n" -"   Order number: ${object.name}
\n" -"   Order total: ${object.amount_total} " -"${object.pricelist_id.currency_id.name}
\n" -"   Order date: ${object.date_order}
\n" -" % if object.origin:\n" -"   Order reference: ${object.origin}
\n" -" % endif\n" -" % if object.client_order_ref:\n" -"   Your reference: ${object.client_order_ref}
\n" -" % endif\n" -" % if object.user_id:\n" -"   Your contact: ${object.user_id.name}\n" -" % endif\n" -"

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

It is also possible to directly pay with Paypal:

\n" -" \n" -" \n" -" \n" -" % endif\n" -"\n" -"
\n" -"

If you have any question, do not hesitate to contact us.

\n" -"

Thank you for choosing ${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" -" Phone:  ${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" -" " -msgstr "" -"\n" -"\n" -"\n" -"

Buna ziua ${obiect.partener_id.nume},

\n" -" \n" -"

Iata ${obiect.stare in ('ciorna', 'trimis') si 'oferta' sau " -"'confirmarea comenzii'} de la ${obiect.companie_id.nume}:

\n" -"\n" -" \n" -"   REFERINTE
\n" -"   Numar comanda: ${obiect.nume}
\n" -"   Total comanda: ${obiect.suma_totala} " -"${obiect.lista_de_preturi_id.moneda_id.nume}
\n" -"   Data comenzii: ${obiect.data_comenzii}
\n" -" % if obiect.origine:\n" -"   Referinta comanda: ${obiect.origine}
\n" -" % endif\n" -" % if obiect.client_comanda_ref:\n" -"   Referinta dumneavoastra: ${obiect.client_comanda_ref}
\n" -" % endif\n" -" % if obiect.utilizator_id:\n" -"   Contactul dumneavoastra: ${obiect.utilizator_id.nume}\n" -" % endif\n" -"

\n" -"\n" -" % if obiect.paypal_url:\n" -"
\n" -"

De asemenea, puteti plati direct cu Paypal:

\n" -" \n" -" \n" -" \n" -" % endif\n" -"\n" -"
\n" -"

Daca aveti intrebari, nu ezitati sa ne contactati.

\n" -"

Va multumim ca ati ales ${obiect.companie_id.nume sau 'noi'}!

\n" -"
\n" -"
\n" -" \n" -" \n" -" ${obiect.companie_id.nume}\n" -" \n" -" \n" -" \n" -" % if obiect.companie_id.strada:\n" -" ${obiect.companie_id.strada}
\n" -" % endif\n" -" % if obiect.companie_id.strada2:\n" -" ${obiect.companie_id.strada2}
\n" -" % endif\n" -" % if obiect.companie_id.oras sau obiect.companie_id.cod_postal:\n" -" ${obiect.companie_id.cod_postal} " -"${obiect.companie_id.oras}
\n" -" % endif\n" -" % if obiect.companie_id.tara_id:\n" -" ${obiect.companie_id.stare_id si ('%s, ' % " -"obiect.companie_id.stare_id.nume) sau ''} ${obiect.companie_id.tara_id.nume " -"sau ''}
\n" -" % endif\n" -" \n" -" % if obiect.companie_id.telefon:\n" -" \n" -" Telefon:  ${obiect.companie_id.telefon}\n" -" \n" -" % endif\n" -" % if obiect.companie_id.pagina_de_internet:\n" -" \n" -" %endif\n" -"

\n" -" \n" -"\n" -" " - #. module: sale #: view:sale.order.line:0 #: field:sale.order.line,product_id:0 diff --git a/addons/sale_analytic_plans/i18n/mk.po b/addons/sale_analytic_plans/i18n/mk.po index 3c863d0034f..0d2ef68b31e 100644 --- a/addons/sale_analytic_plans/i18n/mk.po +++ b/addons/sale_analytic_plans/i18n/mk.po @@ -8,19 +8,19 @@ 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-03-01 14:19+0000\n" +"PO-Revision-Date: 2013-03-12 12:51+0000\n" "Last-Translator: Софче Димитријева \n" "Language-Team: Macedonian \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-08 06:01+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: sale_analytic_plans #: field:sale.order.line,analytics_id:0 msgid "Analytic Distribution" -msgstr "" +msgstr "Аналитичка дистрибуција" #. module: sale_analytic_plans #: model:ir.model,name:sale_analytic_plans.model_sale_order diff --git a/addons/sale_stock/i18n/mk.po b/addons/sale_stock/i18n/mk.po index 4c0c0ebd92a..7fdc6d2db8a 100644 --- a/addons/sale_stock/i18n/mk.po +++ b/addons/sale_stock/i18n/mk.po @@ -9,15 +9,15 @@ msgstr "" "Report-Msgid-Bugs-To: OpenERP Macedonian \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2013-02-28 20:38+0000\n" -"Last-Translator: Aleksandar Panov \n" +"PO-Revision-Date: 2013-03-12 13:02+0000\n" +"Last-Translator: Софче Димитријева \n" "Language-Team: OpenERP Macedonia \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-08 06:02+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" "Language: mk\n" #. module: sale_stock @@ -83,7 +83,7 @@ msgstr "Потврди" #. module: sale_stock #: view:sale.order:0 msgid "Cancel Order" -msgstr "" +msgstr "Откажи налог" #. module: sale_stock #: code:addons/sale_stock/sale_stock.py:207 @@ -178,7 +178,7 @@ msgstr "Ред за набавка" #. module: sale_stock #: model:ir.actions.act_window,name:sale_stock.res_partner_rule_children msgid "Contact Details" -msgstr "" +msgstr "Детали за контакт" #. module: sale_stock #: selection:sale.config.settings,default_order_policy:0 @@ -250,7 +250,7 @@ msgstr "Времетраење на испорака" #. module: sale_stock #: model:process.node,note:sale_stock.process_node_deliveryorder0 msgid "Document of the move to the customer." -msgstr "" +msgstr "Документ за движењето до купувачот." #. module: sale_stock #: view:sale.order:0 @@ -465,6 +465,8 @@ msgid "" "One Procurement order for each sales order line and for each of the " "components." msgstr "" +"Еден налог за набавка за секоја ставка од налогот за продажба и за секоја од " +"компонентите." #. module: sale_stock #: model:process.transition.action,name:sale_stock.process_transition_action_assign0 diff --git a/addons/share/i18n/mk.po b/addons/share/i18n/mk.po index 2c8b14d6c2b..1333498f835 100644 --- a/addons/share/i18n/mk.po +++ b/addons/share/i18n/mk.po @@ -9,15 +9,15 @@ msgstr "" "Report-Msgid-Bugs-To: OpenERP Macedonian \n" "POT-Creation-Date: 2013-03-07 08:39+0000\n" -"PO-Revision-Date: 2013-03-01 23:01+0000\n" +"PO-Revision-Date: 2013-03-12 13:13+0000\n" "Last-Translator: Софче Димитријева \n" "Language-Team: OpenERP Macedonia \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-08 06:02+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:58+0000\n" +"X-Generator: Launchpad (build 16532)\n" "Language: mk\n" #. module: share @@ -177,7 +177,7 @@ msgstr "Сподели" #: code:addons/share/wizard/share_wizard.py:570 #, python-format msgid "(Duplicated for modified sharing permissions)" -msgstr "" +msgstr "(Дуплирано за изменети дозволи за споделување)" #. module: share #: code:addons/share/wizard/share_wizard.py:668 @@ -266,7 +266,7 @@ msgstr "" #. module: share #: view:res.groups:0 msgid "Non-Share Groups" -msgstr "" +msgstr "Групи кои не споделуваат" #. module: share #: view:share.wizard:0 @@ -307,7 +307,7 @@ msgstr "Име на споделен запис, доколку се споде #. module: share #: field:res.users,share:0 msgid "Share User" -msgstr "" +msgstr "Корисник на споделување" #. module: share #: field:share.wizard.result.line,user_id:0 @@ -375,6 +375,7 @@ msgstr "" #: help:share.wizard,share_root_url:0 msgid "Main access page for users that are granted shared access" msgstr "" +"Страница за главен пристап за корисници кои имаат доделено споделен пристап" #. module: share #: code:addons/share/wizard/share_wizard.py:206 @@ -504,7 +505,7 @@ msgstr "" #. module: share #: field:share.wizard,view_type:0 msgid "Current View Type" -msgstr "" +msgstr "Тип на тековен приказ" #. module: share #: selection:share.wizard,access_mode:0 @@ -562,6 +563,8 @@ msgid "" "The documents have been automatically added to your subscriptions.\n" "\n" msgstr "" +"Документите беа автоматски додадени на вашите претплати.\n" +"\n" #. module: share #: model:ir.model,name:share.model_res_users diff --git a/addons/stock/i18n/de.po b/addons/stock/i18n/de.po index 23b49d6999a..837a5af2741 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-02-21 16:41+0000\n" +"PO-Revision-Date: 2013-03-12 21:37+0000\n" "Last-Translator: Felix Schubert \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-08 06:03+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:59+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: stock #: field:stock.inventory.line.split,line_exist_ids:0 @@ -171,7 +171,7 @@ msgstr "Lieferauftrag" #. module: stock #: view:stock.inventory:0 msgid "e.g. Annual inventory" -msgstr "" +msgstr "z.B. jährliche Inventur" #. module: stock #: report:lot.stock.overview:0 @@ -840,7 +840,7 @@ msgstr "Pakete" #. module: stock #: selection:stock.location.product,type:0 msgid "Analyse Current Inventory" -msgstr "" +msgstr "Analysiere den aktuellen Bestand" #. module: stock #: view:stock.move:0 @@ -883,7 +883,7 @@ msgstr "Beschaffungslager" #. module: stock #: view:stock.picking:0 msgid "e.g. PO0032" -msgstr "" +msgstr "z.B. PO0032" #. module: stock #: model:ir.actions.act_window,name:stock.action_location_tree @@ -2959,7 +2959,7 @@ msgstr "Bestandsaufnahme Abbrechen" #. module: stock #: view:stock.move:0 msgid "Cancel Move" -msgstr "" +msgstr "Lagerbuchung abbrechen" #. module: stock #: code:addons/stock/stock.py:2246 @@ -3578,7 +3578,7 @@ msgstr "Terminiert" #. module: stock #: view:stock.picking:0 msgid "Add an internal note..." -msgstr "" +msgstr "Interne Anmerkung hinzufügen ..." #. module: stock #: model:ir.actions.act_window,name:stock.action_warehouse_form diff --git a/addons/stock/i18n/mk.po b/addons/stock/i18n/mk.po index 16ae81bc504..f0554c07b4f 100644 --- a/addons/stock/i18n/mk.po +++ b/addons/stock/i18n/mk.po @@ -10,14 +10,14 @@ msgstr "" "Report-Msgid-Bugs-To: OpenERP Macedonian \n" "POT-Creation-Date: 2013-03-07 08:37+0000\n" -"PO-Revision-Date: 2013-03-07 14:29+0000\n" +"PO-Revision-Date: 2013-03-12 14:44+0000\n" "Last-Translator: Софче Димитријева \n" "Language-Team: ESKON Inzenering\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-08 06:03+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:59+0000\n" +"X-Generator: Launchpad (build 16532)\n" "Language: mk\n" #. module: stock @@ -74,7 +74,7 @@ msgstr "Ажурирај количина на производ" #. module: stock #: field:stock.location,chained_location_id:0 msgid "Chained Location If Fixed" -msgstr "" +msgstr "Поврзана локација доколку е фиксно" #. module: stock #: view:stock.inventory:0 @@ -106,7 +106,7 @@ msgstr "Следи ги излезните групи" #: model:ir.actions.act_window,name:stock.action_stock_line_date #: model:ir.ui.menu,name:stock.menu_report_stock_line_date msgid "Last Product Inventories" -msgstr "" +msgstr "Пописи на последен производ" #. module: stock #: view:stock.move:0 @@ -158,6 +158,7 @@ msgstr "" #, python-format msgid "You cannot perform this operation on more than one Stock Inventories." msgstr "" +"Не можете да ја изведете оваа операција на повеќе од еден попис на залихата." #. module: stock #: code:addons/stock/wizard/stock_change_product_qty.py:91 @@ -174,7 +175,7 @@ msgstr "Листа за требување" #. module: stock #: view:stock.inventory:0 msgid "e.g. Annual inventory" -msgstr "" +msgstr "на пр. Годишен попис" #. module: stock #: report:lot.stock.overview:0 @@ -232,7 +233,7 @@ msgstr "Влезни" #: code:addons/stock/wizard/stock_move.py:223 #, python-format msgid "Unable to assign all lots to this move!" -msgstr "" +msgstr "Не е можно да се доделат сите лотови на ова движење!" #. module: stock #: help:stock.move,partner_id:0 @@ -719,6 +720,7 @@ msgstr "Приемно ливче" msgid "" "Serial number quantity %d of %s is larger than available quantity (%d)!" msgstr "" +"Серискиот број на количината %d од %s е поголем од достапната количина (%d)!" #. module: stock #: report:stock.picking.list:0 @@ -789,7 +791,7 @@ msgstr "Објавена залиха" #. module: stock #: field:stock.move.split.lines,wizard_exist_id:0 msgid "Parent Wizard (for existing lines)" -msgstr "" +msgstr "Волшебник Родител (за постојните ставки)" #. module: stock #: view:report.stock.move:0 @@ -880,7 +882,7 @@ msgstr "Локација на набавката" #. module: stock #: view:stock.picking:0 msgid "e.g. PO0032" -msgstr "" +msgstr "на пр. PO0032" #. module: stock #: model:ir.actions.act_window,name:stock.action_location_tree @@ -1056,7 +1058,7 @@ msgstr "Промени количина на производ" #: code:addons/stock/product.py:463 #, python-format msgid "Future P&L" -msgstr "" +msgstr "Идно P&L" #. module: stock #: model:ir.actions.act_window,name:stock.action_picking_tree4 @@ -1239,7 +1241,7 @@ msgstr "Преглед" #. module: stock #: field:stock.location,parent_left:0 msgid "Left Parent" -msgstr "" +msgstr "Лев Родител" #. module: stock #: field:product.category,property_stock_valuation_account_id:0 @@ -1492,6 +1494,7 @@ msgstr "Налог за испорака" #: help:stock.location,chained_delay:0 msgid "Delay between original move and chained move in days" msgstr "" +"Оддолжување помеѓу оригиналното движење и поврзаното движење во денови" #. module: stock #: model:ir.actions.act_window,help:stock.action_stock_journal_form @@ -1509,6 +1512,20 @@ msgid "" "

\n" " " msgstr "" +"

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

\n" +" Системот дневник на залиха ви овозможува да ја доделите " +"секоја операција\n" +" за залихите на одреден дневник според типот на операцијата " +"која треба да се \n" +" изврши од работникот/тимот кој треба да ја изврши " +"операцијата.\n" +" Примери за дневници за залиха може да бидат: контрола на " +"квалитет,\n" +" листи за требување, пакување, и.т.н.\n" +"

\n" +" " #. module: stock #: help:stock.location,chained_auto_packing:0 @@ -1553,6 +1570,9 @@ msgid "" "Technical field used to record the product cost set by the user during a " "picking confirmation (when average price costing method is used)" msgstr "" +"Техничко поле кое се користи за да се зачуваат трошоците за производот " +"подесено од страна на корисникот за време на потврдувањето на требувањето " +"(кога се користи метод на просечна цена на чинење)" #. module: stock #: code:addons/stock/stock.py:1890 @@ -2143,7 +2163,7 @@ msgstr "_Достави" #: code:addons/stock/wizard/stock_inventory_merge.py:64 #, python-format msgid "Merging is only allowed on draft inventories." -msgstr "" +msgstr "Спојување е дозволено единствено на нацрт пописи." #. module: stock #: help:stock.picking.out,state:0 @@ -2273,7 +2293,7 @@ msgstr "Спојување на залиха" #: view:stock.fill.inventory:0 #: view:stock.inventory:0 msgid "Fill Inventory" -msgstr "" +msgstr "Пополни попис" #. module: stock #: view:stock.return.picking:0 @@ -2330,6 +2350,10 @@ msgid "" "moves. Use this report when you want to analyse the different routes taken " "by your products and inventory management performance." msgstr "" +"Анализите на движењата ви овозможуваат полесно да ги означите и анализирате " +"движењата на залихата на вашата компанија. Употребете го овој извештај кога " +"сакате да ги анализирате различните рути кои се прават од вашите производи и " +"изведбата на управувањето со пописот." #. module: stock #: constraint:stock.move:0 @@ -2417,7 +2441,7 @@ msgstr "Поддршка за повеќе варијанти на произв #. module: stock #: view:stock.inventory.line:0 msgid "Stock Inventory Lines" -msgstr "" +msgstr "Ставки на попис на залиха" #. module: stock #: view:report.stock.lines.date:0 @@ -2475,6 +2499,8 @@ msgid "" "Inventory Journal in which the chained move will be written, if the Chaining " "Type is not Transparent (no journal is used if left empty)" msgstr "" +"Дневник Попис во кој поврзаното движење ќе биде запишано, доколку Поврзаниот " +"Тип не е Транспарентно (доколу се остави празно не се користи дневник)" #. module: stock #: selection:report.stock.inventory,location_type:0 @@ -2544,6 +2570,8 @@ msgid "" "Move date: scheduled date until move is done, then date of actual move " "processing" msgstr "" +"Датум на движење: закажан датум се додека движењето е завршено, потоа датум " +"на процесирање на актуелно движење" #. module: stock #: view:report.stock.inventory:0 @@ -2583,7 +2611,7 @@ msgstr "" #. module: stock #: view:stock.location:0 msgid "Chained Locations" -msgstr "" +msgstr "Поврзани локации" #. module: stock #: model:stock.location,name:stock.location_inventory @@ -2806,7 +2834,7 @@ msgstr "Движење" #: code:addons/stock/product.py:465 #, python-format msgid "P&L Qty" -msgstr "" +msgstr "P&L Количина" #. module: stock #: model:ir.model,name:stock.model_stock_config_settings @@ -2992,6 +3020,10 @@ msgid "" "need this report in order to ensure that the stock of each product is " "controlled at least once a year." msgstr "" +"Прикажи ги последните пописи направени на вашите производи и сортирајте ги " +"истите според одредени критериуми за филтрирање. Доколку правите почести и " +"парцијални пописи, овој извештај ќе ви биде потребен за да се осигурате дека " +"залихата на секој производ е контролирана најмалку еднаш годишно." #. module: stock #: code:addons/stock/wizard/stock_invoice_onshipping.py:112 @@ -3222,7 +3254,7 @@ msgstr "" #. module: stock #: view:stock.partial.move.line:0 msgid "Stock Partial Move Line" -msgstr "" +msgstr "Ставка за делумно движење на залиха" #. module: stock #: field:stock.move,product_uos_qty:0 @@ -3285,7 +3317,7 @@ msgstr "Волшебник Родител" #: model:ir.ui.menu,name:stock.menu_action_incoterm_open #: view:stock.incoterms:0 msgid "Incoterms" -msgstr "" +msgstr "Incoterms" #. module: stock #: model:ir.model,name:stock.model_stock_partial_picking_line @@ -3346,6 +3378,8 @@ msgstr "" msgid "" "Allows to configure inventory valuations on products and product categories." msgstr "" +"Овозможува конфигурирање на проценката на залихите на производите и " +"категориите на производи." #. module: stock #: help:stock.config.settings,module_stock_location:0 @@ -3650,7 +3684,7 @@ msgstr "Доделени внатрешни белешки" #: code:addons/stock/stock.py:790 #, python-format msgid "You cannot process picking without stock moves." -msgstr "" +msgstr "Не можете да извршите требување без движења на залихи." #. module: stock #: field:stock.production.lot,move_ids:0 @@ -3676,7 +3710,7 @@ msgstr "Консумирај производи" #. module: stock #: field:stock.location,parent_right:0 msgid "Right Parent" -msgstr "" +msgstr "Десен Родител" #. module: stock #: report:lot.stock.overview:0 @@ -3964,7 +3998,7 @@ msgstr "Барај залиха" #: model:ir.model,name:stock.model_report_stock_lines_date #: view:report.stock.lines.date:0 msgid "Dates of Inventories" -msgstr "" +msgstr "Датуми на пописи" #. module: stock #: model:ir.actions.act_window,name:stock.action_receive_move @@ -4202,6 +4236,16 @@ msgid "" "* Fixed Location: The chained location is taken from the next field: Chained " "Location if Fixed." msgstr "" +"Определува дали оваа локација е поврзана со друга локација, на пр. влезните " +"производи на оваа локација \n" +"треба да одат до поврзаната локација. Поврзаната локација е определена " +"според типот :\n" +"* Ниедна: Нема воопшто поврзување\n" +"* Купувач: Поврзаната локација ќе биде превземена од полето за локација на " +"купувачот на формуларот на Партнерот кој е назначен во листата за требување " +"од влезните производи.\n" +"* Фиксна локација: Поврзаната локација за превзема од наредното поле: " +"Поврзана локација доколку е фиксно." #. module: stock #: code:addons/stock/stock.py:1853 @@ -4283,7 +4327,7 @@ msgstr "Следбеници" #: code:addons/stock/stock.py:2585 #, python-format msgid "Cannot consume a move with negative or zero quantity." -msgstr "" +msgstr "Не може да се конзумира движење со негативна или нула количина." #. module: stock #: help:stock.config.settings,decimal_precision:0 @@ -4356,6 +4400,11 @@ msgid "" "If cost price is decreased, stock variation account will be creadited and " "stock input account will be debited." msgstr "" +"Доколку цената на чинење е зголемена, сметката за варијација на залиха ќе " +"биде задолжена и сметката за излез на залиха ќе има побарување со вредност= " +"(разлика на износ * достапна количина).\n" +"Доколку чената на чинење е намалена, сметката за варијација на залиха ќе има " +"побарување а сметката за влез на залиха ќе биде задолжена." #. module: stock #: code:addons/stock/stock.py:2811 @@ -4378,7 +4427,7 @@ msgstr "" #. module: stock #: field:stock.location,chained_journal_id:0 msgid "Chaining Journal" -msgstr "" +msgstr "Поврзуван дневник" #. module: stock #: code:addons/stock/stock.py:768 @@ -4401,6 +4450,12 @@ msgid "" "this quantity on assigned moves affects the product reservation, and should " "be done with care." msgstr "" +"Ова е количината на производи од пописна гледна точка. За движења во " +"состојба 'завршено', ова е количината на производи кои се преместени. За " +"другите движења, ова е количината на производ кој се планира да биде " +"преместен. Намалувањето на оваа количина не генерира повлекување на налогот. " +"Менувањето на оваа количина на доделени движења влијае на резервацијата на " +"производот, и треба да биде внимателно извршено." #. module: stock #: help:stock.location,valuation_in_account_id:0 @@ -4479,6 +4534,9 @@ msgid "" "Technical field used to record the currency chosen by the user during a " "picking confirmation (when average price costing method is used)" msgstr "" +"Техничко поле кое се користи за да се зачува валутата избрана од страна на " +"корисникот за време на потврдувањето на требувањето (кога се користи метод " +"на средна цена на чинење)" #. module: stock #: help:stock.production.lot,name:0 @@ -4542,7 +4600,7 @@ msgstr "Информација" #: code:addons/stock/stock.py:1199 #, python-format msgid "You cannot remove the picking which is in %s state!" -msgstr "" +msgstr "Не може да отстраните требување кое е во %s состојба!" #. module: stock #: help:res.partner,property_stock_customer:0 @@ -4571,7 +4629,7 @@ msgstr "Макс. очекуван датум" #: field:stock.picking.in,auto_picking:0 #: field:stock.picking.out,auto_picking:0 msgid "Auto-Picking" -msgstr "" +msgstr "Автоматско требување" #. module: stock #: report:stock.picking.list:0 @@ -4581,7 +4639,7 @@ msgstr "Адреса на клиент :" #. module: stock #: field:stock.location,chained_auto_packing:0 msgid "Chaining Type" -msgstr "" +msgstr "Тип на поврзување" #. module: stock #: view:report.stock.inventory:0 @@ -4607,7 +4665,7 @@ msgstr "Преглед на календар" #: model:ir.actions.report.xml,name:stock.report_stock_inventory_move #: report:stock.inventory.move:0 msgid "Stock Inventory" -msgstr "" +msgstr "Попис на залиха" #. module: stock #: help:report.stock.inventory,state:0 @@ -4618,6 +4676,11 @@ msgid "" " When the picking it done the state is 'Done'. \n" "The state is 'Waiting' if the move is waiting for another one." msgstr "" +"Кога движењето на залихата е креирано, тоа е во состојба 'Нацрт'.\n" +" После тоа е подесено во состојба 'Потврдено'.\n" +" Доколку залихата е достапна состојбата е подесена на 'Достапно'.\n" +" Кога требувањето е направено состојбата е 'Завршено'. \n" +"Состојбата е 'Чекам' доколку движењето чека некое друго движење." #. module: stock #: view:stock.inventory.merge:0 @@ -4641,6 +4704,8 @@ msgid "" "Please define inventory valuation account on the product category: \"%s\" " "(id: %d)" msgstr "" +"Дефинирајте сметка за проценка на залиха на категорија производ: \"%s\" (id: " +"%d)" #. module: stock #: model:ir.model,name:stock.model_stock_production_lot_revision @@ -4702,7 +4767,7 @@ msgstr "Непланирана количина" #. module: stock #: field:stock.location,chained_company_id:0 msgid "Chained Company" -msgstr "" +msgstr "Поврзана компанија" #. module: stock #: view:stock.picking.out:0 @@ -4763,7 +4828,7 @@ msgstr "Грешка" #. module: stock #: report:stock.inventory.move:0 msgid "Production Lot" -msgstr "" +msgstr "Лот за производство" #. module: stock #: model:ir.ui.menu,name:stock.menu_traceability @@ -4952,7 +5017,7 @@ msgstr "Испорака" #. module: stock #: view:stock.fill.inventory:0 msgid "Import the current inventory" -msgstr "" +msgstr "Увези тековен попис" #. module: stock #: model:ir.actions.act_window,name:stock.action5 @@ -4981,7 +5046,7 @@ msgstr "Конто Излез на залиха" #. module: stock #: field:stock.location,chained_location_type:0 msgid "Chained Location Type" -msgstr "" +msgstr "Тип на поврзана локација" #. module: stock #: help:stock.picking,min_date:0 @@ -5072,7 +5137,7 @@ msgstr "Локација на отпад" #. module: stock #: model:ir.actions.act_window,name:stock.action_partial_picking msgid "Process Picking" -msgstr "" +msgstr "Обработи требување" #. module: stock #: selection:report.stock.inventory,month:0 @@ -5149,6 +5214,9 @@ msgid "" "would let a quantity of \"%s %s\" to ship and only roundings of \"%s %s\" is " "accepted by the uom." msgstr "" +"Заокружувањето на основната ЕМ не ви дозволува да испорачате \"%s %s\", како " +"што би дозволило испорачување на количина од \"%s %s\" и единствено " +"заокружувања од \"%s %s\" се прифатливи за оваа ЕМ." #. module: stock #: help:stock.move,move_dest_id:0 diff --git a/addons/stock_location/i18n/mk.po b/addons/stock_location/i18n/mk.po index afdd1cf5ecb..abd5fd98cd2 100644 --- a/addons/stock_location/i18n/mk.po +++ b/addons/stock_location/i18n/mk.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-03-07 11:18+0000\n" -"Last-Translator: Aleksandar Panov \n" +"PO-Revision-Date: 2013-03-12 14:52+0000\n" +"Last-Translator: Софче Димитријева \n" "Language-Team: Macedonian \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-08 06:04+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:59+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: stock_location #: help:product.pulled.flow,company_id:0 @@ -74,7 +74,7 @@ msgstr "" #. module: stock_location #: view:product.product:0 msgid "When receiving at location X, move to location Y" -msgstr "" +msgstr "Кога примаш во локација X, премести во локација Y" #. module: stock_location #: selection:product.pulled.flow,picking_type:0 @@ -145,7 +145,7 @@ msgstr "" #. module: stock_location #: model:stock.location,name:stock_location.location_dispatch_zone msgid "Dispatch Zone" -msgstr "" +msgstr "Зона ан испраќање" #. module: stock_location #: view:product.product:0 @@ -189,7 +189,7 @@ msgstr "Направи го залиха" #: code:addons/stock_location/procurement_pull.py:118 #, python-format msgid "Pulled from another location." -msgstr "" +msgstr "Извлечено од друга локација" #. module: stock_location #: field:product.pulled.flow,partner_address_id:0 @@ -211,6 +211,7 @@ msgstr "Број на денови за да се направи овој пре #: help:product.pulled.flow,name:0 msgid "This field will fill the packing Origin and the name of its moves" msgstr "" +"Ова поле ќе го пополни Потеклото на пакувањето о името на неговите движења" #. module: stock_location #: field:product.pulled.flow,type_proc:0 @@ -311,7 +312,7 @@ msgstr "" #. module: stock_location #: view:product.product:0 msgid "Pull Flow" -msgstr "" +msgstr "Тек на извлекување" #. module: stock_location #: model:ir.model,name:stock_location.model_procurement_order @@ -339,7 +340,7 @@ msgstr "Добивање на стоки" #. module: stock_location #: view:product.product:0 msgid "Fulfill needs on location X from location Y " -msgstr "" +msgstr "Исполни барања на локациј X од локација Y " #. module: stock_location #: view:product.product:0 @@ -386,7 +387,7 @@ msgstr "Дневник" #: field:product.pulled.flow,cancel_cascade:0 #: field:stock.move,cancel_cascade:0 msgid "Cancel Cascade" -msgstr "" +msgstr "Откажи каскада" #. module: stock_location #: selection:product.pulled.flow,invoice_state:0 diff --git a/addons/subscription/i18n/mk.po b/addons/subscription/i18n/mk.po index f15c2fc9511..a2f3e5df176 100644 --- a/addons/subscription/i18n/mk.po +++ b/addons/subscription/i18n/mk.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-03-04 14:57+0000\n" -"Last-Translator: Aleksandar Panov \n" +"PO-Revision-Date: 2013-03-12 14:56+0000\n" +"Last-Translator: Софче Димитријева \n" "Language-Team: Macedonian \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-08 06:05+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:59+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: subscription #: field:subscription.subscription,doc_source:0 @@ -231,6 +231,7 @@ msgstr "" #: help:subscription.document.fields,value:0 msgid "Default value is considered for field when new document is generated." msgstr "" +"Стандардна вредност е предвидена за ова поле кога се генерира нов документ." #. module: subscription #: selection:subscription.document.fields,value:0 diff --git a/addons/survey/i18n/mk.po b/addons/survey/i18n/mk.po index c114a9c840b..0a1f6d1613b 100644 --- a/addons/survey/i18n/mk.po +++ b/addons/survey/i18n/mk.po @@ -8,19 +8,19 @@ 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-03-11 12:13+0000\n" -"Last-Translator: Aleksandar Panov \n" +"PO-Revision-Date: 2013-03-12 15:38+0000\n" +"Last-Translator: Софче Димитријева \n" "Language-Team: Macedonian \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-12 05:19+0000\n" -"X-Generator: Launchpad (build 16524)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:59+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: survey #: view:survey.response.line:0 msgid "Single Textboxes" -msgstr "" +msgstr "Единечни текстуални рамки" #. module: survey #: code:addons/survey/survey.py:471 @@ -30,6 +30,8 @@ msgid "" "greater than the number of answer. " "Please use a number that is smaller than %d." msgstr "" +"Минималниот потребен одговор кој го внесовте е поголем од бројот на " +"одговорот. Употребете број кој е помал од %d." #. module: survey #: view:survey.question.wiz:0 @@ -182,6 +184,8 @@ msgid "" "than the number of answer. Please use a " "number that is smaller than %d." msgstr "" +"Бараниот одговор кој го внесовте е поголем од бројот на одговорот. " +"Употребете број кој е помал од %d." #. module: survey #: field:survey.question,tot_resp:0 @@ -206,6 +210,8 @@ msgid "" "your maximum is greater than the number of answer. " " Please use a number that is smaller than %d." msgstr "" +"Максималниот потребен одговор кој го внесовте за вашиот максимум е поголем " +"од бројот на одговорот. Употребете број кој е помал од %d." #. module: survey #: selection:survey.question,type:0 @@ -225,6 +231,8 @@ msgid "" "Maximum Required Answer you entered for your maximum is greater than the " "number of answer. Please use a number that is smaller than %d." msgstr "" +"Максималниот потребен одговор кој го внесовте за вашиот максимум е поголем " +"од бројот на одговорот. Употребете број кој е помал од %d." #. module: survey #: model:ir.model,name:survey.model_survey_question @@ -237,7 +245,7 @@ msgstr "Прашање за анкета" #. module: survey #: view:survey.question.column.heading:0 msgid "Use if question type is rating_scale" -msgstr "" +msgstr "Употребете доколку типот на прашање е rating_scale" #. module: survey #: field:survey.print,page_number:0 @@ -298,7 +306,7 @@ msgstr "Целосно завршена анкета" #. module: survey #: view:survey.response.answer:0 msgid "(Use Only Question Type is matrix_of_drop_down_menus)" -msgstr "" +msgstr "(Use Only Question Type is matrix_of_drop_down_menus)" #. module: survey #: model:ir.actions.report.xml,name:survey.survey_analysis @@ -397,7 +405,7 @@ msgstr "Мои анкети" #. module: survey #: view:survey.response.line:0 msgid "Survey Answer Line" -msgstr "" +msgstr "Линија за одговор во истражување" #. module: survey #: code:addons/survey/wizard/survey_send_invitation.py:72 @@ -619,7 +627,7 @@ msgstr "Селектирај партнер" #: code:addons/survey/survey.py:527 #, python-format msgid "Maximum Required Answer is greater than Minimum Required Answer." -msgstr "" +msgstr "Максималниот баран одговор е поголем од минималниот баран одговор." #. module: survey #: model:ir.ui.menu,name:survey.menu_reporting @@ -661,7 +669,7 @@ msgstr "Дали менито Избор е невидливо?" #. module: survey #: field:survey.question,minimum_req_ans:0 msgid "Minimum Required Answer" -msgstr "" +msgstr "Минимален баран одговор" #. module: survey #: field:survey.question,req_error_msg:0 @@ -733,6 +741,8 @@ msgid "" "your maximum is greater than the number of answer. " " Please use a number that is smaller than %d." msgstr "" +"Максималниот потребен одговор кој го внесовте за ваш максимум е поголем од " +"бројот на одговорот. Употребете број кој е помал од %d." #. module: survey #: view:survey:0 @@ -836,7 +846,7 @@ msgstr "#Одговор" #: field:survey.print,without_pagebreak:0 #: field:survey.print.answer,without_pagebreak:0 msgid "Print Without Page Breaks" -msgstr "" +msgstr "Печати без прекин на страница" #. module: survey #: view:survey:0 @@ -865,6 +875,8 @@ msgstr "Постави на еден доколку се бара само ед msgid "" "You must enter one or more column headings for question \"%s\" of page %s." msgstr "" +"Мора да внесете еден или неколку наслови на колоната за прашањето \"%s\" од " +"страницата %s." #. module: survey #: model:ir.model,name:survey.model_res_users @@ -888,7 +900,7 @@ msgstr "" #. module: survey #: field:survey.question,maximum_req_ans:0 msgid "Maximum Required Answer" -msgstr "" +msgstr "МАксимален баран одговор" #. module: survey #: field:survey.name.wiz,page_no:0 @@ -925,6 +937,7 @@ msgstr "Лог" #: view:survey.question:0 msgid "When the choices do not add up correctly, display this error message" msgstr "" +"Доколку изборите не се додадени правилно, прикажи ја оваа порака за грешка" #. module: survey #: model:ir.actions.act_window,help:survey.action_survey_form1 @@ -1026,7 +1039,7 @@ msgstr "Одговор" #. module: survey #: field:survey,max_response_limit:0 msgid "Maximum Answer Limit" -msgstr "" +msgstr "Максимална граница на одговор" #. module: survey #: model:ir.actions.act_window,name:survey.action_act_view_survey_send_invitation @@ -1093,7 +1106,7 @@ msgstr "Печати одговор" #. module: survey #: selection:survey.question,type:0 msgid "Multiple Textboxes" -msgstr "" +msgstr "Повеќе текстуални рамки" #. module: survey #: selection:survey.print,orientation:0 @@ -1114,7 +1127,7 @@ msgstr "Детали за анкетата" #. module: survey #: selection:survey.question,type:0 msgid "Multiple Textboxes With Different Type" -msgstr "" +msgstr "Повеќе текстуални рамки со различен тип" #. module: survey #: view:survey.name.wiz:0 @@ -1183,7 +1196,7 @@ msgstr "Корисник" #. module: survey #: field:survey.name.wiz,transfer:0 msgid "Page Transfer" -msgstr "" +msgstr "Трансфер на страница" #. module: survey #: selection:survey.response.line,state:0 @@ -1218,7 +1231,7 @@ msgstr "Барај одговори" #. module: survey #: model:ir.model,name:survey.model_survey_response_line msgid "Survey Response Line" -msgstr "" +msgstr "Линија за одговор на истражување" #. module: survey #: code:addons/survey/survey.py:169 @@ -1305,7 +1318,7 @@ msgstr "Секв" #. module: survey #: view:survey.question.column.heading:0 msgid "Menu Choices (each choice on separate lines)" -msgstr "" +msgstr "Мени Избори (секој избор на одделни ставки)" #. module: survey #: field:survey.question,comment_minimum_no:0 @@ -1391,6 +1404,8 @@ msgid "" "#Required Answer you entered is greater than the number of answer. Please " "use a number that is smaller than %d." msgstr "" +"#Потребниот одговор кој го внесовте е поголем од бројот на одговорот. " +"Употребете број кој е помал од %d." #. module: survey #: help:survey,max_response_limit:0 @@ -1551,6 +1566,8 @@ msgid "" "Minimum Required Answer you entered is greater than the number of answer. " "Please use a number that is smaller than %d." msgstr "" +"Минималниот потребен одговор кој го внесовте е поголем од бројот на " +"одговорот. Употребете број кој е помал од %d." #. module: survey #: view:survey:0 @@ -1581,12 +1598,14 @@ msgid "" "than the number of answer. Please use a " "number that is smaller than %d." msgstr "" +"#Потребниот одговор кој го внесовте е поголем од бројот на одговорот. " +"Употребете број кој е помал од %d." #. module: survey #: selection:survey.print,paper_size:0 #: selection:survey.print.answer,paper_size:0 msgid "Legal (8.5\" x 14\")" -msgstr "" +msgstr "Правно (8.5\" x 14\")" #. module: survey #: field:survey.type,name:0 @@ -1680,6 +1699,8 @@ msgid "" "greater than the number of answer. Please " "use a number that is smaller than %d." msgstr "" +"Минималниот потребен одговор кој го внесовте е поголем од бројот на " +"одговорот. Употребете број кој е помал од %d." #. module: survey #: field:survey.answer,menu_choice:0 @@ -1698,6 +1719,7 @@ msgid "" "Maximum Required Answer is greater than " "Minimum Required Answer" msgstr "" +"Максималниот потребен одговор е поголем од Минималниот потребен одговор" #. module: survey #: view:survey.send.invitation.log:0 @@ -1723,7 +1745,7 @@ msgstr "Повеќекратен избор (Само еден одговор)" #. module: survey #: field:survey.answer,in_visible_answer_type:0 msgid "Is Answer Type Invisible??" -msgstr "" +msgstr "Дали типот на прашање е невидлив?" #. module: survey #: model:ir.model,name:survey.model_survey_print_answer @@ -1733,7 +1755,7 @@ msgstr "survey.print.answer" #. module: survey #: view:survey.answer:0 msgid "Menu Choices (each choice on separate by lines)" -msgstr "" +msgstr "Мени Избори (секој избор одделен по ставки)" #. module: survey #: selection:survey.answer,type:0 @@ -1792,7 +1814,7 @@ msgstr "Тип на прашање" #. module: survey #: field:survey.question,in_visible_answer_type:0 msgid "Is Answer Type Invisible?" -msgstr "" +msgstr "Дали Типот Прашање е невидлив?" #. module: survey #: selection:survey.question,type:0 @@ -1815,7 +1837,7 @@ msgstr "Минимален датум" #. module: survey #: field:survey,response_user:0 msgid "Maximum Answer per User" -msgstr "" +msgstr "МАксимален одговор по корисник" #. module: survey #: field:survey.name.wiz,page:0 diff --git a/addons/web/i18n/ro.po b/addons/web/i18n/ro.po index a3fc3bb6de4..5734bf39902 100644 --- a/addons/web/i18n/ro.po +++ b/addons/web/i18n/ro.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: 2013-03-06 18:07+0000\n" -"Last-Translator: Dorin \n" +"PO-Revision-Date: 2013-03-12 14:09+0000\n" +"Last-Translator: Simonel Criste \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-08 06:06+0000\n" -"X-Generator: Launchpad (build 16523)\n" +"X-Launchpad-Export-Date: 2013-03-13 04:59+0000\n" +"X-Generator: Launchpad (build 16532)\n" #. module: web #. openerp-web @@ -36,7 +36,7 @@ msgstr "acum %d minute" #: code:addons/web/static/src/js/coresetup.js:616 #, python-format msgid "Still loading...
Please be patient." -msgstr "" +msgstr "inca se incarca ...
va rugam sa aveti rabdare." #. module: web #. openerp-web From 910f7097ba8278e329de236341f7e2e78293c0de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 13 Mar 2013 11:56:40 +0100 Subject: [PATCH 57/72] [IMP] res_partner: use tools.email_split instead of custom regex when parsing partner_name to find an email. bzr revid: tde@openerp.com-20130313105640-r53xueaz36zw3fjd --- openerp/addons/base/res/res_partner.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index 4dce23b4d33..7c9fbf58c64 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -417,10 +417,10 @@ class res_partner(osv.osv, format_address): """ Supported syntax: - 'Raoul ': will find name and email address - otherwise: default, everything is set as the name """ - match = re.search(r'([^\s,<@]+@[^>\s,]+)', text) - if match: - email = match.group(1) - name = text[:text.index(email)].replace('"','').replace('<','').strip() + emails = tools.email_split(text) + if emails: + email = emails[0] + name = text[:text.index(email)].replace('"', '').replace('<', '').strip() else: name, email = text, '' return name, email From d49889c9a8575cdb31193770172e9de3bb1b3d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 13 Mar 2013 12:17:46 +0100 Subject: [PATCH 58/72] [IMP] mail: res_partner: improved help for notification_email_send. bzr revid: tde@openerp.com-20130313111746-xfrd8kdhntb39gwl --- addons/mail/res_partner.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/mail/res_partner.py b/addons/mail/res_partner.py index 6807c13a08a..05f9fc2ace0 100644 --- a/addons/mail/res_partner.py +++ b/addons/mail/res_partner.py @@ -30,16 +30,16 @@ class res_partner_mail(osv.Model): _columns = { 'notification_email_send': fields.selection([ - ('all', 'All Messages (discussions, emails, followed system notifications)'), - ('comment', 'Incoming Emails and Discussions'), + ('none', 'Never'), ('email', 'Incoming Emails only'), - ('none', 'Never') + ('comment', 'Incoming Emails and Discussions'), + ('all', 'All Messages (discussions, emails, followed system notifications)'), ], 'Receive Messages by Email', required=True, - help="Policy to receive emails for new notifications pushed to your Inbox. "\ - "'Never' prevents OpenERP from sending emails for notifications. "\ - "'Incoming Emails only' send an email when you receive an incoming email, such as customer replies. "\ - "'Incoming Emails and Discussions' sends emails for incoming emails along with user input. "\ - "'All Messages' also sends emails for notifications received for followed subtype, like stage changes, in addition to Incoming Emails and Discussions."), + help="Policy to receive emails for new messages pushed to your personal Inbox:\n " + "- Never: no emails are sent" + "- Incoming Emails only: for messages received by the system via email" + "- Incoming Emails and Discussions: for incoming emails along with internal discussions" + "- All Messages: for every notification you receive in your Inbox"), } _defaults = { From 6b2c64ff4099a3ab7cb5f0643f20bda5943f3f6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 13 Mar 2013 12:19:26 +0100 Subject: [PATCH 59/72] [IMP] mail_mail: cleaned code about reply_to format: now uses tools.email_split, cleaned a bit the code. bzr revid: tde@openerp.com-20130313111926-45d9gct5nihr6f6n --- addons/mail/mail_mail.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py index 1ca3255fd84..7720df84f92 100644 --- a/addons/mail/mail_mail.py +++ b/addons/mail/mail_mail.py @@ -209,17 +209,15 @@ class mail_mail(osv.Model): email_reply_to = self.pool.get(mail.model).message_get_reply_to(cr, uid, [mail.res_id], context=context)[0] # no alias reply_to -> reply_to will be the email_from, only the email part if not email_reply_to and mail.email_from: - match = re.search(r'([^\s,<@]+@[^>\s,]+)', mail.email_from) # TDE TODO: simplify multiple same regex - if match: - email_reply_to = match.group(1) + emails = tools.email_split(mail.email_from) + if emails: + email_reply_to = emails[0] # format 'Document name ' - if email_reply_to: - document_name = '' - if mail.model and mail.res_id: - document_name = self.pool.get(mail.model).name_get(cr, SUPERUSER_ID, [mail.res_id], context=context)[0] + if email_reply_to and mail.model and mail.res_id: + document_name = self.pool.get(mail.model).name_get(cr, SUPERUSER_ID, [mail.res_id], context=context)[0] if document_name: - email_reply_to = 'Followers of %s <%s>' % (document_name[1], email_reply_to) + email_reply_to = _('Followers of %s <%s>') % (document_name[1], email_reply_to) return email_reply_to From 2f4a59fd0652e1c5b76e5bd62826de084295c91d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 13 Mar 2013 12:20:13 +0100 Subject: [PATCH 60/72] [IMP] email_template, crm: added forgotten filters for opt-out; cleaned help of opt-out; email body is back into internal note as it has been decided that it was too much change for 7.0, especially that email content parsing is not robust enough. bzr revid: tde@openerp.com-20130313112013-veqzplextey1300p --- addons/crm/crm_lead.py | 6 +++++- addons/crm/crm_lead_view.xml | 2 ++ addons/email_template/res_partner.py | 5 +++-- addons/email_template/res_partner_view.xml | 12 ++++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 9b3697b8dc5..7ab9f110a7b 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -259,7 +259,9 @@ class crm_lead(base_stage, format_address, osv.osv): 'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel (mail, direct, phone, ...)"), 'contact_name': fields.char('Contact Name', size=64), 'partner_name': fields.char("Customer Name", size=64,help='The name of the future partner company that will be created while converting the lead into opportunity', select=1), - 'opt_out': fields.boolean('Opt-Out', oldname='optout', help="If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign."), + 'opt_out': fields.boolean('Opt-Out', oldname='optout', + help="If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign. " + "Filter 'Available for Mass Mailing' allows users to filter the partners when performing mass mailing."), 'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'date_closed': fields.datetime('Closed', readonly=True), @@ -977,8 +979,10 @@ class crm_lead(base_stage, format_address, osv.osv): """ if custom_values is None: custom_values = {} + desc = html2plaintext(msg.get('body')) if msg.get('body') else '' defaults = { 'name': msg.get('subject') or _("No Subject"), + 'description': desc, 'email_from': msg.get('from'), 'email_cc': msg.get('cc'), 'partner_id': msg.get('author_id', False), diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index df68f90aa57..39c9a5b98f5 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -341,6 +341,8 @@ + diff --git a/addons/email_template/res_partner.py b/addons/email_template/res_partner.py index bf730f37458..cb3ef67862f 100644 --- a/addons/email_template/res_partner.py +++ b/addons/email_template/res_partner.py @@ -19,7 +19,7 @@ # ############################################################################## -from openerp.osv import fields,osv +from openerp.osv import fields, osv class res_partner(osv.osv): """Inherit res.partner to add a generic opt-out field that can be used @@ -29,7 +29,8 @@ class res_partner(osv.osv): _columns = { 'opt_out': fields.boolean('Opt-Out', - help="If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign."), + help="If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign. " + "Filter 'Available for Mass Mailing' allows users to filter the partners when performing mass mailing."), } _defaults = { diff --git a/addons/email_template/res_partner_view.xml b/addons/email_template/res_partner_view.xml index 3d17120d69e..7e494bd5054 100644 --- a/addons/email_template/res_partner_view.xml +++ b/addons/email_template/res_partner_view.xml @@ -11,5 +11,17 @@
+ + + res.partner.opt_out.search + res.partner + + + + + + + From fdf7410acffa269ee81ac7a0f03c3f9429b19e52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 13 Mar 2013 12:59:01 +0100 Subject: [PATCH 61/72] [FIX] crm, res_partner: added separator in search views after adding not opt-out filter. bzr revid: tde@openerp.com-20130313115901-s60j69qn3e3q4bpk --- addons/crm/crm_lead_view.xml | 3 ++- addons/email_template/res_partner_view.xml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 39c9a5b98f5..4c055ce1436 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -341,9 +341,10 @@ + - + diff --git a/addons/email_template/res_partner_view.xml b/addons/email_template/res_partner_view.xml index 7e494bd5054..c6331ebf514 100644 --- a/addons/email_template/res_partner_view.xml +++ b/addons/email_template/res_partner_view.xml @@ -18,8 +18,9 @@ + + help="Leads that did not ask not to be included in mass mailing campaigns" /> From 3dc1a58ed5906212a52c376b62cff69d9ac4ec78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 13 Mar 2013 13:12:21 +0100 Subject: [PATCH 62/72] [FIX] crm, email_template: fixed help messages talking about partners and leads instead of leads and partners... well, I think this comment is not very understandable, but at least there is a commit message. Horray. bzr revid: tde@openerp.com-20130313121221-lo0kmkt2lltyr94e --- addons/crm/crm_lead.py | 2 +- addons/email_template/res_partner_view.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 7ab9f110a7b..d0be688c8a5 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -261,7 +261,7 @@ class crm_lead(base_stage, format_address, osv.osv): 'partner_name': fields.char("Customer Name", size=64,help='The name of the future partner company that will be created while converting the lead into opportunity', select=1), 'opt_out': fields.boolean('Opt-Out', oldname='optout', help="If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign. " - "Filter 'Available for Mass Mailing' allows users to filter the partners when performing mass mailing."), + "Filter 'Available for Mass Mailing' allows users to filter the leads when performing mass mailing."), 'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'date_closed': fields.datetime('Closed', readonly=True), diff --git a/addons/email_template/res_partner_view.xml b/addons/email_template/res_partner_view.xml index c6331ebf514..1da3681d3af 100644 --- a/addons/email_template/res_partner_view.xml +++ b/addons/email_template/res_partner_view.xml @@ -20,7 +20,7 @@ + help="Partners that did not ask not to be included in mass mailing campaigns" /> From ecd460e0d5a534af2a2536786b401c84267db40e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 13 Mar 2013 13:16:59 +0100 Subject: [PATCH 63/72] [IMP] email_template: improved help for email_from. bzr revid: tde@openerp.com-20130313121659-pvdy814zoq9zonf2 --- addons/email_template/email_template.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 280e44fa2fb..08ef3ec6e98 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -142,7 +142,9 @@ class email_template(osv.osv): help="If checked, the user's signature will be appended to the text version " "of the message"), 'subject': fields.char('Subject', translate=True, help="Subject (placeholders may be used here)",), - 'email_from': fields.char('From', help="Sender address (placeholders may be used here)"), + 'email_from': fields.char('From', + help="Sender address (placeholders may be used here). If not set, the default " + "value will be the author's email alias if configured, or email address."), 'email_to': fields.char('To (Emails)', help="Comma-separated recipient addresses (placeholders may be used here)"), 'email_recipients': fields.char('To (Partners)', help="Comma-separated ids of recipient partners (placeholders may be used here)"), 'email_cc': fields.char('Cc', help="Carbon copy recipients (placeholders may be used here)"), From 3b989b2c57f8aeb2d8bb92ec6338b862458d9641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 13 Mar 2013 13:26:32 +0100 Subject: [PATCH 64/72] [FIX] mail_message: fixed strings and names for read/unread filters. bzr revid: tde@openerp.com-20130313122632-bwsz0pss88z0ups2 --- addons/mail/mail_message_view.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/mail/mail_message_view.xml b/addons/mail/mail_message_view.xml index 7d2e9483773..8f2fb3f1020 100644 --- a/addons/mail/mail_message_view.xml +++ b/addons/mail/mail_message_view.xml @@ -59,12 +59,12 @@ - - + Date: Wed, 13 Mar 2013 13:43:17 +0100 Subject: [PATCH 65/72] account: [FIX] Removes the unneeded second cancel button on supplier invoices bzr revid: cbi@openerp.com-20130313124317-4ug3gvlnocmc50ko --- addons/account/account_invoice_view.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 3d46ee8365a..8c7cec67ac5 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -146,7 +146,6 @@