From 412b0eab4e6cf9fe90e548294129fb2273add3ac Mon Sep 17 00:00:00 2001
From: "Christophe Chauvet (Sylean)" <>
Date: Fri, 12 Mar 2010 13:35:28 +0100
Subject: [PATCH 01/33] [FIX] crm, mail_gateway: Use the utf8 encoding
bzr revid: stephane@openerp.com-20100312123528-ppvn4w9sdi20iw6v
---
addons/crm/crm_action_rule.py | 30 +++++++++++++++----
addons/crm/crm_mailgate.py | 13 +++++---
.../crm/wizard/wizard_crm_new_send_email.py | 2 +-
addons/crm/wizard/wizard_crm_send_email.py | 10 +++++--
addons/mail_gateway/mail_gateway.py | 6 ++--
5 files changed, 44 insertions(+), 17 deletions(-)
diff --git a/addons/crm/crm_action_rule.py b/addons/crm/crm_action_rule.py
index 1e7c50588db..0ca078d9b36 100644
--- a/addons/crm/crm_action_rule.py
+++ b/addons/crm/crm_action_rule.py
@@ -55,11 +55,12 @@ class case(osv.osv):
if case.section_id.reply_to and case.email_from:
src = case.email_from
dest = case.section_id.reply_to
+ body = ""
body = case.email_last or case.description
if not destination:
src, dest = dest, src
- if case.user_id.signature:
- body += '\n\n%s' % (case.user_id.signature or '')
+ if body and case.user_id.signature:
+ body += '\n\n%s' % (case.user_id.signature).encode('utf8')
dest = [dest]
attach_to_send = None
@@ -79,10 +80,10 @@ class case(osv.osv):
openobject_id=str(case.id),
attach=attach_to_send
)
- if flag:
- raise osv.except_osv(_('Email!'),("Email Successfully Sent"))
- else:
- raise osv.except_osv(_('Email Fail!'),("Email is not sent successfully"))
+ #if flag:
+ # raise osv.except_osv(_('Email!'),("Email Successfully Sent"))
+ #else:
+ # raise osv.except_osv(_('Email Fail!'),("Email is not sent successfully"))
return True
def _check(self, cr, uid, ids=False, context={}):
@@ -120,6 +121,23 @@ case()
class base_action_rule(osv.osv):
_inherit = 'base.action.rule'
_description = 'Action Rules'
+
+ def email_send(self, cr, uid, obj, emails, body, emailfrom=tools.config.get('email_from',False), context={}):
+ body = self.format_mail(obj, body)
+ if not emailfrom:
+ if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.address_id and obj.user_id.address_id.email:
+ emailfrom = obj.user_id.address_id.email
+
+ name = '[%d] %s' % (obj.id, tools.ustr(obj.name))
+ emailfrom = tools.ustr(emailfrom)
+ if obj.section_id and obj.section_id.reply_to:
+ reply_to = obj.section_id.reply_to
+ else:
+ reply_to = emailfrom
+ if not emailfrom:
+ raise osv.except_osv(_('Error!'),
+ _("No E-Mail ID Found for your Company address!"))
+ return tools.email_send(emailfrom, emails, name, body, reply_to=reply_to, openobject_id=str(obj.id))
def do_check(self, cr, uid, action, obj, context={}):
ok = super(base_action_rule, self).do_check(cr, uid, action, obj, context=context)
diff --git a/addons/crm/crm_mailgate.py b/addons/crm/crm_mailgate.py
index 8b2f3bdef88..f500e3e082f 100644
--- a/addons/crm/crm_mailgate.py
+++ b/addons/crm/crm_mailgate.py
@@ -36,13 +36,18 @@ class crm_cases(osv.osv):
_name = "crm.case"
_inherit = "crm.case"
+ def _decode_header(self, s):
+ from email.Header import decode_header
+ s = decode_header(s)
+ return ''.join(map(lambda x:x[0].decode(x[1] or 'ascii', 'replace'), s))
+
def msg_new(self, cr, uid, msg):
mailgate_obj = self.pool.get('mail.gateway')
msg_body = mailgate_obj.msg_body_get(msg)
data = {
- 'name': msg['Subject'],
- 'email_from': msg['From'],
- 'email_cc': msg['Cc'],
+ 'name': self._decode_header(msg['Subject']),
+ 'email_from': self._decode_header(msg['From']),
+ 'email_cc': msg['Cc'] and self._decode_header(msg['Cc']),
'user_id': False,
'description': msg_body['body'],
}
@@ -51,7 +56,7 @@ class crm_cases(osv.osv):
data.update(res)
res = self.create(cr, uid, data)
cases = self.browse(cr, uid, [res])
- self._history(cr, uid, cases, _('Receive'), history=True, email=msg['From'])
+ self._history(cr, uid, cases, _('Receive'), history=True, email=self._decode_header(msg['From']))
return res
def msg_update(self, cr, uid, ids, msg, data={}, default_act='pending'):
diff --git a/addons/crm/wizard/wizard_crm_new_send_email.py b/addons/crm/wizard/wizard_crm_new_send_email.py
index 0114ac9408f..61491fe437d 100644
--- a/addons/crm/wizard/wizard_crm_new_send_email.py
+++ b/addons/crm/wizard/wizard_crm_new_send_email.py
@@ -81,7 +81,7 @@ def _mass_mail_send(self, cr, uid, data, context):
emails = filter(None, emails)
body = data['form']['text']
if case.user_id.signature:
- body += '\n\n%s' % (case.user_id.signature)
+ body += '\n\n%s' % (case.user_id.signature).encode('utf8')
case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['form']['to'], details=body)
flag = tools.email_send(
case.user_id.address_id.email,
diff --git a/addons/crm/wizard/wizard_crm_send_email.py b/addons/crm/wizard/wizard_crm_send_email.py
index d6b3732d5e7..02f8f2abe04 100644
--- a/addons/crm/wizard/wizard_crm_send_email.py
+++ b/addons/crm/wizard/wizard_crm_send_email.py
@@ -61,11 +61,17 @@ def _mass_mail_send(self, cr, uid, data, context):
'som': False,
'canal_id': False,
})
- emails = [data['form']['to']] + (data['form']['cc'] or '').split(',')
+ from_to = tools.email_re.search(data['form']['to']).group(1)
+ emails = []
+ if from_to:
+ emails.append(from_to)
+ for cc in (data['form']['cc'] or '').split(','):
+ if cc:
+ emails.append(tools.email_re.search(cc).group(1))
emails = filter(None, emails)
body = data['form']['text']
if case.user_id.signature:
- body += '\n\n%s' % (case.user_id.signature)
+ body += '\n\n%s' % (case.user_id.signature).encode('utf8')
tools.email_send(
case.user_id.address_id.email,
emails,
diff --git a/addons/mail_gateway/mail_gateway.py b/addons/mail_gateway/mail_gateway.py
index ee7676d4423..a25816d28b2 100644
--- a/addons/mail_gateway/mail_gateway.py
+++ b/addons/mail_gateway/mail_gateway.py
@@ -362,13 +362,11 @@ class mail_gateway(osv.osv):
del msg['Subject']
msg['Subject'] = '[%s] %s' %(str(res_id), subject)
- em = [user_email, from_email] + (cc_email or '').split(',')
+ em = [user_email or '', from_email] + (cc_email or '').split(',')
emails = map(self.emails_get, filter(None, em))
-
mm = [self._decode_header(msg['From']), self._decode_header(msg['To'])]+self._decode_header(msg.get('Cc','')).split(',')
msg_mails = map(self.emails_get, filter(None, mm))
-
- emails = filter(lambda m: m and m not in msg_mails, emails)
+ emails = filter(lambda m: m and m not in msg_mails, emails)
try:
self.msg_send(msg, mailgateway.reply_to, emails, priority, res_id)
if hasattr(self.pool.get(res_model), 'msg_send'):
From 5420c142e2bc2b13337f31f0e69a2735ce9f5598 Mon Sep 17 00:00:00 2001
From: "RVO(OpenERP)" <>
Date: Fri, 19 Mar 2010 16:28:38 +0530
Subject: [PATCH 02/33] [IMP] security-rule-improvement
bzr revid: hda@tinyerp.com-20100319105838-m3gy80pai28t0mcc
---
bin/addons/base/ir/ir.xml | 15 +++++--
bin/addons/base/ir/ir_rule.py | 30 +++++++++----
bin/osv/orm.py | 84 +++++++++++++++++------------------
3 files changed, 75 insertions(+), 54 deletions(-)
diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml
index 0c280d2c0b3..2e589ef361e 100644
--- a/bin/addons/base/ir/ir.xml
+++ b/bin/addons/base/ir/ir.xml
@@ -369,7 +369,7 @@
-
+
@@ -431,7 +431,7 @@
-
@@ -570,7 +570,7 @@
-
+
@@ -1176,6 +1176,11 @@
+
+
+
+
+
@@ -1187,6 +1192,10 @@
+
+
+
+
diff --git a/bin/addons/base/ir/ir_rule.py b/bin/addons/base/ir/ir_rule.py
index c14fb5b0759..c4165d1bc93 100644
--- a/bin/addons/base/ir/ir_rule.py
+++ b/bin/addons/base/ir/ir_rule.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -88,7 +88,7 @@ class ir_rule(osv.osv):
for rule in self.browse(cr, uid, ids, context):
eval_user_data = {'user': self.pool.get('res.users').browse(cr, 1, uid),
'time':time}
-
+
if rule.domain_force:
res[rule.id] = eval(rule.domain_force, eval_user_data)
else:
@@ -111,27 +111,41 @@ class ir_rule(osv.osv):
'operand':fields.selection(_operand,'Operand', size=64),
'rule_group': fields.many2one('ir.rule.group', 'Group', select=2, required=True, ondelete="cascade"),
'domain_force': fields.char('Force Domain', size=250),
- 'domain': fields.function(_domain_force_get, method=True, string='Domain', type='char', size=250)
+ 'domain': fields.function(_domain_force_get, method=True, string='Domain', type='char', size=250),
+ 'perm_read': fields.boolean('Read Access'),
+ 'perm_write': fields.boolean('Write Access'),
+ 'perm_create': fields.boolean('Create Access'),
+ 'perm_unlink': fields.boolean('Delete Access')
}
+ _defaults = {
+ 'perm_read': lambda *a: True,
+ 'perm_write': lambda *a: True,
+ 'perm_create': lambda *a: True,
+ 'perm_unlink': lambda *a: True,
+ }
+ _sql_constraints = [
+ ('no_access_rights', 'CHECK (perm_read!=False or perm_write!=False or perm_create!=False or perm_unlink!=False)', 'Rule must have atleast one checked access right'),
+ ]
def onchange_all(self, cr, uid, ids, field_id, operator, operand):
if not (field_id or operator or operand):
return {}
- def domain_get(self, cr, uid, model_name, context={}):
+ def domain_get(self, cr, uid, model_name, mode='read', context={}):
if uid == 1:
return [], [], ['"'+self.pool.get(model_name)._table+'"']
- cr.execute("""SELECT r.id FROM
- ir_rule r
+ cr.execute("""SELECT r.id
+ FROM ir_rule r
JOIN (ir_rule_group g
JOIN ir_model m ON (g.model_id = m.id))
ON (g.id = r.rule_group)
WHERE m.model = %s
+ AND r.perm_""" + mode + """
AND (g.id IN (SELECT rule_group_id FROM group_rule_group_rel g_rel
JOIN res_groups_users_rel u_rel ON (g_rel.group_id = u_rel.gid)
WHERE u_rel.uid = %s) OR g.global)""", (model_name, uid))
- ids = map(lambda x:x[0], cr.fetchall())
+ ids = map(lambda x: x[0], cr.fetchall())
dom = []
for rule in self.browse(cr, uid, ids):
dom += rule.domain
diff --git a/bin/osv/orm.py b/bin/osv/orm.py
index c580474b8b9..eb86e5ea4a3 100644
--- a/bin/osv/orm.py
+++ b/bin/osv/orm.py
@@ -1872,7 +1872,7 @@ class orm(orm_template):
fields = self._columns.keys()
(where_clause, where_params, tables) = self._where_calc(cr, uid, domain, context=context)
- dom = self.pool.get('ir.rule').domain_get(cr, uid, self._name, context=context)
+ dom = self.pool.get('ir.rule').domain_get(cr, uid, self._name, 'read', context=context)
where_clause = where_clause + dom[0]
where_params = where_params + dom[1]
for t in dom[2]:
@@ -2474,6 +2474,7 @@ class orm(orm_template):
#
# Update objects that uses this one to update their _inherits fields
#
+
def _inherits_reload_src(self):
for obj in self.pool.obj_pool.values():
if self._name in obj._inherits:
@@ -2540,8 +2541,7 @@ class orm(orm_template):
fields_to_read = self._columns.keys()
# construct a clause for the rules :
- d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, context=context)
-
+ d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'read', context=context)
# all inherited fields + all non inherited fields for which the attribute whose name is in load is True
fields_pre = [f for f in fields_to_read if
f == self.CONCURRENCY_CHECK_FIELD
@@ -2724,6 +2724,29 @@ class orm(orm_template):
if res and res[0]:
raise except_orm('ConcurrencyException', _('Records were modified in the meanwhile'))
+ def check_access_rule(self, cr, uid, ids, mode, context={}):
+ d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, uid, self._name, mode, context=context)
+ if d1:
+ d1 = ' and '+' and '.join(d1)
+
+ for i in range(0, len(ids), cr.IN_MAX):
+ sub_ids = ids[i:i+cr.IN_MAX]
+ ids_str = string.join(map(str, sub_ids), ',')
+ if d1:
+ cr.execute('SELECT '+self._table+'.id FROM '+','.join(tables)+' ' \
+ 'WHERE '+self._table+'.id IN ('+ids_str+')'+d1, d2)
+ if not cr.rowcount == len(sub_ids):
+ raise except_orm(_('AccessError'),
+ _('You try to bypass an access rule to '+mode+
+ ' (Document type: %s).') % self._name)
+ else:
+ cr.execute('SELECT id FROM "'+self._table+'" WHERE id IN ('+ids_str+')')
+ if not cr.rowcount == len(sub_ids):
+ raise except_orm(_('AccessError'),
+ _('You try to ' +mode+ ' a record that doesn\'t exist (Document type: %s).')
+ % self._name)
+ return ids_str
+
def unlink(self, cr, uid, ids, context=None):
if not ids:
return True
@@ -2753,23 +2776,9 @@ class orm(orm_template):
# ids2 = [x[self._inherits[key]] for x in res]
# self.pool.get(key).unlink(cr, uid, ids2)
- d1, d2,tables = self.pool.get('ir.rule').domain_get(cr, uid, self._name, context=context)
- if d1:
- d1 = ' AND '+' and '.join(d1)
-
- for i in range(0, len(ids), cr.IN_MAX):
- sub_ids = ids[i:i+cr.IN_MAX]
- str_d = string.join(('%s',)*len(sub_ids), ',')
- if d1:
- cr.execute('SELECT '+self._table+'.id FROM '+','.join(tables)+' ' \
- 'WHERE '+self._table+'.id IN ('+str_d+')'+d1, sub_ids+d2)
- if not cr.rowcount == len(sub_ids):
- raise except_orm(_('AccessError'),
- _('You try to bypass an access rule (Document type: %s).') % \
- self._description)
-
- cr.execute('delete from '+self._table+' ' \
- 'where id in ('+str_d+')', sub_ids)
+ ids_str = self.check_access_rule(cr, uid, ids, 'unlink', context=context)
+ cr.execute('delete from '+self._table+' ' \
+ 'where id in ('+ids_str+')', ids)
for order, object, store_ids, fields in result_store:
if object<>self._name:
@@ -2868,28 +2877,8 @@ class orm(orm_template):
upd1.append(user)
if len(upd0):
-
- d1, d2,tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, context=context)
- if d1:
- d1 = ' and '+' and '.join(d1)
-
- for i in range(0, len(ids), cr.IN_MAX):
- sub_ids = ids[i:i+cr.IN_MAX]
- ids_str = string.join(map(str, sub_ids), ',')
- if d1:
- cr.execute('SELECT '+self._table+'.id FROM '+','.join(tables)+' ' \
- 'WHERE '+self._table+'.id IN ('+ids_str+')'+d1, d2)
- if not cr.rowcount == len({}.fromkeys(sub_ids)):
- raise except_orm(_('AccessError'),
- _('You try to bypass an access rule while writing (Document type: %s).') % \
- self._description)
- else:
- cr.execute('SELECT id FROM "'+self._table+'" WHERE id IN ('+ids_str+')')
- if not cr.rowcount == len({}.fromkeys(sub_ids)):
- raise except_orm(_('AccessError'),
- _('You try to write on an record that doesn\'t exist ' \
- '(Document type: %s).') % self._description)
- cr.execute('update '+self._table+' set '+string.join(upd0, ',')+' ' \
+ ids_str = self.check_access_rule(cr, user, ids, 'write', context=context)
+ cr.execute('update '+self._table+' set '+string.join(upd0, ',')+' ' \
'where id in ('+ids_str+')', upd1)
if totranslate:
@@ -3128,6 +3117,15 @@ class orm(orm_template):
upd1 += ',%s,now()'
upd2.append(user)
cr.execute('insert into "'+self._table+'" (id'+upd0+") values ("+str(id_new)+upd1+')', tuple(upd2))
+ d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'create', context=context)
+ if d1:
+ d1 = ' AND '+' AND '.join(d1)
+ cr.execute('SELECT '+self._table+'.id FROM '+','.join(tables)+' ' \
+ 'WHERE '+self._table+'.id = ' +str(id_new)+d1,d2)
+ if not cr.rowcount:
+ raise except_orm(_('AccessError'),
+ _('You try to bypass an access rule to create (Document type: %s).') \
+ % self._name)
upd_todo.sort(lambda x, y: self._columns[x].priority-self._columns[y].priority)
if self._parent_store:
@@ -3334,7 +3332,7 @@ class orm(orm_template):
context = {}
# compute the where, order by, limit and offset clauses
(qu1, qu2, tables) = self._where_calc(cr, user, args, context=context)
- dom = self.pool.get('ir.rule').domain_get(cr, user, self._name, context=context)
+ dom = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'read', context=context)
qu1 = qu1 + dom[0]
qu2 = qu2 + dom[1]
for t in dom[2]:
From 63151cd5c81a1d41ace396bc4c936d0aab4af6f0 Mon Sep 17 00:00:00 2001
From: "nch@tinyerp.com" <>
Date: Thu, 25 Mar 2010 10:38:29 +0530
Subject: [PATCH 03/33] [IMP]:GroupBY:Added Multilevel Groupby
bzr revid: nch@tinyerp.com-20100325050829-gwimhmlym2wf8mpu
---
bin/osv/orm.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/bin/osv/orm.py b/bin/osv/orm.py
index dd4267e5237..b74c2432d7f 100644
--- a/bin/osv/orm.py
+++ b/bin/osv/orm.py
@@ -1869,6 +1869,8 @@ class orm(orm_template):
_protected = ['read','write','create','default_get','perm_read','unlink','fields_get','fields_view_get','search','name_get','distinct_field_get','name_search','copy','import_data','search_count', 'exists']
def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None):
+ groupby_list = groupby
+ groupby = groupby[0]
context = context or {}
self.pool.get('ir.model.access').check(cr, uid, self._name, 'read', context=context)
if not fields:
@@ -1922,6 +1924,7 @@ class orm(orm_template):
for d in data:
d['__domain'] = [(groupby,'=',alldata[d['id']][groupby] or False)] + domain
+ d['__context'] = {'group_by':groupby_list[1:]}
if fget.has_key(groupby):
if d[groupby] and fget[groupby]['type'] in ('date','datetime'):
dt = datetime.datetime.strptime(alldata[d['id']][groupby][:7],'%Y-%m')
From 69912380fb2b59460c20c93979c213b238adb5af Mon Sep 17 00:00:00 2001
From: "nch@tinyerp.com" <>
Date: Fri, 26 Mar 2010 18:18:22 +0530
Subject: [PATCH 04/33] [FIX]:read_group for None Values
bzr revid: nch@tinyerp.com-20100326124822-zomzhapc96v4v6gy
---
bin/osv/orm.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/bin/osv/orm.py b/bin/osv/orm.py
index b74c2432d7f..0ef134a0a7a 100644
--- a/bin/osv/orm.py
+++ b/bin/osv/orm.py
@@ -250,7 +250,7 @@ class browse_record(object):
elif f._type in ('reference'):
if data[n]:
if isinstance(data[n], browse_record):
- new_data[n] = data[n]
+ new_data[n] = data[n]
else:
ref_obj, ref_id = data[n].split(',')
ref_id = long(ref_id)
@@ -1917,6 +1917,8 @@ class orm(orm_template):
alldata = {}
groupby = group_by
for r in cr.dictfetchall():
+ for fld,val in r.items():
+ if val == None:r[fld] = False
alldata[r['id']] = r
del r['id']
data = self.read(cr, uid, alldata.keys(), [groupby], context=context)
@@ -3131,7 +3133,7 @@ class orm(orm_template):
if not cr.rowcount:
raise except_orm(_('AccessError'),
_('You try to bypass an access rule to create (Document type: %s).') \
- % self._name)
+ % self._name)
upd_todo.sort(lambda x, y: self._columns[x].priority-self._columns[y].priority)
if self._parent_store:
From 65730d7060b143b313f2ba3eb660ea1ca4ceb4e8 Mon Sep 17 00:00:00 2001
From: "JMA(OpenERP)" <>
Date: Tue, 30 Mar 2010 12:19:35 +0530
Subject: [PATCH 05/33] [REF] Stock : Removed unused method button_confirm
lp bug: https://launchpad.net/bugs/541785 fixed
bzr revid: jvo@tinyerp.com-20100330064935-6080i3a66jawkwzt
---
addons/stock/stock.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 5c02ccae976..7012e23dbe7 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -543,12 +543,12 @@ class stock_picking(osv.osv):
# TODO: Check locations to see if in the same location ?
return True
- def button_confirm(self, cr, uid, ids, *args):
- for id in ids:
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'stock.picking', id, 'button_confirm', cr)
- self.force_assign(cr, uid, ids, *args)
- return True
+# def button_confirm(self, cr, uid, ids, *args):
+# for id in ids:
+# wf_service = netsvc.LocalService("workflow")
+# wf_service.trg_validate(uid, 'stock.picking', id, 'button_confirm', cr)
+# self.force_assign(cr, uid, ids, *args)
+# return True
def action_assign(self, cr, uid, ids, *args):
for pick in self.browse(cr, uid, ids):
From 728caca672b1ac6b004210555c2524c861d2f910 Mon Sep 17 00:00:00 2001
From: "nel@tinyerp.com" <>
Date: Tue, 30 Mar 2010 10:42:33 +0200
Subject: [PATCH 06/33] [IMP] Set icons to state of wizards
bzr revid: nel@tinyerp.com-20100330084233-y8isdsecqmth9j7d
---
.../project/wizard/wizard_analytic_account_chart.py | 2 +-
addons/account/wizard/wizard_account_chart.py | 4 ++--
addons/account/wizard/wizard_account_duplicate.py | 2 +-
addons/account/wizard/wizard_aged_trial_balance.py | 4 ++--
addons/account/wizard/wizard_automatic_reconcile.py | 2 +-
addons/account/wizard/wizard_central_journal.py | 2 +-
addons/account/wizard/wizard_change_currency.py | 4 ++--
.../wizard/wizard_compare_account_balance_report.py | 2 +-
addons/account/wizard/wizard_fiscalyear_close.py | 2 +-
addons/account/wizard/wizard_fiscalyear_close_state.py | 2 +-
addons/account/wizard/wizard_general_journal.py | 2 +-
addons/account/wizard/wizard_open_closed_fiscalyear.py | 2 +-
addons/account/wizard/wizard_period_close.py | 2 +-
addons/account/wizard/wizard_print_journal.py | 2 +-
addons/account/wizard/wizard_statement_from_invoice.py | 4 ++--
addons/account/wizard/wizard_subscription_generate.py | 2 +-
addons/account/wizard/wizard_vat.py | 4 ++--
addons/l10n_be/wizard/partner_vat_listing.py | 8 ++++----
addons/l10n_be/wizard/wizard_vat_intra.py | 6 +++---
19 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/addons/account/project/wizard/wizard_analytic_account_chart.py b/addons/account/project/wizard/wizard_analytic_account_chart.py
index 354fe6e6046..e011fad15bb 100644
--- a/addons/account/project/wizard/wizard_analytic_account_chart.py
+++ b/addons/account/project/wizard/wizard_analytic_account_chart.py
@@ -65,7 +65,7 @@ class wizard_analytic_account_chart(wizard.interface):
states = {
'init': {
'actions': [],
- 'result': {'type': 'form', 'arch':_account_chart_arch, 'fields':_account_chart_fields, 'state': [('end', 'Cancel'), ('open', 'Open Charts')]}
+ 'result': {'type': 'form', 'arch':_account_chart_arch, 'fields':_account_chart_fields, 'state': [('end', 'Cancel', 'gtk-cancel'), ('open', 'Open Charts', 'gtk-ok')]}
},
'open': {
'actions': [],
diff --git a/addons/account/wizard/wizard_account_chart.py b/addons/account/wizard/wizard_account_chart.py
index ca8153f3ce7..ae6b29b0f43 100644
--- a/addons/account/wizard/wizard_account_chart.py
+++ b/addons/account/wizard/wizard_account_chart.py
@@ -24,7 +24,7 @@ import pooler
class wizard_account_chart(wizard.interface):
_account_chart_arch = '''
-
@@ -148,8 +146,8 @@
@@ -146,8 +144,8 @@
@@ -94,8 +92,8 @@
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 222bc1890cb..f660d265111 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -127,7 +127,7 @@
diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml
index bd1b61c648a..02ffc47e374 100644
--- a/addons/crm/crm_opportunity_view.xml
+++ b/addons/crm/crm_opportunity_view.xml
@@ -145,7 +145,7 @@
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index 6594c2a213d..a7feed54d3c 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -347,7 +347,7 @@
diff --git a/addons/crm/scripts/openerp_mailgate/openerp_mailgate.py b/addons/crm/scripts/openerp_mailgate/openerp_mailgate.py
index 5a7b888f52c..a5cfa7c58f1 100755
--- a/addons/crm/scripts/openerp_mailgate/openerp_mailgate.py
+++ b/addons/crm/scripts/openerp_mailgate/openerp_mailgate.py
@@ -328,6 +328,10 @@ class email_parser(object):
def msg_test(self, msg, case_str):
if not case_str:
return (False, False)
+ res = self.rpc(self.model, 'search', [('id', '=', int(case_str))])
+ if not res:
+ return (False, False)
+
emails = self.rpc(self.model, 'emails_get', int(case_str))
return (int(case_str), emails)
@@ -336,9 +340,9 @@ class email_parser(object):
if case_str:
case_str = case_str.group(1)
else:
- case_str = case_re.search(msg.get('Subject', ''))
+ case_str = case_re.search(msg.get('Subject', ''))
if case_str:
- case_str = case_str.group(1)
+ case_str = case_str.group(1)
(case_id, emails) = self.msg_test(msg, case_str)
if case_id:
if emails[0] and self.email_get(emails[0])==self.email_get(self._decode_header(msg['From'])):
diff --git a/addons/crm/wizard/crm_send_email.py b/addons/crm/wizard/crm_send_email.py
index f76e212eaa1..da141186240 100644
--- a/addons/crm/wizard/crm_send_email.py
+++ b/addons/crm/wizard/crm_send_email.py
@@ -185,7 +185,7 @@ class crm_send_new_email(osv.osv_memory):
res.update({'email_to': hist.email_from or (case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from',False)})
if 'email_from' in fields:
- res.update({'email_from': hist.email_to or (case.user_id and case.user_id.address_id and \
+ res.update({'email_from': (case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from',False)})
if 'text' in fields:
header = '-------- Original Message --------'
@@ -198,8 +198,8 @@ class crm_send_new_email(osv.osv_memory):
res.update({'text': '\n\n%s'%(original)})
if 'subject' in fields:
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
- #if 'state' in fields:
- # res.update({'state': 'pending'})
+ if 'state' in fields:
+ res.update({'state': 'pending'})
return res
def view_init(self, cr, uid, fields_list, context=None):
diff --git a/addons/crm/wizard/crm_send_email_view.xml b/addons/crm/wizard/crm_send_email_view.xml
index 61c770289ab..55769455a2a 100644
--- a/addons/crm/wizard/crm_send_email_view.xml
+++ b/addons/crm/wizard/crm_send_email_view.xml
@@ -4,12 +4,12 @@
-
- crm.new.send.mail.form
+
+ crm.send.mail.form
crm.send.mail
form
-
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 9cde61fb1fa..46400fa3da0 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -159,7 +159,7 @@
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 203f83912db..f09643c2590 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -111,7 +111,7 @@
From 01578fff22c482fbfd4c818b50fd364461be892f Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Tue, 30 Mar 2010 19:26:03 +0200
Subject: [PATCH 16/33] [ADD] utility methods to split large lists of ids for
use in IN clauses
bzr revid: odo@openerp.com-20100330172603-ty878ds2i9oa33zq
---
bin/sql_db.py | 8 +++++++-
bin/tools/misc.py | 13 +++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/bin/sql_db.py b/bin/sql_db.py
index 17bfa340653..94336cde69a 100644
--- a/bin/sql_db.py
+++ b/bin/sql_db.py
@@ -63,7 +63,7 @@ re_into = re.compile('.* into "?([a-zA-Z_0-9]+)"? .*$');
sql_counter = 0
class Cursor(object):
- IN_MAX = 1000
+ IN_MAX = 1000 # decent limit on size of IN queries - guideline = Oracle limit
__logger = logging.getLogger('db.cursor')
def check(f):
@@ -142,6 +142,12 @@ class Cursor(object):
self.sql_into_log[res_into.group(1)][1] += delay
return res
+
+ def split_for_in_conditions(self, ids):
+ """Split a list of identifiers into one or more smaller tuples
+ safe for IN conditions, after uniquifying them."""
+ return tools.misc.split_every(self.IN_MAX, set(ids))
+
def print_log(self):
global sql_counter
sql_counter += self.sql_log_count
diff --git a/bin/tools/misc.py b/bin/tools/misc.py
index 284324873de..ff20966857e 100644
--- a/bin/tools/misc.py
+++ b/bin/tools/misc.py
@@ -32,6 +32,7 @@ import zipfile
import release
import socket
import re
+from itertools import islice
if sys.version_info[:2] < (2, 4):
from threadinglocal import local
@@ -1267,6 +1268,18 @@ def detect_server_timezone():
return 'UTC'
+def split_every(n, iterable, piece_maker=tuple):
+ """Splits an iterable into length-n pieces. The last piece will be shorter
+ if ``n`` does not evenly divide the iterable length.
+ @param ``piece_maker``: function to build the pieces
+ from the slices (tuple,list,...)
+ """
+ iterator = iter(iterable)
+ piece = piece_maker(islice(iterator, n))
+ while piece:
+ yield piece
+ piece = piece_maker(islice(iterator, n))
+
if __name__ == '__main__':
import doctest
doctest.testmod()
From 6c23c63afe714e384dc4c8caab300857486a0691 Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Tue, 30 Mar 2010 19:28:06 +0200
Subject: [PATCH 17/33] [IMP] refactoring of check_access_rule to avoid SQL
injection and simplify code
bzr revid: odo@openerp.com-20100330172806-p1zkvrmupw5zosai
---
bin/osv/orm.py | 70 +++++++++++++++++++++++---------------------------
1 file changed, 32 insertions(+), 38 deletions(-)
diff --git a/bin/osv/orm.py b/bin/osv/orm.py
index 697eb01f4e2..32efe32558b 100644
--- a/bin/osv/orm.py
+++ b/bin/osv/orm.py
@@ -2572,17 +2572,16 @@ class orm(orm_template):
return '"%s"' % (f,)
fields_pre2 = map(convert_field, fields_pre)
order_by = self._parent_order or self._order
- for i in range(0, len(ids), cr.IN_MAX):
- sub_ids = ids[i:i+cr.IN_MAX]
+ for sub_ids in cr.split_for_in_conditions(ids):
if d1:
- cr.execute('SELECT %s FROM %s WHERE %s.id = ANY (%%s) AND %s ORDER BY %s' % \
+ cr.execute('SELECT %s FROM %s WHERE %s.id IN %%s AND %s ORDER BY %s' % \
(','.join(fields_pre2 + [self._table + '.id']), ','.join(tables), self._table, ' and '.join(d1),
order_by),[sub_ids,]+d2)
- if not cr.rowcount == len({}.fromkeys(sub_ids)):
+ if cr.rowcount != len(sub_ids):
raise except_orm(_('AccessError'),
_('You try to bypass an access rule while reading (Document type: %s).') % self._description)
else:
- cr.execute('SELECT %s FROM \"%s\" WHERE id = ANY (%%s) ORDER BY %s' %
+ cr.execute('SELECT %s FROM \"%s\" WHERE id IN %%s ORDER BY %s' %
(','.join(fields_pre2 + ['id']), self._table,
order_by), (sub_ids,))
res.extend(cr.dictfetchall())
@@ -2734,29 +2733,24 @@ class orm(orm_template):
if res and res[0]:
raise except_orm('ConcurrencyException', _('Records were modified in the meanwhile'))
- def check_access_rule(self, cr, uid, ids, mode, context=None):
- d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, uid, self._name, mode, context=context)
- if d1:
- d1 = ' and '+' and '.join(d1)
-
- for i in range(0, len(ids), cr.IN_MAX):
- sub_ids = ids[i:i+cr.IN_MAX]
- if d1:
- cr.execute('SELECT '+self._table+'.id FROM '+','.join(tables)+' ' \
- 'WHERE '+self._table+'.id IN %s'+d1, (tuple(sub_ids),d2))
- if not cr.rowcount == len(sub_ids):
+ def check_access_rule(self, cr, uid, ids, operation, context=None):
+ """Verifies that the operation given by ``operation`` is allowed for the user
+ according to ir.rules.
+ @param ``operation``: one of ``'read'``, ``'write'``, ``'unlink'``
+ @raise ``except_orm``: if current ir.rules do not permit this operation.
+ @return: ``None`` if the operation is allowed
+ """
+ where_clause, where_params, tables = self.pool.get('ir.rule').domain_get(cr, uid, self._name, operation, context=context)
+ if where_clause:
+ where_clause = ' and ' + ' and '.join(where_clause)
+ for sub_ids in cr.split_for_in_conditions(ids):
+ cr.execute('SELECT ' + self._table + '.id FROM ' + ','.join(tables) +
+ ' WHERE ' + self._table + '.id IN %s' + where_clause,
+ [sub_ids] + where_params)
+ if cr.rowcount != len(sub_ids):
raise except_orm(_('AccessError'),
- _('You try to bypass an access rule to '+mode+
- ' (Document type: %s).') % self._name)
- else:
- cr.execute('SELECT id FROM "'+self._table+'" WHERE id IN %s',
- (tuple(sub_ids),))
- if not cr.rowcount == len(sub_ids):
- raise except_orm(_('AccessError'),
- _('You try to ' +mode+ ' a record that doesn\'t exist (Document type: %s).')
- % self._name)
- #TODO: this is a SQL injection pattern again, need to refactor it
- return ','.join(map(str,ids))
+ _('Operation prohibited by access rules (Operation: %s, Document type: %s).')
+ % (operation, self._name))
def unlink(self, cr, uid, ids, context=None):
if not ids:
@@ -2787,12 +2781,13 @@ class orm(orm_template):
# ids2 = [x[self._inherits[key]] for x in res]
# self.pool.get(key).unlink(cr, uid, ids2)
- ids_str = self.check_access_rule(cr, uid, ids, 'unlink', context=context)
- cr.execute('delete from '+self._table+' ' \
- 'where id in ('+ids_str+')', ids)
+ self.check_access_rule(cr, uid, ids, 'unlink', context=context)
+ for sub_ids in cr.split_for_in_conditions(ids):
+ cr.execute('delete from ' + self._table + ' ' \
+ 'where id in %s', sub_ids)
for order, object, store_ids, fields in result_store:
- if object<>self._name:
+ if object != self._name:
obj = self.pool.get(object)
cr.execute('select id from '+obj._table+' where id in ('+','.join(map(str, store_ids))+')')
rids = map(lambda x: x[0], cr.fetchall())
@@ -2888,9 +2883,10 @@ class orm(orm_template):
upd1.append(user)
if len(upd0):
- ids_str = self.check_access_rule(cr, user, ids, 'write', context=context)
- cr.execute('update '+self._table+' set '+string.join(upd0, ',')+' ' \
- 'where id in ('+ids_str+')', upd1)
+ self.check_access_rule(cr, user, ids, 'write', context=context)
+ for sub_ids in cr.split_for_in_conditions(ids):
+ cr.execute('update ' + self._table + ' set ' + ','.join(upd0) + ' ' \
+ 'where id in %s', upd1 + [sub_ids])
if totranslate:
# TODO: optimize
@@ -2921,11 +2917,9 @@ class orm(orm_template):
for table in self._inherits:
col = self._inherits[table]
nids = []
- for i in range(0, len(ids), cr.IN_MAX):
- sub_ids = ids[i:i+cr.IN_MAX]
- ids_str = string.join(map(str, sub_ids), ',')
+ for sub_ids in cr.split_for_in_conditions(ids):
cr.execute('select distinct "'+col+'" from "'+self._table+'" ' \
- 'where id in ('+ids_str+')', upd1)
+ 'where id in %s', (sub_ids,))
nids.extend([x[0] for x in cr.fetchall()])
v = {}
From 29903b36c8d02b7d1050db6f38e743124ab4e1d1 Mon Sep 17 00:00:00 2001
From: Launchpad Code Hosting
Date: Wed, 31 Mar 2010 04:54:43 +0100
Subject: [PATCH 18/33] Launchpad automatic translations update.
bzr revid: codehost@crowberry-20100331035443-psztrssd1w0hpvpj
---
bin/addons/base/i18n/bg.po | 4 ++--
bin/addons/base/i18n/hr.po | 4 ++--
bin/addons/base/i18n/it.po | 14 +++++++-------
bin/addons/base/i18n/ja.po | 4 ++--
bin/addons/base/i18n/sv.po | 4 ++--
bin/addons/base/i18n/uk.po | 4 ++--
bin/addons/base/i18n/zh_CN.po | 4 ++--
7 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/bin/addons/base/i18n/bg.po b/bin/addons/base/i18n/bg.po
index 04d5ab798d1..5570b263bec 100644
--- a/bin/addons/base/i18n/bg.po
+++ b/bin/addons/base/i18n/bg.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-29 10:51+0000\n"
+"PO-Revision-Date: 2010-03-30 04:19+0000\n"
"Last-Translator: Boris \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: 2010-03-30 03:50+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/hr.po b/bin/addons/base/i18n/hr.po
index 9290624ea43..f3739c66bf3 100644
--- a/bin/addons/base/i18n/hr.po
+++ b/bin/addons/base/i18n/hr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-29 04:13+0000\n"
+"PO-Revision-Date: 2010-03-30 04:36+0000\n"
"Last-Translator: goranc \n"
"Language-Team: openerp-translators\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-30 03:50+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: hr\n"
diff --git a/bin/addons/base/i18n/it.po b/bin/addons/base/i18n/it.po
index a1cfce3afdf..3d99b3829d9 100644
--- a/bin/addons/base/i18n/it.po
+++ b/bin/addons/base/i18n/it.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-29 15:30+0000\n"
+"PO-Revision-Date: 2010-03-30 09:53+0000\n"
"Last-Translator: Carlo Vettore \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: 2010-03-30 03:50+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
@@ -3641,7 +3641,7 @@ msgstr "Crea azione"
#. module: base
#: selection:ir.actions.report.xml,report_type:0
msgid "HTML from HTML"
-msgstr ""
+msgstr "HTML da HTML"
#. module: base
#: selection:ir.actions.report.xml,report_type:0
@@ -3733,12 +3733,12 @@ msgstr "STOCK_ADD"
#. module: base
#: field:ir.cron,doall:0
msgid "Repeat Missed"
-msgstr ""
+msgstr "Ripeti mancato"
#. module: base
#: help:ir.actions.server,state:0
msgid "Type of the Action that is to be executed"
-msgstr ""
+msgstr "Tipo dell'azione che deve essere eseguita"
#. module: base
#: field:ir.server.object.lines,server_id:0
@@ -3783,7 +3783,7 @@ msgstr "Botswana"
#: model:ir.ui.menu,name:base.menu_partner_title_partner
#: view:res.partner.title:0
msgid "Partner Titles"
-msgstr ""
+msgstr "Qualifiche Partner"
#. module: base
#: selection:ir.actions.todo,type:0
@@ -6722,7 +6722,7 @@ msgstr ""
#. module: base
#: field:res.partner.bank,acc_number:0
msgid "Account Number"
-msgstr ""
+msgstr "Numero conto"
#. module: base
#: view:res.lang:0
diff --git a/bin/addons/base/i18n/ja.po b/bin/addons/base/i18n/ja.po
index dd3caace65e..9430360cb87 100644
--- a/bin/addons/base/i18n/ja.po
+++ b/bin/addons/base/i18n/ja.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-29 04:11+0000\n"
+"PO-Revision-Date: 2010-03-30 04:24+0000\n"
"Last-Translator: Harry (Open ERP) \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-30 03:50+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/sv.po b/bin/addons/base/i18n/sv.po
index 73c67ea25ef..92102068d0d 100644
--- a/bin/addons/base/i18n/sv.po
+++ b/bin/addons/base/i18n/sv.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-29 04:09+0000\n"
+"PO-Revision-Date: 2010-03-30 04:18+0000\n"
"Last-Translator: Anders Wallenquist \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: 2010-03-30 03:51+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/uk.po b/bin/addons/base/i18n/uk.po
index 0c8b97a9a71..be9ac9ddeb1 100644
--- a/bin/addons/base/i18n/uk.po
+++ b/bin/addons/base/i18n/uk.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-29 04:11+0000\n"
+"PO-Revision-Date: 2010-03-30 04:37+0000\n"
"Last-Translator: Fabien (Open ERP) \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: 2010-03-30 03:51+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/zh_CN.po b/bin/addons/base/i18n/zh_CN.po
index fd637aa00f7..795f0a2c33f 100644
--- a/bin/addons/base/i18n/zh_CN.po
+++ b/bin/addons/base/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-29 04:11+0000\n"
+"PO-Revision-Date: 2010-03-30 04:19+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-30 03:51+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
From 6a0c68a3641474fb0faaa5c91b8d8b60de26507c Mon Sep 17 00:00:00 2001
From: odoo
Date: Wed, 31 Mar 2010 03:54:57 +0000
Subject: [PATCH 19/33] disable non updateble xml files, remove non existent
fields in crm.case.log views
bzr revid: odoo@ip-10-226-66-207-20100331035457-66s15j3wgy0xidm8
---
addons/crm/__terp__.py | 1 -
addons/crm/crm_view.xml | 8 ++++++--
addons/project_issue/__terp__.py | 4 ++--
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/addons/crm/__terp__.py b/addons/crm/__terp__.py
index b2a40c822a6..ef5b80cc3b2 100644
--- a/addons/crm/__terp__.py
+++ b/addons/crm/__terp__.py
@@ -70,7 +70,6 @@ between mails and Open ERP.""",
'crm_lead_menu.xml',
'crm_meeting_wizard.xml',
'crm_meeting_view.xml',
- 'crm_meeting_menu.xml',
'crm_phonecall_wizard.xml',
'crm_phonecall_view.xml',
'crm_phonecall_menu.xml',
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index 6594c2a213d..ccafb1af976 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -216,10 +216,12 @@
-
+
@@ -233,9 +235,11 @@
-
+
diff --git a/addons/project_issue/__terp__.py b/addons/project_issue/__terp__.py
index 03ec9e22285..c4187abec5a 100644
--- a/addons/project_issue/__terp__.py
+++ b/addons/project_issue/__terp__.py
@@ -41,8 +41,8 @@
'update_xml': [
'project_issue_wizard.xml',
'project_issue_view.xml',
- 'project_issue_menu.xml',
- 'project_feature_menu.xml',
+# 'project_issue_menu.xml',
+# 'project_feature_menu.xml',
'report/project_issue_report_view.xml',
'security/project_issue_security.xml',
'security/ir.model.access.csv',
From dbcbd1185b94cb9fbb5486772abbb6bac7070915 Mon Sep 17 00:00:00 2001
From: Launchpad Code Hosting
Date: Wed, 31 Mar 2010 04:55:12 +0100
Subject: [PATCH 20/33] Launchpad automatic translations update.
bzr revid: codehost@crowberry-20100331035512-r137e2c28btemwtg
---
addons/account_chart/i18n/ru.po | 8 +-
addons/base_contact/i18n/bg.po | 16 +--
addons/board_account/i18n/ru.po | 16 +--
addons/board_project/i18n/ru.po | 14 +--
addons/crm/i18n/es.po | 183 +++++++++++++++++---------------
addons/crm/i18n/fi.po | 156 ++++++++++++++-------------
addons/idea/i18n/ru.po | 21 ++--
addons/mrp/i18n/fr.po | 8 +-
addons/mrp/i18n/ru.po | 32 +++---
9 files changed, 238 insertions(+), 216 deletions(-)
diff --git a/addons/account_chart/i18n/ru.po b/addons/account_chart/i18n/ru.po
index eaa300a9762..a7f14094a82 100644
--- a/addons/account_chart/i18n/ru.po
+++ b/addons/account_chart/i18n/ru.po
@@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-04-10 14:08+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2010-03-30 10:18+0000\n"
+"Last-Translator: Nikolay Chesnokov \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: 2010-03-30 04:16+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_chart
#: model:ir.module.module,description:account_chart.module_meta_information
msgid "Remove minimal account chart"
-msgstr ""
+msgstr "Удалите минимальный план счетов"
diff --git a/addons/base_contact/i18n/bg.po b/addons/base_contact/i18n/bg.po
index 80c573d1141..dfdcd14a63b 100644
--- a/addons/base_contact/i18n/bg.po
+++ b/addons/base_contact/i18n/bg.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 13:01+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-03-30 19:31+0000\n"
+"Last-Translator: Boris \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: 2010-03-30 03:59+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_contact
@@ -37,7 +37,7 @@ msgstr ""
#. module: base_contact
#: field:res.partner.job,function_id:0
msgid "Partner Function"
-msgstr ""
+msgstr "Функция ня партньора"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_partner_contact_form
@@ -57,12 +57,12 @@ msgstr ""
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Current"
-msgstr ""
+msgstr "Текущ"
#. module: base_contact
#: field:res.partner.contact,first_name:0
msgid "First Name"
-msgstr "Собствено име"
+msgstr "Собствено Име"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_job
@@ -72,7 +72,7 @@ msgstr ""
#. module: base_contact
#: field:res.partner.job,other:0
msgid "Other"
-msgstr ""
+msgstr "Друго"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_contacttofunction0
@@ -286,7 +286,7 @@ msgstr ""
#. module: base_contact
#: model:process.node,name:base_contact.process_node_partners0
msgid "Partners"
-msgstr ""
+msgstr "Партньори"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_addresses0
diff --git a/addons/board_account/i18n/ru.po b/addons/board_account/i18n/ru.po
index 51214d18902..fd7e9d8b9fe 100644
--- a/addons/board_account/i18n/ru.po
+++ b/addons/board_account/i18n/ru.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 12:16+0000\n"
-"Last-Translator: Sergei Kostigoff \n"
+"PO-Revision-Date: 2010-03-30 10:23+0000\n"
+"Last-Translator: Nikolay Chesnokov \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: 2010-03-30 04:12+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_account
@@ -57,12 +57,12 @@ msgstr "Расходы для выставления счетов"
#. module: board_account
#: view:board.board:0
msgid "Aged receivables"
-msgstr ""
+msgstr "Повременный расход"
#. module: board_account
#: model:ir.module.module,shortdesc:board_account.module_meta_information
msgid "Board for accountant"
-msgstr ""
+msgstr "Панель контролёра счетов"
#. module: board_account
#: model:ir.actions.act_window,name:board_account.action_aged_income
@@ -77,7 +77,7 @@ msgstr "Мои индикаторы"
#. module: board_account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия"
#. module: board_account
#: model:ir.ui.menu,name:board_account.next_id_68
@@ -87,9 +87,9 @@ msgstr "Бухгалтерский"
#. module: board_account
#: view:board.board:0
msgid "Account Board"
-msgstr ""
+msgstr "Панель счетов"
#. module: board_account
#: view:board.board:0
msgid "Aged income"
-msgstr ""
+msgstr "Повременный доход"
diff --git a/addons/board_project/i18n/ru.po b/addons/board_project/i18n/ru.po
index 074cd66183f..60115d0e65b 100644
--- a/addons/board_project/i18n/ru.po
+++ b/addons/board_project/i18n/ru.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 12:27+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-03-30 10:26+0000\n"
+"Last-Translator: Nikolay Chesnokov \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: 2010-03-30 04:00+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_project
@@ -30,7 +30,7 @@ msgstr "Табели"
#. module: board_project
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия"
#. module: board_project
#: view:board.board:0
@@ -63,7 +63,7 @@ msgstr "Панель аналитики проекта"
#. module: board_project
#: model:ir.module.module,shortdesc:board_project.module_meta_information
msgid "Board for project users"
-msgstr ""
+msgstr "Панель для пользователей проекта"
#. module: board_project
#: model:ir.actions.act_window,name:board_project.action_project_pipeline_user
@@ -73,7 +73,7 @@ msgstr "Конвейер заданий"
#. module: board_project
#: view:board.board:0
msgid "My Planning"
-msgstr ""
+msgstr "Мой план"
#. module: board_project
#: view:board.board:0
@@ -136,4 +136,4 @@ msgstr "Мои конвейеры пользователей"
#. module: board_project
#: view:board.board:0
msgid "My Timesheet"
-msgstr ""
+msgstr "Мой табель"
diff --git a/addons/crm/i18n/es.po b/addons/crm/i18n/es.po
index 7bd5f418db9..e1fbc85e8c0 100644
--- a/addons/crm/i18n/es.po
+++ b/addons/crm/i18n/es.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-03-04 10:04+0000\n"
-"Last-Translator: xavi \n"
+"PO-Revision-Date: 2010-03-30 21:03+0000\n"
+"Last-Translator: Luis Gerardo Cruz Garcia \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: 2010-03-30 03:59+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -27,6 +27,8 @@ msgid ""
"This property defines the list of date/time exceptions for "
"arecurring calendar component."
msgstr ""
+"Esta propiedad define la lista de excepciones (días/horas) para un evento de "
+"calendario recurrente"
#. module: crm
#: help:crm.case.rule,act_mail_to_user:0
@@ -306,7 +308,7 @@ msgstr ""
#. module: crm
#: view:crm.meeting:0
msgid "Exception Dates"
-msgstr ""
+msgstr "Fechas de excepción"
#. module: crm
#: selection:crm.case.rule,trg_date_type:0
@@ -400,17 +402,17 @@ msgstr "Próxima entrevista"
#. module: crm
#: field:crm.case.rule,regex_history:0
msgid "Regular Expression on Case History"
-msgstr ""
+msgstr "Expresiones Regulares en el Historial del Caso"
#. module: crm
#: model:ir.model,name:crm.model_crm_email_add_cc
msgid "Email Add CC"
-msgstr ""
+msgstr "Email añadir CC"
#. module: crm
#: model:process.transition,name:crm.process_transition_opportunitymeeting0
msgid "Opportunity Meeting"
-msgstr ""
+msgstr "Oportunidad de Reunión"
#. module: crm
#: help:crm.case,canal_id:0
@@ -423,7 +425,7 @@ msgstr ""
#. module: crm
#: view:crm.meeting:0
msgid "Exception Rules"
-msgstr ""
+msgstr "Reglas de Excepción"
#. module: crm
#: field:crm.menu.config_wizard,opportunity:0
@@ -434,7 +436,7 @@ msgstr "Oportunidades de negocio"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim1
msgid "Accepted as Claim"
-msgstr ""
+msgstr "Aceptado como reclamación"
#. module: crm
#: view:crm.case.rule:0
@@ -459,18 +461,18 @@ msgstr "%(email_from)s = Email empresa"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead6
msgid "Dead"
-msgstr ""
+msgstr "Muerto"
#. module: crm
#: view:crm.meeting:0
msgid "Confirm Meeting"
-msgstr ""
+msgstr "Confirmar reunión"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead1
#: model:crm.case.categ,name:crm.categ_oppor1
msgid "Existing Customer"
-msgstr ""
+msgstr "Cliente existente"
#. module: crm
#: model:crm.case.category2,name:crm.category_meet2
@@ -494,7 +496,7 @@ msgstr "Categoría"
#: model:ir.ui.menu,name:crm.menu_crm_case_section_categ_stage_tree
#: view:report.crm.case.section.categ.stage:0
msgid "Cases by Section, Category and Stage"
-msgstr ""
+msgstr "Casos por sección, categoría y fase"
#. module: crm
#: help:crm.case.rule,act_mail_to_watchers:0
@@ -502,11 +504,13 @@ msgid ""
"Check this if you want the rule to mark CC(mail to any other person defined "
"in actions)."
msgstr ""
+"Active esta casilla en caso que quiera que la regla sea marcada CC ( copia "
+"de email para cualquier otra persona definida en las acciones)"
#. module: crm
#: field:crm.meeting,class:0
msgid "Privacy"
-msgstr ""
+msgstr "Privada"
#. module: crm
#: view:crm.case.rule:0
@@ -566,7 +570,7 @@ msgstr "Posición"
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity1
msgid "Create Opportunity"
-msgstr ""
+msgstr "Crear oportunidad"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -579,7 +583,7 @@ msgstr ""
#. module: crm
#: view:crm.meeting:0
msgid "Meetings Tree"
-msgstr ""
+msgstr "Árbol de reuniones"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -596,7 +600,7 @@ msgstr "Escalado"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_categ_meet
msgid "All Meetings"
-msgstr ""
+msgstr "Todas las reuniones"
#. module: crm
#: model:ir.module.module,shortdesc:crm.module_meta_information
@@ -607,7 +611,7 @@ msgstr "Gestión de relaciones con clientes & proveedores"
#: view:crm.email.add.cc:0
#: model:ir.actions.act_window,name:crm.action_view_crm_email_add_cc_wizard
msgid "Add CC"
-msgstr ""
+msgstr "Agregar CC"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -615,7 +619,7 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "June"
-msgstr ""
+msgstr "Junio"
#. module: crm
#: field:crm.segmentation,som_interval_default:0
@@ -625,7 +629,7 @@ msgstr "Por defecto (0=Ninguno)"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job7
msgid "Refused by Company"
-msgstr ""
+msgstr "Rechazado por la compañía"
#. module: crm
#: field:crm.case,planned_revenue:0
@@ -643,12 +647,12 @@ msgstr "Permitir eliminar"
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "October"
-msgstr ""
+msgstr "Octubre"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor3
msgid "Value Proposition"
-msgstr ""
+msgstr "Propuesta de valor"
#. module: crm
#: view:crm.case.rule:0
@@ -658,17 +662,17 @@ msgstr "%(case_id)s = ID del caso"
#. module: crm
#: model:crm.case.category2,name:crm.category_oppor2
msgid "New Business"
-msgstr ""
+msgstr "Nuevo negocio"
#. module: crm
#: help:crm.case,email_from:0
msgid "These people will receive email."
-msgstr ""
+msgstr "Estas personas recibirán un email."
#. module: crm
#: help:crm.case.section,calendar:0
msgid "Allows to show calendar"
-msgstr ""
+msgstr "Permite mostrar el calendario"
#. module: crm
#: view:crm.job:0
@@ -676,13 +680,13 @@ msgstr ""
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid " Today "
-msgstr ""
+msgstr " Hoy "
#. module: crm
#: wizard_view:crm.job.reschedule_phone_call,init:0
#: wizard_view:crm.opportunity.reschedule_phone_call,init:0
msgid "Phone Call Description"
-msgstr ""
+msgstr "Descripción de la llamada"
#. module: crm
#: view:crm.case.categ:0
@@ -702,7 +706,7 @@ msgstr ""
#. module: crm
#: model:crm.case.categ,name:crm.categ_claim3
msgid "Policy Claims"
-msgstr ""
+msgstr "Política de reclamaciones"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -718,7 +722,7 @@ msgstr ""
#. module: crm
#: view:crm.phonecall:0
msgid "Assigned to"
-msgstr ""
+msgstr "Asignada a"
#. module: crm
#: view:res.partner.events:0
@@ -728,12 +732,12 @@ msgstr "Eventos empresa"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job4
msgid "Contract Proposed"
-msgstr ""
+msgstr "Contrato propuesto"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_job_req_main
msgid "Jobs - Hiring Process"
-msgstr ""
+msgstr "Trabajos - Proceso de selección de personal"
#. module: crm
#: view:crm.case:0
@@ -741,7 +745,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Related Cases"
-msgstr ""
+msgstr "Casos Relacionados"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -749,7 +753,7 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "September"
-msgstr ""
+msgstr "Setiembre"
#. module: crm
#: view:crm.case:0
@@ -764,33 +768,33 @@ msgstr "Historial de comunicación"
#. module: crm
#: view:crm.claim:0
msgid "New Claims"
-msgstr ""
+msgstr "Nuevas Reclamaciones"
#. module: crm
#: view:crm.meeting:0
msgid "Meetings Form"
-msgstr ""
+msgstr "Formulario de reuniones"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor5
msgid "Negotiation/Review"
-msgstr ""
+msgstr "Negociación/Revisión"
#. module: crm
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
#, python-format
msgid "A partner is already defined on this phonecall."
-msgstr ""
+msgstr "Una empresa ya esta definida para esta llamada."
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_stage
msgid "Cases by Opportunities and Stage"
-msgstr ""
+msgstr "Casos por oportunidades y fase"
#. module: crm
#: view:crm.claim:0
msgid "Date of Claim"
-msgstr ""
+msgstr "Fecha de reclamación"
#. module: crm
#: view:crm.segmentation.line:0
@@ -800,12 +804,12 @@ msgstr "Líneas de segmentación de empresa"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_category_act_leads_all
msgid "All Leads"
-msgstr ""
+msgstr "Todas las iniciativas"
#. module: crm
#: view:crm.lead:0
msgid "Leads Form"
-msgstr ""
+msgstr "Formulario de iniciativas"
#. module: crm
#: view:crm.segmentation:0
@@ -816,17 +820,17 @@ msgstr "Segmentación de empresa"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job5
msgid "Contract Signed"
-msgstr ""
+msgstr "Contrato firmado"
#. module: crm
#: wizard_view:caldav.crm.subscribe,init:0
msgid "Subscribe to Remote ICS"
-msgstr ""
+msgstr "Subcribirse a ICS remotos"
#. module: crm
#: model:crm.case.category2,name:crm.category_oppor1
msgid "Existing Business"
-msgstr ""
+msgstr "Negocio existente"
#. module: crm
#: field:crm.case,probability:0
@@ -837,7 +841,7 @@ msgstr "Probabilidad (%)"
#. module: crm
#: model:ir.model,name:crm.model_crm_lead
msgid "Leads Cases"
-msgstr ""
+msgstr "Casos Oportunidades"
#. module: crm
#: help:crm.case.section,reply_to:0
@@ -864,7 +868,7 @@ msgstr "Regla del caso"
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor
#, python-format
msgid "Opportunity"
-msgstr ""
+msgstr "Oportunidad"
#. module: crm
#: view:crm.case:0
@@ -874,12 +878,12 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Emails"
-msgstr ""
+msgstr "Emails"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead7
msgid "Television"
-msgstr ""
+msgstr "Televisión"
#. module: crm
#: view:crm.segmentation:0
@@ -889,18 +893,18 @@ msgstr "Parar el proceso"
#. module: crm
#: model:crm.case.categ,name:crm.categ_claim1
msgid "Factual Claims"
-msgstr ""
+msgstr "Reclamaciones objetivas"
#. module: crm
#: view:crm.phonecall:0
msgid "Search Phonecalls"
-msgstr ""
+msgstr "Buscar llamadas"
#. module: crm
#: wizard_button:crm.lead.opportunity_set,create_partner,create:0
#: wizard_button:crm.phonecall.opportunity_set,create_partner,create:0
msgid "Continue"
-msgstr ""
+msgstr "Continue"
#. module: crm
#: field:crm.segmentation,som_interval:0
@@ -915,13 +919,13 @@ msgstr "Valor"
#. module: crm
#: help:caldav.crm.export,init,name:0
msgid "Save in .ics format"
-msgstr ""
+msgstr "Salvar en formato .ics"
#. module: crm
#: wizard_field:crm.new.send.mail,init,text:0
#: wizard_field:crm.send.mail,init,text:0
msgid "Message"
-msgstr ""
+msgstr "Mensaje"
#. module: crm
#: help:crm.segmentation,exclusif:0
@@ -960,7 +964,7 @@ msgstr ""
#. module: crm
#: model:crm.case.category2,name:crm.category_lead6
msgid "Radio"
-msgstr ""
+msgstr "Radio"
#. module: crm
#: model:ir.model,name:crm.model_crm_opportunity_assign_wizard
@@ -980,12 +984,13 @@ msgstr "Fecha del disparo"
#. module: crm
#: view:crm.case.history:0
msgid "Search Histories"
-msgstr ""
+msgstr "Buscar en Historial"
#. module: crm
#: help:crm.case.stage,sequence:0
msgid "Gives the sequence order when displaying a list of case stages."
msgstr ""
+"Da el orden de secuencia cuando se muestra un lista de etápas de caso."
#. module: crm
#: model:crm.case.section,name:crm.section_support3
@@ -993,7 +998,7 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_case_opp
#: model:process.node,name:crm.process_node_opportunities0
msgid "Opportunities"
-msgstr ""
+msgstr "Oportunidades"
#. module: crm
#: help:crm.segmentation,name:0
@@ -1028,6 +1033,8 @@ msgid ""
"These people will receive a copy of the future communication between partner "
"and users by email"
msgstr ""
+"Estas personas recibirán una copia de toda comunicación entre el partner y "
+"los usuarios."
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -1035,12 +1042,12 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "March"
-msgstr ""
+msgstr "Marzo"
#. module: crm
#: view:crm.case.rule:0
msgid "Server Action to be Triggered"
-msgstr ""
+msgstr "Acción del servidor a ser ejecutada"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_rule-act
@@ -1057,13 +1064,13 @@ msgstr ""
#. module: crm
#: wizard_field:crm.new.send.mail,init,state:0
msgid "Set State to"
-msgstr ""
+msgstr "Establecer estado a"
#. module: crm
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
#, python-format
msgid "There is no mail to reply!"
-msgstr ""
+msgstr "Este correo no puede ser contestado"
#. module: crm
#: wizard_button:crm.job.partner_create,init,confirm:0
@@ -1073,7 +1080,7 @@ msgstr ""
#: model:ir.actions.wizard,name:crm.wizard_crm_lead_partner_create
#: model:ir.actions.wizard,name:crm.wizard_crm_phonecall_partner_create
msgid "Create Partner"
-msgstr ""
+msgstr "Crear empresa"
#. module: crm
#: selection:crm.segmentation.line,expr_operator:0
@@ -1088,12 +1095,12 @@ msgstr ""
#. module: crm
#: view:crm.fundraising:0
msgid "My Funds"
-msgstr ""
+msgstr "Mis donaciones"
#. module: crm
#: field:crm.case,partner_mobile:0
msgid "Mobile"
-msgstr ""
+msgstr "Móvil"
#. module: crm
#: field:crm.case.rule,name:0
@@ -1114,12 +1121,12 @@ msgstr "Historial del caso"
#. module: crm
#: model:crm.case.categ,name:crm.categ_job2
msgid "Junior Developer"
-msgstr ""
+msgstr "Desarrollador junior"
#. module: crm
#: view:crm.meeting:0
msgid "My Meetings"
-msgstr ""
+msgstr "Mis reuniones"
#. module: crm
#: field:crm.case.categ,name:0
@@ -1129,7 +1136,7 @@ msgstr "Nombre de la categoría de casos"
#. module: crm
#: model:crm.case.category2,name:crm.category_claim2
msgid "Preventive"
-msgstr ""
+msgstr "Preventivo"
#. module: crm
#: field:crm.case.rule,act_email_cc:0
@@ -1139,7 +1146,7 @@ msgstr "Añadir observadores (CC)"
#. module: crm
#: wizard_view:caldav.crm.export,init:0
msgid "Export ICS"
-msgstr ""
+msgstr "Exportar ICS"
#. module: crm
#: code:addons/crm/crm_claim.py:0
@@ -1149,7 +1156,7 @@ msgstr ""
#: code:addons/crm/crm_phonecall.py:0
#, python-format
msgid "You can not assign Closed Case."
-msgstr ""
+msgstr "No se puede asignar un caso cerrado."
#. module: crm
#: help:crm.case.rule,act_remind_partner:0
@@ -1167,7 +1174,7 @@ msgstr ""
#: view:crm.meeting:0
#, python-format
msgid "Meetings"
-msgstr ""
+msgstr "Reuniones"
#. module: crm
#: view:crm.case.rule:0
@@ -1192,12 +1199,12 @@ msgstr "Fecha límite"
#: wizard_button:caldav.crm.import,init,end:0
#: wizard_button:caldav.crm.subscribe,init,end:0
msgid "_Cancel"
-msgstr ""
+msgstr "Cancelar"
#. module: crm
#: field:crm.case,category2_id:0
msgid "Category Name"
-msgstr ""
+msgstr "Nombre de Categoría"
#. module: crm
#: view:crm.segmentation:0
@@ -1207,7 +1214,7 @@ msgstr "Segmentaciones de empresa"
#. module: crm
#: view:crm.meeting:0
msgid "Recurrency Rule"
-msgstr ""
+msgstr "Regla concurrente"
#. module: crm
#: model:ir.model,name:crm.model_crm_case_categ
@@ -1221,12 +1228,12 @@ msgstr "Categoría del caso"
#: view:crm.phonecall:0
#: wizard_field:crm.send.mail,init,subject:0
msgid "Subject"
-msgstr ""
+msgstr "Asunto"
#. module: crm
#: field:crm.meeting,attendees:0
msgid "Attendees"
-msgstr ""
+msgstr "Asistentes"
#. module: crm
#: model:ir.module.module,description:crm.module_meta_information
@@ -1281,7 +1288,7 @@ msgstr ""
#. module: crm
#: model:process.transition,note:crm.process_transition_leadpartner0
msgid "Prospect is converting to business partner"
-msgstr ""
+msgstr "El prospecto se convierte a partner"
#. module: crm
#: view:crm.case.rule:0
@@ -1291,17 +1298,17 @@ msgstr ""
#. module: crm
#: view:crm.claim:0
msgid "Pending Claims"
-msgstr ""
+msgstr "Reclamaciones Pendientes"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_stage
msgid "Cases by Opportunities, Category and Stage"
-msgstr ""
+msgstr "Casos por oportunidades, categoría y etapa"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead4
msgid "Print"
-msgstr ""
+msgstr "Imprimir"
#. module: crm
#: field:crm.case,som:0
@@ -1316,12 +1323,12 @@ msgstr "Grado de satisfacción"
#: field:report.crm.case.section.categ.categ2,category2_id:0
#: field:report.crm.case.section.categ2,category2_id:0
msgid "Type"
-msgstr ""
+msgstr "Tipo"
#. module: crm
#: view:crm.job:0
msgid "Candidate Refused"
-msgstr ""
+msgstr "Candidato rechazado"
#. module: crm
#: view:crm.segmentation:0
@@ -1351,7 +1358,7 @@ msgstr "Fecha creación"
#: view:crm.phonecall:0
#: model:process.node,name:crm.process_node_meeting0
msgid "Meeting"
-msgstr ""
+msgstr "Reunión"
#. module: crm
#: view:crm.case.rule:0
@@ -1372,12 +1379,12 @@ msgstr "Cambiar a borrador"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_categ_categ2
msgid "Cases by section, Category and Category2"
-msgstr ""
+msgstr "Casos por sección, categoría y categoría2"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor6
msgid "Closed Won"
-msgstr ""
+msgstr "Cerrado-Ganado"
#. module: crm
#: model:ir.actions.act_window,name:crm.act_crm_case_categ_crm_case_opened
@@ -1396,7 +1403,7 @@ msgstr "Casos abiertos"
#: field:report.crm.case.section.categ2,stage_id:0
#: field:report.crm.case.section.stage,stage_id:0
msgid "Stage"
-msgstr ""
+msgstr "Fase"
#. module: crm
#: constraint:ir.ui.view:0
@@ -1409,24 +1416,26 @@ msgid ""
"If the active field is set to true, it will allow you to hide the case "
"section without removing it."
msgstr ""
+"Si el campo activo esta en verdadero, te permitira esconder la sección del "
+"caso sin removerla"
#. module: crm
#: model:crm.case.categ,name:crm.categ_fund2
msgid "Learning And Education"
-msgstr ""
+msgstr "Aprendizaje y educación"
#. module: crm
#: wizard_view:crm.phonecall.opportunity_set,create_partner:0
#: wizard_view:crm.phonecall.partner_create,init:0
msgid "Are you sure you want to create a partner based on this phonecall ?"
-msgstr ""
+msgstr "Estas seguro que deseas crear una empresa basado en esta llamada?"
#. module: crm
#: view:crm.case.stage:0
#: model:ir.actions.act_window,name:crm.crm_case_stage_act
#: model:ir.ui.menu,name:crm.menu_crm_case_stage_act
msgid "Stages"
-msgstr ""
+msgstr "Etapas"
#. module: crm
#: wizard_field:crm.case.opportunity.partner_opportunity,init,planned_revenue:0
diff --git a/addons/crm/i18n/fi.po b/addons/crm/i18n/fi.po
index 7f798630a67..5a16207d10c 100644
--- a/addons/crm/i18n/fi.po
+++ b/addons/crm/i18n/fi.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-03-22 18:16+0000\n"
+"PO-Revision-Date: 2010-03-30 20:39+0000\n"
"Last-Translator: smii \n"
"Language-Team: Finnish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-30 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -1942,7 +1942,7 @@ msgstr ""
#. module: crm
#: model:crm.case.category2,name:crm.category_job1
msgid "Graduate"
-msgstr ""
+msgstr "Valmistua"
#. module: crm
#: wizard_view:crm.job.meeting_set,init:0
@@ -1951,11 +1951,13 @@ msgid ""
"Note that you can also use the calendar view to graphically schedule your "
"next meeting."
msgstr ""
+"Huomaa, että voit käyttää kalenterinäkymää myös suunnitellaksesi graafisesti "
+"seuraavan kokouksesi."
#. module: crm
#: view:crm.lead:0
msgid "Leads Tree"
-msgstr ""
+msgstr "Opaspuu"
#. module: crm
#: field:crm.meeting,caldav_url:0
@@ -1965,7 +1967,7 @@ msgstr ""
#. module: crm
#: view:crm.meeting:0
msgid "Attendee"
-msgstr ""
+msgstr "Osanottaja"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -1979,12 +1981,12 @@ msgstr ""
#: model:ir.actions.act_window,name:crm.crm_case_categ_phone_incoming0
#: model:ir.ui.menu,name:crm.menu_crm_case_phone_inbound
msgid "Inbound"
-msgstr ""
+msgstr "Saapuva"
#. module: crm
#: constraint:crm.case.section:0
msgid "Error ! You cannot create recursive sections."
-msgstr ""
+msgstr "Virhe! Et voi luoda rekursiivisia osioita."
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm
@@ -2004,7 +2006,7 @@ msgstr ""
#: view:report.crm.case.section.categ2:0
#: view:report.crm.case.section.stage:0
msgid "This Year"
-msgstr ""
+msgstr "Tänä vuonna"
#. module: crm
#: field:crm.case.rule,act_remind_partner:0
@@ -2022,7 +2024,7 @@ msgstr "Korkein"
#. module: crm
#: view:crm.job:0
msgid "Contract Data"
-msgstr ""
+msgstr "Sopimuksen tiedot (data)"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
@@ -2037,17 +2039,17 @@ msgstr ""
#. module: crm
#: field:crm.menu.config_wizard,document_ics:0
msgid "Shared Calendar"
-msgstr ""
+msgstr "Jaettu kalenteri"
#. module: crm
#: field:crm.case.section,reply_to:0
msgid "Reply-To"
-msgstr ""
+msgstr "Vastaus osoitteeseen"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_lead_categ
msgid "Cases by Leads and Type"
-msgstr ""
+msgstr "Tapahtumat johdon ja tyypin mukaan"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
@@ -2058,12 +2060,12 @@ msgstr "Minuuttia"
#: field:report.crm.case.section.categ2,amount_revenue:0
#: field:report.crm.case.section.stage,amount_revenue:0
msgid "Est.Revenue"
-msgstr ""
+msgstr "Arvioitu tuotto"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job1
msgid "Initial Jobs Demand"
-msgstr ""
+msgstr "Alkutöiden tarve"
#. module: crm
#: field:crm.case.rule,trg_priority_to:0
@@ -2078,12 +2080,12 @@ msgstr ""
#. module: crm
#: view:crm.claim:0
msgid "Claims Info"
-msgstr ""
+msgstr "Vaade tiedot"
#. module: crm
#: field:crm.case.category2,name:0
msgid "Case Category2 Name"
-msgstr ""
+msgstr "Tapahtuma kategoria2 nimi"
#. module: crm
#: wizard_view:crm.lead.opportunity_set,opportunity:0
@@ -2091,13 +2093,13 @@ msgstr ""
#: model:ir.actions.wizard,name:crm.wizard_crm_lead_opportunity_set
#: model:ir.actions.wizard,name:crm.wizard_crm_phonecall_opportunity_set
msgid "Convert To Opportunity"
-msgstr ""
+msgstr "Muunna mahdollisuudeksi"
#. module: crm
#: model:crm.case.stage,name:crm.stage_phone2
#: view:crm.phonecall:0
msgid "Held"
-msgstr ""
+msgstr "Pysäytetty"
#. module: crm
#: view:crm.case:0
@@ -2113,7 +2115,7 @@ msgstr ""
#. module: crm
#: selection:crm.new.send.mail,init,state:0
msgid "Unchanged"
-msgstr ""
+msgstr "Muuttamaton"
#. module: crm
#: wizard_view:crm.job.partner_create,init:0
@@ -2122,7 +2124,7 @@ msgstr ""
#: wizard_view:crm.phonecall.opportunity_set,create_partner:0
#: wizard_view:crm.phonecall.partner_create,init:0
msgid "Convert To Partner"
-msgstr ""
+msgstr "Muunna kumppaniksi"
#. module: crm
#: field:crm.case.rule,trg_state_from:0
@@ -2148,17 +2150,17 @@ msgstr "Prioriteetti"
#. module: crm
#: view:crm.opportunity:0
msgid "Source"
-msgstr ""
+msgstr "Lähde"
#. module: crm
#: field:crm.meeting,location:0
msgid "Location"
-msgstr ""
+msgstr "Sijainti"
#. module: crm
#: view:crm.fundraising:0
msgid "Payment Mode"
-msgstr ""
+msgstr "Maksutapa"
#. module: crm
#: help:crm.case.rule,trg_date_range:0
@@ -2173,7 +2175,7 @@ msgstr ""
#: view:crm.job:0
#: view:crm.lead:0
msgid "Stage: "
-msgstr ""
+msgstr "Vaihe: "
#. module: crm
#: view:crm.case.section:0
@@ -2183,7 +2185,7 @@ msgstr "Tapahtumaosio"
#. module: crm
#: model:process.node,note:crm.process_node_meeting0
msgid "Schedule a normal or phone meeting"
-msgstr ""
+msgstr "Ajoita normaali puhelinkokous"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -2194,7 +2196,7 @@ msgstr ""
#: code:addons/crm/crm_phonecall.py:0
#, python-format
msgid "Error !"
-msgstr ""
+msgstr "Virhe!"
#. module: crm
#: view:crm.case.rule:0
@@ -2204,7 +2206,7 @@ msgstr "Muutettavat kentät"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead1
msgid "Telesales"
-msgstr ""
+msgstr "Puhelinmyynnit"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_history-act_main
@@ -2214,7 +2216,7 @@ msgstr "Tapahtumahistoriat"
#. module: crm
#: field:crm.case,create_date:0
msgid "Created"
-msgstr ""
+msgstr "Luotu"
#. module: crm
#: view:crm.lead:0
@@ -2231,12 +2233,12 @@ msgstr "Segmentointirivi"
#: wizard_field:crm.opportunity.reschedule_phone_call,init,deadline:0
#: view:crm.phonecall:0
msgid "Planned Date"
-msgstr ""
+msgstr "Suunniteltu päivämäärä"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
msgid "Hours"
-msgstr ""
+msgstr "Tunnit"
#. module: crm
#: help:crm.menu.config_wizard,phonecall:0
@@ -2266,7 +2268,7 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "July"
-msgstr ""
+msgstr "heinäkuu"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor1
@@ -2276,7 +2278,7 @@ msgstr ""
#. module: crm
#: field:crm.case,partner_name2:0
msgid "Employee Email"
-msgstr ""
+msgstr "Työntekijän sähköposti"
#. module: crm
#: model:ir.model,name:crm.model_crm_meeting
@@ -2286,17 +2288,17 @@ msgstr ""
#. module: crm
#: view:crm.job:0
msgid "Job Info"
-msgstr ""
+msgstr "Työtehtävän tiedot"
#. module: crm
#: view:crm.meeting:0
msgid "Cancel Meeting"
-msgstr ""
+msgstr "Peruuta kokous/tapaaminen"
#. module: crm
#: model:crm.case.section,name:crm.section_support0
msgid "Jobs"
-msgstr ""
+msgstr "Työpaikat"
#. module: crm
#: view:crm.case.rule:0
@@ -2307,7 +2309,7 @@ msgstr ""
#: model:crm.case.stage,name:crm.stage_phone3
#: view:crm.phonecall:0
msgid "Not Held"
-msgstr ""
+msgstr "Ei pidätetty"
#. module: crm
#: field:crm.case.rule,act_mail_to_user:0
@@ -2317,12 +2319,12 @@ msgstr "Sähköposti vastaavalle"
#. module: crm
#: view:crm.job:0
msgid "Jobs - Recruitment Form"
-msgstr ""
+msgstr "Työpaikat - Rekrytointilomake"
#. module: crm
#: model:crm.case.category2,name:crm.category_claim1
msgid "Corrective"
-msgstr ""
+msgstr "Tarkennus"
#. module: crm
#: model:ir.model,name:crm.model_crm_opportunity
@@ -2345,7 +2347,7 @@ msgstr "Lähetettävän sähköpostin malli"
#: field:report.crm.case.section.categ2,month:0
#: field:report.crm.case.section.stage,month:0
msgid "Month"
-msgstr ""
+msgstr "Kuukausi"
#. module: crm
#: model:crm.case.section,name:crm.section_support2
@@ -2361,7 +2363,7 @@ msgstr ""
#: wizard_button:crm.new.send.mail,init,send:0
#: wizard_button:crm.send.mail,init,send:0
msgid "Send Email"
-msgstr ""
+msgstr "Lähetä sähköpostia"
#. module: crm
#: wizard_view:crm.new.send.mail,init:0
@@ -2371,7 +2373,7 @@ msgstr ""
#. module: crm
#: model:crm.case.category2,name:crm.categ2_fund3
msgid "Credit Card"
-msgstr ""
+msgstr "Luottokortti"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -2380,6 +2382,8 @@ msgid ""
"No E-Mail ID Found for the Responsible Partner or missing reply address in "
"section!"
msgstr ""
+"Ei löydettyä sähköposti ID:tä vastaavalle kumppanille tai puuttuva "
+"vastausosoite tässä osiossa!"
#. module: crm
#: view:crm.job:0
@@ -2389,18 +2393,18 @@ msgstr ""
#. module: crm
#: field:crm.case.history,log_id:0
msgid "Log"
-msgstr ""
+msgstr "Loki"
#. module: crm
#: help:crm.menu.config_wizard,fund:0
msgid ""
"This may help associations in their fund raising process and tracking."
-msgstr ""
+msgstr "Tämä saattaa auttaa yhteisöjä varainhankinnassa ja sen seurannassa."
#. module: crm
#: view:crm.meeting:0
msgid "Reset to Unconfirmed"
-msgstr ""
+msgstr "Palauta vahvistamattomaksi"
#. module: crm
#: view:crm.case:0
@@ -2415,7 +2419,7 @@ msgstr "Seuraajien Sähköpostit"
#. module: crm
#: view:crm.case.rule:0
msgid "Note"
-msgstr ""
+msgstr "Huomautus"
#. module: crm
#: field:report.crm.case.section.categ.categ2,delay_close:0
@@ -2423,7 +2427,7 @@ msgstr ""
#: field:report.crm.case.section.categ2,delay_close:0
#: field:report.crm.case.section.stage,delay_close:0
msgid "Delay Close"
-msgstr ""
+msgstr "Viivytä sulkemista"
#. module: crm
#: selection:crm.case,priority:0
@@ -2431,7 +2435,7 @@ msgstr ""
#: selection:crm.case.rule,trg_priority_from:0
#: selection:crm.case.rule,trg_priority_to:0
msgid "Low"
-msgstr ""
+msgstr "Matala"
#. module: crm
#: field:crm.case,date_closed:0
@@ -2444,23 +2448,23 @@ msgstr ""
#: selection:report.crm.case.section.categ2,state:0
#: selection:report.crm.case.section.stage,state:0
msgid "Closed"
-msgstr ""
+msgstr "Suljettu"
#. module: crm
#: view:crm.job:0
msgid "Candidate Name2"
-msgstr ""
+msgstr "Ehdokasnimi 2"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "cancel"
-msgstr ""
+msgstr "Peruuta"
#. module: crm
#: model:crm.case.categ,name:crm.categ_meet2
msgid "Internal Meeting"
-msgstr ""
+msgstr "Sisäinen kokous"
#. module: crm
#: view:crm.case:0
@@ -2469,7 +2473,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Events"
-msgstr ""
+msgstr "Tapahtumat"
#. module: crm
#: help:crm.menu.config_wizard,lead:0
@@ -2477,6 +2481,8 @@ msgid ""
"Allows you to track and manage leads which are pre-sales requests or "
"contacts, the very first contact with a customer request."
msgstr ""
+"Sallii sinun seuraavan ja hallinoimaan oppaita jotka ovat esi-myynti "
+"pyyntöjä tai yhteystietoja. Ensimmäinen yhteydenotto asiakkaan pyyntöön."
#. module: crm
#: help:crm.case,som:0
@@ -2494,7 +2500,7 @@ msgstr ""
#. module: crm
#: model:crm.case.categ,name:crm.categ_meet1
msgid "Customer Meeting"
-msgstr ""
+msgstr "Asiakastapaaminen"
#. module: crm
#: wizard_field:crm.new.send.mail,init,doc2:0
@@ -2509,7 +2515,7 @@ msgstr ""
#. module: crm
#: view:crm.job:0
msgid "Degree"
-msgstr ""
+msgstr "Tutkinto"
#. module: crm
#: wizard_field:crm.new.send.mail,init,doc1:0
@@ -2525,7 +2531,7 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_case_phone
#, python-format
msgid "Phone Calls"
-msgstr ""
+msgstr "Puhelinsoitot"
#. module: crm
#: help:crm.case,active:0
@@ -2547,19 +2553,19 @@ msgstr "Asiahistoria"
#. module: crm
#: field:crm.case,partner_phone:0
msgid "Phone"
-msgstr ""
+msgstr "Puhelin"
#. module: crm
#: model:crm.case.category2,name:crm.categ2_fund2
msgid "Cheque"
-msgstr ""
+msgstr "Šekki"
#. module: crm
#: field:crm.case,active:0
#: field:crm.case.rule,active:0
#: field:crm.case.section,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktiivinen"
#. module: crm
#: help:crm.case.rule,act_remind_attach:0
@@ -2578,7 +2584,7 @@ msgstr "Pakollinen Määritelmä"
#. module: crm
#: selection:crm.segmentation.line,expr_operator:0
msgid ">"
-msgstr ""
+msgstr ">"
#. module: crm
#: view:crm.job:0
@@ -2588,12 +2594,12 @@ msgstr ""
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_send_mail
msgid "Send Mail"
-msgstr ""
+msgstr "Lähetä sähköpostia"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
msgid "Months"
-msgstr ""
+msgstr "Kuukautta"
#. module: crm
#: view:crm.claim.assign_wizard:0
@@ -2616,7 +2622,7 @@ msgstr ""
#. module: crm
#: model:process.node,note:crm.process_node_opportunities0
msgid "When a real project/opportunity is detected"
-msgstr ""
+msgstr "Kun todellinen projekti/mahdollisuus on löydetty"
#. module: crm
#: wizard_view:crm.job.partner_create,init:0
@@ -2627,7 +2633,7 @@ msgstr ""
#: wizard_field:crm.lead.opportunity_set,create_partner,action:0
#: wizard_field:crm.phonecall.opportunity_set,create_partner,action:0
msgid "Action"
-msgstr ""
+msgstr "Toiminto"
#. module: crm
#: code:addons/crm/crm_claim.py:0
@@ -2638,7 +2644,7 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_case_claims
#, python-format
msgid "Claims"
-msgstr ""
+msgstr "Vaateet"
#. module: crm
#: field:crm.segmentation,som_interval_decrease:0
@@ -2653,7 +2659,7 @@ msgstr ""
#. module: crm
#: model:ir.model,name:crm.model_crm_case_category2
msgid "Category2 of case"
-msgstr ""
+msgstr "tapahtuman kategoria2"
#. module: crm
#: wizard_field:crm.new.send.mail,init,to:0
@@ -2669,29 +2675,29 @@ msgstr ""
#. module: crm
#: model:ir.ui.menu,name:crm.menu_presale
msgid "Sales"
-msgstr ""
+msgstr "Myynnit"
#. module: crm
#: view:crm.case:0
#: view:crm.phonecall:0
msgid "General"
-msgstr ""
+msgstr "Yleiset"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead2
msgid "Assigned"
-msgstr ""
+msgstr "Määrätty"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead5
msgid "Recycled"
-msgstr ""
+msgstr "Kierrätetty"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead8
#: model:crm.case.categ,name:crm.categ_oppor8
msgid "Other"
-msgstr ""
+msgstr "Muu"
#. module: crm
#: view:crm.case:0
@@ -2701,7 +2707,7 @@ msgstr ""
#: selection:crm.new.send.mail,init,state:0
#: view:crm.opportunity:0
msgid "Done"
-msgstr ""
+msgstr "Valmis"
#. module: crm
#: field:crm.segmentation,som_interval_max:0
@@ -2732,7 +2738,7 @@ msgstr ""
#: selection:report.crm.case.section.stage,state:0
#, python-format
msgid "Open"
-msgstr ""
+msgstr "Avoin"
#. module: crm
#: selection:crm.meeting,class:0
@@ -2776,19 +2782,19 @@ msgstr ""
#: field:crm.opportunity.assign_wizard,user_id:0
#: field:crm.phonecall.assign_wizard,user_id:0
msgid "Responsible"
-msgstr ""
+msgstr "Vastuullinen"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim4
#: model:crm.case.stage,name:crm.stage_meet3
msgid "Invalid"
-msgstr ""
+msgstr "Virheellinen"
#. module: crm
#: wizard_button:crm.job.meeting_set,init,order:0
#: wizard_button:crm.phonecall.meeting_set,init,order:0
msgid "Set Meeting"
-msgstr ""
+msgstr "Aseta kokous"
#. module: crm
#: field:crm.menu.config_wizard,meeting:0
diff --git a/addons/idea/i18n/ru.po b/addons/idea/i18n/ru.po
index e17c673dceb..052052be880 100644
--- a/addons/idea/i18n/ru.po
+++ b/addons/idea/i18n/ru.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2008-11-01 16:03+0000\n"
-"Last-Translator: Sergei Kostigoff \n"
+"PO-Revision-Date: 2010-03-30 10:33+0000\n"
+"Last-Translator: Nikolay Chesnokov \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: 2010-03-30 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: idea
@@ -44,7 +44,7 @@ msgstr "Мои идеи"
#. module: idea
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия"
#. module: idea
#: selection:idea.idea,my_vote:0
@@ -119,7 +119,7 @@ msgstr "Категория идеи"
#. module: idea
#: model:ir.module.module,shortdesc:idea.module_meta_information
msgid "Idea Manager"
-msgstr ""
+msgstr "Менеджер идеи"
#. module: idea
#: model:ir.ui.menu,name:idea.menu_idea_vote_stat
@@ -222,6 +222,13 @@ msgid ""
"managers can obtain an easy view on best ideas from all the users. Once "
"installed, check the menu 'Ideas' in the 'Tools' main menu."
msgstr ""
+"Этот модуль позволяет вашему пользователю легко и эффективно участвовать в "
+"инновациях бизнеса. Он позволяет каждому выразить идеи о различных вопросах. "
+"После этого, другие пользователи могут прокомментировать эти идеи и провести "
+"голосование за идеи. Каждая идея как счет основанный на различных "
+"голосованиях. Менеджеры могут получить легкий взгляд на самые лучшие идеии "
+"от всех пользователей. Как только установлено, проверите меню «идеи» в "
+"главном меню «Инструменты»."
#. module: idea
#: field:idea.comment,create_date:0
@@ -242,7 +249,7 @@ msgstr "Кол-во голосов"
#. module: idea
#: model:ir.model,name:idea.model_idea_idea
msgid "idea.idea"
-msgstr ""
+msgstr "идеи.идеи"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_idea_draft_my
@@ -307,7 +314,7 @@ msgstr "Открытые идеи"
#: view:idea.idea:0
#: view:idea.vote.stat:0
msgid "vote_stat of ideas"
-msgstr ""
+msgstr "Статистика голосования"
#. module: idea
#: view:idea.comment:0
diff --git a/addons/mrp/i18n/fr.po b/addons/mrp/i18n/fr.po
index 587b88abfa7..34f1b5c332f 100644
--- a/addons/mrp/i18n/fr.po
+++ b/addons/mrp/i18n/fr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-01-11 20:49+0000\n"
+"PO-Revision-Date: 2010-03-30 14:06+0000\n"
"Last-Translator: TeMPO \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: 2010-03-30 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
@@ -853,7 +853,7 @@ msgstr "Machine"
#. module: mrp
#: model:process.node,name:mrp.process_node_servicemts0
msgid "Make to stock"
-msgstr "Production sur stock"
+msgstr "Sur stock"
#. module: mrp
#: field:mrp.workcenter,name:0
@@ -1088,7 +1088,7 @@ msgstr "Rendement produit"
#. module: mrp
#: model:ir.model,name:mrp.model_stock_warehouse_orderpoint
msgid "Orderpoint minimum rule"
-msgstr "Règle de point de commande minimum"
+msgstr "Règle de stock minimum"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_servicemts0
diff --git a/addons/mrp/i18n/ru.po b/addons/mrp/i18n/ru.po
index b4238ea1fc2..dad225a5f3c 100644
--- a/addons/mrp/i18n/ru.po
+++ b/addons/mrp/i18n/ru.po
@@ -7,24 +7,24 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 15:56+0000\n"
-"Last-Translator: Sergei Kostigoff \n"
+"PO-Revision-Date: 2010-03-30 10:42+0000\n"
+"Last-Translator: Nikolay Chesnokov \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: 2010-03-30 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
msgid "Moves Created"
-msgstr ""
+msgstr "Перемещение создано"
#. module: mrp
#: rml:mrp.production.order:0
msgid "No. Of Cycles"
-msgstr ""
+msgstr "№ цикла"
#. module: mrp
#: help:mrp.procurement.compute.all,init,automatic:0
@@ -37,34 +37,34 @@ msgstr ""
#. module: mrp
#: model:ir.module.module,shortdesc:mrp.module_meta_information
msgid "Manufacturing Resource Planning"
-msgstr ""
+msgstr "Планирование материальных ресурсов"
#. module: mrp
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия"
#. module: mrp
#: field:mrp.bom.revision,indice:0
msgid "Revision"
-msgstr ""
+msgstr "Ревизия"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc2
#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc2
msgid "Compute Stock Minimum Rules Only"
-msgstr ""
+msgstr "Правила вычисления минимального запаса"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action5
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action5
msgid "Exceptions Procurements"
-msgstr ""
+msgstr "Исключения поставок"
#. module: mrp
#: view:mrp.routing.workcenter:0
msgid "Routing Workcenters"
-msgstr ""
+msgstr "Используемые мощности маршрута"
#. module: mrp
#: help:mrp.property,composition:0
@@ -75,7 +75,7 @@ msgstr ""
#: model:ir.actions.act_window,name:mrp.mrp_routing_action
#: model:ir.ui.menu,name:mrp.menu_mrp_routing_action
msgid "Routings"
-msgstr ""
+msgstr "Маршруты"
#. module: mrp
#: field:mrp.production,picking_id:0
@@ -85,7 +85,7 @@ msgstr "Упаковочный лист"
#. module: mrp
#: model:process.node,name:mrp.process_node_stock0
msgid "Stockable Stock"
-msgstr ""
+msgstr "Склад для складирования"
#. module: mrp
#: field:mrp.procurement,origin:0
@@ -107,7 +107,7 @@ msgstr "Ссылка"
#. module: mrp
#: view:mrp.production:0
msgid "Finished Products"
-msgstr ""
+msgstr "Конечный продукт"
#. module: mrp
#: wizard_field:mrp.procurement.compute.all,init,automatic:0
@@ -118,7 +118,7 @@ msgstr ""
#. module: mrp
#: selection:mrp.bom,method:0
msgid "Set / Pack"
-msgstr ""
+msgstr "Установить / Упаковать"
#. module: mrp
#: constraint:ir.ui.view:0
@@ -149,7 +149,7 @@ msgstr "Продукция и местоположения"
#. module: mrp
#: view:res.company:0
msgid "MRP & Logistic Scheduler"
-msgstr ""
+msgstr "ПМР и Логистическое планирование"
#. module: mrp
#: help:mrp.workcenter,capacity_per_cycle:0
From b6c87a04bf14a60ef09ec42b14dc87054a221084 Mon Sep 17 00:00:00 2001
From: "Harry (Open ERP)"
Date: Wed, 31 Mar 2010 11:02:41 +0530
Subject: [PATCH 21/33] [FIX] convert: set uid variable which are used in view
domain
bzr revid: hmo@tinyerp.com-20100331053241-3jj97egt9nb4kwie
---
bin/tools/convert.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bin/tools/convert.py b/bin/tools/convert.py
index 3d98ed6b796..a7bd6207cd3 100644
--- a/bin/tools/convert.py
+++ b/bin/tools/convert.py
@@ -376,7 +376,7 @@ form: module.record_id""" % (xml_id,)
usage = rec.get('usage','').encode('utf-8')
limit = rec.get('limit','').encode('utf-8')
auto_refresh = rec.get('auto_refresh','').encode('utf-8')
-
+ uid = self.uid
# def ref() added because , if context has ref('id') eval wil use this ref
active_id=str("active_id") # for further reference in client/bin/tools/__init__.py
From 101b96a591f70b2e3e336716a2f3a5ca742a3d1b Mon Sep 17 00:00:00 2001
From: "Harry (Open ERP)"
Date: Wed, 31 Mar 2010 12:21:02 +0530
Subject: [PATCH 22/33] [FIX] stock: correct incomplete work
bzr revid: hmo@tinyerp.com-20100331065102-lkawbyzxkh9mvndv
---
addons/stock/__terp__.py | 3 +-
addons/stock/wizard/__init__.py | 5 +-
addons/stock/wizard/stock_inventory_merge.py | 16 ++-
.../wizard/stock_inventory_merge_view.xml | 27 ++++
addons/stock/wizard/stock_picking_make.py | 119 +++++++-----------
.../stock/wizard/stock_picking_make_view.xml | 31 +++++
6 files changed, 122 insertions(+), 79 deletions(-)
create mode 100644 addons/stock/wizard/stock_inventory_merge_view.xml
create mode 100644 addons/stock/wizard/stock_picking_make_view.xml
diff --git a/addons/stock/__terp__.py b/addons/stock/__terp__.py
index 5fa272238d5..459a2faaf84 100644
--- a/addons/stock/__terp__.py
+++ b/addons/stock/__terp__.py
@@ -48,10 +48,11 @@ Thanks to the double entry management, the inventory controlling is powerful and
"wizard/stock_inventory_set_stock_zero_view.xml",
"wizard/stock_fill_inventory_view.xml",
"wizard/stock_invoice_onshipping_view.xml",
+ "wizard/stock_inventory_merge_view.xml",
"wizard/stock_location_product_view.xml",
"wizard/stock_inventory_line_split_view.xml",
"wizard/stock_change_standard_price_view.xml",
-
+ "wizard/stock_picking_make_view.xml",
"wizard/stock_traceability_view.xml",
"stock_workflow.xml",
"stock_incoterms.xml",
diff --git a/addons/stock/wizard/__init__.py b/addons/stock/wizard/__init__.py
index 6f5a83a07b3..7c87212571c 100644
--- a/addons/stock/wizard/__init__.py
+++ b/addons/stock/wizard/__init__.py
@@ -23,18 +23,17 @@ import stock_traceability
import stock_move
import stock_partial_picking
import stock_partial_move
-import wizard_picking_make
+import stock_picking_make
import wizard_replacement
import wizard_return
import wizard_split_lot_line
import wizard_ups
-import inventory_merge
+import stock_inventory_merge
import stock_inventory_set_stock_zero
import stock_fill_inventory
import stock_inventory_line_split
import stock_invoice_onshipping
import stock_location_product
import stock_change_standard_price
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/stock_inventory_merge.py b/addons/stock/wizard/stock_inventory_merge.py
index 64620054ff8..1c11ad8e2ad 100644
--- a/addons/stock/wizard/stock_inventory_merge.py
+++ b/addons/stock/wizard/stock_inventory_merge.py
@@ -36,7 +36,18 @@ class stock_inventory_merge(osv.osv_memory):
}
def do_merge(self, cr, uid, ids, context):
-
+ """
+ To merge selected Inventories.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return:
+
+ """
invent_obj = self.pool.get('stock.inventory')
invent_line_obj = self.pool.get('stock.inventory.line')
@@ -46,10 +57,7 @@ class stock_inventory_merge(osv.osv_memory):
raise osv.except_osv(_('Warning'),
_('Please select at least two inventories.'))
-
-
for inventory in invent_obj.browse(cr, uid, context['active_ids'], context=context):
- print"-------active-ids----",context['active_ids']
if inventory.state == "done":
raise osv.except_osv(_('Warning'),
_('Merging is only allowed on draft inventories.'))
diff --git a/addons/stock/wizard/stock_inventory_merge_view.xml b/addons/stock/wizard/stock_inventory_merge_view.xml
new file mode 100644
index 00000000000..e8af34c0c71
--- /dev/null
+++ b/addons/stock/wizard/stock_inventory_merge_view.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ stock.inventory.merge.form
+ stock.inventory.merge
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/stock/wizard/stock_picking_make.py b/addons/stock/wizard/stock_picking_make.py
index 6ac54ee3bc1..9d26595f00e 100644
--- a/addons/stock/wizard/stock_picking_make.py
+++ b/addons/stock/wizard/stock_picking_make.py
@@ -20,83 +20,60 @@
##############################################################################
from osv import fields, osv
-from service import web_services
-from tools.misc import UpdateableStr, UpdateableDict
-from tools.translate import _
import netsvc
-import pooler
-import time
-import wizard
class stock_picking_make(osv.osv_memory):
- _name = "stock.picking.make"
- _description = "Make picking"
+ _name = 'stock.picking.make'
+ _description = "Make Picking"
+
_columns = {
- 'pickings': fields.many2many('stock.picking', 'Picking', required=True),
- }
-
-ARCH = '''
-
-
-'''
-
-FIELDS = {
- 'pickings': {
- 'string': 'Picking',
- 'type': 'many2many',
- 'relation': 'stock.picking',
- 'readonly': True,
- },
-}
-
-def _get_value(obj, cursor, user, data, context):
- pool = pooler.get_pool(cursor.dbname)
- picking_obj = pool.get('stock.picking')
-
- picking_ids = picking_obj.search(cursor, user, [
- ('id', 'in', data['ids']),
- ('state', '<>', 'done'),
- ('state', '<>', 'cancel')], context=context)
- return {'pickings': picking_ids}
-
-def _make_packing(obj, cursor, user, data, context):
- wkf_service = netsvc.LocalService('workflow')
- pool = pooler.get_pool(cursor.dbname)
- picking_obj = pool.get('stock.picking')
- ids = data['form']['pickings'][0][2]
- print"-------ids--------",ids
- picking_obj.force_assign(cursor, user, ids)
- picking_obj.action_move(cursor, user, ids)
- for picking_id in ids:
- wkf_service.trg_validate(user, 'stock.picking', picking_id,
- 'button_done', cursor)
- return {}
-
-class stock_picking_make(wizard.interface):
- states = {
- 'init': {
- 'actions': [_get_value],
- 'result': {
- 'type': 'form',
- 'arch': ARCH,
- 'fields': FIELDS,
- 'state': [
- ('end', 'Cancel', 'gtk-cancel'),
- ('make', 'Ok', 'gtk-apply', True)
- ],
- },
- },
- 'make': {
- 'actions': [_make_packing],
- 'result': {
- 'type': 'state',
- 'state':'end',
- },
- },
+ 'picking_ids': fields.many2many('stock.picking', 'stock_picking_ids', 'parent_id', 'child_id', 'Pickings'),
}
-stock_picking_make('stock.picking.make')
+ def default_get(self, cursor, user, fields, context):
+ """
+ To get default values for the object.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ res = super(stock_picking_make, self).default_get(cursor, user, fields, context=context)
+ record_ids = context and context.get('active_ids',False) or False
+ if record_ids:
+ picking_obj = self.pool.get('stock.picking')
+ picking_ids = picking_obj.search(cursor, user, [
+ ('id', 'in', record_ids),
+ ('state', '<>', 'done'),
+ ('state', '<>', 'cancel')], context=context)
+ res['picking_ids'] = picking_ids
+ return res
+
+ def make_packing(self, cursor, user, ids, context):
+ """
+ Make Picking.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ record_ids = context and context.get('active_ids',False) or False
+ wkf_service = netsvc.LocalService('workflow')
+ picking_obj = self.pool.get('stock.picking')
+ data = self.read(cursor, user, ids[0])
+ pick_ids = data['picking_ids']
+ picking_obj.force_assign(cursor, user, pick_ids)
+ picking_obj.action_move(cursor, user, pick_ids)
+ for picking_id in ids:
+ wkf_service.trg_validate(user, 'stock.picking', picking_id,
+ 'button_done', cursor)
+ return {}
+
+stock_picking_make()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/stock_picking_make_view.xml b/addons/stock/wizard/stock_picking_make_view.xml
new file mode 100644
index 00000000000..fa77042c5d8
--- /dev/null
+++ b/addons/stock/wizard/stock_picking_make_view.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Make Picking
+ stock.picking.make
+ form
+
+
+
+
+
+
+
+
+
+
+
+ Make Picking
+ ir.actions.act_window
+ stock.picking.make
+ form
+ form
+ new
+
+
+
From e3cd823031c382369be6fdc654dc96aea91a478c Mon Sep 17 00:00:00 2001
From: "Harry (Open ERP)"
Date: Wed, 31 Mar 2010 12:27:31 +0530
Subject: [PATCH 23/33] [FIX] mrp: Remove print statement
bzr revid: hmo@tinyerp.com-20100331065731-hqrvxd6wq9iyikaa
---
addons/mrp/mrp.py | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index 6864b542396..fe7d45cdb6c 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -144,8 +144,7 @@ class mrp_bom(osv.osv):
@return: True
- """
-
+ """
result = {}
for bom in self.browse(cr, uid, ids, context=context):
result[bom.id] = map(lambda x: x.id, bom.bom_lines)
@@ -156,10 +155,7 @@ class mrp_bom(osv.osv):
sids = self.pool.get('mrp.bom').search(cr, uid, [('bom_id','=',False),('product_id','=',bom.product_id.id)])
if sids:
bom2 = self.pool.get('mrp.bom').browse(cr, uid, sids[0], context=context)
- result[bom.id] += map(lambda x: x.id, bom2.bom_lines)
- print "name",name
- print "arg",arg
- print "result",result
+ result[bom.id] += map(lambda x: x.id, bom2.bom_lines)
return result
def _compute_type(self, cr, uid, ids, field_name, arg, context):
res = dict(map(lambda x: (x,''), ids))
From 46c47e232414263d4697cb0f79424bd560f0ddc5 Mon Sep 17 00:00:00 2001
From: "Harry (Open ERP)"
Date: Wed, 31 Mar 2010 12:40:27 +0530
Subject: [PATCH 24/33] [FIX] stock: put proper action in make picking button
bzr revid: hmo@tinyerp.com-20100331071027-yccy49aga6y8f6yb
---
addons/stock/stock_view.xml | 8 ++++----
addons/stock/stock_wizard.xml | 32 ++++++++------------------------
2 files changed, 12 insertions(+), 28 deletions(-)
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 877ea313d1b..2335b66cbad 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -585,7 +585,7 @@
-
-
-
-
-
+ string="Split move line"/>
-
+
-
-
-
-
+
From 54fd2af11b846cc3ba3c9f6a2078a10676686700 Mon Sep 17 00:00:00 2001
From: Antony Lesuisse
Date: Wed, 31 Mar 2010 07:35:18 +0000
Subject: [PATCH 25/33] wizard update
bzr revid: al@openerp.com-20100331073518-6hlgj53hkj99ofwa
---
addons/crm/wizard/crm_send_email.py | 54 +++++++----------------------
1 file changed, 13 insertions(+), 41 deletions(-)
diff --git a/addons/crm/wizard/crm_send_email.py b/addons/crm/wizard/crm_send_email.py
index f76e212eaa1..45f85cdacc2 100644
--- a/addons/crm/wizard/crm_send_email.py
+++ b/addons/crm/wizard/crm_send_email.py
@@ -44,23 +44,12 @@ class crm_send_new_email(osv.osv_memory):
}
def action_cancel(self, cr, uid, ids, context=None):
- """
- Closes Phonecall to Opportunity form
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of Phonecall to Opportunity's IDs
- @param context: A standard dictionary for contextual values
+ """ Closes Phonecall to Opportunity form
"""
return {'type':'ir.actions.act_window_close'}
def action_send(self, cr, uid, ids, context=None):
""" This sends an email to ALL the addresses of the selected partners.
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of Phonecall to Opportunity's IDs
- @param context: A standard dictionary for contextual values
"""
if not context:
context = {}
@@ -100,8 +89,8 @@ class crm_send_new_email(osv.osv_memory):
case_pool.format_body(body),
attach=attach,
reply_to=case.section_id.reply_to,
- openobject_id=str(case.id),
- )
+ openobject_id=str(case.id),
+ )
if flag:
if data['state'] == 'unchanged':
pass
@@ -123,13 +112,6 @@ class crm_send_new_email(osv.osv_memory):
def default_get(self, cr, uid, fields, context=None):
"""
This function gets default values
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param fields: List of fields for default value
- @param context: A standard dictionary for contextual values
-
- @return : default values of fields.
"""
if not context:
context = {}
@@ -151,8 +133,7 @@ class crm_send_new_email(osv.osv_memory):
if 'email_to' in fields:
res.update({'email_to': case.email_from})
if 'email_from' in fields:
- res.update({'email_from': (case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or tools.config.get('email_from',False)})
+ res.update({'email_from': (case.user_id and case.user_id.address_id and case.user_id.address_id.email) or tools.config.get('email_from',False)})
if 'subject' in fields:
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
if 'email_cc' in fields:
@@ -166,13 +147,6 @@ class crm_send_new_email(osv.osv_memory):
def get_reply_defaults(self, cr, uid, fields, context=None):
"""
This function gets default values for reply mail
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param fields: List of fields for default value
- @param context: A standard dictionary for contextual values
-
- @return : default values of fields.
"""
hist_obj = self.pool.get('crm.case.history')
res_ids = context and context.get('active_ids', []) or []
@@ -182,24 +156,22 @@ class crm_send_new_email(osv.osv_memory):
model_pool = self.pool.get(model)
case = model_pool.browse(cr, uid, hist.log_id.res_id)
if 'email_to' in fields:
- res.update({'email_to': hist.email_from or (case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or tools.config.get('email_from',False)})
+ res['email_to']=case.email_from or hist.email_from or ''
if 'email_from' in fields:
- res.update({'email_from': hist.email_to or (case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or tools.config.get('email_from',False)})
+ res['email_from']=(case.user_id and case.user_id.address_id and case.user_id.address_id.email) or hist.email_to or tools.config.get('email_from','')
if 'text' in fields:
- header = '-------- Original Message --------'
- sender = 'From: %s' %(hist.email_from or tools.config.get('email_from',False))
- to = 'To: %s' % (hist.email_to)
- sentdate = 'Sent: %s' % (hist.date)
+ header = '\n\n-------- Original Message --------'
+ sender = 'From: %s' % (hist.email_from or '')
+ to = 'To: %s' % (hist.email_to or '')
+ sentdate = 'Date: %s' % (hist.date)
desc = '\n%s'%(hist.description)
original = [header, sender, to, sentdate, desc]
original = '\n'.join(original)
- res.update({'text': '\n\n%s'%(original)})
+ res['text']=original
if 'subject' in fields:
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
- #if 'state' in fields:
- # res.update({'state': 'pending'})
+ if 'state' in fields:
+ res['state']='pending'
return res
def view_init(self, cr, uid, fields_list, context=None):
From 29e451ebdc51f73f54c363862016d59e5919ad52 Mon Sep 17 00:00:00 2001
From: "noz@tinyerp.com" <>
Date: Wed, 31 Mar 2010 13:05:49 +0530
Subject: [PATCH 26/33] [FIX] sale: Removed duplicate field from the list view.
bzr revid: noz@tinyerp.com-20100331073549-vxq8qytrftdf1f3d
---
addons/sale/sale_view.xml | 1 -
1 file changed, 1 deletion(-)
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index c62487cfe1e..073d95dac27 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -85,7 +85,6 @@
-
From 29aff8f992509ed047c649a1fcb6428f78bf965d Mon Sep 17 00:00:00 2001
From: Stephane Wirtel
Date: Wed, 31 Mar 2010 10:45:49 +0200
Subject: [PATCH 27/33] [FIX] Remove the evaluation of the domain
bzr revid: stephane@openerp.com-20100331084549-2gp5wrwsidv490h4
---
bin/tools/convert.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/bin/tools/convert.py b/bin/tools/convert.py
index a7bd6207cd3..1d4b1fd9d0b 100644
--- a/bin/tools/convert.py
+++ b/bin/tools/convert.py
@@ -384,7 +384,6 @@ form: module.record_id""" % (xml_id,)
def ref(str_id):
return self.id_get(cr, None, str_id)
context=eval(context)
- domain=eval(domain)
res = {
'name': name,
From 8e15fd52b369bc2f16739423d4db485bd6963653 Mon Sep 17 00:00:00 2001
From: "DSH (Open ERP)"
Date: Wed, 31 Mar 2010 15:58:36 +0530
Subject: [PATCH 28/33] [FIX] res_lang : if value of thousands_sep is not
present in language,method will give error- 'moentary' name is not defined
bzr revid: dsh@tinyerp.com-20100331102836-zbc26i80v4p3q4iv
---
bin/addons/base/res/res_lang.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/bin/addons/base/res/res_lang.py b/bin/addons/base/res/res_lang.py
index 8a3af7dd175..8427b366703 100644
--- a/bin/addons/base/res/res_lang.py
+++ b/bin/addons/base/res/res_lang.py
@@ -62,7 +62,7 @@ class lang(osv.osv):
]
@tools.cache(skiparg=3)
- def _lang_data_get(self, cr, uid, lang_id):
+ def _lang_data_get(self, cr, uid, lang_id, monetary=False):
conv = localeconv()
lang_obj=self.browse(cr,uid,lang_id)
thousands_sep = lang_obj.thousands_sep or conv[monetary and 'mon_thousands_sep' or 'thousands_sep']
@@ -120,7 +120,7 @@ class lang(osv.osv):
if percent[0] != '%':
raise ValueError("format() must be given exactly one %char format specifier")
- lang_grouping, thousands_sep, decimal_point = self._lang_data_get(cr, uid, ids[0])
+ lang_grouping, thousands_sep, decimal_point = self._lang_data_get(cr, uid, ids[0], monetary)
formatted = percent % value
# floats and decimal ints need special action!
From 036dfd209ee714f2ca0e6c4cd0cc122556e2dbca Mon Sep 17 00:00:00 2001
From: Fabien Pinckaers
Date: Wed, 31 Mar 2010 16:48:00 +0200
Subject: [PATCH 29/33] modifs
bzr revid: fp@tinyerp.com-20100331144800-y7e8kso0qsretfpb
---
.../account_analytic_plans.py | 1 -
addons/base_calendar/base_calendar.py | 1 -
.../base_report_designer.py | 1 -
addons/board/board.py | 3 ---
addons/crm/crm_segmentation.py | 2 --
addons/crm_profiling/crm_profiling.py | 2 --
addons/point_of_sale/pos.py | 21 -------------------
addons/stock/stock.py | 1 -
8 files changed, 32 deletions(-)
diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py
index af197076c23..7f1e3854f6a 100644
--- a/addons/account_analytic_plans/account_analytic_plans.py
+++ b/addons/account_analytic_plans/account_analytic_plans.py
@@ -404,7 +404,6 @@ class sale_order_line(osv.osv):
if rec:
pool_inv_line.write(cr, uid, [line.id], {'analytics_id':rec.analytics_id.id}, context=context)
- cr.commit()
return create_ids
sale_order_line()
diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py
index 17202c3ba83..3c99b7b5410 100644
--- a/addons/base_calendar/base_calendar.py
+++ b/addons/base_calendar/base_calendar.py
@@ -562,7 +562,6 @@ are both optional, but if one occurs, so MUST the other"""),
cr.execute('Update %s set base_calendar_alarm_id=%s, alarm_id=%s \
where id=%s' % (model_obj._table, \
alarm_id, basic_alarm.id, data.id))
- cr.commit()
return True
def do_alarm_unlink(self, cr, uid, ids, model, context={}):
diff --git a/addons/base_report_designer/base_report_designer.py b/addons/base_report_designer/base_report_designer.py
index bddc9da9e17..311449fd46c 100644
--- a/addons/base_report_designer/base_report_designer.py
+++ b/addons/base_report_designer/base_report_designer.py
@@ -60,7 +60,6 @@ class report_xml(osv.osv):
'report_sxw_content': base64.decodestring(file_sxw),
'report_rml_content': str(sxw2rml(sxwval, xsl=fp.read())),
})
- cr.commit()
db = pooler.get_db_only(cr.dbname)
interface.register_all(db)
return True
diff --git a/addons/board/board.py b/addons/board/board.py
index 29e8a3310b4..5154a7cb993 100644
--- a/addons/board/board.py
+++ b/addons/board/board.py
@@ -57,15 +57,12 @@ class board_board(osv.osv):
def write(self, cr, uid, ids, vals, context={}):
result = super(board_board, self).write(cr, uid, ids, vals, context)
- cr.commit()
board = self.pool.get('board.board').browse(cr, uid, ids[0])
view = self.create_view(cr, uid, ids[0], context)
id = board.view_id.id
cr.execute("update ir_ui_view set arch=%s where id=%s" , (view, id))
- cr.commit()
-
return result
def create(self, cr, user, vals, context=None):
diff --git a/addons/crm/crm_segmentation.py b/addons/crm/crm_segmentation.py
index 2f0e2a1c650..2844cd02881 100644
--- a/addons/crm/crm_segmentation.py
+++ b/addons/crm/crm_segmentation.py
@@ -78,10 +78,8 @@ class crm_segmentation(osv.osv):
for partner_id in partners:
cr.execute('insert into res_partner_category_rel (category_id,partner_id) values (%s,%s)', (categ['categ_id'][0],partner_id))
- cr.commit()
self.write(cr, uid, [id], {'state':'not running', 'partner_id':0})
- cr.commit()
return True
def process_stop(self, cr, uid, ids, *args):
diff --git a/addons/crm_profiling/crm_profiling.py b/addons/crm_profiling/crm_profiling.py
index 7e70df3dc4a..dc019f9a4be 100644
--- a/addons/crm_profiling/crm_profiling.py
+++ b/addons/crm_profiling/crm_profiling.py
@@ -243,10 +243,8 @@ class crm_segmentation(osv.osv):
for partner_id in partners:
cr.execute('insert into res_partner_category_rel (category_id,partner_id) values (%s,%s)', (categ['categ_id'][0],partner_id))
- cr.commit()
self.write(cr, uid, [id], {'state':'not running', 'partner_id':0})
- cr.commit()
return True
crm_segmentation()
diff --git a/addons/point_of_sale/pos.py b/addons/point_of_sale/pos.py
index 4b3f73f34d8..c551ccd9ca0 100644
--- a/addons/point_of_sale/pos.py
+++ b/addons/point_of_sale/pos.py
@@ -158,28 +158,8 @@ class pos_order(osv.osv):
if val
Date: Wed, 31 Mar 2010 20:43:08 +0530
Subject: [PATCH 30/33] [FIX] fixed
bzr revid: hmo@tinyerp.com-20100331151308-fv9wxm7456fnjure
---
addons/crm/__terp__.py | 1 +
addons/mail_gateway/mail_gateway.py | 2 +-
addons/project_issue/__terp__.py | 4 ++--
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/addons/crm/__terp__.py b/addons/crm/__terp__.py
index ef5b80cc3b2..b2a40c822a6 100644
--- a/addons/crm/__terp__.py
+++ b/addons/crm/__terp__.py
@@ -70,6 +70,7 @@ between mails and Open ERP.""",
'crm_lead_menu.xml',
'crm_meeting_wizard.xml',
'crm_meeting_view.xml',
+ 'crm_meeting_menu.xml',
'crm_phonecall_wizard.xml',
'crm_phonecall_view.xml',
'crm_phonecall_menu.xml',
diff --git a/addons/mail_gateway/mail_gateway.py b/addons/mail_gateway/mail_gateway.py
index 087a4132fb0..6a7df28b2d1 100644
--- a/addons/mail_gateway/mail_gateway.py
+++ b/addons/mail_gateway/mail_gateway.py
@@ -262,7 +262,7 @@ class mail_gateway(osv.osv):
if part.get_content_maintype()=='text':
buf = part.get_payload(decode=True)
if buf:
- txt = self._to_decode(buf, part.get_charsets)
+ txt = self._to_decode(buf, part.get_charsets())
txt = re.sub("<(\w)>", replace, txt)
txt = re.sub("<\/(\w)>", replace, txt)
if txt and part.get_content_subtype() == 'plain':
diff --git a/addons/project_issue/__terp__.py b/addons/project_issue/__terp__.py
index c4187abec5a..03ec9e22285 100644
--- a/addons/project_issue/__terp__.py
+++ b/addons/project_issue/__terp__.py
@@ -41,8 +41,8 @@
'update_xml': [
'project_issue_wizard.xml',
'project_issue_view.xml',
-# 'project_issue_menu.xml',
-# 'project_feature_menu.xml',
+ 'project_issue_menu.xml',
+ 'project_feature_menu.xml',
'report/project_issue_report_view.xml',
'security/project_issue_security.xml',
'security/ir.model.access.csv',
From 2db7dc08107e9f180ebb5a86b483095ea1674f06 Mon Sep 17 00:00:00 2001
From: Stephane Wirtel
Date: Wed, 31 Mar 2010 18:59:16 +0200
Subject: [PATCH 31/33] [FIX] Avoid to duplicate a field.related
lp bug: https://launchpad.net/bugs/544087 fixed
bzr revid: stephane@openerp.com-20100331165916-auxhjr19vaaxn139
---
bin/osv/fields.py | 5 ++++-
bin/osv/orm.py | 3 ++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/bin/osv/fields.py b/bin/osv/fields.py
index bbe21b9a321..edf78156dcc 100644
--- a/bin/osv/fields.py
+++ b/bin/osv/fields.py
@@ -756,11 +756,14 @@ class related(function):
if self._type != "many2one":
t_id = t_data.id
t_data = t_data[self.arg[i]][0]
+ else:
+ t_data = False
+ break
else:
t_id = t_data['id']
t_data = t_data[self.arg[i]]
- if t_id:
+ if t_id and t_data:
obj.pool.get(field_detail['object']).write(cr,uid,[t_id],{args[-1]:values}, context=context)
def _fnct_read(self, obj, cr, uid, ids, field_name, args, context=None):
diff --git a/bin/osv/orm.py b/bin/osv/orm.py
index 32efe32558b..6b78c18b83e 100644
--- a/bin/osv/orm.py
+++ b/bin/osv/orm.py
@@ -3098,7 +3098,8 @@ class orm(orm_template):
upd1 = upd1 + ',' + self._columns[field]._symbol_set[0]
upd2.append(self._columns[field]._symbol_set[1](vals[field]))
else:
- upd_todo.append(field)
+ if not isinstance(self._columns[field], fields.related):
+ upd_todo.append(field)
if field in self._columns \
and hasattr(self._columns[field], 'selection') \
and vals[field]:
From b6082299a9867ed2d0a84fc990d08cefcc3bbd9f Mon Sep 17 00:00:00 2001
From: Launchpad Code Hosting
Date: Thu, 1 Apr 2010 04:40:48 +0100
Subject: [PATCH 32/33] Launchpad automatic translations update.
bzr revid: codehost@crowberry-20100401034048-dag1p7jjz5gpgqe3
---
bin/addons/base/i18n/bg.po | 24 ++++++++++++------------
bin/addons/base/i18n/hr.po | 4 ++--
bin/addons/base/i18n/it.po | 6 +++---
bin/addons/base/i18n/ja.po | 4 ++--
bin/addons/base/i18n/sv.po | 4 ++--
bin/addons/base/i18n/uk.po | 4 ++--
bin/addons/base/i18n/zh_CN.po | 4 ++--
7 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/bin/addons/base/i18n/bg.po b/bin/addons/base/i18n/bg.po
index 5570b263bec..a0d0053c68e 100644
--- a/bin/addons/base/i18n/bg.po
+++ b/bin/addons/base/i18n/bg.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-30 04:19+0000\n"
+"PO-Revision-Date: 2010-03-31 08:05+0000\n"
"Last-Translator: Boris \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: 2010-03-31 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
@@ -1411,7 +1411,7 @@ msgid ""
"This wizard will detect new terms in the application so that you can update "
"them manually."
msgstr ""
-"Помощника установи нови условия в приложението които можете да обновите "
+"Помощника установи нови преводи в приложението които можете да обновите "
"ръчно."
#. module: base
@@ -3185,7 +3185,7 @@ msgstr "Монсерат"
#. module: base
#: model:ir.ui.menu,name:base.menu_translation_app
msgid "Application Terms"
-msgstr "Условия за използване на програмата"
+msgstr "Изрази в програмата"
#. module: base
#: selection:ir.report.custom.fields,operation:0
@@ -5798,7 +5798,7 @@ msgstr "Ел. поща"
#: model:ir.actions.act_window,name:base.action_wizard_update_translations
#: model:ir.ui.menu,name:base.menu_wizard_update_translations
msgid "Resynchronise Terms"
-msgstr "Повторно синхронизиране на условията"
+msgstr "Ресинхронизиране на изразите"
#. module: base
#: model:res.country,name:base.tg
@@ -5886,8 +5886,8 @@ msgid ""
"translations for your own module, you can also publish all your translation "
"at once."
msgstr ""
-"За да се подобрите превода на термини от официалния превод на OpenERP, Вие "
-"трябва да промените термините в launchpad. Ако сте превели голяма част от "
+"За да се подобрите превода на изрази от официалния превод на OpenERP, Вие "
+"трябва да промените изразите в \"launchpad\". Ако сте превели голяма част от "
"ваш модул, може да публикувате вашите преводи наведнъж."
#. module: base
@@ -6321,7 +6321,7 @@ msgstr "terp-administration"
#: model:ir.actions.act_window,name:base.action_translation
#: model:ir.ui.menu,name:base.menu_action_translation
msgid "All terms"
-msgstr "Всички условия"
+msgstr "Всички изрази"
#. module: base
#: model:res.country,name:base.no
@@ -7028,7 +7028,7 @@ msgstr "Джибути"
#. module: base
#: field:ir.translation,value:0
msgid "Translation Value"
-msgstr "Преведено значение"
+msgstr "Превод"
#. module: base
#: model:res.country,name:base.ag
@@ -7107,7 +7107,7 @@ msgstr "турски / Türkçe"
#: model:ir.actions.act_window,name:base.action_translation_untrans
#: model:ir.ui.menu,name:base.menu_action_translation_untrans
msgid "Untranslated terms"
-msgstr "Непреведен термин"
+msgstr "Непреведени изрази"
#. module: base
#: wizard_view:module.lang.import,init:0
@@ -7251,7 +7251,7 @@ msgstr "Канали"
#. module: base
#: view:ir.module.module:0
msgid "Schedule for Installation"
-msgstr "График на инсталация"
+msgstr "Инсталирай"
#. module: base
#: selection:ir.model.fields,select_level:0
@@ -7272,7 +7272,7 @@ msgstr "Изпрати"
#. module: base
#: field:ir.translation,src:0
msgid "Source"
-msgstr "Източник"
+msgstr "Оригинал"
#. module: base
#: help:res.partner.address,partner_id:0
diff --git a/bin/addons/base/i18n/hr.po b/bin/addons/base/i18n/hr.po
index f3739c66bf3..7e9a7965906 100644
--- a/bin/addons/base/i18n/hr.po
+++ b/bin/addons/base/i18n/hr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-30 04:36+0000\n"
+"PO-Revision-Date: 2010-03-31 06:01+0000\n"
"Last-Translator: goranc \n"
"Language-Team: openerp-translators\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: hr\n"
diff --git a/bin/addons/base/i18n/it.po b/bin/addons/base/i18n/it.po
index 3d99b3829d9..f98e352340b 100644
--- a/bin/addons/base/i18n/it.po
+++ b/bin/addons/base/i18n/it.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-30 09:53+0000\n"
-"Last-Translator: Carlo Vettore \n"
+"PO-Revision-Date: 2010-03-31 05:14+0000\n"
+"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/ja.po b/bin/addons/base/i18n/ja.po
index 9430360cb87..81af2e76f06 100644
--- a/bin/addons/base/i18n/ja.po
+++ b/bin/addons/base/i18n/ja.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-30 04:24+0000\n"
+"PO-Revision-Date: 2010-03-31 05:47+0000\n"
"Last-Translator: Harry (Open ERP) \n"
"Language-Team: Japanese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/sv.po b/bin/addons/base/i18n/sv.po
index 92102068d0d..c342e6457fb 100644
--- a/bin/addons/base/i18n/sv.po
+++ b/bin/addons/base/i18n/sv.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-30 04:18+0000\n"
+"PO-Revision-Date: 2010-03-31 04:49+0000\n"
"Last-Translator: Anders Wallenquist \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: 2010-03-31 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/uk.po b/bin/addons/base/i18n/uk.po
index be9ac9ddeb1..822ac82f43d 100644
--- a/bin/addons/base/i18n/uk.po
+++ b/bin/addons/base/i18n/uk.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-30 04:37+0000\n"
+"PO-Revision-Date: 2010-03-31 05:27+0000\n"
"Last-Translator: Fabien (Open ERP) \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: 2010-03-31 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
diff --git a/bin/addons/base/i18n/zh_CN.po b/bin/addons/base/i18n/zh_CN.po
index 795f0a2c33f..9573d0c4996 100644
--- a/bin/addons/base/i18n/zh_CN.po
+++ b/bin/addons/base/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
-"PO-Revision-Date: 2010-03-30 04:19+0000\n"
+"PO-Revision-Date: 2010-03-31 05:03+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
From 218995ec382e44995c32550c72304ae063d368f9 Mon Sep 17 00:00:00 2001
From: Launchpad Code Hosting
Date: Thu, 1 Apr 2010 04:41:21 +0100
Subject: [PATCH 33/33] Launchpad automatic translations update.
bzr revid: codehost@crowberry-20100401034121-7q9un4bnp0nwk8vt
---
addons/account_chart/i18n/ru.po | 2 +-
addons/base_contact/i18n/bg.po | 2 +-
addons/board_account/i18n/ru.po | 2 +-
addons/board_project/i18n/ru.po | 2 +-
addons/crm/i18n/es.po | 2 +-
addons/crm/i18n/fi.po | 18 +-
addons/idea/i18n/ru.po | 2 +-
addons/mrp/i18n/bg.po | 8 +-
addons/mrp/i18n/fr.po | 2 +-
addons/mrp/i18n/ru.po | 2 +-
addons/project/i18n/bg.po | 8 +-
addons/purchase/i18n/bg.po | 8 +-
addons/sale/i18n/bg.po | 10 +-
addons/survey/i18n/de.po | 697 ++++++++++++++++++++++++++++++++
14 files changed, 731 insertions(+), 34 deletions(-)
create mode 100644 addons/survey/i18n/de.po
diff --git a/addons/account_chart/i18n/ru.po b/addons/account_chart/i18n/ru.po
index a7f14094a82..519eb416a3b 100644
--- a/addons/account_chart/i18n/ru.po
+++ b/addons/account_chart/i18n/ru.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_chart
diff --git a/addons/base_contact/i18n/bg.po b/addons/base_contact/i18n/bg.po
index dfdcd14a63b..134f79092f6 100644
--- a/addons/base_contact/i18n/bg.po
+++ b/addons/base_contact/i18n/bg.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_contact
diff --git a/addons/board_account/i18n/ru.po b/addons/board_account/i18n/ru.po
index fd7e9d8b9fe..3b86324170b 100644
--- a/addons/board_account/i18n/ru.po
+++ b/addons/board_account/i18n/ru.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_account
diff --git a/addons/board_project/i18n/ru.po b/addons/board_project/i18n/ru.po
index 60115d0e65b..da870866b24 100644
--- a/addons/board_project/i18n/ru.po
+++ b/addons/board_project/i18n/ru.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_project
diff --git a/addons/crm/i18n/es.po b/addons/crm/i18n/es.po
index e1fbc85e8c0..16a23891c8a 100644
--- a/addons/crm/i18n/es.po
+++ b/addons/crm/i18n/es.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
diff --git a/addons/crm/i18n/fi.po b/addons/crm/i18n/fi.po
index 5a16207d10c..d3e4f18e025 100644
--- a/addons/crm/i18n/fi.po
+++ b/addons/crm/i18n/fi.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-03-30 20:39+0000\n"
+"PO-Revision-Date: 2010-03-31 14:33+0000\n"
"Last-Translator: smii \n"
"Language-Team: Finnish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -2799,12 +2799,12 @@ msgstr "Aseta kokous"
#. module: crm
#: field:crm.menu.config_wizard,meeting:0
msgid "Calendar of Meetings"
-msgstr ""
+msgstr "Kokouskalenteri"
#. module: crm
#: view:crm.case:0
msgid "Cases By Stage and Estimates"
-msgstr ""
+msgstr "Tapahtumat vaiheen ja arvioiden mukaan"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -2834,18 +2834,18 @@ msgstr "Suurin kommunikointihistoria"
#. module: crm
#: view:crm.lead:0
msgid "Meeting For Leads Generation"
-msgstr ""
+msgstr "Kokous ohjausten luomiseksi"
#. module: crm
#: wizard_view:crm.lead.opportunity_set,create_partner:0
#: wizard_view:crm.lead.partner_create,init:0
msgid "Are you sure you want to create a partner based on this lead ?"
-msgstr ""
+msgstr "Oletko varma, että haluat luoda kumppanin perustuen tähän johtoon ?"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job6
msgid "Refused by Employee"
-msgstr ""
+msgstr "Hylätty työntekijän toimesta"
#. module: crm
#: field:crm.case,partner_name:0
@@ -2855,7 +2855,7 @@ msgstr ""
#. module: crm
#: model:crm.case.stage,name:crm.stage_job2
msgid "First Interview"
-msgstr ""
+msgstr "Ensimmäinen haastattelu"
#. module: crm
#: view:report.crm.case.section.categ.categ2:0
@@ -2863,7 +2863,7 @@ msgstr ""
#: view:report.crm.case.section.categ2:0
#: view:report.crm.case.section.stage:0
msgid "This Month"
-msgstr ""
+msgstr "Tässä kuussa"
#. module: crm
#: view:crm.job:0
diff --git a/addons/idea/i18n/ru.po b/addons/idea/i18n/ru.po
index 052052be880..9f8622ada30 100644
--- a/addons/idea/i18n/ru.po
+++ b/addons/idea/i18n/ru.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: idea
diff --git a/addons/mrp/i18n/bg.po b/addons/mrp/i18n/bg.po
index e1660a8aea4..c0bfc16aa98 100644
--- a/addons/mrp/i18n/bg.po
+++ b/addons/mrp/i18n/bg.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-01-15 20:33+0000\n"
-"Last-Translator: lem0na \n"
+"PO-Revision-Date: 2010-03-31 09:02+0000\n"
+"Last-Translator: Boris \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: 2010-03-30 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
@@ -1889,7 +1889,7 @@ msgstr ""
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_root
msgid "Manufacturing"
-msgstr ""
+msgstr "Производство"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action3
diff --git a/addons/mrp/i18n/fr.po b/addons/mrp/i18n/fr.po
index 34f1b5c332f..e55720e2c9e 100644
--- a/addons/mrp/i18n/fr.po
+++ b/addons/mrp/i18n/fr.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
diff --git a/addons/mrp/i18n/ru.po b/addons/mrp/i18n/ru.po
index dad225a5f3c..cf3fc9234cf 100644
--- a/addons/mrp/i18n/ru.po
+++ b/addons/mrp/i18n/ru.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
diff --git a/addons/project/i18n/bg.po b/addons/project/i18n/bg.po
index 8dbeca2e0be..4bae563a832 100644
--- a/addons/project/i18n/bg.po
+++ b/addons/project/i18n/bg.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2008-10-01 22:00+0000\n"
-"Last-Translator: Tsvetin Vasilev \n"
+"PO-Revision-Date: 2010-03-31 08:41+0000\n"
+"Last-Translator: Boris \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: 2010-03-30 03:51+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
@@ -559,7 +559,7 @@ msgstr "Невалиден XML за преглед на архитектурат
#: model:ir.ui.menu,name:project.menu_main
#: view:res.company:0
msgid "Project Management"
-msgstr "Управление на проекти"
+msgstr "Проекти"
#. module: project
#: field:project.project,effective_hours:0
diff --git a/addons/purchase/i18n/bg.po b/addons/purchase/i18n/bg.po
index c02a979c780..9f831b6f0cf 100644
--- a/addons/purchase/i18n/bg.po
+++ b/addons/purchase/i18n/bg.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-02-22 21:23+0000\n"
-"Last-Translator: lem0na \n"
+"PO-Revision-Date: 2010-03-31 08:57+0000\n"
+"Last-Translator: Boris \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: 2010-03-30 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
@@ -482,7 +482,7 @@ msgstr ""
#: model:ir.module.module,shortdesc:purchase.module_meta_information
#: model:ir.ui.menu,name:purchase.menu_purchase_root
msgid "Purchase Management"
-msgstr ""
+msgstr "Поръчки"
#. module: purchase
#: field:purchase.order,partner_ref:0
diff --git a/addons/sale/i18n/bg.po b/addons/sale/i18n/bg.po
index 05bbfa477e0..2b5cd16c4a9 100644
--- a/addons/sale/i18n/bg.po
+++ b/addons/sale/i18n/bg.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-26 09:01+0000\n"
-"Last-Translator: lem0na \n"
+"PO-Revision-Date: 2010-03-31 08:48+0000\n"
+"Last-Translator: Boris \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: 2010-03-30 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
@@ -599,7 +599,7 @@ msgstr "Опаковане"
#: model:ir.module.module,shortdesc:sale.module_meta_information
#: model:ir.ui.menu,name:sale.menu_sale_root
msgid "Sales Management"
-msgstr "Управление на продажби"
+msgstr "Продажби"
#. module: sale
#: field:sale.order.line,order_id:0
@@ -1174,7 +1174,7 @@ msgstr "Фактура за"
#: model:ir.actions.act_window,name:sale.action_order_tree_new
#: model:ir.ui.menu,name:sale.menu_action_order_tree_new
msgid "New Quotation"
-msgstr "Ново запитване"
+msgstr "Нова оферта"
#. module: sale
#: view:sale.order:0
diff --git a/addons/survey/i18n/de.po b/addons/survey/i18n/de.po
new file mode 100644
index 00000000000..558afcd8aea
--- /dev/null
+++ b/addons/survey/i18n/de.po
@@ -0,0 +1,697 @@
+# German translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-26 06:01+0000\n"
+"PO-Revision-Date: 2010-03-31 21:32+0000\n"
+"Last-Translator: Ferdinand @ ChriCar \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: 2010-04-01 03:41+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: survey
+#: model:ir.ui.menu,name:survey.menu_survey_form
+msgid "Surveys"
+msgstr "Umfragen"
+
+#. module: survey
+#: model:ir.actions.report.xml,name:survey.survey
+msgid "Survey Analysis Report"
+msgstr "Umfrage Analyse Report"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.act_survey_page_question
+#: model:ir.ui.menu,name:survey.menu_survey_question_form1
+msgid "Survey Questions"
+msgstr "Umfrage Fragen"
+
+#. module: survey
+#: view:survey:0
+#: view:survey.response:0
+msgid "Set to draft"
+msgstr "Setze auf Entwurf"
+
+#. module: survey
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Ungültiger Modellname in der Aktionsdefinition."
+
+#. module: survey
+#: field:survey.history,date:0
+msgid "Date started"
+msgstr "Startdatum"
+
+#. module: survey
+#: field:survey,history:0
+msgid "History Lines"
+msgstr "Historie"
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,init,mail:0
+msgid "Body"
+msgstr "Hauptteil"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_view_survey_name
+#: model:ir.ui.menu,name:survey.menu_run_survey_form
+msgid "Give Survey Response"
+msgstr "Gib Umfrage Antworten"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.act_survey_question
+msgid "All Questions"
+msgstr "Alle Fragen"
+
+#. module: survey
+#: field:survey,date_open:0
+msgid "Survey Open Date"
+msgstr "Umfrage Start Datum"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_name_wiz
+msgid "survey.name.wiz"
+msgstr "survey.name.wiz"
+
+#. module: survey
+#: view:survey:0
+msgid "Users Details"
+msgstr "Benutzer Details"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_view_survey_question_message
+#: model:ir.model,name:survey.model_survey_question
+#: view:survey:0
+#: view:survey.page:0
+#: view:survey.question:0
+msgid "Survey Question"
+msgstr "Umfrage Frage"
+
+#. module: survey
+#: help:survey,response_user:0
+msgid "Set to one if you require only one response per user"
+msgstr "Setze auf eins, wenn nur eine Antwort je Benutzer benötigt wird"
+
+#. module: survey
+#: field:survey.page,title:0
+msgid "Page Title"
+msgstr "Seitentitel"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_history
+msgid "Survey History"
+msgstr "Umfrage Geschichte"
+
+#. module: survey
+#: field:survey.response,comment:0
+#: field:survey.response.answer,comment:0
+msgid "Notes"
+msgstr "Bemerkung"
+
+#. module: survey
+#: field:survey.question,tot_resp:0
+msgid "Total Response"
+msgstr "Gesamt Antworten"
+
+#. module: survey
+#: view:survey.question.wiz:0
+msgid "Your Messages"
+msgstr "Ihre Mitteilung"
+
+#. module: survey
+#: selection:survey,state:0
+msgid "Cancelled"
+msgstr "Abgebrochen"
+
+#. module: survey
+#: field:survey.question,allow_comment:0
+msgid "Allow Comment Field"
+msgstr "Kommentarfeld erlauben"
+
+#. module: survey
+#: code:addons/survey/survey.py:0
+#, python-format
+msgid "Warning !"
+msgstr "Warnung!"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,init:0
+#: wizard_field:wizard.send.invitation,init,send_mail_existing:0
+msgid "Send reminder for existing user"
+msgstr "Setze Erinnerung für bestehend Benutzer"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_new_survey_question_form
+#: model:ir.ui.menu,name:survey.menu_new_survey_question_form1
+msgid "New Survey Question"
+msgstr "Neue Umfrage Frage"
+
+#. module: survey
+#: view:survey.response:0
+msgid "Skip"
+msgstr "Überspringe"
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,init,partner_ids:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,init,mail_subject:0
+#: wizard_field:wizard.send.invitation,init,mail_subject_existing:0
+msgid "Subject"
+msgstr "Betrifft"
+
+#. module: survey
+#: field:survey,max_response_limit:0
+msgid "Maximum Response Limit"
+msgstr "Maximale Anworten Grenze"
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,init,mail_from:0
+msgid "From"
+msgstr "Von"
+
+#. module: survey
+#: field:survey.response,response_type:0
+msgid "Response Type"
+msgstr "Antwort Typ"
+
+#. module: survey
+#: field:survey.name.wiz,transfer:0
+msgid "Page Transfer"
+msgstr "Seite Übertragung"
+
+#. module: survey
+#: field:survey.answer,question_id:0
+#: field:survey.page,question_ids:0
+#: field:survey.question,question:0
+#: field:survey.response,question_id:0
+msgid "Question"
+msgstr "Frage"
+
+#. module: survey
+#: wizard_button:wizard.send.invitation,init,send:0
+msgid "Send"
+msgstr "Absenden"
+
+#. module: survey
+#: field:survey.answer,response:0
+msgid "#Response"
+msgstr "# Antwort"
+
+#. module: survey
+#: field:survey.response,response_answer_ids:0
+msgid "Response Answer"
+msgstr "Antwort"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Response Summary"
+msgstr "Antwort Zusammenfassung"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,init:0
+#: wizard_field:wizard.send.invitation,init,send_mail:0
+msgid "Send mail for new user"
+msgstr "Mail an neuen Benutzer senden"
+
+#. module: survey
+#: code:addons/survey/survey.py:0
+#, python-format
+msgid "Error !"
+msgstr "Fehler !"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Skipped Question"
+msgstr "Übersprungene Frage"
+
+#. module: survey
+#: wizard_button:wizard.send.invitation,send,end:0
+msgid "_Ok"
+msgstr "_OK"
+
+#. module: survey
+#: selection:survey.response,response_type:0
+msgid "Link"
+msgstr "Link"
+
+#. module: survey
+#: model:ir.ui.menu,name:survey.menu_survey_config
+msgid "Configuration"
+msgstr "Konfiguration"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_question_wiz
+msgid "survey.question.wiz"
+msgstr "survey.question.wiz"
+
+#. module: survey
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Fehlerhafter XML Code für diese Ansicht!"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_response_answer
+#: view:survey.response.answer:0
+msgid "Survey Response Answer"
+msgstr ""
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Page :-"
+msgstr "Seite :-"
+
+#. module: survey
+#: field:survey,response_user:0
+msgid "Maximum Response per User"
+msgstr "Maximale Antworten je Benutzer"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Total Started Survey :-"
+msgstr "Gesamt gestartete Umfrage :-"
+
+#. module: survey
+#: view:survey.response:0
+msgid "Comment"
+msgstr "Kommentar"
+
+#. module: survey
+#: field:survey.response,date_modify:0
+msgid "Modify Date"
+msgstr "Datum ändern"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Answered Question"
+msgstr "Beantwortete Frage"
+
+#. module: survey
+#: code:addons/survey/survey.py:0
+#, python-format
+msgid "You can not give response for this survey more than %s times"
+msgstr "Sie können diese Umfrage nicht öfter als %s Mal beantworten"
+
+#. module: survey
+#: selection:survey.response,response_type:0
+msgid "Manually"
+msgstr "Manuell"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_survey_form1
+msgid "All Surveys"
+msgstr "Alle Umfragen"
+
+#. module: survey
+#: view:survey:0
+#: field:survey,users:0
+msgid "Users"
+msgstr "Benutzer"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,init:0
+msgid "Message"
+msgstr "Nachricht"
+
+#. module: survey
+#: field:survey.name.wiz,page_no:0
+msgid "Page Number"
+msgstr "Seitennummer"
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,send,note:0
+msgid "Log"
+msgstr "Protokoll"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_survey_question_form
+msgid "All Survey Questions"
+msgstr "Alle Umfrage Fragen"
+
+#. module: survey
+#: field:survey,date_close:0
+msgid "Survey Close Date"
+msgstr "Umfrage Enddatum"
+
+#. module: survey
+#: view:survey.name.wiz:0
+msgid "Start"
+msgstr "Start"
+
+#. module: survey
+#: selection:survey,state:0
+#: selection:survey.response,state:0
+msgid "Draft"
+msgstr "Entwurf"
+
+#. module: survey
+#: selection:survey,state:0
+msgid "Closed"
+msgstr "Abgeschlossen"
+
+#. module: survey
+#: view:survey:0
+#: field:survey.answer,answer:0
+#: view:survey.page:0
+#: view:survey.question:0
+#: field:survey.question,answer_choice_ids:0
+#: field:survey.response.answer,answer_id:0
+msgid "Answer"
+msgstr "Antwort"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_survey_page_form
+msgid "All Survey Pages"
+msgstr "Alle Umfrage Seiten"
+
+#. module: survey
+#: field:survey.name.wiz,store_ans:0
+msgid "Store Answer"
+msgstr "Speichere Antwort"
+
+#. module: survey
+#: field:survey,state:0
+#: field:survey.response,state:0
+msgid "Status"
+msgstr "Status"
+
+#. module: survey
+#: model:ir.module.module,shortdesc:survey.module_meta_information
+msgid "Survey Module"
+msgstr "Umfrage Modul"
+
+#. module: survey
+#: model:ir.module.module,description:survey.module_meta_information
+msgid ""
+"\n"
+" This module is used for surveing. It depends on the answers or reviews "
+"of some questions by different users.\n"
+" A survey may have multiple pages. Each page may contain multiple "
+"questions and each question may have multiple answers.\n"
+" Different users may give different answers of question and according to "
+"that survey is done. \n"
+" Partners are also sent mails with user name and password for the "
+"invitation of the survey\n"
+" "
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+#: view:survey.name.wiz:0
+msgid "Survey Details"
+msgstr "Umfrage Details"
+
+#. module: survey
+#: field:survey.question,is_require_answer:0
+msgid "Required Answer"
+msgstr "zwingend notwendige Anwort"
+
+#. module: survey
+#: field:survey.history,user_id:0
+#: field:survey.response,response_id:0
+msgid "User"
+msgstr "Benutzer"
+
+#. module: survey
+#: field:res.users,survey_id:0
+msgid "Groups"
+msgstr "Gruppen"
+
+#. module: survey
+#: view:survey:0
+#: view:survey.page:0
+#: view:survey.question:0
+#: field:survey.question,response_ids:0
+#: view:survey.response:0
+#: field:survey.response.answer,response_id:0
+msgid "Response"
+msgstr "Antwort"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_new_survey_form1
+#: model:ir.ui.menu,name:survey.menu_new_survey_form
+msgid "New Survey"
+msgstr "Neue Umfrage"
+
+#. module: survey
+#: model:ir.ui.menu,name:survey.main_menu_survey
+msgid "Survey Management"
+msgstr "Umfrage Management"
+
+#. module: survey
+#: selection:survey.response,state:0
+msgid "Skiped"
+msgstr "Übersprungen"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_answer
+#: view:survey.answer:0
+msgid "Survey Answer"
+msgstr "Umfrage Antwort"
+
+#. module: survey
+#: code:addons/survey/wizard/wizard_survey.py:0
+#, python-format
+msgid "Attention!"
+msgstr "Achtung!"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey
+#: view:res.users:0
+#: view:survey:0
+#: field:survey.history,survey_id:0
+#: view:survey.name.wiz:0
+#: field:survey.name.wiz,survey_id:0
+#: field:survey.page,survey_id:0
+#: field:survey.question,survey:0
+msgid "Survey"
+msgstr "Umfrage"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Total Completed Survey :-"
+msgstr "Gesamt abgeschlossene Umfrage :-"
+
+#. module: survey
+#: view:survey:0
+msgid "History"
+msgstr "Verlauf"
+
+#. module: survey
+#: view:survey:0
+#: view:survey.answer:0
+#: view:survey.page:0
+#: view:survey.question:0
+msgid "Seq"
+msgstr "Seq"
+
+#. module: survey
+#: field:survey,tot_comp_survey:0
+msgid "Total Completed Survey"
+msgstr "Gesamt abgeschlossene Umfrage"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Response Percentage"
+msgstr "Antwort Prozente"
+
+#. module: survey
+#: field:survey.question.wiz,name:0
+msgid "Number"
+msgstr "Anzahl"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Survey Title :-"
+msgstr "Umfrage Titel"
+
+#. module: survey
+#: view:survey.response:0
+msgid "Done"
+msgstr "Fertig"
+
+#. module: survey
+#: code:addons/survey/survey.py:0
+#, python-format
+msgid "'\" + que_rec[0]['question'] + \"' This question requires an answer."
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+#: view:survey.name.wiz:0
+#: wizard_button:wizard.send.invitation,init,end:0
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#. module: survey
+#: view:survey:0
+msgid "Close"
+msgstr "Schließen"
+
+#. module: survey
+#: view:survey:0
+#: selection:survey,state:0
+msgid "Open"
+msgstr "Öffnen"
+
+#. module: survey
+#: field:survey,tot_start_survey:0
+msgid "Total Started Survey"
+msgstr "Gesamt gestartete Umfrage"
+
+#. module: survey
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Der Objekt Name muss mit einem x_ starten und darf keine Sonderzeichen "
+"beinhalten"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_response
+#: view:survey.response:0
+msgid "Survey Response"
+msgstr "Umfrage Antwort"
+
+#. module: survey
+#: field:survey.answer,average:0
+msgid "#Avg"
+msgstr "# Mittel"
+
+#. module: survey
+#: field:survey,responsible_id:0
+msgid "Responsible"
+msgstr "Verantwortlich"
+
+#. module: survey
+#: selection:survey.response,state:0
+msgid "Answered"
+msgstr "Beantwortet"
+
+#. module: survey
+#: view:survey:0
+msgid "Other"
+msgstr "Andere"
+
+#. module: survey
+#: model:ir.actions.wizard,name:survey.wizard_send_invitation
+#: wizard_view:wizard.send.invitation,init:0
+msgid "Send Invitation"
+msgstr "Einladung verschicken"
+
+#. module: survey
+#: field:survey,title:0
+msgid "Survey Title"
+msgstr "Umfragetitel"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "%"
+msgstr "%"
+
+#. module: survey
+#: view:survey:0
+#: field:survey,note:0
+#: field:survey.name.wiz,note:0
+#: view:survey.page:0
+#: field:survey.page,note:0
+#: view:survey.response:0
+msgid "Description"
+msgstr "Beschreibung"
+
+#. module: survey
+#: view:survey.name.wiz:0
+msgid "Select Survey"
+msgstr "Auswahl Umfrage"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_new_survey_page_form
+#: model:ir.ui.menu,name:survey.menu_new_survey_page_form1
+msgid "New Survey Page"
+msgstr "Neue Umfrage Seite"
+
+#. module: survey
+#: view:survey:0
+#: view:survey.page:0
+#: field:survey.question,page_id:0
+msgid "Survey Page"
+msgstr "Umfrage Seite"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.act_survey_answer
+msgid "Survey Answers"
+msgstr "Umfrage Antworten"
+
+#. module: survey
+#: view:survey.page:0
+msgid "#Questions"
+msgstr "# Fragen"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Que:"
+msgstr ""
+
+#. module: survey
+#: field:survey,page_ids:0
+msgid "Page"
+msgstr "Seite"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,send:0
+msgid "User creation"
+msgstr "Benutzer anlegen"
+
+#. module: survey
+#: field:survey.answer,sequence:0
+#: field:survey.page,sequence:0
+#: field:survey.question,sequence:0
+msgid "Sequence"
+msgstr "Sequenz"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,send:0
+msgid "Results :"
+msgstr "Ergebnisse:"
+
+#. module: survey
+#: code:addons/survey/wizard/wizard_survey.py:0
+#, python-format
+msgid "%sSurvey is not in open state"
+msgstr "%s Umfrage ist nicht im Status Offen"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,init:0
+msgid "Select Partner"
+msgstr "Wähle Partner"
+
+#. module: survey
+#: field:survey.response,date_create:0
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.act_survey_pages
+#: model:ir.model,name:survey.model_survey_page
+#: model:ir.ui.menu,name:survey.menu_survey_page_form1
+msgid "Survey Pages"
+msgstr "Umfrage Seiten"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Response Count"
+msgstr "Umfrage Anzahl"
+
+#. module: survey
+#: field:survey.name.wiz,page:0
+msgid "Page Position"
+msgstr "Seitenposition"