From b0eb876160935cede1c9b4ab84ea988f63bbdc55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 28 Feb 2013 14:26:25 +0100 Subject: [PATCH 001/124] [FIX] mail: first try to fix attachment duplication. bzr revid: tde@openerp.com-20130228132625-8yjggruhrvbvep21 --- addons/email_template/email_template.py | 34 +++++++++++-------- .../wizard/mail_compose_message.py | 5 ++- addons/mail/wizard/mail_compose_message.py | 5 ++- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 743384059b4..48fdc7edcd1 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -292,8 +292,7 @@ class email_template(osv.osv): 'copyvalue': self.build_expression(field_value.name, False, null_value or False), 'null_value': null_value or False }) - return {'value':result} - + return {'value': result} def generate_email(self, cr, uid, template_id, res_id, context=None): """Generates an email from the template for given (model, res_id) pair. @@ -346,11 +345,13 @@ class email_template(osv.osv): report_name += ext attachments.append((report_name, result)) + attachment_ids = [] # Add template attachments for attach in template.attachment_ids: - attachments.append((attach.datas_fname, attach.datas)) + attachment_ids.append(attach.id) values['attachments'] = attachments + values['attachment_ids'] = attachments return values def send_mail(self, cr, uid, template_id, res_id, force_send=False, context=None): @@ -365,28 +366,33 @@ class email_template(osv.osv): was executed for this message only. :returns: id of the mail.message that was created """ - if context is None: context = {} + if context is None: + context = {} mail_mail = self.pool.get('mail.mail') ir_attachment = self.pool.get('ir.attachment') + + # create a mail_mail based on values, without attachments values = self.generate_email(cr, uid, template_id, res_id, context=context) - assert 'email_from' in values, 'email_from is missing or empty after template rendering, send_mail() cannot proceed' - attachments = values.pop('attachments') or {} - del values['email_recipients'] # TODO Properly use them. - msg_id = mail_mail.create(cr, uid, values, context=context) - # link attachments - attachment_ids = [] - for fname, fcontent in attachments.iteritems(): + assert values.get('email_from'), 'email_from is missing or empty after template rendering, send_mail() cannot proceed' + del values['email_recipients'] # TODO Properly use them. + + # manage attachments + attachment_ids = values.pop('attachment_ids', []) + attachments = values.pop('attachments', []) + for fname, fcontent in attachments: attachment_data = { 'name': fname, 'datas_fname': fname, 'datas': fcontent, - 'res_model': mail_mail._name, - 'res_id': msg_id, + 'res_model': values.get('model', False), + 'res_id': values.get('res_id', False), } context.pop('default_type', None) attachment_ids.append(ir_attachment.create(cr, uid, attachment_data, context=context)) if attachment_ids: - mail_mail.write(cr, uid, msg_id, {'attachment_ids': [(6, 0, attachment_ids)]}, context=context) + values['attachment_ids'] = [(6, 0, attachment_ids)] + + msg_id = mail_mail.create(cr, uid, values, context=context) if force_send: mail_mail.send(cr, uid, [msg_id], context=context) return msg_id diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index b39ed4e5639..397f913e912 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -71,7 +71,6 @@ class mail_compose_message(osv.TransientModel): # FIXME odo: change the mail generation to avoid attachment duplication values = self.generate_email_for_composer(cr, uid, template_id, res_id, context=context) # transform attachments into attachment_ids - values['attachment_ids'] = [] ir_attach_obj = self.pool.get('ir.attachment') for attach_fname, attach_datas in values.pop('attachments', []): data_attach = { @@ -80,7 +79,7 @@ class mail_compose_message(osv.TransientModel): 'datas_fname': attach_fname, 'res_model': model, 'res_id': res_id, - 'type': 'binary', # override default_type from context, possibly meant for another model! + 'type': 'binary', # override default_type from context, possibly meant for another model! } values['attachment_ids'].append(ir_attach_obj.create(cr, uid, data_attach, context=context)) else: @@ -122,7 +121,7 @@ class mail_compose_message(osv.TransientModel): mail.compose.message, transform email_cc and email_to into partner_ids """ template_values = self.pool.get('email.template').generate_email(cr, uid, template_id, res_id, context=context) # filter template values - fields = ['body_html', 'subject', 'email_to', 'email_recipients', 'email_cc', 'attachments'] + fields = ['body_html', 'subject', 'email_to', 'email_recipients', 'email_cc', 'attachment_ids', 'attachments'] values = dict((field, template_values[field]) for field in fields if template_values.get(field)) values['body'] = values.pop('body_html', '') # transform email_to, email_cc into partner_ids diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index ec0c2a8de06..5741aacb449 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -205,13 +205,16 @@ class mail_compose_message(osv.TransientModel): 'body': wizard.body, 'parent_id': wizard.parent_id and wizard.parent_id.id, 'partner_ids': [(4, partner.id) for partner in wizard.partner_ids], - 'attachments': [(attach.datas_fname or attach.name, base64.b64decode(attach.datas)) for attach in wizard.attachment_ids], + 'attachments': [], + 'attachment_ids': [(4, attach.id) for attach in wizard.attachment_ids], } # mass mailing: render and override default values if mass_mail_mode and wizard.model: email_dict = self.render_message(cr, uid, wizard, res_id, context=context) new_partner_ids = email_dict.pop('partner_ids', []) post_values['partner_ids'] += [(4, partner_id) for partner_id in new_partner_ids] + new_attachment_ids = email_dict.pop('attachment_ids', []) + post_values['attachments'] += new_attachment_ids new_attachments = email_dict.pop('attachments', []) post_values['attachments'] += new_attachments post_values.update(email_dict) From afbb5816e3e43bbb8f4f590c5686ccc708be2fa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 28 Feb 2013 14:36:33 +0100 Subject: [PATCH 002/124] [FIX] email_template: fixed previous patch, wrong var name. bzr revid: tde@openerp.com-20130228133633-1ur9jbqw021yoork --- addons/email_template/email_template.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 48fdc7edcd1..64c09d1eaff 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -351,7 +351,7 @@ class email_template(osv.osv): attachment_ids.append(attach.id) values['attachments'] = attachments - values['attachment_ids'] = attachments + values['attachment_ids'] = attachment_ids return values def send_mail(self, cr, uid, template_id, res_id, force_send=False, context=None): From cca08468043c17025cfbd6fd771227cc67ee93a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 28 Feb 2013 14:49:01 +0100 Subject: [PATCH 003/124] [FIX] email_template: fixed attachments management in send_mail. bzr revid: tde@openerp.com-20130228134901-ibtnt2zl4yne7o4n --- addons/email_template/email_template.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 64c09d1eaff..1856479ebbe 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -379,11 +379,11 @@ class email_template(osv.osv): # manage attachments attachment_ids = values.pop('attachment_ids', []) attachments = values.pop('attachments', []) - for fname, fcontent in attachments: + for attachment in attachments: attachment_data = { - 'name': fname, - 'datas_fname': fname, - 'datas': fcontent, + 'name': attachment[0], + 'datas_fname': attachment[0], + 'datas': attachment[1], 'res_model': values.get('model', False), 'res_id': values.get('res_id', False), } From d6fcee5a4fb96c410f2d6580f7a239b2080e864d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 28 Feb 2013 15:46:30 +0100 Subject: [PATCH 004/124] [FIX] email-template: attachments should have correct model and res_id from template. bzr revid: tde@openerp.com-20130228144630-7x6kh5jcn4w557do --- addons/email_template/email_template.py | 5 +++-- addons/email_template/tests/test_mail.py | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 1856479ebbe..8045cf62204 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -375,6 +375,7 @@ class email_template(osv.osv): values = self.generate_email(cr, uid, template_id, res_id, context=context) assert values.get('email_from'), 'email_from is missing or empty after template rendering, send_mail() cannot proceed' del values['email_recipients'] # TODO Properly use them. + template = self.get_email_template(cr, uid, template_id, res_id, context=context) # manage attachments attachment_ids = values.pop('attachment_ids', []) @@ -384,8 +385,8 @@ class email_template(osv.osv): 'name': attachment[0], 'datas_fname': attachment[0], 'datas': attachment[1], - 'res_model': values.get('model', False), - 'res_id': values.get('res_id', False), + 'res_model': template.model, + 'res_id': res_id, } context.pop('default_type', None) attachment_ids.append(ir_attachment.create(cr, uid, attachment_data, context=context)) diff --git a/addons/email_template/tests/test_mail.py b/addons/email_template/tests/test_mail.py index b87b6d63000..0da73dc0f33 100644 --- a/addons/email_template/tests/test_mail.py +++ b/addons/email_template/tests/test_mail.py @@ -48,8 +48,8 @@ class test_message_compose(TestMailBase): _body_html1 = 'Fans of Pigs, unite !' _body_html2 = 'I am angry !' _attachments = [ - {'name': 'First', 'datas_fname': 'first.txt', 'datas': base64.b64encode('My first attachment')}, - {'name': 'Second', 'datas_fname': 'second.txt', 'datas': base64.b64encode('My second attachment')} + {'name': 'First', 'datas_fname': 'first.txt', 'datas': base64.b64encode('My first attachment'), 'res_model': 'dummy.model'}, + {'name': 'Second', 'datas_fname': 'second.txt', 'datas': base64.b64encode('My second attachment'), 'res_model': 'dummy.model'} ] _attachments_test = [('first.txt', 'My first attachment'), ('second.txt', 'My second attachment')] @@ -118,7 +118,7 @@ class test_message_compose(TestMailBase): # Test: mail.compose.message: attachments # Test: mail.message: attachments for attach in compose.attachment_ids: - self.assertEqual(attach.res_model, 'mail.group', 'mail.message attachment res_model incorrect') + self.assertEqual(attach.res_model, 'dummy.model', 'mail.message attachment res_model through templat was overriden') self.assertEqual(attach.res_id, self.group_pigs_id, 'mail.message attachment res_id incorrect') self.assertIn((attach.name, base64.b64decode(attach.datas)), _attachments_test, 'mail.message attachment name / data incorrect') From aa865c8b61d53a1c9b402f616f419ad36c38bc7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 28 Feb 2013 15:55:13 +0100 Subject: [PATCH 005/124] [FIX] Still fixing attachments through templates. bzr revid: tde@openerp.com-20130228145513-6g30ujr3cm0j8b3u --- addons/email_template/tests/test_mail.py | 8 ++++---- addons/mail/wizard/mail_compose_message.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/email_template/tests/test_mail.py b/addons/email_template/tests/test_mail.py index 0da73dc0f33..39b1023bc64 100644 --- a/addons/email_template/tests/test_mail.py +++ b/addons/email_template/tests/test_mail.py @@ -48,8 +48,8 @@ class test_message_compose(TestMailBase): _body_html1 = 'Fans of Pigs, unite !' _body_html2 = 'I am angry !' _attachments = [ - {'name': 'First', 'datas_fname': 'first.txt', 'datas': base64.b64encode('My first attachment'), 'res_model': 'dummy.model'}, - {'name': 'Second', 'datas_fname': 'second.txt', 'datas': base64.b64encode('My second attachment'), 'res_model': 'dummy.model'} + {'name': 'First', 'datas_fname': 'first.txt', 'datas': base64.b64encode('My first attachment'), 'res_model': 'mail.group', 'res_id': self.group_pigs_id}, + {'name': 'Second', 'datas_fname': 'second.txt', 'datas': base64.b64encode('My second attachment'), 'res_model': 'mail.group', 'res_id': self.group_pigs_id} ] _attachments_test = [('first.txt', 'My first attachment'), ('second.txt', 'My second attachment')] @@ -118,9 +118,9 @@ class test_message_compose(TestMailBase): # Test: mail.compose.message: attachments # Test: mail.message: attachments for attach in compose.attachment_ids: - self.assertEqual(attach.res_model, 'dummy.model', 'mail.message attachment res_model through templat was overriden') + self.assertEqual(attach.res_model, 'mail.group', 'mail.message attachment res_model through templat was overriden') self.assertEqual(attach.res_id, self.group_pigs_id, 'mail.message attachment res_id incorrect') - self.assertIn((attach.name, base64.b64decode(attach.datas)), _attachments_test, + self.assertIn((attach.datas_fname, base64.b64decode(attach.datas)), _attachments_test, 'mail.message attachment name / data incorrect') # ---------------------------------------- diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 5741aacb449..6389246bd7b 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -214,7 +214,7 @@ class mail_compose_message(osv.TransientModel): new_partner_ids = email_dict.pop('partner_ids', []) post_values['partner_ids'] += [(4, partner_id) for partner_id in new_partner_ids] new_attachment_ids = email_dict.pop('attachment_ids', []) - post_values['attachments'] += new_attachment_ids + post_values['attachment_ids'] += [(4, attach_id) for attach_id in new_attachment_ids] new_attachments = email_dict.pop('attachments', []) post_values['attachments'] += new_attachments post_values.update(email_dict) From 46a5b63caddf857f38017ed4fb618f73a95a12a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 1 Mar 2013 15:48:27 +0100 Subject: [PATCH 006/124] [IMP] email_template: better management of attachments. In mass mail, we want attachments to be duplicated due to the ownership concept of attachments in OpenERP. bzr revid: tde@openerp.com-20130301144827-762362bgng5m4nye --- addons/email_template/tests/test_mail.py | 18 ++++++++--- .../wizard/mail_compose_message.py | 19 ++++++++++++ addons/mail/wizard/mail_compose_message.py | 31 +++++++++++-------- 3 files changed, 50 insertions(+), 18 deletions(-) diff --git a/addons/email_template/tests/test_mail.py b/addons/email_template/tests/test_mail.py index 39b1023bc64..9e6ed15f904 100644 --- a/addons/email_template/tests/test_mail.py +++ b/addons/email_template/tests/test_mail.py @@ -48,8 +48,8 @@ class test_message_compose(TestMailBase): _body_html1 = 'Fans of Pigs, unite !' _body_html2 = 'I am angry !' _attachments = [ - {'name': 'First', 'datas_fname': 'first.txt', 'datas': base64.b64encode('My first attachment'), 'res_model': 'mail.group', 'res_id': self.group_pigs_id}, - {'name': 'Second', 'datas_fname': 'second.txt', 'datas': base64.b64encode('My second attachment'), 'res_model': 'mail.group', 'res_id': self.group_pigs_id} + {'name': 'First', 'datas_fname': 'first.txt', 'datas': base64.b64encode('My first attachment')}, + {'name': 'Second', 'datas_fname': 'second.txt', 'datas': base64.b64encode('My second attachment')}, ] _attachments_test = [('first.txt', 'My first attachment'), ('second.txt', 'My second attachment')] @@ -116,10 +116,18 @@ class test_message_compose(TestMailBase): self.assertIn(_body_html1, compose.body, 'mail.compose.message body incorrect') self.assertEqual(set(message_pids), set(partner_ids), 'mail.compose.message partner_ids incorrect') # Test: mail.compose.message: attachments - # Test: mail.message: attachments for attach in compose.attachment_ids: - self.assertEqual(attach.res_model, 'mail.group', 'mail.message attachment res_model through templat was overriden') - self.assertEqual(attach.res_id, self.group_pigs_id, 'mail.message attachment res_id incorrect') + self.assertEqual(attach.res_model, False, 'mail.compose.message attachment res_model through templat was overriden') + self.assertEqual(attach.res_id, 0, 'mail.compose.message attachment res_id incorrect') + self.assertIn((attach.datas_fname, base64.b64decode(attach.datas)), _attachments_test, + 'mail.message attachment name / data incorrect') + # Test: mail.message: attachments + mail_compose.send_mail(cr, uid, [compose_id]) + group_pigs.refresh() + message_pigs = group_pigs.message_ids[0] + for attach in message_pigs.attachment_ids: + self.assertEqual(attach.res_model, 'mail.group', 'mail.compose.message attachment res_model through templat was overriden') + self.assertEqual(attach.res_id, self.group_pigs_id, 'mail.compose.message attachment res_id incorrect') self.assertIn((attach.datas_fname, base64.b64decode(attach.datas)), _attachments_test, 'mail.message attachment name / data incorrect') diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index 397f913e912..5631b927f46 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -61,6 +61,25 @@ class mail_compose_message(osv.TransientModel): 'template_id': fields.selection(_get_templates, 'Template', size=-1), } + def send_mail(self, cr, uid, ids, context=None): + """ Override of send_mail to duplicate attachments linked to the email.template. + Indeed, basic mail.compose.message wizard duplicates attachments in mass + mailing mode. But in 'single post' mode, attachments of an email template + also have to be duplicated to avoid changing their ownership. """ + for wizard in self.browse(cr, uid, ids, context=context): + if not wizard.attachment_ids or wizard.composition_mode == 'mass_mail' or not wizard.template_id: + continue + active_model_pool_name = wizard.model if wizard.model else 'mail.thread' + template = self.pool.get('email.template').browse(cr, uid, wizard.template_id, context=context) + new_attachment_ids = [] + for attachment in wizard.attachment_ids: + if attachment in template.attachment_ids: + new_attachment_ids.append(self.pool.get('ir.attachment').copy(cr, uid, attachment.id, {'res_model': active_model_pool_name, 'res_id': wizard.res_id}, context=context)) + else: + new_attachment_ids.append(attachment.id) + self.write(cr, uid, wizard.id, {'attachment_ids': [(6, 0, new_attachment_ids)]}, context=context) + return super(mail_compose_message, self).send_mail(cr, uid, ids, context=context) + def onchange_template_id(self, cr, uid, ids, template_id, composition_mode, model, res_id, context=None): """ - mass_mailing: we cannot render, so return the template values - normal mode: return rendered values """ diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index bb084405c29..0ec5242937e 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -190,41 +190,46 @@ class mail_compose_message(osv.TransientModel): email(s), rendering any template patterns on the fly if needed. """ if context is None: context = {} + ir_attachment_obj = self.pool.get('ir.attachment') active_ids = context.get('active_ids') - is_log = context.get('mail_compose_log', False) for wizard in self.browse(cr, uid, ids, context=context): mass_mail_mode = wizard.composition_mode == 'mass_mail' - active_model_pool = self.pool.get(wizard.model if wizard.model else 'mail.thread') + active_model_pool_name = wizard.model if wizard.model else 'mail.thread' + active_model_pool = self.pool.get(active_model_pool_name) # wizard works in batch mode: [res_id] or active_ids res_ids = active_ids if mass_mail_mode and wizard.model and active_ids else [wizard.res_id] for res_id in res_ids: - # default values, according to the wizard options + # mail.message values, according to the wizard options post_values = { 'subject': wizard.subject, 'body': wizard.body, 'parent_id': wizard.parent_id and wizard.parent_id.id, 'partner_ids': [partner.id for partner in wizard.partner_ids], - 'attachments': [], 'attachment_ids': [attach.id for attach in wizard.attachment_ids], } # mass mailing: render and override default values if mass_mail_mode and wizard.model: email_dict = self.render_message(cr, uid, wizard, res_id, context=context) - new_partner_ids = email_dict.pop('partner_ids', []) - post_values['partner_ids'] += new_partner_ids - new_attachment_ids = email_dict.pop('attachment_ids', []) - post_values['attachment_ids'] += new_attachment_ids - new_attachments = email_dict.pop('attachments', []) - post_values['attachments'] += new_attachments + post_values['partner_ids'] += email_dict.pop('partner_ids', []) + post_values['attachments'] = email_dict.pop('attachments', []) + post_values['attachment_ids'] += email_dict.pop('attachment_ids', []) + # we must duplicate attachments, as each document will have its own copy of the attachment + attachment_ids = [] + for attach_id in post_values.pop('attachment_ids'): + new_attach_id = ir_attachment_obj.copy(cr, uid, attach_id, {'res_model': active_model_pool_name, 'res_id': res_id}, context=context) + attachment_ids.append(new_attach_id) + post_values['attachment_ids'] = attachment_ids post_values.update(email_dict) # post the message - subtype = 'mail.mt_comment' - if is_log: - subtype = False + subtype = 'mail.mt_comment' if not context.get('mail_compose_log', False) else False active_model_pool.message_post(cr, uid, [res_id], type='comment', subtype=subtype, context=context, **post_values) + # mass mailing: delete mail.compose.message attachments, added by the user and that have been duplicated + if mass_mail_mode and wizard.attachment_ids: + wizard.attachment_ids.unlink() + return {'type': 'ir.actions.act_window_close'} def render_message(self, cr, uid, wizard, res_id, context=None): From c7d8842b0285760216d9d44cf3110f7344c3c57e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 4 Mar 2013 10:22:48 +0100 Subject: [PATCH 007/124] [IMP] mail, email_template: fixed attachment management (template does not override provided attachments anymore; fixed possible unexisting attachment ids key; fixed some duplication. bzr revid: tde@openerp.com-20130304092248-mqadzmrhgdu58j8y --- .../wizard/mail_compose_message.py | 18 +++++++++++------- addons/mail/wizard/mail_compose_message.py | 11 +++++++---- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index 5631b927f46..1221cfde34e 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -84,20 +84,21 @@ class mail_compose_message(osv.TransientModel): """ - mass_mailing: we cannot render, so return the template values - normal mode: return rendered values """ if template_id and composition_mode == 'mass_mail': - values = self.pool.get('email.template').read(cr, uid, template_id, ['subject', 'body_html'], context) + values = self.pool.get('email.template').read(cr, uid, template_id, ['subject', 'body_html', 'attachment_ids'], context) values.pop('id') elif template_id: # FIXME odo: change the mail generation to avoid attachment duplication values = self.generate_email_for_composer(cr, uid, template_id, res_id, context=context) - # transform attachments into attachment_ids + # transform attachments into attachment_ids; not attached to the document because this will + # be done further in the posting process, allowing to clean database if email not send ir_attach_obj = self.pool.get('ir.attachment') for attach_fname, attach_datas in values.pop('attachments', []): data_attach = { 'name': attach_fname, 'datas': attach_datas, 'datas_fname': attach_fname, - 'res_model': model, - 'res_id': res_id, + 'res_model': 'mail.compose.message', + 'res_id': 0, 'type': 'binary', # override default_type from context, possibly meant for another model! } values['attachment_ids'].append(ir_attach_obj.create(cr, uid, data_attach, context=context)) @@ -140,12 +141,15 @@ class mail_compose_message(osv.TransientModel): mail.compose.message, transform email_cc and email_to into partner_ids """ template_values = self.pool.get('email.template').generate_email(cr, uid, template_id, res_id, context=context) # filter template values + values = { + 'attachment_ids': [], + 'partner_ids': [], + } fields = ['body_html', 'subject', 'email_to', 'email_recipients', 'email_cc', 'attachment_ids', 'attachments'] - values = dict((field, template_values[field]) for field in fields if template_values.get(field)) + values.update(dict((field, template_values[field]) for field in fields if template_values.get(field))) values['body'] = values.pop('body_html', '') - # transform email_to, email_cc into partner_ids - values['partner_ids'] = [] + # transform email_to, email_cc into partner_ids mails = tools.email_split(values.pop('email_to', '') + ' ' + values.pop('email_cc', '')) for mail in mails: partner_id = self.pool.get('res.partner').find_or_create(cr, uid, mail, context=context) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 0ec5242937e..f70e3624357 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -214,8 +214,10 @@ class mail_compose_message(osv.TransientModel): email_dict = self.render_message(cr, uid, wizard, res_id, context=context) post_values['partner_ids'] += email_dict.pop('partner_ids', []) post_values['attachments'] = email_dict.pop('attachments', []) - post_values['attachment_ids'] += email_dict.pop('attachment_ids', []) - # we must duplicate attachments, as each document will have its own copy of the attachment + # manage attachments : + # - do not re-add attachments from template already displayed + # - duplicate template attachments because of ownership concept in OpenERP + post_values['attachment_ids'] += filter(lambda item: item not in post_values['attachment_ids'], email_dict.pop('attachment_ids', [])) attachment_ids = [] for attach_id in post_values.pop('attachment_ids'): new_attach_id = ir_attachment_obj.copy(cr, uid, attach_id, {'res_model': active_model_pool_name, 'res_id': res_id}, context=context) @@ -227,8 +229,8 @@ class mail_compose_message(osv.TransientModel): active_model_pool.message_post(cr, uid, [res_id], type='comment', subtype=subtype, context=context, **post_values) # mass mailing: delete mail.compose.message attachments, added by the user and that have been duplicated - if mass_mail_mode and wizard.attachment_ids: - wizard.attachment_ids.unlink() + if wizard.attachment_ids: + ir_attachment_obj.unlink(cr, uid, [attach.id for attach in wizard.attachment_ids if attach.res_model == self._name], context=context) return {'type': 'ir.actions.act_window_close'} @@ -239,6 +241,7 @@ class mail_compose_message(osv.TransientModel): return { 'subject': self.render_template(cr, uid, wizard.subject, wizard.model, res_id, context), 'body': self.render_template(cr, uid, wizard.body, wizard.model, res_id, context), + 'attachment_ids': [attach.id for attach in wizard.attachment_ids], } def render_template(self, cr, uid, template, model, res_id, context=None): From f789005c9a6c26322565a1af7cc4e57a60eab9f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 6 Mar 2013 14:44:10 +0100 Subject: [PATCH 008/124] [REV] email_template: send_mail: back to 2-steps creation, because attachments have to be garbage-collected, and not attached to the document. bzr revid: tde@openerp.com-20130306134410-mw9hau809qh1nbqh --- addons/email_template/email_template.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 8045cf62204..bcee1da9783 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -375,25 +375,25 @@ class email_template(osv.osv): values = self.generate_email(cr, uid, template_id, res_id, context=context) assert values.get('email_from'), 'email_from is missing or empty after template rendering, send_mail() cannot proceed' del values['email_recipients'] # TODO Properly use them. - template = self.get_email_template(cr, uid, template_id, res_id, context=context) - - # manage attachments attachment_ids = values.pop('attachment_ids', []) attachments = values.pop('attachments', []) + msg_id = mail_mail.create(cr, uid, values, context=context) + + # manage attachments for attachment in attachments: attachment_data = { 'name': attachment[0], 'datas_fname': attachment[0], 'datas': attachment[1], - 'res_model': template.model, - 'res_id': res_id, + 'res_model': 'mail.message', + 'res_id': msg_id, } context.pop('default_type', None) attachment_ids.append(ir_attachment.create(cr, uid, attachment_data, context=context)) if attachment_ids: values['attachment_ids'] = [(6, 0, attachment_ids)] + mail_mail.write(cr, uid, msg_id, {'attachment_ids': [(6, 0, attachment_ids)]}, context=context) - msg_id = mail_mail.create(cr, uid, values, context=context) if force_send: mail_mail.send(cr, uid, [msg_id], context=context) return msg_id From d794920d431d75e912a7654d1daf5cb16a54e6db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 6 Mar 2013 14:44:37 +0100 Subject: [PATCH 009/124] [IMP] mail.compose.message: remove attachment_ids from render_message as it should not be there; assume wizard.attachment_ids is always correct. bzr revid: tde@openerp.com-20130306134437-ywoi1p1nr2e1no97 --- addons/mail/wizard/mail_compose_message.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index f70e3624357..c946a71de9f 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -19,10 +19,8 @@ # ############################################################################## -import base64 import re from openerp import tools - from openerp.osv import osv from openerp.osv import fields from openerp.tools.safe_eval import safe_eval as eval @@ -214,10 +212,6 @@ class mail_compose_message(osv.TransientModel): email_dict = self.render_message(cr, uid, wizard, res_id, context=context) post_values['partner_ids'] += email_dict.pop('partner_ids', []) post_values['attachments'] = email_dict.pop('attachments', []) - # manage attachments : - # - do not re-add attachments from template already displayed - # - duplicate template attachments because of ownership concept in OpenERP - post_values['attachment_ids'] += filter(lambda item: item not in post_values['attachment_ids'], email_dict.pop('attachment_ids', [])) attachment_ids = [] for attach_id in post_values.pop('attachment_ids'): new_attach_id = ir_attachment_obj.copy(cr, uid, attach_id, {'res_model': active_model_pool_name, 'res_id': res_id}, context=context) @@ -241,7 +235,6 @@ class mail_compose_message(osv.TransientModel): return { 'subject': self.render_template(cr, uid, wizard.subject, wizard.model, res_id, context), 'body': self.render_template(cr, uid, wizard.body, wizard.model, res_id, context), - 'attachment_ids': [attach.id for attach in wizard.attachment_ids], } def render_template(self, cr, uid, template, model, res_id, context=None): From 4665d10f0550beabc3c1b6027436641749761a14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 6 Mar 2013 14:46:12 +0100 Subject: [PATCH 010/124] [IMP] mail, email_template: better consistence of mail.compose.message mdoel ans 0 or res_id res_id for attachments on composer; generate_email_for_composer should avoid returning keys for void values. bzr revid: tde@openerp.com-20130306134612-yazwi6cgwvw8suyw --- .../email_template/wizard/mail_compose_message.py | 14 ++++++-------- addons/mail/mail_message.py | 2 +- addons/mail/mail_thread.py | 1 - 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index 1221cfde34e..151cc3384ac 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -69,12 +69,11 @@ class mail_compose_message(osv.TransientModel): for wizard in self.browse(cr, uid, ids, context=context): if not wizard.attachment_ids or wizard.composition_mode == 'mass_mail' or not wizard.template_id: continue - active_model_pool_name = wizard.model if wizard.model else 'mail.thread' template = self.pool.get('email.template').browse(cr, uid, wizard.template_id, context=context) new_attachment_ids = [] for attachment in wizard.attachment_ids: if attachment in template.attachment_ids: - new_attachment_ids.append(self.pool.get('ir.attachment').copy(cr, uid, attachment.id, {'res_model': active_model_pool_name, 'res_id': wizard.res_id}, context=context)) + new_attachment_ids.append(self.pool.get('ir.attachment').copy(cr, uid, attachment.id, {'res_model': 'mail.compose.message', 'res_id': wizard.id}, context=context)) else: new_attachment_ids.append(attachment.id) self.write(cr, uid, wizard.id, {'attachment_ids': [(6, 0, new_attachment_ids)]}, context=context) @@ -87,10 +86,10 @@ class mail_compose_message(osv.TransientModel): values = self.pool.get('email.template').read(cr, uid, template_id, ['subject', 'body_html', 'attachment_ids'], context) values.pop('id') elif template_id: - # FIXME odo: change the mail generation to avoid attachment duplication values = self.generate_email_for_composer(cr, uid, template_id, res_id, context=context) # transform attachments into attachment_ids; not attached to the document because this will # be done further in the posting process, allowing to clean database if email not send + values['attachment_ids'] = values.pop('attachment_ids', []) ir_attach_obj = self.pool.get('ir.attachment') for attach_fname, attach_datas in values.pop('attachments', []): data_attach = { @@ -141,15 +140,12 @@ class mail_compose_message(osv.TransientModel): mail.compose.message, transform email_cc and email_to into partner_ids """ template_values = self.pool.get('email.template').generate_email(cr, uid, template_id, res_id, context=context) # filter template values - values = { - 'attachment_ids': [], - 'partner_ids': [], - } fields = ['body_html', 'subject', 'email_to', 'email_recipients', 'email_cc', 'attachment_ids', 'attachments'] - values.update(dict((field, template_values[field]) for field in fields if template_values.get(field))) + values = dict((field, template_values[field]) for field in fields if template_values.get(field)) values['body'] = values.pop('body_html', '') # transform email_to, email_cc into partner_ids + values['partner_ids'] = [] mails = tools.email_split(values.pop('email_to', '') + ' ' + values.pop('email_cc', '')) for mail in mails: partner_id = self.pool.get('res.partner').find_or_create(cr, uid, mail, context=context) @@ -170,6 +166,8 @@ class mail_compose_message(osv.TransientModel): values = self.generate_email_for_composer(cr, uid, wizard.template_id, res_id, context=context) else: values = {} + # remove attachments as they should not be rendered + values.pop('attachment_ids', None) # get values to return email_dict = super(mail_compose_message, self).render_message(cr, uid, wizard, res_id, context) values.update(email_dict) diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index 2f56e620543..f29d6c8c543 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -761,7 +761,7 @@ class mail_message(osv.Model): attachments_to_delete = [] for message in self.browse(cr, uid, ids, context=context): for attach in message.attachment_ids: - if attach.res_model == self._name and attach.res_id == message.id: + if attach.res_model == self._name and (attach.res_id == message.id or attach.res_id == 0): attachments_to_delete.append(attach.id) if attachments_to_delete: self.pool.get('ir.attachment').unlink(cr, uid, attachments_to_delete, context=context) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index a456e82d466..cf9b6ecf316 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -944,7 +944,6 @@ class mail_thread(osv.AbstractModel): if attachment_ids: filtered_attachment_ids = ir_attachment.search(cr, SUPERUSER_ID, [ ('res_model', '=', 'mail.compose.message'), - ('res_id', '=', 0), ('create_uid', '=', uid), ('id', 'in', attachment_ids)], context=context) if filtered_attachment_ids: From b1b3ed971ad1be9386618d9501fb9fdf97b9a55a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 6 Mar 2013 17:05:17 +0100 Subject: [PATCH 011/124] [REM] Removed attachment removal because garbage collecting will do it. bzr revid: tde@openerp.com-20130306160517-b0rdbait2h6c9c77 --- addons/mail/wizard/mail_compose_message.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index c946a71de9f..f4b7eb8115d 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -222,10 +222,6 @@ class mail_compose_message(osv.TransientModel): subtype = 'mail.mt_comment' if not context.get('mail_compose_log', False) else False active_model_pool.message_post(cr, uid, [res_id], type='comment', subtype=subtype, context=context, **post_values) - # mass mailing: delete mail.compose.message attachments, added by the user and that have been duplicated - if wizard.attachment_ids: - ir_attachment_obj.unlink(cr, uid, [attach.id for attach in wizard.attachment_ids if attach.res_model == self._name], context=context) - return {'type': 'ir.actions.act_window_close'} def render_message(self, cr, uid, wizard, res_id, context=None): From 40244df4c18900f806055093ed64942667cf5d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 6 Mar 2013 17:11:51 +0100 Subject: [PATCH 012/124] [IMP] mail.compose.message: copied attachments in mass mail mode are linked to the composer, because message_post will update their model and res_id. bzr revid: tde@openerp.com-20130306161151-gczob78pmt683kw7 --- addons/mail/wizard/mail_compose_message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index f4b7eb8115d..93b7ff07b80 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -214,7 +214,7 @@ class mail_compose_message(osv.TransientModel): post_values['attachments'] = email_dict.pop('attachments', []) attachment_ids = [] for attach_id in post_values.pop('attachment_ids'): - new_attach_id = ir_attachment_obj.copy(cr, uid, attach_id, {'res_model': active_model_pool_name, 'res_id': res_id}, context=context) + new_attach_id = ir_attachment_obj.copy(cr, uid, attach_id, {'res_model': self._name, 'res_id': wizard.id}, context=context) attachment_ids.append(new_attach_id) post_values['attachment_ids'] = attachment_ids post_values.update(email_dict) From 1aac220ee25b7dc45c073c76112e50c68a3c4944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 7 Mar 2013 12:06:57 +0100 Subject: [PATCH 013/124] [IMP] mail: tests: updated tests for attachments bzr revid: tde@openerp.com-20130307110657-1cdelhyd1girmp28 --- addons/email_template/tests/test_mail.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/email_template/tests/test_mail.py b/addons/email_template/tests/test_mail.py index 9e6ed15f904..a4ecb9b6f91 100644 --- a/addons/email_template/tests/test_mail.py +++ b/addons/email_template/tests/test_mail.py @@ -48,8 +48,8 @@ class test_message_compose(TestMailBase): _body_html1 = 'Fans of Pigs, unite !' _body_html2 = 'I am angry !' _attachments = [ - {'name': 'First', 'datas_fname': 'first.txt', 'datas': base64.b64encode('My first attachment')}, - {'name': 'Second', 'datas_fname': 'second.txt', 'datas': base64.b64encode('My second attachment')}, + {'name': 'First', 'datas_fname': 'first.txt', 'datas': base64.b64encode('My first attachment'), 'res_model': 'res.partner', 'res_id': self.partner_admin_id}, + {'name': 'Second', 'datas_fname': 'second.txt', 'datas': base64.b64encode('My second attachment'), 'res_model': 'res.partner', 'res_id': self.partner_admin_id}, ] _attachments_test = [('first.txt', 'My first attachment'), ('second.txt', 'My second attachment')] @@ -115,10 +115,10 @@ class test_message_compose(TestMailBase): self.assertEqual(compose.subject, _subject1, 'mail.compose.message subject incorrect') self.assertIn(_body_html1, compose.body, 'mail.compose.message body incorrect') self.assertEqual(set(message_pids), set(partner_ids), 'mail.compose.message partner_ids incorrect') - # Test: mail.compose.message: attachments + # Test: mail.compose.message: attachments (owner has not been modified) for attach in compose.attachment_ids: - self.assertEqual(attach.res_model, False, 'mail.compose.message attachment res_model through templat was overriden') - self.assertEqual(attach.res_id, 0, 'mail.compose.message attachment res_id incorrect') + self.assertEqual(attach.res_model, 'res.partner', 'mail.compose.message attachment res_model through templat was overriden') + self.assertEqual(attach.res_id, self.partner_admin_id, 'mail.compose.message attachment res_id incorrect') self.assertIn((attach.datas_fname, base64.b64decode(attach.datas)), _attachments_test, 'mail.message attachment name / data incorrect') # Test: mail.message: attachments From fcea61b6ebce561743bfe3876dd5a705ce6a7bad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 7 Mar 2013 14:25:17 +0100 Subject: [PATCH 014/124] [IMP] mail: added a cron job to delete mail attachments (lost user input or reports generated on-the-fly). They have: res_model = mail.compose.message; res_id 0; more than one day of inactivity. bzr revid: tde@openerp.com-20130307132517-4xivu90dzn3o744a --- addons/mail/data/mail_data.xml | 13 +++++++++++++ addons/mail/mail_thread.py | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/addons/mail/data/mail_data.xml b/addons/mail/data/mail_data.xml index 3f517ee7858..02cfd626768 100644 --- a/addons/mail/data/mail_data.xml +++ b/addons/mail/data/mail_data.xml @@ -27,6 +27,19 @@ 1000 + + Garbage Collect Mail Attachments + + + 1 + weeks + -1 + + mail.thread + _garbage_collect_attachments + () + + Discussions diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 173ec951b32..2d43b93dd9a 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -389,6 +389,26 @@ class mail_thread(osv.AbstractModel): return [('message_unread', '=', True)] return [] + def _garbage_collect_attachments(self, cr, uid, context=None): + """ Garbage collect lost mail attachments. Those are attachments + - linked to res_model 'mail.compose.message', the composer wizard + - with res_id 0, because they were created outside of an existing + wizard (typically user input through Chatter or reports + created on-the-fly by the templates) + - unused since at least one day (create_date and write_date) + """ + limit_date = datetime.datetime.utcnow() - datetime.timedelta(days=1) + limit_date_str = datetime.datetime.strftime(limit_date, tools.DEFAULT_SERVER_DATETIME_FORMAT) + ir_attachment_obj = self.pool.get('ir.attachment') + attach_ids = ir_attachment_obj.search(cr, uid, [ + ('res_model', '=', 'mail.compose.message'), + ('res_id', '=', 0), + ('create_date', '<', limit_date_str), + ('write_date', '<', limit_date_str), + ], context=context) + ir_attachment_obj.unlink(cr, uid, attach_ids, context=context) + return True + #------------------------------------------------------ # Email specific #------------------------------------------------------ From 70ce1e5eb4586d6f08248430fe6bee9360dba285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 14 Mar 2013 09:53:15 +0100 Subject: [PATCH 015/124] [FIX] Fixed forgotten conflict when merging trunk. bzr revid: tde@openerp.com-20130314085315-m4didtupt20gmkyv --- addons/email_template/wizard/mail_compose_message.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index f70f29e4b5e..2e051338352 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -145,11 +145,7 @@ class mail_compose_message(osv.TransientModel): values['body'] = values.pop('body_html', '') # transform email_to, email_cc into partner_ids -<<<<<<< TREE - values['partner_ids'] = [] -======= partner_ids = set() ->>>>>>> MERGE-SOURCE mails = tools.email_split(values.pop('email_to', '') + ' ' + values.pop('email_cc', '')) for mail in mails: partner_id = self.pool.get('res.partner').find_or_create(cr, uid, mail, context=context) From bab6cd035a7ca9c9203d25c0bc0780cf30a79c2d Mon Sep 17 00:00:00 2001 From: "Nikita Parmar (OpenERP Trainee)" Date: Fri, 22 Mar 2013 16:33:31 +0530 Subject: [PATCH 016/124] [FIX] created record rule for multi company becuase a child user was also able to see the incoming shipment of parent company where it should not bzr revid: ado@tinyerp.com-20130322110331-h0yhe2ksnqwzs0al --- addons/stock/security/stock_security.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/addons/stock/security/stock_security.xml b/addons/stock/security/stock_security.xml index 10ae6a16d59..3ffcd4a18ca 100644 --- a/addons/stock/security/stock_security.xml +++ b/addons/stock/security/stock_security.xml @@ -45,6 +45,20 @@ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + stock_picking_out multi-company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + stock_picking_in multi-company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + Warehouse multi-company From c9c249291c1eeb377fa6b232d5e0064df76abc17 Mon Sep 17 00:00:00 2001 From: "Ajay Chauhan (OpenERP)" Date: Mon, 25 Mar 2013 11:38:07 +0530 Subject: [PATCH 017/124] [IMP] hr: change admin image in hr bzr revid: cha@tinyerp.com-20130325060807-de4zq8jvokoimmyu --- addons/hr/hr_data.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/hr/hr_data.xml b/addons/hr/hr_data.xml index 25c882f2201..1e9d7668f02 100644 --- a/addons/hr/hr_data.xml +++ b/addons/hr/hr_data.xml @@ -16,6 +16,7 @@ Leave Management (keep track of employee leaves), Expense Management (manage emp Administrator + iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAABGl0lEQVR4nOW9Z7NlSXIYlplljrnu2X5tpnt6vMHOullgPRbA0ogESSwAGolUUCFSn6TQN/0afRAVIZIgSIWEoESQ2IXb3cE6AOsG2NnZHde+n3/XHVNVmakP597br7sHTprXA1AVHa+vOfecqvSZlZmFzAyPcCgKAKBS9xaVUB+8RkCBAABFlRBUARFVGA2pAqsCYWL2aFXVEIoAGQAAZrUWVYGFiRAAQBVBRYCMUcXVI5avpHv6qW8e9aBH/kS8t/w/8RKUDg0AqoqgCEJEHJkQLKLG6I1BFGsQCRBEWJTVGOweYI0hREJUABUgIhVFVEQQkYcm8/6B/9EjABXxfnpTBKHFX0EQBEVgVRElRENECJoEAQxIrOcoKfPeghii2DazkxNlJkREQJEUOSUBBRVUQRQgNESkyqCKAHgfuHGBlvdv4CMWQe86BwVEgHuiCEFADaCIxLbNsxxVwnxGBDGEpmlv37n15htv3rh1azhae/nll1948cXZfJ7npSsLjoyEiCQKiCDMCApEHKO1lqwRkZUs0u5h8G5y8FGN9x8BiqhLSHSDENsUQSDPHIjEqr5z8/rRwUHm7HQy/va3//D733+1bdusKHxe9Hu9z3z2sx/92Mt52c+KwuelqqQkYAg6WUSkzADQyR9BQKRO8pxCAJwmgEc5HjUCVqTWifZudFJ5JYwRMIZorFFON99+J1TV9Ph4/+7t69feee2P/+jWzZvCbJ3rDQdF2T+ZjAej4RNPPv3SSx987sUX19Y3AamNbVH2yRgi1JSIsD8aAZGmpASoqIgKBECMgKAG4P9HCOikTYcABVAAQhJOCEhEIkIIoIqq195+E5Ps3b3zjVdeOTk4mE/HN65fE2FvTBKtY2hDRALnfF70Ll25srF1bvvcubLsz+sqz8ut7W2X+X5Z9nrFzs7OzrkdcAbIcNuQdWo8AEZRJLSLibwP41EjgBSgI/kOAYghBGuMQVRRa21qWgVJMfzoh6/dvXXr5jvv/Oi1144O9h1SbKvM+5jCbDJNKQWRNsY8y3u9XhKp28giWd4rypJVVHG0NhoMBmvra9bQoF9evfrE5cuXrzz5xGhnR5JwSOgyJbKG9D7T6JGO9xkBDOCQYmwIyVpbT2cc0nw6/v1vfePrX/u9ajbbv3vn+PBgNBgM+z0U8N7u7+97b53PEEwbQt3W1byq28bazDrXtC2ScXmGQEVZ9IfDtbU1VJ7NpmRoY2Pj4sVLn/38z33kE58ShiSAaJCQ3j87yD7qB6rCktsVAEGZU2ca1pMJh7h35+43v/7Kd7/zh3dv36zrJrO2V+bzySTUdVnmMfl5XeX9Lef90cHxbDZrmgYQjSFU1qSIEtvQVDMkrGa2mp6Qxs3NzbV+r67n48P9+WS8v7c7PRn/9N/6O1o16BDBPGognBqP3AqShaiVhQcioIAA3Ib5eLJ3+9ZXv/zVr7/yFUlVXVd1Vdd1nTmXe2+siSkOhqOTyQkz93t9TSqRWbgbIUVVdc4hYIwhCquIKAxGw62tLWcphDY0tXGuGIxcXvy9X/oH/8UX/j5zEkVj3jccPHIOAAJEUEZABQVVUNDEJ4f7P/zj137/a9+4+c617c3NlLKmymOvdc7FEKaTKRAC4LyunHNtCLNqTowGKHFMKQGAM8YYjDEaa8s8q9oGiVyRFb0y994SSGrVmulsFjhZX/7Kv/rftnYufOxTn9b0fhrijxgBCIQhJueMpgjKNnPQttffeuNb3/zmj19//XD/IHEIk4lDuHLxEgvneVZV1Z07t+7e3TOIHEOel/28HJ+cSGAAcJb6ZVEWBUssywKQYkxgjJlal2cbm1torTVGJQ28Z2Glk/2jo7X1bD49+Zf/y/886hXPfOgjKUUkC7i0iAEBEBfOgQKAYmdAv/e64hGLIARE6YI2nBCE6/m3v/F73/n2H968fmM6ncYYRdUAjoqeMTCvq7zIrDNt0zRNE0Os6oZZM+cNUQwJQBHYIaByCkFA8rKsQ0Ljs7JE631eWmuRsK7rGJNIFNW6aWazufPOO/eBn/iJf/7f/w/bV59pQuOsB0UiWrrKHfQFFgg4k6jRo0ZAYnWWOLJFCfPZN1/58u9/4/f29/aOjw6aJoiqMTazrlfk1lBKkQhYmaxBBGUAxX6/t7mxNRgMnTHCaTYZ7+/ePTk6iG0jqL1ePzHUIeb9web2uZ2LjwHi8fHx7u7u4eFBN4ksy0IK0+nMWjvo9z/x2c/+t//j/6SoBJRYrHUiiovgiHbhW4CzQsCj1gHOEUc1hkJdf+Prv/flL//OycFe2zQikueZ97nzngCEOYmUvV7RyzlF66whms+rIi8uXLi4trYOCsq8e/fuyWTsvNva2gxNDYYQEcD0FIDM9sZGZs2d/f3ZbEaE3vumadoQnHOc2Bo7PjnJs+yrr7zy4U9/9uWf/HSMLSxsND0F6xU3nMl4xAhQFeAUbe73du984+tfu3ntHYsAoJubm3leMMt8Pp/M56Fts8z1B73RaEhEzlllGQ6GeZ6XZRFCG0LIvU8pNE0d6opjkBjW1tY2t7ecL8bj6bxpbr7zztF0mpA2NzbKomibpm0aUJ1MJswcYyyLcn9/3/f7r3z5yx/60MtEiEQqTGR0CfAudqtnFq17H/wAn7tYz7//7T/c372TZ5lBWF8bDAeD2aza3zs4PDoCpPPnd3bOba+vr+XeivCg11sfjebzeVVVx4cH08mUOSESJ84yz6Gu501u/WQyyfPi0mNr9byaxdjMKxQdDntF5onIO5PlWYxpPD4Zra1NZ7OBc957Avjed779o9f+6MUPvSwchQUF0BDc071wdtHSR4sABY2R8uyN137wW7/5penxkYTWGcwsxLZJSZyhi+cvGO+2tjctmZOjQ9CU+wwTT4+O2tB6nwFzNZ8dHx0xS5JkCSwiAsyrWZ7lTVMd7h8gQOF9PZultp7NAFGHg+HaYMQxtU07HI5ExFl7cHCwfW7b++zOzVv/6dd//dlnnjNZjqhI2G3EPQKQnC0CVO+jHBW1mZ/u7f2bX/nX77zx40Gv8AiG6PjoCACyLHfer62PYkrWGEPoiqLwRhM3s+nR0f7J8XFi7vfKouzn3qSohSua+Xw8mykzCAvH0WgwPj5R0DzLjUEVbmZTb0zjHCeJIXAInMQ4453r9XrVbG6sGxTlb33pi5/6xCc/8bM/RwCAqkCPZp/yke6IIQEov/KV3/nud/6w3y85RmOons9RJbMu894aK5Fj006ODyHFzKCGcHywt3/7hjTNxqCXgc5Pjtv5VEMbqllqa2+o9N4gCvNsXs3ncwFmSW2sM283N9acNaFpSbVpqqZqRHg8PprPZgBARCHGalaVeaEhfemLX9TQIpGwPCRy6Ix2Lh+pCCLCNJu/8pWvbG2uV+MxSKqr5C3lWWat6xVllheJ1RggkPl0EgkLbwtr+qOBRWrbxvSKkymH2RSJUgwAao0lBEOg1o3HJ8cnxwpqjVF1AGqMJ0QA6ff7w+Hgptytm8oShbZlZhap64ZZrXNro9Ebr//4rR+/8eRPvJQkWuq26c4eJo/gGd1QVURz587t6WRcOl/kWZFnqFLmea/s9Xs9Ea7nVdM0vX5/a2N9fdQHTUf7u/X0pHTGokhoJYW1frHWK7mZD8rSEsW2Dk3V1PV8PnfOSZLjo8PZbMocvXeGsMiL0WjIKYY2sgQFHQ1HeZEbYxAJEefz2Z3bt1JoTo4Pf+s3fwsB6BFGRx8hByCCQp77zY31t9/4kSUse2W5NpTEnMJoOGTVlJgTZ9567wZl2c/cQQzTo8PDFJ0xRZ4V2SCEhAYJNuaR20kT2yAA1lhxICJJmBAUoQntvJobXxRZP8+LEEPbtKiY57kCorVV0yCZPM9TTOvr6846Bf72t//w9jtvXrz6VGLG/wyUMCKqKgKKCgKCajWfTyfHeZ5risN+L3OuqecxxePJceayzfUNZS0R4tH+wW7wxm4W2XBrwxljrAWVze3txDKZzzY37LRqvPN1VTnv0RBzksSGEACcc8zcpBRjE2MiiUWvn1sDZU7WhCgQQkyRRcuyIIJBv1dkHi0f7N79+u997ZevPg2qIF2+xMoR+0uvA1DvbfN2kSsUwC7jIYmxBkBe+crv7O/ftYCDLHdIqtpbXwOSycl4Nj0eOdNDh5P5AOvQtkXZK23h1we9wcj4LIn21tayogwxIXk0OJ/N6tkUNBlEBAlVpSmgQgxxOplNrDmYjo/m4/nsWNs1m/cFSDhNZ/NZXQ3XRnVdkzFlb61X9Kw1wyL3ia+9/VY1PiqHo5QSIpK1wgyqaKyegTdwVhyACAqQJHnrYojWWWUB0b29PQTsl6WEGGOUIA5FIDmEPPP1+MQYt9Vzpct6m+uD4Zpz3mZ5ORxmZY8BTVa4vFA0CuCcB1WJbdvMU2iQGTgCM4fQ1u3J0clx5r03Sno8nXFbKeA8pKNZNW8575UGMfOZtcY5hwDOWySzs7GZZ1k1n5ejdUsGDHFKRF3yVxcgeo/H2YogaywAEKKIGGN279yu63pjfYNEnPUbGxvz2bSez5GkcNYakqpWJ5nvFYXJi9JnucvyotfvD9eyXl+QkqB1mc9zVokxOWvJO+dNar1yghRRmGPMs4ho0BBYotyvjepZEyd1y83cqIzKIu+XrKqJk2hsIxp0PkdDRGZvb286nW4CphBsnhEREnFKCoJo3/Og0FkhYLHpqJpYjDGSEjh7+/bt+bQaDkYS257zvaIgSBYiocZ6Vk3GJdmN9dHGaFiWzvus6A+Kfj/vDbKsROfJGI4MAEhEitahgCCi994RcQqaSGIkQFR0uc+yLM/9SH2RuVGUsmpT4qaZNO0YQRRtXuRl2VOgqCnP82IwGAyHuwdHP3799SeeexGNUWaydiGL0JxFSO7MOEABEIhIQZEW296hrqaTSeHIESROBweHDtkSkogKM3PPuVHP93q5z3xRlL3BsOwPbV4AWSQraIwlRGRhADSWVECYEQGQAFEUBUBVjTF5UXAIhKmXu6oNLJgXcT6bHR0dpaZVQcxzsqRcZmV2cefSeDKdTCc+K5Dw1e+/+snP/PRgYzOGBpbh+s6geM/hdLY6QEARIIbgrK2ns6quydBkPAZNm6OhVXGezm9saGzn3M6tcaj9wm+sDdTYPO85n5NxxnhwhhURyVmjqCJCaEABEIkMAioBGQdeVQSIEcFZ6zMn0RrMMu+aNsYYhrk/tzYwxraCIcWTg6PJyQy9u7N3VxDbmBDtxta58fHJ63/82sc+/SntHoHInBDPZN/4zESQAiCgAnNCRBERkbZp8yw/2r1tCEIMTVunRgcOS4T1Xn+A0M/caNj3zpIvyFkig4bQEBmHaJJwl9uMAGC0CxSLqqioMGjHbEat4xA4JQAgYzw60FDkWdM2o15eN70sL2aBp00CilWI83GNTWWtz3rldDLtDUab2ztb21sK4KxNzEhExiroA57Be8ITZyaCEAAAEY0xyxxMrObzu3fuGjK9ftGEkBH1B6WKrG+sbRSFJ0HlwaBnnVNjkEgJgBCIlIwxRpOKiAorAKmqMYpdtjMuE44QAEUUVVABmAkQyRImAM0yN+yXTWh9giypTqomMYMnnwVUQMrzHBHH47HLiv39/avPP88hEBEZE1NEIEPvPROcrRUkIoZIRQExyzIWXh+N+qXfO9h1FgNH7/3jly9tZdl66TOLbV05b12WARohQkRRFVWjgmgBUVVEEgKwKqAHNLhwkQhUCA1rkMQkgAqQhCOr0SSqoM66fpE3/Z6Nim2a1oEIDQE5JykVw6Goqoglc+vmrd/+zd+8dPHShatXpOMsY1DOxBE741gQggIwM4Aa7/uDwbmdc7P5zBhq2sYV+drGxmDQz/LcGEdoAFEQAYHIECIqaOIUYgghxqjCoIKKhIrAmhKqdIUYq1ILUgRVYe1GEmEFMMZYl/ksz7Myy7wzzFGEDSEhOOfKfl8B1kajtbU1AEghvvbaD7/xjW+kFBdZR8pnFCA6WwQQLu6vzKCyvrbehrbs5Vnpszzb3NiMMU6m86qqUmJEdFmGxkVm4YjKqiyqwinFmGJSUEI0Fr01lpBAUYFgES5QRVlm/ApLilFFWDgJCBAgGmucs9YSInCMqmKJjDGqoKob6+tlWbahJcSmbYb9gc8yTkxEhAYB5Wy2hc9QBHWJV6hgjAEVINzY2nTeZ3YIBgFgVs37FmfT6WDQZ07M6JwTQyyCygREFgwhIAqCCHvM1ACSGMQkrIzd6Bw9UAXpQh8EqqpJu7ok6nJv0Vibg1jvZFYBAaCKJlUkBGvN+Z3zgPiDP37duqyq5s7bl19+2XlP1qSUrHX68B7BezHeWwQQLKJAq1QOAFEgTKoOsVa1WdF3vaQwm82V1RoTY5OSBcgjA5Mh48nYJODIIxpQMKC2K6oQVgAWiqBMmaAKgaLSQlZF5IgcE7chzZlbgUhOwYNGddYSqBpnrA3CASCBgjFtUxPAoBiFRou1nu/3j/aOOMSTg4Oqmhvn2pQIyAjKQ+G498QteI9FUDcjWb5CIkBQ1S77qOiVw7V1IhcTd5nLdd20TYMgoEkkcVJEMi4DskAGkFSVOXFsNYaUooiIQBIUwCgcOKUUJSVOCTgppxRbjk2KbYohpFaAicBb4wyBamfH1m0IMbKqoiICx5SbjKMcn0zL3mBza3M4GDhrv/u9757MxopojYOW8S8/B6xCoStCkZSwM8adE4BLFy5cvHRp78b1olcqiCIIABlDRKLKiR2pQXTGOEBAQBUAlKQMyYAYULJeQQAQVBygUUVUlaghaBtQVWNKbeSYEjMqGrDeOFIlxRgTJ9YksYncBCOAiTO0J/OKU+z1yzdvXw8xDvLywsZWG9PB/n5K7IwVFmMICP8KhCJwGThf4AA7H0AQIcW2l2fOWkRc39gKoZ3OxjnXm2t943yXDYiEi1pGg4k5hdi96RSKglpQBVRFUPXGEiCgpBihDRIjKrd13dZNjImZCY0xFoFYWGJqm5i4C78Jp0RqLFBuEURjjEVZAGiR5yrp8GD/sStXXnzxhSLLAKCNsfQZ6JkUcbz3Svh0vRtZo8IpBSJjjAHAzFoWNYYMGWOst0Wv18+zEoBVBQBUVJitM6TIAsyMFolMTElRRRUAkEUBIxCRVVUOIYTAKQqnto0siMaqCIMwK7esIUDSGFLLqWliiomjKFHuvIAd9llAfGZ7vYKQpAnq5Mpjl158/rk8cyyMFlVV9C99OFpRlglMC9XSmeNIxhABQjsZN/MZIZRlaa2dxThp5mZnu+gN0uSImTNFBRSWRELGWiRNKKoJVEQhKnECUVVBBXSFiqhqCE1VVSmlbkvSeE8mawDbpuGYiBQ5eaSIGBSqFBIhAyRWn1kWGvYHbtAHAFTJvC9cNsgKaZqjw8PNy48nidY6EEQi+CsRjEMFVBBasgEhCnJKyPzGq3/8+h/90Xw+e/qF54osuzGZmFhbb40hMRYUmNWINrElQWO1TSmkRNY6YxMHBUvMKUQE8c4rKJAJTX08njRt07Zt5FSHhshkZbl3eBBCKwD9vMys7Rc5uGwyndasmGXkQ6wDKdjMW9K6aQ4P9jPnY1PPTqZcDG/fuLHz5OPPfPhl5oRgRTuf8r0fZxYNFQCCqIqgFgFRVfXg9q2B9/1s5BGq6TS17cWd7Y31DQAw1iVRJarbJgkrwNHxSVIl54CMsU5StIS5947AgmpZ2qxEgiRShXo+nx+Px7uH++P5vA7Buvx4Mm5CQEODvPCI66Ph+tpoNpu2nCpm8B5YGKHwPmqMTVPNZ8eTo+nhUc+4Ksrd3d2Tu7sACzdvGXF679XAe4sAWSnghcWAqArabQyEqh4fa6i2Nte9sNO0vT7aWBtl3iMRgybhKoTj6WQyns7m1cHxYRBlwMCsCs187i1e2jl39dKlnnfW2L41YCgZCMrX796+duPWwdHhtG5PptOqjeSzwGk4GPSLObcxu3NnWBZACMZEAMo8OUdkgdB5z/Omms3m4zEIFz4/3t8LVRWqCiBZpDOtX33PEPCwDQoAgMigpGwAECAzZna4f2l9MMzdILPHMebW9Pt9CLUiJcCTo6M7u7uzuqmrJrDMmmZSVSFx3TShbSzwdDJt66a05hnVtQuPWe9tlieWO3t7N27drtp23rbTqqkiEwMrZKV6xp1z54rMg3BVV00IQdgDeJ8TGYtEziIiczq3sTE7Pp4cHZnAGaFRBlAiEgVRpbPJ03qP/QDUZXo9Lf5XBRaxiOjdzvraY9tbEOq7N97uebc+7E+PT2LT9rydM8/q+uD4eB7a0cbGhccG06p56/q1O9euV01omoYQcksS2RKMsuLqE085n+V5KaJo7GQym83mDCCKedEbbg/nTTgezw4Oxnfq25PNjQs7W9tbm5tb55q2mdZzILJkDAKoEoA3blAWMTUcAqaUk7WOcusAUFUIARDhTNyA9xQBsrJ+usIe0zWbQSCEyCDaL3ulo9LibN4AUajn87Y9GR/3tjat9ynFvCzODfpFOXjnrRtf/cY3Zk07rivrMyYzHI2GhYemZsYkQmSKonDWEgIixBjbpikHw96grBI88cxzTOad67fq+RRinVl7eHBcz2dPPP542S/RIACpAAdRZOOdJUCA2IYyL0hAZ41zWZYXAFZTi851bYvOYryXCKDFLgwAqSKCKioTIoFRQixzv729vb1dSDg+HtehHRVlQIptYE5Znq9vbpQhJpW337n52muvXb548cKli/vHJ1U1B8CtjQ3k1M6n59ZGzuD65gYay4KgVLi8l2Ubo+HG1lZelgz0/NVLg9Hak9vr1XTaL4qyzO/u3n3zrTfqamaMIELmXBRmVVbMfG59qCbz+fFJ3xpHRorMZkVvcx0AlFWdsogh/EudF4S6KCaRRR8SRQCPJKIIhgGIbL5zYbS9DQd3hmW/OjnZ7I9q4zFpNa+8t1ubWweHe0e39zXFz//sTz926bHNzc3QtE1dNXVzcny8e/d2trP1zDNPpRSGo6EoWmMIjbe2n/udjcEHPvC0scaQXRva9aF/Zv2pWDd1007q2mysnRz2EkePmpeZd34ya9Dnapwr+r6R2dHB/OCYHK6PBuCtHfXOXXkcAMgYUBQRa+xfpU35bqgoIRKRMLNIf2O9NxzNj/b6ZTms20lT5XkmqCHFMvcGsczLrZ1zmzsX1kdrbYipbbwhNWbeNoe7dwprd85tr48GAGoIOAZLhtsWOa2PRsox964oi6pux+NjSFz6UkQYIEkS5YvndzbW1/Mia0OdGETGs0aFPBnb6xV3rk1j2yawAGS9z8veY1eugDISIZECMMtZqOEzzw3tXpAhYXFF0dtYq265zfVMWKu9GixF1MASmlC6bG20trZzThRj3VTz+cH+rorOJtPJ+DjL3Pmdne3tLVDJcp8XRayqDI20dTObOYBBWcYQh6PRVm/QtsGQj8JV2xjvXJad759/PH98fTSo6+ro8HBW14YIMKHBKJGFVcUYo4guzxIiOb9x4bxyUkQAMWeTkwKPAAEioqrG2K5pWH9z87jfH2JmlWZtNYUUJLF6SZqRz8tS+1mboifqlcX4ZDyZTBEHW1uba6NB7rN+vzAEBnE6nUFCzHNMaT4dx6ayCLl3ZV74orDWZ74os5JJ0dsYozMu955DqGIqvauqWoUV1HjDKipalHmakagKYGDubWxAVoIIEomIM1b+8oejHx6qiojMbIwBBBBxa+vJmBSSJRr1e9P6JEoi653xniwKBhEwxmW5sPTXNtY2tiSJCHtryzyzxqQUQtOAIohKaCElaRuN0ThLAiCaeZ/nPQRCwLzMXL+MTbDGWgEWLZyLDWhiSUkEjKHEEZGtIXI2c65NHACeevoZEAUFFUBCYQE4k5KNs8+KMEZVRQQUgAh6vWDd9HhiYpt756MNBn3urVhJqkmQyFhLANahUiAy6MQDlHlOCJqiCLaRWdABxLaNbatJDCCqxqZp62q4vt7v90GJ0LAFAHTek0CKDSR2SBIThxhjTIzAqQ0iSdq2LotifTgMLAL0xDPPwsL+J0JUkTOqFjjbTflOBBERdLlyKmiz4dbONLQhpRTaLLMGwRgDaGMUa61B4sRIFo03vgDrs7z0RZ98AeQSUxskRohRjDPWuJQiCgzKfmYyjqysEgUVnXPD0WjQ7ztrLRmJSRPHpg1NqzHFtuGYnLEcU0xsCEPTDoaD/nCAzmb9wWOPXwVFIKeCqkBn5Ac/4iI9BQTy/a0dU5auzIteaQE1RGVJwkElJYaUkBWUyHjvMu9yMhmQVUDjMwGo6zqlZI11LkdjEK31WZblzrkU0vRk2tS1xOTQkIK2ySSGEFPbhqZt26ppmqZuQgggoszCrMKEMBoNfObBGDT2satX+ls7YCyLKioRarfpfwbjkRbpiSoZlw3Wg3G+n233NsdvVZPpnJIm4SCpja0LCmgA2DjpGip2/AMiKcX5ZDqfTjMiKgq0VomYCMiI4mxaVaE5HI+zotja3JbEqQkptUqSmhibNtZNaNoQ2iY0IQTmlDBxiqAYWu5SKdoQosoHP/pR3++rKAt0pI+Lnbr3fjzydjVgst7IDobzdtxX3RgM5uOZJkmIQdjExjRCzhFFTUa7QDAagwjM0/FJPTnBEMha5JgYgCxSRtaJ4mw2YwAOMp1MVVRCrEJUSQDCMUkbOUVOzJwSxxADq3JKCZNxGQEjgLEmplT0ei9+8MNgTEpCCwXGizakZzAeKQIQiVlcf7h19cqd730T2pNBVvSyQhMngpYjNtFTzLQUrRMzGTLWglBSiVU9PtiDEEpHhhNGZgVjLHnvstLnBZAZloXrFW0TZseTfCsDUU0JlJFZU+IYQ9s2bdM0dRtD1y5KY0LjWBJ2xj7h5SuPD9c3QAGXuafKCqCAZ1Im9qhbF4uiWjvauWh8DjaPISGQxMgcmUOIbQpJ2jbU81jPObQaW66rZnyyf+f25HCfOOXOWgJP5J13zjnbJbx5a1yWl1ub203d3L17FzvdrgoCwIsUx6Zt5nUza2IUJbKEBMIqbI0tB4O831/bOffihz86HA5VREQTLyxpIDwjWJ25FfTgUJCgw9HmaOdKLZnpr/sij6kyEhwwN60malqJrISoKUkI3Lb1ZDo5OOImFVmJaAUMGlt6yi0aEFAQogA0qdt53RLZ23du7x/uMQQlSKACgsCc2tC2VRvnAVrwCZ0ao5pSqF2R1wKHTVuhba2DcqCABtAhECBQ12L6TJTwI2/ebTGmgHnv4tVnW3DBZJoXCZSBOaU8z2OIHb1FZlUFhaZuJicTQhwMB3XbHh6ftKJ1ivV8Pjs5rkPTcjiazRLRPMTxdFY1zeHx4e3bt+qqspkja9GAKosmVhVFBooCXQ6YJbQGXZ43woPNreHmOfI5c+g2ABAAUfSsQtEAj1oJoyZVsAYQe5cuXXrm2fHuTSx6yeez1CpArywlpm4TkIUREVTr0FZt2x8MLly48PoPf/id73zn0qWLzz3/vM7n4+lsNp9Pm+poOr5zsD+djJ0xztLm2lqMqZrXed5zzjITdxUDoAIqqiLMqARESIIkQE8/98JnP/f5crSxsb2jXb+gewL/DDclH3W7GiIEZ2KorTWXP/yhrb0dI+HbX3vl+O4NNlS3dWmQU7A+N+RUoQ4xCZSj0Wh9nfL8wtWrP3z7rdfefiuSyXuDwDyZTG7duXPz9q3JZBLqBlE3h8PB+qgsezGm0Aafe+2SqgyhRSBAQgEVUU0iygo2qvnJj/7k8y99kHzh8lKEyC5Ty864o/GjbtiUJCGAcQ6JVKHYOo+ZHey8effuLZfYceyVmSh3qcgi0qZE1vSK3GQ+qJg8/+jHP35wcHD92o3dk+n+4cHB4WEd27ptWk6+V6wNBjsb64P+CAQNGQVoUwIEJEDT6SAFREQSAEgMgIomH4wef/qFwdomGIc+B+z2k7qEPAEAQFm0+H6vxyMWQUCiZIwyxyQWjaAzrBevPvX2D3+Y2jEQ1nU9MJ5ZMCVFWNR9edfEpCEiYjkc7niPzh0eHO3u75G1G2ujWT1vqrrfKzeGo7VBLytyAZjNZzbPMlcQAhpEQgFYWLfGImuSZAnJ+qeff2Fz57zJcwDDKssw+qp5nHR4OwuQPGIRpNYQqAggAoExRFZTu3bxymB9o747R4RQN1wACosggxCRgM6b2rlMRbz3mjRF3tzYFtadc+fO7ezYIt873K+ruiiKMvPrw5FRbWMk1cOjo3W74S0qYhQOMWoX1yfiELz39Xy2fWH4/Ade2jh3nlWIFs2yTgkePdXz/a9aNPThgQKAYLuCr465jSOAi1ee+OMb1wKQNVlKTMqaBAzFyIpgMi+cOKTYBm9svyhBANc26/MXBTDrl6Ne/2Q8FhUSQVVCZOHISujrtmkaziySMUmFrBFIhOi9T8JF2WMWNMY6y8zLcsJHB5BHjoBOnC6LWBUBlADpylPPvvVH35seHVhvW1aKAQwZsDEFFskJYssq6o13hgxgCmGUly8+/SwZmte1jYxNQEOWqA112zSTthr0++c3RlVTSQp22EciBemkkBJm1oeqKovs6PjIOgureO1pDCictaX+6GNBeu/QHOyCbIyg+cbGsy99+Du/+5sminFgY/DGxxg4prqu7t66dXIyHvSGg6zMbUYAMQRj7Gg0AoW9vd3d3d2qqpMk42hWzWbVrE3tpcuX1nkDLDqDrCIAqhJiTIvtXen1+5OT43Ebe70SAEQikSVaJmEDLLtWAuhKK7zH49E37wZQWiWxKwBYAklA5rHnn7/2+usnu7supMyBU5diYuaqqu7cvr2/u785XD8CA0kzctaamFIMYTafcUzdqT3zejYN1bSe29wONkdJuYlxY7jmUBE0SUrMzKnLF0YiRDw4ONCiRwAAXZV9l9wkCHS/1j2btKxHj4BlWePq7aKIA5H82vpzH335u1/7WjXZ60f2yRhrBcQ5u721/ezVJ3t5meZNPamsAgHWbTubzTKiIisNUUypTu081hHVD7Ltx85vnt+23oKCpmiMhtDWdQNIIkHE5nm2u7t7cjLe6A+ragYg1hCIgEoXMUFYnDOji5jcmQDk0euArjmwLA7Lg26bxmlq0NLOU0/R976XZtQ0VZ77PPOENiuLc1mxMRwYxejccDgsfJH5vGvcgYCSeHwynkzHk/n0eHLccJv1ssIZrmvEgpwForpupuOqjdyyMihYFEO37u4COBRzcjAGIGAEQtUuqwwBCWB5zNh/Jo1bl/miuDDslnnUIoQWmE1R9jc3b958o49pXs3BGEFjrM1KlxUu1iFoVDBtaDLEHI2zDgCqZnY0P55Wkzo081BFaQvKSBglcjRBklU8OZpMp40qRY5grc2y3f292XQ2yPoS4PDgCACFuyJxowL0qI4Wez90wP0DEWJKWZFxHY2jK08+8fo3f1dyqaqKrLNZ7o3JvWcRY8h637ZxOj1Jx8cxNgZQBGJoQlsn5qZpWDnPc1Wp6wodGmuaNqU6TiaTJrQKiGQQEESvvfO2M8YToMRb164rCxoAFJEuFXdVD3O25/s8chG0KNpbHmYFoArWO13WdG/tnC8Hw2a63y/z0LaEZHo9AEa0QkCWIFKbQtOEFGNsQ4oJURA0pWg9Fq7IC2+dAQQVTaFt6raZt3XVJFY1TpIi0cHBYWqaQd7LDKqma9feObh9e/vSRQUxop299PDczwIg74MZushe7zxMBFZ1xqQUhEhV837/0pUnbn7rWq8sYgjOGmXPQTRDAHBF7rICCFISFaqqOobWGkDQtqmNUWsREZVAQUUlhRibNrRtAgXjAG3Xknj39q4n6xGc0YhcN82bb7+9sbMNAGQNdKVtp/YglzbQX31PGAAAaNF6p6tjQmBQASUyomp8ceHKlRu/b+q29c6CMIdGqWhDAKKiyL3PwKAqtnXKyxJUiIRTSrEGYZYYU4ocU0yizAqcUmJmASDDYABkd/duPasK7wnBWVOnVPZ64+ns5vWbV65e0SWo9cwsn9PjkZuheC+wAtB1yYbU5Q51RId2ffNcb7hRzcf5yGtKsYU8y1UF0SMZ44zPPCplRQ/BqMQU2xjalFA4qjqpqvmsFtAOA8LatCkKChkAnFf17u273mWEkOc5g0TmvCyR6NqNm1sXzmeZIzJJmAgQELsqK5Uz2pR/9OcJnypmUkBUVDWIrMgAiijA6+fODza2xvNmOptXs3lb19VspoqAFEWrKiCi8ybzmXEWDRlnszLPisJ4h8ZWbZjMqpCkbtPh0XhahTrGNjF5N53Nbt28LQLeOgQSNVXLtigev/pkNW/2Dw5vXL9hjE8LRWxUNaXEnLCzeM9gPGoEKNDpzvCooKqEaIkQSJWYwaxt9rcvgHGT+Xw2mzZ1Xc+rEBIzhiR128QYCUEkCSdWQSQkUIDIcjSejCfTwDqr43jWnsyqw8lU0Ngi3zs4eOvtd2azKbCmkJwvIpoazMuf+dyFy5fbmFTw+o3bk8nEW4doumbXhqw1LsUkLGeBg/eBAx4YXVkZaSeaEBFB8NzFy0V/JCLzeTU5OYkhTiazEFmVFJCZm6bpaJNTDLFt21A19Xw+P5lMZ01okx5Nq/3jSZ0QXBYU9g4P33jrzZOTQ1AB5SzLldy0TU/8xIc++/m/2TTJGOfz4ujw+Eevv3l8MhVW7NoEsaaYrLFIf6W6Jv45Rwf9rrsNAZGSqMb55NzOY64omxPIjZmMJ6JmjXJbN6xogBVTi0o+IaJwYomJU93Ws6qeN+28DSHwbN6mBDbLjHN3D/bffOcNYbGOuKl75TCEVpXWdi7+/C//o2hycgypaZo2y/LrN2+PJ5PzFy6c297a3FwzllISFex6HL3n431QwnB6oxW12wFRVeo2ohJXdTsYDNe3to9vvknOEOLR0RFTgVk/sQJHT5FAhBrrHACE2IbQhNjO67pp2zakEESQbOaNL+7s7167eZMVFDS2rUcT29bn/XJz6x/80/9mtHPxaN6g8UVOTVMjWUlp3jSTyaSuqpPjk+3tzeGgD0BndKbJ++4Ja2cKade6CkFEWCQRnrt8+eYPvx/mJ4NyEMcn77zzJni/tr0DohUHUiErzitrquvZvKljiG2KdUiCxmQ+cyACJ9PJeDKXBCgoSQhJ0Ziy8MO1X/zH/+Ty08/tTauiHFTzWoSMNcKcZU5FjbFFkbdte+2d671eb2trsz/oUXfCPXQEA9C5zMsCStXu7V9MUj1yBJxqga2qi4Q/ROw69om2KbYgaPjc5StKOYrTwIX1vTxeu/Hj5GBtfaeq1aEjUeIQUjubVVVdJejqwo0aQiKJqWrq8XSSYuQ6FN4zYCsJe0XqDz7/j/7hYx/84DRoXoxUNc+9AisYEWRORISqzvoQAiA1bRhP5kfHx3mRjUajLHPWOiLoNtC0a6Sj2uFm0dl0kdK7wNYDMEC8p3ofeSjitHvZpcp1Jh8AIKTEMaWozIl3Ll/ZOH9xOpkgkTdZge20mR/t7ylZVddw5BS603Db0MbETIpISVWVFaitm+l0mmJo6mrQ69XTGZJxWYnF4PM//3df/sSnZ61EoF6et3VjjLHWqFpmRkQiMsZYa4moK25QFWZp2/bg4AARi6Ioy8J775yDriGDYkoMoMYQEXV80FWmdHc4PU6j5H2zglaTILMgk5SkDW0IwdhMTFZH+Nm/+4VsfasFW/ZGDl2fcgoJ2pZQ2lQ1bTWfz+bzWdM2McUUQgpRU5KUUtuEpm2bhkOwhGQRnAsA6rKPfeLTf/Nv/Z2qiaxY5JmkkOfOWuO9995ba621XVWPMaYoiqIoiCiEQGScc0RGVefz+dHR8d7e/v7+wXxeMSsROmetNQAgIiktmvz+CQflrhoK6PuDgFWkRbWrflYWTim0bSsMrKjkGzDDS5c/84Vfov7wpA6D4cYw71Ob2ulUufGevHfWGbLGOZdlLvfeGTSgqMopxtBITCm0Ze6nsxk5K8a98OGP/t1f/octG+OLLCsIyXvLkojQLAcRWWsBwHXHvBGpKiKllGJga2yR9/KsJLQq2NTt4cHx3Tt7B/snbRNVobuJtWbJOn+GPnjkVpAqIhKhaldAyQAg0rUkBk6iqgZtXXO/X7aQLnzgpU821W/9H/97NTkWFoPkRA0nstjGJrGKJGYGFVUlMiCS2hSaNoUAokQkEgeDwe7x5MnnX/qlf/JPh1vn9yezVqHILSogonc2iBizkBgA4JzL83wF/Y4tOrejbUOekzHWGEtEAF3ee5xOZ5PJ1Dnb6+cd5qy1yxNBHzae7mHlfUAALKU/AMryPGxrPKFBIJHkwQAaEIK814bq0sc/9fEYfuvf/SqkiBxtiK5prUe/6KilkmKKQVRAKLG0bYghSGJnDBvDSNPpbOfylf/6n/93W5cuH1WtuswiigIRrPzbjvC77o5EVJYlEYkIInaCnojqmmNMzom12BG4iDrnjDEppQ5/k/EUUBFNlvkOi0WRL9e+AsK9WPejKNTuyKobRAYRRTSl2NGUCDjrETGmKCwAACx9U7RtqAy5LBcNz3z6067Mv/irv1of7EEbfdU6dFnuldmbLNY1qhoAFpYYVMUaK6JtTEhmXteu7P/if/lfPfXiB05aFutZgJBAGVXJEKgaQyCgqt77GOPm5uZkMsnzHABSSp0ct9Y7pzEGVUxJjOlOijYdbry3HUM7Z5hFhNsmNnUAgCzLyrIsy6Jr2tu1xO/AoqqP4hSl02+X0E8xdm2ZpTsAAACYu+I8MgDIyREqABvLqqzy5Cc/9Zm6/g//6l86SfN5zLKEbC2gtbi5PmrquqqqOgQVIQTjrAIoErNrZs3f+sVf+MRP/8ycOQKpLhoqL5LgQBQVBL33VVU554bDYYxxPB6vra1lWaaqTdOoqrWJiIwhAPXehRCZk/e+WxdRZ7tiSuqc6QArogCaYprNZnVde++Losgy1/V0NgZFzhgBfOr4CVhUrXKMHEJYMDtaawyZhS1ARJ1ZLZDImC6fHZxjB/MUPvDTn5tOJ7/xK//mYlnEiL5H1pnYNo5M7Lp5h1DmuZCd1Y11lgFPxuOXP/m5v/bzvyAuQ3ApNYFT5jwteiIvstBRkZnLsjTGOOfG43FngBpjvPfd4QdNU1nrjDFd6XCW2ZQSgHbStJMqiOic7dwCACBSAHDOpZRSSlU1b9vWWleWhfO2Oy/zzCvlV0Yxd5zJmlIMISKQc951pzRgd7B3t02vCRmMWgISg4mIjJJvlK2lj3zu5473j7735d/1PZOh8WQCa13XdVVxCIN+n4wNonmeN5zGx+PLV5/5e//wH5frW3PmJqU2hl6vpyFZAkRQIu5Es4ghUxSFiMQYq6ra2NggopQ6qjdE1M2/ezGbzfI8d853n6w6MsA9QY+rt50RZa0TEeYUQqiqqhNfxtDZIqATkSLSkQBzAjDMncWCRIRIi0bzC88eAYBJAyYAypRdIkQUQ0JZ0JiP1n/2C19AgO+98mXrxJkyszY1TdfH3iAISFH24nx+tHd44eKFv/5Lv3z1mZ+YcWRtp80k7/WE2RtLAIjIAEjU5UAM+/2mbTuAishgMLDWxhgXvphqURTMjAgiUlVVCKFzERAXim2lljuXeFWU1fXT7BZpjBGWEGNnO6XEZ84BKcUY09KcyLrq6OVOU7fd0YkpXOlqJUhGkVMmhsAZkKRovUmgDadiY/OzP/+3y9z96FuvDFkz7yvVMi+8dUkUnWPQJsZzFy7+7V/+Bx/87M8eV0msmTWtdS7zPrWtUSTRRQgEgMj0ykxERcRa2zRN2Ss7N9haS4Y4CCGqinMWAJi5LIuU0mw29d53bVYAwFhjiBRABBWWERcFMoS6qpADTomsQwARiTHhSkz/6ZB8+O1SumBnfql2W+33gg2I0LatdH1Wuz7zZFUkdd1hVrzaCVEEFWWRrniIUUDUo82tt9YCqRhkYRR2pMpJ5/Mff+vr3//675nU5pLq8QFKFCQ2dpK0ssXf+MLff+FjP6XF2sm4blNqYouE1OXdRu5OV2RV4533HkVD06pqnud7e3sKevny5S5ioyJ1XS/mbxaKwZCpm7qua2ttpzmYeVn5gd3NU+r6sxsypApm6ZeRMXAvDPMXUMIP4ACXUeTTdv2yZdxS4qt2FoLtPhRhUmMIVdKifQd21sgiFkSI2p2CAVYgMUIiARMRERQsoQIxgJKBwj7/sc+Wg41Xv/m1u2+8tpYVFJAlMZDt9f7aX/87L33qcxMGSELWQIqOzCo0xl1HayRH5KxDhdC0K0XFzHmeO+u6uFDsKEjEe9+dIYOKqmqNtcYaMtZYIlLRjupVugO5kYAUFqSJiAIgIl3jGGMMIv5/0QGr0407BBiiRVS2k3XMi1SEToCuPB1VRUHVhfeFiN2SHjRVQQGFFEwXqRbFjmi6vGVFQCQDVPaefOElBG3r6ujWNaOehTArPvm5v/GhT/90IGuNb2NaPbr7C0u/xFrrnBORGKICOGs7XdU0zfb29n2kp5pS6hwuVWVhAjLGZFkGS45fLbPzyBDReddZ2ysgGGNW6rD7hOgvhoDTLrUuLZyOs6CTocysy9MCuul25LPwyFSUdel/aWddwKnQ0OLv0lDXjm0UURZlo50bYZCIHBNqVjz1U5/qDde++ptfrGez8+e3X/rJj1944SfaJgnlUXTBZogLcbk8VJEQuzYEzMzCXU/3LMuOj49ns1lZliua6GxQAOh4eiE6dLV8XBoR94XZOzLvMHePsJbTWF0sIv+vEdA9aXEXZhER7crLF9EeWloF3dDu+ATkzuxZSS24B3fEDm3ctYhB7OSWKgESAnaVe0QEgDFxnmfGFD/6wWvjo+lHfuave2tTjNcOT3T3ZOexi2xsO55n1scUVyZKB9bOBDxNjIQLuBwdHa2ioR3Quxed0BAR59zpr5ahugcd/m451trOru1A0BHcPZuvu+bPDfrT0O9kfUfywqlrySfGGMSOvFBVhRURhSElWa2k6+ndhRtP08I9fCCQkAIDLoxoEEAlha5qghAIBLI8P56c/Pqv/8dXvvzlD7zw4ode+sBsMj04OLpx8+bOm9cvPX71+Q9+4NKl85PjOdKC9zuLEBG99918OlLtIJu7vGmaO3fuPPfcc6fpuoPyQvcuWbab7WpRS3K873X3w86X7izR1XpVumb4AO8aCzqNHwDo2hXBfbEkRUBQiJFTWuRrGCJrzMrY6nCyWid2kybqUl1Pk//q7fK3qiD3Llv4z2KtAcAUuSydMn33e9/7t//7v3vrnXc2NzfL0Wj3eLy2tv70zqWdx5/Y29977fXXf/jGj3/qpz7+4Q++lKLWse6gv9w/wU4yrNyUDrKdyL5w4UJn1azQsFSYC+h3fzsaWnpbC3DD0vlfdspb7Ct0y1xJMCQgWCztXcxQvT8tcpnKeXrPEyRJTNwRfrcSOkU1K6GjoqftHNV7ccD7gK56GiWimoS7nXvChapARFB0xqjCr/3a//XFL/3m2sbo8uOXt8/tIBjnXFH2Mp8ZQyq6v3v3jTd+NJvNP/nJT3zsYx/t9wd1XTNzJ0CYOYTQ3bNbfuY8AFy7dg0AXnzxxU6RdnZEJ0C89x2vdChcse9qpSsptxJNq1Bdd4fTFqOCwFJvvwsHrIB16hNYlHcpgIIqJJaUUrd5BwDMklRkSe+rH65U373boj5o0C6xvkIDriqYALpjWFUUQBDJ+eyVr37zN37ji9vb2+ubG5CwmsyKsmeyTGKYh3bQ7/fK8vwHPvDYxYt/8Ad/8B9//dd/9KPXf+EXfmFzc9MY07atcy7G2AXrO2B1klpE6rp+4YUX4H5pvlKeK2NmRfWwVO8dfB8IfK1en8b0Aj6nyPvddcAD0F/sKwCKqCxIQ4hM9+DuLYBaosWsAMgsTNWOaZavkegeAh4QRPc4DwlxxSmLq53z1rpvffM7//pXfmVzY/Pllz82m1f7+4cpTYksAA4G/S5HuqnruqpAzZNPPnN0fPSlL31pd3f3n/2zf3b58mUAaJqm44OVbEFEBJzNZuvr6x18u/j+ikG7a1ZmxQo+pxX7aQKC+4m400Cw9ANEBFBXiHx3DrinLlQRIUVJSVd+b5dIwpy624kIQHfw4EKuwcKpQtWuMwCdvvkKA6fnCqeEEsDKZpcOBUQIaF77wev/4l/8r6+++uqHXvrQtbevDde2zp+/uIg4WgfandqGKcq1a7du375rjDHWP/HEE8fHx//+3//7Z5555jOf+UyWZR3hd2EfIooxDnr98XhclmVRFDHGDrirDfrVlSvoPwz0FcTxlK25guH9vwXAVWjgT/YDcOkZJk4cu+J27DSPKIhwN1FVXSR2AignQ4RLLxmWPffxlFKRU/x7mppWFyy+QsWF1kEVRaTjw8Nf+7X/8/r1d/pF7/o77xwdjc+dv/zs88+fO7flPQ2HPedM0zSIWLfV0fHJW9eu797dHfSKn/r4h5Hgd377d1555ZXj4+Of+7mf6yyTBWiQOtE0Ho9Ho5ExZoWAlftyGrgrPbd6fZqYTlPSaeY4jRUA4FMiziKCqIIq4kJoLA0mjJFDaJmZwHRhy5QSAoqoihLSvSN2O+WwECD3itp0iYNFMvpCgyw+WFwj2gn65ZWr78EZm1Jymauq5t/+6r/91je/tbW+0ev127Y9mc5v3rx+PD555pmnnn7qybXRqNcbbG5sz6r5/sHxbDprq/ro8OD8uWct0nQ8kcSk+B/+/f+NgJ/7mc/1e72YEiEmSc66vd3d+Xy+ubXZxZkBoTtFciWvRZXud9dX5PIA6LslLKgQl2rzFNMjod5TB2qlaxC7aE4EItgdHR1Dauo2xdjFBTugL7QTgjHGO7c4aHRp2SAuon4CoCKwcpeX5w8R0aI26fSkzUJVKCh2XyuQkggjAgnmNvsPX/r1r/zOlwdlb319/bnnn+v1+2+8+eb167fHk4O33xKVFEJ75fEr29vn1tY2n3hcf/z6j6fT4+eeeWJjOHj129+7cPGiQ7e+sV6U2e1bt7777e98+CMfHgwHbduQdWTp7u6uz7O8KNq2FQQVUVxUE3ZTjZwQ0RLBKb3VqYf7mUA6711x6Yd2wO4IDpUMqoAxXY9fJUS7itiAwKI9smLbxrquhcUYqwoxpfvMG108+4G9iJWqgfuHruLMqssDceDeJw+NpUMGVVVvbq7/4e9/+0tf/KJ37tzOzgsvvPDsc8+ur2888eSTf/AH3/nh6z8+Ph5fv34NCRNzSjwY9K0xFy6cf/75Z2PbvvPW286aN954I/N+59y55154drQ2UsRr168//vjj3jtDOJvNjo6OnnzyyUWf31MeE6y8xWWEEZbm5mnyv8cQQA+f90b356cYMkq6gpi11nXRMQLqdGldNaGNLGzIIGIIoQP3aUbr4I6nXHy9X7g/8NRT3z6ogR/EAYKwIJCAlmV5cHj0n37jN0aj0UsvvbSxufnY5cfOnTs3GA7XNzcGg9Ha+sZ3v/v9u3fvHh4cjEZrJycnTdMcHuz3er3Hr1z9gz/4ZpJEgtPp9Omnn776xNWnnnqqPxwYa8fTyZ07d86f3yn75dGtWycnJ9vb2ysC6hb7gHjpfBg8tajV5O8ZPwD8Z+WFYheGYpalFYQLe4xMSlzXVWiTsKhq0tTpKF0G1E6rl9VuXGcwwFJxndY8DyxDRP/MQ8GXB0aBMRYQf/u3fns4HPzsz/zMaDSyzpb9nvWZd05F19b0Ex//+NbW1iuv/N7u7t5sNosx5nmmqu+88/be3t6VK1eG/f4ffe/Vzc3Np5995ulnnil7ZVGWAHDu3Ll5Nd/d3TXOHh0dFUXR6/VOu8orsK5sws4kOC0JTpsPy8vgtKI+jbwHyG5FuzalFaXHtm3bNiAaReXECNidONjZmg8od1y6gt29Vo982Is59XaRKPDwV6vRBbyatu0V5Ws/+EHbtp///F977NKllJICGGdjSolT0wZOMcvciz/xQl3Xr732wzY0TVNvbKz1er3XXvvh22+/9TOf++n19c08z69cvfrYY4+tb2yMNkbeOWddmwIRDfr9WzdvzaezJ554oqMeWUb/T8//NNTgfnZfgfLeNUsBu6K8d7WmVrFxa8gSQdumaj7vXEQVFRYkdMYZMqvY8rvCa3XfleH88LcP2GQA78Icp6+PKVprp9Pp7du3P/KRjzzz9NN1U5Mh7vYZYhLQTmkTwWAweOKJJ46PT6z3a+ujk/H4q1/+yu7u7tbW1ptvvrWzvf3k00+99NIHHn/iam/QL4sixsicnHOISIRXLl8eDYdl2YNl0Ok0yN51saeF7QMOAQA83NWju9tKhj/gOmBkEda2DbENnVWzgjXCAp+n9f5pBlyJoNXDOhB10unefU4ZbdrVZj8UBD391xgbUzo6ODTGbKytdWEyRGzbNsRonUPCNgRC8FnmfdbU8T/+py9a57a3t2/cuHG0f3jr9o1+v7e/t7+3t/uLX/jCRz76kX6/XxQFKBtrkzARLVvndPr2vs1UWIYQAKBbTrfyFTRWvHKP9gm7MiaRBwMSK2JfrVFOSScb2ljXtTG2C5LcN49T9sppHLwr8Z7mxC7WeB9d3EP+wtF6ADGn33axsNH6GiEqIi8jWZ3wEhFrrHPOWeOzjFkGg/IjH/7QN3//9+/cSVtbWztb5y4//tj1a2/PpjNVVYRzO+dUwXufUlC4bxN0OUl4YDmrKZ2SrvfJzNMKDxFVVElBVnGze8H2B3TGaRgCAM1mVYxpBawVupa36RjhPqV0mnJhKfRXd+git6efdxpJsBCa+AD0dRlZXI1uhXXTpBi7UGt3mE5MiVWcc7QK9Rkznpx85Su/+/3vf79t2q3trUF/oIpvv/12iOGPX/tB3TTGmhBDlmdkCB+i9Aeo5LR4WbHyaR49HWSEZfC5C8Cfpq0HLntgLMJ7dV1lWY5IIURjzNIffuBn7+LvnUZjN5Yb8frANXhqPDyP0zbD6gUuVKKazkfBhatMiKLCzKKiqtPppChzUHj77bfrugGAsleur68Ly507uymlfr9/4/q127dvD4fD7umdonpgnJ7Mw0RDp655gIpXH8piN/A+3fDAZe+OhpQWMktEVmHXJYeuZNGfxgGrh52G/sPgXn7yLst+4G4sklIS1S5RUJcyDYmMXRwMnTjFEKy1bdM4hy+++GKXNLi2tlZV1byqxicno+HIOUfGvvnmm3XdFGW5Mp1Xj/uTKANPRdNw4XI+CLv72GLhAXc6XB++7PSDTqOZEKiu684lk2X8jwiRCJeSYRkpuu+OD9u5D/AyLp3k1XaELvfhTvPHu66q2+HpavZwCQ5CNGZRwoKKaNBY0zQhJbHW5nk+Gq3Vdb2/v9+27ZXHH19bXwPAixcfu3N396233+rstGXa/j24nDYiVss57eRj51fqPWZdrfe+vSZV0E4g38fTq8tW4/R9SJUIbZeVHFMyhoyhDh+JOcZoyIiqaOo2ZwEVCbp/ZLD72/0DAlYWEDRIhgSEDAKIKC+OecZ3UUeryd0T6YQGwRoy1HXvF1ZhkJiiKhtCQ2gMkSFFJEMscPPmra3NcxvrW3du3z08PCJr+oO+9W5zc3ttuFHPmh/80Q+soaWU4GWADFUXyYSIoCrdP8RuY0uIUFVEulwkMtaQ7SIGoKiK2q0UDaJB7aYqKqJdfK37x/e/Fb0naQGAdHHIlxpj+v0eC4smXDZ2W2j/VZDyzxr32GJlQb2bsPpz3qo7sZyFWVhEeFnNISIs0llHXaLZ9Rs3e71+WZZ37+62IfR6/fWNjXM7O08+9bT3/ujo6KtffeX69ZvD4TDGdplKs9Q3715Y+tAnCw/9IcbF08p2mRhyilEeHqfvQJPJpKN35gQABIs8CxHpFGCHgtUdV4L+3W99yoB7QLz+BaG/KBhe7fnc22dWZWbttj9BjTG7u3dvXL8xGo2Ojo66FgYIMBj0X3zxxXPntmKMd+7u3rp169VXXxUR5zye2s5dBMZX4v7+CT+w2NOMu5I893Yr4Z4sOj3nh1d3enuHmqaZTCZdzDmEQIa6bd5TsTZd4v7dfdf7AXdK+z9kXfwpRPHQfRbKg5fj9LfYKWQyhsgYevXVV2OKRVEcHBwaY4+PjwHx8uXL29vbRHR0eOS9HY1GP/7Rj46Ojr13qzkseUz1TzVaHpjzA6pu9UOkBZz+/MsEgP8HoDXZ+TnY5IMAAAAASUVORK5CYII= From 83d85ae1ec728b6d22e26adb729140f4506f37a6 Mon Sep 17 00:00:00 2001 From: "Ajay Chauhan (OpenERP)" Date: Mon, 25 Mar 2013 12:13:32 +0530 Subject: [PATCH 018/124] [IMP] added & modified employee demo data in hr bzr revid: cha@tinyerp.com-20130325064332-g1dvoz8lfkt831w1 --- addons/hr/hr_demo.xml | 104 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 99 insertions(+), 5 deletions(-) diff --git a/addons/hr/hr_demo.xml b/addons/hr/hr_demo.xml index 14e4a7f5da2..fcc50237267 100644 --- a/addons/hr/hr_demo.xml +++ b/addons/hr/hr_demo.xml @@ -135,7 +135,7 @@ Grand-Rosière +3281813700 niv@openerp.com - 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 @@ -172,7 +172,7 @@ Grand-Rosière +3281813700 qdp@openerp.com - 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 @@ -184,7 +184,7 @@ Grand-Rosière +3281813700 fme@openerp.com - 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 @@ -196,7 +196,7 @@ Grand-Rosière +3281813700 fpi@openerp.com - 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 @@ -208,7 +208,7 @@ Grand-Rosière +3281813700 jth@openerp.com - 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 @@ -235,5 +235,99 @@ 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 + + Hans Anders + + + Grand-Rosière + +3282823500 + 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 + + + + Jan Van Eyck + + + Auderghem + +3282823500 + jve@openerp.com + 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 + + + + Jean Pierre + + + Grand-Rosière + +3282823500 + jep@openerp.com + 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 + + + + John Doe + + + Grand-Rosière + +3282823500 + jod@openerp.com + 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 + + + + João Gomer + + + Auderghem + +3282823500 + jog@openerp.com + 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 + + + + Juan Gomez + + + Grand-Rosière + +3282823500 + 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 + + + + Luigi Roni + + + Auderghem + +3282823500 + lur@openerp.com + /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQSEBISEhQUFRUUFBcVFBcXFRYVGBUdFxQYFBUXFBUXHCYeGBkjGRUUIC8gJCcpLCwsFR4xNTAqNSYrLCkBCQoKDgwOFw8PGikcHBwpKSwpKSksKSwpLCkpKSkpLSkpKSkpNSkpKTUpKSkpKSkpKSwsLCwpLCkpLCkpKSkpKf/AABEIAKAAgAMBIgACEQEDEQH/xAAcAAABBQEBAQAAAAAAAAAAAAAGAgMEBQcBAAj/xABDEAABAgMEBggDAwkJAAAAAAABAAIDBBEFITFBBhJRYXGRBxMiMoGhscFC0fBSYoIWI0Nyg6Ky4fEUFSVTY3OSwtL/xAAYAQADAQEAAAAAAAAAAAAAAAACAwQBAP/EACMRAAICAgIBBQEBAAAAAAAAAAABAhESIQMxQRMUMlFhIgT/2gAMAwEAAhEDEQA/ANahBPhySGpQCUGPQyn2qPDUhq5GMWvLy8mIE8uFUekmmctJD88/tUqGNvcfDLxWZ2x04RnEiXhtYMi7tu87vJC5JBKLYW6fYxP9sKm0Ed/iDf1XfwoDmekKPGcTFdrVFCDQeFyuNH9Nmy8Zky6ESL2nVdTEUzuwCnm7kmVQePHKP2bykxMDwKrrC0hhTcPrIJqMwbnN4hWSqTTWiSqI0GdZqt7bcBmNidE0z7TeYS9QbFzqhsHILtmHP7Q37TeYXRGbtHMLhlm/ZbyCSZNn2G/8Qu2cNFi4GJ0heolhnmNToSWhLWoxnqoM6QNOf7I3qoRBjOFScerBwNM3HIeKI7ethsrLxI78GNrTacGjxNF81Wvbz48aJFiGpe4k765Ddktk/BsVZ60Iz4ry97i5zrySa+ZxVZFZQqxkGviuAY0mv1kiWW0CiO7TwG8bzySm0h6i30BTipz4B6lt91a02o3GgzAL7yq217G1G0GAS81Yx8TQ1oJpA+VjtewktrR7cnA4/W5fQkrNNiMa9pq1wBB4r5vs5gYRXEn+nojmzrcithasOO+G1t4ApS+84hdDkxl+MB8WfXZrq8spbpNNZTRPEMP/AFTn5Wzgwjg8YbT7J/qoH20zUl5Zf+WU6P0sM/swlt07nB/kn8B/9LvVRntuT6NIK4lFcXChQSkkLrngAk4DFEgWZH05aR0EOVacB1j+JuYOVT4hZZYVmOmYzWC5vxH1T2n9uGZm40Wtz39n9UGjfKiIdBZcQw57iGhrQK+ZKTJ+Snjjug/sKwocBoDGgXY5nxVpEYg8aZs12thxCa/aYaHe0gBEkG0NaHrpb/SyNeBcVUlsygLCVFntJS01c8MZuYXHxyCk2ba8OMCGvDxgaijm8QlNasK09Gd2k4g723+9UWaGTjHR4QiAOY86pBvHaw86qk0ss5zIjiLrrlD0YnaNNLixwI3X1BHiCt7Vkz06N+doXJn9A3wr80y/o/kj+h/ed81cWVM9ZBhvHxMafJS1akmiPKS8gu7o4kz8LxweU07o0lcnRh+0+YRavLcI/RvqT+xsrhXC5eCEwW1Uums6YUjMPBodQgHZW6vqrpqGukhhNmzFMm187/Jc+jF2fMM0NZ4H3gFq2gkq2JAo4AguPlcssDaxK/eBWkdHM9qw3A5OrzFUmXRbw/ILY2jUIOBoAQKXJ98ICHq5Epox3RXE5DDfxTU2+LqhoaONKjlVC3aKVFJiX2Ex7SCLnY76YL0DR6FDNQ0A7czxOaXBe9or5ZeCXEm6pcpfyEoK7BvTV4Aadg9PooQkoOpGdTB7NYb6EHniiHTi0GN1A44g0uQ/KRQWQX7CWHeDeK+FVkfiT8tZG9dH05ryMO/u1byRKs76J5/sRIJ+E63O71HmtEVvC7iQ8iqTPLy8uJjFkcFKam2p5gSwxbVWaTywiSUyw5wX/wAJI9FaBIjQg5rmnAgg+IoirQN7PkaCyjnnZEb719UVaJTghxtR1we2niDd5Eqstqz+qfMMpTVjvHLDyoo8Z51GvFQdUHx4qd7KoPF2ahNWcXFsRj3gA9toNA4bRvCkGUZq1MeI3G4g5C7Lah7QzSwRfzUQ0iDD7w2jejQyjCAbkPSotUstg9FkYj3AQorw34nOF2J7oOJpTmpsw4NurgPop+enWwmm8AAcAs+0g04aA4QjrO25D5peLm6R0pqG2UPSHaPWR2tBuaKeJN/snbHfWUI2UPI0+aH2NMZ51jUuqalEFkw9RjmY1BHHMeafOOMaIcrk2aR0ZT9JyH/qNLccwK+3mtiXz5oTP6kxAdkIjT50PkfJb0+eaM13C6TQHMtpklcUH+9WpD7WGSfYmiRDCfamWJ5pQo1iwvFcquF4R2CYb0rWL1c1FeBdFIieNKO9K+KCWwqw2jd7rVOlqK17obcdUGv4q09As0Apq7DX+EqVvZXFaB+KSxzXg0IoRleN6LH9IdGUbUupmbkN2nB7G8E/NVOpwVfFCM1sBycXon2tpFFjntvqNgw5KthsJOfz4Lg+v5BFujFiUAjRBf8AADlvO9OxUehUpN9i7JsbUZV3eIv3bk5Gki1us2/NW8QgApgdo0yF3HclyjaBUnZV2PNasSmF9R6j3C3GSmdeGx21oPksmiWY19COy4YOHuM1oeiUZxghh7zdikUcJD5PKJe1XAU62TcU/Dsw5lOsQTROtGa5EtUDBUGslhdR1ljEtRxTDppxzUcJTgaE7BXleto4zHSqe13xSTXtH900HohyYGo1hzvPCv8AXyUy2pmjdY7akoWjWkSTmTh8lNKLUiqMk4jk93Hb/r3VL1RIvKsp+LXs7BenLHsoxogb8Ivcd3zKu/zxqNsTyPZJ0Z0eDz1rx2R3QfiO07gi95pglMhhoDWgAAUAUWcIpVxo1oJN9ONdqYxF2R4kYE0rfuyHzUiCBTZRMSbddodq6tcGqygwKYoAkJg1xVzZFrGDED2G8Yg4OGYVWCuEpclYSdG0WfOtjQ2xGYOHLaDvClAIG6OLTqYkAmvxt9HeyPAEoIpmWe0qTDstqkw2NUhrQmAEVtmhN2jLhsGK4ZQ3nk0qxDUNdINpdTJuaD2op1BwxceQ81iWzjHosEOBDu7RA0cjrHlvdDjqos0kn+qglo7z7h4oPa24DmqYQUns6LFwoZc4AXucacSUe2TZogww0Y4vO07tyqdF7J1R1zhee5uGZ8fREJKKT8ICTsS5QI8IPdQ90Grt5GA4Z8lKjRchjgok1EDTDhjFzqng0a1T4oGciUYwaL8cgE2YkQ4ADzPyXIHavAr975VUpoQsJEUyZPecTuySTIjePEqY7C5N37UDCLnQVpZPQKE3uLTwLXVC2RZBoLLl1oQL8C5x8GFbHRLas6yshw95UhjDtVdDgDaeZXnzQbg4k8Vpxbtadqy7pHtPXm+rr2YLaHiaOd5URhGtKKASIlAAT3RkFiWmNtO1XurWJGcb+JvKOKBYMWtPddHc74W3N91IsWzOuiAU7Db3n28VXS0E3NF5N3ElH1k2eIMMNGOLjtKr+KoxukTYYoKfQTcUpyiizT7wwYn90ZlKAOQjWrshh7lUz4+vMmt7WsofFwp6KwnZkMbQZC5VdhisSI92ApTjfzp7oWEi+g1peabAAB4X3pxzk02JU92nHHlilOccsduSxhIae52weaRqOOJ9l50N32uQCU1tMUtmhv0VylZiI8/DDoPxOA9itRogDoqlezHiUuq1gO2gLnerUfoUcB7p4uwwXmlUliTZJMGJdEZj94ZObtBV8yCmGFdpBMasrFIxLdUfiNPSqwK25zrJh99Qzst91tOn84IUq6puoXHwFB5lfP8ABmKlxOZJ5o4fI4KtFIFYjn/YApxP8qouYhzRJlIRP2nH0AV9Di0BrkmSdsFipiLqjfkNp2KG0FoLnd52PyG4KWGXFzsactyqpyYJQgkK0Y1VaWbJ6rG0yFeJN5KrpGV6yKAcBeVfOZX+RosbCQ2S7Kg41JXNQ46x8gnXMp9EpqI92wcSgYYgs3ldaAEjUO3kmpp+qDTIV9gls1E2ztMJiWJ6qIQwHui9vI3LSNFOkyHHAZMUhvNBrXhpO+vdPksPhxqVocL88fdSIE0RjU5kitTd6Ke2ihxTP//Z + + + + Николай Петра + + + Grand-Rosière + +3282823500 + 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 + + + + 佐藤さくら (demo_ja_JP) + + + Grand-Rosière + +3282823500 + /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQSERUUExQVFRMVGB0XGRcXGRcaGhwcGB0XFxUaGRocHCceHB0jHRcWHy8gJCcqLCwsGh8xNTAqNSYrLCkBCQoKDgwOGg8PGiwlHCQpLCwsLCwpLCkpLCksKSkpKSwpKSkpLCksLCwsKSksKSwpLCkpKSwpLCkpKSwsLCkpKf/AABEIAKoAgAMBIgACEQEDEQH/xAAcAAADAAMBAQEAAAAAAAAAAAADBAUBAgYHCAD/xAA9EAACAQIEAwUFBgMIAwAAAAABAhEAAwQSITEFQWEGEyJRcTKBkaGxBxRCwdHwI1JiFSQzcpKy4fEWQ8L/xAAZAQACAwEAAAAAAAAAAAAAAAABAgADBAX/xAAnEQACAgICAQQBBQEAAAAAAAAAAQIRAzESIVETIkFhUjJCcYGRI//aAAwDAQACEQMRAD8A4i32fLWiSFDKCwBIDaFRop1PtaRUvH8PhrIKjxqTy/mPL3V3nDsbmwzuCe+t27hWbYKqC1pdCDMgFtTtNczxLEs17COGGbKw9jaGMa/iMHekTl4KFx+GRL2AAZBlGs+XIijNw0CPANfTpT2LxR7604yE+OAVOgkRJ5kcjRsTiSzq4yAiY8JmPDvyJ60Ll4I68kfG8NCtblRDLIiNdYnSsjhgn2B8qrcUxQ+8Yd5RibYmFIjxsOehaI12oB4iVuMw7vM28KdNOvunzqcnWiVemYwfB1N7JkTQ7EoBtO5MUrZs28ryEkKd8u/KKJddWJdjLEzAEfAcqWv3iVgII5c6JZ6f2UG4Opw7OLa7qA3h3J9edZscFBsO/drCsozeHSf2ag54B8RXp15aVfwHaQthjh2ywXDgldTlDAa8t/fUfIDhS2E/sc9xdfu1CoBr4fMUReCf3ZrmRQBl1OQbnrVE8RzYDEK7DMQkDIYkMDvPhEQIpzHYwNw8AspbOh9g9QI8hGlLchaj5Id/hEW7fhQFmPNZgLJ+tGHBjNrwpLTAJWTHTeneJ8TzJhPGJUXN7cwxAEzOvpygVrjOK5rtgi4ZVSP8NZiQSJnn5760tyDUPJpa4WyYkqwAIshtI0BOk09gLeUtoT4f1601w+4MRxG+QxZRbULKhSBrpoTPrWe1XDWV0yEKAknQ+Z6GqJp3bOngmlCkGwXClSwyKWa4+FvsR4Y8L2xHTbnXKfdc1zBqAQ5F0wxQCACQQ0gRodzXQ4K+ndJkGRvu98MMnhOqTADA6x7qkcOH8bCAOQy2sQPCm3heIBY/lWxcvk5b4WR8XlBsciQ8zlgEEbEEg0y9gDJ4pzA+UDbcz0iiYpyDhYfMwsuWJXLux2j61ZxGKL27eVtUsPmENqDcXQtzEwflzoe6yVjOX44oS9bUGctoSY0Ek7amkjeXU+Q0/fvq3x/DG9eTxzCKskGFVVzEH+mW+VRsZhQtxxIhUkDbkN+porRZFJaB220knU8qYw6knLqZ5DfXlU69f19PLrt9K9K+zPsyC4vXNWgEDynUe+NfeKWclFWX48fNka19mN91zMVQcl3PvqFx/s2+F31A3/Ka+icigQBNcv2i4AlxXBHtgg+/nWP1pJ96N3oQcddnkeDxSnCXgS0jKV0BkFgCCZERVrilgLhLLT7bhf8A1xoszo5Ma7xXJLhyFdZhlbIfUMI+nyrruLYtzZwKtczhc7FQpEmMusgzoCOk1st7RypRgn2L9psKLAwcktntloWCdTGg8uta2rIbF2bWS4CVBIbIh8URGYxW3bTErfuYNUOTJh1khdcwJYnkToaY4TfycUtuL1wwqglkDGAByL9KCuuwVjst9jLEcTxq7BIXUqdiea6VR7aBRcJbvBlsZlyBSJlvaJ91S+wGJN3iOPdmksM0wF3Zo0kxWv2n3f7wnSyP9zVVNXs14+l0c5a4yBH8RPZdZzCTnifpWMPxUJdS7nBKK4GombggH3Vz9jhisVGXckT7p/KqGG7OozhchIyu2k65YjX31dxl+RleTCv2DjY5e8V8wlUKbjctM01a4yoD6iWt5JkaHOHn5RFRuIcCQdwFQr3gYk66wSNPhW3/AIuCqmG1zawdcsT/ALhQqX5A9TB8wf8ArHL7NcLsrSe72U6yo6eZqI2Ha5daDqIn9PcKt4fggs2xcAcZswO4kdCdN6d7LcGD2r5Ut3kBgdOs6kTpTdpVZbFxk7iujnsNwG5cbKq5m0HIDziTXr3A+OdwmW5hzbAGhDKwOw3Fcrg+GXGym0xAyiWUDN115E+dV+J8MuLhCDdctA/xGmfFvptG1ZZzvpnQxQcdHV8Y7R9yPBkGYaFtQNY1ApDv7rp3hxC3BqSFtqB10zTRMNwpb1lOQNvKwHONQR13nzo2A7L20VFAXKkwAPPfnzqm1Rc4Ozx7jOAU4y8UYBHYXBPXUiJmZmqOIvi4LMsP4SMkyOcxt5SKc+0DggbGWk3lJMb+J38q5bhnBldzmByDMdN4TN06CtkOTimmcrLLGpvkuzoL2DW9eS4b6LkQJrGsc6rYPh6JifvP322HiNxPOdc3X5VymM7IlAvhuSQPwnnrppS9rsfncr418Jb2CdiB+dFJ/LEcsV9RO87K8JW1irjrdW/3oBIX8Pi0JIOu5ql2z4zhLV0jEhmYoBCgk5TmnSdB161zP2X4M2cRiVkmETfTck7fCur7Q4O1dvS6AsEGpk6a6aCq5utmrGrXtPMreKzPbci3KtoCGjRSTMdZNN3bguX1cC3s/h8QBgLExprJ202qdh1GW3vq55cspjej32W0bZYnVX2A/pjn9auSic6ayfCHeK4qbmDIFslVYR4h+JoLdfSrGKxWa3aYC14e9IGZhAJQAlYgmZgc65u9dQvhdSNDOg0MtGx1qpi3RLdlc+Ym25AVT7RZYEk+QPpU4xA/U8DGOxMpZaLZAziAx0BIgsvnHlTPCsO1nPBWHh5XUCVEqW89dvWpnFVVLdlC3iKkx5TBOpMbVR1GJKIWeLYYgK0ABFJPMct6HFbRdhlOLprZ0HZq8oOSB/30rHbS/DKmQlACSVGuY7etS+AYkC7JO5I9+uWfWKZ4vfv9+AArJA1JjXyOn51ia9x2oS9tF3gnG3NlB3DzpIMKY2kSa6ay5A1Poa53h/elJz2c0RAzE+hH51SwyXFJNxlIIEbiPP3c6Vosba2cnxXED+1BmyjKqEFnKwAGJ1989a5LgmMAw14ZUzm1cOfP4jmmTP8A886e4lxu3iMZiLitlVFZQSrEHu1iZA8yaj8Mw5+73TDALZkmDEMyiZHrWyMEo9nCyyk5ukdPx++CmGUJaJTJJ7y54oBiTEsDpTfZrEgY29cYW1XuoyB2T8W5B3PQVO43xbL93/ijw5TbItkGIYfCdNac7JcTL4u9ca4GcWsrAqRsWmIUggASaDiBWZ7KHNjscT/R+LPGkwG5gUXtLcujEKEK5cq5pMc/Wlew7f3rHwQwzgSNjppGg+lPdoMSVvMc2UqiwI3k+KTmEabb0mQ2Y26PNbQ8NvMROc/g8l0nXWj8QsKwsQwVockZDGhGWZOs6z6UBCvh/iDwknceUCjXbisVOdfCCNwZzGZ3q5TgZ3gzGuMXMcPmZZAMjKQNCSJ85mnMbZB7kq4EIWiCIIYCAYjXzpRwGKHOJWeY50droMGRoCNxzM/8VPUh5FeDP4H+JWwVsPnBIUggzO8DXLBiKLjGdcXeNq9lBtFPxAmbaiPZ5zFT8Zj8lsMfwiPUmTpUz+3yxYkAFjqB0AAqxJPQtZE6kPYnFMjBlJGZVb1kCuh7L9oQzAXD8aS7M4FMbYNowL1knIfNGMhT6EkA9aC/AXtXTbuKVYeY5efUdaoyQS2bsM29Hq/DMRaKlhAO0jep3aTjGiKkd3mysxmPZZtCB5getSeEdmiIkzMQAT+tG7c4j7vgZVRk7xLaHzK52uH0AhZ5knyqiCuSSLcsmoM8+4JeYYfEjNbytbfQh5kspkRoD4edFwjD7ldTwglbSzmfUZwTKxHIfCpuB4gvctZLBSwgFttTO8TVZcOxtd2GUg5df8pneNa1ycU+zmxjllpFbj2LzthT3lv+DABAfXKNSfCOUCPPWqnYrGKmIxF5jabvEVcpzACSdpQ+Qn1qJiS7vbbMoNvQaD3ctaa4W7W3use7Y3AAZA65iBGh9KRuFbHWPMtxB9icatu9jZI8V3KImDBI05xW3a7FkX9GI8K6A7xO9JcG4a1lrksGLt3gjlJjnV69cwzZ/vF0pm0gRtH+UnzqtyVmtQagrPMLvCwoDQdTGpHkDWw4eCs5efSn+Is2S1mCgj2fBGhH0rOHxQVWcxMQNBpt8TWqLbOd/YqvCgFzOAq/E/CtVvWV1CS3xjkDG1L3LxadfdQu7ph1fkcxmON5hpAGwoF/B+AEeVfrIp642g8tv0qBMdlONthsQtweh6g6EfP5V9F8L+7cRsLnUNA0P4lPQ/sV8ytbjavYvs/vPdwWew0XkDWmE7kKTabpuP8ASaNX0yW07Q2narB2sUcMWZbKOUa8B4TECJmQsyC3KKV+3rHqLeGw6REG5ptAhEjpq3yry6xbuWrrWrylXG4O8jf4zVHtHijc7gM2bLhraj08RA90iq4wUNGjK+UVKyG+HlA3Pn1oGWnrTQoHkfkaFjbGU9DtTUZwKZcpBUa85MiNafu8NtNZVkZc8kMpMN00pGK2tjYj+b/upRCl2dm21wE7EdetXsUgdJKgk/igTzG9c7w6Q12SSc3Pfauiw7t3YiMsNmEb+1zrBP8AWdKFLEmchfvaJIaTqMx01FMXLb91C5SJkgwaVxOqoDm020EUXErKrGbNDE7QNREAe+tys5ftESNdRlNGyEiRuPn0NARzOv0p6w1OE/LbESNjQ7eZZAPh5g6/Cj4YQWXyOnoawyRNQgIJXffYxxILi2sMfDeWR/mtnOvxGYVxFldKY4FxA4fFWrw3turfA6j3iR76gS/9o+IDcWdRHghT6xJ+oFQMWZaf6VHwUVnHYk3cY9w7uWf/AFEn5SPhQLOoJ6n/AIoWaMkeMEvsxloWLXQc6ZIpfF+yahnAqNBTiJBH9In3nQfAVpg7UgVh70lgDAHz9KhBuxzPM7/SrdjExh3EweQ01nNM8/hXNYRoPtb7D05nyqpfd7aMnKJMQRqNNfyrFkj/ANDoRleFIiG5aMS+1FLq65UYsQDoOfrSZwoyk5dqOcGwCgHLn8iPyrSo/Zg9SP4iRmfZZfU/rTuHedN6HcwFxNwT13omGmdAT6fLerALsZyQQ3uP5UI3J3/mj8xXqNr7LLWTx3bmZkWBC+B/xSNmUnTpXAdoeyd7COyXBKtrbuLOViPoelIppui2WKUVbE7AoV4Q00bCtKg/vSv19Zpyo0w3+OT/AEyKLhV8I9/1odj2lPQj86PhPYHpQL5O8a/k1uLSeL2A61RiRSmJXxCeQolAW0Qq0ggzEgH99f0od7EEzRrRCJG7VCBlYLogJadSdutVLHELCoUu3GXMdVExHLYUjhrBkE6Vvh0tuXDLLrrMaH/qqMsLdmrBJ/pRMceDcadDRrryEOYyIGw+s0s10ZJ5+tZv3RlWN9+dWpIxVL5Cvgo1NwA+UmtrdsHc6eQmaVfCMTIBajYe2eenTn/xTjHsP2bdoWxNprd1wzWoCz/iFeZnnGldRxfCLfRrVzKysND59ejDzFeC4XENaZWRirg6MpjL6V0WL+0XEsCJRRCqSq+LMPaYGdCYHTWs0sTu0bYZ1xqRC4hgWw2IuWXHsmJjQ/yn3iKETNGXHPdLM7FjJGZiSfnW1sgDy6+dXr7Mjq+hRNIo9icg0MxTXe6UNr8mBUDfVDPBuz2JxJIsWWuFd4KiJ2mSKW4x2YxtsnPhb49EJA9YmrnYTjTYfiFhgYDOLbdVchSPnPur6D4phNMw32NLNtK0GCTdM+Pb1h1aGVlJP4gR9aaw5GaBrG/mTX0Z2j4JbvWLqXAMrIdTrGntdCPMV8528LDEEkqpIlOfX30uOfMfLj4aY/nJ3OUdNTW+HuwSoUEEGkspXZR75FMYO7qTlgkHXf5608laZXF1JNE1bYyGSekAfPnX6+gKrMzpz5ekUUIIifnW3dgiJHxpOcRvRyMDebKoCyDz8RM7RpyoNhtQPM6061hTpI+PnFTvZbTkaeM1LQJY5Q2URcJJPJfqf02rFtTlDcySf0H0+FaWjKx502ugHID9zTCG+G0gctvU8z8aJdPL49BS6byNANBRchO+3l5+tQhl38MjYbdaNhkgdTWoWdAOvuFZFz9KBAth8rhv5TPvGo+lfT/FL5+7XXAki0zgdcpYfOvl6dP36VV4126xuJVVu3v4YAARBkXaBMSWMeZPpUIbcb+0LE4lcjNkTmi+GZ8zuw98Vzl28vNfkfnWcVJAlAQPLel7KLyZ19NY9RUSS0Fu9hu8K+cHY6MPpNHtoDqNOoO/78jS9tJmdf6l/Sm7aaR86gEQ+5GUn8qI2FASTMmI0EfWhT4aI/sj0FJbFM3MOAF0Op6RSuJXK0UziPZX3UtjPa+H0pojDGGvCN6a+8LzIqOtPWRpTEHBjF86NYv5vZBb0qNiRS4aNqjCjosSz2/EyMOXL8U9elIrxKDIXkRv58/Ws8PYm1dkz4V3/wA4oTCgiMNb4i/kIpy3jlYQdKQs1+cUQFVU/lbStbuGDbiD5ipdptaeRjQIZNiN2B9d/iKJmER50HC6u3pREHiH75VVOfdGvDhUu2f/2Q== + + + + 趙生 (demo_zh_CN) + + + Auderghem + +3282823500 + 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 + From 082339102486f16ed5cb2f220b3a142a25b09f52 Mon Sep 17 00:00:00 2001 From: "Ajay Chauhan (OpenERP)" Date: Mon, 25 Mar 2013 12:35:19 +0530 Subject: [PATCH 019/124] [IMP] hr_payroll: modified employee demo data bzr revid: cha@tinyerp.com-20130325070519-z5mngedvsqll8bll --- addons/hr_payroll/hr_payroll_demo.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml index a22809b00e3..b287637db7e 100644 --- a/addons/hr_payroll/hr_payroll_demo.xml +++ b/addons/hr_payroll/hr_payroll_demo.xml @@ -133,6 +133,9 @@ Roger Scott user + Grand-Rosière + +3282823500 + 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 From 43e64047d5df7d5d22115d29c4af83fb4c61cf4b Mon Sep 17 00:00:00 2001 From: "Ajay Chauhan (OpenERP)" Date: Mon, 25 Mar 2013 13:02:38 +0530 Subject: [PATCH 020/124] [IMP] project_timesheet: modified employee demo data bzr revid: cha@tinyerp.com-20130325073238-7xnqk17pn0h96gwc --- addons/project_timesheet/project_timesheet_demo.xml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/addons/project_timesheet/project_timesheet_demo.xml b/addons/project_timesheet/project_timesheet_demo.xml index 90873d2a418..13f8f01daec 100644 --- a/addons/project_timesheet/project_timesheet_demo.xml +++ b/addons/project_timesheet/project_timesheet_demo.xml @@ -18,6 +18,9 @@ + Grand-Rosière + +3282623500 + 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 @@ -35,12 +38,17 @@ - Aline + Aline Preillon - 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 + Grand-Rosière + +3282823500 + apr@openerp.com + + + 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 From 623f8c8ef4d863336999803d3f085da56a21546e Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Mon, 25 Mar 2013 14:50:41 +0530 Subject: [PATCH 021/124] [FIX] sale_stock: Planned Date based on sale_order date should preserver the utc time instead of putting it 00:00:00. Assumed 00 time lead time sone converstion to dates after then order date , e.g. in pst time if we see some time converstion then it may happen it hows previous day. bzr revid: jam@tinyerp.com-20130325092041-o71rqirijwqh2uqz --- addons/sale/sale.py | 2 +- addons/sale_stock/sale_stock.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 3655b3a8184..99a8e875f77 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -252,7 +252,7 @@ class sale_order(osv.osv): 'company_id': fields.related('shop_id','company_id',type='many2one',relation='res.company',string='Company',store=True,readonly=True) } _defaults = { - 'date_order': fields.date.context_today, + 'date_order': lambda *args: datetime.now().strftime(DEFAULT_SERVER_DATE_FORMAT), 'order_policy': 'manual', 'state': 'draft', 'user_id': lambda obj, cr, uid, context: uid, diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py index 1b5ddefbe74..04289abb294 100644 --- a/addons/sale_stock/sale_stock.py +++ b/addons/sale_stock/sale_stock.py @@ -20,7 +20,7 @@ # ############################################################################## from datetime import datetime, timedelta -from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP, float_compare +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP, float_compare, DEFAULT_SERVER_TIME_FORMAT from dateutil.relativedelta import relativedelta from openerp.osv import fields, osv from openerp import netsvc @@ -232,6 +232,10 @@ class sale_order(osv.osv): res.append(line.procurement_id.id) return res + def _get_gmtdatetime(self, cr, uid, utcdate, context=None): + nowutctime = datetime.utcnow().strftime(DEFAULT_SERVER_TIME_FORMAT) + return "%s %s"%(utcdate, nowutctime) + # if mode == 'finished': # returns True if all lines are done, False otherwise # if mode == 'canceled': @@ -314,7 +318,7 @@ class sale_order(osv.osv): return { 'name': pick_name, 'origin': order.name, - 'date': order.date_order, + 'date': self._get_gmtdatetime(cr, uid, order.date_order, context), 'type': 'out', 'state': 'auto', 'move_type': order.picking_policy, @@ -348,7 +352,8 @@ class sale_order(osv.osv): return True def _get_date_planned(self, cr, uid, order, line, start_date, context=None): - date_planned = datetime.strptime(start_date, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(days=line.delay or 0.0) + start_date = self._get_gmtdatetime(cr, uid, start_date, context) + date_planned = datetime.strptime(start_date, DEFAULT_SERVER_DATETIME_FORMAT) + relativedelta(days=line.delay or 0.0) date_planned = (date_planned - timedelta(days=order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) return date_planned From 918db01d0e39195c837429ca1a3298b7df47faf3 Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Mon, 25 Mar 2013 15:05:26 +0530 Subject: [PATCH 022/124] [FIX] purcahse preserver the user UTC oder confimation time to avoid negative date issue bzr revid: jam@tinyerp.com-20130325093526-1m9wiikdga8v6s6x --- addons/purchase/purchase.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 799601acb64..17f2e9b4592 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -29,7 +29,7 @@ from openerp import pooler from openerp.tools.translate import _ import openerp.addons.decimal_precision as dp from openerp.osv.orm import browse_record, browse_null -from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP, DEFAULT_SERVER_TIME_FORMAT class purchase_order(osv.osv): @@ -226,7 +226,7 @@ class purchase_order(osv.osv): 'journal_id': fields.many2one('account.journal', 'Journal'), } _defaults = { - 'date_order': fields.date.context_today, + 'date_order': lambda *args: datetime.now().strftime(DEFAULT_SERVER_DATE_FORMAT), 'state': 'draft', 'name': lambda obj, cr, uid, context: '/', 'shipped': 0, @@ -593,11 +593,15 @@ class purchase_order(osv.osv): wf_service.trg_validate(uid, 'purchase.order', id, 'purchase_cancel', cr) return True + def _get_gmtdatetime(self, cr, uid, utcdate, context=None): + nowutctime = datetime.utcnow().strftime(DEFAULT_SERVER_TIME_FORMAT) + return "%s %s"%(utcdate, nowutctime) + def _prepare_order_picking(self, cr, uid, order, context=None): return { 'name': self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.in'), 'origin': order.name + ((order.origin and (':' + order.origin)) or ''), - 'date': order.date_order, + 'date': self._get_gmtdatetime(cr, uid, order.date_order, context), 'partner_id': order.dest_address_id.id or order.partner_id.id, 'invoice_state': '2binvoiced' if order.invoice_method == 'picking' else 'none', 'type': 'in', @@ -615,8 +619,8 @@ class purchase_order(osv.osv): 'product_uos_qty': order_line.product_qty, 'product_uom': order_line.product_uom.id, 'product_uos': order_line.product_uom.id, - 'date': order_line.date_planned, - 'date_expected': order_line.date_planned, + 'date': self._get_gmtdatetime(cr, uid, order.date_order, context), + 'date_expected': self._get_gmtdatetime(cr, uid, order.date_order, context), 'location_id': order.partner_id.property_stock_supplier.id, 'location_dest_id': order.location_id.id, 'picking_id': picking_id, From fb38f1d81d1498dc228e4c5ce09d4a99a7b42fb3 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 25 Mar 2013 14:44:10 +0100 Subject: [PATCH 023/124] [FIX] Update partner in associated bank statements when changing partner in pos order bzr revid: jco@openerp.com-20130325134410-ky0akwdcfr805df8 --- addons/point_of_sale/point_of_sale.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index 44139f7a499..b47f31a2dad 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -523,6 +523,17 @@ class pos_order(osv.osv): wf_service.trg_validate(uid, 'pos.order', order_id, 'paid', cr) return order_ids + def write(self, cr, uid, ids, vals, context=None): + #If you change the partner of the PoS order, change also the partner of the associated bank statements + res = super(pos_order, self).write(cr, uid, ids, vals, context=context) + bsl_obj = self.pool.get("account.bank.statement.line") + if 'partner_id' in vals: + for posorder in self.browse(cr, uid, ids, context=context): + bsl_ids = [x.id for x in posorder.statement_ids] + part_id = self.pool.get('res.partner')._find_accounting_partner(posorder.partner_id).id + bsl_obj.write(cr, uid, bsl_ids, {'partner_id': part_id}, context=context) + return res + def unlink(self, cr, uid, ids, context=None): for rec in self.browse(cr, uid, ids, context=context): if rec.state not in ('draft','cancel'): From c1afba4742c73bd25b818515b27d793869b25fd2 Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Tue, 26 Mar 2013 05:14:37 -0700 Subject: [PATCH 024/124] [FIX] SO/PO: Fixed date to dateime convestion for expected date based on Order Date, Converstion is based on assumption date date will be in user tz and taking 12:00 hours time to make right time converstion bzr revid: jam@tinyerp.com-20130326121437-89c42jtdw7qv3l2w --- addons/purchase/purchase.py | 37 ++++++++++++++++++++++++++------- addons/sale/sale.py | 2 +- addons/sale_stock/sale_stock.py | 34 ++++++++++++++++++++++++------ 3 files changed, 58 insertions(+), 15 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 17f2e9b4592..1041b016fb3 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -20,6 +20,8 @@ ############################################################################## import time +import pytz +from openerp import SUPERUSER_ID from datetime import datetime from dateutil.relativedelta import relativedelta @@ -29,7 +31,7 @@ from openerp import pooler from openerp.tools.translate import _ import openerp.addons.decimal_precision as dp from openerp.osv.orm import browse_record, browse_null -from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP, DEFAULT_SERVER_TIME_FORMAT +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP class purchase_order(osv.osv): @@ -226,7 +228,7 @@ class purchase_order(osv.osv): 'journal_id': fields.many2one('account.journal', 'Journal'), } _defaults = { - 'date_order': lambda *args: datetime.now().strftime(DEFAULT_SERVER_DATE_FORMAT), + 'date_order': fields.date.context_today, 'state': 'draft', 'name': lambda obj, cr, uid, context: '/', 'shipped': 0, @@ -593,15 +595,34 @@ class purchase_order(osv.osv): wf_service.trg_validate(uid, 'purchase.order', id, 'purchase_cancel', cr) return True - def _get_gmtdatetime(self, cr, uid, utcdate, context=None): - nowutctime = datetime.utcnow().strftime(DEFAULT_SERVER_TIME_FORMAT) - return "%s %s"%(utcdate, nowutctime) + def date_to_datetime(self, cr, uid, userdate, context=None): + """ + Function accepts date string assumed in client TZ and result is produced + in UTC timezone with 12:00 is assumed time to be sure, that system will + avoid tz date converstion issues. + e.g. Date 2013-03-26 in user tz will get 12:00 Hours and will then + get converted to UTC to avoid tz converstion. + userdate: date string in in user time zone. + return : the utc datetime string. + """ + user_datetime = datetime.strptime(userdate, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(hours=12.0) + if context and context.get('tz'): + tz_name = context['tz'] + else: + tz_name = self.pool.get('res.users').read(cr, SUPERUSER_ID, uid, ['tz'])['tz'] + if not tz_name: + tz_name = time.tzname[time.daylight] + utc = pytz.timezone('UTC') + context_tz = pytz.timezone(tz_name) + local_timestamp = context_tz.localize(user_datetime, is_dst=False) + user_datetime = local_timestamp.astimezone(utc) + return user_datetime.strftime(DEFAULT_SERVER_DATETIME_FORMAT) def _prepare_order_picking(self, cr, uid, order, context=None): return { 'name': self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.in'), 'origin': order.name + ((order.origin and (':' + order.origin)) or ''), - 'date': self._get_gmtdatetime(cr, uid, order.date_order, context), + 'date': self.date_to_datetime(cr, uid, order.date_order, context), 'partner_id': order.dest_address_id.id or order.partner_id.id, 'invoice_state': '2binvoiced' if order.invoice_method == 'picking' else 'none', 'type': 'in', @@ -619,8 +640,8 @@ class purchase_order(osv.osv): 'product_uos_qty': order_line.product_qty, 'product_uom': order_line.product_uom.id, 'product_uos': order_line.product_uom.id, - 'date': self._get_gmtdatetime(cr, uid, order.date_order, context), - 'date_expected': self._get_gmtdatetime(cr, uid, order.date_order, context), + 'date': self.date_to_datetime(cr, uid, order.date_order, context), + 'date_expected': self.date_to_datetime(cr, uid, order.date_order, context), 'location_id': order.partner_id.property_stock_supplier.id, 'location_dest_id': order.location_id.id, 'picking_id': picking_id, diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 99a8e875f77..3655b3a8184 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -252,7 +252,7 @@ class sale_order(osv.osv): 'company_id': fields.related('shop_id','company_id',type='many2one',relation='res.company',string='Company',store=True,readonly=True) } _defaults = { - 'date_order': lambda *args: datetime.now().strftime(DEFAULT_SERVER_DATE_FORMAT), + 'date_order': fields.date.context_today, 'order_policy': 'manual', 'state': 'draft', 'user_id': lambda obj, cr, uid, context: uid, diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py index 04289abb294..3fb41895d6e 100644 --- a/addons/sale_stock/sale_stock.py +++ b/addons/sale_stock/sale_stock.py @@ -20,11 +20,14 @@ # ############################################################################## from datetime import datetime, timedelta -from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP, float_compare, DEFAULT_SERVER_TIME_FORMAT +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP, float_compare from dateutil.relativedelta import relativedelta from openerp.osv import fields, osv from openerp import netsvc from openerp.tools.translate import _ +import pytz +import time +from openerp import SUPERUSER_ID class sale_shop(osv.osv): _inherit = "sale.shop" @@ -232,9 +235,28 @@ class sale_order(osv.osv): res.append(line.procurement_id.id) return res - def _get_gmtdatetime(self, cr, uid, utcdate, context=None): - nowutctime = datetime.utcnow().strftime(DEFAULT_SERVER_TIME_FORMAT) - return "%s %s"%(utcdate, nowutctime) + def date_to_datetime(self, cr, uid, userdate, context=None): + """ + Function accepts date string assumed in client TZ and result is produced + in UTC timezone with 12:00 is assumed time to be sure, that system will + avoid tz date converstion issues. + e.g. Date 2013-03-26 in user tz will get 12:00 Hours and will then + get converted to UTC to avoid tz converstion. + userdate: date string in in user time zone. + return : the utc datetime string. + """ + user_datetime = datetime.strptime(userdate, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(hours=12.0) + if context and context.get('tz'): + tz_name = context['tz'] + else: + tz_name = self.pool.get('res.users').read(cr, SUPERUSER_ID, uid, ['tz'])['tz'] + if not tz_name: + tz_name = time.tzname[time.daylight] + utc = pytz.timezone('UTC') + context_tz = pytz.timezone(tz_name) + local_timestamp = context_tz.localize(user_datetime, is_dst=False) + user_datetime = local_timestamp.astimezone(utc) + return user_datetime.strftime(DEFAULT_SERVER_DATETIME_FORMAT) # if mode == 'finished': # returns True if all lines are done, False otherwise @@ -318,7 +340,7 @@ class sale_order(osv.osv): return { 'name': pick_name, 'origin': order.name, - 'date': self._get_gmtdatetime(cr, uid, order.date_order, context), + 'date': self.date_to_datetime(cr, uid, order.date_order, context), 'type': 'out', 'state': 'auto', 'move_type': order.picking_policy, @@ -352,7 +374,7 @@ class sale_order(osv.osv): return True def _get_date_planned(self, cr, uid, order, line, start_date, context=None): - start_date = self._get_gmtdatetime(cr, uid, start_date, context) + start_date = self.date_to_datetime(cr, uid, start_date, context) date_planned = datetime.strptime(start_date, DEFAULT_SERVER_DATETIME_FORMAT) + relativedelta(days=line.delay or 0.0) date_planned = (date_planned - timedelta(days=order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) return date_planned From f3a976fd53a3bd09256be26fceffac6556194527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 26 Mar 2013 13:53:11 +0100 Subject: [PATCH 025/124] [FIX] mail: fixed suggested recipients, not taking into account followers; when having multiple email addresses, this could lead to people being suggested based on email although they already are followers. bzr revid: tde@openerp.com-20130326125311-xlt1lt1te28fcm1o --- addons/mail/mail_thread.py | 26 +++++++++++++++++++++----- addons/mail/static/src/js/mail.js | 12 ++++++++++-- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index cb8da42ab47..c5ec5300b56 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -848,7 +848,8 @@ class mail_thread(osv.AbstractModel): recipient in the result dictionary. The form is : partner_id, partner_name or partner_name, reason """ if email and not partner: - partner_info = self.message_get_partner_info_from_emails(cr, uid, [email], context=context)[0] + # get partner info from email + partner_info = self.message_get_partner_info_from_emails(cr, uid, [email], context=context, res_id=obj.id)[0] if partner_info.get('partner_id'): partner = self.pool.get('res.partner').browse(cr, SUPERUSER_ID, [partner_info.get('partner_id')], context=context)[0] if email and email in [val[1] for val in result[obj.id]]: # already existing email -> skip @@ -876,7 +877,11 @@ class mail_thread(osv.AbstractModel): self._message_add_suggested_recipient(cr, uid, result, obj, partner=obj.user_id.partner_id, reason=self._all_columns['user_id'].column.string, context=context) return result - def message_get_partner_info_from_emails(self, cr, uid, emails, link_mail=False, context=None): + def message_get_partner_info_from_emails(self, cr, uid, emails, link_mail=False, context=None, res_id=None): + """ Wrapper with weird order parameter because of 7.0 fix. """ + return self.message_find_partner_from_emails(cr, uid, res_id, emails, link_mail=link_mail, context=context) + + def message_find_partner_from_emails(self, cr, uid, id, emails, link_mail=False, context=None): """ Convert a list of emails into a list partner_ids and a list new_partner_ids. The return value is non conventional because it is meant to be used by the mail widget. @@ -886,15 +891,26 @@ class mail_thread(osv.AbstractModel): mail_message_obj = self.pool.get('mail.message') partner_obj = self.pool.get('res.partner') result = list() + if id: + obj = self.browse(cr, SUPERUSER_ID, id, context=context) + else: + obj = None for email in emails: partner_info = {'full_name': email, 'partner_id': False} m = re.search(r"((.+?)\s*<)?([^<>]+@[^<>]+)>?", email, re.IGNORECASE | re.DOTALL) if not m: continue email_address = m.group(3) - ids = partner_obj.search(cr, SUPERUSER_ID, [('email', '=', email_address)], context=context) - if ids: - partner_info['partner_id'] = ids[0] + # first try: check in document's followers + if obj: + for follower in obj.message_follower_ids: + if follower.email == email_address: + partner_info['partner_id'] = follower.id + # second try: check in partners + if not partner_info.get('partner_id'): + ids = partner_obj.search(cr, SUPERUSER_ID, [('email', '=', email_address)], context=context) + if ids: + partner_info['partner_id'] = ids[0] result.append(partner_info) # link mail with this from mail to the new partner id diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index cc34483c17b..d715979c507 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -620,7 +620,11 @@ openerp.mail = function (session) { // have unknown names -> call message_get_partner_info_from_emails to try to find partner_id var find_done = $.Deferred(); if (names_to_find.length > 0) { - find_done = self.parent_thread.ds_thread._model.call('message_get_partner_info_from_emails', [names_to_find]); + // find_done = self.parent_thread.ds_thread._model.call('message_get_partner_info_from_emails', [names_to_find]); + var values = { + 'res_id': this.context.default_res_id, + } + find_done = self.parent_thread.ds_thread._model.call('message_get_partner_info_from_emails', [names_to_find], values); } else { find_done.resolve([]); @@ -666,7 +670,11 @@ openerp.mail = function (session) { var new_names_to_find = _.difference(names_to_find, names_to_remove); find_done = $.Deferred(); if (new_names_to_find.length > 0) { - find_done = self.parent_thread.ds_thread._model.call('message_get_partner_info_from_emails', [new_names_to_find, true]); + var values = { + 'link_mail': true, + 'res_id': this.context.default_res_id, + } + find_done = self.parent_thread.ds_thread._model.call('message_get_partner_info_from_emails', [new_names_to_find], values); } else { find_done.resolve([]); From 2858a4c54a1902d23658f8abbe59b4382cb4c36f Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Tue, 26 Mar 2013 20:53:14 +0530 Subject: [PATCH 026/124] [IMP] Impoved tooltips for the SO/PO Lead time for Company. bzr revid: jam@tinyerp.com-20130326152314-77h1f5eqy0zy1gax --- addons/purchase/company.py | 4 +++- addons/sale_stock/company.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/purchase/company.py b/addons/purchase/company.py index 275f5ea200d..e1337361cc7 100644 --- a/addons/purchase/company.py +++ b/addons/purchase/company.py @@ -25,7 +25,9 @@ class company(osv.osv): _inherit = 'res.company' _columns = { 'po_lead': fields.float('Purchase Lead Time', required=True, - help="This is the leads/security time for each purchase order."), + help="This is the leads/security time for each purchase order."\ + "This number of days will be removed from what suppliers has promise to you"\ + "for company security purpose."), } _defaults = { 'po_lead': lambda *a: 1.0, diff --git a/addons/sale_stock/company.py b/addons/sale_stock/company.py index 67440ed6c67..716300f4f52 100644 --- a/addons/sale_stock/company.py +++ b/addons/sale_stock/company.py @@ -25,8 +25,8 @@ class company(osv.osv): _inherit = 'res.company' _columns = { 'security_lead': fields.float('Security Days', required=True, - help="This is the days added to what you promise to customers "\ - "for security purpose"), + help="This number of days will be removed from what you promise to customers"\ + "for company security purpose to cope with any problems of procurement, final shipping, order negotiation etc."), } _defaults = { 'security_lead': 0.0, From e5f8921f5f11998afc2fa6b8fffaa8eef7340f0c Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Wed, 27 Mar 2013 00:39:24 +0530 Subject: [PATCH 027/124] [FIX] yaml test case fix for So date and planned ate checking. bzr revid: jam@tinyerp.com-20130326190924-sojhm8kxf7qqji42 --- addons/sale_stock/test/picking_order_policy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/sale_stock/test/picking_order_policy.yml b/addons/sale_stock/test/picking_order_policy.yml index 800c131e288..d4d598d10e9 100644 --- a/addons/sale_stock/test/picking_order_policy.yml +++ b/addons/sale_stock/test/picking_order_policy.yml @@ -26,8 +26,7 @@ order = self.browse(cr, uid, ref("sale.sale_order_6")) for order_line in order.order_line: procurement = order_line.procurement_id - date_planned = datetime.strptime(order.date_order, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(days=order_line.delay or 0.0) - date_planned = (date_planned - timedelta(days=order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) + date_planned = self._get_date_planned(cr, uid, order, order_line, order.date_order, context=context) assert procurement.date_planned == date_planned, "Scheduled date is not correspond." assert procurement.product_id.id == order_line.product_id.id, "Product is not correspond." assert procurement.product_qty == order_line.product_uom_qty, "Qty is not correspond." @@ -60,7 +59,8 @@ output_id = sale_order.shop_id.warehouse_id.lot_output_id.id for move in picking.move_lines: order_line = move.sale_line_id - date_planned = datetime.strptime(sale_order.date_order, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(days=order_line.delay or 0.0) + sale_order_date = self.date_to_datetime(cr, uid, sale_order.date_order, context) + date_planned = datetime.strptime(sale_order_date, DEFAULT_SERVER_DATETIME_FORMAT) + relativedelta(days=order_line.delay or 0.0) date_planned = (date_planned - timedelta(days=sale_order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) assert datetime.strptime(move.date_expected, DEFAULT_SERVER_DATETIME_FORMAT) == datetime.strptime(date_planned, DEFAULT_SERVER_DATETIME_FORMAT), "Excepted Date is not correspond with Planned Date." assert move.product_id.id == order_line.product_id.id,"Product is not correspond." From 78a8766861d468b2e49093b3f86b9a4628f397ff Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Wed, 27 Mar 2013 01:24:00 +0530 Subject: [PATCH 028/124] [FIX] project_mrp yaml test case fix for procurment date vs date_deadline bzr revid: jam@tinyerp.com-20130326195400-pphgliizzzkfcruk --- addons/project_mrp/test/project_task_procurement.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project_mrp/test/project_task_procurement.yml b/addons/project_mrp/test/project_task_procurement.yml index 8854ce20c80..967461ca30a 100644 --- a/addons/project_mrp/test/project_task_procurement.yml +++ b/addons/project_mrp/test/project_task_procurement.yml @@ -27,7 +27,7 @@ assert (not project and not account) or project.analytic_account_id == account, "Project does not correspond." planned_hours = self._convert_qty_company_hours(cr, uid, procurement, context=context) assert task.planned_hours == planned_hours, 'Planned Hours do not correspond.' - assert datetime.strptime(task.date_deadline, '%Y-%m-%d') == datetime.strptime(procurement.date_planned, '%Y-%m-%d %H:%M:%S'), 'Deadline does not correspond.' + assert datetime.strptime(task.date_deadline, '%Y-%m-%d') == datetime.strptime(procurement.date_planned[:10], '%Y-%m-%d'), 'Deadline does not correspond.' if procurement.product_id.product_manager: assert task.user_id.id == procurement.product_id.product_manager.id, 'Allocated Person does not correspond with Service Product Manager.' - From a890cedff685aa5fa30fcbdf317dd83d2384e079 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Thu, 28 Mar 2013 10:59:42 +0100 Subject: [PATCH 029/124] [FIX] Remove double . in numbered bulleted list bzr revid: jco@openerp.com-20130328095942-7muw0dt7x2jzmdka --- .../base_report_designer/openerp_sxw2rml/normalized_odt2rml.xsl | 2 +- .../base_report_designer/openerp_sxw2rml/normalized_oo2rml.xsl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/base_report_designer/openerp_sxw2rml/normalized_odt2rml.xsl b/addons/base_report_designer/openerp_sxw2rml/normalized_odt2rml.xsl index 50ffb3d81be..9f9e5050d69 100644 --- a/addons/base_report_designer/openerp_sxw2rml/normalized_odt2rml.xsl +++ b/addons/base_report_designer/openerp_sxw2rml/normalized_odt2rml.xsl @@ -414,7 +414,7 @@ - . + diff --git a/addons/base_report_designer/openerp_sxw2rml/normalized_oo2rml.xsl b/addons/base_report_designer/openerp_sxw2rml/normalized_oo2rml.xsl index 66ef0b5b53c..ae68ae1ed1b 100644 --- a/addons/base_report_designer/openerp_sxw2rml/normalized_oo2rml.xsl +++ b/addons/base_report_designer/openerp_sxw2rml/normalized_oo2rml.xsl @@ -414,7 +414,7 @@ - . + From 2d210fce44faa23adce7399de8b5c965353e1191 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Thu, 28 Mar 2013 12:28:29 +0100 Subject: [PATCH 030/124] [FIX] Use accounting partner and take partner into account when group by bzr revid: jco@openerp.com-20130328112829-6sj9eixmkzm3dr1r --- addons/point_of_sale/point_of_sale.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index b47f31a2dad..570168795a7 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -526,11 +526,16 @@ class pos_order(osv.osv): def write(self, cr, uid, ids, vals, context=None): #If you change the partner of the PoS order, change also the partner of the associated bank statements res = super(pos_order, self).write(cr, uid, ids, vals, context=context) + partner_obj = self.pool.get('res.partner') bsl_obj = self.pool.get("account.bank.statement.line") if 'partner_id' in vals: for posorder in self.browse(cr, uid, ids, context=context): bsl_ids = [x.id for x in posorder.statement_ids] - part_id = self.pool.get('res.partner')._find_accounting_partner(posorder.partner_id).id + if vals['partner_id']: + p_id = partner_obj.browse(cr, uid, vals['partner_id'], context=context) + part_id = partner_obj._find_accounting_partner(p_id).id + else: + part_id = False bsl_obj.write(cr, uid, bsl_ids, {'partner_id': part_id}, context=context) return res @@ -962,9 +967,9 @@ class pos_order(osv.osv): }) if data_type == 'product': - key = ('product', values['product_id'],) + key = ('product', values['partner_id'], values['product_id']) elif data_type == 'tax': - key = ('tax', values['tax_code_id'],) + key = ('tax', values['partner_id'], values['tax_code_id'],) elif data_type == 'counter_part': key = ('counter_part', values['partner_id'], values['account_id']) else: @@ -1040,7 +1045,7 @@ class pos_order(osv.osv): 'debit': ((amount<0) and -amount) or 0.0, 'tax_code_id': tax_code_id, 'tax_amount': tax_amount, - 'partner_id': order.partner_id and order.partner_id.id or False + 'partner_id': order.partner_id and self.pool.get("res.partner")._find_accounting_partner(order.partner_id).id or False }) # For each remaining tax with a code, whe create a move line @@ -1082,7 +1087,7 @@ class pos_order(osv.osv): 'account_id': order_account, 'credit': ((order.amount_total < 0) and -order.amount_total) or 0.0, 'debit': ((order.amount_total > 0) and order.amount_total) or 0.0, - 'partner_id': order.partner_id and order.partner_id.id or False + 'partner_id': order.partner_id and self.pool.get("res.partner")._find_accounting_partner(order.partner_id).id or False }) order.write({'state':'done', 'account_move': move_id}) From c0b4f5b714c6804a3747ba090556fd78aacd9a94 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Thu, 28 Mar 2013 13:16:15 +0100 Subject: [PATCH 031/124] [FIX] taxes should have partner too bzr revid: jco@openerp.com-20130328121615-eyoplrrrofrosuay --- addons/point_of_sale/point_of_sale.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index 570168795a7..cd3dea7cb66 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -1063,6 +1063,7 @@ class pos_order(osv.osv): 'debit': 0.0, 'tax_code_id': tax_code_id, 'tax_amount': tax_amount, + 'partner_id': order.partner_id and self.pool.get("res.partner")._find_accounting_partner(order.partner_id).id or False }) # Create a move for each tax group @@ -1079,6 +1080,7 @@ class pos_order(osv.osv): 'debit': ((tax_amount<0) and -tax_amount) or 0.0, 'tax_code_id': key[tax_code_pos], 'tax_amount': tax_amount, + 'partner_id': order.partner_id and self.pool.get("res.partner")._find_accounting_partner(order.partner_id).id or False }) # counterpart From 78e94187179b1a62c2699b8f14b6369de10759c6 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Thu, 28 Mar 2013 16:55:49 +0100 Subject: [PATCH 032/124] [FIX] Write all lines at once to the move instead of creating move lines separately bzr revid: jco@openerp.com-20130328155549-pdqg0fgk1timzgfb --- addons/point_of_sale/point_of_sale.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index cd3dea7cb66..253fdea02ef 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -1094,9 +1094,12 @@ class pos_order(osv.osv): order.write({'state':'done', 'account_move': move_id}) + all_lines = [] for group_key, group_data in grouped_data.iteritems(): for value in group_data: - account_move_line_obj.create(cr, uid, value, context=context) + all_lines.append((0, 0, value),) + if move_id: #In case no order was changed + self.pool.get("account.move").write(cr, uid, [move_id], {'line_id':all_lines}, context=context) return True From e3d1e4fb44a1958b8d135dd892b950a306c9e77a Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 29 Mar 2013 12:38:27 +0100 Subject: [PATCH 033/124] [IMP] view_form: radio button for many2one bzr revid: chm@openerp.com-20130329113827-me6d3ho6jrp525f0 --- addons/web/static/src/js/view_form.js | 63 ++++++++++++++++++++++----- addons/web/static/src/xml/base.xml | 10 ++--- 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 3b851568fe6..d95e5a9306d 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2814,21 +2814,60 @@ instance.web.form.FieldRadio = instance.web.form.AbstractField.extend(instance.w */ var self = this; this._super(field_manager, node); - this.horizontal = +this.options.horizontal; - this.no_radiolabel = +this.options.no_radiolabel; - this.display_readonly = +this.options.display_readonly; + this.horizontal = +this.options.horizontal || false; + this.no_radiolabel = +this.options.no_radiolabel || false; + this.display_readonly = +this.options.display_readonly || false; + this.selection = this.field.selection || []; + this.domain = false; }, initialize_content: function () { var self = this; - this.$el.on('click', '.oe_radio_input,.oe_radio_header', function (event) { - var id = $(event.target).data("id"); - id = isNaN(+id) ? id : +id; - if (id && !self.get("effective_readonly")) { - if (!self.field.required && id == self.get_value()) { - self.set_value(false); - } else { - self.set_value(id); - } + this.$el.on('click', '.oe_radio_input,.oe_radio_header', function (e) {self.on_click_change_value(e)}); + this.field_manager.on("view_content_has_changed", this, this.get_selection); + }, + on_click_change_value: function (event) { + var id = $(event.target).data("id") || $(event.target).parent().data("id"); + id = isNaN(+id) ? id : +id; + if (id && !this.get("effective_readonly")) { + if (!this.field.required && id == this.get_value()) { + this.set_value(false); + } else { + this.set_value(id); + } + } + }, + /** Get the selection and render it + * selection: [[identifier, value_to_display], ...] + * For selection fields: this is directly given by this.field.selection + * For many2one fields: perform a search on the relation of the many2one field + */ + get_selection: function() { + var self = this; + var selection = []; + var def = $.Deferred(); + if (self.field.type == "many2one") { + var domain = instance.web.pyeval.eval('domain', this.build_domain()) || []; + if (! _.isEqual(self.domain, domain)) { + self.domain = domain; + new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), self.domain) + .read_slice(['name'], {}) + .then(function (records) { + for(var i = 0; i < records.length; i++) { + selection.push([records[i].id, records[i].name]); + } + def.resolve(); + }); + } + } + else if (self.field.type == "selection") { + selection = self.field.selection || []; + def.resolve(); + } + def.then(function () { + if (! _.isEqual(selection, self.get('selection'))) { + self.selection = selection; + self.$el.html($(QWeb.render("FieldRadio", {'widget': self})).html()); + self.set("selection", _.clone(this.selection)); } }); }, diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 41067240b52..e74ff0bb796 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1114,20 +1114,20 @@ - + - +

- +
&nbsp;
- -
+ +
&nbsp;
From 90f6175053410237cc3921ce67c0f8b83d90dae3 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 29 Mar 2013 12:44:49 +0100 Subject: [PATCH 034/124] [IMP] view_form: radio button for many2one: check context bzr revid: chm@openerp.com-20130329114449-93yghqpenjb1sd22 --- addons/web/static/src/js/view_form.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index d95e5a9306d..08dc2f0dcaf 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2819,6 +2819,7 @@ instance.web.form.FieldRadio = instance.web.form.AbstractField.extend(instance.w this.display_readonly = +this.options.display_readonly || false; this.selection = this.field.selection || []; this.domain = false; + this.context = false; }, initialize_content: function () { var self = this; @@ -2847,9 +2848,11 @@ instance.web.form.FieldRadio = instance.web.form.AbstractField.extend(instance.w var def = $.Deferred(); if (self.field.type == "many2one") { var domain = instance.web.pyeval.eval('domain', this.build_domain()) || []; - if (! _.isEqual(self.domain, domain)) { + var context = instance.web.pyeval.eval('context', this.build_context()) || []; + if (! _.isEqual(self.domain, domain) || ! _.isEqual(self.context, context)) { self.domain = domain; - new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), self.domain) + self.context = context; + new instance.web.DataSetSearch(self, self.field.relation, self.context, self.domain) .read_slice(['name'], {}) .then(function (records) { for(var i = 0; i < records.length; i++) { From dbd331ee6dc9396e3d8991ef6a5de6370eea0390 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 29 Mar 2013 15:10:38 +0100 Subject: [PATCH 035/124] [IMP] view_form: radio button for many2one read name_get bzr revid: chm@openerp.com-20130329141038-uobzji7e8fxkq4rr --- addons/web/static/src/js/view_form.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 08dc2f0dcaf..fe396d4be1e 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2812,7 +2812,6 @@ instance.web.form.FieldRadio = instance.web.form.AbstractField.extend(instance.w * - "no_radiolabel" don't display text values * - "display_readonly" to display radio button (not clickable) in read only mode */ - var self = this; this._super(field_manager, node); this.horizontal = +this.options.horizontal || false; this.no_radiolabel = +this.options.no_radiolabel || false; @@ -2852,13 +2851,13 @@ instance.web.form.FieldRadio = instance.web.form.AbstractField.extend(instance.w if (! _.isEqual(self.domain, domain) || ! _.isEqual(self.context, context)) { self.domain = domain; self.context = context; - new instance.web.DataSetSearch(self, self.field.relation, self.context, self.domain) - .read_slice(['name'], {}) + var ds = new instance.web.DataSet(self, self.field.relation, self.context); + ds.call('search', [self.domain]) .then(function (records) { - for(var i = 0; i < records.length; i++) { - selection.push([records[i].id, records[i].name]); - } - def.resolve(); + ds.name_get(records).then(function (records) { + selection = records; + def.resolve(); + }); }); } } From dd044c571d02fe63cbe699366c06da4c6cd0c5c9 Mon Sep 17 00:00:00 2001 From: Cedric Snauwaert Date: Fri, 29 Mar 2013 16:02:01 +0100 Subject: [PATCH 036/124] [FIX]base_calendar: when running scheduler for alarm, the argument exdate should be a list and not a string bzr revid: csn@openerp.com-20130329150201-tlcflrzdrd8v3wiq --- addons/base_calendar/base_calendar.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index ab0d8d324b4..25bfcac448c 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -858,7 +858,9 @@ class calendar_alarm(osv.osv): if hasattr(res_obj, 'rrule') and res_obj.rrule: event_date = datetime.strptime(res_obj.date, '%Y-%m-%d %H:%M:%S') - recurrent_dates = get_recurrent_dates(res_obj.rrule, res_obj.exdate, event_date, res_obj.exrule) + #exdate is a string and we need a list + exdate = res_obj.exdate and res_obj.exdate.split(',') or [] + recurrent_dates = get_recurrent_dates(res_obj.rrule, exdate, event_date, res_obj.exrule) trigger_interval = alarm.trigger_interval if trigger_interval == 'days': From cec486a1615e1f20e30a9ceca36f0bd7cf6315d2 Mon Sep 17 00:00:00 2001 From: Cedric Snauwaert Date: Fri, 29 Mar 2013 16:59:38 +0100 Subject: [PATCH 037/124] [FIX]account_invoice: remove useless and ugly viol error message from the past bzr revid: csn@openerp.com-20130329155938-gezglrgphnndswnr --- addons/account/account_invoice.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index b4705245268..eb362455cd9 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -370,18 +370,6 @@ class account_invoice(osv.osv): context['view_id'] = view_id return context - def create(self, cr, uid, vals, context=None): - if context is None: - context = {} - try: - return super(account_invoice, self).create(cr, uid, vals, context) - except Exception, e: - if '"journal_id" viol' in e.args[0]: - raise orm.except_orm(_('Configuration Error!'), - _('There is no Sale/Purchase Journal(s) defined.')) - else: - raise orm.except_orm(_('Unknown Error!'), str(e)) - def invoice_print(self, cr, uid, ids, context=None): ''' This function prints the invoice and mark it as sent, so that we can see more easily the next step of the workflow From 9c6dc6ab99762ec19ba9b15c8d1a1fe75d5b6243 Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Mon, 1 Apr 2013 21:50:50 +0530 Subject: [PATCH 038/124] [USA] Imporved the lead time tooltip bzr revid: jam@tinyerp.com-20130401162050-m5cor1v1qhz4zxr2 --- addons/purchase/company.py | 5 ++--- addons/sale_stock/company.py | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/addons/purchase/company.py b/addons/purchase/company.py index e1337361cc7..307c0c43d70 100644 --- a/addons/purchase/company.py +++ b/addons/purchase/company.py @@ -25,9 +25,8 @@ class company(osv.osv): _inherit = 'res.company' _columns = { 'po_lead': fields.float('Purchase Lead Time', required=True, - help="This is the leads/security time for each purchase order."\ - "This number of days will be removed from what suppliers has promise to you"\ - "for company security purpose."), + help="This is the leads/security time for each purchase order. For company security purpose this"\ + "many days will be removed from the date what suppliers has promised to you."), } _defaults = { 'po_lead': lambda *a: 1.0, diff --git a/addons/sale_stock/company.py b/addons/sale_stock/company.py index 716300f4f52..cd07df3f744 100644 --- a/addons/sale_stock/company.py +++ b/addons/sale_stock/company.py @@ -25,8 +25,8 @@ class company(osv.osv): _inherit = 'res.company' _columns = { 'security_lead': fields.float('Security Days', required=True, - help="This number of days will be removed from what you promise to customers"\ - "for company security purpose to cope with any problems of procurement, final shipping, order negotiation etc."), + help="For company security purpose this many days will be removed from the date, what you have promised to customers,"\ + "to cope up with any problems of procurement, final shipping, order negotiation etc."), } _defaults = { 'security_lead': 0.0, From 0b5788eec7fce57ce755979113d3086a286be506 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Tue, 2 Apr 2013 13:52:54 +0200 Subject: [PATCH 039/124] [FIX] Purchase ok (can be purchase) should only be used for domains bzr revid: jco@openerp.com-20130402115254-mtp113vyk4yhlmyb --- addons/procurement/schedulers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/procurement/schedulers.py b/addons/procurement/schedulers.py index 3cb34d6bdff..6bc1b6fc0c2 100644 --- a/addons/procurement/schedulers.py +++ b/addons/procurement/schedulers.py @@ -158,7 +158,7 @@ class procurement_order(osv.osv): wf_service = netsvc.LocalService("workflow") warehouse_ids = warehouse_obj.search(cr, uid, [], context=context) - products_ids = product_obj.search(cr, uid, [('purchase_ok', '=', True)], order='id', context=context) + products_ids = product_obj.search(cr, uid, [], order='id', context=context) for warehouse in warehouse_obj.browse(cr, uid, warehouse_ids, context=context): context['warehouse'] = warehouse From a68f49c6f61499f713351168c3d44ee352df00ed Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Wed, 3 Apr 2013 11:07:58 +0200 Subject: [PATCH 040/124] [FIX] Replace analytic account with analytic distribution in multiple analytic accounts bzr revid: jco@openerp.com-20130403090758-kzb2jdtxt0y97mvg --- .../account_analytic_plans_view.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index 3dcbcda6952..58d5f71793d 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -89,6 +89,18 @@ + + account.invoice.form.inherit + account.invoice + + 16 + + + + + + + account.analytic.plan.instance.form From 7d47c62f0c8eb0b37c0f4342e024e378da08341b Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Wed, 3 Apr 2013 12:21:04 +0200 Subject: [PATCH 041/124] [FIX] Only give analytic distribution on customer/supplier invoice if sale/purchase checked bzr revid: jco@openerp.com-20130403102104-udpyg90w8jrdg3lg --- .../account_analytic_plans_view.xml | 23 ------------------- .../purchase_analytic_plans_view.xml | 17 ++++++++++++++ .../sale_analytic_plans_view.xml | 14 +++++++++++ 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index 58d5f71793d..19d6179e4eb 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -64,30 +64,7 @@ - - - account.invoice.line.form.inherit - account.invoice.line - - - - - - - - - - account.invoice.supplier.form.inherit - account.invoice - - 2 - - - - - - account.invoice.form.inherit diff --git a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml index bcc67a2a215..d1db411f68c 100644 --- a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml +++ b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml @@ -38,5 +38,22 @@ + + + + + + + + account.invoice.supplier.form.inherit + account.invoice + + 2 + + + + + + diff --git a/addons/sale_analytic_plans/sale_analytic_plans_view.xml b/addons/sale_analytic_plans/sale_analytic_plans_view.xml index 6c788866520..3600d71b7d4 100644 --- a/addons/sale_analytic_plans/sale_analytic_plans_view.xml +++ b/addons/sale_analytic_plans/sale_analytic_plans_view.xml @@ -38,5 +38,19 @@ + + + + + account.invoice.line.form.inherit + account.invoice.line + + + + + + + + From 35b51a2efdd85f4089787243b5e13890d4835c56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 3 Apr 2013 16:51:51 +0200 Subject: [PATCH 042/124] [IMP] Chatter: improved footer of chatter messages: better differentiation of logged a note / send a message / system notification, with or without recipients. bzr revid: tde@openerp.com-20130403145151-nvpeqdpp937079iu --- addons/mail/mail_message.py | 1 + addons/mail/static/src/css/mail.css | 3 +++ addons/mail/static/src/js/mail.js | 1 + addons/mail/static/src/xml/mail.xml | 21 +++++++++++++++++---- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index a8fba3022e1..669b017a86f 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -366,6 +366,7 @@ class mail_message(osv.Model): return {'id': message.id, 'type': message.type, + 'subtype': message.subtype_id.name if message.subtype_id else False, 'body': body_html, 'model': message.model, 'res_id': message.res_id, diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css index 77dfb806f77..a3d8dca6490 100644 --- a/addons/mail/static/src/css/mail.css +++ b/addons/mail/static/src/css/mail.css @@ -57,6 +57,9 @@ .openerp .oe_mail .oe_msg.oe_msg_nobody{ background: #F8F8F8; } +.openerp .oe_mail .oe_msg.oe_msg_notification{ + background: #F8F8F8; +} .openerp .oe_mail .oe_msg .oe_msg_left{ position: absolute; left:0; top: 0; bottom: 0; width: 40px; diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index f992a385c3e..cc34483c17b 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -217,6 +217,7 @@ openerp.mail = function (session) { this.res_id = datasets.res_id || this.context.default_res_id || false, this.parent_id = datasets.parent_id || false, this.type = datasets.type || false, + this.subtype = datasets.subtype || false, this.is_author = datasets.is_author || false, this.is_private = datasets.is_private || false, this.subject = datasets.subject || false, diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml index db53a60cdbc..7e7d772397a 100644 --- a/addons/mail/static/src/xml/mail.xml +++ b/addons/mail/static/src/xml/mail.xml @@ -226,7 +226,7 @@ -
+
@@ -263,13 +263,23 @@ - + + updated document + + • + + + logged a note - + to + + nobody + - + @@ -279,6 +289,9 @@ and more + + notified + • • From b027b5d6920de566bf62c0ef1ff1ee4df1beed8b Mon Sep 17 00:00:00 2001 From: Cedric Snauwaert Date: Thu, 4 Apr 2013 11:14:01 +0200 Subject: [PATCH 043/124] [FIX]portal_stock: remove 2 useless ir rules since the model doesn't inherit mail.thread bzr revid: csn@openerp.com-20130404091401-f6l7h7lcw6t0kguz --- addons/portal_stock/security/portal_security.xml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/addons/portal_stock/security/portal_security.xml b/addons/portal_stock/security/portal_security.xml index 154a7fc9ddd..c5587453e40 100644 --- a/addons/portal_stock/security/portal_security.xml +++ b/addons/portal_stock/security/portal_security.xml @@ -17,19 +17,5 @@ - - Portal Personal Stock Moves - - [('message_follower_ids','in',[user.partner_id.id])] - - - - - Portal Personal Stock Warehouse Orderpoints - - [('message_follower_ids','in',[user.partner_id.id])] - - - From ef84d5c4216ec1fa999df50834f378fc47c0dd05 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Thu, 4 Apr 2013 11:21:34 +0200 Subject: [PATCH 044/124] [FIX] sale_stock,purchase: review help string + remove incorrect fallback to local TZ See also http://bugs.python.org/issue7229 bzr revid: odo@openerp.com-20130404092134-0zt7blbl1kt3p0lz --- addons/purchase/company.py | 9 ++++++--- addons/purchase/purchase.py | 31 +++++++++++++++---------------- addons/sale_stock/company.py | 9 ++++++--- addons/sale_stock/sale_stock.py | 31 +++++++++++++++---------------- 4 files changed, 42 insertions(+), 38 deletions(-) diff --git a/addons/purchase/company.py b/addons/purchase/company.py index 307c0c43d70..7a5d26a1b52 100644 --- a/addons/purchase/company.py +++ b/addons/purchase/company.py @@ -24,9 +24,12 @@ from openerp.osv import osv,fields class company(osv.osv): _inherit = 'res.company' _columns = { - 'po_lead': fields.float('Purchase Lead Time', required=True, - help="This is the leads/security time for each purchase order. For company security purpose this"\ - "many days will be removed from the date what suppliers has promised to you."), + 'po_lead': fields.float( + 'Purchase Lead Time', required=True, + help="Margin of error for supplier lead times. When the system"\ + "generates Purchase Orders for procuring products,"\ + "they will be scheduled that many days earlier "\ + "to cope with unexpected supplier delays."), } _defaults = { 'po_lead': lambda *a: 1.0, diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 1041b016fb3..3446d71c0e5 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -596,27 +596,26 @@ class purchase_order(osv.osv): return True def date_to_datetime(self, cr, uid, userdate, context=None): + """ Convert date values expressed in user's timezone to + server-side UTC timestamp, assuming a default arbitrary + time of 12:00 AM - because a time is needed. + + :param str userdate: date string in in user time zone + :return: UTC datetime string for server-side use """ - Function accepts date string assumed in client TZ and result is produced - in UTC timezone with 12:00 is assumed time to be sure, that system will - avoid tz date converstion issues. - e.g. Date 2013-03-26 in user tz will get 12:00 Hours and will then - get converted to UTC to avoid tz converstion. - userdate: date string in in user time zone. - return : the utc datetime string. - """ + # TODO: move to fields.datetime in server after 7.0 user_datetime = datetime.strptime(userdate, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(hours=12.0) if context and context.get('tz'): - tz_name = context['tz'] + tz_name = context['tz'] else: tz_name = self.pool.get('res.users').read(cr, SUPERUSER_ID, uid, ['tz'])['tz'] - if not tz_name: - tz_name = time.tzname[time.daylight] - utc = pytz.timezone('UTC') - context_tz = pytz.timezone(tz_name) - local_timestamp = context_tz.localize(user_datetime, is_dst=False) - user_datetime = local_timestamp.astimezone(utc) - return user_datetime.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + if tz_name: + utc = pytz.timezone('UTC') + context_tz = pytz.timezone(tz_name) + local_timestamp = context_tz.localize(user_datetime, is_dst=False) + user_datetime = local_timestamp.astimezone(utc) + return user_datetime.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + return userdate def _prepare_order_picking(self, cr, uid, order, context=None): return { diff --git a/addons/sale_stock/company.py b/addons/sale_stock/company.py index cd07df3f744..eb2d644e57b 100644 --- a/addons/sale_stock/company.py +++ b/addons/sale_stock/company.py @@ -24,9 +24,12 @@ from openerp.osv import fields, osv class company(osv.osv): _inherit = 'res.company' _columns = { - 'security_lead': fields.float('Security Days', required=True, - help="For company security purpose this many days will be removed from the date, what you have promised to customers,"\ - "to cope up with any problems of procurement, final shipping, order negotiation etc."), + 'security_lead': fields.float( + 'Security Days', required=True, + help="Margin of error for dates promised to customers. "\ + "Products will be scheduled for procurement and delivery "\ + "that many days earlier than the actual promised date, to "\ + "cope with unexpected delays in the supply chain."), } _defaults = { 'security_lead': 0.0, diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py index 3fb41895d6e..a2246c78481 100644 --- a/addons/sale_stock/sale_stock.py +++ b/addons/sale_stock/sale_stock.py @@ -236,27 +236,26 @@ class sale_order(osv.osv): return res def date_to_datetime(self, cr, uid, userdate, context=None): + """ Convert date values expressed in user's timezone to + server-side UTC timestamp, assuming a default arbitrary + time of 12:00 AM - because a time is needed. + + :param str userdate: date string in in user time zone + :return: UTC datetime string for server-side use """ - Function accepts date string assumed in client TZ and result is produced - in UTC timezone with 12:00 is assumed time to be sure, that system will - avoid tz date converstion issues. - e.g. Date 2013-03-26 in user tz will get 12:00 Hours and will then - get converted to UTC to avoid tz converstion. - userdate: date string in in user time zone. - return : the utc datetime string. - """ + # TODO: move to fields.datetime in server after 7.0 user_datetime = datetime.strptime(userdate, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(hours=12.0) if context and context.get('tz'): - tz_name = context['tz'] + tz_name = context['tz'] else: tz_name = self.pool.get('res.users').read(cr, SUPERUSER_ID, uid, ['tz'])['tz'] - if not tz_name: - tz_name = time.tzname[time.daylight] - utc = pytz.timezone('UTC') - context_tz = pytz.timezone(tz_name) - local_timestamp = context_tz.localize(user_datetime, is_dst=False) - user_datetime = local_timestamp.astimezone(utc) - return user_datetime.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + if tz_name: + utc = pytz.timezone('UTC') + context_tz = pytz.timezone(tz_name) + local_timestamp = context_tz.localize(user_datetime, is_dst=False) + user_datetime = local_timestamp.astimezone(utc) + return user_datetime.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + return userdate # if mode == 'finished': # returns True if all lines are done, False otherwise From 5b832d7738948d36d38774bc66d34069ffde68af Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Thu, 4 Apr 2013 14:31:54 +0200 Subject: [PATCH 045/124] [FIX] sale_stock: useless import due to previous commit + make sure test actually tests something, rather than x() == x() bzr revid: odo@openerp.com-20130404123154-xtq4idqnnlugv0ui --- addons/sale_stock/sale_stock.py | 1 - addons/sale_stock/test/picking_order_policy.yml | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py index a2246c78481..d9d8755c887 100644 --- a/addons/sale_stock/sale_stock.py +++ b/addons/sale_stock/sale_stock.py @@ -26,7 +26,6 @@ from openerp.osv import fields, osv from openerp import netsvc from openerp.tools.translate import _ import pytz -import time from openerp import SUPERUSER_ID class sale_shop(osv.osv): diff --git a/addons/sale_stock/test/picking_order_policy.yml b/addons/sale_stock/test/picking_order_policy.yml index d4d598d10e9..720c79685fa 100644 --- a/addons/sale_stock/test/picking_order_policy.yml +++ b/addons/sale_stock/test/picking_order_policy.yml @@ -26,7 +26,9 @@ order = self.browse(cr, uid, ref("sale.sale_order_6")) for order_line in order.order_line: procurement = order_line.procurement_id - date_planned = self._get_date_planned(cr, uid, order, order_line, order.date_order, context=context) + sale_order_date = self.date_to_datetime(cr, uid, order.date_order, context) + date_planned = datetime.strptime(sale_order_date, DEFAULT_SERVER_DATETIME_FORMAT) + relativedelta(days=order_line.delay or 0.0) + date_planned = (date_planned - timedelta(days=order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) assert procurement.date_planned == date_planned, "Scheduled date is not correspond." assert procurement.product_id.id == order_line.product_id.id, "Product is not correspond." assert procurement.product_qty == order_line.product_uom_qty, "Qty is not correspond." From 4bdd8252ba1c9c6e32686686f6e8282477380a0d Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Thu, 4 Apr 2013 17:14:51 +0200 Subject: [PATCH 046/124] [REF] sale_stock: removing of dead code and correction of documentation (process) linked to the invoicing after delivery of a sale order bzr revid: qdp-launchpad@openerp.com-20130404151451-7fesb178mpijlv29 --- addons/sale/sale.py | 3 +-- addons/sale_stock/process/sale_stock_process.xml | 13 +------------ addons/sale_stock/sale_stock.py | 5 ----- 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 3655b3a8184..a6be2838171 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -212,8 +212,7 @@ class sale_order(osv.osv): 'order_policy': fields.selection([ ('manual', 'On Demand'), ], 'Create Invoice', required=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, - help="""This field controls how invoice and delivery operations are synchronized. - - With 'Before Delivery', a draft invoice is created, and it must be paid before delivery."""), + help="""This field controls how invoice and delivery operations are synchronized."""), 'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="Pricelist for current sales order."), 'currency_id': fields.related('pricelist_id', 'currency_id', type="many2one", relation="res.currency", string="Currency", readonly=True, required=True), 'project_id': fields.many2one('account.analytic.account', 'Contract / Analytic', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="The analytic account related to a sales order."), diff --git a/addons/sale_stock/process/sale_stock_process.xml b/addons/sale_stock/process/sale_stock_process.xml index 666f6ba6502..c10b34c8866 100644 --- a/addons/sale_stock/process/sale_stock_process.xml +++ b/addons/sale_stock/process/sale_stock_process.xml @@ -64,17 +64,6 @@ - - - - - - - - - @@ -106,7 +95,7 @@ - + diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py index 1b5ddefbe74..c286e6555c9 100644 --- a/addons/sale_stock/sale_stock.py +++ b/addons/sale_stock/sale_stock.py @@ -610,11 +610,6 @@ class sale_advance_payment_inv(osv.osv_memory): sale_line_obj = self.pool.get('sale.order.line') wizard = self.browse(cr, uid, [result], context) sale = sale_obj.browse(cr, uid, sale_id, context=context) - if sale.order_policy == 'postpaid': - raise osv.except_osv( - _('Error!'), - _("You cannot make an advance on a sales order \ - that is defined as 'Automatic Invoice after delivery'.")) # If invoice on picking: add the cost on the SO # If not, the advance will be deduced when generating the final invoice From 5585f21aa5405a9ca143e7e6c864e31f6099a034 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Thu, 4 Apr 2013 17:54:37 +0200 Subject: [PATCH 047/124] [FIX] On cchange for sales person to change sales team in opportunity bzr revid: jco@openerp.com-20130404155437-a4d6mdi2y0r5nvc6 --- addons/crm/crm_lead.py | 7 +++++++ addons/crm/crm_lead_view.xml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index ec5bc8bf67a..509bcf106b6 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -356,6 +356,13 @@ class crm_lead(base_stage, format_address, osv.osv): } return {'value' : values} + def on_change_user(self, cr, uid, ids, user_id, context=None): + if user_id: + user = self.pool.get('res.users').browse(cr, uid, user_id, context=context) + return {'value':{'section_id': user.default_section_id and user.default_section_id.id or False}} + else: + return {'value':{'section_id':False}} + def _check(self, cr, uid, ids=False, context=None): """ Override of the base.stage method. Function called by the scheduler to process cases for date actions diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index e42ac81e108..5fedf2b4209 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -427,7 +427,7 @@ - + - +
- +
- +
From 5fd1e56566d5ebc1157fa1832be1ffbd4efd1b2c Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 15 Apr 2013 12:57:44 +0200 Subject: [PATCH 114/124] [FIX] incorrect view in super() call super() finds the MRO parent of the provided class to resume the execution chain from there, so the class being defined should be provided. Here view called super(osv.osv, self).create so if osv.osv (Model) had a create() defined (which luckily it does not) it would've been skipped. bzr revid: xmo@openerp.com-20130415105744-cfx47t01oc7loyes --- openerp/addons/base/ir/ir_ui_view.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index 09f73662070..46e08cc6f3a 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -100,7 +100,7 @@ class view(osv.osv): else: inferred_type = etree.fromstring(values['arch'].encode('utf8')).tag values['name'] = "%s %s" % (values['model'], inferred_type) - return super(osv.osv, self).create(cr, uid, values, context) + return super(view, self).create(cr, uid, values, context) def _relaxng(self): if not self._relaxng_validator: From e07cf3891093fe0f737b1912a6659f7aca8f5c05 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 15 Apr 2013 13:45:45 +0200 Subject: [PATCH 115/124] [FIX] web_kanban: hide the counter on the top of column to display option drop down when the mouse is hover. bzr revid: chm@openerp.com-20130415114545-e557dsr4y0qkh8ff --- addons/web_kanban/static/src/css/kanban.css | 3 +++ addons/web_kanban/static/src/css/kanban.sass | 2 ++ 2 files changed, 5 insertions(+) diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index a8ed25694ba..cb88255c18c 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -16,6 +16,9 @@ top: 8px; font-weight: bold; } +.openerp .oe_kanban_view .oe_kanban_header:hover .oe_kanban_group_length { + display: none; +} .openerp .oe_kanban_view .ui-sortable-placeholder { border: 1px solid rgba(0, 0, 0, 0.1); visibility: visible !important; diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index 2182fb693ea..7c15db32b0e 100644 --- a/addons/web_kanban/static/src/css/kanban.sass +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -61,6 +61,8 @@ position: relative top: +8px font-weight: bold + .oe_kanban_header:hover .oe_kanban_group_length + display: none .ui-sortable-placeholder border: 1px solid rgba(0,0,0,0.1) visibility: visible !important From ef062c086b6bc1824469706d3d8784c105eb2ace Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 15 Apr 2013 16:47:08 +0200 Subject: [PATCH 116/124] [FIX] typo in method name in apps.js bzr revid: chs@openerp.com-20130415144708-ezj5xeuo3yylb5em --- openerp/addons/base/static/src/js/apps.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/static/src/js/apps.js b/openerp/addons/base/static/src/js/apps.js index 4ac01006256..eaaca6b13c3 100644 --- a/openerp/addons/base/static/src/js/apps.js +++ b/openerp/addons/base/static/src/js/apps.js @@ -44,7 +44,7 @@ openerp.base = function(instance) { } else { sessionStorage.removeItem('apps.login'); sessionStorage.removeItem('apps.access_token'); - client.bind_crendentials(client.dbname, 'anonymous', 'anonymous'); + client.bind_credentials(client.dbname, 'anonymous', 'anonymous'); client.authenticate().then( function() { /* done */ d.resolve(client); From 0110522b68191ed7ab5c44e2714e3aac011d145e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 15 Apr 2013 17:01:07 +0200 Subject: [PATCH 117/124] [FIX] project_issue, project_phase: fixed access rights on anonymous. bzr revid: tde@openerp.com-20130415150107-0vny927te0m1ylsi --- .../security/ir.model.access.csv | 1 + .../security/portal_security.xml | 7 ++++++ .../tests/test_access_rights.py | 7 +++--- .../security/ir.model.access.csv | 1 + .../security/portal_security.xml | 24 +++++++++++++------ 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/addons/portal_project_issue/security/ir.model.access.csv b/addons/portal_project_issue/security/ir.model.access.csv index 80a38366b51..7355f7a9b1d 100644 --- a/addons/portal_project_issue/security/ir.model.access.csv +++ b/addons/portal_project_issue/security/ir.model.access.csv @@ -1,3 +1,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_issues,project_issue,project_issue.model_project_issue,portal.group_portal,1,0,0,0 access_case_section,crm_case_section,crm.model_crm_case_section,portal.group_portal,1,0,0,0 +access_issues_anonymous,project_issue,project_issue.model_project_issue,portal.group_anonymous,1,0,0,0 \ No newline at end of file diff --git a/addons/portal_project_issue/security/portal_security.xml b/addons/portal_project_issue/security/portal_security.xml index 472c82e4705..f6cd8d89be7 100644 --- a/addons/portal_project_issue/security/portal_security.xml +++ b/addons/portal_project_issue/security/portal_security.xml @@ -28,5 +28,12 @@ ] + + Project/Issue: anonymous users: public only + + [('project_id.privacy_visibility', '=', 'public')] + + + diff --git a/addons/portal_project_issue/tests/test_access_rights.py b/addons/portal_project_issue/tests/test_access_rights.py index ef0cc62d4b8..28d337a4965 100644 --- a/addons/portal_project_issue/tests/test_access_rights.py +++ b/addons/portal_project_issue/tests/test_access_rights.py @@ -96,9 +96,10 @@ class TestPortalIssueProject(TestPortalProject): cr, self.user_chell_id, issue_ids, {'description': 'TestDescription'}) # Do: Donovan reads project -> ok (anonymous ok public) - # Test: no project issue visible (no read on project.issue) - self.assertRaises(except_orm, self.project_issue.search, - cr, self.user_donovan_id, [('project_id', '=', pigs_id)]) + # Test: all project issues visible + issue_ids = self.project_issue.search(cr, self.user_donovan_id, [('project_id', '=', pigs_id)]) + self.assertEqual(set(issue_ids), test_issue_ids, + 'access rights: project user cannot see all issues of a public project') # ---------------------------------------- # CASE2: portal project diff --git a/addons/portal_project_long_term/security/ir.model.access.csv b/addons/portal_project_long_term/security/ir.model.access.csv index 738c264a71c..efbc4fc2418 100644 --- a/addons/portal_project_long_term/security/ir.model.access.csv +++ b/addons/portal_project_long_term/security/ir.model.access.csv @@ -1,2 +1,3 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_issues,project_phase,project_long_term.model_project_phase,portal.group_portal,1,0,0,0 +access_issues_anonymous,project_phase_anonymous,project_long_term.model_project_phase,portal.group_anonymous,1,0,0,0 diff --git a/addons/portal_project_long_term/security/portal_security.xml b/addons/portal_project_long_term/security/portal_security.xml index b46d277e4ee..eab70ebe734 100644 --- a/addons/portal_project_long_term/security/portal_security.xml +++ b/addons/portal_project_long_term/security/portal_security.xml @@ -3,14 +3,24 @@ - Portal Personal Long term project - - ['|',('project_id.message_follower_ids','in', [user.partner_id.id]),('task_ids.message_follower_ids','in', [user.partner_id.id])] + Project/Phase: portal users: public or portal and following + + ['|', + ('project_id.privacy_visibility', '=', 'public'), + '&', + ('project_id.privacy_visibility', 'in', ['portal', 'followers']), + '|', + ('message_follower_ids','in', [user.partner_id.id]), + ('user_id', '=', user.id), + ] - - - - + + + + Project/Phase: anonymous users: public only + + [('project_id.privacy_visibility', '=', 'public')] + From 0cb5a703409a94848e3508042eda50d054ecdab4 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Tue, 16 Apr 2013 04:37:49 +0000 Subject: [PATCH 118/124] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130416043749-u2l62c4syfay8q48 --- addons/account/i18n/nl_BE.po | 264 ++- addons/account_analytic_default/i18n/nl_BE.po | 15 +- addons/account_asset/i18n/nl_BE.po | 19 +- addons/account_followup/i18n/nl_BE.po | 508 +++-- .../i18n/nl_BE.po | 72 + addons/auth_crypt/i18n/nl_BE.po | 44 +- addons/auth_oauth_signup/i18n/nl_BE.po | 23 + addons/auth_signup/i18n/zh_CN.po | 10 +- addons/base_crypt/i18n/nl_BE.po | 10 +- addons/base_status/i18n/nl_BE.po | 80 + addons/base_vat/i18n/nl_BE.po | 10 +- addons/claim_from_delivery/i18n/nl_BE.po | 12 +- addons/contacts/i18n/nl_BE.po | 46 + addons/edi/i18n/nl_BE.po | 18 +- addons/fleet/i18n/nl_BE.po | 1912 +++++++++++++++++ 15 files changed, 2809 insertions(+), 234 deletions(-) create mode 100644 addons/analytic_contract_hr_expense/i18n/nl_BE.po create mode 100644 addons/auth_oauth_signup/i18n/nl_BE.po create mode 100644 addons/base_status/i18n/nl_BE.po create mode 100644 addons/contacts/i18n/nl_BE.po create mode 100644 addons/fleet/i18n/nl_BE.po diff --git a/addons/account/i18n/nl_BE.po b/addons/account/i18n/nl_BE.po index 172dea460df..a3244945957 100644 --- a/addons/account/i18n/nl_BE.po +++ b/addons/account/i18n/nl_BE.po @@ -1,20 +1,20 @@ # Translation of OpenERP Server. # This file contains the translation of the following modules: # * account -# Els Van Vossel , 2012. +# Els Van Vossel , 2012, 2013. msgid "" msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2012-12-19 18:03+0000\n" +"PO-Revision-Date: 2013-04-15 23:02+0000\n" "Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: Els Van Vossel\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:20+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" "Language: nl\n" #. module: account @@ -258,7 +258,7 @@ msgstr "Belgische rapporten" #. module: account #: model:mail.message.subtype,name:account.mt_invoice_validated msgid "Validated" -msgstr "" +msgstr "Goedgekeurd" #. module: account #: model:account.account.type,name:account.account_type_income_view1 @@ -473,14 +473,14 @@ msgstr "" #. module: account #: help:account.bank.statement.line,name:0 msgid "Originator to Beneficiary Information" -msgstr "" +msgstr "Informatie Afzender naar Begunstigde" #. module: account #. openerp-web #: code:addons/account/static/src/xml/account_move_line_quickadd.xml:8 #, python-format msgid "Period :" -msgstr "" +msgstr "Periode:" #. module: account #: field:account.account.template,chart_template_id:0 @@ -494,6 +494,7 @@ msgstr "Boekhoudplansjabloon" #: selection:account.invoice.refund,filter_refund:0 msgid "Modify: create refund, reconcile and create a new draft invoice" msgstr "" +"Wijzigen: factuur crediteren, afpunten en een nieuwe conceptfactuur maken" #. module: account #: help:account.config.settings,tax_calculation_rounding_method:0 @@ -803,7 +804,7 @@ msgstr "Stel de bankrekeningen van uw bedrijf in" #. module: account #: view:account.invoice.refund:0 msgid "Create Refund" -msgstr "" +msgstr "Creditnota maken" #. module: account #: constraint:account.move.line:0 @@ -833,7 +834,7 @@ msgstr "Bent u zeker dat u de boeking wilt uitvoeren?" #: code:addons/account/account_invoice.py:1330 #, python-format msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)." -msgstr "" +msgstr "Factuur is gedeeltelijk betaald: %s%s of %s%s (%s%s blijft open)" #. module: account #: view:account.invoice:0 @@ -1010,6 +1011,8 @@ msgid "" " opening/closing fiscal " "year process." msgstr "" +"U kunt geen afpunting ongedaan maken als deze afpunting voortkomt uit een " +"heropening." #. module: account #: model:ir.actions.act_window,name:account.action_subscription_form_new @@ -1052,7 +1055,7 @@ msgstr "Aankoopjournaal" #. module: account #: model:mail.message.subtype,description:account.mt_invoice_paid msgid "Invoice paid" -msgstr "" +msgstr "Factuur betaald" #. module: account #: view:validate.account.move:0 @@ -1375,6 +1378,8 @@ msgid "" "The amount expressed in the secondary currency must be positif when journal " "item are debit and negatif when journal item are credit." msgstr "" +"Het bedrag in secundaire munt moet positief zijn als de boekingslijn debet " +"is en negatief bij een creditbedrag." #. module: account #: view:account.invoice.cancel:0 @@ -1940,7 +1945,7 @@ msgstr "Verkopen per rekeningtype" #: model:account.payment.term,name:account.account_payment_term_15days #: model:account.payment.term,note:account.account_payment_term_15days msgid "15 Days" -msgstr "" +msgstr "15 dagen" #. module: account #: model:ir.ui.menu,name:account.periodical_processing_invoicing @@ -2084,7 +2089,7 @@ msgstr "Voorlopig rekeninguittreksel" #. module: account #: model:mail.message.subtype,description:account.mt_invoice_validated msgid "Invoice validated" -msgstr "" +msgstr "Factuur goedgekeurd" #. module: account #: field:account.config.settings,module_account_check_writing:0 @@ -2342,6 +2347,7 @@ msgid "" "You cannot change the type of account to '%s' type as it contains journal " "items!" msgstr "" +"U kunt het rekeningtype niet wijzigen in '%s' omdat er al boekingen zijn." #. module: account #: model:ir.model,name:account.model_account_aged_trial_balance @@ -2358,7 +2364,7 @@ msgstr "Boekjaar afsluiten" #: code:addons/account/static/src/xml/account_move_line_quickadd.xml:14 #, python-format msgid "Journal :" -msgstr "" +msgstr "Journaal:" #. module: account #: sql_constraint:account.fiscal.position.tax:0 @@ -2718,6 +2724,8 @@ msgid "" "You cannot change the type of account from 'Closed' to any other type as it " "contains journal items!" msgstr "" +"U kunt het rekeningtype niet wijzigen van 'Afgesloten' in een ander type als " +"er boekingen zijn." #. module: account #: field:account.invoice.report,account_line_id:0 @@ -2811,7 +2819,7 @@ msgstr "Rekeningeigenschappen" #. module: account #: selection:account.invoice.refund,filter_refund:0 msgid "Create a draft refund" -msgstr "" +msgstr "Maak een voorlopige creditnota" #. module: account #: view:account.partner.reconcile.process:0 @@ -3360,7 +3368,7 @@ msgstr "" #: view:account.unreconcile:0 #: view:account.unreconcile.reconcile:0 msgid "Unreconcile Transactions" -msgstr "" +msgstr "Afpuntingen ongedaan maken" #. module: account #: field:wizard.multi.charts.accounts,only_one_chart_template:0 @@ -3558,7 +3566,7 @@ msgstr "Aantal cijfers voor de rekeningcode" #. module: account #: field:res.partner,property_supplier_payment_term:0 msgid "Supplier Payment Term" -msgstr "" +msgstr "Betaaltermijn leverancier" #. module: account #: view:account.fiscalyear:0 @@ -3633,7 +3641,7 @@ msgstr "Elektronisch bestand" #. module: account #: field:account.move.line,reconcile:0 msgid "Reconcile Ref" -msgstr "" +msgstr "Afpuntingsreferentie" #. module: account #: field:account.config.settings,has_chart_of_accounts:0 @@ -3734,6 +3742,88 @@ msgid "" "
\n" " " msgstr "" +"\n" +"
\n" +"\n" +"

Hallo ${object.partner_id.name},

\n" +"\n" +"

Er is een nieuwe factuur voor u:

\n" +" \n" +"

\n" +"   REFERENTIE
\n" +"   Factuurnummer: ${object.number}
\n" +"   Totaal: ${object.amount_total} " +"${object.currency_id.name}
\n" +"   Datum: ${object.date_invoice}
\n" +" % if object.origin:\n" +"   Referentie: ${object.origin}
\n" +" % endif\n" +" % if object.user_id:\n" +"   Uw contactpersoon: ${object.user_id.name}\n" +" % endif\n" +"

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

U kunt ook onmiddellijk betalen via Paypal:

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

Neem gerust contact met ons op als u vragen heeft.

\n" +"

Bedankt dat u hebt gekozen voor ${object.company_id.name or " +"'ons'}!

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

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

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

\n" +"
\n" +"
\n" +" " #. module: account #: view:account.period:0 @@ -3922,6 +4012,8 @@ msgid "" "You cannot create journal items with a secondary currency without recording " "both 'currency' and 'amount currency' field." msgstr "" +"U kunt geen boekingslijnen in een secundaire munt maken zonder beide velden " +"'valuta' en 'bedrag valuta' in te vullen." #. module: account #: field:account.financial.report,display_detail:0 @@ -4224,7 +4316,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_journal_cashbox_line msgid "account.journal.cashbox.line" -msgstr "" +msgstr "account.journal.cashbox.line" #. module: account #: model:ir.model,name:account.model_account_partner_reconcile_process @@ -4498,7 +4590,7 @@ msgstr "Uw bankrekeningen instellen" #. module: account #: xsl:account.transfer:0 msgid "Partner ID" -msgstr "" +msgstr "Relatie-ID" #. module: account #: help:account.bank.statement,message_ids:0 @@ -4704,6 +4796,8 @@ msgid "" "This payment term will be used instead of the default one for sale orders " "and customer invoices" msgstr "" +"Deze betalingsvoorwaarde vervangt de standaardvoorwaarde van de huidige " +"relatie." #. module: account #: view:account.config.settings:0 @@ -4731,7 +4825,7 @@ msgstr "Geboekte lijnen" #. module: account #: field:account.move.line,blocked:0 msgid "No Follow-up" -msgstr "" +msgstr "Geen aanmaning" #. module: account #: view:account.tax.template:0 @@ -4858,6 +4952,7 @@ msgstr "Maand" #, python-format msgid "You cannot change the code of account which contains journal items!" msgstr "" +"U kunt de code van een rekening niet wijzigen als er al boekingen zijn." #. module: account #: field:account.config.settings,purchase_sequence_prefix:0 @@ -4895,7 +4990,7 @@ msgstr "Rek.type" #. module: account #: selection:account.journal,type:0 msgid "Bank and Checks" -msgstr "" +msgstr "Bank en cheques" #. module: account #: field:account.account.template,note:0 @@ -4977,7 +5072,7 @@ msgstr "Schakel dit in als u ook rekeningen met een nulsaldo wilt weergeven." #. module: account #: field:account.move.reconcile,opening_reconciliation:0 msgid "Opening Entries Reconciliation" -msgstr "" +msgstr "Afpunting openingsboekingen" #. module: account #. openerp-web @@ -5018,7 +5113,7 @@ msgstr "Boekhoudplan" #. module: account #: field:account.invoice,reference_type:0 msgid "Payment Reference" -msgstr "" +msgstr "Betaalreferentie" #. module: account #: selection:account.financial.report,style_overwrite:0 @@ -5092,7 +5187,7 @@ msgstr "Af te punten boekingen" #. module: account #: model:ir.model,name:account.model_account_tax_template msgid "Templates for Taxes" -msgstr "" +msgstr "Btw-sjablonen" #. module: account #: sql_constraint:account.period:0 @@ -5667,6 +5762,8 @@ msgstr "Doelbewegingen" msgid "" "Move cannot be deleted if linked to an invoice. (Invoice: %s - Move ID:%s)" msgstr "" +"Boeking kan niet worden verwijderd als deze is gekoppeld aan een factuur " +"(Factuur: %s - boeking: %s)" #. module: account #: view:account.bank.statement:0 @@ -6225,6 +6322,8 @@ msgid "" "This payment term will be used instead of the default one for purchase " "orders and supplier invoices" msgstr "" +"Deze betalingsvoorwaarde vervangt de standaardvoorwaarde van de huidige " +"relatie voor aankooporders en aankoopfacturen." #. module: account #: help:account.automatic.reconcile,power:0 @@ -6734,7 +6833,7 @@ msgstr "Analytische lijn" #. module: account #: model:ir.ui.menu,name:account.menu_action_model_form msgid "Models" -msgstr "" +msgstr "Modellen" #. module: account #: code:addons/account/account_invoice.py:1091 @@ -7055,6 +7154,12 @@ msgid "" "due date, make sure that the payment term is not set on the invoice. If you " "keep the payment term and the due date empty, it means direct payment." msgstr "" +"Als u betalingstermijnen gebruikt, wordt de vervaldatum automatisch berekend " +"bij het maken van de boekingen. De betalingsvoorwaarde kan verschillende " +"vervaldatums berekenen, vb. 50% nu en 50% binnen een maand. Als u een " +"specifieke vervaldatum wilt instellen, gebruikt u beter geen " +"betalingstermijn. Als u zowel betalingstermijn als vervaldatum leeglaat, " +"gaat het om een contante betaling." #. module: account #: code:addons/account/account.py:414 @@ -7296,6 +7401,8 @@ msgid "" "If you unreconcile transactions, you must also verify all the actions that " "are linked to those transactions because they will not be disabled" msgstr "" +"Als u afgepunte transacties ongedaan maakt, moet u alle gekoppelde acties " +"nakijken, want deze worden niet ongedaan gemaakt." #. module: account #: view:account.account.template:0 @@ -7330,6 +7437,7 @@ msgid "" "You cannot provide a secondary currency if it is the same than the company " "one." msgstr "" +"U kunt geen secundaire munt ingeven die identiek is aan de firmamunt." #. module: account #: selection:account.tax.template,applicable_type:0 @@ -7467,7 +7575,7 @@ msgstr "Manueel" #. module: account #: selection:account.invoice.refund,filter_refund:0 msgid "Cancel: create refund and reconcile" -msgstr "" +msgstr "Annuleren: maak een creditnota en punt af" #. module: account #: code:addons/account/wizard/account_report_aged_partner_balance.py:58 @@ -7564,7 +7672,7 @@ msgstr "Alle boekingen" #. module: account #: constraint:account.move.reconcile:0 msgid "You can only reconcile journal items with the same partner." -msgstr "" +msgstr "U kunt enkel boekingen met dezelfde relatie afpunten." #. module: account #: view:account.journal.select:0 @@ -7682,7 +7790,7 @@ msgstr "" #. module: account #: field:account.invoice,paypal_url:0 msgid "Paypal Url" -msgstr "" +msgstr "Paypal-url" #. module: account #: field:account.config.settings,module_account_voucher:0 @@ -8390,7 +8498,7 @@ msgstr "" #. module: account #: field:account.move.line,amount_residual_currency:0 msgid "Residual Amount in Currency" -msgstr "" +msgstr "Restbedrag in valuta" #. module: account #: field:account.config.settings,sale_refund_sequence_prefix:0 @@ -8444,6 +8552,8 @@ msgid "" "Refund base on this type. You can not Modify and Cancel if the invoice is " "already reconciled" msgstr "" +"Creditnota voor dit type. U kunt niet wijzigen of annuleren als de factuur " +"al is afgepunt." #. module: account #: field:account.bank.statement.line,sequence:0 @@ -8461,7 +8571,7 @@ msgstr "Volgorde" #. module: account #: field:account.config.settings,paypal_account:0 msgid "Paypal account" -msgstr "" +msgstr "Paypal-rekening" #. module: account #: selection:account.print.journal,sort_selection:0 @@ -8730,7 +8840,7 @@ msgstr "Omgekeerde analytische balans -" #: help:account.move.reconcile,opening_reconciliation:0 msgid "" "Is this reconciliation produced by the opening of a new fiscal year ?." -msgstr "" +msgstr "Komt deze afpunting van een openingsboeking?" #. module: account #: view:account.analytic.line:0 @@ -9011,7 +9121,7 @@ msgstr "Eindbalans" #. module: account #: field:account.journal,centralisation:0 msgid "Centralized Counterpart" -msgstr "" +msgstr "Gecentraliseerde tegenboeking" #. module: account #: help:account.move.line,blocked:0 @@ -9047,6 +9157,12 @@ msgid "" "invoice will be created \n" " so that you can edit it." msgstr "" +"Gebruik deze optie als u een factuur wilt annuleren en een nieuwe maken.\n" +" De creditnota wordt gemaakt, goedgekeurd " +"en afgepunt\n" +" met de huidige factuur. Een nieuwe, " +"voorlopige factuur wordt gemaakt\n" +" die u kunt bewerken." #. module: account #: model:process.transition,name:account.process_transition_filestatement0 @@ -9079,7 +9195,7 @@ msgstr "Rekeningtypen" #. module: account #: model:email.template,subject:account.email_template_edi_invoice msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})" -msgstr "" +msgstr "${object.company_id.name} Factuur (Ref. ${object.number or 'nvt' })" #. module: account #: code:addons/account/account_move_line.py:1213 @@ -9149,6 +9265,19 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Klik om een journaal toe te voegen.\n" +"

\n" +" Een journaal groepeert boekingen in functie\n" +" van de dagelijkse bezigheden.\n" +"

\n" +" Een firma geruikt doorgaans een journaal per betaalmethode " +"(kas,\n" +" bankrekeningen, cheques), een aankoopdagboek, een " +"verkoopdagboek\n" +" en een diversendagboek.\n" +"

\n" +" " #. module: account #: model:ir.model,name:account.model_account_fiscalyear_close_state @@ -9276,6 +9405,9 @@ msgid "" "computed. Because it is space consuming, we do not allow to use it while " "doing a comparison." msgstr "" +"Met deze optie krijgt u meer details over de manier waarop de saldi worden " +"berekend. Omdat dit ruimte inneemt, is deze optie niet mogelijk bij " +"vergelijkingen." #. module: account #: model:ir.model,name:account.model_account_fiscalyear_close @@ -9292,6 +9424,8 @@ msgstr "De code van de rekening moet uniek zijn per firma." #: help:product.template,property_account_expense:0 msgid "This account will be used to value outgoing stock using cost price." msgstr "" +"Deze rekening dient voor de voorraadwaardering van de uitgaande voorraad op " +"basis van de kostprijs." #. module: account #: view:account.invoice:0 @@ -9354,6 +9488,17 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Klik als u een nieuwe recurrente boeking wilt maken.\n" +"

\n" +" Een terugkerende boeking wordt regelmatig op een bepaald " +"tijdstip herhaald,\n" +" vb. bij vervallen van een contract of overeenkomst met een\n" +" klant of een leverancier. U kunt dergelijke boekingen " +"voorbereiden\n" +" zodat deze automatisch worden geboekt.\n" +"

\n" +" " #. module: account #: view:account.journal:0 @@ -9396,6 +9541,8 @@ msgid "" "This allows you to check writing and printing.\n" " This installs the module account_check_writing." msgstr "" +"Hiermee kunt u cheques schrijven en afdrukken.\n" +" Hiermee wordt de module account_check_writing geïnstalleerd." #. module: account #: model:res.groups,name:account.group_account_invoice @@ -9681,6 +9828,9 @@ msgid "" "chart\n" " of accounts." msgstr "" +"Bevestigde facturen kunnen niet meer\n" +" worden gewijzigd. Facturen krijgen een uniek nummer\n" +" en de boekingen worden gemaakt." #. module: account #: model:process.node,note:account.process_node_bankstatement0 @@ -9906,11 +10056,15 @@ msgid "" "payments.\n" " This installs the module account_payment." msgstr "" +"Hiermee kunt u betaalopdrachten maken\n" +" * die als basis dienen voor verdere automatisering,\n" +" * om efficiënter betalingen te kunnen uitvoeren.\n" +" Hiermee wordt de module account_payment geïnstalleerd." #. module: account #: xsl:account.transfer:0 msgid "Document" -msgstr "" +msgstr "Document" #. module: account #: view:account.chart.template:0 @@ -10132,7 +10286,7 @@ msgstr "Kan geen boekingen maken tussen verschillende firma's." #. module: account #: model:ir.ui.menu,name:account.menu_finance_periodical_processing msgid "Periodic Processing" -msgstr "" +msgstr "Periodieke verwerking" #. module: account #: view:account.invoice.report:0 @@ -10212,7 +10366,7 @@ msgstr "Vervaldatum" #: model:account.payment.term,name:account.account_payment_term_immediate #: model:account.payment.term,note:account.account_payment_term_immediate msgid "Immediate Payment" -msgstr "" +msgstr "Contante betaling" #. module: account #: code:addons/account/account.py:1464 @@ -10424,11 +10578,16 @@ msgid "" "analytic account.\n" " This installs the module account_budget." msgstr "" +"Hiermee kunnen accountants budgetten beheren.\n" +" Als de hoofdbudgetten zijn ingesteld, kunnen de " +"projectleiders\n" +" het geplande bedrag instellen per analytische rekening.\n" +" Hiermee wordt de module account_budget geïnstalleerd." #. module: account #: field:account.bank.statement.line,name:0 msgid "OBI" -msgstr "" +msgstr "Omschrijving" #. module: account #: help:res.partner,property_account_payable:0 @@ -10915,6 +11074,8 @@ msgid "" "If you unreconcile transactions, you must also verify all the actions that " "are linked to those transactions because they will not be disable" msgstr "" +"Als u afgepunte transacties ongedaan maakt, moet u alle gekoppelde acties " +"nakijken, want deze worden niet ongedaan gemaakt." #. module: account #: code:addons/account/account_move_line.py:1059 @@ -10949,6 +11110,9 @@ msgid "" "customer. The tool search can also be used to personalise your Invoices " "reports and so, match this analysis to your needs." msgstr "" +"Dit rapport biedt een overzicht van het bedrag gefactureerd aan uw klant. De " +"zoekfunctie kan worden aangepast om het overzicht van uw facturen te " +"personaliseren, zodat u de gewenste analyse krijgt." #. module: account #: view:account.partner.reconcile.process:0 @@ -11207,6 +11371,16 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Klik als u een nieuw btw-vak wilt toevoegen.\n" +"

\n" +" Afhankelijk van uw land, dient een btw-vak om uw btw-" +"aangifte in te vullen.\n" +" In OpenERP kunt u een btw-structuur instellen en elke btw-" +"berekening\n" +" kan in een of meer btw-vakken worden opgenomen.\n" +"

\n" +" " #. module: account #: selection:account.entries.report,month:0 @@ -11233,6 +11407,18 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Selecteer de periode en het journaal.\n" +"

\n" +" Hiermee kan de boekhouder in een sneltempo boekingen " +"invoeren in\n" +" OpenERP. Als u een aankoopfactuur wilt inboeken,\n" +" begint u met de kostenrekening. OpenERP stelt automatisch\n" +" de betrokken btw voor die is gekoppeld aan deze rekening, " +"net\n" +" als de centralisatierekening.\n" +"

\n" +" " #. module: account #: help:account.invoice.line,account_id:0 @@ -11403,7 +11589,7 @@ msgstr "Rekeningmodel" #: code:addons/account/account_cash_statement.py:292 #, python-format msgid "Loss" -msgstr "" +msgstr "Verlies" #. module: account #: selection:account.entries.report,month:0 @@ -11475,7 +11661,7 @@ msgstr "Kostenrekening van productsjabloon" #. module: account #: field:res.partner,property_payment_term:0 msgid "Customer Payment Term" -msgstr "" +msgstr "Betaaltermijn klant" #. module: account #: help:accounting.report,label_filter:0 diff --git a/addons/account_analytic_default/i18n/nl_BE.po b/addons/account_analytic_default/i18n/nl_BE.po index 4d7b5295f16..86fed1b535a 100644 --- a/addons/account_analytic_default/i18n/nl_BE.po +++ b/addons/account_analytic_default/i18n/nl_BE.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2012-11-27 13:19+0000\n" +"PO-Revision-Date: 2013-04-15 15:56+0000\n" "Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:28+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" #. module: account_analytic_default #: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_partner @@ -40,6 +40,9 @@ msgid "" "default (e.g. create new customer invoice or Sales order if we select this " "product, it will automatically take this as an analytic account)" msgstr "" +"Kies een product voor de analytische rekening in analytische " +"standaardrekening (vb. maak een nieuwe verkoopfactuur of verkooporder: als " +"we dit product kiezen, wordt de analytische rekening voorgesteld)." #. module: account_analytic_default #: model:ir.model,name:account_analytic_default.model_stock_picking @@ -64,6 +67,9 @@ msgid "" "default (e.g. create new customer invoice or Sales order if we select this " "partner, it will automatically take this as an analytic account)" msgstr "" +"Kies een relatie voor de analytische rekening in analytische " +"standaardrekening (vb. maak een nieuwe verkoopfactuur of verkooporder: als " +"we deze relatie kiezen, wordt de analytische rekening voorgesteld)." #. module: account_analytic_default #: view:account.analytic.default:0 @@ -118,6 +124,9 @@ msgid "" "default (e.g. create new customer invoice or Sales order if we select this " "company, it will automatically take this as an analytic account)" msgstr "" +"Kies een firma voor de analytische rekening in analytische standaardrekening " +"(vb. maak een nieuwe verkoopfactuur of verkooporder: als we deze firma " +"kiezen, wordt de analytische rekening voorgesteld)." #. module: account_analytic_default #: view:account.analytic.default:0 diff --git a/addons/account_asset/i18n/nl_BE.po b/addons/account_asset/i18n/nl_BE.po index 5bee5f9bfd9..3413cf38ac8 100644 --- a/addons/account_asset/i18n/nl_BE.po +++ b/addons/account_asset/i18n/nl_BE.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2012-11-27 13:35+0000\n" +"PO-Revision-Date: 2013-04-15 15:59+0000\n" "Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: Dutch (Belgium) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:50+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" #. module: account_asset #: view:account.asset.asset:0 @@ -148,7 +148,7 @@ msgstr "Dit is het bedrag dat u niet kunt afschrijven." #. module: account_asset #: help:account.asset.asset,method_period:0 msgid "The amount of time between two depreciations, in months" -msgstr "" +msgstr "De tijd tussen twee afschrijvingen, in maanden" #. module: account_asset #: field:account.asset.depreciation.line,depreciation_date:0 @@ -265,7 +265,7 @@ msgstr "Duur wijzigen" #: help:account.asset.category,method_number:0 #: help:account.asset.history,method_number:0 msgid "The number of depreciations needed to depreciate your asset" -msgstr "" +msgstr "Het aantal keer dat er moet worden afgeschreven." #. module: account_asset #: view:account.asset.category:0 @@ -295,7 +295,7 @@ msgstr "" #. module: account_asset #: field:account.asset.depreciation.line,remaining_value:0 msgid "Next Period Depreciation" -msgstr "" +msgstr "Volgende afschrijvingsperiode" #. module: account_asset #: help:account.asset.history,method_period:0 @@ -346,7 +346,7 @@ msgstr "Investeringscategorie zoeken" #. module: account_asset #: view:asset.modify:0 msgid "months" -msgstr "" +msgstr "maanden" #. module: account_asset #: model:ir.model,name:account_asset.model_account_invoice_line @@ -608,7 +608,7 @@ msgstr "Afschrijvingsmethode" #. module: account_asset #: field:account.asset.depreciation.line,amount:0 msgid "Current Depreciation" -msgstr "" +msgstr "Huidige afschrijving" #. module: account_asset #: field:account.asset.asset,name:0 @@ -653,6 +653,9 @@ msgid "" " * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n" " * Degressive: Calculated on basis of: Residual Value * Degressive Factor" msgstr "" +"Kies de methode om het aantal afschrijvingsregels te berekenen.\n" +" * Lineair: op basis van: brutowaarde / aantal afschrijvingen\n" +" * Degressief: op basis van: restwaarde * degressieve factor" #. module: account_asset #: field:account.asset.depreciation.line,move_check:0 diff --git a/addons/account_followup/i18n/nl_BE.po b/addons/account_followup/i18n/nl_BE.po index 1a92e60dfc9..5125f27f2ff 100644 --- a/addons/account_followup/i18n/nl_BE.po +++ b/addons/account_followup/i18n/nl_BE.po @@ -1,20 +1,21 @@ # Translation of OpenERP Server. # This file contains the translation of the following modules: -# * account_followup -# +# * account_followup +# Els Van Vossel , 2013. msgid "" msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2010-12-17 09:57+0000\n" -"Last-Translator: Niels Huylebroeck \n" -"Language-Team: \n" +"PO-Revision-Date: 2013-04-15 23:02+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" +"Language-Team: Els Van Vossel\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:11+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" +"Language: nl\n" #. module: account_followup #: model:email.template,subject:account_followup.email_template_account_followup_default @@ -22,12 +23,12 @@ msgstr "" #: model:email.template,subject:account_followup.email_template_account_followup_level1 #: model:email.template,subject:account_followup.email_template_account_followup_level2 msgid "${user.company_id.name} Payment Reminder" -msgstr "" +msgstr "${user.company_id.name} Aanmaning" #. module: account_followup #: help:res.partner,latest_followup_level_id:0 msgid "The maximum follow-up level" -msgstr "" +msgstr "Het maximale aanmaningsniveau" #. module: account_followup #: view:account_followup.stat:0 @@ -43,33 +44,33 @@ msgstr "Aanmanen" #. module: account_followup #: view:account_followup.followup.line:0 msgid "%(date)s" -msgstr "" +msgstr "%(date)s" #. module: account_followup #: field:res.partner,payment_next_action_date:0 msgid "Next Action Date" -msgstr "" +msgstr "Volgende actiedatum" #. module: account_followup #: view:account_followup.followup.line:0 #: field:account_followup.followup.line,manual_action:0 msgid "Manual Action" -msgstr "" +msgstr "Manuele actie" #. module: account_followup #: field:account_followup.sending.results,needprinting:0 msgid "Needs Printing" -msgstr "" +msgstr "Moet worden afgedrukt" #. module: account_followup #: view:res.partner:0 msgid "⇾ Mark as Done" -msgstr "" +msgstr "⇾ Als Gedaan markeren" #. module: account_followup #: field:account_followup.followup.line,manual_action_note:0 msgid "Action To Do" -msgstr "" +msgstr "Uit te voeren actie" #. module: account_followup #: field:account_followup.followup,company_id:0 @@ -89,39 +90,39 @@ msgstr "Factuurdatum" #. module: account_followup #: field:account_followup.print,email_subject:0 msgid "Email Subject" -msgstr "E-mail onderwerp" +msgstr "E-mailonderwerp" #. module: account_followup #: view:account_followup.followup.line:0 msgid "%(user_signature)s" -msgstr "" +msgstr "%(user_signature)s" #. module: account_followup #: view:account_followup.followup.line:0 msgid "days overdue, do the following actions:" -msgstr "" +msgstr "dagen vervallen, voer volgende acties uit:" #. module: account_followup #: view:account_followup.followup.line:0 msgid "Follow-up Steps" -msgstr "" +msgstr "Aanmaningsstappen" #. module: account_followup #: field:account_followup.print,email_body:0 msgid "Email Body" -msgstr "" +msgstr "E-mailbericht" #. module: account_followup #: model:ir.actions.act_window,name:account_followup.action_account_followup_print msgid "Send Follow-Ups" -msgstr "" +msgstr "Aanmaningen versturen" #. module: account_followup #: report:account_followup.followup.print:0 #: code:addons/account_followup/account_followup.py:263 #, python-format msgid "Amount" -msgstr "" +msgstr "Bedrag" #. module: account_followup #: help:res.partner,payment_next_action:0 @@ -129,11 +130,14 @@ msgid "" "This is the next action to be taken. It will automatically be set when the " "partner gets a follow-up level that requires a manual action. " msgstr "" +"Dit is de volgende actie die moet worden ondernomen. Deze wordt automatisch " +"ingesteld als de relatie een aanmaningsniveau bereikt waarvoor een manuele " +"actie is vereist. " #. module: account_followup #: view:res.partner:0 msgid "No Responsible" -msgstr "" +msgstr "Niemand verantwoordelijk" #. module: account_followup #: model:account_followup.followup.line,description:account_followup.demo_followup_line2 @@ -158,6 +162,24 @@ msgid "" "\n" "Best Regards,\n" msgstr "" +"\n" +"Beste %(partner_name)s,\n" +"\n" +"Het spijt ons te moeten vaststellen dat, ondanks een eerdere aanmaning, u " +"nog steeds een openstaand saldo hebt.\n" +"\n" +"Wij verzoeken u dringend het openstaande saldo te betalen. Bij gebrek aan " +"betaling, zijn wij genoodzaakt de verdere levering van goederen en diensten " +"stop te zetten.\n" +"Gelieve de betalingen uit te voeren binnen de 8 dagen.\n" +"\n" +"Als er een probleem is rond de betaling waarvan wij niet op de hoogte zijn, " +"kunt u steeds contact opnemen met onze boekhouding, zodat dit snel kan " +"worden opgelost.\n" +"\n" +"Hierna vindt u een overzicht van de vervallen documenten.\n" +"\n" +"Hoogachtend,\n" #. module: account_followup #: model:email.template,body_html:account_followup.email_template_account_followup_level0 @@ -195,6 +217,38 @@ msgid "" "
\n" " " msgstr "" +"\n" +"
\n" +"\n" +"

Beste ${object.name},

\n" +"

\n" +" Volgens onze informatie, heeft u nog een openstaand saldo. Wij verzoeken " +"u het nodige te doen om deze betaling binnen de 8 dagen over te schrijven op " +"onze rekening.\n" +"\n" +"Indien uw betaling deze e-mail heeft gekruist, mag u dit bericht als " +"onbestaand beschouwen. Neem gerust contact op met onze boekhouding mocht u " +"nog vragen hebben.\n" +"\n" +"

\n" +"
\n" +"Met vriendelijke groeten,\n" +"
\n" +"
\n" +"${user.name}\n" +"\n" +"
\n" +"
\n" +"\n" +"\n" +"${object.get_followup_table_html() | safe}\n" +"\n" +"
\n" +"\n" +"
\n" +" " #. module: account_followup #: view:account_followup.stat.by.partner:0 @@ -209,17 +263,17 @@ msgstr "Totaal debet" #. module: account_followup #: field:res.partner,payment_next_action:0 msgid "Next Action" -msgstr "" +msgstr "Volgende actie" #. module: account_followup #: view:account_followup.followup.line:0 msgid ": Partner Name" -msgstr "" +msgstr "Relatienaam" #. module: account_followup #: field:account_followup.followup.line,manual_action_responsible_id:0 msgid "Assign a Responsible" -msgstr "" +msgstr "Duid iemand aan die verantwoordelijk is" #. module: account_followup #: view:account_followup.followup:0 @@ -231,7 +285,7 @@ msgstr "Aanmaning" #. module: account_followup #: report:account_followup.followup.print:0 msgid "VAT:" -msgstr "BTW:" +msgstr "Btw:" #. module: account_followup #: view:account_followup.stat:0 @@ -255,11 +309,24 @@ msgid "" " same customer, the actions of the most \n" " overdue invoice will be executed." msgstr "" +"Om klanten aan te manen tot betaling, kunt u\n" +" verschillende acties instellen in functie van de " +"grootte\n" +" van het openstaand bedrag. Deze acties worden " +"samengevoegd\n" +" in aanmaningsniveaus die worden aangesproken als de\n" +" vervaldatum van een factuur een ingesteld aantal " +"dagen\n" +" overschrijdt. Als de klant ook andere openstaande " +"facturen heeft,\n" +" worden de acties uitgevoerd in functie van het " +"langst \n" +" openstaande document." #. module: account_followup #: report:account_followup.followup.print:0 msgid "Date :" -msgstr "Datum :" +msgstr "Datum:" #. module: account_followup #: field:account_followup.print,partner_ids:0 @@ -269,43 +336,43 @@ msgstr "Relaties" #. module: account_followup #: sql_constraint:account_followup.followup:0 msgid "Only one follow-up per company is allowed" -msgstr "" +msgstr "Per bedrijf is maar een aanmaningsniveau toegelaten." #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:254 #, python-format msgid "Invoices Reminder" -msgstr "Facturen aanmaning" +msgstr "Aanmaning facturen" #. module: account_followup #: help:account_followup.followup.line,send_letter:0 msgid "When processing, it will print a letter" -msgstr "" +msgstr "Bij verwerking wordt een brief gemaakt" #. module: account_followup #: field:res.partner,payment_earliest_due_date:0 msgid "Worst Due Date" -msgstr "" +msgstr "Slechtste vervaldatum" #. module: account_followup #: view:account_followup.stat:0 msgid "Not Litigation" -msgstr "" +msgstr "Geen betwisting" #. module: account_followup #: view:account_followup.print:0 msgid "Send emails and generate letters" -msgstr "" +msgstr "Verstuur e-mails en maak brieven" #. module: account_followup #: model:ir.actions.act_window,name:account_followup.action_customer_followup msgid "Manual Follow-Ups" -msgstr "" +msgstr "Manuele aanmaningen" #. module: account_followup #: view:account_followup.followup.line:0 msgid "%(partner_name)s" -msgstr "" +msgstr "%(partner_name)s" #. module: account_followup #: model:email.template,body_html:account_followup.email_template_account_followup_level1 @@ -347,6 +414,42 @@ msgid "" "
\n" " " msgstr "" +"\n" +"
\n" +" \n" +"

Beste ${object.name},

\n" +"

\n" +" Het spijt ons te moeten vaststellen dat, ondanks een eerdere aanmaning, " +"u nog steeds een openstaand saldo hebt.\n" +"Wij verzoeken u dringend het openstaande saldo te betalen. Bij gebrek aan " +"betaling, zijn wij genoodzaakt de verdere levering van goederen en diensten " +"stop te zetten.\n" +"Gelieve de betalingen uit te voeren binnen de 8 dagen.\n" +"\n" +"Als er een probleem is rond de betaling waarvan wij niet op de hoogte zijn, " +"kunt u steeds contact opnemen met onze boekhouding, zodat dit snel kan " +"worden opgelost.\n" +"\n" +"Hierna vindt u een overzicht van de vervallen documenten.\n" +"

\n" +"
\n" +"Hoogachtend,\n" +" \n" +"
\n" +"
\n" +"${user.name}\n" +" \n" +"
\n" +"
\n" +"\n" +"${object.get_followup_table_html() | safe}\n" +"\n" +"
\n" +"\n" +"
\n" +" " #. module: account_followup #: field:account_followup.stat,debit:0 @@ -356,49 +459,49 @@ msgstr "Debet" #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_stat msgid "Follow-up Statistics" -msgstr "" +msgstr "Aanmaningsstatistieken" #. module: account_followup #: view:res.partner:0 msgid "Send Overdue Email" -msgstr "" +msgstr "Aanmaningsmail sturen" #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_followup_line msgid "Follow-up Criteria" -msgstr "" +msgstr "Aanmaningscriteria" #. module: account_followup #: help:account_followup.followup.line,sequence:0 msgid "Gives the sequence order when displaying a list of follow-up lines." -msgstr "Bepaalt de volgorde bij het afbeelden van de aanmaningregels" +msgstr "Bepaalt de volgorde bij het weergeven van de aanmaningslijnen." #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:166 #, python-format msgid " will be sent" -msgstr "" +msgstr " wordt verstuurd" #. module: account_followup #: view:account_followup.followup.line:0 msgid ": User's Company Name" -msgstr "" +msgstr "Bedrijfsnaam van gebruiker" #. module: account_followup #: view:account_followup.followup.line:0 #: field:account_followup.followup.line,send_letter:0 msgid "Send a Letter" -msgstr "" +msgstr "Brief sturen" #. module: account_followup #: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form msgid "Payment Follow-ups" -msgstr "" +msgstr "Aanmaningen" #. module: account_followup #: field:account_followup.followup.line,delay:0 msgid "Due Days" -msgstr "" +msgstr "Dagen vervallen" #. module: account_followup #: field:account.move.line,followup_line_id:0 @@ -414,48 +517,48 @@ msgstr "Laatste aanmaning" #. module: account_followup #: model:ir.ui.menu,name:account_followup.menu_manual_reconcile_followup msgid "Reconcile Invoices & Payments" -msgstr "" +msgstr "Facturen en betalingen afpunten" #. module: account_followup #: model:ir.ui.menu,name:account_followup.account_followup_s msgid "Do Manual Follow-Ups" -msgstr "" +msgstr "Manuele aanmaningen uitvoeren" #. module: account_followup #: report:account_followup.followup.print:0 msgid "Li." -msgstr "" +msgstr "Bt." #. module: account_followup #: field:account_followup.print,email_conf:0 msgid "Send Email Confirmation" -msgstr "" +msgstr "Bevestiging per e-mail sturen" #. module: account_followup #: view:account_followup.stat:0 msgid "Follow-up Entries with period in current year" -msgstr "" +msgstr "Aanmaningen met periode in huidig jaar" #. module: account_followup #: field:account_followup.stat.by.partner,date_followup:0 msgid "Latest follow-up" -msgstr "" +msgstr "Laatste aanmaning" #. module: account_followup #: field:account_followup.print,partner_lang:0 msgid "Send Email in Partner Language" -msgstr "Stuur email-bericht in taal relatie" +msgstr "Stuur e-mail in taal relatie" #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:169 #, python-format msgid " email(s) sent" -msgstr "" +msgstr " e-mail(s) verstuurd" #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_print msgid "Print Follow-up & Send Mail to Customers" -msgstr "" +msgstr "Aanmaningen afdrukken & mail sturen naar klanten" #. module: account_followup #: field:account_followup.followup.line,description:0 @@ -466,12 +569,12 @@ msgstr "Afgedrukt bericht" #: code:addons/account_followup/wizard/account_followup_print.py:155 #, python-format msgid "Anybody" -msgstr "" +msgstr "Iedereen" #. module: account_followup #: help:account_followup.followup.line,send_email:0 msgid "When processing, it will send an email" -msgstr "" +msgstr "Bij verwerking wordt een e-mail verstuurd" #. module: account_followup #: view:account_followup.stat.by.partner:0 @@ -481,7 +584,7 @@ msgstr "Relatie voor aanmaning" #. module: account_followup #: view:res.partner:0 msgid "Print Overdue Payments" -msgstr "" +msgstr "Vervallen documenten afdrukken" #. module: account_followup #: field:account_followup.followup.line,followup_id:0 @@ -494,11 +597,13 @@ msgstr "Aanmaningen" #, python-format msgid "Email not sent because of email address of partner not filled in" msgstr "" +"E-mail is niet verstuurd, omdat er voor de relatie geen e-mailadres is " +"ingevuld." #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_followup msgid "Account Follow-up" -msgstr "" +msgstr "Aanmaningen" #. module: account_followup #: help:res.partner,payment_responsible_id:0 @@ -506,11 +611,13 @@ msgid "" "Optionally you can assign a user to this field, which will make him " "responsible for the action." msgstr "" +"U kunt eventueel een gebruiker toewijzen aan dit veld. Dit betekent dat hij " +"verantwoordelijk is voor deze actie." #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_sending_results msgid "Results from the sending of the different letters and emails" -msgstr "" +msgstr "Resultaten van het versturen van brieven en e-mails" #. module: account_followup #: constraint:account_followup.followup.line:0 @@ -518,43 +625,45 @@ msgid "" "Your description is invalid, use the right legend or %% if you want to use " "the percent character." msgstr "" +"Uw beschrijving is niet geldig. Gebruik de juiste parameter of %% als u het " +"percentageteken wilt gebruiken." #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:172 #, python-format msgid " manual action(s) assigned:" -msgstr "" +msgstr " manuele actie(s) toegewezen" #. module: account_followup #: view:res.partner:0 msgid "Search Partner" -msgstr "" +msgstr "Relatie zoeken" #. module: account_followup #: model:ir.ui.menu,name:account_followup.account_followup_print_menu msgid "Send Letters and Emails" -msgstr "" +msgstr "Brieven en e-mails sturen" #. module: account_followup #: view:account_followup.followup:0 msgid "Search Follow-up" -msgstr "" +msgstr "Aanmaningen zoeken" #. module: account_followup #: view:res.partner:0 msgid "Account Move line" -msgstr "" +msgstr "Boeking" #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:237 #, python-format msgid "Send Letters and Emails: Actions Summary" -msgstr "" +msgstr "Brieven en e-mails sturen: overzicht acties" #. module: account_followup #: view:account_followup.print:0 msgid "or" -msgstr "" +msgstr "of" #. module: account_followup #: view:res.partner:0 @@ -562,21 +671,23 @@ msgid "" "If not specified by the latest follow-up level, it will send from the " "default email template" msgstr "" +"Indien dit niet is ingesteld via de laatste aanmaning, dan wordt de " +"standaard e-mailsjabloon gebruikt." #. module: account_followup #: sql_constraint:account_followup.followup.line:0 msgid "Days of the follow-up levels must be different" -msgstr "" +msgstr "De dagen moeten verschillen per aanmaningsniveau." #. module: account_followup #: view:res.partner:0 msgid "Click to mark the action as done." -msgstr "" +msgstr "Klik om de actie als Gedaan te markeren." #. module: account_followup #: model:ir.ui.menu,name:account_followup.menu_action_followup_stat_follow msgid "Follow-Ups Analysis" -msgstr "" +msgstr "Aanmaningsanalyse" #. module: account_followup #: help:res.partner,payment_next_action_date:0 @@ -586,11 +697,15 @@ msgid "" "action. Can be practical to set manually e.g. to see if he keeps his " "promises." msgstr "" +"Dit is als er manuele opvolging nodig is. De datum wordt ingesteld op de " +"huidige datum als de relatie een aanmaningsniveau bereikt waarvoor een " +"manuele handeling nodig is. Kan handig zijn om dit als manueel in te " +"stellen, vb. om na te gaan of beloften worden nagekomen." #. module: account_followup #: view:res.partner:0 msgid "Print overdue payments report independent of follow-up line" -msgstr "" +msgstr "Aanmaningen afdrukken onafgezien van de aanmaningslijn." #. module: account_followup #: help:account_followup.print,date:0 @@ -609,7 +724,7 @@ msgstr "Verzenddatum aanmaning" #: view:res.partner:0 #: field:res.partner,payment_responsible_id:0 msgid "Follow-up Responsible" -msgstr "" +msgstr "Verantwoordelijk voor aanmaning" #. module: account_followup #: model:email.template,body_html:account_followup.email_template_account_followup_level2 @@ -646,16 +761,48 @@ msgid "" "
\n" " " msgstr "" +"\n" +"
\n" +" \n" +"

Beste ${object.name},

\n" +"

\n" +" Ondanks het feit dat wij u meerdere aanmaningen hebben gestuurd, is uw " +"openstaand saldo nog steeds niet betaald.\n" +"Indien de betaling ervan niet binnen de 8 dagen op onze rekening staat, " +"schakelen wij een advocaat in om het verschuldigde saldo bij u te innen. U " +"ontvangt hierover geen verdere communicatie.\n" +"Wij gaan ervan uit dat deze stap niet nodig zal zijn. De details van de " +"openstaande betalingen vindt u hierna.\n" +"Aarzel niet contact op te nemen met onze boekhouding als u nog vragen " +"heeft.\n" +"

\n" +"
\n" +"Hoogachtend,\n" +"
\n" +"
\n" +"${user.name}\n" +"
\n" +"
\n" +"\n" +"\n" +"${object.get_followup_table_html() | safe}\n" +"\n" +"
\n" +"\n" +"
\n" +" " #. module: account_followup #: report:account_followup.followup.print:0 msgid "Document : Customer account statement" -msgstr "" +msgstr "Document: Rekeninguittreksel" #. module: account_followup #: model:ir.ui.menu,name:account_followup.account_followup_menu msgid "Follow-up Levels" -msgstr "" +msgstr "Aanmaningsniveaus" #. module: account_followup #: model:account_followup.followup.line,description:account_followup.demo_followup_line4 @@ -678,11 +825,27 @@ msgid "" "Best Regards,\n" " " msgstr "" +"\n" +"Beste %(partner_name)s,\n" +"\n" +"Ondanks meerdere aanmaningen, merken wij dat uw saldo nog steeds openstaat.\n" +"\n" +"Indien het openstaande saldo niet binnen 8 dagen op onze rekening is gestort " +", zullen wij een advocaat inschakelen. Wij sturen in dat verband geen " +"bericht meer.\n" +"\n" +"Wij gaan ervan uit dat deze actie niet nodig zal zijn. Details van de " +"openstaande documenten vindt u hierbij.\n" +"\n" +"Aarzel niet contact op te nemen met de boekhouding als u nog vragen heeft.\n" +"\n" +"Hoogachtend,\n" +" " #. module: account_followup #: field:res.partner,payment_amount_due:0 msgid "Amount Due" -msgstr "" +msgstr "Vervallen bedrag" #. module: account_followup #: field:account.move.line,followup_date:0 @@ -692,19 +855,19 @@ msgstr "Laatste aanmaning" #. module: account_followup #: view:account_followup.sending.results:0 msgid "Download Letters" -msgstr "" +msgstr "Brieven downloaden" #. module: account_followup #: field:account_followup.print,company_id:0 #: field:res.partner,unreconciled_aml_ids:0 msgid "unknown" -msgstr "" +msgstr "onbekend" #. module: account_followup #: code:addons/account_followup/account_followup.py:314 #, python-format msgid "Printed overdue payments report" -msgstr "" +msgstr "Afgedrukt aanmaningsrapport" #. module: account_followup #: help:account_followup.followup.line,manual_action:0 @@ -712,6 +875,7 @@ msgid "" "When processing, it will set the manual action to be taken for that " "customer. " msgstr "" +"Bij verwerking zal de manuele actie voor die klant worden ingesteld. " #. module: account_followup #: view:res.partner:0 @@ -721,18 +885,25 @@ msgid "" " order to exclude it from the next follow-up " "actions." msgstr "" +"Hieronder vindt u een overzicht van de transacties voor deze\n" +" klant. U kunt \"Stuur geen aanmaning\" kiezen " +"om\n" +" de factuur uit te sluiten van volgende " +"aanmaningsacties." #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:171 #, python-format msgid " email(s) should have been sent, but " -msgstr "" +msgstr " e-mail(s) zouden moeten zijn verstuurd, maar " #. module: account_followup #: help:account_followup.print,test_print:0 msgid "" "Check if you want to print follow-ups without changing follow-ups level." msgstr "" +"Schakel dit veld in als u aanmaningen wilt afdrukken zonder het niveau te " +"veranderen." #. module: account_followup #: model:ir.model,name:account_followup.model_account_move_line @@ -742,23 +913,23 @@ msgstr "Boekingen" #. module: account_followup #: report:account_followup.followup.print:0 msgid "Total:" -msgstr "" +msgstr "Totaal:" #. module: account_followup #: field:account_followup.followup.line,email_template_id:0 msgid "Email Template" -msgstr "" +msgstr "E-mailsjabloon" #. module: account_followup #: field:account_followup.print,summary:0 msgid "Summary" -msgstr "" +msgstr "Overzicht" #. module: account_followup #: view:account_followup.followup.line:0 #: field:account_followup.followup.line,send_email:0 msgid "Send an Email" -msgstr "" +msgstr "E-mail versturen" #. module: account_followup #: field:account_followup.stat,credit:0 @@ -768,7 +939,7 @@ msgstr "Krediet" #. module: account_followup #: field:res.partner,payment_amount_overdue:0 msgid "Amount Overdue" -msgstr "" +msgstr "Vervallen bedrag" #. module: account_followup #: help:res.partner,latest_followup_level_id_without_lit:0 @@ -776,12 +947,14 @@ msgid "" "The maximum follow-up level without taking into account the account move " "lines with litigation" msgstr "" +"Het maximale aanmaningsniveau, zonder rekening te houden met boekingen die " +"worden betwist." #. module: account_followup #: view:account_followup.stat:0 #: field:res.partner,latest_followup_date:0 msgid "Latest Follow-up Date" -msgstr "" +msgstr "Datum laatste aanmaning" #. module: account_followup #: model:email.template,body_html:account_followup.email_template_account_followup_default @@ -814,6 +987,33 @@ msgid "" "\n" " " msgstr "" +"\n" +"
\n" +" \n" +"

Beste ${object.name},

\n" +"

\n" +" Volgens onze administratie hebben wij het onderstaande bedrag nog niet " +"ontvangen. Wij verzoeken\n" +"u het verschuldigde bedrag uiterlijk binnen 8 dagen over te maken.\n" +"Indien dit schrijven uw betaling heeft gekruist, kunt u deze herinnering als " +"niet verzonden beschouwen.\n" +"Voor meer info kunt u steeds contact opnemen met onze boekhouding.\n" +"

\n" +"
\n" +"Hoogachtend,\n" +"
\n" +"
\n" +"${user.name}\n" +"
\n" +"
\n" +"\n" +"${object.get_followup_table_html() | safe}\n" +"\n" +"
\n" +"
\n" +" " #. module: account_followup #: field:account.move.line,result:0 @@ -826,17 +1026,17 @@ msgstr "Saldo" #. module: account_followup #: help:res.partner,payment_note:0 msgid "Payment Note" -msgstr "" +msgstr "Betalingsbewijs" #. module: account_followup #: view:res.partner:0 msgid "My Follow-ups" -msgstr "" +msgstr "Mijn aanmaningen" #. module: account_followup #: view:account_followup.followup.line:0 msgid "%(company_name)s" -msgstr "" +msgstr "%(company_name)s" #. module: account_followup #: model:account_followup.followup.line,description:account_followup.demo_followup_line1 @@ -854,28 +1054,40 @@ msgid "" "\n" "Best Regards,\n" msgstr "" +"\n" +"Beste %(partner_name)s,\n" +"\n" +"Volgens onze administratie hebben wij het onderstaande bedrag nog niet " +"ontvangen. Wij verzoeken u het verschuldigde bedrag binnen 8 dagen over te " +"maken.\n" +"\n" +"Indien dit schrijven uw betaling heeft gekruist, kunt u deze herinnering als " +"niet verzonden beschouwen.\n" +"Voor meer info kunt u steeds contact opnemen met onze boekhouding.\n" +"\n" +"Hoogachtend,\n" #. module: account_followup #: field:account_followup.stat,date_move_last:0 #: field:account_followup.stat.by.partner,date_move_last:0 msgid "Last move" -msgstr "" +msgstr "Laatste boeking" #. module: account_followup #: field:account_followup.stat,period_id:0 msgid "Period" -msgstr "" +msgstr "Periode" #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:228 #, python-format msgid "%s partners have no credits and as such the action is cleared" -msgstr "" +msgstr "%s relaties hebben geen schulden en de actie wordt gewist" #. module: account_followup #: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report msgid "Follow-up Report" -msgstr "" +msgstr "Aanmaningsrapport" #. module: account_followup #: view:res.partner:0 @@ -883,48 +1095,50 @@ msgid "" ", the latest payment follow-up\n" " was:" msgstr "" +", het laatste aanmaningsniveau\n" +" was:" #. module: account_followup #: view:account_followup.print:0 msgid "Cancel" -msgstr "" +msgstr "Annuleren" #. module: account_followup #: view:account_followup.sending.results:0 msgid "Close" -msgstr "" +msgstr "Afsluiten" #. module: account_followup #: view:account_followup.stat:0 msgid "Litigation" -msgstr "" +msgstr "Betwist" #. module: account_followup #: field:account_followup.stat.by.partner,max_followup_id:0 msgid "Max Follow Up Level" -msgstr "" +msgstr "Max. aanmaningsniveau" #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:171 #, python-format msgid " had unknown email address(es)" -msgstr "" +msgstr " had een onbekend e-mailadres" #. module: account_followup #: view:res.partner:0 msgid "Responsible" -msgstr "" +msgstr "Verantwoordelijke" #. module: account_followup #: model:ir.ui.menu,name:account_followup.menu_finance_followup #: view:res.partner:0 msgid "Payment Follow-up" -msgstr "" +msgstr "Aanmaningen" #. module: account_followup #: view:account_followup.followup.line:0 msgid ": Current Date" -msgstr "" +msgstr ": Huidige datum" #. module: account_followup #: view:account_followup.print:0 @@ -933,16 +1147,19 @@ msgid "" " set the manual actions per customer, according to " "the follow-up levels defined." msgstr "" +"Met deze actie stuurt u aanmaningsmails, kunt u brieven afdrukken en\n" +" manuele acties instellen per klant, in functie van " +"de ingestelde aanmaningsniveaus." #. module: account_followup #: field:account_followup.followup.line,name:0 msgid "Follow-Up Action" -msgstr "" +msgstr "Aanmaningsactie" #. module: account_followup #: view:account_followup.stat:0 msgid "Including journal entries marked as a litigation" -msgstr "" +msgstr "Inclusief betwiste boekingen" #. module: account_followup #: report:account_followup.followup.print:0 @@ -955,7 +1172,7 @@ msgstr "Omschrijving" #. module: account_followup #: view:account_followup.sending.results:0 msgid "Summary of actions" -msgstr "" +msgstr "Overzicht van acties" #. module: account_followup #: report:account_followup.followup.print:0 @@ -965,17 +1182,17 @@ msgstr "Ref" #. module: account_followup #: view:account_followup.followup.line:0 msgid "After" -msgstr "" +msgstr "Na" #. module: account_followup #: view:account_followup.stat:0 msgid "This Fiscal year" -msgstr "" +msgstr "Dit boekjaar" #. module: account_followup #: field:res.partner,latest_followup_level_id_without_lit:0 msgid "Latest Follow-up Level without litigation" -msgstr "" +msgstr "Laatste aanmaningsniveau met betwisting" #. module: account_followup #: model:ir.actions.act_window,help:account_followup.action_account_manual_reconcile_receivable @@ -985,16 +1202,20 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Geen boekingen gevonden.\n" +"

\n" +" " #. module: account_followup #: view:account.move.line:0 msgid "Partner entries" -msgstr "" +msgstr "Relatieboekingen" #. module: account_followup #: view:account_followup.stat:0 msgid "Follow-up lines" -msgstr "" +msgstr "Aanmaningsregels" #. module: account_followup #: model:account_followup.followup.line,description:account_followup.demo_followup_line3 @@ -1015,6 +1236,21 @@ msgid "" "\n" "Best Regards,\n" msgstr "" +"\n" +"Beste %(partner_name)s,\n" +"\n" +"Ondanks eerdere aanmaningen, heeft u nog steeds een openstaand saldo.\n" +"\n" +"Als uw betaling binnen de 8 dagen opnieuw uitblijft, zijn wij genoodzaakt de " +"vordering definitief uit handen te geven.\n" +"\n" +"Wij vertrouwen erop dat u het niet zover zult laten komen. Details van hety " +"openstaande saldo vindt u hierna.\n" +"\n" +"Indien u nog vragen heeft, kunt u steeds contact opnemen met onze " +"boekhouding.\n" +"\n" +"Hoogachtend,\n" #. module: account_followup #: help:account_followup.print,partner_lang:0 @@ -1022,6 +1258,8 @@ msgid "" "Do not change message text, if you want to send email in partner language, " "or configure from company" msgstr "" +"Wijzig de tekst niet als u de e-mail in de taal van de relatie wilt sturen, " +"of stel de tekst in op firma." #. module: account_followup #: view:account_followup.followup.line:0 @@ -1034,12 +1272,18 @@ msgid "" "installed\n" " using to top right icon." msgstr "" +"Schrijf hier de inleiding van uw brief,\n" +" in functie van het aanmaningsniveau. U kunt\n" +" de volgende parameters in de tekst gebruiken. " +"Vergeet\n" +" niet all geïnstalleerde talen te vertalen via " +"het pictogram in de rechterbovenhoek." #. module: account_followup #: view:account_followup.stat:0 #: model:ir.actions.act_window,name:account_followup.action_followup_stat msgid "Follow-ups Sent" -msgstr "" +msgstr "Verstuurde aanmaningen" #. module: account_followup #: field:account_followup.followup,name:0 @@ -1049,34 +1293,34 @@ msgstr "Naam:" #. module: account_followup #: field:res.partner,latest_followup_level_id:0 msgid "Latest Follow-up Level" -msgstr "" +msgstr "Laatste aanmaningsniveau" #. module: account_followup #: field:account_followup.stat,date_move:0 #: field:account_followup.stat.by.partner,date_move:0 msgid "First move" -msgstr "" +msgstr "Eerste boeking" #. module: account_followup #: model:ir.model,name:account_followup.model_account_followup_stat_by_partner msgid "Follow-up Statistics by Partner" -msgstr "" +msgstr "Aanmaningsstatistieken per relatie" #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:172 #, python-format msgid " letter(s) in report" -msgstr "" +msgstr " brieven in rapport" #. module: account_followup #: view:res.partner:0 msgid "Partners with Overdue Credits" -msgstr "" +msgstr "Klanten met openstaande facturen" #. module: account_followup #: view:res.partner:0 msgid "Customer Followup" -msgstr "" +msgstr "Aanmaningen" #. module: account_followup #: model:ir.actions.act_window,help:account_followup.action_account_followup_definition_form @@ -1092,42 +1336,52 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Klik als u de aanmaningsniveaus wilt instellen met de " +"daaraan gekoppelde acties.\n" +"

\n" +" Per stap kunt u de acties opgeven en ook de dagen vervallen. " +"U kunt\n" +" brieven en e-mailsjablonen maken om specifieke berichten " +"naar de klant te sturen.\n" +"

\n" +" " #. module: account_followup #: code:addons/account_followup/wizard/account_followup_print.py:166 #, python-format msgid "Follow-up letter of " -msgstr "" +msgstr "Aanmaningsbrief van " #. module: account_followup #: view:res.partner:0 msgid "The" -msgstr "" +msgstr "De" #. module: account_followup #: view:account_followup.print:0 msgid "Send follow-ups" -msgstr "" +msgstr "Aanmaningen versturen" #. module: account_followup #: view:account.move.line:0 msgid "Total credit" -msgstr "" +msgstr "Totaal credit" #. module: account_followup #: field:account_followup.followup.line,sequence:0 msgid "Sequence" -msgstr "" +msgstr "Volgorde" #. module: account_followup #: view:res.partner:0 msgid "Follow-ups To Do" -msgstr "" +msgstr "Te versturen aanmaningen" #. module: account_followup #: report:account_followup.followup.print:0 msgid "Customer Ref :" -msgstr "" +msgstr "Klantenref.:" #. module: account_followup #: report:account_followup.followup.print:0 @@ -1141,26 +1395,30 @@ msgid "" "the reminder. Could be negative if you want to send a polite alert " "beforehand." msgstr "" +"Het aantal dagen dat de vervaldatum van de factuur moet zijn overschreden " +"voordat een aanmaning wordt verstuurd. Kan negatief zijn als u vooraf een " +"vriendelijk bericht wilt sturen." #. module: account_followup #: help:res.partner,latest_followup_date:0 msgid "Latest date that the follow-up level of the partner was changed" msgstr "" +"Laatste datum waarop het aanmaningsniveau van de relatie is gewijzigd." #. module: account_followup #: field:account_followup.print,test_print:0 msgid "Test Print" -msgstr "" +msgstr "Testafdruk" #. module: account_followup #: view:account_followup.followup.line:0 msgid ": User Name" -msgstr "" +msgstr ": Gberuikersnaam" #. module: account_followup #: view:res.partner:0 msgid "Accounting" -msgstr "" +msgstr "Boekhouding" #. module: account_followup #: field:account_followup.stat,blocked:0 @@ -1170,7 +1428,7 @@ msgstr "Geblokkeerd" #. module: account_followup #: field:res.partner,payment_note:0 msgid "Customer Payment Promise" -msgstr "" +msgstr "Betalingsbelofte klant" #~ msgid "All payable entries" #~ msgstr "Alle crediteuren" diff --git a/addons/analytic_contract_hr_expense/i18n/nl_BE.po b/addons/analytic_contract_hr_expense/i18n/nl_BE.po new file mode 100644 index 00000000000..4bc0cc559e5 --- /dev/null +++ b/addons/analytic_contract_hr_expense/i18n/nl_BE.po @@ -0,0 +1,72 @@ +# Dutch (Belgium) translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-15 16:33+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" +"Language-Team: Dutch (Belgium) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" + +#. module: analytic_contract_hr_expense +#: view:account.analytic.account:0 +msgid "or view" +msgstr "of bekijk" + +#. module: analytic_contract_hr_expense +#: view:account.analytic.account:0 +msgid "Nothing to invoice, create" +msgstr "Niets te factureren, aanmaken" + +#. module: analytic_contract_hr_expense +#: view:account.analytic.account:0 +msgid "expenses" +msgstr "onkosten" + +#. module: analytic_contract_hr_expense +#: model:ir.model,name:analytic_contract_hr_expense.model_account_analytic_account +msgid "Analytic Account" +msgstr "Analytische rekening" + +#. module: analytic_contract_hr_expense +#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:129 +#, python-format +msgid "Expenses to Invoice of %s" +msgstr "Te factureren onkosten van %s" + +#. module: analytic_contract_hr_expense +#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:121 +#, python-format +msgid "Expenses of %s" +msgstr "Onkosten van %s" + +#. module: analytic_contract_hr_expense +#: field:account.analytic.account,expense_invoiced:0 +#: field:account.analytic.account,expense_to_invoice:0 +#: field:account.analytic.account,remaining_expense:0 +msgid "unknown" +msgstr "onbekend" + +#. module: analytic_contract_hr_expense +#: field:account.analytic.account,est_expenses:0 +msgid "Estimation of Expenses to Invoice" +msgstr "Te verwachten te factureren onkosten" + +#. module: analytic_contract_hr_expense +#: field:account.analytic.account,charge_expenses:0 +msgid "Charge Expenses" +msgstr "Onkosten doorrekenen" + +#. module: analytic_contract_hr_expense +#: view:account.analytic.account:0 +msgid "⇒ Invoice" +msgstr "⇒ Factuur" diff --git a/addons/auth_crypt/i18n/nl_BE.po b/addons/auth_crypt/i18n/nl_BE.po index b9477ece5dc..abb65c8700f 100644 --- a/addons/auth_crypt/i18n/nl_BE.po +++ b/addons/auth_crypt/i18n/nl_BE.po @@ -1,42 +1,28 @@ # Dutch (Belgium) translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. +# FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2012-12-03 16:03+0000\n" -"PO-Revision-Date: 2012-07-26 17:52+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-15 16:02+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: Dutch (Belgium) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-12-04 05:53+0000\n" -"X-Generator: Launchpad (build 16335)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" -#. module: base_crypt -#: model:ir.model,name:base_crypt.model_res_users +#. module: auth_crypt +#: field:res.users,password_crypt:0 +msgid "Encrypted Password" +msgstr "Geëncrypteerd wachtwoord" + +#. module: auth_crypt +#: model:ir.model,name:auth_crypt.model_res_users msgid "Users" -msgstr "" - -#~ msgid "You can not have two users with the same login !" -#~ msgstr "U kunt geen twee gebruikers met dezelfde login maken." - -#, python-format -#~ msgid "Please specify the password !" -#~ msgstr "Gelieve een wachtwoord op te geven" - -#~ msgid "The chosen company is not in the allowed companies for this user" -#~ msgstr "" -#~ "De gekozen firma behoort niet tot de toegelaten bedrijven voor deze " -#~ "gebruiker." - -#~ msgid "res.users" -#~ msgstr "res.users" - -#, python-format -#~ msgid "Error" -#~ msgstr "Fout" +msgstr "Gebruikers" diff --git a/addons/auth_oauth_signup/i18n/nl_BE.po b/addons/auth_oauth_signup/i18n/nl_BE.po new file mode 100644 index 00000000000..04d5034d029 --- /dev/null +++ b/addons/auth_oauth_signup/i18n/nl_BE.po @@ -0,0 +1,23 @@ +# Dutch (Belgium) translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-15 16:01+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" +"Language-Team: Dutch (Belgium) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" + +#. module: auth_oauth_signup +#: model:ir.model,name:auth_oauth_signup.model_res_users +msgid "Users" +msgstr "Gebruikers" diff --git a/addons/auth_signup/i18n/zh_CN.po b/addons/auth_signup/i18n/zh_CN.po index 333dd1be2dc..9beb3a044d3 100644 --- a/addons/auth_signup/i18n/zh_CN.po +++ b/addons/auth_signup/i18n/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2012-12-04 20:16+0000\n" -"Last-Translator: 盈通 ccdos \n" +"PO-Revision-Date: 2013-04-16 04:33+0000\n" +"Last-Translator: Key \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:52+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" #. module: auth_signup #: field:res.partner,signup_type:0 @@ -73,7 +73,7 @@ msgstr "重置密码" #: code:addons/auth_signup/static/src/js/auth_signup.js:117 #, python-format msgid "Please enter a password and confirm it." -msgstr "" +msgstr "请输入密码并确认。" #. module: auth_signup #: view:res.users:0 diff --git a/addons/base_crypt/i18n/nl_BE.po b/addons/base_crypt/i18n/nl_BE.po index 7ad3faa1ef5..d77a3f14b47 100644 --- a/addons/base_crypt/i18n/nl_BE.po +++ b/addons/base_crypt/i18n/nl_BE.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-03 16:03+0000\n" -"PO-Revision-Date: 2012-07-26 17:52+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-04-15 16:02+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: Dutch (Belgium) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:49+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" #. module: base_crypt #: model:ir.model,name:base_crypt.model_res_users msgid "Users" -msgstr "" +msgstr "Gebruikers" #~ msgid "You can not have two users with the same login !" #~ msgstr "U kunt geen twee gebruikers met dezelfde login maken." diff --git a/addons/base_status/i18n/nl_BE.po b/addons/base_status/i18n/nl_BE.po new file mode 100644 index 00000000000..6a3c2d83fc7 --- /dev/null +++ b/addons/base_status/i18n/nl_BE.po @@ -0,0 +1,80 @@ +# Dutch (Belgium) translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-15 16:40+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" +"Language-Team: Dutch (Belgium) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" + +#. module: base_status +#: code:addons/base_status/base_state.py:107 +#, python-format +msgid "Error !" +msgstr "Fout" + +#. module: base_status +#: code:addons/base_status/base_state.py:166 +#, python-format +msgid "%s has been opened." +msgstr "%s is geopend." + +#. module: base_status +#: code:addons/base_status/base_state.py:199 +#, python-format +msgid "%s has been renewed." +msgstr "%s is vernieuwd." + +#. module: base_status +#: code:addons/base_status/base_stage.py:210 +#, python-format +msgid "Error!" +msgstr "Fout" + +#. module: base_status +#: code:addons/base_status/base_state.py:107 +#, python-format +msgid "" +"You can not escalate, you are already at the top level regarding your sales-" +"team category." +msgstr "" +"U kunt niet escaleren; u heeft het hoogste niveau in de verkoopteams al " +"bereikt." + +#. module: base_status +#: code:addons/base_status/base_state.py:193 +#, python-format +msgid "%s is now pending." +msgstr "%s is wachtend." + +#. module: base_status +#: code:addons/base_status/base_state.py:187 +#, python-format +msgid "%s has been canceled." +msgstr "%s is geannuleerd." + +#. module: base_status +#: code:addons/base_status/base_stage.py:210 +#, python-format +msgid "" +"You are already at the top level of your sales-team category.\n" +"Therefore you cannot escalate furthermore." +msgstr "" +"U bent al op het hoogste niveau van uw verkoopteam.\n" +"U kunt dus niet verder escaleren." + +#. module: base_status +#: code:addons/base_status/base_state.py:181 +#, python-format +msgid "%s has been closed." +msgstr "%s is gesloten." diff --git a/addons/base_vat/i18n/nl_BE.po b/addons/base_vat/i18n/nl_BE.po index 39966dc58ef..a2fe05c5705 100644 --- a/addons/base_vat/i18n/nl_BE.po +++ b/addons/base_vat/i18n/nl_BE.po @@ -7,19 +7,19 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2012-10-01 11:23+0000\n" +"PO-Revision-Date: 2013-04-15 16:03+0000\n" "Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:10+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" #. module: base_vat #: view:res.partner:0 msgid "Check Validity" -msgstr "" +msgstr "Geldigheid controleren" #. module: base_vat #: code:addons/base_vat/base_vat.py:147 @@ -45,7 +45,7 @@ msgstr "Bedrijven" #: code:addons/base_vat/base_vat.py:111 #, python-format msgid "Error!" -msgstr "" +msgstr "Fout" #. module: base_vat #: help:res.partner,vat_subjected:0 diff --git a/addons/claim_from_delivery/i18n/nl_BE.po b/addons/claim_from_delivery/i18n/nl_BE.po index a8793109b5f..38aab39e523 100644 --- a/addons/claim_from_delivery/i18n/nl_BE.po +++ b/addons/claim_from_delivery/i18n/nl_BE.po @@ -8,29 +8,29 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2012-10-01 11:24+0000\n" +"PO-Revision-Date: 2013-04-15 16:38+0000\n" "Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: Dutch (Belgium) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:41+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" #. module: claim_from_delivery #: view:stock.picking.out:0 msgid "Claims" -msgstr "" +msgstr "Klachten" #. module: claim_from_delivery #: model:res.request.link,name:claim_from_delivery.request_link_claim_from_delivery msgid "Delivery Order" -msgstr "" +msgstr "Leveringsorder" #. module: claim_from_delivery #: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery msgid "Claim From Delivery" -msgstr "" +msgstr "Klachten van levering" #~ msgid "Claim" #~ msgstr "Klacht" diff --git a/addons/contacts/i18n/nl_BE.po b/addons/contacts/i18n/nl_BE.po new file mode 100644 index 00000000000..78fdb540ad6 --- /dev/null +++ b/addons/contacts/i18n/nl_BE.po @@ -0,0 +1,46 @@ +# Dutch (Belgium) translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-15 16:01+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" +"Language-Team: Dutch (Belgium) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" + +#. module: contacts +#: model:ir.actions.act_window,help:contacts.action_contacts +msgid "" +"

\n" +" Click to add a contact in your address book.\n" +"

\n" +" OpenERP helps you easily track all activities related to\n" +" a customer; discussions, history of business opportunities,\n" +" documents, etc.\n" +"

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

\n" +" Klik hier om een contactpersoon toe te voegen aan het " +"adresboek.\n" +"

\n" +" Met OpenERP kunt u eenvoudig alle activiteiten registreren met " +"betrekking tot \n" +" een klant, discussies, opportuniteiten, documenten, enz. \n" +"

\n" +" " + +#. module: contacts +#: model:ir.actions.act_window,name:contacts.action_contacts +#: model:ir.ui.menu,name:contacts.menu_contacts +msgid "Contacts" +msgstr "Contactpersonen" diff --git a/addons/edi/i18n/nl_BE.po b/addons/edi/i18n/nl_BE.po index f5fc80a6fcc..aa96f26d13b 100644 --- a/addons/edi/i18n/nl_BE.po +++ b/addons/edi/i18n/nl_BE.po @@ -8,35 +8,35 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2012-10-02 08:10+0000\n" +"PO-Revision-Date: 2013-04-15 16:04+0000\n" "Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: Dutch (Belgium) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:50+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" #. module: edi #. openerp-web #: code:addons/edi/static/src/js/edi.js:67 #, python-format msgid "Reason:" -msgstr "" +msgstr "Reden:" #. module: edi #. openerp-web #: code:addons/edi/static/src/js/edi.js:60 #, python-format msgid "The document has been successfully imported!" -msgstr "" +msgstr "Het document is met succes geïmporteerd" #. module: edi #. openerp-web #: code:addons/edi/static/src/js/edi.js:65 #, python-format msgid "Sorry, the document could not be imported." -msgstr "" +msgstr "Sorry, het document kan niet worden geïmporteerd" #. module: edi #: model:ir.model,name:edi.model_res_company @@ -53,13 +53,13 @@ msgstr "Munt" #: code:addons/edi/static/src/js/edi.js:71 #, python-format msgid "Document Import Notification" -msgstr "" +msgstr "Documentimportbericht" #. module: edi #: code:addons/edi/models/edi.py:130 #, python-format msgid "Missing application." -msgstr "" +msgstr "Ontbrekend programma" #. module: edi #: code:addons/edi/models/edi.py:131 @@ -87,7 +87,7 @@ msgstr "Relatie" #. module: edi #: model:ir.model,name:edi.model_edi_edi msgid "EDI Subsystem" -msgstr "" +msgstr "EDI-subsysteem" #~ msgid "The currency code must be unique per company!" #~ msgstr "De munt moet uniek zijn per firma." diff --git a/addons/fleet/i18n/nl_BE.po b/addons/fleet/i18n/nl_BE.po new file mode 100644 index 00000000000..380de8a945e --- /dev/null +++ b/addons/fleet/i18n/nl_BE.po @@ -0,0 +1,1912 @@ +# Dutch (Belgium) translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:06+0000\n" +"PO-Revision-Date: 2013-04-15 16:40+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Dutch (Belgium) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" +"X-Generator: Launchpad (build 16564)\n" + +#. module: fleet +#: selection:fleet.vehicle,fuel_type:0 +msgid "Hybrid" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_compact +msgid "Compact" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_1 +msgid "A/C Compressor Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,vin_sn:0 +msgid "Unique number written on the vehicle motor (VIN/SN number)" +msgstr "" + +#. module: fleet +#: selection:fleet.service.type,category:0 +#: view:fleet.vehicle.log.contract:0 +#: view:fleet.vehicle.log.services:0 +msgid "Service" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Monthly" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:62 +#, python-format +msgid "Unknown" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_20 +msgid "Engine/Drive Belt(s) Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Vehicle costs" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,fuel_type:0 +msgid "Diesel" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:421 +#, python-format +msgid "License Plate: from '%s' to '%s'" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_38 +msgid "Resurface Rotors" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +#: view:fleet.vehicle.model:0 +msgid "Group By..." +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_32 +msgid "Oil Pump Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_18 +msgid "Engine Belt Inspection" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,cost_frequency:0 +msgid "No" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,power:0 +msgid "Power in kW of the vehicle" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_2 +msgid "Depreciation and Interests" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,insurer_id:0 +#: field:fleet.vehicle.log.fuel,vendor_id:0 +#: field:fleet.vehicle.log.services,vendor_id:0 +msgid "Supplier" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_35 +msgid "Power Steering Hose Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Odometer details" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "Has Alert(s)" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.fuel,liter:0 +msgid "Liter" +msgstr "" + +#. module: fleet +#: model:ir.actions.client,name:fleet.action_fleet_menu +msgid "Open Fleet Menu" +msgstr "" + +#. module: fleet +#: view:board.board:0 +msgid "Fuel Costs" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_9 +msgid "Battery Inspection" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,company_id:0 +msgid "Company" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Invoice Date" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.fuel:0 +msgid "Refueling Details" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:669 +#, python-format +msgid "%s contract(s) need(s) to be renewed and/or closed!" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Indicative Costs" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_16 +msgid "Charging System Diagnosis" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,car_value:0 +msgid "Value of the bought vehicle" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_44 +msgid "Tie Rod End Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_24 +msgid "Head Gasket(s) Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +#: selection:fleet.vehicle.cost,cost_type:0 +msgid "Services" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,odometer:0 +#: help:fleet.vehicle.cost,odometer:0 +#: help:fleet.vehicle.cost,odometer_id:0 +msgid "Odometer measure of the vehicle at the moment of this log" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +#: field:fleet.vehicle.log.contract,notes:0 +msgid "Terms and Conditions" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_vehicle_kanban +msgid "Vehicles with alerts" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_costs_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_costs_menu +msgid "Vehicle Costs" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Total Cost" +msgstr "" + +#. module: fleet +#: selection:fleet.service.type,category:0 +msgid "Both" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,cost_id:0 +#: field:fleet.vehicle.log.fuel,cost_id:0 +#: field:fleet.vehicle.log.services,cost_id:0 +msgid "Automatically created field to link to parent fleet.vehicle.cost" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Terminate Contract" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,parent_id:0 +msgid "Parent cost to this current cost" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Frequency of the recuring cost" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_1 +msgid "Calculation Benefit In Kind" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.log.contract,expiration_date:0 +msgid "" +"Date when the coverage of the contract expirates (by default, one year after " +"begin date)" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.fuel:0 +#: field:fleet.vehicle.log.fuel,notes:0 +#: view:fleet.vehicle.log.services:0 +#: field:fleet.vehicle.log.services,notes:0 +msgid "Notes" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:47 +#, python-format +msgid "Operation not allowed!" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,message_ids:0 +msgid "Messages" +msgstr "" + +#. module: fleet +#: model:res.groups,name:fleet.group_fleet_user +msgid "User" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,vehicle_id:0 +msgid "Vehicle concerned by this log" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,cost_amount:0 +#: field:fleet.vehicle.log.fuel,cost_amount:0 +#: field:fleet.vehicle.log.services,cost_amount:0 +msgid "Amount" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,message_unread:0 +msgid "Unread Messages" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_6 +msgid "Air Filter Replacement" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_tag +msgid "fleet.vehicle.tag" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "show the services logs for this vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,contract_renewal_name:0 +msgid "Name of contract to renew soon" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_senior +msgid "Senior" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.log.contract,state:0 +msgid "Choose wheter the contract is still valid or not" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,transmission:0 +msgid "Automatic" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:414 +#, python-format +msgid "Driver: from '%s' to '%s'" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "and" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.model.brand,image_medium:0 +msgid "Medium-sized photo" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_34 +msgid "Oxygen Sensor Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.services:0 +msgid "Service Type" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,transmission:0 +msgid "Transmission Used by the vehicle" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:740 +#: view:fleet.vehicle.log.contract:0 +#: model:ir.actions.act_window,name:fleet.act_renew_contract +#, python-format +msgid "Renew Contract" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "show the odometer logs for this vehicle" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,odometer_unit:0 +msgid "Unit of the odometer " +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.services:0 +msgid "Services Costs Per Month" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Effective Costs" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_8 +msgid "Repair and maintenance" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.log.contract,purchaser_id:0 +msgid "Person to which the contract is signed for" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_log_contract_act +msgid "" +"

\n" +" Click to create a new contract. \n" +"

\n" +" Manage all your contracts (leasing, insurances, etc.) with\n" +" their related services, costs. OpenERP will automatically " +"warn\n" +" you when some contracts have to be renewed.\n" +"

\n" +" Each contract (e.g.: leasing) may include several services\n" +" (reparation, insurances, periodic maintenance).\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_service_type +msgid "Type of services available on a vehicle" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_service_types_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_service_types_menu +msgid "Service Types" +msgstr "" + +#. module: fleet +#: view:board.board:0 +msgid "Contracts Costs" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_log_services_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_log_services_menu +msgid "Vehicles Services Logs" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_log_fuel_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_log_fuel_menu +msgid "Vehicles Fuel Logs" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.model.brand:0 +msgid "" +"$('.oe_picture').load(function() { if($(this).width() > $(this).height()) { " +"$(this).addClass('oe_employee_picture_wide') } });" +msgstr "" + +#. module: fleet +#: view:board.board:0 +msgid "Vehicles With Alerts" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_costs_act +msgid "" +"

\n" +" Click to create a new cost.\n" +"

\n" +" OpenERP helps you managing the costs for your different\n" +" vehicles. Costs are created automatically from services,\n" +" contracts (fixed or recurring) and fuel logs.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "show the fuel logs for this vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,purchaser_id:0 +msgid "Contractor" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,license_plate:0 +msgid "License Plate" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,state:0 +msgid "To Close" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Recurring Cost Frequency" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.fuel,inv_ref:0 +#: field:fleet.vehicle.log.services,inv_ref:0 +msgid "Invoice Reference" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,message_follower_ids:0 +msgid "Followers" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,location:0 +msgid "Location" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Costs Per Month" +msgstr "" + +#. module: fleet +#: field:fleet.contract.state,name:0 +msgid "Contract Status" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,contract_renewal_total:0 +msgid "Total of contracts due or overdue minus one" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,cost_subtype_id:0 +msgid "Type" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,contract_renewal_overdue:0 +msgid "Has Contracts Overdued" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,amount:0 +msgid "Total Price" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_27 +msgid "Heater Core Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_14 +msgid "Car Wash" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,driver_id:0 +msgid "Driver of the vehicle" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "other(s)" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_refueling +msgid "Refueling" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_5 +msgid "A/C Recharge" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_log_fuel +msgid "Fuel log for vehicles" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "Engine Options" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.fuel:0 +msgid "Fuel Costs Per Month" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_sedan +msgid "Sedan" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,seats:0 +msgid "Seats Number" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_convertible +msgid "Convertible" +msgstr "" + +#. module: fleet +#: model:ir.ui.menu,name:fleet.fleet_configuration +msgid "Configuration" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +#: field:fleet.vehicle.log.contract,sum_cost:0 +msgid "Indicative Costs Total" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_junior +msgid "Junior" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,model_id:0 +msgid "Model of the vehicle" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_state_act +msgid "" +"

\n" +" Click to create a vehicule status.\n" +"

\n" +" You can customize available status to track the evolution " +"of\n" +" each vehicule. Example: Active, Being Repaired, Sold.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +#: field:fleet.vehicle,log_fuel:0 +#: view:fleet.vehicle.log.fuel:0 +msgid "Fuel Logs" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:409 +#: code:addons/fleet/fleet.py:413 +#: code:addons/fleet/fleet.py:417 +#: code:addons/fleet/fleet.py:420 +#, python-format +msgid "None" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_reporting_costs_non_effective +#: model:ir.ui.menu,name:fleet.menu_fleet_reporting_indicative_costs +msgid "Indicative Costs Analysis" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_12 +msgid "Brake Inspection" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,state_id:0 +msgid "Current state of the vehicle" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,transmission:0 +msgid "Manual" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_52 +msgid "Wheel Bearing Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,cost_subtype_id:0 +msgid "Cost type purchased with this cost" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,fuel_type:0 +msgid "Gasoline" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_model_brand_act +msgid "" +"

\n" +" Click to create a new brand.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,start_date:0 +msgid "Contract Start Date" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,odometer_unit:0 +msgid "Odometer Unit" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_30 +msgid "Intake Manifold Gasket Replacement" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Daily" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_6 +msgid "Snow tires" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,date:0 +msgid "Date when the cost has been executed" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +#: view:fleet.vehicle.model:0 +msgid "Vehicles costs" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_log_services +msgid "Services for vehicles" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Indicative Cost" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_26 +msgid "Heater Control Valve Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "" +"Create a new contract automatically with all the same informations except " +"for the date that will start at the end of current contract" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,state:0 +msgid "Terminated" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_cost +msgid "Cost related to a vehicle" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_33 +msgid "Other Maintenance" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +#: field:fleet.vehicle.cost,parent_id:0 +msgid "Parent" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,state_id:0 +#: view:fleet.vehicle.state:0 +msgid "State" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,cost_generated:0 +msgid "Recurring Cost Amount" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_49 +msgid "Transmission Replacement" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_log_fuel_act +msgid "" +"

\n" +" Click to create a new fuel log. \n" +"

\n" +" Here you can add refuelling entries for all vehicles. You " +"can\n" +" also filter logs of a particular vehicle using the search\n" +" field.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_11 +msgid "Brake Caliper Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,odometer:0 +msgid "Last Odometer" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_model_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_model_menu +msgid "Vehicle Model" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,doors:0 +msgid "Doors Number" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,acquisition_date:0 +msgid "Date when the vehicle has been bought" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.model:0 +msgid "Models" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "amount" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,fuel_type:0 +msgid "Fuel Used by the vehicle" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Set Contract In Progress" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,odometer_unit:0 +#: field:fleet.vehicle.odometer,unit:0 +msgid "Unit" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,message_is_follower:0 +msgid "Is a Follower" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,horsepower:0 +msgid "Horsepower" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,image:0 +#: field:fleet.vehicle,image_medium:0 +#: field:fleet.vehicle,image_small:0 +#: field:fleet.vehicle.model,image:0 +#: field:fleet.vehicle.model,image_medium:0 +#: field:fleet.vehicle.model,image_small:0 +#: field:fleet.vehicle.model.brand,image:0 +msgid "Logo" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,horsepower_tax:0 +msgid "Horsepower Taxation" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,log_services:0 +#: view:fleet.vehicle.log.services:0 +msgid "Services Logs" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.model:0 +msgid "Brand" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_43 +msgid "Thermostat Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.service.type,category:0 +msgid "Category" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_vehicle_log_fuel_graph +msgid "Fuel Costs by Month" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.model.brand,image:0 +msgid "" +"This field holds the image used as logo for the brand, limited to " +"1024x1024px." +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_11 +msgid "Management Fee" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "All vehicles" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.fuel:0 +#: view:fleet.vehicle.log.services:0 +msgid "Additional Details" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_vehicle_log_services_graph +msgid "Services Costs by Month" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_9 +msgid "Assistance" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.fuel,price_per_liter:0 +msgid "Price Per Liter" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_17 +msgid "Door Window Motor/Regulator Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_46 +msgid "Tire Service" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_8 +msgid "Ball Joint Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,fuel_type:0 +msgid "Fuel Type" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_22 +msgid "Fuel Injector Replacement" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_state_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_state_menu +msgid "Vehicle Status" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_50 +msgid "Water Pump Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,location:0 +msgid "Location of the vehicle (garage, ...)" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_28 +msgid "Heater Hose Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,state:0 +msgid "Status" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_40 +msgid "Rotor Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.model,brand_id:0 +msgid "Brand of the vehicle" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.log.contract,start_date:0 +msgid "Date when the coverage of the contract begins" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,fuel_type:0 +msgid "Electric" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,tag_ids:0 +msgid "Tags" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +#: field:fleet.vehicle,log_contracts:0 +msgid "Contracts" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_13 +msgid "Brake Pad(s) Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.fuel:0 +#: view:fleet.vehicle.log.services:0 +msgid "Odometer Details" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,driver_id:0 +msgid "Driver" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.model.brand,image_small:0 +msgid "" +"Small-sized photo of the brand. It is automatically resized as a 64x64px " +"image, with aspect ratio preserved. Use this field anywhere a small image is " +"required." +msgstr "" + +#. module: fleet +#: view:board.board:0 +msgid "Fleet Dashboard" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_break +msgid "Break" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_contract_omnium +msgid "Omnium" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.services:0 +msgid "Services Details" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_15 +msgid "Residual value (Excluding VAT)" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_7 +msgid "Alternator Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_3 +msgid "A/C Diagnosis" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_23 +msgid "Fuel Pump Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Activation Cost" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Cost Type" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_4 +msgid "A/C Evaporator Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "show all the costs for this vehicle" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.odometer:0 +msgid "Odometer Values Per Month" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_model_act +msgid "" +"

\n" +" Click to create a new model.\n" +"

\n" +" You can define several models (e.g. A3, A4) for each brand " +"(Audi).\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_act +msgid "" +"

\n" +" Click to create a new vehicle. \n" +"

\n" +" You will be able to manage your fleet by keeping track of " +"the\n" +" contracts, services, fixed and recurring costs, odometers " +"and\n" +" fuel logs associated to each vehicle.\n" +"

\n" +" OpenERP will warn you when services or contract have to be\n" +" renewed.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_13 +msgid "Entry into service tax" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,expiration_date:0 +msgid "Contract Expiration Date" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Cost Subtype" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.open_board_fleet +msgid "" +"
\n" +"

\n" +" Fleet dashboard is empty.\n" +"

\n" +" To add your first report into this dashboard, go to any\n" +" menu, switch to list or graph view, and click 'Add " +"to\n" +" Dashboard' in the extended search options.\n" +"

\n" +" You can filter and group data before inserting into the\n" +" dashboard using the search options.\n" +"

\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_12 +msgid "Rent (Excluding VAT)" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,odometer_unit:0 +msgid "Kilometers" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.fuel:0 +msgid "Vehicle Details" +msgstr "" + +#. module: fleet +#: selection:fleet.service.type,category:0 +#: field:fleet.vehicle.cost,contract_id:0 +#: selection:fleet.vehicle.cost,cost_type:0 +msgid "Contract" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_model_brand_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_model_brand_menu +msgid "Model brand of Vehicle" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_10 +msgid "Battery Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +#: field:fleet.vehicle.cost,date:0 +#: field:fleet.vehicle.odometer,date:0 +msgid "Date" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_menu +#: model:ir.ui.menu,name:fleet.fleet_vehicles +msgid "Vehicles" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,odometer_unit:0 +msgid "Miles" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.log.contract,cost_generated:0 +msgid "" +"Costs paid at regular intervals, depending on the cost frequency. If the " +"cost frequency is set to unique, the cost will be logged at the start date" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_17 +msgid "Emissions" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_model +msgid "Model of a vehicle" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.action_fleet_reporting_costs +#: model:ir.actions.act_window,help:fleet.action_fleet_reporting_costs_non_effective +msgid "" +"

\n" +" OpenERP helps you managing the costs for your different vehicles\n" +" Costs are generally created from services and contract and appears " +"here.\n" +"

\n" +"

\n" +" Thanks to the different filters, OpenERP can only print the " +"effective\n" +" costs, sort them by type and by vehicle.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,car_value:0 +msgid "Car Value" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.open_board_fleet +#: model:ir.module.category,name:fleet.module_fleet_category +#: model:ir.ui.menu,name:fleet.menu_fleet_dashboard +#: model:ir.ui.menu,name:fleet.menu_fleet_reporting +#: model:ir.ui.menu,name:fleet.menu_root +msgid "Fleet" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_14 +msgid "Total expenses (Excluding VAT)" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,odometer_id:0 +msgid "Odometer" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_45 +msgid "Tire Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.service.type:0 +msgid "Service types" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.fuel,purchaser_id:0 +#: field:fleet.vehicle.log.services,purchaser_id:0 +msgid "Purchaser" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_3 +msgid "Tax roll" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.model:0 +#: field:fleet.vehicle.model,vendors:0 +msgid "Vendors" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_contract_leasing +msgid "Leasing" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.model.brand,image_medium:0 +msgid "" +"Medium-sized logo of the brand. It is automatically resized as a 128x128px " +"image, with aspect ratio preserved. Use this field in form views or some " +"kanban views." +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Weekly" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +#: view:fleet.vehicle.odometer:0 +msgid "Odometer Logs" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,acquisition_date:0 +msgid "Acquisition Date" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_odometer +msgid "Odometer log for a vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,cost_type:0 +msgid "Category of the cost" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_5 +#: model:fleet.service.type,name:fleet.type_service_service_7 +msgid "Summer tires" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,contract_renewal_due_soon:0 +msgid "Has Contracts to renew" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_31 +msgid "Oil Change" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.model.brand,image_small:0 +msgid "Smal-sized photo" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_model_brand +msgid "Brand model of the vehicle" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_51 +msgid "Wheel Alignment" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_purchased +msgid "Purchased" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_odometer_act +msgid "" +"

\n" +" Here you can add various odometer entries for all vehicles.\n" +" You can also show odometer value for a particular vehicle " +"using\n" +" the search field.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.model,brand_id:0 +#: view:fleet.vehicle.model.brand:0 +msgid "Model Brand" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "General Properties" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_21 +msgid "Exhaust Manifold Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_47 +msgid "Transmission Filter Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_10 +msgid "Replacement Vehicle" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,state:0 +msgid "In Progress" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Yearly" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.model,modelname:0 +msgid "Model name" +msgstr "" + +#. module: fleet +#: view:board.board:0 +#: model:ir.actions.act_window,name:fleet.action_fleet_vehicle_costs_graph +msgid "Costs by Month" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_18 +msgid "Touring Assistance" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,power:0 +msgid "Power (kW)" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:418 +#, python-format +msgid "State: from '%s' to '%s'" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_2 +msgid "A/C Condenser Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_19 +msgid "Engine Coolant Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Cost Details" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:410 +#, python-format +msgid "Model: from '%s' to '%s'" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.cost,cost_type:0 +msgid "Other" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Contract details" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_leasing +msgid "Employee Car" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,auto_generated:0 +msgid "Automatically Generated" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.cost,cost_type:0 +msgid "Fuel" +msgstr "" + +#. module: fleet +#: sql_constraint:fleet.vehicle.state:0 +msgid "State name already exists" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_37 +msgid "Radiator Repair" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_log_contract +msgid "Contract information on a vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,days_left:0 +msgid "Warning Date" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_19 +msgid "Residual value in %" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "Additional Properties" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_state +msgid "fleet.vehicle.state" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Contract Costs Per Month" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_log_contract_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_log_contract_menu +msgid "Vehicles Contracts" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_48 +msgid "Transmission Fluid Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.model.brand,name:0 +msgid "Brand Name" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_36 +msgid "Power Steering Pump Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,contract_id:0 +msgid "Contract attached to this cost" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:397 +#, python-format +msgid "Vehicle %s has been added to the fleet!" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +#: view:fleet.vehicle.log.fuel:0 +#: view:fleet.vehicle.log.services:0 +msgid "Price" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,odometer:0 +#: field:fleet.vehicle.odometer,value:0 +msgid "Odometer Value" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +#: view:fleet.vehicle.cost:0 +#: field:fleet.vehicle.cost,vehicle_id:0 +#: field:fleet.vehicle.odometer,vehicle_id:0 +msgid "Vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,cost_ids:0 +#: view:fleet.vehicle.log.contract:0 +#: view:fleet.vehicle.log.services:0 +msgid "Included Services" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.action_fleet_vehicle_kanban +msgid "" +"

\n" +" Here are displayed vehicles for which one or more contracts need " +"to be renewed. If you see this message, then there is no contracts to " +"renew.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_15 +msgid "Catalytic Converter Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_25 +msgid "Heater Blower Motor Replacement" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_odometer_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_odometer_menu +msgid "Vehicles Odometer" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.log.contract,notes:0 +msgid "Write here all supplementary informations relative to this contract" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_29 +msgid "Ignition Coil Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_16 +msgid "Options" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_contract_repairing +msgid "Repairing" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_reporting_costs +#: model:ir.ui.menu,name:fleet.menu_fleet_reporting_costs +msgid "Costs Analysis" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,ins_ref:0 +msgid "Contract Reference" +msgstr "" + +#. module: fleet +#: field:fleet.service.type,name:0 +#: field:fleet.vehicle,name:0 +#: field:fleet.vehicle.cost,name:0 +#: field:fleet.vehicle.log.contract,name:0 +#: field:fleet.vehicle.model,name:0 +#: field:fleet.vehicle.odometer,name:0 +#: field:fleet.vehicle.state,name:0 +#: field:fleet.vehicle.tag,name:0 +msgid "Name" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,doors:0 +msgid "Number of doors of the vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,transmission:0 +msgid "Transmission" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,vin_sn:0 +msgid "Chassis Number" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,color:0 +msgid "Color of the vehicle" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_log_services_act +msgid "" +"

\n" +" Click to create a new service entry. \n" +"

\n" +" OpenERP helps you keeping track of all the services done\n" +" on your vehicle. Services can be of many type: occasional\n" +" repair, fixed maintenance, etc.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,co2:0 +msgid "CO2 Emissions" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Contract logs" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "Costs" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,message_summary:0 +msgid "Summary" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_vehicle_log_contract_graph +msgid "Contracts Costs by Month" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,model_id:0 +#: view:fleet.vehicle.model:0 +msgid "Model" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_41 +msgid "Spark Plug Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,message_ids:0 +msgid "Messages and communication history" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle +msgid "Information on a vehicle" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,co2:0 +msgid "CO2 emissions of the vehicle" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_53 +msgid "Windshield Wiper(s) Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +#: field:fleet.vehicle.log.contract,generated_cost_ids:0 +msgid "Generated Costs" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.state,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,color:0 +msgid "Color" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_service_types_act +msgid "" +"

\n" +" Click to create a new type of service.\n" +"

\n" +" Each service can used in contracts, as a standalone service " +"or both.\n" +"

\n" +" " +msgstr "" + +#. module: fleet +#: view:board.board:0 +msgid "Services Costs" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:47 +#, python-format +msgid "Emptying the odometer value of a vehicle is not allowed." +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,seats:0 +msgid "Number of seats of the vehicle" +msgstr "" + +#. module: fleet +#: model:res.groups,name:fleet.group_fleet_manager +msgid "Manager" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.services:0 +msgid "Cost" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_39 +msgid "Rotate Tires" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_42 +msgid "Starter Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +#: field:fleet.vehicle.cost,year:0 +msgid "Year" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,license_plate:0 +msgid "License plate number of the vehicle (ie: plate number for a car)" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_contract_state +msgid "Contains the different possible status of a leasing contract" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "show the contract for this vehicle" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.services:0 +msgid "Total" +msgstr "" + +#. module: fleet +#: help:fleet.service.type,category:0 +msgid "" +"Choose wheter the service refer to contracts, vehicle services or both" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,cost_type:0 +msgid "For internal purpose only" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.state,sequence:0 +msgid "Used to order the note stages" +msgstr "" From 39c88d09229dbd7cfb3b13b823afe00dcd638f80 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 16 Apr 2013 15:26:21 +0200 Subject: [PATCH 119/124] [IMP] account: cash.box.in defines its _columns, do the same for cash.box.out. This is needed to solve an inheritance problem when adding a superclass `base.model` (I guess this is related to the fact some code in the orm does a copy from the class to the instance). bzr revid: vmt@openerp.com-20130416132621-xo0lckimczqpvyos --- addons/account/wizard/pos_box.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/account/wizard/pos_box.py b/addons/account/wizard/pos_box.py index 1d6d13e140b..874a8e3b7c9 100644 --- a/addons/account/wizard/pos_box.py +++ b/addons/account/wizard/pos_box.py @@ -67,6 +67,8 @@ class CashBoxIn(CashBox): class CashBoxOut(CashBox): _name = 'cash.box.out' + _columns = CashBox._columns.copy() + def _compute_values_for_statement_line(self, cr, uid, box, record, context=None): amount = box.amount or 0.0 return { From 3fe1f535148deedf4295b51c348104db7fa3662b Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 16 Apr 2013 17:18:44 +0200 Subject: [PATCH 120/124] [REF] get_module_resource() must imported from openerp.modules (instead of openerp.addons). bzr revid: vmt@openerp.com-20130416151844-gatbo4s2l2e6reme --- .../base_report_designer/base_report_designer.py | 15 ++++++++------- addons/base_report_designer/installer.py | 4 ++-- addons/crm/test/crm_lead_message.yml | 3 +-- addons/crm_claim/test/process/claim.yml | 3 +-- addons/document_webdav/test/webdav_test1.yml | 5 ++--- addons/document_webdav/webdav_server.py | 2 +- addons/hr/hr.py | 6 ++++-- addons/survey/wizard/survey_answer.py | 9 +++++---- addons/survey/wizard/survey_send_invitation.py | 9 +++++---- 9 files changed, 29 insertions(+), 27 deletions(-) diff --git a/addons/base_report_designer/base_report_designer.py b/addons/base_report_designer/base_report_designer.py index 6a0a2722755..bc7959a17df 100644 --- a/addons/base_report_designer/base_report_designer.py +++ b/addons/base_report_designer/base_report_designer.py @@ -20,12 +20,13 @@ ############################################################################## import base64 +from StringIO import StringIO + +from openerp.modules.module import get_module_resource import openerp.modules.registry from openerp.osv import osv from openerp_sxw2rml import sxw2rml -from StringIO import StringIO -from openerp import addons - + class report_xml(osv.osv): _inherit = 'ir.actions.report.xml' @@ -36,9 +37,9 @@ class report_xml(osv.osv): ''' sxwval = StringIO(base64.decodestring(file_sxw)) if file_type=='sxw': - fp = open(addons.get_module_resource('base_report_designer','openerp_sxw2rml', 'normalized_oo2rml.xsl'),'rb') + fp = open(get_module_resource('base_report_designer','openerp_sxw2rml', 'normalized_oo2rml.xsl'),'rb') if file_type=='odt': - fp = open(addons.get_module_resource('base_report_designer','openerp_sxw2rml', 'normalized_odt2rml.xsl'),'rb') + fp = open(get_module_resource('base_report_designer','openerp_sxw2rml', 'normalized_odt2rml.xsl'),'rb') return {'report_rml_content': str(sxw2rml(sxwval, xsl=fp.read()))} def upload_report(self, cr, uid, report_id, file_sxw, file_type, context=None): @@ -47,9 +48,9 @@ class report_xml(osv.osv): ''' sxwval = StringIO(base64.decodestring(file_sxw)) if file_type=='sxw': - fp = open(addons.get_module_resource('base_report_designer','openerp_sxw2rml', 'normalized_oo2rml.xsl'),'rb') + fp = open(get_module_resource('base_report_designer','openerp_sxw2rml', 'normalized_oo2rml.xsl'),'rb') if file_type=='odt': - fp = open(addons.get_module_resource('base_report_designer','openerp_sxw2rml', 'normalized_odt2rml.xsl'),'rb') + fp = open(get_module_resource('base_report_designer','openerp_sxw2rml', 'normalized_odt2rml.xsl'),'rb') report = self.pool['ir.actions.report.xml'].write(cr, uid, [report_id], { 'report_sxw_content': base64.decodestring(file_sxw), 'report_rml_content': str(sxw2rml(sxwval, xsl=fp.read())), diff --git a/addons/base_report_designer/installer.py b/addons/base_report_designer/installer.py index 0c0e6086df0..a21b6655af7 100644 --- a/addons/base_report_designer/installer.py +++ b/addons/base_report_designer/installer.py @@ -23,7 +23,7 @@ from openerp.osv import fields from openerp.osv import osv import base64 from openerp.tools.translate import _ -from openerp import addons +from openerp.modules.module import get_module_resource class base_report_designer_installer(osv.osv_memory): _name = 'base_report_designer.installer' @@ -31,7 +31,7 @@ class base_report_designer_installer(osv.osv_memory): def default_get(self, cr, uid, fields, context=None): data = super(base_report_designer_installer, self).default_get(cr, uid, fields, context=context) - plugin_file = open(addons.get_module_resource('base_report_designer','plugin', 'openerp_report_designer.zip'),'rb') + plugin_file = open(get_module_resource('base_report_designer','plugin', 'openerp_report_designer.zip'),'rb') data['plugin_file'] = base64.encodestring(plugin_file.read()) return data diff --git a/addons/crm/test/crm_lead_message.yml b/addons/crm/test/crm_lead_message.yml index 221a4ab634f..0f7d4655398 100644 --- a/addons/crm/test/crm_lead_message.yml +++ b/addons/crm/test/crm_lead_message.yml @@ -4,8 +4,7 @@ Mail script will fetch his request from mail server. Then I process that mail after read EML file. - !python {model: mail.thread}: | - from openerp import addons - request_file = open(addons.get_module_resource('crm','test', 'customer_request.eml'),'rb') + request_file = open(openerp.modules.module.get_module_resource('crm','test', 'customer_request.eml'),'rb') request_message = request_file.read() self.message_process(cr, uid, 'crm.lead', request_message) - diff --git a/addons/crm_claim/test/process/claim.yml b/addons/crm_claim/test/process/claim.yml index bacb073b4b9..a843372956e 100644 --- a/addons/crm_claim/test/process/claim.yml +++ b/addons/crm_claim/test/process/claim.yml @@ -4,8 +4,7 @@ Mail script will be fetched him request from mail server. so I process that mail after read EML file - !python {model: mail.thread}: | - from openerp import addons - request_file = open(addons.get_module_resource('crm_claim','test', 'customer_claim.eml'),'rb') + request_file = open(openerp.modules.module.get_module_resource('crm_claim','test', 'customer_claim.eml'),'rb') request_message = request_file.read() self.message_process(cr, uid, 'crm.claim', request_message) - diff --git a/addons/document_webdav/test/webdav_test1.yml b/addons/document_webdav/test/webdav_test1.yml index 82236f63846..ae91d7cd4a8 100644 --- a/addons/document_webdav/test/webdav_test1.yml +++ b/addons/document_webdav/test/webdav_test1.yml @@ -47,10 +47,9 @@ - !python {model: ir.attachment}: | from document_webdav import test_davclient as te - import addons dc = te.DAVClient() dc.get_creds(self, cr, uid) - tdp = addons.get_module_resource('document_webdav', 'test_davclient.py') + tdp = openerp.modules.module.get_module_resource('document_webdav', 'test_davclient.py') res = dc.gd_put(path=cr.dbname+'/Documents/test_davclient.py', srcpath=tdp) - I will try to get the file from the root @@ -60,5 +59,5 @@ import addons dc = te.DAVClient() dc.get_creds(self, cr, uid) - tdp = addons.get_module_resource('document_webdav', 'test_davclient.py') + tdp = openerp.modules.module.get_module_resource('document_webdav', 'test_davclient.py') res = dc.gd_get(path=cr.dbname+'/Documents/test_davclient.py', crange=(4,508), compare=tdp) diff --git a/addons/document_webdav/webdav_server.py b/addons/document_webdav/webdav_server.py index 1804b9bfdb2..f67de272e29 100644 --- a/addons/document_webdav/webdav_server.py +++ b/addons/document_webdav/webdav_server.py @@ -608,7 +608,7 @@ try: if base_path and base_path == '/': dir_path = config.get_misc('static-http', 'dir_path', False) else: - dir_path = openerp.addons.get_module_resource('document_webdav','public_html') + dir_path = openerp.modules.module.get_module_resource('document_webdav','public_html') # an _ugly_ hack: we put that dir back in tools.config.misc, so that # the StaticHttpHandler can find its dir_path. config.misc.setdefault('static-http',{})['dir_path'] = dir_path diff --git a/addons/hr/hr.py b/addons/hr/hr.py index 59e472b3717..585e5ce81a4 100644 --- a/addons/hr/hr.py +++ b/addons/hr/hr.py @@ -19,10 +19,12 @@ # ############################################################################## -from openerp import addons import logging + +from openerp.modules.module import get_module_resource from openerp.osv import fields, osv from openerp import tools + _logger = logging.getLogger(__name__) class hr_employee_category(osv.osv): @@ -259,7 +261,7 @@ class hr_employee(osv.osv): return {'value': {'work_email' : work_email}} def _get_default_image(self, cr, uid, context=None): - image_path = addons.get_module_resource('hr', 'static/src/img', 'default_image.png') + image_path = get_module_resource('hr', 'static/src/img', 'default_image.png') return tools.image_resize_image_big(open(image_path, 'rb').read().encode('base64')) _defaults = { diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py index 181d6159109..6d473754988 100644 --- a/addons/survey/wizard/survey_answer.py +++ b/addons/survey/wizard/survey_answer.py @@ -25,7 +25,8 @@ from lxml import etree import os from time import strftime -from openerp import addons, tools +from openerp import tools +from openerp.modules.module import get_module_resource from openerp.osv import fields, osv import openerp.report from openerp.tools import to_xml @@ -412,7 +413,7 @@ class survey_question_wiz(osv.osv_memory): response_id = surv_name_wiz.read(cr, uid, context.get('sur_name_id',False))['response'] report = self.create_report(cr, uid, [survey_id], 'report.survey.browse.response', survey_data.title,context) attachments = {} - pdf_filename = addons.get_module_resource('survey', 'report') + survey_data.title + ".pdf" + pdf_filename = get_module_resource('survey', 'report') + survey_data.title + ".pdf" if os.path.exists(pdf_filename): file = open(pdf_filename) file_data = "" @@ -424,7 +425,7 @@ class survey_question_wiz(osv.osv_memory): attachments[survey_data.title + ".pdf"] = file_data file.close() - os.remove(addons.get_module_resource('survey', 'report') + survey_data.title + ".pdf") + os.remove(get_module_resource('survey', 'report') + survey_data.title + ".pdf") context.update({'response_id':response_id}) user_email = user_obj.browse(cr, uid, uid, context).email resp_email = survey_data.responsible_id and survey_data.responsible_id.email or False @@ -466,7 +467,7 @@ class survey_question_wiz(osv.osv_memory): try: uid = 1 result, format = openerp.report.render_report(cr, uid, res_ids, report_name[len('report.'):], {}, context) - ret_file_name = addons.get_module_resource('survey', 'report') + file_name + '.pdf' + ret_file_name = get_module_resource('survey', 'report') + file_name + '.pdf' fp = open(ret_file_name, 'wb+'); fp.write(result); fp.close(); diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py index a188ab7ce83..ca6a8e4b15d 100644 --- a/addons/survey/wizard/survey_send_invitation.py +++ b/addons/survey/wizard/survey_send_invitation.py @@ -26,7 +26,8 @@ import os import datetime import socket -from openerp import addons, tools +from openerp import tools +from openerp.modules.module import get_module_resource from openerp.osv import fields, osv import openerp.report from openerp.tools.translate import _ @@ -85,7 +86,7 @@ Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'we if not report_name or not res_ids: return (False, Exception('Report name and Resources ids are required !!!')) try: - ret_file_name = addons.get_module_resource('survey', 'report') + file_name + '.pdf' + ret_file_name = get_module_resource('survey', 'report') + file_name + '.pdf' result, format = openerp.report.render_report(cr, uid, res_ids, report_name[len('report.'):], {}, {}) fp = open(ret_file_name, 'wb+'); fp.write(result); @@ -128,7 +129,7 @@ Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'we new_user.append(use.id) for id in survey_ref.browse(cr, uid, survey_ids): report = self.create_report(cr, uid, [id.id], 'report.survey.form', id.title) - file = open(addons.get_module_resource('survey', 'report') + id.title +".pdf") + file = open(get_module_resource('survey', 'report') + id.title +".pdf") file_data = "" while 1: line = file.readline() @@ -137,7 +138,7 @@ Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'we break file.close() attachments[id.title +".pdf"] = file_data - os.remove(addons.get_module_resource('survey', 'report') + id.title +".pdf") + os.remove(get_module_resource('survey', 'report') + id.title +".pdf") for partner in self.pool.get('res.partner').browse(cr, uid, partner_ids): if not partner.email: From d92f8821ef7db35311f23206b40a1d78b3b535d4 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 17 Apr 2013 05:15:50 +0000 Subject: [PATCH 121/124] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20130417051550-7yf32ngvesfbrxyn --- addons/account/i18n/nl_BE.po | 4 ++-- addons/account_followup/i18n/nl_BE.po | 4 ++-- addons/auth_signup/i18n/zh_CN.po | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/account/i18n/nl_BE.po b/addons/account/i18n/nl_BE.po index a3244945957..139807ab49b 100644 --- a/addons/account/i18n/nl_BE.po +++ b/addons/account/i18n/nl_BE.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" -"X-Generator: Launchpad (build 16564)\n" +"X-Launchpad-Export-Date: 2013-04-17 05:15+0000\n" +"X-Generator: Launchpad (build 16567)\n" "Language: nl\n" #. module: account diff --git a/addons/account_followup/i18n/nl_BE.po b/addons/account_followup/i18n/nl_BE.po index 5125f27f2ff..64a73d776ef 100644 --- a/addons/account_followup/i18n/nl_BE.po +++ b/addons/account_followup/i18n/nl_BE.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" -"X-Generator: Launchpad (build 16564)\n" +"X-Launchpad-Export-Date: 2013-04-17 05:15+0000\n" +"X-Generator: Launchpad (build 16567)\n" "Language: nl\n" #. module: account_followup diff --git a/addons/auth_signup/i18n/zh_CN.po b/addons/auth_signup/i18n/zh_CN.po index 9beb3a044d3..aa8d9f952c1 100644 --- a/addons/auth_signup/i18n/zh_CN.po +++ b/addons/auth_signup/i18n/zh_CN.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-04-16 04:37+0000\n" -"X-Generator: Launchpad (build 16564)\n" +"X-Launchpad-Export-Date: 2013-04-17 05:15+0000\n" +"X-Generator: Launchpad (build 16567)\n" #. module: auth_signup #: field:res.partner,signup_type:0 From d248aa30ba5ab3ce2c61390fffb3b696c359bc9a Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 17 Apr 2013 08:40:51 +0200 Subject: [PATCH 122/124] [REF] get_module_resource() must imported from openerp.modules (instead of openerp.addons). bzr revid: vmt@openerp.com-20130417064051-dvtgaya0kzyryvac --- addons/crm_helpdesk/test/process/help-desk.yml | 3 +-- addons/hr_recruitment/test/recruitment_process.yml | 3 +-- addons/l10n_lu/wizard/print_vat.py | 4 ++-- addons/project_issue/test/subscribe_issue.yml | 5 ++--- addons/report_webkit/webkit_report.py | 6 +++--- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/addons/crm_helpdesk/test/process/help-desk.yml b/addons/crm_helpdesk/test/process/help-desk.yml index e2be4a64ca3..95536b1c8dd 100644 --- a/addons/crm_helpdesk/test/process/help-desk.yml +++ b/addons/crm_helpdesk/test/process/help-desk.yml @@ -4,8 +4,7 @@ Mail script will be fetched him request from mail server. so I process that mail after read EML file - !python {model: mail.thread}: | - from openerp import addons - request_file = open(addons.get_module_resource('crm_helpdesk','test', 'customer_question.eml'),'rb') + request_file = open(openerp.modules.module.get_module_resource('crm_helpdesk','test', 'customer_question.eml'),'rb') request_message = request_file.read() self.message_process(cr, uid, 'crm.helpdesk', request_message) - diff --git a/addons/hr_recruitment/test/recruitment_process.yml b/addons/hr_recruitment/test/recruitment_process.yml index f2d4e4736fa..335edc71892 100644 --- a/addons/hr_recruitment/test/recruitment_process.yml +++ b/addons/hr_recruitment/test/recruitment_process.yml @@ -4,8 +4,7 @@ An applicant is interested in the job position. So he sends a resume by email. - !python {model: mail.thread}: | - from openerp import addons - request_file = open(addons.get_module_resource('hr_recruitment','test', 'resume.eml'),'rb') + request_file = open(openerp.modules.module.get_module_resource('hr_recruitment','test', 'resume.eml'),'rb') request_message = request_file.read() self.message_process(cr, uid, 'hr.applicant', request_message) - diff --git a/addons/l10n_lu/wizard/print_vat.py b/addons/l10n_lu/wizard/print_vat.py index 79213026496..bfa058720d3 100644 --- a/addons/l10n_lu/wizard/print_vat.py +++ b/addons/l10n_lu/wizard/print_vat.py @@ -9,10 +9,10 @@ from __future__ import with_statement import openerp from openerp.osv import fields, osv from openerp import tools +from openerp.modules.module import get_module_resource from openerp.tools.translate import _ from openerp.report.render import render from openerp.report.interface import report_int -from openerp import addons import tempfile import os @@ -53,7 +53,7 @@ class report_custom(report_int): try: tmp_file = tempfile.mkstemp(".pdf")[1] try: - tools.pdf_utils.fill_pdf(addons.get_module_resource('l10n_lu','wizard', '2008_DECL_F_M10.pdf'), tmp_file, result) + tools.pdf_utils.fill_pdf(get_module_resource('l10n_lu','wizard', '2008_DECL_F_M10.pdf'), tmp_file, result) with open(tmp_file, "r") as ofile: self.obj = external_pdf(ofile.read()) finally: diff --git a/addons/project_issue/test/subscribe_issue.yml b/addons/project_issue/test/subscribe_issue.yml index 9f16dc80b97..af81ff4d295 100644 --- a/addons/project_issue/test/subscribe_issue.yml +++ b/addons/project_issue/test/subscribe_issue.yml @@ -2,8 +2,7 @@ In Order to test process of Issue in OpenERP, Custmer send the issue by email. - !python {model: mail.thread}: | - from openerp import addons - request_file = open(addons.get_module_resource('project_issue','test', 'issue.eml'),'rb') + request_file = open(openerp.modules.module.get_module_resource('project_issue','test', 'issue.eml'),'rb') request_message = request_file.read() self.message_process(cr, uid, 'project.issue', request_message) - @@ -14,4 +13,4 @@ assert issue_ids and len(issue_ids), "issue is not created after getting request" issue = self.browse(cr, uid, issue_ids[0], context=context) assert not issue.partner_id, "Customer should be a new" - assert issue.name == "Error in the account module", "Subject does not match" \ No newline at end of file + assert issue.name == "Error in the account module", "Subject does not match" diff --git a/addons/report_webkit/webkit_report.py b/addons/report_webkit/webkit_report.py index 01536f471fe..3d8e41c42ff 100644 --- a/addons/report_webkit/webkit_report.py +++ b/addons/report_webkit/webkit_report.py @@ -40,8 +40,8 @@ import logging from report_helper import WebKitHelper import openerp +from openerp.modules.module import get_module_resource from openerp.report.report_sxw import * -from openerp import addons from openerp import tools from openerp.tools.translate import _ from openerp.osv.osv import except_osv @@ -280,7 +280,7 @@ class WebKitParser(report_sxw): template = False if report_xml.report_file : - path = addons.get_module_resource(*report_xml.report_file.split(os.path.sep)) + path = get_module_resource(*report_xml.report_file.split(os.path.sep)) if path and os.path.exists(path) : template = file(path).read() if not template and report_xml.report_webkit_data : @@ -296,7 +296,7 @@ class WebKitParser(report_sxw): ) if not report_xml.header : header = '' - default_head = addons.get_module_resource('report_webkit', 'default_header.html') + default_head = get_module_resource('report_webkit', 'default_header.html') with open(default_head,'r') as f: header = f.read() css = report_xml.webkit_header.css From 95415292154584aaa59c9d3449ab07f2f041cfe2 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 17 Apr 2013 09:55:46 +0200 Subject: [PATCH 123/124] [FIX] _auto_init(): when _auto_init() is overridden it does not return the super() result, which might brake functional fields initialization. bzr revid: vmt@openerp.com-20130417075546-e3crirzk1trl9yr1 --- addons/account/account_move_line.py | 3 ++- addons/hr_recruitment/hr_recruitment.py | 3 ++- addons/mail/mail_alias.py | 4 +++- addons/mail/res_users.py | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index b0b7815ad3c..48b2591485d 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -559,10 +559,11 @@ class account_move_line(osv.osv): ] def _auto_init(self, cr, context=None): - super(account_move_line, self)._auto_init(cr, context=context) + res = super(account_move_line, self)._auto_init(cr, context=context) cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'account_move_line_journal_id_period_id_index\'') if not cr.fetchone(): cr.execute('CREATE INDEX account_move_line_journal_id_period_id_index ON account_move_line (journal_id, period_id)') + return res def _check_no_view(self, cr, uid, ids, context=None): lines = self.browse(cr, uid, ids, context=context) diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index b0b60db6bd5..e41d80fb348 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -510,8 +510,9 @@ class hr_job(osv.osv): def _auto_init(self, cr, context=None): """Installation hook to create aliases for all jobs and avoid constraint errors.""" - self.pool.get('mail.alias').migrate_to_alias(cr, self._name, self._table, super(hr_job,self)._auto_init, + res = self.pool.get('mail.alias').migrate_to_alias(cr, self._name, self._table, super(hr_job,self)._auto_init, self._columns['alias_id'], 'name', alias_prefix='job+', alias_defaults={'job_id': 'id'}, context=context) + return res def create(self, cr, uid, vals, context=None): mail_alias = self.pool.get('mail.alias') diff --git a/addons/mail/mail_alias.py b/addons/mail/mail_alias.py index f806b325291..8730599ad72 100644 --- a/addons/mail/mail_alias.py +++ b/addons/mail/mail_alias.py @@ -160,7 +160,7 @@ class mail_alias(osv.Model): alias_id_column.required = False # call _auto_init - child_model_auto_init_fct(cr, context=context) + res = child_model_auto_init_fct(cr, context=context) registry = RegistryManager.get(cr.dbname) mail_alias = registry.get('mail.alias') @@ -188,6 +188,8 @@ class mail_alias(osv.Model): # set back the unique alias_id constraint alias_id_column.required = True + return res + def create_unique_alias(self, cr, uid, vals, model_name=None, context=None): """Creates an email.alias record according to the values provided in ``vals``, with 2 alterations: the ``alias_name`` value may be suffixed in order to diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py index f7c91939b98..5545745b235 100644 --- a/addons/mail/res_users.py +++ b/addons/mail/res_users.py @@ -60,8 +60,9 @@ class res_users(osv.Model): def _auto_init(self, cr, context=None): """ Installation hook: aliases, partner following themselves """ # create aliases for all users and avoid constraint errors - self.pool.get('mail.alias').migrate_to_alias(cr, self._name, self._table, super(res_users, self)._auto_init, + res = self.pool.get('mail.alias').migrate_to_alias(cr, self._name, self._table, super(res_users, self)._auto_init, self._columns['alias_id'], 'login', alias_force_key='id', context=context) + return res def create(self, cr, uid, data, context=None): # create default alias same as the login From 912d45de5162f1d66e58537d13b09c390a5dc1c8 Mon Sep 17 00:00:00 2001 From: Cedric Snauwaert Date: Wed, 17 Apr 2013 10:05:50 +0200 Subject: [PATCH 124/124] [FIX]base-report-designer-plugin: when downloading plugin, file didn't have .zip extension, move zip file to static folder bzr revid: csn@openerp.com-20130417080550-duen03d70s4tryr1 --- .../base_report_designer_installer.xml | 2 +- addons/base_report_designer/installer.py | 8 ++++---- .../openerp_report_designer.zip | Bin 3 files changed, 5 insertions(+), 5 deletions(-) rename addons/base_report_designer/{plugin => static/base-report-designer-plugin}/openerp_report_designer.zip (100%) diff --git a/addons/base_report_designer/base_report_designer_installer.xml b/addons/base_report_designer/base_report_designer_installer.xml index 657eae8fd63..99898f5a703 100644 --- a/addons/base_report_designer/base_report_designer_installer.xml +++ b/addons/base_report_designer/base_report_designer_installer.xml @@ -20,7 +20,7 @@ - + diff --git a/addons/base_report_designer/installer.py b/addons/base_report_designer/installer.py index a21b6655af7..c75e13d662c 100644 --- a/addons/base_report_designer/installer.py +++ b/addons/base_report_designer/installer.py @@ -23,7 +23,6 @@ from openerp.osv import fields from openerp.osv import osv import base64 from openerp.tools.translate import _ -from openerp.modules.module import get_module_resource class base_report_designer_installer(osv.osv_memory): _name = 'base_report_designer.installer' @@ -31,13 +30,13 @@ class base_report_designer_installer(osv.osv_memory): def default_get(self, cr, uid, fields, context=None): data = super(base_report_designer_installer, self).default_get(cr, uid, fields, context=context) - plugin_file = open(get_module_resource('base_report_designer','plugin', 'openerp_report_designer.zip'),'rb') - data['plugin_file'] = base64.encodestring(plugin_file.read()) + base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url') + data['plugin_file'] = base_url + '/base_report_designer/static/base-report-designer-plugin/openerp_report_designer.zip' return data _columns = { 'name':fields.char('File name', size=34), - 'plugin_file':fields.binary('OpenObject Report Designer Plug-in', readonly=True, help="OpenObject Report Designer plug-in file. Save as this file and install this plug-in in OpenOffice."), + 'plugin_file':fields.char('OpenObject Report Designer Plug-in', size=256, readonly=True, help="OpenObject Report Designer plug-in file. Save as this file and install this plug-in in OpenOffice."), 'description':fields.text('Description', readonly=True) } @@ -58,5 +57,6 @@ class base_report_designer_installer(osv.osv_memory): 4. if your connection success, A message appears like 'You can start creating your report in current document.'. """ } +base_report_designer_installer() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_report_designer/plugin/openerp_report_designer.zip b/addons/base_report_designer/static/base-report-designer-plugin/openerp_report_designer.zip similarity index 100% rename from addons/base_report_designer/plugin/openerp_report_designer.zip rename to addons/base_report_designer/static/base-report-designer-plugin/openerp_report_designer.zip